From c874514e4c39a0550b575c220ff71b0b249b3e8d Mon Sep 17 00:00:00 2001
From: Anartz Mugika <mugan86@gmail.com>
Date: Thu, 27 Sep 2018 08:42:04 +0200
Subject: [PATCH 1/7] Add new ignore files and directories

---
 .gitignore | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 418aaaa..674acf0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,4 +42,5 @@ package-lock.json
 
 # Others
 /traslate-template-files
-src/environments/api-keys.ts
+/src/environments/api-keys.ts
+/documentation

From 1756c0dae1508681d8cbaceb8a2bbcb356aa70b1 Mon Sep 17 00:00:00 2001
From: Anartz Mugika <mugan86@gmail.com>
Date: Thu, 27 Sep 2018 08:42:37 +0200
Subject: [PATCH 2/7] Add compodoc dependencies and add compodoc script with
 basic configuration

---
 package.json | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index 2ea80a4..1493f31 100644
--- a/package.json
+++ b/package.json
@@ -9,7 +9,8 @@
     "lint": "ng lint",
     "e2e": "ng e2e",
     "prod": "ng build --prod --base-href='./'",
-    "firebase": "ng build --prod && firebase deploy"
+    "firebase": "ng build --prod && firebase deploy",
+    "compodoc": "./node_modules/.bin/compodoc -p src/tsconfig.app.json"
   },
   "private": true,
   "dependencies": {
@@ -40,7 +41,7 @@
     "@angular/cli": "~6.0.8",
     "@angular/compiler-cli": "^6.0.3",
     "@angular/language-service": "^6.0.3",
-    "@compodoc/compodoc": "^1.1.3",
+    "@compodoc/compodoc": "^1.1.5",
     "@types/jasmine": "~2.8.6",
     "@types/jasminewd2": "~2.0.3",
     "@types/node": "~8.9.4",

From 87f3a51429c5390e3f37a541f5ff2ae529e69269 Mon Sep 17 00:00:00 2001
From: Anartz Mugika <mugan86@gmail.com>
Date: Thu, 27 Sep 2018 08:43:08 +0200
Subject: [PATCH 3/7] Add documentation to circuits.component to use in first
 example with jsdoc tags

---
 src/app/pages/circuits/circuits.component.ts | 54 ++++++++++++++------
 1 file changed, 37 insertions(+), 17 deletions(-)

diff --git a/src/app/pages/circuits/circuits.component.ts b/src/app/pages/circuits/circuits.component.ts
index a343e30..48b211b 100644
--- a/src/app/pages/circuits/circuits.component.ts
+++ b/src/app/pages/circuits/circuits.component.ts
@@ -25,21 +25,34 @@ export class CircuitsComponent implements OnInit {
 
   ngOnInit() {
     this.showInfo = false;
-    this.selectPageService.setSelectPage('circuits');
+    this.selectPageService.setSelectPage(`circuits`);
     this.loadDataFromAssets();
   }
-
+  /**
+   * @example
+   * Example to open dialog with pass info.
+   * loadDataDialog(true)
+   *
+   * @param {boolean }open use boolean value to open or close select load data dialog
+   */
   private loadDataDialog(open: boolean = true) {
     if (open) {
       this._alertService.loadData(
         `Load ${this.selectYear} season circuits list!!`,
-        'Wait a moment please!!'
+        `Wait a moment please!!`
       );
     } else {
       this._alertService.closeAlert();
     }
   }
-
+  /**
+   * @example
+   * This is a good example. Add years from 1950 to 2018
+   * selectYearCircuits("2017")
+   *
+   * @param {string} year  The year to take select circuits to show
+   * @returns
+   */
   selectYearCircuits(year: string = String(new Date().getFullYear())) {
     this.selectYear = year;
     this.loadDataDialog();
@@ -57,31 +70,38 @@ export class CircuitsComponent implements OnInit {
   }
 
   /**
-  * Take data from a local file in json format
-  */
+   * Take data from a local file in json format
+   */
   loadDataFromAssets() {
     this.selectYear = '2018';
     this.loadDataDialog();
-    this._circuitService
-      .loadListFromLocal()
-      .subscribe((data: Circuit[]) => {
-        this.showInfo = true;
-        this.selectPageService.setSelectPage(`Circuits List to  ${this.selectYear} season`);
-        this.circuitsList = data;
-        this.loadDataDialog(false);
-      });
+    this._circuitService.loadListFromLocal().subscribe((data: Circuit[]) => {
+      this.showInfo = true;
+      this.selectPageService.setSelectPage(
+        `Circuits List to  ${this.selectYear} season`
+      );
+      this.circuitsList = data;
+      this.loadDataDialog(false);
+    });
   }
 
   infoAlert(circuit: Circuit) {
-
-    const googleStaticMapUrl = new GoogleStaticMapUrlPipe().transform(circuit.Location, `h`, `red`, `C`, 1000, 300, 5);
+    const googleStaticMapUrl = new GoogleStaticMapUrlPipe().transform(
+      circuit.Location,
+      `h`,
+      `red`,
+      `C`,
+      1000,
+      300,
+      5
+    );
     const locationText = new LocationTextPipe().transform(circuit.Location);
     const googleMapsUrl = new GoogleMapsUrlPipe().transform(circuit.Location);
     swal({
       title: `<br/><strong> ${circuit.circuitName} </strong>`,
       html: `Location: ${locationText} <br/><br/>
         <img class="card-img-top animated fadeIn" style="width:100%" src="${googleStaticMapUrl}"
-        alt="Card image">
+        alt="${circuit.circuitName} circuit image">
         <br/><br/>
         <a href="${googleMapsUrl}" target="_blank">
         Open in Google Maps</a>`,

From 4fecf19927da5b3bf953db975ae79d60a1a7b6dc Mon Sep 17 00:00:00 2001
From: Anartz Mugika <mugan86@gmail.com>
Date: Wed, 31 Oct 2018 18:42:38 +0100
Subject: [PATCH 4/7] Add docs

---
 src/docs/classes/Marker.html                  |  424 ++++
 src/docs/components/AppComponent.html         |  300 +++
 src/docs/components/BarChartComponent.html    |  387 +++
 src/docs/components/BreadcrumbComponent.html  |  423 ++++
 src/docs/components/ChartComponent.html       | 1306 ++++++++++
 src/docs/components/CircuitsComponent.html    |  913 +++++++
 src/docs/components/DashboardComponent.html   |  554 +++++
 .../components/DoughnutChartComponent.html    |  389 +++
 src/docs/components/DriversComponent.html     |  925 ++++++++
 src/docs/components/FooterComponent.html      |  385 +++
 src/docs/components/ForgotComponent.html      |  346 +++
 src/docs/components/GoogleMapsComponent.html  |  539 +++++
 src/docs/components/HeaderComponent.html      |  637 +++++
 src/docs/components/LineChartComponent.html   |  389 +++
 src/docs/components/LoginComponent.html       |  532 +++++
 .../components/NotpagefoundComponent.html     |  335 +++
 src/docs/components/PagesComponent.html       |  345 +++
 src/docs/components/PieChartComponent.html    |  389 +++
 .../components/PolarAreaChartComponent.html   |  331 +++
 src/docs/components/RacesComponent.html       |  698 ++++++
 src/docs/components/RadarChartComponent.html  |  331 +++
 src/docs/components/RegisterComponent.html    |  370 +++
 src/docs/components/ScrollTopComponent.html   |  331 +++
 src/docs/components/SeasonsComponent.html     |  650 +++++
 src/docs/components/SettingsComponent.html    |  363 +++
 src/docs/components/SidebarComponent.html     |  581 +++++
 src/docs/components/SupportComponent.html     |  435 ++++
 src/docs/coverage.html                        | 1388 +++++++++++
 src/docs/dependencies.html                    |  147 ++
 .../directives/DefaultImageDirective.html     |  308 +++
 src/docs/fonts/ionicons.eot                   |  Bin 0 -> 112650 bytes
 src/docs/fonts/ionicons.svg                   | 2090 +++++++++++++++++
 src/docs/fonts/ionicons.ttf                   |  Bin 0 -> 112472 bytes
 src/docs/fonts/ionicons.woff                  |  Bin 0 -> 65912 bytes
 src/docs/fonts/ionicons.woff2                 |  Bin 0 -> 50632 bytes
 src/docs/fonts/roboto-v15-latin-300.eot       |  Bin 0 -> 16205 bytes
 src/docs/fonts/roboto-v15-latin-300.svg       |  314 +++
 src/docs/fonts/roboto-v15-latin-300.ttf       |  Bin 0 -> 32664 bytes
 src/docs/fonts/roboto-v15-latin-300.woff      |  Bin 0 -> 18520 bytes
 src/docs/fonts/roboto-v15-latin-300.woff2     |  Bin 0 -> 14524 bytes
 src/docs/fonts/roboto-v15-latin-700.eot       |  Bin 0 -> 16208 bytes
 src/docs/fonts/roboto-v15-latin-700.svg       |  310 +++
 src/docs/fonts/roboto-v15-latin-700.ttf       |  Bin 0 -> 32500 bytes
 src/docs/fonts/roboto-v15-latin-700.woff      |  Bin 0 -> 18568 bytes
 src/docs/fonts/roboto-v15-latin-700.woff2     |  Bin 0 -> 14552 bytes
 src/docs/fonts/roboto-v15-latin-regular.eot   |  Bin 0 -> 16227 bytes
 src/docs/fonts/roboto-v15-latin-regular.svg   |  308 +++
 src/docs/fonts/roboto-v15-latin-regular.ttf   |  Bin 0 -> 32652 bytes
 src/docs/fonts/roboto-v15-latin-regular.woff  |  Bin 0 -> 18520 bytes
 src/docs/fonts/roboto-v15-latin-regular.woff2 |  Bin 0 -> 14584 bytes
 src/docs/graph/dependencies.svg               |  216 ++
 .../images/compodoc-vectorise-inverted.svg    |  201 ++
 src/docs/images/compodoc-vectorise.svg        |  201 ++
 .../images/coverage-badge-documentation.svg   |    9 +
 src/docs/images/favicon.ico                   |  Bin 0 -> 1150 bytes
 src/docs/index.html                           |  114 +
 src/docs/injectables/AlertService.html        |  462 ++++
 src/docs/injectables/CircuitsService.html     |  347 +++
 src/docs/injectables/CurrentService.html      |  172 ++
 src/docs/injectables/DriversService.html      |  348 +++
 src/docs/injectables/LocalStorageService.html |  605 +++++
 src/docs/injectables/RacesService.html        |  356 +++
 src/docs/injectables/RequestService.html      |  582 +++++
 src/docs/injectables/SeasonsService.html      |  320 +++
 src/docs/injectables/SettingsService.html     |  163 ++
 src/docs/injectables/SharedService.html       |  328 +++
 src/docs/injectables/SidebarService.html      |  288 +++
 src/docs/interfaces/Circuit.html              |  291 +++
 src/docs/interfaces/Confirm.html              |  390 +++
 src/docs/interfaces/Constructor.html          |  289 +++
 src/docs/interfaces/Driver.html               |  355 +++
 src/docs/interfaces/Location.html             |  289 +++
 src/docs/interfaces/Login.html                |  289 +++
 src/docs/interfaces/MarkerIF.html             |  398 ++++
 src/docs/interfaces/Race.html                 |  390 +++
 src/docs/interfaces/Season.html               |  223 ++
 src/docs/interfaces/User.html                 |  388 +++
 src/docs/js/compodoc.js                       |   14 +
 src/docs/js/lazy-load-graphs.js               |   44 +
 src/docs/js/libs/EventDispatcher.js           |    5 +
 src/docs/js/libs/bootstrap-native.js          |    2 +
 src/docs/js/libs/clipboard.min.js             |    7 +
 src/docs/js/libs/custom-elements.min.js       |   38 +
 src/docs/js/libs/d3.v3.min.js                 |    2 +
 src/docs/js/libs/deep-iterator.js             |    2 +
 src/docs/js/libs/es6-shim.min.js              |   11 +
 src/docs/js/libs/htmlparser.js                |   23 +
 src/docs/js/libs/innersvg.js                  |    9 +
 src/docs/js/libs/lit-html.js                  |    2 +
 src/docs/js/libs/prism.js                     |   14 +
 src/docs/js/libs/promise.min.js               |    6 +
 src/docs/js/libs/svg-pan-zoom.min.js          |    3 +
 src/docs/js/libs/tablesort.min.js             |    5 +
 src/docs/js/libs/tablesort.number.min.js      |    5 +
 src/docs/js/libs/vis.min.js                   |   46 +
 src/docs/js/libs/zepto.min.js                 |    2 +
 src/docs/js/menu-wc.js                        |  373 +++
 src/docs/js/menu.js                           |  224 ++
 src/docs/js/routes.js                         |  280 +++
 src/docs/js/search/lunr.min.js                |    1 +
 src/docs/js/search/search-lunr.js             |   67 +
 src/docs/js/search/search.js                  |  271 +++
 src/docs/js/search/search_index.js            |    4 +
 src/docs/js/sourceCode.js                     |   58 +
 src/docs/js/svg-pan-zoom.controls.js          |   53 +
 src/docs/js/tabs.js                           |   21 +
 src/docs/js/tree.js                           |  147 ++
 src/docs/miscellaneous/enumerations.html      |  184 ++
 src/docs/miscellaneous/variables.html         | 1077 +++++++++
 src/docs/modules.html                         |  172 ++
 src/docs/modules/AppModule.html               |  295 +++
 src/docs/modules/AppModule/dependencies.svg   |   94 +
 src/docs/modules/LoginModule.html             |  314 +++
 src/docs/modules/LoginModule/dependencies.svg |  114 +
 src/docs/modules/PagesModule.html             |  363 +++
 src/docs/modules/PagesModule/dependencies.svg |   90 +
 src/docs/modules/SharedModule.html            |  160 ++
 src/docs/overview.html                        |  394 ++++
 src/docs/pipes/CapitalizePipe.html            |  236 ++
 src/docs/pipes/GoogleMapsUrlPipe.html         |  253 ++
 src/docs/pipes/GoogleStaticMapUrlPipe.html    |  683 ++++++
 src/docs/pipes/LocationTextPipe.html          |  235 ++
 src/docs/pipes/RoundPipe.html                 |  245 ++
 src/docs/pipes/WikipediaUrlMobilePipe.html    |  234 ++
 src/docs/styles/bootstrap-card.css            |  219 ++
 src/docs/styles/bootstrap.min.css             |    5 +
 src/docs/styles/compodoc.css                  |  974 ++++++++
 src/docs/styles/ionicons.min.css              |   11 +
 src/docs/styles/laravel.css                   |   69 +
 src/docs/styles/material.css                  |  109 +
 src/docs/styles/original.css                  |   47 +
 src/docs/styles/postmark.css                  |  210 ++
 src/docs/styles/prism.css                     |  267 +++
 src/docs/styles/readthedocs.css               |   98 +
 src/docs/styles/reset.css                     |   48 +
 src/docs/styles/stripe.css                    |   65 +
 src/docs/styles/style.css                     |    7 +
 src/docs/styles/tablesort.css                 |   33 +
 src/docs/styles/vagrant.css                   |   96 +
 139 files changed, 35627 insertions(+)
 create mode 100644 src/docs/classes/Marker.html
 create mode 100644 src/docs/components/AppComponent.html
 create mode 100644 src/docs/components/BarChartComponent.html
 create mode 100644 src/docs/components/BreadcrumbComponent.html
 create mode 100644 src/docs/components/ChartComponent.html
 create mode 100644 src/docs/components/CircuitsComponent.html
 create mode 100644 src/docs/components/DashboardComponent.html
 create mode 100644 src/docs/components/DoughnutChartComponent.html
 create mode 100644 src/docs/components/DriversComponent.html
 create mode 100644 src/docs/components/FooterComponent.html
 create mode 100644 src/docs/components/ForgotComponent.html
 create mode 100644 src/docs/components/GoogleMapsComponent.html
 create mode 100644 src/docs/components/HeaderComponent.html
 create mode 100644 src/docs/components/LineChartComponent.html
 create mode 100644 src/docs/components/LoginComponent.html
 create mode 100644 src/docs/components/NotpagefoundComponent.html
 create mode 100644 src/docs/components/PagesComponent.html
 create mode 100644 src/docs/components/PieChartComponent.html
 create mode 100644 src/docs/components/PolarAreaChartComponent.html
 create mode 100644 src/docs/components/RacesComponent.html
 create mode 100644 src/docs/components/RadarChartComponent.html
 create mode 100644 src/docs/components/RegisterComponent.html
 create mode 100644 src/docs/components/ScrollTopComponent.html
 create mode 100644 src/docs/components/SeasonsComponent.html
 create mode 100644 src/docs/components/SettingsComponent.html
 create mode 100644 src/docs/components/SidebarComponent.html
 create mode 100644 src/docs/components/SupportComponent.html
 create mode 100644 src/docs/coverage.html
 create mode 100644 src/docs/dependencies.html
 create mode 100644 src/docs/directives/DefaultImageDirective.html
 create mode 100644 src/docs/fonts/ionicons.eot
 create mode 100644 src/docs/fonts/ionicons.svg
 create mode 100644 src/docs/fonts/ionicons.ttf
 create mode 100644 src/docs/fonts/ionicons.woff
 create mode 100644 src/docs/fonts/ionicons.woff2
 create mode 100644 src/docs/fonts/roboto-v15-latin-300.eot
 create mode 100644 src/docs/fonts/roboto-v15-latin-300.svg
 create mode 100644 src/docs/fonts/roboto-v15-latin-300.ttf
 create mode 100644 src/docs/fonts/roboto-v15-latin-300.woff
 create mode 100644 src/docs/fonts/roboto-v15-latin-300.woff2
 create mode 100644 src/docs/fonts/roboto-v15-latin-700.eot
 create mode 100644 src/docs/fonts/roboto-v15-latin-700.svg
 create mode 100644 src/docs/fonts/roboto-v15-latin-700.ttf
 create mode 100644 src/docs/fonts/roboto-v15-latin-700.woff
 create mode 100644 src/docs/fonts/roboto-v15-latin-700.woff2
 create mode 100644 src/docs/fonts/roboto-v15-latin-regular.eot
 create mode 100644 src/docs/fonts/roboto-v15-latin-regular.svg
 create mode 100644 src/docs/fonts/roboto-v15-latin-regular.ttf
 create mode 100644 src/docs/fonts/roboto-v15-latin-regular.woff
 create mode 100644 src/docs/fonts/roboto-v15-latin-regular.woff2
 create mode 100644 src/docs/graph/dependencies.svg
 create mode 100644 src/docs/images/compodoc-vectorise-inverted.svg
 create mode 100644 src/docs/images/compodoc-vectorise.svg
 create mode 100644 src/docs/images/coverage-badge-documentation.svg
 create mode 100644 src/docs/images/favicon.ico
 create mode 100644 src/docs/index.html
 create mode 100644 src/docs/injectables/AlertService.html
 create mode 100644 src/docs/injectables/CircuitsService.html
 create mode 100644 src/docs/injectables/CurrentService.html
 create mode 100644 src/docs/injectables/DriversService.html
 create mode 100644 src/docs/injectables/LocalStorageService.html
 create mode 100644 src/docs/injectables/RacesService.html
 create mode 100644 src/docs/injectables/RequestService.html
 create mode 100644 src/docs/injectables/SeasonsService.html
 create mode 100644 src/docs/injectables/SettingsService.html
 create mode 100644 src/docs/injectables/SharedService.html
 create mode 100644 src/docs/injectables/SidebarService.html
 create mode 100644 src/docs/interfaces/Circuit.html
 create mode 100644 src/docs/interfaces/Confirm.html
 create mode 100644 src/docs/interfaces/Constructor.html
 create mode 100644 src/docs/interfaces/Driver.html
 create mode 100644 src/docs/interfaces/Location.html
 create mode 100644 src/docs/interfaces/Login.html
 create mode 100644 src/docs/interfaces/MarkerIF.html
 create mode 100644 src/docs/interfaces/Race.html
 create mode 100644 src/docs/interfaces/Season.html
 create mode 100644 src/docs/interfaces/User.html
 create mode 100644 src/docs/js/compodoc.js
 create mode 100644 src/docs/js/lazy-load-graphs.js
 create mode 100644 src/docs/js/libs/EventDispatcher.js
 create mode 100644 src/docs/js/libs/bootstrap-native.js
 create mode 100644 src/docs/js/libs/clipboard.min.js
 create mode 100644 src/docs/js/libs/custom-elements.min.js
 create mode 100644 src/docs/js/libs/d3.v3.min.js
 create mode 100644 src/docs/js/libs/deep-iterator.js
 create mode 100644 src/docs/js/libs/es6-shim.min.js
 create mode 100644 src/docs/js/libs/htmlparser.js
 create mode 100644 src/docs/js/libs/innersvg.js
 create mode 100644 src/docs/js/libs/lit-html.js
 create mode 100644 src/docs/js/libs/prism.js
 create mode 100644 src/docs/js/libs/promise.min.js
 create mode 100644 src/docs/js/libs/svg-pan-zoom.min.js
 create mode 100644 src/docs/js/libs/tablesort.min.js
 create mode 100644 src/docs/js/libs/tablesort.number.min.js
 create mode 100644 src/docs/js/libs/vis.min.js
 create mode 100644 src/docs/js/libs/zepto.min.js
 create mode 100644 src/docs/js/menu-wc.js
 create mode 100644 src/docs/js/menu.js
 create mode 100644 src/docs/js/routes.js
 create mode 100644 src/docs/js/search/lunr.min.js
 create mode 100644 src/docs/js/search/search-lunr.js
 create mode 100644 src/docs/js/search/search.js
 create mode 100644 src/docs/js/search/search_index.js
 create mode 100644 src/docs/js/sourceCode.js
 create mode 100644 src/docs/js/svg-pan-zoom.controls.js
 create mode 100644 src/docs/js/tabs.js
 create mode 100644 src/docs/js/tree.js
 create mode 100644 src/docs/miscellaneous/enumerations.html
 create mode 100644 src/docs/miscellaneous/variables.html
 create mode 100644 src/docs/modules.html
 create mode 100644 src/docs/modules/AppModule.html
 create mode 100644 src/docs/modules/AppModule/dependencies.svg
 create mode 100644 src/docs/modules/LoginModule.html
 create mode 100644 src/docs/modules/LoginModule/dependencies.svg
 create mode 100644 src/docs/modules/PagesModule.html
 create mode 100644 src/docs/modules/PagesModule/dependencies.svg
 create mode 100644 src/docs/modules/SharedModule.html
 create mode 100644 src/docs/overview.html
 create mode 100644 src/docs/pipes/CapitalizePipe.html
 create mode 100644 src/docs/pipes/GoogleMapsUrlPipe.html
 create mode 100644 src/docs/pipes/GoogleStaticMapUrlPipe.html
 create mode 100644 src/docs/pipes/LocationTextPipe.html
 create mode 100644 src/docs/pipes/RoundPipe.html
 create mode 100644 src/docs/pipes/WikipediaUrlMobilePipe.html
 create mode 100644 src/docs/styles/bootstrap-card.css
 create mode 100644 src/docs/styles/bootstrap.min.css
 create mode 100644 src/docs/styles/compodoc.css
 create mode 100644 src/docs/styles/ionicons.min.css
 create mode 100644 src/docs/styles/laravel.css
 create mode 100644 src/docs/styles/material.css
 create mode 100644 src/docs/styles/original.css
 create mode 100644 src/docs/styles/postmark.css
 create mode 100644 src/docs/styles/prism.css
 create mode 100644 src/docs/styles/readthedocs.css
 create mode 100644 src/docs/styles/reset.css
 create mode 100644 src/docs/styles/stripe.css
 create mode 100644 src/docs/styles/style.css
 create mode 100644 src/docs/styles/tablesort.css
 create mode 100644 src/docs/styles/vagrant.css

diff --git a/src/docs/classes/Marker.html b/src/docs/classes/Marker.html
new file mode 100644
index 0000000..19acd9e
--- /dev/null
+++ b/src/docs/classes/Marker.html
@@ -0,0 +1,424 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content class">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Classes</li>
+  <li>Marker</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/models/marker.model.ts</code>
+        </p>
+
+
+
+            <p class="comment">
+                <h3>Implements</h3>
+            </p>
+            <p class="comment">
+                        <code><a href="../interfaces/MarkerIF.html" target="_self" >MarkerIF</a></code>
+            </p>
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#lat">lat</a>
+                            </li>
+                            <li>
+                                <a href="#lng">lng</a>
+                            </li>
+                            <li>
+                                <a href="#locality">locality</a>
+                            </li>
+                            <li>
+                                <a href="#name">name</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(name: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, lat: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>, lng: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>, locality: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="7" class="link-to-prism">src/app/models/marker.model.ts:7</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>name</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>lat</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>lng</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>locality</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="lat"></a>
+                        <span class="name">
+                            <b>
+                            lat
+                            </b>
+                            <a href="#lat"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>lat:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="5" class="link-to-prism">src/app/models/marker.model.ts:5</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="lng"></a>
+                        <span class="name">
+                            <b>
+                            lng
+                            </b>
+                            <a href="#lng"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>lng:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="6" class="link-to-prism">src/app/models/marker.model.ts:6</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="locality"></a>
+                        <span class="name">
+                            <b>
+                            locality
+                            </b>
+                            <a href="#locality"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>locality:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="7" class="link-to-prism">src/app/models/marker.model.ts:7</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="name"></a>
+                        <span class="name">
+                            <b>
+                            name
+                            </b>
+                            <a href="#name"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>name:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="4" class="link-to-prism">src/app/models/marker.model.ts:4</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { MarkerIF } from &#x27;../interfaces/marker.interface&#x27;;
+
+export class Marker implements MarkerIF {
+    name: string;
+    lat: number;
+    lng: number;
+    locality: string;
+    constructor(name: string, lat: number, lng: number, locality: string) {
+        this.name &#x3D; name;
+        this.lat &#x3D; lat;
+        this.lng &#x3D; lng;
+        this.locality &#x3D; locality;
+    }
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
+            var COMPODOC_CURRENT_PAGE_URL = 'Marker.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/AppComponent.html b/src/docs/components/AppComponent.html
new file mode 100644
index 0000000..ee4fbc3
--- /dev/null
+++ b/src/docs/components/AppComponent.html
@@ -0,0 +1,300 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>AppComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/app.component.ts</code>
+</p>
+
+
+
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-root</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>app.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./app.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#title">title</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+
+
+
+
+
+
+    <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="title"></a>
+                        <span class="name">
+                            <b>
+                            title
+                            </b>
+                            <a href="#title"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>title:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>&#x27;app&#x27;</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/app.component.ts:9</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component } from &#x27;@angular/core&#x27;;
+
+@Component({
+  selector: &#x27;app-root&#x27;,
+  templateUrl: &#x27;./app.component.html&#x27;,
+  styleUrls: [&#x27;./app.component.css&#x27;]
+})
+export class AppComponent {
+  title &#x3D; &#x27;app&#x27;;
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;router-outlet&gt;&lt;/router-outlet&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><router-outlet></router-outlet></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'AppComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'AppComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/BarChartComponent.html b/src/docs/components/BarChartComponent.html
new file mode 100644
index 0000000..a8c57e2
--- /dev/null
+++ b/src/docs/components/BarChartComponent.html
@@ -0,0 +1,387 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>BarChartComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/components/charts/bar-chart/bar-chart.component.ts</code>
+</p>
+
+
+
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-bar-chart</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>bar-chart.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./bar-chart.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Inputs</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#chartType">chartType</a>
+                            </li>
+                            <li>
+                                <a href="#colors">colors</a>
+                            </li>
+                            <li>
+                                <a href="#datasets">datasets</a>
+                            </li>
+                            <li>
+                                <a href="#labels">labels</a>
+                            </li>
+                            <li>
+                                <a href="#legend">legend</a>
+                            </li>
+                            <li>
+                                <a href="#options">options</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+
+    <section>
+    <h3 id="inputs">Inputs</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="chartType"></a>
+                        <code>chartType</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="14" class="link-to-prism">src/app/components/charts/bar-chart/bar-chart.component.ts:14</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="colors"></a>
+                        <code>colors</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/components/charts/bar-chart/bar-chart.component.ts:12</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="datasets"></a>
+                        <code>datasets</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/components/charts/bar-chart/bar-chart.component.ts:9</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="labels"></a>
+                        <code>labels</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/components/charts/bar-chart/bar-chart.component.ts:10</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="legend"></a>
+                        <code>legend</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/components/charts/bar-chart/bar-chart.component.ts:13</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="options"></a>
+                        <code>options</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/components/charts/bar-chart/bar-chart.component.ts:11</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, Input } from &#x27;@angular/core&#x27;;
+
+@Component({
+  selector: &#x27;app-bar-chart&#x27;,
+  templateUrl: &#x27;./bar-chart.component.html&#x27;,
+  styleUrls: [&#x27;./bar-chart.component.css&#x27;]
+})
+export class BarChartComponent {
+  @Input() datasets;
+  @Input() labels;
+  @Input() options;
+  @Input() colors;
+  @Input() legend;
+  @Input() chartType;
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;div style&#x3D;&quot;display: block&quot;&gt;
+    &lt;canvas baseChart
+            [datasets]&#x3D;&quot;datasets&quot;
+            [labels]&#x3D;&quot;labels&quot;
+            [options]&#x3D;&quot;options&quot;
+            [legend]&#x3D;&quot;legend&quot;
+            [chartType]&#x3D;&quot;chartType&quot;
+            &gt;&lt;/canvas&gt;
+&lt;/div&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><div style="display: block">    <canvas baseChart            [datasets]="datasets"            [labels]="labels"            [options]="options"            [legend]="legend"            [chartType]="chartType"            ></canvas></div></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'BarChartComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'BarChartComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/BreadcrumbComponent.html b/src/docs/components/BreadcrumbComponent.html
new file mode 100644
index 0000000..0f8899c
--- /dev/null
+++ b/src/docs/components/BreadcrumbComponent.html
@@ -0,0 +1,423 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>BreadcrumbComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/shared/breadcrumb/breadcrumb.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-breadcrumb</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>breadcrumb.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./breadcrumb.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#selectPage">selectPage</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(selectPageService: <a href="../injectables/SharedService.html">SharedService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/shared/breadcrumb/breadcrumb.component.ts:10</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>selectPageService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/SharedService.html" target="_self" >SharedService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/shared/breadcrumb/breadcrumb.component.ts:13</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+    <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="selectPage"></a>
+                        <span class="name">
+                            <b>
+                            selectPage
+                            </b>
+                            <a href="#selectPage"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>selectPage:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/shared/breadcrumb/breadcrumb.component.ts:10</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+import { SharedService } from &#x27;../../services/shared.service&#x27;;
+
+@Component({
+  selector: &#x27;app-breadcrumb&#x27;,
+  templateUrl: &#x27;./breadcrumb.component.html&#x27;,
+  styleUrls: [&#x27;./breadcrumb.component.css&#x27;]
+})
+export class BreadcrumbComponent implements OnInit {
+  selectPage: string;
+  constructor( private selectPageService: SharedService) { }
+
+  ngOnInit() {
+    this.selectPageService.change.subscribe(page &#x3D;&gt; {
+      this.selectPage &#x3D; page;
+    });
+  }
+
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;ol class&#x3D;&quot;breadcrumb&quot;&gt;
+  &lt;li class&#x3D;&quot;breadcrumb-item&quot;&gt;
+    {{ selectPage | capitalize}}
+    &lt;!--&lt;a routerLink&#x3D;&quot;/dashboard&quot;&gt;Dashboard&lt;/a&gt;
+  &lt;/li&gt;
+  &lt;li class&#x3D;&quot;breadcrumb-item active&quot;&gt;Blank Page&lt;/li&gt;--&gt;
+  &lt;/li&gt;
+&lt;/ol&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><ol class="breadcrumb">  <li class="breadcrumb-item">    {{ selectPage | capitalize}}    <!--<a routerLink="/dashboard">Dashboard</a>  </li>  <li class="breadcrumb-item active">Blank Page</li>-->  </li></ol></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'BreadcrumbComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'BreadcrumbComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/ChartComponent.html b/src/docs/components/ChartComponent.html
new file mode 100644
index 0000000..be5b188
--- /dev/null
+++ b/src/docs/components/ChartComponent.html
@@ -0,0 +1,1306 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>ChartComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/pages/charts/chart.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-chart</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>chart.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./chart.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#barChartData">barChartData</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#barChartLabels">barChartLabels</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#barChartLegend">barChartLegend</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#barChartOptions">barChartOptions</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#barChartType">barChartType</a>
+                            </li>
+                            <li>
+                                <a href="#graphics">graphics</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#lineChartColors">lineChartColors</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#lineChartData">lineChartData</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#lineChartLabels">lineChartLabels</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#lineChartLegend">lineChartLegend</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#lineChartOptions">lineChartOptions</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#lineChartType">lineChartType</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#pieChartColors">pieChartColors</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#pieChartData">pieChartData</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#pieChartLabels">pieChartLabels</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#pieChartType">pieChartType</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(selectPageService: <a href="../injectables/SharedService.html">SharedService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="98" class="link-to-prism">src/app/pages/charts/chart.component.ts:98</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>selectPageService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/SharedService.html" target="_self" >SharedService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="102" class="link-to-prism">src/app/pages/charts/chart.component.ts:102</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+    <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="barChartData"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            barChartData
+                            </b>
+                            <a href="#barChartData"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>barChartData:     <code>any[]</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>any[]</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[
+    {data: [65, 59, 80, 81, 56, 55, 40], label: &#x27;Series A&#x27;},
+    {data: [28, 48, 40, 19, 86, 27, 90], label: &#x27;Series B&#x27;}
+  ]</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="88" class="link-to-prism">src/app/pages/charts/chart.component.ts:88</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="barChartLabels"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            barChartLabels
+                            </b>
+                            <a href="#barChartLabels"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>barChartLabels:     <code>string[]</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>string[]</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[&#x27;2006&#x27;, &#x27;2007&#x27;, &#x27;2008&#x27;, &#x27;2009&#x27;, &#x27;2010&#x27;, &#x27;2011&#x27;, &#x27;2012&#x27;]</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="84" class="link-to-prism">src/app/pages/charts/chart.component.ts:84</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="barChartLegend"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            barChartLegend
+                            </b>
+                            <a href="#barChartLegend"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>barChartLegend:     <code></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>true</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="86" class="link-to-prism">src/app/pages/charts/chart.component.ts:86</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="barChartOptions"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            barChartOptions
+                            </b>
+                            <a href="#barChartOptions"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>barChartOptions:     <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>{
+    scaleShowVerticalLines: false,
+    responsive: true
+  }</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="80" class="link-to-prism">src/app/pages/charts/chart.component.ts:80</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="barChartType"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            barChartType
+                            </b>
+                            <a href="#barChartType"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>barChartType:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>&#x27;bar&#x27;</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="85" class="link-to-prism">src/app/pages/charts/chart.component.ts:85</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="graphics"></a>
+                        <span class="name">
+                            <b>
+                            graphics
+                            </b>
+                            <a href="#graphics"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>graphics:     <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[
+    {
+      labels: [&#x27;Christopher Froome&#x27;, &#x27;Mikel Landa&#x27;, &#x27;Vincenzo Niballi&#x27;, &#x27;Nairo Quintana&#x27;],
+      data: [24, 30, 44, 2],
+      type: &#x27;doughnut&#x27;,
+      legend: &#x27;Who has won the tour of france 2017?&#x27;
+    },
+    {
+      labels: [&#x27;France&#x27;, &#x27;Croatia&#x27;],
+      data: [65, 35],
+      type: &#x27;doughnut&#x27;,
+      legend: &#x27;Who has won the 2018 soccer world cup?&#x27;
+    },
+    {
+      labels: [&#x27;Yes&#x27;, &#x27;No&#x27;],
+      data: [95, 5],
+      type: &#x27;doughnut&#x27;,
+      legend: &#x27;Do you like Football?&#x27;
+    },
+    {
+      labels: [&#x27;No&#x27;, &#x27;Yes&#x27;],
+      data: [85, 15],
+      type: &#x27;doughnut&#x27;,
+      legend: &#x27;Do you like VAR?&#x27;
+    }
+  ]</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/pages/charts/chart.component.ts:13</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <div class="io-description"><p>Values to use with dona graphic component</p>
+</div>
+                    </td>
+                </tr>
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="lineChartColors"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            lineChartColors
+                            </b>
+                            <a href="#lineChartColors"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>lineChartColors:     <code>Array&lt;any&gt;</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>Array&lt;any&gt;</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[
+    { // grey
+      backgroundColor: &#x27;rgba(148,159,177,0.2)&#x27;,
+      borderColor: &#x27;rgba(148,159,177,1)&#x27;,
+      pointBackgroundColor: &#x27;rgba(148,159,177,1)&#x27;,
+      pointBorderColor: &#x27;#fff&#x27;,
+      pointHoverBackgroundColor: &#x27;#fff&#x27;,
+      pointHoverBorderColor: &#x27;rgba(148,159,177,0.8)&#x27;
+    },
+    { // dark grey
+      backgroundColor: &#x27;rgba(77,83,96,0.2)&#x27;,
+      borderColor: &#x27;rgba(77,83,96,1)&#x27;,
+      pointBackgroundColor: &#x27;rgba(77,83,96,1)&#x27;,
+      pointBorderColor: &#x27;#fff&#x27;,
+      pointHoverBackgroundColor: &#x27;#fff&#x27;,
+      pointHoverBorderColor: &#x27;rgba(77,83,96,1)&#x27;
+    },
+    { // grey
+      backgroundColor: &#x27;rgba(148,159,177,0.2)&#x27;,
+      borderColor: &#x27;rgba(148,159,177,1)&#x27;,
+      pointBackgroundColor: &#x27;rgba(148,159,177,1)&#x27;,
+      pointBorderColor: &#x27;#fff&#x27;,
+      pointHoverBackgroundColor: &#x27;#fff&#x27;,
+      pointHoverBorderColor: &#x27;rgba(148,159,177,0.8)&#x27;
+    }
+  ]</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="50" class="link-to-prism">src/app/pages/charts/chart.component.ts:50</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="lineChartData"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            lineChartData
+                            </b>
+                            <a href="#lineChartData"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>lineChartData:     <code>Array&lt;any&gt;</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>Array&lt;any&gt;</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[
+    {data: [65, 59, 80, 81, 56, 55, 40], label: &#x27;2016&#x27;},
+    {data: [28, 48, 40, 19, 86, 27, 90], label: &#x27;2017&#x27;},
+    {data: [18, 48, 77, 9, 100, 27, 40], label: &#x27;2018&#x27;}
+  ]</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="41" class="link-to-prism">src/app/pages/charts/chart.component.ts:41</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="lineChartLabels"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            lineChartLabels
+                            </b>
+                            <a href="#lineChartLabels"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>lineChartLabels:     <code>Array&lt;any&gt;</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>Array&lt;any&gt;</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[&#x27;January&#x27;, &#x27;February&#x27;, &#x27;March&#x27;, &#x27;April&#x27;, &#x27;May&#x27;, &#x27;June&#x27;, &#x27;July&#x27;]</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="46" class="link-to-prism">src/app/pages/charts/chart.component.ts:46</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="lineChartLegend"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            lineChartLegend
+                            </b>
+                            <a href="#lineChartLegend"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>lineChartLegend:     <code></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>true</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="76" class="link-to-prism">src/app/pages/charts/chart.component.ts:76</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="lineChartOptions"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            lineChartOptions
+                            </b>
+                            <a href="#lineChartOptions"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>lineChartOptions:     <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>{
+    responsive: true
+  }</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="47" class="link-to-prism">src/app/pages/charts/chart.component.ts:47</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="lineChartType"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            lineChartType
+                            </b>
+                            <a href="#lineChartType"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>lineChartType:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>&#x27;line&#x27;</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="77" class="link-to-prism">src/app/pages/charts/chart.component.ts:77</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="pieChartColors"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            pieChartColors
+                            </b>
+                            <a href="#pieChartColors"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>pieChartColors:     <code>[]</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>[]</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[&#x27;#007bff&#x27;, &#x27;#dc3545&#x27;, &#x27;#ffc107&#x27;, &#x27;#28a745&#x27;]</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="97" class="link-to-prism">src/app/pages/charts/chart.component.ts:97</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="pieChartData"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            pieChartData
+                            </b>
+                            <a href="#pieChartData"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>pieChartData:     <code>any[]</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>any[]</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[12.21, 15.58, 11.25, 8.32, 39]</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="96" class="link-to-prism">src/app/pages/charts/chart.component.ts:96</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="pieChartLabels"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            pieChartLabels
+                            </b>
+                            <a href="#pieChartLabels"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>pieChartLabels:     <code>string[]</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>string[]</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[&#x27;Blue&#x27;, &#x27;Red&#x27;, &#x27;Yellow&#x27;, &#x27;Green&#x27;, &#x27;Ok&#x27;]</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="95" class="link-to-prism">src/app/pages/charts/chart.component.ts:95</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="pieChartType"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            pieChartType
+                            </b>
+                            <a href="#pieChartType"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>pieChartType:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>&#x27;pie&#x27;</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="98" class="link-to-prism">src/app/pages/charts/chart.component.ts:98</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+import { SharedService } from &#x27;../../services/shared.service&#x27;;
+
+@Component({
+  selector: &#x27;app-chart&#x27;,
+  templateUrl: &#x27;./chart.component.html&#x27;,
+  styleUrls: [&#x27;./chart.component.css&#x27;]
+})
+export class ChartComponent implements OnInit {
+  /**
+   * Values to use with dona graphic component
+   */
+  graphics: any &#x3D; [
+    {
+      labels: [&#x27;Christopher Froome&#x27;, &#x27;Mikel Landa&#x27;, &#x27;Vincenzo Niballi&#x27;, &#x27;Nairo Quintana&#x27;],
+      data: [24, 30, 44, 2],
+      type: &#x27;doughnut&#x27;,
+      legend: &#x27;Who has won the tour of france 2017?&#x27;
+    },
+    {
+      labels: [&#x27;France&#x27;, &#x27;Croatia&#x27;],
+      data: [65, 35],
+      type: &#x27;doughnut&#x27;,
+      legend: &#x27;Who has won the 2018 soccer world cup?&#x27;
+    },
+    {
+      labels: [&#x27;Yes&#x27;, &#x27;No&#x27;],
+      data: [95, 5],
+      type: &#x27;doughnut&#x27;,
+      legend: &#x27;Do you like Football?&#x27;
+    },
+    {
+      labels: [&#x27;No&#x27;, &#x27;Yes&#x27;],
+      data: [85, 15],
+      type: &#x27;doughnut&#x27;,
+      legend: &#x27;Do you like VAR?&#x27;
+    }
+  ];
+
+  // lineChart
+  public lineChartData: Array&lt;any&gt; &#x3D; [
+    {data: [65, 59, 80, 81, 56, 55, 40], label: &#x27;2016&#x27;},
+    {data: [28, 48, 40, 19, 86, 27, 90], label: &#x27;2017&#x27;},
+    {data: [18, 48, 77, 9, 100, 27, 40], label: &#x27;2018&#x27;}
+  ];
+  public lineChartLabels: Array&lt;any&gt; &#x3D; [&#x27;January&#x27;, &#x27;February&#x27;, &#x27;March&#x27;, &#x27;April&#x27;, &#x27;May&#x27;, &#x27;June&#x27;, &#x27;July&#x27;];
+  public lineChartOptions: any &#x3D; {
+    responsive: true
+  };
+  public lineChartColors: Array&lt;any&gt; &#x3D; [
+    { // grey
+      backgroundColor: &#x27;rgba(148,159,177,0.2)&#x27;,
+      borderColor: &#x27;rgba(148,159,177,1)&#x27;,
+      pointBackgroundColor: &#x27;rgba(148,159,177,1)&#x27;,
+      pointBorderColor: &#x27;#fff&#x27;,
+      pointHoverBackgroundColor: &#x27;#fff&#x27;,
+      pointHoverBorderColor: &#x27;rgba(148,159,177,0.8)&#x27;
+    },
+    { // dark grey
+      backgroundColor: &#x27;rgba(77,83,96,0.2)&#x27;,
+      borderColor: &#x27;rgba(77,83,96,1)&#x27;,
+      pointBackgroundColor: &#x27;rgba(77,83,96,1)&#x27;,
+      pointBorderColor: &#x27;#fff&#x27;,
+      pointHoverBackgroundColor: &#x27;#fff&#x27;,
+      pointHoverBorderColor: &#x27;rgba(77,83,96,1)&#x27;
+    },
+    { // grey
+      backgroundColor: &#x27;rgba(148,159,177,0.2)&#x27;,
+      borderColor: &#x27;rgba(148,159,177,1)&#x27;,
+      pointBackgroundColor: &#x27;rgba(148,159,177,1)&#x27;,
+      pointBorderColor: &#x27;#fff&#x27;,
+      pointHoverBackgroundColor: &#x27;#fff&#x27;,
+      pointHoverBorderColor: &#x27;rgba(148,159,177,0.8)&#x27;
+    }
+  ];
+  public lineChartLegend &#x3D; true;
+  public lineChartType &#x3D; &#x27;line&#x27;;
+
+  // Bar chart
+  public barChartOptions: any &#x3D; {
+    scaleShowVerticalLines: false,
+    responsive: true
+  };
+  public barChartLabels: string[] &#x3D; [&#x27;2006&#x27;, &#x27;2007&#x27;, &#x27;2008&#x27;, &#x27;2009&#x27;, &#x27;2010&#x27;, &#x27;2011&#x27;, &#x27;2012&#x27;];
+  public barChartType &#x3D; &#x27;bar&#x27;;
+  public barChartLegend &#x3D; true;
+
+  public barChartData: any[] &#x3D; [
+    {data: [65, 59, 80, 81, 56, 55, 40], label: &#x27;Series A&#x27;},
+    {data: [28, 48, 40, 19, 86, 27, 90], label: &#x27;Series B&#x27;}
+  ];
+
+  // Pie Chart
+  // Pie
+  public pieChartLabels: string[] &#x3D; [&#x27;Blue&#x27;, &#x27;Red&#x27;, &#x27;Yellow&#x27;, &#x27;Green&#x27;, &#x27;Ok&#x27;];
+  public pieChartData: any[] &#x3D;  [12.21, 15.58, 11.25, 8.32, 39];
+  public pieChartColors &#x3D; [&#x27;#007bff&#x27;, &#x27;#dc3545&#x27;, &#x27;#ffc107&#x27;, &#x27;#28a745&#x27;];
+  public pieChartType &#x3D; &#x27;pie&#x27;;
+
+  constructor(private selectPageService: SharedService) { }
+
+  ngOnInit() {
+    this.selectPageService.setSelectPage(&#x27;Charts&#x27;);
+  }
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">
+&lt;div class&#x3D;&quot;card mb-3&quot;&gt;
+  &lt;!--&lt;div class&#x3D;&quot;card-header&quot;&gt;
+    &lt;i class&#x3D;&quot;fas fa-chart-pie&quot;&gt;&lt;/i&gt; Doughnut Chart Examples
+  &lt;/div&gt;--&gt;
+  &lt;div class&#x3D;&quot;card-body&quot; *ngIf&#x3D;&quot;graphics&quot;&gt;
+    &lt;div class&#x3D;&quot;row&quot;&gt;
+    &lt;ng-template  ngFor let-graphic [ngForOf]&#x3D;&quot;graphics&quot; let-i&#x3D;&quot;index&quot;&gt;
+        &lt;div class&#x3D;&quot;col-lg-6&quot;&gt;
+          &lt;app-doughnut-chart [data]&#x3D;&quot;graphic.data&quot; [labels]&#x3D;&quot;graphic.labels&quot; [legend]&#x3D;&quot;graphic.legend&quot;&gt;
+          &lt;/app-doughnut-chart&gt;
+        &lt;/div&gt;
+    &lt;/ng-template&gt;
+    &lt;/div&gt;
+  &lt;/div&gt;
+&lt;/div&gt;
+&lt;div class&#x3D;&quot;card mb-3&quot;&gt;
+  &lt;div class&#x3D;&quot;card-header&quot;&gt;
+      &lt;i class&#x3D;&quot;fas fa-chart-line&quot;&gt;&lt;/i&gt; Line Data Chart Example
+  &lt;/div&gt;
+  &lt;div class&#x3D;&quot;card-body&quot;&gt;
+      &lt;div class&#x3D;&quot;row&quot;&gt;
+          &lt;div class&#x3D;&quot;col-md-6&quot;&gt;
+            &lt;app-line-chart
+              [datasets]&#x3D;&quot;lineChartData&quot;
+              [labels]&#x3D;&quot;lineChartLabels&quot;
+              [options]&#x3D;&quot;lineChartOptions&quot;
+              [colors]&#x3D;&quot;lineChartColors&quot;
+              [legend]&#x3D;&quot;lineChartLegend&quot;
+              [chartType]&#x3D;&quot;lineChartType&quot;&gt;
+            &lt;/app-line-chart&gt;
+          &lt;/div&gt;
+          &lt;div class&#x3D;&quot;col-md-6&quot; style&#x3D;&quot;margin-bottom: 10px&quot;&gt;
+            &lt;h4&gt;Precipitations in first six months of 2016, 2017 and 2018&lt;/h4&gt;
+            &lt;table class&#x3D;&quot;table table-responsive table-condensed&quot;&gt;
+              &lt;tr&gt;
+                &lt;th *ngFor&#x3D;&quot;let label of lineChartLabels&quot;&gt;{{label}}&lt;/th&gt;
+              &lt;/tr&gt;
+              &lt;tr *ngFor&#x3D;&quot;let d of lineChartData&quot;&gt;
+                &lt;td *ngFor&#x3D;&quot;let label of lineChartLabels; let j&#x3D;index&quot;&gt;{{d &amp;&amp; d.data[j]}}&lt;/td&gt;
+              &lt;/tr&gt;
+            &lt;/table&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+  &lt;/div&gt;
+&lt;/div&gt;
+&lt;div class&#x3D;&quot;card mb-3&quot;&gt;
+  &lt;div class&#x3D;&quot;card-header&quot;&gt;
+      &lt;i class&#x3D;&quot;fas fa-chart-bar&quot;&gt;&lt;/i&gt; &amp;nbsp; Bar chart Data example
+  &lt;/div&gt;
+  &lt;div class&#x3D;&quot;card-body&quot;&gt;
+      &lt;div&gt;
+          &lt;app-bar-chart
+          [datasets]&#x3D;&quot;barChartData&quot;
+          [labels]&#x3D;&quot;barChartLabels&quot;
+          [options]&#x3D;&quot;barChartOptions&quot;
+          [legend]&#x3D;&quot;barChartLegend&quot;
+          [chartType]&#x3D;&quot;barChartType&quot;
+          &gt;&lt;/app-bar-chart&gt;
+      &lt;/div&gt;
+  &lt;/div&gt;
+&lt;/div&gt;
+&lt;div class&#x3D;&quot;card mb-3&quot;&gt;
+  &lt;div class&#x3D;&quot;card-header&quot;&gt;
+    &lt;i class&#x3D;&quot;fas fa-chart-pie&quot;&gt;&lt;/i&gt; &amp;nbsp; Pie Chart
+  &lt;/div&gt;
+  &lt;div class&#x3D;&quot;card-body&quot;&gt;
+    &lt;div class&#x3D;&quot;row&quot;&gt;
+      &lt;div class&#x3D;&quot;col-lg-6&quot;&gt;
+        
+        &lt;app-pie-chart
+          [datasets]&#x3D;&quot;barChartData&quot;
+          [labels]&#x3D;&quot;barChartLabels&quot;
+          [options]&#x3D;&quot;barChartOptions&quot;
+          [legend]&#x3D;&quot;barChartLegend&quot;
+          [chartType]&#x3D;&quot;&#x27;pie&#x27;&quot;
+          &gt;&lt;/app-pie-chart&gt;
+      &lt;/div&gt;
+      &lt;div class&#x3D;&quot;col-lg-6&quot;&gt;
+        
+      &lt;/div&gt;
+    &lt;/div&gt;
+  &lt;/div&gt;
+&lt;/div&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><div class="card mb-3">  <!--<div class="card-header">    <i class="fas fa-chart-pie"></i> Doughnut Chart Examples  </div>-->  <div class="card-body" *ngIf="graphics">    <div class="row">    <ng-template  ngFor let-graphic [ngForOf]="graphics" let-i="index">        <div class="col-lg-6">          <app-doughnut-chart [data]="graphic.data" [labels]="graphic.labels" [legend]="graphic.legend">          </app-doughnut-chart>        </div>    </ng-template>    </div>  </div></div><div class="card mb-3">  <div class="card-header">      <i class="fas fa-chart-line"></i> Line Data Chart Example  </div>  <div class="card-body">      <div class="row">          <div class="col-md-6">            <app-line-chart              [datasets]="lineChartData"              [labels]="lineChartLabels"              [options]="lineChartOptions"              [colors]="lineChartColors"              [legend]="lineChartLegend"              [chartType]="lineChartType">            </app-line-chart>          </div>          <div class="col-md-6" style="margin-bottom: 10px">            <h4>Precipitations in first six months of 2016, 2017 and 2018</h4>            <table class="table table-responsive table-condensed">              <tr>                <th *ngFor="let label of lineChartLabels">{{label}}</th>              </tr>              <tr *ngFor="let d of lineChartData">                <td *ngFor="let label of lineChartLabels; let j=index">{{d && d.data[j]}}</td>              </tr>            </table>          </div>        </div>  </div></div><div class="card mb-3">  <div class="card-header">      <i class="fas fa-chart-bar"></i> &nbsp; Bar chart Data example  </div>  <div class="card-body">      <div>          <app-bar-chart          [datasets]="barChartData"          [labels]="barChartLabels"          [options]="barChartOptions"          [legend]="barChartLegend"          [chartType]="barChartType"          ></app-bar-chart>      </div>  </div></div><div class="card mb-3">  <div class="card-header">    <i class="fas fa-chart-pie"></i> &nbsp; Pie Chart  </div>  <div class="card-body">    <div class="row">      <div class="col-lg-6">                <app-pie-chart          [datasets]="barChartData"          [labels]="barChartLabels"          [options]="barChartOptions"          [legend]="barChartLegend"          [chartType]="\'pie\'"          ></app-pie-chart>      </div>      <div class="col-lg-6">              </div>    </div>  </div></div></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'ChartComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'ChartComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/CircuitsComponent.html b/src/docs/components/CircuitsComponent.html
new file mode 100644
index 0000000..7607baf
--- /dev/null
+++ b/src/docs/components/CircuitsComponent.html
@@ -0,0 +1,913 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>CircuitsComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/pages/circuits/circuits.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-circuits</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>circuits.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./circuits.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#circuitsList">circuitsList</a>
+                            </li>
+                            <li>
+                                <a href="#selectYear">selectYear</a>
+                            </li>
+                            <li>
+                                <a href="#showInfo">showInfo</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#infoAlert">infoAlert</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Private</span>
+                                <a href="#loadDataDialog">loadDataDialog</a>
+                            </li>
+                            <li>
+                                <a href="#loadDataFromAssets">loadDataFromAssets</a>
+                            </li>
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                            <li>
+                                <a href="#selectYearCircuits">selectYearCircuits</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(selectPageService: <a href="../injectables/SharedService.html">SharedService</a>, _alertService: <a href="../injectables/AlertService.html">AlertService</a>, _circuitService: <a href="../injectables/CircuitsService.html">CircuitsService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="19" class="link-to-prism">src/app/pages/circuits/circuits.component.ts:19</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>selectPageService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/SharedService.html" target="_self" >SharedService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>_alertService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/AlertService.html" target="_self" >AlertService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>_circuitService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/CircuitsService.html" target="_self" >CircuitsService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="infoAlert"></a>
+                        <span class="name">
+                            <b>
+                            infoAlert
+                            </b>
+                            <a href="#infoAlert"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>infoAlert(circuit: <a href="../interfaces/Circuit.html">Circuit</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="75" class="link-to-prism">src/app/pages/circuits/circuits.component.ts:75</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>circuit</td>
+                                                        <td>
+                                                                    <code><a href="../interfaces/Circuit.html" target="_self" >Circuit</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="loadDataDialog"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Private</span>
+                            loadDataDialog
+                            </b>
+                            <a href="#loadDataDialog"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                            <span class="modifier-icon icon ion-ios-reset"></span>
+                        <code>loadDataDialog(open: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank">boolean</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="32" class="link-to-prism">src/app/pages/circuits/circuits.component.ts:32</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                                    <td>Default value</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>open</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                                <code>true</code>
+                                                        </td>
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="loadDataFromAssets"></a>
+                        <span class="name">
+                            <b>
+                            loadDataFromAssets
+                            </b>
+                            <a href="#loadDataFromAssets"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>loadDataFromAssets()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="62" class="link-to-prism">src/app/pages/circuits/circuits.component.ts:62</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+                            <div class="io-description"><p>Take data from a local file in json format</p>
+</div>
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="26" class="link-to-prism">src/app/pages/circuits/circuits.component.ts:26</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="selectYearCircuits"></a>
+                        <span class="name">
+                            <b>
+                            selectYearCircuits
+                            </b>
+                            <a href="#selectYearCircuits"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>selectYearCircuits(year: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="43" class="link-to-prism">src/app/pages/circuits/circuits.component.ts:43</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                                    <td>Default value</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>year</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                                <code>String(new Date().getFullYear())</code>
+                                                        </td>
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+    <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="circuitsList"></a>
+                        <span class="name">
+                            <b>
+                            circuitsList
+                            </b>
+                            <a href="#circuitsList"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>circuitsList:     <code><a href="../interfaces/Circuit.html" target="_self" >Circuit[]</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="../interfaces/Circuit.html" target="_self" >Circuit[]</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="19" class="link-to-prism">src/app/pages/circuits/circuits.component.ts:19</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="selectYear"></a>
+                        <span class="name">
+                            <b>
+                            selectYear
+                            </b>
+                            <a href="#selectYear"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>selectYear:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="18" class="link-to-prism">src/app/pages/circuits/circuits.component.ts:18</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="showInfo"></a>
+                        <span class="name">
+                            <b>
+                            showInfo
+                            </b>
+                            <a href="#showInfo"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>showInfo:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="17" class="link-to-prism">src/app/pages/circuits/circuits.component.ts:17</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+import { SharedService } from &#x27;../../services/shared.service&#x27;;
+import { AlertService } from &#x27;../../services/alert.service&#x27;;
+import { CircuitsService } from &#x27;../../services/api/circuits.service&#x27;;
+import { Circuit } from &#x27;../../interfaces/circuit.interface&#x27;;
+import swal from &#x27;sweetalert2&#x27;;
+import { GoogleStaticMapUrlPipe } from &#x27;../../pipes/google-static-map-url.pipe&#x27;;
+import { LocationTextPipe } from &#x27;../../pipes/location-text.pipe&#x27;;
+import { GoogleMapsUrlPipe } from &#x27;../../pipes/google-maps-url.pipe&#x27;;
+
+@Component({
+  selector: &#x27;app-circuits&#x27;,
+  templateUrl: &#x27;./circuits.component.html&#x27;,
+  styleUrls: [&#x27;./circuits.component.css&#x27;]
+})
+export class CircuitsComponent implements OnInit {
+  showInfo: boolean;
+  selectYear: string;
+  circuitsList: Circuit[];
+  constructor(
+    private selectPageService: SharedService,
+    private _alertService: AlertService,
+    private _circuitService: CircuitsService
+  ) {}
+
+  ngOnInit() {
+    this.showInfo &#x3D; false;
+    this.selectPageService.setSelectPage(&#x27;circuits&#x27;);
+    this.loadDataFromAssets();
+  }
+
+  private loadDataDialog(open: boolean &#x3D; true) {
+    if (open) {
+      this._alertService.loadData(
+        &#x60;Load ${this.selectYear} season circuits list!!&#x60;,
+        &#x27;Wait a moment please!!&#x27;
+      );
+    } else {
+      this._alertService.closeAlert();
+    }
+  }
+
+  selectYearCircuits(year: string &#x3D; String(new Date().getFullYear())) {
+    this.selectYear &#x3D; year;
+    this.loadDataDialog();
+    this._circuitService.listByYear(year).subscribe(
+      (data: Circuit[]) &#x3D;&gt; {
+        this.selectPageService.setSelectPage(
+          &#x60;Circuits List to  ${this.selectYear} season&#x60;
+        );
+        this.circuitsList &#x3D; data;
+        this.showInfo &#x3D; true;
+        this._alertService.closeAlert();
+      },
+      _errorService &#x3D;&gt; {}
+    );
+  }
+
+  /**
+  * Take data from a local file in json format
+  */
+  loadDataFromAssets() {
+    this.selectYear &#x3D; &#x27;2018&#x27;;
+    this.loadDataDialog();
+    this._circuitService
+      .loadListFromLocal()
+      .subscribe((data: Circuit[]) &#x3D;&gt; {
+        this.showInfo &#x3D; true;
+        this.selectPageService.setSelectPage(&#x60;Circuits List to  ${this.selectYear} season&#x60;);
+        this.circuitsList &#x3D; data;
+        this.loadDataDialog(false);
+      });
+  }
+
+  infoAlert(circuit: Circuit) {
+
+    const googleStaticMapUrl &#x3D; new GoogleStaticMapUrlPipe().transform(circuit.Location, &#x60;h&#x60;, &#x60;red&#x60;, &#x60;C&#x60;, 1000, 300, 5);
+    const locationText &#x3D; new LocationTextPipe().transform(circuit.Location);
+    const googleMapsUrl &#x3D; new GoogleMapsUrlPipe().transform(circuit.Location);
+    swal({
+      title: &#x60;&lt;br/&gt;&lt;strong&gt; ${circuit.circuitName} &lt;/strong&gt;&#x60;,
+      html: &#x60;Location: ${locationText} &lt;br/&gt;&lt;br/&gt;
+        &lt;img class&#x3D;&quot;card-img-top animated fadeIn&quot; style&#x3D;&quot;width:100%&quot; src&#x3D;&quot;${googleStaticMapUrl}&quot;
+        alt&#x3D;&quot;Card image&quot;&gt;
+        &lt;br/&gt;&lt;br/&gt;
+        &lt;a href&#x3D;&quot;${googleMapsUrl}&quot; target&#x3D;&quot;_blank&quot;&gt;
+        Open in Google Maps&lt;/a&gt;&#x60;,
+      showCloseButton: false,
+      showCancelButton: false,
+      focusConfirm: false,
+      confirmButtonText: &#x27;Close&#x27;,
+      confirmButtonAriaLabel: &#x27;Thumbs up, great!&#x27;,
+      cancelButtonText: &#x27;&lt;i class&#x3D;&quot;fa fa-thumbs-down&quot;&gt;&lt;/i&gt;&#x27;,
+      cancelButtonAriaLabel: &#x27;Thumbs down&#x27;
+    });
+  }
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;app-google-maps *ngIf&#x3D;&quot;showInfo&quot; [circuitsData]&#x3D;&quot;circuitsList&quot;&gt;&lt;/app-google-maps&gt;
+&lt;div class&#x3D;&quot;card mb-3 animated fadeIn&quot; *ngIf&#x3D;&quot;showInfo&quot;&gt;
+  &lt;!--&lt;div class&#x3D;&quot;card-header&quot;&gt;
+    &lt;i class&#x3D;&quot;fa fa-table&quot;&gt;&lt;/i&gt; circuits List to {{ selectYear }} season
+  &lt;/div&gt;--&gt;
+  &lt;div class&#x3D;&quot;card-body table-responsive&quot;&gt;
+    &lt;table class&#x3D;&quot;table table-striped table-bordered&quot;&gt;
+      &lt;thead&gt;
+        &lt;tr&gt;
+          &lt;th scope&#x3D;&quot;col&quot;&gt;Circuit&lt;/th&gt;
+          &lt;th scope&#x3D;&quot;col&quot;&gt;Locality&lt;/th&gt;
+          &lt;th scope&#x3D;&quot;col&quot;&gt;More info&lt;/th&gt;
+        &lt;/tr&gt;
+      &lt;/thead&gt;
+      &lt;tbody&gt;
+        &lt;ng-template ngFor let-circuit [ngForOf]&#x3D;&quot;circuitsList&quot; let-i&#x3D;&quot;index&quot;&gt;
+          &lt;tr&gt;
+            &lt;td&gt;{{circuit.circuitName}}&lt;/td&gt;
+            &lt;td align&#x3D;&quot;center&quot;&gt;
+              &lt;button type&#x3D;&quot;button&quot; class&#x3D;&quot;btn btn-info&quot; (click)&#x3D;&quot;infoAlert(circuit)&quot;&gt;{{ circuit.Location | locationText }}&lt;/button&gt;
+            &lt;/td&gt;
+            &lt;td align&#x3D;&quot;center&quot;&gt;
+              &lt;a href&#x3D;&quot;{{circuit.url}}&quot; title&#x3D;&quot;Web browser version&quot; target&#x3D;&quot;_blank&quot;&gt;
+                &lt;img src&#x3D;&quot;../../../assets/internet.png&quot; /&gt;
+              &lt;/a&gt;
+              &lt;a href&#x3D;&quot;{{circuit.url | wikipediaUrlMobile}}&quot; title&#x3D;&quot;Mobile version&quot; target&#x3D;&quot;_blank&quot;&gt;
+                &lt;img src&#x3D;&quot;../../../assets/mobile.png&quot; /&gt;
+              &lt;/a&gt;
+            &lt;/td&gt;
+          &lt;/tr&gt;
+        &lt;/ng-template&gt;
+      &lt;/tbody&gt;
+    &lt;/table&gt;
+    &lt;!--&lt;nav aria-label&#x3D;&quot;Page navigation example&quot;&gt;
+      &lt;ul class&#x3D;&quot;pagination justify-content-center&quot;&gt;
+        &lt;li class&#x3D;&quot;page-item&quot;&gt;
+          &lt;a class&#x3D;&quot;page-link&quot; [ngClass]&#x3D;&quot;{ &#x27;disabled&#x27;: currentPage &#x3D;&#x3D; 1 }&quot; (click)&#x3D;&quot;selectPage(currentPage - 1)&quot; tabindex&#x3D;&quot;-1&quot;&gt;Previous&lt;/a&gt;
+        &lt;/li&gt;
+        &lt;ng-template ngFor let-page [ngForOf]&#x3D;&quot;pages&quot; let-i&#x3D;&quot;index&quot;&gt;
+          &lt;li class&#x3D;&quot;page-item&quot;&gt;
+            &lt;a class&#x3D;&quot;page-link&quot; [ngClass]&#x3D;&quot;{&#x27;select&#x27;: currentPage &#x3D;&#x3D; i + 1}&quot; (click)&#x3D;&quot;selectPage(i + 1)&quot;&gt;{{ i + 1}}&lt;/a&gt;
+          &lt;/li&gt;
+        &lt;/ng-template&gt;
+        &lt;li class&#x3D;&quot;page-item&quot;&gt;
+          &lt;a class&#x3D;&quot;page-link&quot; [ngClass]&#x3D;&quot;{&#x27;disabled&#x27;: currentPage &#x3D;&#x3D; pages.length }&quot; (click)&#x3D;&quot;selectPage(currentPage + 1)&quot;&gt;Next&lt;/a&gt;
+        &lt;/li&gt;
+      &lt;/ul&gt;
+    &lt;/nav&gt;--&gt;
+
+  &lt;/div&gt;
+  &lt;div class&#x3D;&quot;card-footer small text-muted&quot;&gt;Updated yesterday at 11:59 PM&lt;/div&gt;
+&lt;/div&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><app-google-maps *ngIf="showInfo" [circuitsData]="circuitsList"></app-google-maps><div class="card mb-3 animated fadeIn" *ngIf="showInfo">  <!--<div class="card-header">    <i class="fa fa-table"></i> circuits List to {{ selectYear }} season  </div>-->  <div class="card-body table-responsive">    <table class="table table-striped table-bordered">      <thead>        <tr>          <th scope="col">Circuit</th>          <th scope="col">Locality</th>          <th scope="col">More info</th>        </tr>      </thead>      <tbody>        <ng-template ngFor let-circuit [ngForOf]="circuitsList" let-i="index">          <tr>            <td>{{circuit.circuitName}}</td>            <td align="center">              <button type="button" class="btn btn-info" (click)="infoAlert(circuit)">{{ circuit.Location | locationText }}</button>            </td>            <td align="center">              <a href="{{circuit.url}}" title="Web browser version" target="_blank">                <img src="../../../assets/internet.png" />              </a>              <a href="{{circuit.url | wikipediaUrlMobile}}" title="Mobile version" target="_blank">                <img src="../../../assets/mobile.png" />              </a>            </td>          </tr>        </ng-template>      </tbody>    </table>    <!--<nav aria-label="Page navigation example">      <ul class="pagination justify-content-center">        <li class="page-item">          <a class="page-link" [ngClass]="{ \'disabled\': currentPage == 1 }" (click)="selectPage(currentPage - 1)" tabindex="-1">Previous</a>        </li>        <ng-template ngFor let-page [ngForOf]="pages" let-i="index">          <li class="page-item">            <a class="page-link" [ngClass]="{\'select\': currentPage == i + 1}" (click)="selectPage(i + 1)">{{ i + 1}}</a>          </li>        </ng-template>        <li class="page-item">          <a class="page-link" [ngClass]="{\'disabled\': currentPage == pages.length }" (click)="selectPage(currentPage + 1)">Next</a>        </li>      </ul>    </nav>-->  </div>  <div class="card-footer small text-muted">Updated yesterday at 11:59 PM</div></div></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'CircuitsComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'CircuitsComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/DashboardComponent.html b/src/docs/components/DashboardComponent.html
new file mode 100644
index 0000000..84601cb
--- /dev/null
+++ b/src/docs/components/DashboardComponent.html
@@ -0,0 +1,554 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>DashboardComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/pages/dashboard/dashboard.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-dashboard</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>dashboard.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./dashboard.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#user">user</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(router: <a href="https://angular.io/api/router/Router" target="_blank">Router</a>, selectPageService: <a href="../injectables/SharedService.html">SharedService</a>, localStorageService: <a href="../injectables/LocalStorageService.html">LocalStorageService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/pages/dashboard/dashboard.component.ts:12</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>router</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="https://angular.io/api/router/Router" target="_blank" >Router</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>selectPageService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/SharedService.html" target="_self" >SharedService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>localStorageService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/LocalStorageService.html" target="_self" >LocalStorageService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="19" class="link-to-prism">src/app/pages/dashboard/dashboard.component.ts:19</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+    <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="user"></a>
+                        <span class="name">
+                            <b>
+                            user
+                            </b>
+                            <a href="#user"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>user:     <code><a href="../interfaces/User.html" target="_self" >User</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="../interfaces/User.html" target="_self" >User</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/pages/dashboard/dashboard.component.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+import { Router } from &#x27;@angular/router&#x27;;
+import { SharedService } from &#x27;../../services/shared.service&#x27;;
+import { LocalStorageService } from &#x27;../../services/local-storage.service&#x27;;
+
+@Component({
+  selector: &#x27;app-dashboard&#x27;,
+  templateUrl: &#x27;./dashboard.component.html&#x27;,
+  styleUrls: [&#x27;./dashboard.component.css&#x27;]
+})
+export class DashboardComponent implements OnInit {
+  user: User;
+  constructor(
+    private router: Router,
+    private selectPageService: SharedService,
+    private localStorageService: LocalStorageService
+  ) {}
+
+  ngOnInit() {
+    this.user &#x3D; this.localStorageService.takeUserLoginData();
+    this.selectPageService.setSelectPage(&#x27;dashboard&#x27;);
+    if (this.user &#x3D;&#x3D;&#x3D; null) {
+      this.router.navigate([&#x27;/login&#x27;]);
+    }
+  }
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;p *ngIf&#x3D;&quot;user !&#x3D; null&quot;&gt;
+  Welcome {{ user.name }} {{ user.lastname }} !!!
+&lt;/p&gt;
+&lt;div class&#x3D;&quot;row&quot;&gt;
+  &lt;div class&#x3D;&quot;col-lg-6&quot;&gt;
+    &lt;div class&#x3D;&quot;card-columns animated fadeIn&quot;&gt;
+      &lt;div class&#x3D;&quot;card&quot;&gt;
+        &lt;div class&#x3D;&quot;card-body&quot;&gt;
+          &lt;img class&#x3D;&quot;profile-photo&quot; src&#x3D;&quot;https://mugan86.com/amugika/img/f1/drivers/alonso.png&quot; default&#x3D;&quot;https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png&quot;
+          /&gt;&amp;nbsp;
+          &lt;img src&#x3D;&quot;https://mugan86.com/amugika/img/f1/flags/small/Spain.png&quot; default&#x3D;&quot;../../../assets/img/Unknown.png&quot; /&gt;&amp;nbsp;
+          &lt;h5 class&#x3D;&quot;card-title&quot;&gt;-&lt;/h5&gt;
+          &lt;p class&#x3D;&quot;card-text&quot;&gt;
+            Text
+          &lt;/p&gt;
+          &lt;!--&lt;p class&#x3D;&quot;card-text&quot;&gt;
+              &lt;small class&#x3D;&quot;text-muted&quot;&gt;Last updated 3 mins ago&lt;/small&gt;
+            &lt;/p&gt;--&gt;
+        &lt;/div&gt;
+      &lt;/div&gt;
+      &lt;div class&#x3D;&quot;card&quot;&gt;
+        &lt;div class&#x3D;&quot;card-body&quot;&gt;
+          &lt;img class&#x3D;&quot;profile-photo&quot; src&#x3D;&quot;https://mugan86.com/amugika/img/f1/drivers/alonso.png&quot; default&#x3D;&quot;https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png&quot;
+          /&gt;&amp;nbsp;
+          &lt;img src&#x3D;&quot;https://mugan86.com/amugika/img/f1/flags/small/Spain.png&quot; default&#x3D;&quot;../../../assets/img/Unknown.png&quot; /&gt;&amp;nbsp;
+          &lt;h5 class&#x3D;&quot;card-title&quot;&gt;-&lt;/h5&gt;
+          &lt;p class&#x3D;&quot;card-text&quot;&gt;
+            Text
+          &lt;/p&gt;
+          &lt;!--&lt;p class&#x3D;&quot;card-text&quot;&gt;
+                  &lt;small class&#x3D;&quot;text-muted&quot;&gt;Last updated 3 mins ago&lt;/small&gt;
+                &lt;/p&gt;--&gt;
+        &lt;/div&gt;
+      &lt;/div&gt;
+      &lt;div class&#x3D;&quot;card&quot;&gt;
+        &lt;div class&#x3D;&quot;card-body&quot;&gt;
+          &lt;img class&#x3D;&quot;profile-photo&quot; src&#x3D;&quot;https://mugan86.com/amugika/img/f1/drivers/alonso.png&quot; default&#x3D;&quot;https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png&quot;
+          /&gt;&amp;nbsp;
+          &lt;img src&#x3D;&quot;https://mugan86.com/amugika/img/f1/flags/small/Spain.png&quot; default&#x3D;&quot;../../../assets/img/Unknown.png&quot; /&gt;&amp;nbsp;
+          &lt;h5 class&#x3D;&quot;card-title&quot;&gt;-&lt;/h5&gt;
+          &lt;p class&#x3D;&quot;card-text&quot;&gt;
+            Text
+          &lt;/p&gt;
+          &lt;!--&lt;p class&#x3D;&quot;card-text&quot;&gt;
+                  &lt;small class&#x3D;&quot;text-muted&quot;&gt;Last updated 3 mins ago&lt;/small&gt;
+                &lt;/p&gt;--&gt;
+        &lt;/div&gt;
+      &lt;/div&gt;
+    &lt;/div&gt;
+  &lt;/div&gt;
+  &lt;div class&#x3D;&quot;col-lg-6&quot;&gt;
+    &lt;div class&#x3D;&quot;card mb-3&quot;&gt;
+  &lt;div class&#x3D;&quot;card-header&quot;&gt;
+    &lt;i class&#x3D;&quot;fa fa-table&quot;&gt;&lt;/i&gt; Next Races&lt;/div&gt;
+  &lt;div class&#x3D;&quot;card-body&quot;&gt;
+      &lt;div class&#x3D;&quot;card-columns animated fadeIn&quot;&gt;
+        &lt;div class&#x3D;&quot;card&quot;&gt;
+          &lt;div class&#x3D;&quot;card-body&quot;&gt;
+            &lt;img class&#x3D;&quot;profile-photo&quot; src&#x3D;&quot;https://mugan86.com/amugika/img/f1/drivers/alonso.png&quot; default&#x3D;&quot;https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png&quot;
+            /&gt;&amp;nbsp;
+            &lt;img src&#x3D;&quot;https://mugan86.com/amugika/img/f1/flags/small/Spain.png&quot; default&#x3D;&quot;../../../assets/img/Unknown.png&quot; /&gt;&amp;nbsp;
+            &lt;h5 class&#x3D;&quot;card-title&quot;&gt;-&lt;/h5&gt;
+            &lt;p class&#x3D;&quot;card-text&quot;&gt;
+              Text
+            &lt;/p&gt;
+            &lt;!--&lt;p class&#x3D;&quot;card-text&quot;&gt;
+                      &lt;small class&#x3D;&quot;text-muted&quot;&gt;Last updated 3 mins ago&lt;/small&gt;
+                    &lt;/p&gt;--&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+        &lt;div class&#x3D;&quot;card&quot;&gt;
+          &lt;div class&#x3D;&quot;card-body&quot;&gt;
+            &lt;img class&#x3D;&quot;profile-photo&quot; src&#x3D;&quot;https://mugan86.com/amugika/img/f1/drivers/alonso.png&quot; default&#x3D;&quot;https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png&quot;
+            /&gt;&amp;nbsp;
+            &lt;img src&#x3D;&quot;https://mugan86.com/amugika/img/f1/flags/small/Spain.png&quot; default&#x3D;&quot;../../../assets/img/Unknown.png&quot; /&gt;&amp;nbsp;
+            &lt;h5 class&#x3D;&quot;card-title&quot;&gt;-&lt;/h5&gt;
+            &lt;p class&#x3D;&quot;card-text&quot;&gt;
+              Text
+            &lt;/p&gt;
+            &lt;!--&lt;p class&#x3D;&quot;card-text&quot;&gt;
+                          &lt;small class&#x3D;&quot;text-muted&quot;&gt;Last updated 3 mins ago&lt;/small&gt;
+                        &lt;/p&gt;--&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+        &lt;div class&#x3D;&quot;card&quot;&gt;
+          &lt;div class&#x3D;&quot;card-body&quot;&gt;
+            &lt;img class&#x3D;&quot;profile-photo&quot; src&#x3D;&quot;https://mugan86.com/amugika/img/f1/drivers/alonso.png&quot; default&#x3D;&quot;https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png&quot;
+            /&gt;&amp;nbsp;
+            &lt;img src&#x3D;&quot;https://mugan86.com/amugika/img/f1/flags/small/Spain.png&quot; default&#x3D;&quot;../../../assets/img/Unknown.png&quot; /&gt;&amp;nbsp;
+            &lt;h5 class&#x3D;&quot;card-title&quot;&gt;-&lt;/h5&gt;
+            &lt;p class&#x3D;&quot;card-text&quot;&gt;
+              Text
+            &lt;/p&gt;
+            &lt;!--&lt;p class&#x3D;&quot;card-text&quot;&gt;
+                          &lt;small class&#x3D;&quot;text-muted&quot;&gt;Last updated 3 mins ago&lt;/small&gt;
+                        &lt;/p&gt;--&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+    &lt;/div&gt;
+  &lt;/div&gt;
+  &lt;div class&#x3D;&quot;card-footer small text-muted&quot;&gt;Updated yesterday at 11:59 PM&lt;/div&gt;
+&lt;/div&gt;
+  &lt;/div&gt;
+&lt;/div&gt;
+
+
+
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><p *ngIf="user != null">  Welcome {{ user.name }} {{ user.lastname }} !!!</p><div class="row">  <div class="col-lg-6">    <div class="card-columns animated fadeIn">      <div class="card">        <div class="card-body">          <img class="profile-photo" src="https://mugan86.com/amugika/img/f1/drivers/alonso.png" default="https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png"          />&nbsp;          <img src="https://mugan86.com/amugika/img/f1/flags/small/Spain.png" default="../../../assets/img/Unknown.png" />&nbsp;          <h5 class="card-title">-</h5>          <p class="card-text">            Text          </p>          <!--<p class="card-text">              <small class="text-muted">Last updated 3 mins ago</small>            </p>-->        </div>      </div>      <div class="card">        <div class="card-body">          <img class="profile-photo" src="https://mugan86.com/amugika/img/f1/drivers/alonso.png" default="https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png"          />&nbsp;          <img src="https://mugan86.com/amugika/img/f1/flags/small/Spain.png" default="../../../assets/img/Unknown.png" />&nbsp;          <h5 class="card-title">-</h5>          <p class="card-text">            Text          </p>          <!--<p class="card-text">                  <small class="text-muted">Last updated 3 mins ago</small>                </p>-->        </div>      </div>      <div class="card">        <div class="card-body">          <img class="profile-photo" src="https://mugan86.com/amugika/img/f1/drivers/alonso.png" default="https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png"          />&nbsp;          <img src="https://mugan86.com/amugika/img/f1/flags/small/Spain.png" default="../../../assets/img/Unknown.png" />&nbsp;          <h5 class="card-title">-</h5>          <p class="card-text">            Text          </p>          <!--<p class="card-text">                  <small class="text-muted">Last updated 3 mins ago</small>                </p>-->        </div>      </div>    </div>  </div>  <div class="col-lg-6">    <div class="card mb-3">  <div class="card-header">    <i class="fa fa-table"></i> Next Races</div>  <div class="card-body">      <div class="card-columns animated fadeIn">        <div class="card">          <div class="card-body">            <img class="profile-photo" src="https://mugan86.com/amugika/img/f1/drivers/alonso.png" default="https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png"            />&nbsp;            <img src="https://mugan86.com/amugika/img/f1/flags/small/Spain.png" default="../../../assets/img/Unknown.png" />&nbsp;            <h5 class="card-title">-</h5>            <p class="card-text">              Text            </p>            <!--<p class="card-text">                      <small class="text-muted">Last updated 3 mins ago</small>                    </p>-->          </div>        </div>        <div class="card">          <div class="card-body">            <img class="profile-photo" src="https://mugan86.com/amugika/img/f1/drivers/alonso.png" default="https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png"            />&nbsp;            <img src="https://mugan86.com/amugika/img/f1/flags/small/Spain.png" default="../../../assets/img/Unknown.png" />&nbsp;            <h5 class="card-title">-</h5>            <p class="card-text">              Text            </p>            <!--<p class="card-text">                          <small class="text-muted">Last updated 3 mins ago</small>                        </p>-->          </div>        </div>        <div class="card">          <div class="card-body">            <img class="profile-photo" src="https://mugan86.com/amugika/img/f1/drivers/alonso.png" default="https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png"            />&nbsp;            <img src="https://mugan86.com/amugika/img/f1/flags/small/Spain.png" default="../../../assets/img/Unknown.png" />&nbsp;            <h5 class="card-title">-</h5>            <p class="card-text">              Text            </p>            <!--<p class="card-text">                          <small class="text-muted">Last updated 3 mins ago</small>                        </p>-->          </div>        </div>    </div>  </div>  <div class="card-footer small text-muted">Updated yesterday at 11:59 PM</div></div>  </div></div></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'DashboardComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'DashboardComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/DoughnutChartComponent.html b/src/docs/components/DoughnutChartComponent.html
new file mode 100644
index 0000000..8c2c0af
--- /dev/null
+++ b/src/docs/components/DoughnutChartComponent.html
@@ -0,0 +1,389 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>DoughnutChartComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/components/charts/doughnut-chart/doughnut-chart.component.ts</code>
+</p>
+
+
+
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-doughnut-chart</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>doughnut-chart.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./doughnut-chart.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#type">type</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Inputs</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#data">data</a>
+                            </li>
+                            <li>
+                                <a href="#labels">labels</a>
+                            </li>
+                            <li>
+                                <a href="#legend">legend</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+
+    <section>
+    <h3 id="inputs">Inputs</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="data"></a>
+                        <code>data</code>
+                    </td>
+                    <td class="col-md-10">
+                        <div><p>Take Inputs need values to generate Dona type chart</p>
+</div>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/components/charts/doughnut-chart/doughnut-chart.component.ts:12</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="labels"></a>
+                        <code>labels</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/components/charts/doughnut-chart/doughnut-chart.component.ts:13</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="legend"></a>
+                        <code>legend</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="14" class="link-to-prism">src/app/components/charts/doughnut-chart/doughnut-chart.component.ts:14</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+    <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="type"></a>
+                        <span class="name">
+                            <b>
+                            type
+                            </b>
+                            <a href="#type"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>type:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>&#x27;doughnut&#x27;</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="15" class="link-to-prism">src/app/components/charts/doughnut-chart/doughnut-chart.component.ts:15</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, Input } from &#x27;@angular/core&#x27;;
+
+@Component({
+  selector: &#x27;app-doughnut-chart&#x27;,
+  templateUrl: &#x27;./doughnut-chart.component.html&#x27;,
+  styleUrls: [&#x27;./doughnut-chart.component.css&#x27;]
+})
+export class DoughnutChartComponent {
+  /**
+   * Take Inputs need values to generate Dona type chart
+   */
+  @Input() data;
+  @Input() labels;
+  @Input() legend;
+  type &#x3D; &#x27;doughnut&#x27;;
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">
+&lt;div class&#x3D;&quot;card&quot;&gt;
+  &lt;div class&#x3D;&quot;card-body&quot;&gt;
+    &lt;h4 class&#x3D;&quot;card-title&quot;&gt;{{ legend }}&lt;/h4&gt;
+    &lt;div style&#x3D;&quot;display: block&quot;&gt;
+      &lt;canvas baseChart [data]&#x3D;&quot;data&quot; [labels]&#x3D;&quot;labels&quot; [chartType]&#x3D;&quot;type&quot;&gt;&lt;/canvas&gt;
+    &lt;/div&gt;
+  &lt;/div&gt;
+&lt;/div&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><div class="card">  <div class="card-body">    <h4 class="card-title">{{ legend }}</h4>    <div style="display: block">      <canvas baseChart [data]="data" [labels]="labels" [chartType]="type"></canvas>    </div>  </div></div></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'DoughnutChartComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'DoughnutChartComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/DriversComponent.html b/src/docs/components/DriversComponent.html
new file mode 100644
index 0000000..3153d42
--- /dev/null
+++ b/src/docs/components/DriversComponent.html
@@ -0,0 +1,925 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>DriversComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/pages/drivers/drivers.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-drivers</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>drivers.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./drivers.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#driversList">driversList</a>
+                            </li>
+                            <li>
+                                <a href="#selectYear">selectYear</a>
+                            </li>
+                            <li>
+                                <a href="#showInfo">showInfo</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#infoAlert">infoAlert</a>
+                            </li>
+                            <li>
+                                    <span class="modifier">Private</span>
+                                <a href="#loadDataDialog">loadDataDialog</a>
+                            </li>
+                            <li>
+                                <a href="#loadDataFromAssets">loadDataFromAssets</a>
+                            </li>
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                            <li>
+                                <a href="#selectYearDrivers">selectYearDrivers</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(selectPageService: <a href="../injectables/SharedService.html">SharedService</a>, _driversService: <a href="../injectables/DriversService.html">DriversService</a>, _alertService: <a href="../injectables/AlertService.html">AlertService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="16" class="link-to-prism">src/app/pages/drivers/drivers.component.ts:16</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>selectPageService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/SharedService.html" target="_self" >SharedService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>_driversService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/DriversService.html" target="_self" >DriversService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>_alertService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/AlertService.html" target="_self" >AlertService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="infoAlert"></a>
+                        <span class="name">
+                            <b>
+                            infoAlert
+                            </b>
+                            <a href="#infoAlert"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>infoAlert(driver: <a href="../interfaces/Driver.html">Driver</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="75" class="link-to-prism">src/app/pages/drivers/drivers.component.ts:75</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>driver</td>
+                                                        <td>
+                                                                    <code><a href="../interfaces/Driver.html" target="_self" >Driver</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="loadDataDialog"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Private</span>
+                            loadDataDialog
+                            </b>
+                            <a href="#loadDataDialog"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                            <span class="modifier-icon icon ion-ios-reset"></span>
+                        <code>loadDataDialog(open: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank">boolean</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="29" class="link-to-prism">src/app/pages/drivers/drivers.component.ts:29</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                                    <td>Default value</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>open</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                                <code>true</code>
+                                                        </td>
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="loadDataFromAssets"></a>
+                        <span class="name">
+                            <b>
+                            loadDataFromAssets
+                            </b>
+                            <a href="#loadDataFromAssets"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>loadDataFromAssets()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="64" class="link-to-prism">src/app/pages/drivers/drivers.component.ts:64</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+                            <div class="io-description"><p>Take data from a local file in json format</p>
+</div>
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="23" class="link-to-prism">src/app/pages/drivers/drivers.component.ts:23</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="selectYearDrivers"></a>
+                        <span class="name">
+                            <b>
+                            selectYearDrivers
+                            </b>
+                            <a href="#selectYearDrivers"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>selectYearDrivers(year: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="43" class="link-to-prism">src/app/pages/drivers/drivers.component.ts:43</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+                            <div class="io-description"><p>Take data from server</p>
+</div>
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                                    <td>Default value</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>year</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                                <code>String(new Date().getFullYear())</code>
+                                                        </td>
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+    <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="driversList"></a>
+                        <span class="name">
+                            <b>
+                            driversList
+                            </b>
+                            <a href="#driversList"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>driversList:     <code><a href="../interfaces/Driver.html" target="_self" >Driver[]</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="../interfaces/Driver.html" target="_self" >Driver[]</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="15" class="link-to-prism">src/app/pages/drivers/drivers.component.ts:15</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="selectYear"></a>
+                        <span class="name">
+                            <b>
+                            selectYear
+                            </b>
+                            <a href="#selectYear"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>selectYear:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="14" class="link-to-prism">src/app/pages/drivers/drivers.component.ts:14</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="showInfo"></a>
+                        <span class="name">
+                            <b>
+                            showInfo
+                            </b>
+                            <a href="#showInfo"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>showInfo:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="16" class="link-to-prism">src/app/pages/drivers/drivers.component.ts:16</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+import { SharedService } from &#x27;../../services/shared.service&#x27;;
+import { DriversService } from &#x27;../../services/api/drivers.service&#x27;;
+import { Driver } from &#x27;../../interfaces/driver.interface&#x27;;
+import { AlertService } from &#x27;../../services/alert.service&#x27;;
+import swal from &#x27;sweetalert2&#x27;;
+
+@Component({
+  selector: &#x27;app-drivers&#x27;,
+  templateUrl: &#x27;./drivers.component.html&#x27;,
+  styleUrls: [&#x27;./drivers.component.css&#x27;]
+})
+export class DriversComponent implements OnInit {
+  selectYear: string;
+  driversList: Driver[];
+  showInfo: boolean;
+  constructor(
+    private selectPageService: SharedService,
+    private _driversService: DriversService,
+    private _alertService: AlertService
+  ) {}
+
+  ngOnInit() {
+    this.showInfo &#x3D; false;
+    this.selectPageService.setSelectPage(&#x27;drivers&#x27;);
+    this.loadDataFromAssets();
+  }
+
+  private loadDataDialog(open: boolean &#x3D; true) {
+    if (open) {
+      this._alertService.loadData(
+        &#x60;Load ${this.selectYear} season drivers!!&#x60;,
+        &#x27;Wait a moment please!!&#x27;
+      );
+    } else {
+      this._alertService.closeAlert();
+    }
+  }
+
+  /**
+   * Take data from server
+   */
+  selectYearDrivers(year: string &#x3D; String(new Date().getFullYear())) {
+    this.selectYear &#x3D; year;
+    this.loadDataDialog();
+    this._driversService.listByYear(year).subscribe(
+      (data: Driver[]) &#x3D;&gt; {
+        this.selectPageService.setSelectPage(
+          &#x60;Drivers List to  ${this.selectYear} season&#x60;
+        );
+        this.driversList &#x3D; data;
+        this.showInfo &#x3D; true;
+        this._alertService.closeAlert();
+      },
+      _errorService &#x3D;&gt; {
+        this.loadDataFromAssets();
+      }
+    );
+  }
+
+  /**
+   * Take data from a local file in json format
+   */
+  loadDataFromAssets() {
+    this.selectYear &#x3D; &#x27;2018&#x27;;
+    this.loadDataDialog();
+    this._driversService.loadListFromLocal().subscribe((data: Driver[]) &#x3D;&gt; {
+      console.log(data);
+      this.showInfo &#x3D; true;
+      this.driversList &#x3D; data;
+      this.loadDataDialog(false);
+    });
+  }
+
+  infoAlert(driver: Driver) {
+
+    swal({
+      title: &#x60;&lt;br/&gt;&lt;strong&gt; ${driver.givenName} ${driver.familyName} &lt;/strong&gt;&#x60;,
+      html: &#x60;&#x60;,
+      showCloseButton: false,
+      showCancelButton: false,
+      focusConfirm: false,
+      confirmButtonText: &#x27;Close&#x27;,
+      confirmButtonAriaLabel: &#x27;Thumbs up, great!&#x27;,
+      cancelButtonText: &#x27;&lt;i class&#x3D;&quot;fa fa-thumbs-down&quot;&gt;&lt;/i&gt;&#x27;,
+      cancelButtonAriaLabel: &#x27;Thumbs down&#x27;
+    });
+  }
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;!--&lt;div class&#x3D;&quot;card mb-3 animated fadeIn&quot; *ngIf&#x3D;&quot;showInfo&quot;&gt;
+&lt;div class&#x3D;&quot;card-header&quot;&gt;
+    &lt;i class&#x3D;&quot;fa fa-table&quot;&gt;&lt;/i&gt; Drivers List to {{ selectYear }} season
+  &lt;/div&gt;--&gt;
+  &lt;!--&lt;div class&#x3D;&quot;card-body table-responsive&quot;&gt;
+    &lt;table class&#x3D;&quot;table table-striped table-bordered&quot;&gt;
+      &lt;thead&gt;
+        &lt;tr&gt;
+          &lt;th scope&#x3D;&quot;col&quot; colspan&#x3D;&quot;2&quot;&gt;Driver&lt;/th&gt;
+          &lt;th scope&#x3D;&quot;col&quot;&gt;Date of Birth&lt;/th&gt;
+          &lt;th scope&#x3D;&quot;col&quot;&gt;Nationality&lt;/th&gt;
+          &lt;th scope&#x3D;&quot;col&quot;&gt;More info&lt;/th&gt;
+        &lt;/tr&gt;
+      &lt;/thead&gt;
+      &lt;tbody&gt;
+        &lt;ng-template ngFor let-driver [ngForOf]&#x3D;&quot;driversList&quot; let-i&#x3D;&quot;index&quot;&gt;
+          &lt;tr class&#x3D;&quot;animated fadeIn&quot;&gt;
+            &lt;td&gt;&lt;strong&gt;#{{ driver.permanentNumber }} &lt;/strong&gt;&lt;/td&gt;
+            &lt;td&gt;
+              &lt;img class&#x3D;&quot;profile-photo&quot; src&#x3D;&quot;https://mugan86.com/amugika/img/f1/drivers/{{driver.driverId}}.png&quot; 
+              default&#x3D;&quot;https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png&quot;/&gt;
+              {{driver.givenName}} {{driver.familyName}}  
+            &lt;/td&gt;
+            &lt;td align&#x3D;&quot;center&quot;&gt;{{driver.dateOfBirth}}&lt;/td&gt;
+            &lt;td align&#x3D;&quot;center&quot;&gt;
+              &lt;img src&#x3D;&quot;https://mugan86.com/amugika/img/f1/flags/small/{{driver.nationality}}.png&quot; default&#x3D;&quot;../../../assets/img/Unknown.png&quot;
+              /&gt;
+            &lt;/td&gt;
+            &lt;td&gt;
+              &lt;a href&#x3D;&quot;{{driver.url}}&quot; title&#x3D;&quot;Web browser version&quot;&gt;
+                &lt;img src&#x3D;&quot;../../../assets/internet.png&quot; /&gt;
+              &lt;/a&gt;
+              &lt;a href&#x3D;&quot;{{driver.url | wikipediaUrlMobile}}&quot; title&#x3D;&quot;Mobile version&quot;&gt;
+              &lt;img src&#x3D;&quot;../../../assets/mobile.png&quot; /&gt;
+              &lt;/a&gt;
+            &lt;/td&gt;
+          &lt;/tr&gt;
+        &lt;/ng-template&gt;
+      &lt;/tbody&gt;
+    &lt;/table&gt;
+  &lt;/div&gt;
+  &lt;div class&#x3D;&quot;card-footer small text-muted&quot;&gt;Updated yesterday at 11:59 PM&lt;/div&gt;
+&lt;/div&gt;--&gt;
+
+&lt;div class&#x3D;&quot;card-columns animated fadeIn&quot;&gt;
+  &lt;ng-template ngFor let-driver [ngForOf]&#x3D;&quot;driversList&quot; let-i&#x3D;&quot;index&quot;&gt;
+    &lt;div class&#x3D;&quot;card&quot; (click)&#x3D;&quot;infoAlert(driver)&quot;&gt;
+      &lt;div class&#x3D;&quot;card-body&quot; &gt;
+        &lt;img class&#x3D;&quot;profile-photo&quot; src&#x3D;&quot;https://mugan86.com/amugika/img/f1/drivers/{{driver.driverId}}.png&quot; default&#x3D;&quot;https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png&quot;
+        /&gt;&amp;nbsp;
+        &lt;img src&#x3D;&quot;https://mugan86.com/amugika/img/f1/flags/small/{{driver.nationality}}.png&quot; default&#x3D;&quot;../../../assets/img/Unknown.png&quot;
+        /&gt;&amp;nbsp;&lt;strong&gt;#{{ driver.permanentNumber }} &lt;/strong&gt;
+        &lt;h5 class&#x3D;&quot;card-title&quot;&gt;{{driver.givenName}} {{driver.familyName}}&lt;/h5&gt;
+        &lt;p class&#x3D;&quot;card-text&quot;&gt;
+          &lt;span&gt;{{driver.dateOfBirth}}&lt;/span&gt;&lt;br/&gt;
+          &lt;a href&#x3D;&quot;{{driver.url}}&quot; title&#x3D;&quot;Web browser version&quot; target&#x3D;&quot;_blank&quot;&gt;
+            &lt;img src&#x3D;&quot;../../../assets/internet.png&quot; /&gt;
+          &lt;/a&gt;
+          &lt;a href&#x3D;&quot;{{driver.url | wikipediaUrlMobile}}&quot; target&#x3D;&quot;_blank&quot; title&#x3D;&quot;Mobile version&quot;&gt;
+            &lt;img src&#x3D;&quot;../../../assets/mobile.png&quot; /&gt;
+          &lt;/a&gt;
+        &lt;/p&gt;
+        &lt;!--&lt;p class&#x3D;&quot;card-text&quot;&gt;
+          &lt;small class&#x3D;&quot;text-muted&quot;&gt;Last updated 3 mins ago&lt;/small&gt;
+        &lt;/p&gt;--&gt;
+      &lt;/div&gt;
+    &lt;/div&gt;
+  &lt;/ng-template&gt;
+&lt;/div&gt;
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><!--<div class="card mb-3 animated fadeIn" *ngIf="showInfo"><div class="card-header">    <i class="fa fa-table"></i> Drivers List to {{ selectYear }} season  </div>-->  <!--<div class="card-body table-responsive">    <table class="table table-striped table-bordered">      <thead>        <tr>          <th scope="col" colspan="2">Driver</th>          <th scope="col">Date of Birth</th>          <th scope="col">Nationality</th>          <th scope="col">More info</th>        </tr>      </thead>      <tbody>        <ng-template ngFor let-driver [ngForOf]="driversList" let-i="index">          <tr class="animated fadeIn">            <td><strong>#{{ driver.permanentNumber }} </strong></td>            <td>              <img class="profile-photo" src="https://mugan86.com/amugika/img/f1/drivers/{{driver.driverId}}.png"               default="https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png"/>              {{driver.givenName}} {{driver.familyName}}              </td>            <td align="center">{{driver.dateOfBirth}}</td>            <td align="center">              <img src="https://mugan86.com/amugika/img/f1/flags/small/{{driver.nationality}}.png" default="../../../assets/img/Unknown.png"              />            </td>            <td>              <a href="{{driver.url}}" title="Web browser version">                <img src="../../../assets/internet.png" />              </a>              <a href="{{driver.url | wikipediaUrlMobile}}" title="Mobile version">              <img src="../../../assets/mobile.png" />              </a>            </td>          </tr>        </ng-template>      </tbody>    </table>  </div>  <div class="card-footer small text-muted">Updated yesterday at 11:59 PM</div></div>--><div class="card-columns animated fadeIn">  <ng-template ngFor let-driver [ngForOf]="driversList" let-i="index">    <div class="card" (click)="infoAlert(driver)">      <div class="card-body" >        <img class="profile-photo" src="https://mugan86.com/amugika/img/f1/drivers/{{driver.driverId}}.png" default="https://raw.githubusercontent.com/mugan86/udemy-0-to-expert-angular/master/04_spotifyApp/src/assets/img/noimage.png"        />&nbsp;        <img src="https://mugan86.com/amugika/img/f1/flags/small/{{driver.nationality}}.png" default="../../../assets/img/Unknown.png"        />&nbsp;<strong>#{{ driver.permanentNumber }} </strong>        <h5 class="card-title">{{driver.givenName}} {{driver.familyName}}</h5>        <p class="card-text">          <span>{{driver.dateOfBirth}}</span><br/>          <a href="{{driver.url}}" title="Web browser version" target="_blank">            <img src="../../../assets/internet.png" />          </a>          <a href="{{driver.url | wikipediaUrlMobile}}" target="_blank" title="Mobile version">            <img src="../../../assets/mobile.png" />          </a>        </p>        <!--<p class="card-text">          <small class="text-muted">Last updated 3 mins ago</small>        </p>-->      </div>    </div>  </ng-template></div></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'DriversComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'DriversComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/FooterComponent.html b/src/docs/components/FooterComponent.html
new file mode 100644
index 0000000..e61581e
--- /dev/null
+++ b/src/docs/components/FooterComponent.html
@@ -0,0 +1,385 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>FooterComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/shared/footer/footer.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-footer</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>footer.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./footer.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#date">date</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor()</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/shared/footer/footer.component.ts:9</a></div>
+                            </td>
+                        </tr>
+
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/shared/footer/footer.component.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+    <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="date"></a>
+                        <span class="name">
+                            <b>
+                            date
+                            </b>
+                            <a href="#date"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>date:     <code></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>new Date().getFullYear()</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/shared/footer/footer.component.ts:9</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+
+@Component({
+  selector: &#x27;app-footer&#x27;,
+  templateUrl: &#x27;./footer.component.html&#x27;,
+  styleUrls: [&#x27;./footer.component.css&#x27;]
+})
+export class FooterComponent implements OnInit {
+  date &#x3D; new Date().getFullYear();
+  constructor() {}
+
+  ngOnInit() {}
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;footer class&#x3D;&quot;sticky-footer bg-info&quot;&gt;
+  &lt;div class&#x3D;&quot;container&quot;&gt;
+    &lt;div class&#x3D;&quot;text-center&quot;&gt;
+      &lt;small&gt;Copyright © Anartz Mugika {{ date }}&lt;/small&gt;
+    &lt;/div&gt;
+  &lt;/div&gt;
+&lt;/footer&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><footer class="sticky-footer bg-info">  <div class="container">    <div class="text-center">      <small>Copyright © Anartz Mugika {{ date }}</small>    </div>  </div></footer></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'FooterComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'FooterComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/ForgotComponent.html b/src/docs/components/ForgotComponent.html
new file mode 100644
index 0000000..1cb8250
--- /dev/null
+++ b/src/docs/components/ForgotComponent.html
@@ -0,0 +1,346 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>ForgotComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/login/forgot/forgot.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-forgot</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>forgot.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./forgot.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor()</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/login/forgot/forgot.component.ts:8</a></div>
+                            </td>
+                        </tr>
+
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/login/forgot/forgot.component.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+
+@Component({
+  selector: &#x27;app-forgot&#x27;,
+  templateUrl: &#x27;./forgot.component.html&#x27;,
+  styleUrls: [&#x27;./forgot.component.css&#x27;]
+})
+export class ForgotComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit() {
+  }
+
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;div class&#x3D;&quot;card card-login mx-auto mt-5 animated fadeIn&quot;&gt;
+  &lt;div class&#x3D;&quot;card-header&quot;&gt;Reset Password&lt;/div&gt;
+  &lt;div class&#x3D;&quot;card-body&quot;&gt;
+    &lt;div class&#x3D;&quot;text-center mt-4 mb-5&quot;&gt;
+      &lt;h4&gt;Forgot your password?&lt;/h4&gt;
+      &lt;p&gt;Enter your email address and we will send you instructions on how to reset your password.&lt;/p&gt;
+    &lt;/div&gt;
+    &lt;form&gt;
+      &lt;div class&#x3D;&quot;form-group&quot;&gt;
+        &lt;input class&#x3D;&quot;form-control&quot; id&#x3D;&quot;exampleInputEmail1&quot; type&#x3D;&quot;email&quot; aria-describedby&#x3D;&quot;emailHelp&quot; placeholder&#x3D;&quot;Enter email address&quot;&gt;
+      &lt;/div&gt;
+      &lt;a class&#x3D;&quot;btn btn-primary btn-block&quot; routerLink&#x3D;&quot;/login&quot;&gt;Reset Password&lt;/a&gt;
+    &lt;/form&gt;
+    &lt;div class&#x3D;&quot;text-center&quot;&gt;
+      &lt;a class&#x3D;&quot;d-block small mt-3&quot; routerLink&#x3D;&quot;/register&quot;&gt;Register an Account&lt;/a&gt;
+      &lt;a class&#x3D;&quot;d-block small&quot; routerLink&#x3D;&quot;/login&quot;&gt;Login Page&lt;/a&gt;
+    &lt;/div&gt;
+  &lt;/div&gt;
+&lt;/div&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><div class="card card-login mx-auto mt-5 animated fadeIn">  <div class="card-header">Reset Password</div>  <div class="card-body">    <div class="text-center mt-4 mb-5">      <h4>Forgot your password?</h4>      <p>Enter your email address and we will send you instructions on how to reset your password.</p>    </div>    <form>      <div class="form-group">        <input class="form-control" id="exampleInputEmail1" type="email" aria-describedby="emailHelp" placeholder="Enter email address">      </div>      <a class="btn btn-primary btn-block" routerLink="/login">Reset Password</a>    </form>    <div class="text-center">      <a class="d-block small mt-3" routerLink="/register">Register an Account</a>      <a class="d-block small" routerLink="/login">Login Page</a>    </div>  </div></div></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'ForgotComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'ForgotComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/GoogleMapsComponent.html b/src/docs/components/GoogleMapsComponent.html
new file mode 100644
index 0000000..0af1264
--- /dev/null
+++ b/src/docs/components/GoogleMapsComponent.html
@@ -0,0 +1,539 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>GoogleMapsComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/components/google-maps/google-maps.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-google-maps</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>google-maps.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./google-maps.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#lat">lat</a>
+                            </li>
+                            <li>
+                                <a href="#lng">lng</a>
+                            </li>
+                            <li>
+                                <a href="#markers">markers</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Inputs</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#circuitsData">circuitsData</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor()</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="15" class="link-to-prism">src/app/components/google-maps/google-maps.component.ts:15</a></div>
+                            </td>
+                        </tr>
+
+            </tbody>
+        </table>
+</section>
+
+    <section>
+    <h3 id="inputs">Inputs</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="circuitsData"></a>
+                        <code>circuitsData</code>
+                    </td>
+                    <td class="col-md-10">
+                            <p>
+                            <em>Type :</em>    <code><a href="../interfaces/Circuit.html" target="_self" >Circuit[]</a></code>
+
+                            </p>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="15" class="link-to-prism">src/app/components/google-maps/google-maps.component.ts:15</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="17" class="link-to-prism">src/app/components/google-maps/google-maps.component.ts:17</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+    <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="lat"></a>
+                        <span class="name">
+                            <b>
+                            lat
+                            </b>
+                            <a href="#lat"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>lat:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>23.022505</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/components/google-maps/google-maps.component.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="lng"></a>
+                        <span class="name">
+                            <b>
+                            lng
+                            </b>
+                            <a href="#lng"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>lng:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>72.571362</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/components/google-maps/google-maps.component.ts:13</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="markers"></a>
+                        <span class="name">
+                            <b>
+                            markers
+                            </b>
+                            <a href="#markers"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>markers:     <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[]</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/components/google-maps/google-maps.component.ts:11</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit, Input } from &#x27;@angular/core&#x27;;
+import { Marker } from &#x27;../../models/marker.model&#x27;;
+import { Circuit } from &#x27;../../interfaces/circuit.interface&#x27;;
+
+@Component({
+  selector: &#x27;app-google-maps&#x27;,
+  templateUrl: &#x27;./google-maps.component.html&#x27;,
+  styleUrls: [&#x27;./google-maps.component.css&#x27;]
+})
+export class GoogleMapsComponent implements OnInit {
+  markers: any &#x3D; [];
+  lat &#x3D; 23.022505;
+  lng &#x3D; 72.571362;
+  @Input()
+  circuitsData: Circuit[];
+  constructor() {}
+  ngOnInit() {
+    if (this.circuitsData.length &#x3D;&#x3D;&#x3D; 0) {
+      this.markers.push(
+        new Marker(
+          &#x27;Current Location&#x27;,
+          this.lat,
+          this.lng,
+          &#x27;Location not defined&#x27;
+        )
+      );
+    } else {
+      for (let i &#x3D; 0; i &lt; this.circuitsData.length; i++) {
+        this.markers.push(
+          new Marker(
+            this.circuitsData[i].circuitName,
+            +this.circuitsData[i].Location.lat,
+            +this.circuitsData[i].Location.long,
+            this.circuitsData[i].Location.locality
+          )
+        );
+      }
+    }
+  }
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;agm-map [latitude]&#x3D;&quot;40.416775&quot; [longitude]&#x3D;&quot;-3.703790&quot; [zoom]&#x3D;&quot;3&quot; class&#x3D;&quot;animated fadeIn&quot;&gt;
+  &lt;agm-marker *ngFor&#x3D;&quot;let m of markers&quot; [latitude]&#x3D;&quot;m.lat&quot; [longitude]&#x3D;&quot;m.lng&quot;&gt;
+    &lt;agm-info-window&gt;
+      &lt;strong&gt;{{m.name}}&lt;/strong&gt;
+    &lt;/agm-info-window&gt;
+  &lt;/agm-marker&gt;
+&lt;/agm-map&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><agm-map [latitude]="40.416775" [longitude]="-3.703790" [zoom]="3" class="animated fadeIn">  <agm-marker *ngFor="let m of markers" [latitude]="m.lat" [longitude]="m.lng">    <agm-info-window>      <strong>{{m.name}}</strong>    </agm-info-window>  </agm-marker></agm-map></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'GoogleMapsComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'GoogleMapsComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/HeaderComponent.html b/src/docs/components/HeaderComponent.html
new file mode 100644
index 0000000..63d6b96
--- /dev/null
+++ b/src/docs/components/HeaderComponent.html
@@ -0,0 +1,637 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>HeaderComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/shared/header/header.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-header</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>header.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./header.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#userNameLastname">userNameLastname</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#logout">logout</a>
+                            </li>
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(router: <a href="https://angular.io/api/router/Router" target="_blank">Router</a>, alertService: <a href="../injectables/AlertService.html">AlertService</a>, localStorage: <a href="../injectables/LocalStorageService.html">LocalStorageService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/shared/header/header.component.ts:12</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>router</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="https://angular.io/api/router/Router" target="_blank" >Router</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>alertService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/AlertService.html" target="_self" >AlertService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>localStorage</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/LocalStorageService.html" target="_self" >LocalStorageService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="logout"></a>
+                        <span class="name">
+                            <b>
+                            logout
+                            </b>
+                            <a href="#logout"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>logout()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="27" class="link-to-prism">src/app/shared/header/header.component.ts:27</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="15" class="link-to-prism">src/app/shared/header/header.component.ts:15</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+    <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="userNameLastname"></a>
+                        <span class="name">
+                            <b>
+                            userNameLastname
+                            </b>
+                            <a href="#userNameLastname"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>userNameLastname:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/shared/header/header.component.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+import { Router } from &#x27;@angular/router&#x27;;
+import { AlertService } from &#x27;../../services/alert.service&#x27;;
+import { LocalStorageService } from &#x27;../../services/local-storage.service&#x27;;
+
+@Component({
+  selector: &#x27;app-header&#x27;,
+  templateUrl: &#x27;./header.component.html&#x27;,
+  styleUrls: [&#x27;./header.component.css&#x27;]
+})
+export class HeaderComponent implements OnInit {
+  userNameLastname: string;
+  constructor(private router: Router, private alertService: AlertService, private localStorage: LocalStorageService) { }
+
+  ngOnInit() {
+    const loginData &#x3D; this.localStorage.takeUserLoginData();
+    if (loginData &#x3D;&#x3D;&#x3D; null) {
+      this.userNameLastname &#x3D; &#x27;&#x27;;
+      console.log(&#x27;go to login...from header&#x27;);
+      this.localStorage.clearSelectData(&#x27;user_credentials&#x27;);
+      this.router.navigate([&#x27;/login&#x27;]);
+    } else {
+      this.userNameLastname &#x3D; &#x60;${loginData.name} ${loginData.lastname}&#x60;;
+    }
+  }
+
+  logout() {
+
+    this.alertService.confirm(
+      {
+        title: &#x27;Are you sure ?&#x27;,
+        text: &#x27;You won\&#x27;t be able to revert this!&#x27;,
+        type: &#x27;warning&#x27;,
+        showCancelButton: true,
+        confirmButtonColor: &#x27;#3085d6&#x27;,
+        cancelButtonColor: &#x27;#d33&#x27;,
+        confirmButtonText: &#x27;Yes, close session!&#x27;
+      }
+    )
+    .then(result &#x3D;&gt; {
+      if (result.value) {
+        console.log(&#x27;go to login...&#x27;);
+        this.localStorage.clearSelectData(&#x27;user_credentials&#x27;);
+        this.router.navigate([&#x27;/login&#x27;]);
+      }
+    });
+  }
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;nav class&#x3D;&quot;navbar navbar-expand-lg navbar-dark bg-info fixed-top&quot; id&#x3D;&quot;mainNav&quot;&gt;
+  &lt;a class&#x3D;&quot;navbar-brand&quot; routerLink&#x3D;&quot;/dashboard&quot;&gt;MuganPro Panel&lt;/a&gt;
+  &lt;button class&#x3D;&quot;navbar-toggler navbar-toggler-right&quot; type&#x3D;&quot;button&quot; data-toggle&#x3D;&quot;collapse&quot; data-target&#x3D;&quot;#navbarResponsive&quot;
+    aria-controls&#x3D;&quot;navbarResponsive&quot; aria-expanded&#x3D;&quot;false&quot; aria-label&#x3D;&quot;Toggle navigation&quot;&gt;
+    &lt;span class&#x3D;&quot;navbar-toggler-icon&quot;&gt;&lt;/span&gt;
+  &lt;/button&gt;
+  &lt;div class&#x3D;&quot;collapse navbar-collapse&quot; id&#x3D;&quot;navbarResponsive&quot;&gt;
+    &lt;app-sidebar&gt;&lt;/app-sidebar&gt;
+    &lt;ul class&#x3D;&quot;navbar-nav ml-auto&quot;&gt;
+      &lt;li class&#x3D;&quot;nav-item dropdown&quot;&gt;
+        &lt;a class&#x3D;&quot;nav-link dropdown-toggle mr-lg-2&quot; id&#x3D;&quot;messagesDropdown&quot; href&#x3D;&quot;#&quot; data-toggle&#x3D;&quot;dropdown&quot; aria-haspopup&#x3D;&quot;true&quot; aria-expanded&#x3D;&quot;false&quot;&gt;
+          &lt;img class&#x3D;&quot;img-responsive&quot; src&#x3D;&quot;https://www.w3schools.com/howto/img_avatar.png&quot; alt&#x3D;&quot;&quot;&gt;
+          &amp;nbsp;{{ userNameLastname }}
+        &lt;/a&gt;
+        &lt;div class&#x3D;&quot;dropdown-menu animated fadeIn&quot; aria-labelledby&#x3D;&quot;messagesDropdown&quot;&gt;
+          &lt;a class&#x3D;&quot;dropdown-item &quot; (click)&#x3D;&quot;logout()&quot;&gt;
+            &lt;i class&#x3D;&quot;fas fa-user small&quot;&gt;&lt;/i&gt; &amp;nbsp;&amp;nbsp;Mi profile
+          &lt;/a&gt;
+          &lt;div class&#x3D;&quot;dropdown-divider&quot;&gt;&lt;/div&gt;
+          &lt;a class&#x3D;&quot;dropdown-item&quot; (click)&#x3D;&quot;logout()&quot;&gt;
+            &lt;i class&#x3D;&quot;fab fa-whmcs small&quot;&gt;&lt;/i&gt; &amp;nbsp;&amp;nbsp;Configuration
+          &lt;/a&gt;
+          &lt;div class&#x3D;&quot;dropdown-divider&quot;&gt;&lt;/div&gt;
+          &lt;a class&#x3D;&quot;dropdown-item&quot; (click)&#x3D;&quot;logout()&quot;&gt;
+            &lt;i class&#x3D;&quot;fas fa-sign-out-alt small&quot;&gt;&lt;/i&gt; &amp;nbsp;&amp;nbsp;Logout
+          &lt;/a&gt;
+        &lt;/div&gt;
+      &lt;/li&gt;
+      &lt;li class&#x3D;&quot;nav-item dropdown&quot;&gt;
+        &lt;a class&#x3D;&quot;nav-link dropdown-toggle mr-lg-2&quot; id&#x3D;&quot;messagesDropdown&quot; href&#x3D;&quot;#&quot; data-toggle&#x3D;&quot;dropdown&quot; aria-haspopup&#x3D;&quot;true&quot; aria-expanded&#x3D;&quot;false&quot;&gt;
+          &lt;i class&#x3D;&quot;fa fa-fw fa-envelope&quot;&gt;&lt;/i&gt;
+          &lt;span class&#x3D;&quot;d-lg-none&quot;&gt;Messages
+            &lt;span class&#x3D;&quot;badge badge-pill badge-primary&quot;&gt;12 New&lt;/span&gt;
+          &lt;/span&gt;
+          &lt;span class&#x3D;&quot;indicator text-primary d-none d-lg-block&quot;&gt;
+            &lt;i class&#x3D;&quot;fa fa-fw fa-circle&quot;&gt;&lt;/i&gt;
+          &lt;/span&gt;
+        &lt;/a&gt;
+        &lt;div class&#x3D;&quot;dropdown-menu animated fadeIn&quot; aria-labelledby&#x3D;&quot;messagesDropdown&quot;&gt;
+          &lt;h6 class&#x3D;&quot;dropdown-header&quot;&gt;New Messages:&lt;/h6&gt;
+          &lt;div class&#x3D;&quot;dropdown-divider&quot;&gt;&lt;/div&gt;
+          &lt;a class&#x3D;&quot;dropdown-item&quot; href&#x3D;&quot;#&quot;&gt;
+            &lt;strong&gt;David Miller&lt;/strong&gt;
+            &lt;span class&#x3D;&quot;small float-right text-muted&quot;&gt;11:21 AM&lt;/span&gt;
+            &lt;div class&#x3D;&quot;dropdown-message small&quot;&gt;Hey there! This new version of SB Admin is pretty awesome! These messages clip off when they reach the end of
+              the box so they don&#x27;t overflow over to the sides!&lt;/div&gt;
+          &lt;/a&gt;
+          &lt;div class&#x3D;&quot;dropdown-divider&quot;&gt;&lt;/div&gt;
+          &lt;a class&#x3D;&quot;dropdown-item&quot; href&#x3D;&quot;#&quot;&gt;
+            &lt;strong&gt;Jane Smith&lt;/strong&gt;
+            &lt;span class&#x3D;&quot;small float-right text-muted&quot;&gt;11:21 AM&lt;/span&gt;
+            &lt;div class&#x3D;&quot;dropdown-message small&quot;&gt;I was wondering if you could meet for an appointment at 3:00 instead of 4:00. Thanks!&lt;/div&gt;
+          &lt;/a&gt;
+          &lt;div class&#x3D;&quot;dropdown-divider&quot;&gt;&lt;/div&gt;
+          &lt;a class&#x3D;&quot;dropdown-item&quot; href&#x3D;&quot;#&quot;&gt;
+            &lt;strong&gt;John Doe&lt;/strong&gt;
+            &lt;span class&#x3D;&quot;small float-right text-muted&quot;&gt;11:21 AM&lt;/span&gt;
+            &lt;div class&#x3D;&quot;dropdown-message small&quot;&gt;I&#x27;ve sent the final files over to you for review. When you&#x27;re able to sign off of them let me know and we can
+              discuss distribution.&lt;/div&gt;
+          &lt;/a&gt;
+          &lt;div class&#x3D;&quot;dropdown-divider&quot;&gt;&lt;/div&gt;
+          &lt;a class&#x3D;&quot;dropdown-item small&quot; href&#x3D;&quot;#&quot;&gt;View all messages&lt;/a&gt;
+        &lt;/div&gt;
+      &lt;/li&gt;
+      &lt;li class&#x3D;&quot;nav-item dropdown&quot;&gt;
+        &lt;a class&#x3D;&quot;nav-link dropdown-toggle mr-lg-2&quot; id&#x3D;&quot;alertsDropdown&quot; href&#x3D;&quot;#&quot; data-toggle&#x3D;&quot;dropdown&quot; aria-haspopup&#x3D;&quot;true&quot; aria-expanded&#x3D;&quot;false&quot;&gt;
+          &lt;i class&#x3D;&quot;fa fa-fw fa-bell&quot;&gt;&lt;/i&gt;
+          &lt;span class&#x3D;&quot;d-lg-none&quot;&gt;Alerts
+            &lt;span class&#x3D;&quot;badge badge-pill badge-warning&quot;&gt;6 New&lt;/span&gt;
+          &lt;/span&gt;
+          &lt;span class&#x3D;&quot;indicator text-warning d-none d-lg-block&quot;&gt;
+            &lt;i class&#x3D;&quot;fa fa-fw fa-circle&quot;&gt;&lt;/i&gt;
+          &lt;/span&gt;
+        &lt;/a&gt;
+        &lt;div class&#x3D;&quot;dropdown-menu animated fadeIn&quot; aria-labelledby&#x3D;&quot;alertsDropdown&quot;&gt;
+          &lt;h6 class&#x3D;&quot;dropdown-header&quot;&gt;New Alerts:&lt;/h6&gt;
+          &lt;div class&#x3D;&quot;dropdown-divider&quot;&gt;&lt;/div&gt;
+          &lt;a class&#x3D;&quot;dropdown-item&quot; href&#x3D;&quot;#&quot;&gt;
+            &lt;span class&#x3D;&quot;text-success&quot;&gt;
+              &lt;strong&gt;
+                  &lt;i class&#x3D;&quot;fas fa-long-arrow-alt-up&quot;&gt;&lt;/i&gt; &amp;nbsp;Status Update&lt;/strong&gt;
+            &lt;/span&gt;
+            &lt;span class&#x3D;&quot;small float-right text-muted&quot;&gt;11:21 AM&lt;/span&gt;
+            &lt;div class&#x3D;&quot;dropdown-message small&quot;&gt;This is an automated server response message. All systems are online.&lt;/div&gt;
+          &lt;/a&gt;
+          &lt;div class&#x3D;&quot;dropdown-divider&quot;&gt;&lt;/div&gt;
+          &lt;a class&#x3D;&quot;dropdown-item&quot; href&#x3D;&quot;#&quot;&gt;
+            &lt;span class&#x3D;&quot;text-danger&quot;&gt;
+              &lt;strong&gt;
+                  &lt;i class&#x3D;&quot;fas fa-long-arrow-alt-down&quot;&gt;&lt;/i&gt; &amp;nbsp;Status Update&lt;/strong&gt;
+            &lt;/span&gt;
+            &lt;span class&#x3D;&quot;small float-right text-muted&quot;&gt;11:21 AM&lt;/span&gt;
+            &lt;div class&#x3D;&quot;dropdown-message small&quot;&gt;This is an automated server response message. All systems are online.&lt;/div&gt;
+          &lt;/a&gt;
+          &lt;div class&#x3D;&quot;dropdown-divider&quot;&gt;&lt;/div&gt;
+          &lt;a class&#x3D;&quot;dropdown-item&quot; href&#x3D;&quot;#&quot;&gt;
+            &lt;span class&#x3D;&quot;text-success&quot;&gt;
+              &lt;strong&gt;
+                  &lt;i class&#x3D;&quot;fas fa-long-arrow-alt-up&quot;&gt;&lt;/i&gt; &amp;nbsp;Status Update&lt;/strong&gt;
+            &lt;/span&gt;
+            &lt;span class&#x3D;&quot;small float-right text-muted&quot;&gt;11:21 AM&lt;/span&gt;
+            &lt;div class&#x3D;&quot;dropdown-message small&quot;&gt;This is an automated server response message. All systems are online.&lt;/div&gt;
+          &lt;/a&gt;
+          &lt;div class&#x3D;&quot;dropdown-divider&quot;&gt;&lt;/div&gt;
+          &lt;a class&#x3D;&quot;dropdown-item small&quot; href&#x3D;&quot;#&quot;&gt;View all alerts&lt;/a&gt;
+        &lt;/div&gt;
+      &lt;/li&gt;
+      &lt;li class&#x3D;&quot;nav-item&quot;&gt;
+        &lt;a class&#x3D;&quot;nav-link mr-lg-2&quot; href&#x3D;&quot;#&quot; routerLink&#x3D;&quot;/support&quot;&gt;
+          &lt;i class&#x3D;&quot;fas fa-phone&quot;&gt;&lt;/i&gt;
+          &amp;nbsp;Support
+        &lt;/a&gt;
+      &lt;/li&gt;
+      &lt;!--&lt;li class&#x3D;&quot;nav-item&quot;&gt;
+        &lt;form class&#x3D;&quot;form-inline my-2 my-lg-0 mr-lg-2&quot;&gt;
+          &lt;div class&#x3D;&quot;input-group&quot;&gt;
+            &lt;input class&#x3D;&quot;form-control&quot; type&#x3D;&quot;text&quot; placeholder&#x3D;&quot;Search for...&quot;&gt;
+            &lt;span class&#x3D;&quot;input-group-append&quot;&gt;
+              &lt;button class&#x3D;&quot;btn btn-primary&quot; type&#x3D;&quot;button&quot;&gt;
+                &lt;i class&#x3D;&quot;fa fa-search&quot;&gt;&lt;/i&gt;
+              &lt;/button&gt;
+            &lt;/span&gt;
+          &lt;/div&gt;
+        &lt;/form&gt;
+      &lt;/li&gt;--&gt;
+    &lt;/ul&gt;
+  &lt;/div&gt;
+&lt;/nav&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><nav class="navbar navbar-expand-lg navbar-dark bg-info fixed-top" id="mainNav">  <a class="navbar-brand" routerLink="/dashboard">MuganPro Panel</a>  <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive"    aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">    <span class="navbar-toggler-icon"></span>  </button>  <div class="collapse navbar-collapse" id="navbarResponsive">    <app-sidebar></app-sidebar>    <ul class="navbar-nav ml-auto">      <li class="nav-item dropdown">        <a class="nav-link dropdown-toggle mr-lg-2" id="messagesDropdown" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">          <img class="img-responsive" src="https://www.w3schools.com/howto/img_avatar.png" alt="">          &nbsp;{{ userNameLastname }}        </a>        <div class="dropdown-menu animated fadeIn" aria-labelledby="messagesDropdown">          <a class="dropdown-item " (click)="logout()">            <i class="fas fa-user small"></i> &nbsp;&nbsp;Mi profile          </a>          <div class="dropdown-divider"></div>          <a class="dropdown-item" (click)="logout()">            <i class="fab fa-whmcs small"></i> &nbsp;&nbsp;Configuration          </a>          <div class="dropdown-divider"></div>          <a class="dropdown-item" (click)="logout()">            <i class="fas fa-sign-out-alt small"></i> &nbsp;&nbsp;Logout          </a>        </div>      </li>      <li class="nav-item dropdown">        <a class="nav-link dropdown-toggle mr-lg-2" id="messagesDropdown" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">          <i class="fa fa-fw fa-envelope"></i>          <span class="d-lg-none">Messages            <span class="badge badge-pill badge-primary">12 New</span>          </span>          <span class="indicator text-primary d-none d-lg-block">            <i class="fa fa-fw fa-circle"></i>          </span>        </a>        <div class="dropdown-menu animated fadeIn" aria-labelledby="messagesDropdown">          <h6 class="dropdown-header">New Messages:</h6>          <div class="dropdown-divider"></div>          <a class="dropdown-item" href="#">            <strong>David Miller</strong>            <span class="small float-right text-muted">11:21 AM</span>            <div class="dropdown-message small">Hey there! This new version of SB Admin is pretty awesome! These messages clip off when they reach the end of              the box so they don\'t overflow over to the sides!</div>          </a>          <div class="dropdown-divider"></div>          <a class="dropdown-item" href="#">            <strong>Jane Smith</strong>            <span class="small float-right text-muted">11:21 AM</span>            <div class="dropdown-message small">I was wondering if you could meet for an appointment at 3:00 instead of 4:00. Thanks!</div>          </a>          <div class="dropdown-divider"></div>          <a class="dropdown-item" href="#">            <strong>John Doe</strong>            <span class="small float-right text-muted">11:21 AM</span>            <div class="dropdown-message small">I\'ve sent the final files over to you for review. When you\'re able to sign off of them let me know and we can              discuss distribution.</div>          </a>          <div class="dropdown-divider"></div>          <a class="dropdown-item small" href="#">View all messages</a>        </div>      </li>      <li class="nav-item dropdown">        <a class="nav-link dropdown-toggle mr-lg-2" id="alertsDropdown" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">          <i class="fa fa-fw fa-bell"></i>          <span class="d-lg-none">Alerts            <span class="badge badge-pill badge-warning">6 New</span>          </span>          <span class="indicator text-warning d-none d-lg-block">            <i class="fa fa-fw fa-circle"></i>          </span>        </a>        <div class="dropdown-menu animated fadeIn" aria-labelledby="alertsDropdown">          <h6 class="dropdown-header">New Alerts:</h6>          <div class="dropdown-divider"></div>          <a class="dropdown-item" href="#">            <span class="text-success">              <strong>                  <i class="fas fa-long-arrow-alt-up"></i> &nbsp;Status Update</strong>            </span>            <span class="small float-right text-muted">11:21 AM</span>            <div class="dropdown-message small">This is an automated server response message. All systems are online.</div>          </a>          <div class="dropdown-divider"></div>          <a class="dropdown-item" href="#">            <span class="text-danger">              <strong>                  <i class="fas fa-long-arrow-alt-down"></i> &nbsp;Status Update</strong>            </span>            <span class="small float-right text-muted">11:21 AM</span>            <div class="dropdown-message small">This is an automated server response message. All systems are online.</div>          </a>          <div class="dropdown-divider"></div>          <a class="dropdown-item" href="#">            <span class="text-success">              <strong>                  <i class="fas fa-long-arrow-alt-up"></i> &nbsp;Status Update</strong>            </span>            <span class="small float-right text-muted">11:21 AM</span>            <div class="dropdown-message small">This is an automated server response message. All systems are online.</div>          </a>          <div class="dropdown-divider"></div>          <a class="dropdown-item small" href="#">View all alerts</a>        </div>      </li>      <li class="nav-item">        <a class="nav-link mr-lg-2" href="#" routerLink="/support">          <i class="fas fa-phone"></i>          &nbsp;Support        </a>      </li>      <!--<li class="nav-item">        <form class="form-inline my-2 my-lg-0 mr-lg-2">          <div class="input-group">            <input class="form-control" type="text" placeholder="Search for...">            <span class="input-group-append">              <button class="btn btn-primary" type="button">                <i class="fa fa-search"></i>              </button>            </span>          </div>        </form>      </li>-->    </ul>  </div></nav></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'HeaderComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'HeaderComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/LineChartComponent.html b/src/docs/components/LineChartComponent.html
new file mode 100644
index 0000000..0c7d9af
--- /dev/null
+++ b/src/docs/components/LineChartComponent.html
@@ -0,0 +1,389 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>LineChartComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/components/charts/line-chart/line-chart.component.ts</code>
+</p>
+
+
+
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-line-chart</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>line-chart.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./line-chart.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Inputs</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#chartType">chartType</a>
+                            </li>
+                            <li>
+                                <a href="#colors">colors</a>
+                            </li>
+                            <li>
+                                <a href="#datasets">datasets</a>
+                            </li>
+                            <li>
+                                <a href="#labels">labels</a>
+                            </li>
+                            <li>
+                                <a href="#legend">legend</a>
+                            </li>
+                            <li>
+                                <a href="#options">options</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+
+    <section>
+    <h3 id="inputs">Inputs</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="chartType"></a>
+                        <code>chartType</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="15" class="link-to-prism">src/app/components/charts/line-chart/line-chart.component.ts:15</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="colors"></a>
+                        <code>colors</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/components/charts/line-chart/line-chart.component.ts:13</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="datasets"></a>
+                        <code>datasets</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/components/charts/line-chart/line-chart.component.ts:10</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="labels"></a>
+                        <code>labels</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/components/charts/line-chart/line-chart.component.ts:11</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="legend"></a>
+                        <code>legend</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="14" class="link-to-prism">src/app/components/charts/line-chart/line-chart.component.ts:14</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="options"></a>
+                        <code>options</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/components/charts/line-chart/line-chart.component.ts:12</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, Input } from &#x27;@angular/core&#x27;;
+
+@Component({
+  selector: &#x27;app-line-chart&#x27;,
+  templateUrl: &#x27;./line-chart.component.html&#x27;,
+  styleUrls: [&#x27;./line-chart.component.css&#x27;]
+})
+export class LineChartComponent {
+
+  @Input() datasets;
+  @Input() labels;
+  @Input() options;
+  @Input() colors;
+  @Input() legend;
+  @Input() chartType;
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;div style&#x3D;&quot;display: block;&quot;&gt;
+  &lt;canvas baseChart width&#x3D;&quot;400&quot; height&#x3D;&quot;400&quot;
+    [datasets]&#x3D;&quot;datasets&quot;
+    [labels]&#x3D;&quot;labels&quot;
+    [options]&#x3D;&quot;options&quot;
+    [colors]&#x3D;&quot;colors&quot;
+    [legend]&#x3D;&quot;legend&quot;
+    [chartType]&#x3D;&quot;chartType&quot;
+    &gt;&lt;/canvas&gt;
+&lt;/div&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><div style="display: block;">  <canvas baseChart width="400" height="400"    [datasets]="datasets"    [labels]="labels"    [options]="options"    [colors]="colors"    [legend]="legend"    [chartType]="chartType"    ></canvas></div></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'LineChartComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'LineChartComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/LoginComponent.html b/src/docs/components/LoginComponent.html
new file mode 100644
index 0000000..d8962a8
--- /dev/null
+++ b/src/docs/components/LoginComponent.html
@@ -0,0 +1,532 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>LoginComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/login/login-form/login.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-login</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>login.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./login.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#login">login</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#makeLogin">makeLogin</a>
+                            </li>
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(router: <a href="https://angular.io/api/router/Router" target="_blank">Router</a>, localStorage: <a href="../injectables/LocalStorageService.html">LocalStorageService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="16" class="link-to-prism">src/app/login/login-form/login.component.ts:16</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>router</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="https://angular.io/api/router/Router" target="_blank" >Router</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>localStorage</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/LocalStorageService.html" target="_self" >LocalStorageService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="makeLogin"></a>
+                        <span class="name">
+                            <b>
+                            makeLogin
+                            </b>
+                            <a href="#makeLogin"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>makeLogin()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="29" class="link-to-prism">src/app/login/login-form/login.component.ts:29</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="22" class="link-to-prism">src/app/login/login-form/login.component.ts:22</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+    <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="login"></a>
+                        <span class="name">
+                            <b>
+                            login
+                            </b>
+                            <a href="#login"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>login:     <code><a href="../interfaces/Login.html" target="_self" >Login</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="../interfaces/Login.html" target="_self" >Login</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>{
+    _username: &#x27;&#x27;,
+    _password: &#x27;&#x27;,
+    _target_path: &#x27;&#x27;,
+    _failure_path: &#x27;/api/user/fail&#x27;
+  }</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/login/login-form/login.component.ts:11</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+import { Router } from &#x27;@angular/router&#x27;;
+import { LocalStorageService } from &#x27;../../services/local-storage.service&#x27;;
+
+@Component({
+  selector: &#x27;app-login&#x27;,
+  templateUrl: &#x27;./login.component.html&#x27;,
+  styleUrls: [&#x27;./login.component.css&#x27;]
+})
+export class LoginComponent implements OnInit {
+  login: Login &#x3D; {
+    _username: &#x27;&#x27;,
+    _password: &#x27;&#x27;,
+    _target_path: &#x27;&#x27;,
+    _failure_path: &#x27;/api/user/fail&#x27;
+  };
+  constructor(
+    private router: Router,
+    private localStorage: LocalStorageService
+  ) {}
+
+  ngOnInit() {
+    const user &#x3D; this.localStorage.takeUserLoginData();
+    if (user !&#x3D;&#x3D; null) {
+      this.router.navigate([&#x27;/dashboard&#x27;]);
+    }
+  }
+
+  makeLogin() {
+    this.localStorage.saveDataInLocal(
+      &#x27;user_credentials&#x27;,
+      {
+        email: &#x27;anartz@compodoc.com&#x27;,
+        name: &#x27;Anartz&#x27;,
+        lastname: &#x27;Mugika&#x27;,
+        role: &#x27;ROLE_ADMIN&#x27;
+      },
+      true
+    );
+    this.router.navigate([&#x27;/dashboard&#x27;]);
+  }
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;div class&#x3D;&quot;row&quot;&gt;
+  &lt;div class&#x3D;&quot;col-sm-9 col-md-7 col-lg-5 mx-auto&quot;&gt;
+    &lt;div class&#x3D;&quot;card card-signin my-5&quot;&gt;
+      &lt;div class&#x3D;&quot;card-body&quot;&gt;
+        &lt;h5 class&#x3D;&quot;card-title text-center&quot;&gt;Sign In (CLick in SIGN IN. No need input credentials!)&lt;/h5&gt;
+        
+        &lt;form class&#x3D;&quot;form-signin&quot; (ngSubmit)&#x3D;&quot;makeLogin()&quot; #forma&#x3D;&quot;ngForm&quot;&gt;
+          &lt;div class&#x3D;&quot;form-group&quot;&gt;
+            &lt;label for&#x3D;&quot;inputEmail&quot;&gt;Email address&lt;/label&gt;
+            &lt;input type&#x3D;&quot;email&quot; id&#x3D;&quot;inputEmail&quot; class&#x3D;&quot;form-control&quot; name&#x3D;&quot;_username&quot; placeholder&#x3D;&quot;Email address&quot; required autofocus
+              [(ngModel)]&#x3D;&quot;login._username&quot;&gt;
+          &lt;/div&gt;
+          
+          &lt;div class&#x3D;&quot;form-group&quot;&gt;
+            &lt;label for&#x3D;&quot;inputPassword&quot;&gt;Password&lt;/label&gt;
+            &lt;input type&#x3D;&quot;password&quot; id&#x3D;&quot;inputPassword&quot; class&#x3D;&quot;form-control&quot; name&#x3D;&quot;_password&quot; placeholder&#x3D;&quot;Password&quot; required [(ngModel)]&#x3D;&quot;login._password&quot;&gt;
+          &lt;/div&gt;
+
+          &lt;div class&#x3D;&quot;custom-control custom-checkbox mb-3&quot;&gt;
+            &lt;input type&#x3D;&quot;checkbox&quot; class&#x3D;&quot;custom-control-input&quot; id&#x3D;&quot;customCheck1&quot;&gt;
+            &lt;label class&#x3D;&quot;custom-control-label&quot; for&#x3D;&quot;customCheck1&quot;&gt;Remember password&lt;/label&gt;
+          &lt;/div&gt;
+          &lt;button class&#x3D;&quot;btn btn-lg btn-primary btn-block text-uppercase&quot; type&#x3D;&quot;submit&quot; &gt;Sign in&lt;/button&gt;
+          &lt;hr class&#x3D;&quot;my-4&quot;&gt;
+          &lt;button class&#x3D;&quot;btn btn-lg btn-google btn-block text-uppercase&quot; type&#x3D;&quot;submit&quot;&gt;&lt;i class&#x3D;&quot;fab fa-google mr-2&quot;&gt;&lt;/i&gt; Sign in with Google&lt;/button&gt;
+          &lt;button class&#x3D;&quot;btn btn-lg btn-facebook btn-block text-uppercase&quot; type&#x3D;&quot;submit&quot;&gt;&lt;i class&#x3D;&quot;fab fa-facebook-f mr-2&quot;&gt;&lt;/i&gt; Sign in with Facebook&lt;/button&gt;
+        &lt;/form&gt;
+      &lt;/div&gt;
+    &lt;/div&gt;
+  &lt;/div&gt;
+&lt;/div&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><div class="row">  <div class="col-sm-9 col-md-7 col-lg-5 mx-auto">    <div class="card card-signin my-5">      <div class="card-body">        <h5 class="card-title text-center">Sign In (CLick in SIGN IN. No need input credentials!)</h5>                <form class="form-signin" (ngSubmit)="makeLogin()" #forma="ngForm">          <div class="form-group">            <label for="inputEmail">Email address</label>            <input type="email" id="inputEmail" class="form-control" name="_username" placeholder="Email address" required autofocus              [(ngModel)]="login._username">          </div>                    <div class="form-group">            <label for="inputPassword">Password</label>            <input type="password" id="inputPassword" class="form-control" name="_password" placeholder="Password" required [(ngModel)]="login._password">          </div>          <div class="custom-control custom-checkbox mb-3">            <input type="checkbox" class="custom-control-input" id="customCheck1">            <label class="custom-control-label" for="customCheck1">Remember password</label>          </div>          <button class="btn btn-lg btn-primary btn-block text-uppercase" type="submit" >Sign in</button>          <hr class="my-4">          <button class="btn btn-lg btn-google btn-block text-uppercase" type="submit"><i class="fab fa-google mr-2"></i> Sign in with Google</button>          <button class="btn btn-lg btn-facebook btn-block text-uppercase" type="submit"><i class="fab fa-facebook-f mr-2"></i> Sign in with Facebook</button>        </form>      </div>    </div>  </div></div></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'LoginComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'LoginComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/NotpagefoundComponent.html b/src/docs/components/NotpagefoundComponent.html
new file mode 100644
index 0000000..f6992e0
--- /dev/null
+++ b/src/docs/components/NotpagefoundComponent.html
@@ -0,0 +1,335 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>NotpagefoundComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/shared/notpagefound/notpagefound.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-notpagefound</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>notpagefound.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./notpagefound.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor()</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/shared/notpagefound/notpagefound.component.ts:8</a></div>
+                            </td>
+                        </tr>
+
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/shared/notpagefound/notpagefound.component.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+
+@Component({
+  selector: &#x27;app-notpagefound&#x27;,
+  templateUrl: &#x27;./notpagefound.component.html&#x27;,
+  styleUrls: [&#x27;./notpagefound.component.css&#x27;]
+})
+export class NotpagefoundComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit() {
+  }
+
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;p class&#x3D;&quot;option&quot;&gt;
+  Select page not found!!
+  &lt;a [routerLink]&#x3D;&quot;[&#x27;/dashboard&#x27;]&quot; class&#x3D;&quot;nav-link&quot;&gt;
+    &lt;i class&#x3D;&quot;fas fa-tachometer-alt&quot;&gt;&lt;/i&gt;
+    &lt;span class&#x3D;&quot;nav-link-text&quot;&gt;&amp;nbsp;&amp;nbsp;Return to dashboard&lt;/span&gt;
+  &lt;/a&gt;
+&lt;/p&gt;
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><p class="option">  Select page not found!!  <a [routerLink]="[\'/dashboard\']" class="nav-link">    <i class="fas fa-tachometer-alt"></i>    <span class="nav-link-text">&nbsp;&nbsp;Return to dashboard</span>  </a></p></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'NotpagefoundComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'NotpagefoundComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/PagesComponent.html b/src/docs/components/PagesComponent.html
new file mode 100644
index 0000000..1e5ab80
--- /dev/null
+++ b/src/docs/components/PagesComponent.html
@@ -0,0 +1,345 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>PagesComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/pages/pages.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-pages</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>pages.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./pages.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor()</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/pages/pages.component.ts:8</a></div>
+                            </td>
+                        </tr>
+
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/pages/pages.component.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+
+@Component({
+  selector: &#x27;app-pages&#x27;,
+  templateUrl: &#x27;./pages.component.html&#x27;,
+  styleUrls: [&#x27;./pages.component.css&#x27;]
+})
+export class PagesComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit() {
+  }
+
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;app-header&gt;&lt;/app-header&gt;
+
+&lt;div class&#x3D;&quot;content-wrapper&quot;&gt;
+  &lt;div class&#x3D;&quot;container-fluid&quot;&gt;
+    &lt;app-breadcrumb&gt;&lt;/app-breadcrumb&gt;
+    &lt;router-outlet&gt;&lt;/router-outlet&gt;
+    &lt;!--&lt;div class&#x3D;&quot;row&quot;&gt;
+      &lt;div class&#x3D;&quot;col-12&quot;&gt;
+        &lt;h1&gt;Blank&lt;/h1&gt;
+        &lt;p&gt;This is an example of a blank page that you can use as a starting point for creating new ones.&lt;/p&gt;
+      &lt;/div&gt;
+    &lt;/div&gt;--&gt;
+  &lt;/div&gt;
+  &lt;!-- /.container-fluid--&gt;
+  &lt;!-- /.content-wrapper--&gt;
+  &lt;app-footer&gt;&lt;/app-footer&gt;
+  &lt;app-scroll-top&gt;&lt;/app-scroll-top&gt;
+&lt;/div&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><app-header></app-header><div class="content-wrapper">  <div class="container-fluid">    <app-breadcrumb></app-breadcrumb>    <router-outlet></router-outlet>    <!--<div class="row">      <div class="col-12">        <h1>Blank</h1>        <p>This is an example of a blank page that you can use as a starting point for creating new ones.</p>      </div>    </div>-->  </div>  <!-- /.container-fluid-->  <!-- /.content-wrapper-->  <app-footer></app-footer>  <app-scroll-top></app-scroll-top></div></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'PagesComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'PagesComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/PieChartComponent.html b/src/docs/components/PieChartComponent.html
new file mode 100644
index 0000000..9ac709b
--- /dev/null
+++ b/src/docs/components/PieChartComponent.html
@@ -0,0 +1,389 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>PieChartComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/components/charts/pie-chart/pie-chart.component.ts</code>
+</p>
+
+
+
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-pie-chart</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>pie-chart.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./pie-chart.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Inputs</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#chartType">chartType</a>
+                            </li>
+                            <li>
+                                <a href="#colors">colors</a>
+                            </li>
+                            <li>
+                                <a href="#datasets">datasets</a>
+                            </li>
+                            <li>
+                                <a href="#labels">labels</a>
+                            </li>
+                            <li>
+                                <a href="#legend">legend</a>
+                            </li>
+                            <li>
+                                <a href="#options">options</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+
+    <section>
+    <h3 id="inputs">Inputs</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="chartType"></a>
+                        <code>chartType</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="14" class="link-to-prism">src/app/components/charts/pie-chart/pie-chart.component.ts:14</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="colors"></a>
+                        <code>colors</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/components/charts/pie-chart/pie-chart.component.ts:12</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="datasets"></a>
+                        <code>datasets</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/components/charts/pie-chart/pie-chart.component.ts:9</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="labels"></a>
+                        <code>labels</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/components/charts/pie-chart/pie-chart.component.ts:10</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="legend"></a>
+                        <code>legend</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/components/charts/pie-chart/pie-chart.component.ts:13</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="options"></a>
+                        <code>options</code>
+                    </td>
+                    <td class="col-md-10">
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/components/charts/pie-chart/pie-chart.component.ts:11</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, Input } from &#x27;@angular/core&#x27;;
+
+@Component({
+  selector: &#x27;app-pie-chart&#x27;,
+  templateUrl: &#x27;./pie-chart.component.html&#x27;,
+  styleUrls: [&#x27;./pie-chart.component.css&#x27;]
+})
+export class PieChartComponent {
+  @Input() datasets;
+  @Input() labels;
+  @Input() options;
+  @Input() colors;
+  @Input() legend;
+  @Input() chartType;
+
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;div style&#x3D;&quot;display: block&quot;&gt;
+  &lt;canvas baseChart
+          [datasets]&#x3D;&quot;datasets&quot;
+          [labels]&#x3D;&quot;labels&quot;
+          [options]&#x3D;&quot;options&quot;
+          [legend]&#x3D;&quot;legend&quot;
+          [chartType]&#x3D;&quot;chartType&quot;
+          [colors]&#x3D;&quot;colors&quot;
+          &gt;&lt;/canvas&gt;
+&lt;/div&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><div style="display: block">  <canvas baseChart          [datasets]="datasets"          [labels]="labels"          [options]="options"          [legend]="legend"          [chartType]="chartType"          [colors]="colors"          ></canvas></div></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'PieChartComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'PieChartComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/PolarAreaChartComponent.html b/src/docs/components/PolarAreaChartComponent.html
new file mode 100644
index 0000000..53213d8
--- /dev/null
+++ b/src/docs/components/PolarAreaChartComponent.html
@@ -0,0 +1,331 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>PolarAreaChartComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/components/charts/polar-area-chart/polar-area-chart.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-polar-area-chart</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>polar-area-chart.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./polar-area-chart.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor()</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/components/charts/polar-area-chart/polar-area-chart.component.ts:8</a></div>
+                            </td>
+                        </tr>
+
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/components/charts/polar-area-chart/polar-area-chart.component.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+
+@Component({
+  selector: &#x27;app-polar-area-chart&#x27;,
+  templateUrl: &#x27;./polar-area-chart.component.html&#x27;,
+  styleUrls: [&#x27;./polar-area-chart.component.css&#x27;]
+})
+export class PolarAreaChartComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit() {
+  }
+
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;p&gt;
+  polar-area-chart works!
+&lt;/p&gt;
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><p>  polar-area-chart works!</p></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'PolarAreaChartComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'PolarAreaChartComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/RacesComponent.html b/src/docs/components/RacesComponent.html
new file mode 100644
index 0000000..51d745c
--- /dev/null
+++ b/src/docs/components/RacesComponent.html
@@ -0,0 +1,698 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>RacesComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/pages/races/races.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-races</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>races.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./races.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#racesList">racesList</a>
+                            </li>
+                            <li>
+                                <a href="#selectYear">selectYear</a>
+                            </li>
+                            <li>
+                                <a href="#showInfo">showInfo</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                    <span class="modifier">Private</span>
+                                <a href="#loadDataDialog">loadDataDialog</a>
+                            </li>
+                            <li>
+                                <a href="#loadDataFromAssets">loadDataFromAssets</a>
+                            </li>
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(selectPageService: <a href="../injectables/SharedService.html">SharedService</a>, _racesService: <a href="../injectables/RacesService.html">RacesService</a>, _alertService: <a href="../injectables/AlertService.html">AlertService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="15" class="link-to-prism">src/app/pages/races/races.component.ts:15</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>selectPageService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/SharedService.html" target="_self" >SharedService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>_racesService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/RacesService.html" target="_self" >RacesService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>_alertService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/AlertService.html" target="_self" >AlertService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="loadDataDialog"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Private</span>
+                            loadDataDialog
+                            </b>
+                            <a href="#loadDataDialog"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                            <span class="modifier-icon icon ion-ios-reset"></span>
+                        <code>loadDataDialog(open: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank">boolean</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="27" class="link-to-prism">src/app/pages/races/races.component.ts:27</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                                    <td>Default value</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>open</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                                <code>true</code>
+                                                        </td>
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="loadDataFromAssets"></a>
+                        <span class="name">
+                            <b>
+                            loadDataFromAssets
+                            </b>
+                            <a href="#loadDataFromAssets"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>loadDataFromAssets()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="41" class="link-to-prism">src/app/pages/races/races.component.ts:41</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+                            <div class="io-description"><p>Take data from a local file in json format</p>
+</div>
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="22" class="link-to-prism">src/app/pages/races/races.component.ts:22</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+    <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="racesList"></a>
+                        <span class="name">
+                            <b>
+                            racesList
+                            </b>
+                            <a href="#racesList"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>racesList:     <code><a href="../interfaces/Race.html" target="_self" >Race[]</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="../interfaces/Race.html" target="_self" >Race[]</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="14" class="link-to-prism">src/app/pages/races/races.component.ts:14</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="selectYear"></a>
+                        <span class="name">
+                            <b>
+                            selectYear
+                            </b>
+                            <a href="#selectYear"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>selectYear:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="15" class="link-to-prism">src/app/pages/races/races.component.ts:15</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="showInfo"></a>
+                        <span class="name">
+                            <b>
+                            showInfo
+                            </b>
+                            <a href="#showInfo"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>showInfo:     <code></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>false</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/pages/races/races.component.ts:13</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+import { SharedService } from &#x27;../../services/shared.service&#x27;;
+import { AlertService } from &#x27;../../services/alert.service&#x27;;
+import { RacesService } from &#x27;../../services/api/races.service&#x27;;
+import { Race } from &#x27;../../interfaces/race.interface&#x27;;
+
+@Component({
+  selector: &#x60;app-races&#x60;,
+  templateUrl: &#x60;./races.component.html&#x60;,
+  styleUrls: [&#x60;./races.component.css&#x60;]
+})
+export class RacesComponent implements OnInit {
+  showInfo &#x3D; false;
+  racesList: Race[];
+  selectYear: string;
+  constructor(
+    private selectPageService: SharedService,
+    private _racesService: RacesService,
+    private _alertService: AlertService
+  ) {}
+
+  ngOnInit() {
+    this.selectPageService.setSelectPage(&#x60;races&#x60;);
+    this.loadDataFromAssets();
+  }
+
+  private loadDataDialog(open: boolean &#x3D; true) {
+    if (open) {
+      this._alertService.loadData(
+        &#x60;Load ${this.selectYear} races list!!&#x60;,
+        &#x60;Wait a moment please!!&#x60;
+      );
+    } else {
+      this._alertService.closeAlert();
+    }
+  }
+
+  /**
+   * Take data from a local file in json format
+   */
+  loadDataFromAssets() {
+    this.selectYear &#x3D; &#x60;2018&#x60;;
+    this.loadDataDialog();
+    this._racesService.loadListFromLocal().subscribe((data: Race[]) &#x3D;&gt; {
+      this.selectPageService.setSelectPage(&#x60;${this.selectYear} year races&#x60;);
+      console.log(data);
+      this.showInfo &#x3D; true;
+      this.racesList &#x3D; data;
+      this.loadDataDialog(false);
+    });
+  }
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;div class&#x3D;&quot;card-columns&quot; *ngIf&#x3D;&quot;showInfo&quot;&gt;
+  &lt;ng-template ngFor let-race [ngForOf]&#x3D;&quot;racesList&quot; let-i&#x3D;&quot;index&quot;&gt;
+    &lt;div class&#x3D;&quot;card animated fadeIn&quot;&gt;
+      &lt;img class&#x3D;&quot;card-img-top&quot; style&#x3D;&quot;width:100%&quot; src&#x3D;&quot;{{ race.Circuit.Location | googleStaticMapUrl }}&quot;
+        alt&#x3D;&quot;{{race.raceName}} circuit image. Please add Google Maps API KEY!!!&quot;&gt;
+      &lt;div class&#x3D;&quot;card-body&quot;&gt;
+        &lt;h5 class&#x3D;&quot;card-title&quot;&gt;#{{i+1}} {{race.raceName}}&lt;/h5&gt;
+        &lt;p class&#x3D;&quot;card-text&quot;&gt;
+          &lt;i class&#x3D;&quot;far fa-calendar-alt&quot;&gt;&lt;/i&gt;&amp;nbsp; {{race.date}}
+          &lt;br/&gt; 
+          &lt;i class&#x3D;&quot;fas fa-map-marker-alt&quot;&gt;&lt;/i&gt; 
+          &lt;a href&#x3D;&quot;{{ race.Circuit.Location | googleMapsUrl }}&quot; target&#x3D;&quot;_blank&quot;&gt;
+             {{ race.Circuit.Location | locationText }}
+          &lt;/a&gt;
+          &lt;br/&gt;&lt;br/&gt;
+          &lt;i class&#x3D;&quot;fas fa-info&quot;&gt;&lt;/i&gt;
+          &lt;span&gt; + Info: &lt;/span&gt;&lt;br/&gt;
+          &lt;a href&#x3D;&quot;{{race.url}}&quot; title&#x3D;&quot;Web browser version&quot; target&#x3D;&quot;_blank&quot;&gt;
+            &lt;img src&#x3D;&quot;../../../assets/internet.png&quot; /&gt;
+          &lt;/a&gt;
+          &lt;a href&#x3D;&quot;{{race.url | wikipediaUrlMobile}}&quot; target&#x3D;&quot;_blank&quot; title&#x3D;&quot;Mobile version&quot;&gt;
+            &lt;img src&#x3D;&quot;../../../assets/mobile.png&quot; /&gt;
+          &lt;/a&gt;
+        &lt;/p&gt;
+        &lt;!--&lt;p class&#x3D;&quot;card-text&quot;&gt;
+          &lt;small class&#x3D;&quot;text-muted&quot;&gt;Last updated 3 mins ago&lt;/small&gt;
+        &lt;/p&gt;--&gt;
+      &lt;/div&gt;
+    &lt;/div&gt;
+  &lt;/ng-template&gt;
+&lt;/div&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><div class="card-columns" *ngIf="showInfo">  <ng-template ngFor let-race [ngForOf]="racesList" let-i="index">    <div class="card animated fadeIn">      <img class="card-img-top" style="width:100%" src="{{ race.Circuit.Location | googleStaticMapUrl }}"        alt="{{race.raceName}} circuit image. Please add Google Maps API KEY!!!">      <div class="card-body">        <h5 class="card-title">#{{i+1}} {{race.raceName}}</h5>        <p class="card-text">          <i class="far fa-calendar-alt"></i>&nbsp; {{race.date}}          <br/>           <i class="fas fa-map-marker-alt"></i>           <a href="{{ race.Circuit.Location | googleMapsUrl }}" target="_blank">             {{ race.Circuit.Location | locationText }}          </a>          <br/><br/>          <i class="fas fa-info"></i>          <span> + Info: </span><br/>          <a href="{{race.url}}" title="Web browser version" target="_blank">            <img src="../../../assets/internet.png" />          </a>          <a href="{{race.url | wikipediaUrlMobile}}" target="_blank" title="Mobile version">            <img src="../../../assets/mobile.png" />          </a>        </p>        <!--<p class="card-text">          <small class="text-muted">Last updated 3 mins ago</small>        </p>-->      </div>    </div>  </ng-template></div></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'RacesComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'RacesComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/RadarChartComponent.html b/src/docs/components/RadarChartComponent.html
new file mode 100644
index 0000000..81bb089
--- /dev/null
+++ b/src/docs/components/RadarChartComponent.html
@@ -0,0 +1,331 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>RadarChartComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/components/charts/radar-chart/radar-chart.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-radar-chart</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>radar-chart.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./radar-chart.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor()</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/components/charts/radar-chart/radar-chart.component.ts:8</a></div>
+                            </td>
+                        </tr>
+
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/components/charts/radar-chart/radar-chart.component.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+
+@Component({
+  selector: &#x27;app-radar-chart&#x27;,
+  templateUrl: &#x27;./radar-chart.component.html&#x27;,
+  styleUrls: [&#x27;./radar-chart.component.css&#x27;]
+})
+export class RadarChartComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit() {
+  }
+
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;p&gt;
+  radar-chart works!
+&lt;/p&gt;
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><p>  radar-chart works!</p></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'RadarChartComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'RadarChartComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/RegisterComponent.html b/src/docs/components/RegisterComponent.html
new file mode 100644
index 0000000..f9c9323
--- /dev/null
+++ b/src/docs/components/RegisterComponent.html
@@ -0,0 +1,370 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>RegisterComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/login/register/register.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-register</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>register.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./register.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor()</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/login/register/register.component.ts:8</a></div>
+                            </td>
+                        </tr>
+
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/login/register/register.component.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+
+@Component({
+  selector: &#x27;app-register&#x27;,
+  templateUrl: &#x27;./register.component.html&#x27;,
+  styleUrls: [&#x27;./register.component.css&#x27;]
+})
+export class RegisterComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit() {
+  }
+
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">
+    &lt;div class&#x3D;&quot;row&quot;&gt;
+      &lt;div class&#x3D;&quot;col-lg-10 col-xl-9 mx-auto&quot;&gt;
+        &lt;div class&#x3D;&quot;card card-signin flex-row my-5&quot;&gt;
+          &lt;div class&#x3D;&quot;card-img-left d-none d-md-flex&quot;&gt;
+             &lt;!-- Background image for card set in CSS! --&gt;
+          &lt;/div&gt;
+          &lt;div class&#x3D;&quot;card-body&quot;&gt;
+            &lt;h5 class&#x3D;&quot;card-title text-center&quot;&gt;Register&lt;/h5&gt;
+            &lt;form class&#x3D;&quot;form-signin&quot;&gt;
+              &lt;div class&#x3D;&quot;form-label-group&quot;&gt;
+                &lt;input type&#x3D;&quot;text&quot; id&#x3D;&quot;inputUserame&quot; class&#x3D;&quot;form-control&quot; placeholder&#x3D;&quot;Username&quot; required autofocus&gt;
+                &lt;label for&#x3D;&quot;inputUserame&quot;&gt;Username&lt;/label&gt;
+              &lt;/div&gt;
+
+              &lt;div class&#x3D;&quot;form-label-group&quot;&gt;
+                &lt;input type&#x3D;&quot;email&quot; id&#x3D;&quot;inputEmail&quot; class&#x3D;&quot;form-control&quot; placeholder&#x3D;&quot;Email address&quot; required&gt;
+                &lt;label for&#x3D;&quot;inputEmail&quot;&gt;Email address&lt;/label&gt;
+              &lt;/div&gt;
+              
+              &lt;hr&gt;
+
+              &lt;div class&#x3D;&quot;form-label-group&quot;&gt;
+                &lt;input type&#x3D;&quot;password&quot; id&#x3D;&quot;inputPassword&quot; class&#x3D;&quot;form-control&quot; placeholder&#x3D;&quot;Password&quot; required&gt;
+                &lt;label for&#x3D;&quot;inputPassword&quot;&gt;Password&lt;/label&gt;
+              &lt;/div&gt;
+              
+              &lt;div class&#x3D;&quot;form-label-group&quot;&gt;
+                &lt;input type&#x3D;&quot;password&quot; id&#x3D;&quot;inputConfirmPassword&quot; class&#x3D;&quot;form-control&quot; placeholder&#x3D;&quot;Password&quot; required&gt;
+                &lt;label for&#x3D;&quot;inputConfirmPassword&quot;&gt;Confirm password&lt;/label&gt;
+              &lt;/div&gt;
+
+              &lt;button class&#x3D;&quot;btn btn-lg btn-primary btn-block text-uppercase&quot; type&#x3D;&quot;submit&quot;&gt;Register&lt;/button&gt;
+              &lt;a class&#x3D;&quot;d-block text-center mt-2 small&quot; routerLink&#x3D;&quot;/login&quot;&gt;Sign In&lt;/a&gt;
+              &lt;hr class&#x3D;&quot;my-4&quot;&gt;
+              &lt;button class&#x3D;&quot;btn btn-lg btn-google btn-block text-uppercase&quot; type&#x3D;&quot;submit&quot;&gt;&lt;i class&#x3D;&quot;fab fa-google mr-2&quot;&gt;&lt;/i&gt; Sign up with Google&lt;/button&gt;
+              &lt;button class&#x3D;&quot;btn btn-lg btn-facebook btn-block text-uppercase&quot; type&#x3D;&quot;submit&quot;&gt;&lt;i class&#x3D;&quot;fab fa-facebook-f mr-2&quot;&gt;&lt;/i&gt; Sign up with Facebook&lt;/button&gt;
+            &lt;/form&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+      &lt;/div&gt;
+    &lt;/div&gt;
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div>    <div class="row">      <div class="col-lg-10 col-xl-9 mx-auto">        <div class="card card-signin flex-row my-5">          <div class="card-img-left d-none d-md-flex">             <!-- Background image for card set in CSS! -->          </div>          <div class="card-body">            <h5 class="card-title text-center">Register</h5>            <form class="form-signin">              <div class="form-label-group">                <input type="text" id="inputUserame" class="form-control" placeholder="Username" required autofocus>                <label for="inputUserame">Username</label>              </div>              <div class="form-label-group">                <input type="email" id="inputEmail" class="form-control" placeholder="Email address" required>                <label for="inputEmail">Email address</label>              </div>                            <hr>              <div class="form-label-group">                <input type="password" id="inputPassword" class="form-control" placeholder="Password" required>                <label for="inputPassword">Password</label>              </div>                            <div class="form-label-group">                <input type="password" id="inputConfirmPassword" class="form-control" placeholder="Password" required>                <label for="inputConfirmPassword">Confirm password</label>              </div>              <button class="btn btn-lg btn-primary btn-block text-uppercase" type="submit">Register</button>              <a class="d-block text-center mt-2 small" routerLink="/login">Sign In</a>              <hr class="my-4">              <button class="btn btn-lg btn-google btn-block text-uppercase" type="submit"><i class="fab fa-google mr-2"></i> Sign up with Google</button>              <button class="btn btn-lg btn-facebook btn-block text-uppercase" type="submit"><i class="fab fa-facebook-f mr-2"></i> Sign up with Facebook</button>            </form>          </div>        </div>      </div>    </div></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'RegisterComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'RegisterComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/ScrollTopComponent.html b/src/docs/components/ScrollTopComponent.html
new file mode 100644
index 0000000..b617e83
--- /dev/null
+++ b/src/docs/components/ScrollTopComponent.html
@@ -0,0 +1,331 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>ScrollTopComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/shared/scroll-top/scroll-top.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-scroll-top</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>scroll-top.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./scroll-top.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor()</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/shared/scroll-top/scroll-top.component.ts:8</a></div>
+                            </td>
+                        </tr>
+
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/shared/scroll-top/scroll-top.component.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+
+@Component({
+  selector: &#x27;app-scroll-top&#x27;,
+  templateUrl: &#x27;./scroll-top.component.html&#x27;,
+  styleUrls: [&#x27;./scroll-top.component.css&#x27;]
+})
+export class ScrollTopComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit() {
+  }
+
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;!-- Scroll to Top Button--&gt;
+&lt;a class&#x3D;&quot;scroll-to-top rounded&quot; href&#x3D;&quot;#page-top&quot;&gt;
+  &lt;i class&#x3D;&quot;fa fa-angle-up&quot;&gt;&lt;/i&gt;
+&lt;/a&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><!-- Scroll to Top Button--><a class="scroll-to-top rounded" href="#page-top">  <i class="fa fa-angle-up"></i></a></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'ScrollTopComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'ScrollTopComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/SeasonsComponent.html b/src/docs/components/SeasonsComponent.html
new file mode 100644
index 0000000..163d9e0
--- /dev/null
+++ b/src/docs/components/SeasonsComponent.html
@@ -0,0 +1,650 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>SeasonsComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/pages/seasons/seasons.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-seasons</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>seasons.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./seasons.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#seasons">seasons</a>
+                            </li>
+                            <li>
+                                <a href="#showInfo">showInfo</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                    <span class="modifier">Private</span>
+                                <a href="#loadDataDialog">loadDataDialog</a>
+                            </li>
+                            <li>
+                                <a href="#loadDataFromAssets">loadDataFromAssets</a>
+                            </li>
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(_seasonService: <a href="../injectables/SeasonsService.html">SeasonsService</a>, _alertService: <a href="../injectables/AlertService.html">AlertService</a>, selectPageService: <a href="../injectables/SharedService.html">SharedService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="14" class="link-to-prism">src/app/pages/seasons/seasons.component.ts:14</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>_seasonService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/SeasonsService.html" target="_self" >SeasonsService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>_alertService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/AlertService.html" target="_self" >AlertService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                                <tr>
+                                                        <td>selectPageService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/SharedService.html" target="_self" >SharedService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="loadDataDialog"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Private</span>
+                            loadDataDialog
+                            </b>
+                            <a href="#loadDataDialog"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                            <span class="modifier-icon icon ion-ios-reset"></span>
+                        <code>loadDataDialog(open: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank">boolean</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="28" class="link-to-prism">src/app/pages/seasons/seasons.component.ts:28</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                                    <td>Default value</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>open</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                                <code>true</code>
+                                                        </td>
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="loadDataFromAssets"></a>
+                        <span class="name">
+                            <b>
+                            loadDataFromAssets
+                            </b>
+                            <a href="#loadDataFromAssets"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>loadDataFromAssets()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="42" class="link-to-prism">src/app/pages/seasons/seasons.component.ts:42</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+                            <div class="io-description"><p>Take data from a local file in json format</p>
+</div>
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="21" class="link-to-prism">src/app/pages/seasons/seasons.component.ts:21</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+    <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="seasons"></a>
+                        <span class="name">
+                            <b>
+                            seasons
+                            </b>
+                            <a href="#seasons"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>seasons:     <code><a href="../interfaces/Season.html" target="_self" >Season[]</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="../interfaces/Season.html" target="_self" >Season[]</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/pages/seasons/seasons.component.ts:13</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="showInfo"></a>
+                        <span class="name">
+                            <b>
+                            showInfo
+                            </b>
+                            <a href="#showInfo"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>showInfo:     <code></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>false</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="14" class="link-to-prism">src/app/pages/seasons/seasons.component.ts:14</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+import { SeasonsService } from &#x27;../../services/api/seasons.service&#x27;;
+import { Season } from &#x27;../../interfaces/seasons.interface&#x27;;
+import { AlertService } from &#x27;../../services/alert.service&#x27;;
+import { SharedService } from &#x27;../../services/shared.service&#x27;;
+
+@Component({
+  selector: &#x60;app-seasons&#x60;,
+  templateUrl: &#x60;./seasons.component.html&#x60;,
+  styleUrls: [&#x60;./seasons.component.css&#x60;]
+})
+export class SeasonsComponent implements OnInit {
+  seasons: Season[];
+  showInfo &#x3D; false;
+  constructor(
+    private _seasonService: SeasonsService,
+    private _alertService: AlertService,
+    private selectPageService: SharedService
+  ) {}
+
+  ngOnInit() {
+    this.selectPageService.setSelectPage(
+      &#x60;All history seasons list&#x60;
+    );
+    this.loadDataFromAssets();
+  }
+
+  private loadDataDialog(open: boolean &#x3D; true) {
+    if (open) {
+      this._alertService.loadData(
+        &#x60;Load seasons list!!&#x60;,
+        &#x60;Wait a moment please!!&#x60;
+      );
+    } else {
+      this._alertService.closeAlert();
+    }
+  }
+
+  /**
+   * Take data from a local file in json format
+   */
+  loadDataFromAssets() {
+    this.loadDataDialog();
+    this._seasonService.loadListFromLocal().subscribe((data: Season[]) &#x3D;&gt; {
+      console.log(data);
+      this.showInfo &#x3D; true;
+      this.seasons &#x3D; data;
+      this.loadDataDialog(false);
+    });
+  }
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;div class&#x3D;&quot;card-columns animated fadeIn&quot;&gt;
+  &lt;ng-template ngFor let-season [ngForOf]&#x3D;&quot;seasons&quot; let-i&#x3D;&quot;index&quot;&gt;
+    &lt;div class&#x3D;&quot;card&quot;&gt;
+      &lt;div class&#x3D;&quot;card-body&quot;&gt;
+        &lt;h5 class&#x3D;&quot;card-title&quot;&gt;{{season.season}}&lt;/h5&gt;
+        &lt;p class&#x3D;&quot;card-text&quot;&gt;
+          &lt;a href&#x3D;&quot;{{season.url}}&quot; title&#x3D;&quot;Web browser version&quot; target&#x3D;&quot;_blank&quot;&gt;
+            &lt;img src&#x3D;&quot;../../../assets/internet.png&quot; /&gt;
+          &lt;/a&gt;
+          &lt;a href&#x3D;&quot;{{season.url | wikipediaUrlMobile}}&quot; target&#x3D;&quot;_blank&quot; title&#x3D;&quot;Mobile version&quot;&gt;
+            &lt;img src&#x3D;&quot;../../../assets/mobile.png&quot; /&gt;
+          &lt;/a&gt;
+        &lt;/p&gt;
+        &lt;!--&lt;p class&#x3D;&quot;card-text&quot;&gt;
+          &lt;small class&#x3D;&quot;text-muted&quot;&gt;Last updated 3 mins ago&lt;/small&gt;
+        &lt;/p&gt;--&gt;
+      &lt;/div&gt;
+    &lt;/div&gt;
+  &lt;/ng-template&gt;
+&lt;/div&gt;
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><div class="card-columns animated fadeIn">  <ng-template ngFor let-season [ngForOf]="seasons" let-i="index">    <div class="card">      <div class="card-body">        <h5 class="card-title">{{season.season}}</h5>        <p class="card-text">          <a href="{{season.url}}" title="Web browser version" target="_blank">            <img src="../../../assets/internet.png" />          </a>          <a href="{{season.url | wikipediaUrlMobile}}" target="_blank" title="Mobile version">            <img src="../../../assets/mobile.png" />          </a>        </p>        <!--<p class="card-text">          <small class="text-muted">Last updated 3 mins ago</small>        </p>-->      </div>    </div>  </ng-template></div></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'SeasonsComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'SeasonsComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/SettingsComponent.html b/src/docs/components/SettingsComponent.html
new file mode 100644
index 0000000..44bf4d2
--- /dev/null
+++ b/src/docs/components/SettingsComponent.html
@@ -0,0 +1,363 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>SettingsComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/pages/settings/settings.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-settings</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>settings.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./settings.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(selectPageService: <a href="../injectables/SharedService.html">SharedService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/pages/settings/settings.component.ts:9</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>selectPageService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/SharedService.html" target="_self" >SharedService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/pages/settings/settings.component.ts:13</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+import { SharedService } from &#x27;../../services/shared.service&#x27;;
+
+@Component({
+  selector: &#x27;app-settings&#x27;,
+  templateUrl: &#x27;./settings.component.html&#x27;,
+  styleUrls: [&#x27;./settings.component.css&#x27;]
+})
+export class SettingsComponent implements OnInit {
+
+  constructor(private selectPageService: SharedService) { }
+
+  ngOnInit() {
+    this.selectPageService.setSelectPage(&#x27;settings&#x27;);
+  }
+
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;p&gt;
+  settings works!
+&lt;/p&gt;
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><p>  settings works!</p></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'SettingsComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'SettingsComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/SidebarComponent.html b/src/docs/components/SidebarComponent.html
new file mode 100644
index 0000000..9333c45
--- /dev/null
+++ b/src/docs/components/SidebarComponent.html
@@ -0,0 +1,581 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>SidebarComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/shared/sidebar/sidebar.component.ts</code>
+</p>
+
+
+
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-sidebar</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>sidebar.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./sidebar.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#_sidebar">_sidebar</a>
+                            </li>
+                            <li>
+                                <a href="#findClassToggled">findClassToggled</a>
+                            </li>
+                            <li>
+                                <a href="#toggledSideNav">toggledSideNav</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#hello">hello</a>
+                            </li>
+                            <li>
+                                <a href="#toggled">toggled</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(_sidebar: <a href="../injectables/SidebarService.html">SidebarService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/shared/sidebar/sidebar.component.ts:11</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>_sidebar</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/SidebarService.html" target="_self" >SidebarService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="hello"></a>
+                        <span class="name">
+                            <b>
+                            hello
+                            </b>
+                            <a href="#hello"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>hello()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="26" class="link-to-prism">src/app/shared/sidebar/sidebar.component.ts:26</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="toggled"></a>
+                        <span class="name">
+                            <b>
+                            toggled
+                            </b>
+                            <a href="#toggled"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>toggled()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="30" class="link-to-prism">src/app/shared/sidebar/sidebar.component.ts:30</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+    <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="_sidebar"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            _sidebar
+                            </b>
+                            <a href="#_sidebar"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>_sidebar:     <code><a href="../injectables/SidebarService.html" target="_self" >SidebarService</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="../injectables/SidebarService.html" target="_self" >SidebarService</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/shared/sidebar/sidebar.component.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="findClassToggled"></a>
+                        <span class="name">
+                            <b>
+                            findClassToggled
+                            </b>
+                            <a href="#findClassToggled"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>findClassToggled:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>&#x27;sidenav-toggled&#x27;</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="10" class="link-to-prism">src/app/shared/sidebar/sidebar.component.ts:10</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="toggledSideNav"></a>
+                        <span class="name">
+                            <b>
+                            toggledSideNav
+                            </b>
+                            <a href="#toggledSideNav"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>toggledSideNav:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/shared/sidebar/sidebar.component.ts:11</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component } from &#x27;@angular/core&#x27;;
+import { SidebarService } from &#x27;../../services/sidebar.service&#x27;;
+
+@Component({
+  selector: &#x27;app-sidebar&#x27;,
+  templateUrl: &#x27;./sidebar.component.html&#x27;,
+  styleUrls: [&#x27;./sidebar.component.css&#x27;]
+})
+export class SidebarComponent {
+  findClassToggled &#x3D; &#x27;sidenav-toggled&#x27;;
+  toggledSideNav: boolean;
+  constructor( public _sidebar: SidebarService) {
+    if (localStorage.getItem(&#x27;toggleSideNav&#x27;) &#x3D;&#x3D;&#x3D; &#x27;1&#x27;) {
+      document
+        .getElementById(&#x27;page-top&#x27;)
+        .classList.add(this.findClassToggled);
+    } else {
+      document
+        .getElementById(&#x27;page-top&#x27;)
+        .classList.remove(this.findClassToggled);
+    }
+  }
+
+  // sidenav-toggled
+
+  hello() {
+    console.log(&#x27;hello&#x27;);
+  }
+
+  toggled() {
+    const find &#x3D; localStorage.getItem(&#x27;toggleSideNav&#x27;);
+    if (find &#x3D;&#x3D;&#x3D; &#x27;1&#x27;) {
+      // remove
+      document
+        .getElementById(&#x27;page-top&#x27;)
+        .classList.remove(this.findClassToggled);
+      localStorage.setItem(&#x27;toggleSideNav&#x27;, &#x27;0&#x27;);
+    } else {
+      document
+        .getElementById(&#x27;page-top&#x27;)
+        .classList.add(this.findClassToggled);
+      localStorage.setItem(&#x27;toggleSideNav&#x27;, &#x27;1&#x27;);
+    }
+  }
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;ul class&#x3D;&quot;navbar-nav navbar-sidenav&quot; id&#x3D;&quot;exampleAccordion&quot;&gt;
+  &lt;li class&#x3D;&quot;nav-item&quot;  *ngFor&#x3D;&quot;let m of _sidebar.menu; let i &#x3D; index;&quot; data-toggle&#x3D;&quot;tooltip&quot; data-placement&#x3D;&quot;right&quot; [title]&#x3D;&quot;m.title&quot;&gt;
+      &lt;a *ngIf&#x3D;&quot;m.route !&#x3D; &#x27;*&#x27;&quot; routerLinkActive&#x3D;&quot;active&quot; [routerLink]&#x3D;&quot;m.route&quot; class&#x3D;&quot;nav-link&quot;&gt;
+        &lt;i class&#x3D;&quot;{{ m.icon }}&quot;&gt;&lt;/i&gt;
+        &lt;span class&#x3D;&quot;nav-link-text&quot;&gt;&amp;nbsp;&amp;nbsp;{{ m.title }}&lt;/span&gt;
+      &lt;/a&gt;
+      &lt;a *ngIf&#x3D;&quot;m.route &#x3D;&#x3D; &#x27;*&#x27;&quot; class&#x3D;&quot;nav-link nav-link-collapse collapsed&quot; data-toggle&#x3D;&quot;collapse&quot; href&#x3D;&quot;#collapseComponents{{m.title}}&quot; data-parent&#x3D;&quot;#exampleAccordion&quot;&gt;
+        &lt;i class&#x3D;&quot;{{ m.icon }}&quot;&gt;&lt;/i&gt;
+        &lt;span class&#x3D;&quot;nav-link-text&quot;&gt;&amp;nbsp;&amp;nbsp;{{ m.title }}&lt;/span&gt;
+      &lt;/a&gt;
+      &lt;ul class&#x3D;&quot;sidenav-second-level collapse&quot; id&#x3D;&quot;collapseComponents{{m.title}}&quot;&gt;
+        &lt;li *ngFor&#x3D;&quot;let sub of m.submenu&quot;&gt;
+          &lt;a href&#x3D;&quot;navbar.html&quot;&gt;&amp;nbsp;{{ sub.title }}&lt;/a&gt;
+        &lt;/li&gt;
+      &lt;/ul&gt;
+  &lt;/li&gt;
+&lt;/ul&gt;
+&lt;ul class&#x3D;&quot;navbar-nav sidenav-toggler&quot;&gt;
+  &lt;li class&#x3D;&quot;nav-item&quot;&gt;
+    &lt;a class&#x3D;&quot;nav-link text-center&quot; id&#x3D;&quot;sidenavToggler&quot; (click)&#x3D;&quot;toggled()&quot;&gt;
+      &lt;i class&#x3D;&quot;fa fa-fw fa-angle-left&quot;&gt;&lt;/i&gt;
+    &lt;/a&gt;
+  &lt;/li&gt;
+&lt;/ul&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><ul class="navbar-nav navbar-sidenav" id="exampleAccordion">  <li class="nav-item"  *ngFor="let m of _sidebar.menu; let i = index;" data-toggle="tooltip" data-placement="right" [title]="m.title">      <a *ngIf="m.route != \'*\'" routerLinkActive="active" [routerLink]="m.route" class="nav-link">        <i class="{{ m.icon }}"></i>        <span class="nav-link-text">&nbsp;&nbsp;{{ m.title }}</span>      </a>      <a *ngIf="m.route == \'*\'" class="nav-link nav-link-collapse collapsed" data-toggle="collapse" href="#collapseComponents{{m.title}}" data-parent="#exampleAccordion">        <i class="{{ m.icon }}"></i>        <span class="nav-link-text">&nbsp;&nbsp;{{ m.title }}</span>      </a>      <ul class="sidenav-second-level collapse" id="collapseComponents{{m.title}}">        <li *ngFor="let sub of m.submenu">          <a href="navbar.html">&nbsp;{{ sub.title }}</a>        </li>      </ul>  </li></ul><ul class="navbar-nav sidenav-toggler">  <li class="nav-item">    <a class="nav-link text-center" id="sidenavToggler" (click)="toggled()">      <i class="fa fa-fw fa-angle-left"></i>    </a>  </li></ul></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'SidebarComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'SidebarComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/components/SupportComponent.html b/src/docs/components/SupportComponent.html
new file mode 100644
index 0000000..266c79f
--- /dev/null
+++ b/src/docs/components/SupportComponent.html
@@ -0,0 +1,435 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content component">
+                   <div class="content-data">
+
+
+
+
+<ol class="breadcrumb">
+  <li>Components</li>
+  <li>SupportComponent</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+        <li >
+            <a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
+        </li>
+        <li >
+            <a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info"><p class="comment">
+    <h3>File</h3>
+</p>
+<p class="comment">
+    <code>src/app/pages/support/support.component.ts</code>
+</p>
+
+
+
+    <p class="comment">
+        <h3>Implements</h3>
+    </p>
+    <p class="comment">
+                <code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
+    </p>
+
+
+<section>
+    <h3>Metadata</h3>
+    <table class="table table-sm table-hover">
+        <tbody>
+
+
+
+
+
+
+
+
+
+
+
+            <tr>
+                <td class="col-md-3">selector</td>
+                <td class="col-md-9"><code>app-support</code></td>
+            </tr>
+
+            <tr>
+                <td class="col-md-3">styleUrls</td>
+                <td class="col-md-9"><code>support.component.css</code></td>
+            </tr>
+
+
+
+            <tr>
+                <td class="col-md-3">templateUrl</td>
+                <td class="col-md-9"><code>./support.component.html</code></td>
+            </tr>
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#ngOnInit">ngOnInit</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+    <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(selectPageService: <a href="../injectables/SharedService.html">SharedService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/pages/support/support.component.ts:9</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>selectPageService</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/SharedService.html" target="_self" >SharedService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+
+
+    <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="ngOnInit"></a>
+                        <span class="name">
+                            <b>
+                            ngOnInit
+                            </b>
+                            <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>ngOnInit()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/pages/support/support.component.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+</div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, OnInit } from &#x27;@angular/core&#x27;;
+import { SharedService } from &#x27;../../services/shared.service&#x27;;
+
+@Component({
+  selector: &#x27;app-support&#x27;,
+  templateUrl: &#x27;./support.component.html&#x27;,
+  styleUrls: [&#x27;./support.component.css&#x27;]
+})
+export class SupportComponent implements OnInit {
+  constructor(private selectPageService: SharedService) {}
+
+  ngOnInit() {
+    this.selectPageService.setSelectPage(&#x27;Support&#x27;);
+  }
+}
+</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-templateData">
+        <pre class="line-numbers"><code class="language-html">&lt;p class&#x3D;&quot;text-center w-75 m-auto&quot;&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris interdum purus at sem ornare sodales. Morbi leo nulla, pharetra
+  vel felis nec, ullamcorper condimentum quam.&lt;/p&gt;&lt;br/&gt;
+&lt;div class&#x3D;&quot;row&quot;&gt;
+  
+  &lt;div class&#x3D;&quot;col-sm-12 col-md-5 col-lg-3 my-3&quot;&gt;
+    &lt;div class&#x3D;&quot;card border-0&quot;&gt;
+      &lt;div class&#x3D;&quot;card-body text-center&quot;&gt;
+        &lt;i class&#x3D;&quot;fa fa-phone fa-5x mb-3&quot; aria-hidden&#x3D;&quot;true&quot;&gt;&lt;/i&gt;
+        &lt;h4 class&#x3D;&quot;text-uppercase mb-5&quot;&gt;call us&lt;/h4&gt;
+        &lt;p&gt;+34 666-66-66-66&lt;/p&gt;
+      &lt;/div&gt;
+    &lt;/div&gt;
+  &lt;/div&gt;
+  &lt;div class&#x3D;&quot;col-sm-12 col-md-5 col-lg-3 my-3&quot;&gt;
+    &lt;div class&#x3D;&quot;card border-0&quot;&gt;
+      &lt;div class&#x3D;&quot;card-body text-center&quot;&gt;
+        &lt;i class&#x3D;&quot;fas fa-at fa-5x mb-3&quot; aria-hidden&#x3D;&quot;true&quot;&gt;&lt;/i&gt;
+        &lt;h4 class&#x3D;&quot;text-uppercase mb-5&quot;&gt;email&lt;/h4&gt;
+        &lt;p&gt;mugan86@gmail.com&lt;/p&gt;
+      &lt;/div&gt;
+    &lt;/div&gt;
+  &lt;/div&gt;
+  &lt;div class&#x3D;&quot;col-12 col-md-8 col-lg-6 pb-6&quot;&gt;
+    &lt;!--Form with header--&gt;
+    &lt;form action&#x3D;&quot;mail.php&quot; method&#x3D;&quot;post&quot;&gt;
+      &lt;div class&#x3D;&quot;card border-primary rounded-0&quot;&gt;
+        &lt;div class&#x3D;&quot;card-header p-0&quot;&gt;
+          &lt;div class&#x3D;&quot;bg-info text-white text-center py-2&quot;&gt;
+            &lt;h3&gt;
+              &lt;i class&#x3D;&quot;fa fa-envelope&quot;&gt;&lt;/i&gt; Contactanos&lt;/h3&gt;
+            &lt;p class&#x3D;&quot;m-0&quot;&gt;Con gusto te ayudaremos&lt;/p&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+        &lt;div class&#x3D;&quot;card-body p-3&quot;&gt;
+
+          &lt;!--Body--&gt;
+          &lt;div class&#x3D;&quot;form-group&quot;&gt;
+            &lt;div class&#x3D;&quot;input-group mb-2&quot;&gt;
+              &lt;div class&#x3D;&quot;input-group-prepend&quot;&gt;
+                &lt;div class&#x3D;&quot;input-group-text&quot;&gt;
+                  &lt;i class&#x3D;&quot;fa fa-user text-info&quot;&gt;&lt;/i&gt;
+                &lt;/div&gt;
+              &lt;/div&gt;
+              &lt;input type&#x3D;&quot;text&quot; class&#x3D;&quot;form-control&quot; id&#x3D;&quot;nombre&quot; name&#x3D;&quot;nombre&quot; placeholder&#x3D;&quot;Nombre y Apellido&quot; required&gt;
+            &lt;/div&gt;
+          &lt;/div&gt;
+          &lt;div class&#x3D;&quot;form-group&quot;&gt;
+            &lt;div class&#x3D;&quot;input-group mb-2&quot;&gt;
+              &lt;div class&#x3D;&quot;input-group-prepend&quot;&gt;
+                &lt;div class&#x3D;&quot;input-group-text&quot;&gt;
+                  &lt;i class&#x3D;&quot;fa fa-envelope text-info&quot;&gt;&lt;/i&gt;
+                &lt;/div&gt;
+              &lt;/div&gt;
+              &lt;input type&#x3D;&quot;email&quot; class&#x3D;&quot;form-control&quot; id&#x3D;&quot;nombre&quot; name&#x3D;&quot;email&quot; placeholder&#x3D;&quot;ejemplo@gmail.com&quot; required&gt;
+            &lt;/div&gt;
+          &lt;/div&gt;
+
+          &lt;div class&#x3D;&quot;form-group&quot;&gt;
+            &lt;div class&#x3D;&quot;input-group mb-2&quot;&gt;
+              &lt;div class&#x3D;&quot;input-group-prepend&quot;&gt;
+                &lt;div class&#x3D;&quot;input-group-text&quot;&gt;
+                  &lt;i class&#x3D;&quot;fa fa-comment text-info&quot;&gt;&lt;/i&gt;
+                &lt;/div&gt;
+              &lt;/div&gt;
+              &lt;textarea class&#x3D;&quot;form-control&quot; placeholder&#x3D;&quot;Envianos tu Mensaje&quot; required&gt;&lt;/textarea&gt;
+            &lt;/div&gt;
+          &lt;/div&gt;
+
+          &lt;div class&#x3D;&quot;text-center&quot;&gt;
+            &lt;input type&#x3D;&quot;submit&quot; value&#x3D;&quot;Enviar&quot; class&#x3D;&quot;btn btn-info btn-block rounded-0 py-2&quot;&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+
+      &lt;/div&gt;
+    &lt;/form&gt;
+  &lt;!--Form with header--&gt;
+  &lt;/div&gt;
+&lt;/div&gt;</code></pre>
+    </div>
+
+    <div class="tab-pane fade " id="c-tree">
+        <div id="tree-container"></div>
+        <div class="tree-legend">
+            <div class="title">
+                <b>Legend</b>
+            </div>
+            <div>
+                <div class="color htmlelement"></div><span>Html element</span>
+            </div>
+            <div>
+                <div class="color component"></div><span>Component</span>
+            </div>
+            <div>
+                <div class="color directive"></div><span>Html element with directive</span>
+            </div>
+        </div>
+    </div>
+
+    
+</div>
+
+<script src="../js/libs/vis.min.js"></script>
+<script src="../js/libs/htmlparser.js"></script>
+<script src="../js/libs/deep-iterator.js"></script>
+<script>
+        var COMPONENT_TEMPLATE = '<div><p class="text-center w-75 m-auto">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris interdum purus at sem ornare sodales. Morbi leo nulla, pharetra  vel felis nec, ullamcorper condimentum quam.</p><br/><div class="row">    <div class="col-sm-12 col-md-5 col-lg-3 my-3">    <div class="card border-0">      <div class="card-body text-center">        <i class="fa fa-phone fa-5x mb-3" aria-hidden="true"></i>        <h4 class="text-uppercase mb-5">call us</h4>        <p>+34 666-66-66-66</p>      </div>    </div>  </div>  <div class="col-sm-12 col-md-5 col-lg-3 my-3">    <div class="card border-0">      <div class="card-body text-center">        <i class="fas fa-at fa-5x mb-3" aria-hidden="true"></i>        <h4 class="text-uppercase mb-5">email</h4>        <p>mugan86@gmail.com</p>      </div>    </div>  </div>  <div class="col-12 col-md-8 col-lg-6 pb-6">    <!--Form with header-->    <form action="mail.php" method="post">      <div class="card border-primary rounded-0">        <div class="card-header p-0">          <div class="bg-info text-white text-center py-2">            <h3>              <i class="fa fa-envelope"></i> Contactanos</h3>            <p class="m-0">Con gusto te ayudaremos</p>          </div>        </div>        <div class="card-body p-3">          <!--Body-->          <div class="form-group">            <div class="input-group mb-2">              <div class="input-group-prepend">                <div class="input-group-text">                  <i class="fa fa-user text-info"></i>                </div>              </div>              <input type="text" class="form-control" id="nombre" name="nombre" placeholder="Nombre y Apellido" required>            </div>          </div>          <div class="form-group">            <div class="input-group mb-2">              <div class="input-group-prepend">                <div class="input-group-text">                  <i class="fa fa-envelope text-info"></i>                </div>              </div>              <input type="email" class="form-control" id="nombre" name="email" placeholder="ejemplo@gmail.com" required>            </div>          </div>          <div class="form-group">            <div class="input-group mb-2">              <div class="input-group-prepend">                <div class="input-group-text">                  <i class="fa fa-comment text-info"></i>                </div>              </div>              <textarea class="form-control" placeholder="Envianos tu Mensaje" required></textarea>            </div>          </div>          <div class="text-center">            <input type="submit" value="Enviar" class="btn btn-info btn-block rounded-0 py-2">          </div>        </div>      </div>    </form>  <!--Form with header-->  </div></div></div>'
+    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];
+    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];
+    var ACTUAL_COMPONENT = {'name': 'SupportComponent'};
+</script>
+<script src="../js/tree.js"></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
+            var COMPODOC_CURRENT_PAGE_URL = 'SupportComponent.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/coverage.html b/src/docs/coverage.html
new file mode 100644
index 0000000..a2a7b8e
--- /dev/null
+++ b/src/docs/coverage.html
@@ -0,0 +1,1388 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="./images/favicon.ico">
+	      <link rel="stylesheet" href="./styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="./" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content coverage">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+    <li>Documentation coverage</li>
+</ol>
+
+<div>
+    <img src="./images/coverage-badge-documentation.svg">
+</div>
+
+<table class="table table-bordered coverage" id="coverage-table">
+    <thead class="coverage-header">
+        <tr>
+            <th>File</th>
+            <th>Type</th>
+            <th>Identifier</th>
+            <th style="text-align:right" class="statements" data-sort-default>Statements</th>
+        </tr>
+    </thead>
+    <tbody>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/AppComponent.html">src/app/app.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                AppComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/2)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#APP_ROUTES">src/app/app.routes.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                APP_ROUTES
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/BarChartComponent.html">src/app/components/charts/bar-chart/bar-chart.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                BarChartComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/7)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/DoughnutChartComponent.html">src/app/components/charts/doughnut-chart/doughnut-chart.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                DoughnutChartComponent
+            </td>
+            <td align="right" data-sort="20">
+                <span class="coverage-percent">20 %</span>
+                <span class="coverage-count">(1/5)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/LineChartComponent.html">src/app/components/charts/line-chart/line-chart.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                LineChartComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/7)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/PieChartComponent.html">src/app/components/charts/pie-chart/pie-chart.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                PieChartComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/7)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/PolarAreaChartComponent.html">src/app/components/charts/polar-area-chart/polar-area-chart.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                PolarAreaChartComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/3)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/RadarChartComponent.html">src/app/components/charts/radar-chart/radar-chart.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                RadarChartComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/3)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/GoogleMapsComponent.html">src/app/components/google-maps/google-maps.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                GoogleMapsComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/7)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#CIRCUITS_URLS">src/app/constants/urls.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                CIRCUITS_URLS
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#CONSTRUCTORS_URLS">src/app/constants/urls.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                CONSTRUCTORS_URLS
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#DRIVERS_URLS">src/app/constants/urls.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                DRIVERS_URLS
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#IMG_PATH_COMPLETE">src/app/constants/urls.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                IMG_PATH_COMPLETE
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#IMG_URLS_PRINCIPAL">src/app/constants/urls.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                IMG_URLS_PRINCIPAL
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#RACES_URLS">src/app/constants/urls.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                RACES_URLS
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#SEASONS_URLS">src/app/constants/urls.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                SEASONS_URLS
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#STATUS_URLS">src/app/constants/urls.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                STATUS_URLS
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#URL_LOCALHOST">src/app/constants/urls.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                URL_LOCALHOST
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./directives/DefaultImageDirective.html">src/app/directives/default-image.directive.ts</a>
+            </td>
+            <td>
+                directive
+            </td>
+            <td>
+                DefaultImageDirective
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/4)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./interfaces/Circuit.html">src/app/interfaces/circuit.interface.ts</a>
+            </td>
+            <td>
+                interface
+            </td>
+            <td>
+                Circuit
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/5)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./interfaces/Confirm.html">src/app/interfaces/confirm.interface.ts</a>
+            </td>
+            <td>
+                interface
+            </td>
+            <td>
+                Confirm
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/8)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./interfaces/Constructor.html">src/app/interfaces/constructor.interface.ts</a>
+            </td>
+            <td>
+                interface
+            </td>
+            <td>
+                Constructor
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/5)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./interfaces/Driver.html">src/app/interfaces/driver.interface.ts</a>
+            </td>
+            <td>
+                interface
+            </td>
+            <td>
+                Driver
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/7)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./interfaces/Location.html">src/app/interfaces/location.interface.ts</a>
+            </td>
+            <td>
+                interface
+            </td>
+            <td>
+                Location
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/5)</span>
+            </td>
+        </tr>
+        <tr class="medium">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./interfaces/MarkerIF.html">src/app/interfaces/marker.interface.ts</a>
+            </td>
+            <td>
+                interface
+            </td>
+            <td>
+                MarkerIF
+            </td>
+            <td align="right" data-sort="42">
+                <span class="coverage-percent">42 %</span>
+                <span class="coverage-count">(3/7)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./interfaces/Race.html">src/app/interfaces/race.interface.ts</a>
+            </td>
+            <td>
+                interface
+            </td>
+            <td>
+                Race
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/8)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./interfaces/Season.html">src/app/interfaces/seasons.interface.ts</a>
+            </td>
+            <td>
+                interface
+            </td>
+            <td>
+                Season
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/3)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./interfaces/User.html">src/app/interfaces/user.interface.ts</a>
+            </td>
+            <td>
+                interface
+            </td>
+            <td>
+                User
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/8)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/ForgotComponent.html">src/app/login/forgot/forgot.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                ForgotComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/3)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/LoginComponent.html">src/app/login/login-form/login.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                LoginComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/5)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./interfaces/Login.html">src/app/login/login-form/login.interface.ts</a>
+            </td>
+            <td>
+                interface
+            </td>
+            <td>
+                Login
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/5)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#COMPONENTS">src/app/login/login.module.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                COMPONENTS
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/RegisterComponent.html">src/app/login/register/register.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                RegisterComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/3)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./classes/Marker.html">src/app/models/marker.model.ts</a>
+            </td>
+            <td>
+                class
+            </td>
+            <td>
+                Marker
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/6)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/ChartComponent.html">src/app/pages/charts/chart.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                ChartComponent
+            </td>
+            <td align="right" data-sort="5">
+                <span class="coverage-percent">5 %</span>
+                <span class="coverage-count">(1/19)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/CircuitsComponent.html">src/app/pages/circuits/circuits.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                CircuitsComponent
+            </td>
+            <td align="right" data-sort="10">
+                <span class="coverage-percent">10 %</span>
+                <span class="coverage-count">(1/10)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/DashboardComponent.html">src/app/pages/dashboard/dashboard.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                DashboardComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/4)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/DriversComponent.html">src/app/pages/drivers/drivers.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                DriversComponent
+            </td>
+            <td align="right" data-sort="20">
+                <span class="coverage-percent">20 %</span>
+                <span class="coverage-count">(2/10)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/PagesComponent.html">src/app/pages/pages.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                PagesComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/3)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#COMPONENTS">src/app/pages/pages.module.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                COMPONENTS
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#DECLARATIONS">src/app/pages/pages.module.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                DECLARATIONS
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#DIRECTIVES">src/app/pages/pages.module.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                DIRECTIVES
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#PIPES">src/app/pages/pages.module.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                PIPES
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#PAGE_ROUTES">src/app/pages/pages.routes.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                PAGE_ROUTES
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/RacesComponent.html">src/app/pages/races/races.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                RacesComponent
+            </td>
+            <td align="right" data-sort="12">
+                <span class="coverage-percent">12 %</span>
+                <span class="coverage-count">(1/8)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/SeasonsComponent.html">src/app/pages/seasons/seasons.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                SeasonsComponent
+            </td>
+            <td align="right" data-sort="14">
+                <span class="coverage-percent">14 %</span>
+                <span class="coverage-count">(1/7)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/SettingsComponent.html">src/app/pages/settings/settings.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                SettingsComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/3)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/SupportComponent.html">src/app/pages/support/support.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                SupportComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/3)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./pipes/CapitalizePipe.html">src/app/pipes/capitalize.pipe.ts</a>
+            </td>
+            <td>
+                pipe
+            </td>
+            <td>
+                CapitalizePipe
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./pipes/GoogleMapsUrlPipe.html">src/app/pipes/google-maps-url.pipe.ts</a>
+            </td>
+            <td>
+                pipe
+            </td>
+            <td>
+                GoogleMapsUrlPipe
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./pipes/GoogleStaticMapUrlPipe.html">src/app/pipes/google-static-map-url.pipe.ts</a>
+            </td>
+            <td>
+                pipe
+            </td>
+            <td>
+                GoogleStaticMapUrlPipe
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./pipes/LocationTextPipe.html">src/app/pipes/location-text.pipe.ts</a>
+            </td>
+            <td>
+                pipe
+            </td>
+            <td>
+                LocationTextPipe
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./pipes/RoundPipe.html">src/app/pipes/round.pipe.ts</a>
+            </td>
+            <td>
+                pipe
+            </td>
+            <td>
+                RoundPipe
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./pipes/WikipediaUrlMobilePipe.html">src/app/pipes/wikipedia-url-mobile.pipe.ts</a>
+            </td>
+            <td>
+                pipe
+            </td>
+            <td>
+                WikipediaUrlMobilePipe
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./injectables/AlertService.html">src/app/services/alert.service.ts</a>
+            </td>
+            <td>
+                injectable
+            </td>
+            <td>
+                AlertService
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/6)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./injectables/CircuitsService.html">src/app/services/api/circuits.service.ts</a>
+            </td>
+            <td>
+                injectable
+            </td>
+            <td>
+                CircuitsService
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/4)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./injectables/CurrentService.html">src/app/services/api/current.service.ts</a>
+            </td>
+            <td>
+                injectable
+            </td>
+            <td>
+                CurrentService
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/2)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./injectables/DriversService.html">src/app/services/api/drivers.service.ts</a>
+            </td>
+            <td>
+                injectable
+            </td>
+            <td>
+                DriversService
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/4)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./injectables/RacesService.html">src/app/services/api/races.service.ts</a>
+            </td>
+            <td>
+                injectable
+            </td>
+            <td>
+                RacesService
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/4)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./injectables/RequestService.html">src/app/services/api/request.service.ts</a>
+            </td>
+            <td>
+                injectable
+            </td>
+            <td>
+                RequestService
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/7)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./injectables/SeasonsService.html">src/app/services/api/seasons.service.ts</a>
+            </td>
+            <td>
+                injectable
+            </td>
+            <td>
+                SeasonsService
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/4)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./injectables/LocalStorageService.html">src/app/services/local-storage.service.ts</a>
+            </td>
+            <td>
+                injectable
+            </td>
+            <td>
+                LocalStorageService
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/8)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./injectables/SettingsService.html">src/app/services/settings.service.ts</a>
+            </td>
+            <td>
+                injectable
+            </td>
+            <td>
+                SettingsService
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/2)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./injectables/SharedService.html">src/app/services/shared.service.ts</a>
+            </td>
+            <td>
+                injectable
+            </td>
+            <td>
+                SharedService
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/4)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./injectables/SidebarService.html">src/app/services/sidebar.service.ts</a>
+            </td>
+            <td>
+                injectable
+            </td>
+            <td>
+                SidebarService
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/2)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/BreadcrumbComponent.html">src/app/shared/breadcrumb/breadcrumb.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                BreadcrumbComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/4)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/FooterComponent.html">src/app/shared/footer/footer.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                FooterComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/4)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/HeaderComponent.html">src/app/shared/header/header.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                HeaderComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/5)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/NotpagefoundComponent.html">src/app/shared/notpagefound/notpagefound.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                NotpagefoundComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/3)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/ScrollTopComponent.html">src/app/shared/scroll-top/scroll-top.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                ScrollTopComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/3)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#COMPONENTS">src/app/shared/shared.module.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                COMPONENTS
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#DECLARATIONS">src/app/shared/shared.module.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                DECLARATIONS
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#PIPES">src/app/shared/shared.module.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                PIPES
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./components/SidebarComponent.html">src/app/shared/sidebar/sidebar.component.ts</a>
+            </td>
+            <td>
+                component
+            </td>
+            <td>
+                SidebarComponent
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/7)</span>
+            </td>
+        </tr>
+        <tr class="very-good">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#GOOGLEMAPS">src/environments/api-keys.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                GOOGLEMAPS
+            </td>
+            <td align="right" data-sort="100">
+                <span class="coverage-percent">100 %</span>
+                <span class="coverage-count">(1/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#environment">src/environments/environment.prod.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                environment
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#environment">src/environments/environment.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                environment
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#context">src/test.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                context
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+        <tr class="low">
+            <td>
+                <!-- miscellaneous -->
+                <a href="./miscellaneous/variables.html#require">src/test.ts</a>
+            </td>
+            <td>
+                variable
+            </td>
+            <td>
+                require
+            </td>
+            <td align="right" data-sort="0">
+                <span class="coverage-percent">0 %</span>
+                <span class="coverage-count">(0/1)</span>
+            </td>
+        </tr>
+    </tbody>
+</table>
+
+<script src="js/libs/tablesort.min.js"></script>
+<script src="js/libs/tablesort.number.min.js"></script>
+<script>
+    new Tablesort(document.getElementById('coverage-table'));
+</script>
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 0;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'coverage';
+            var COMPODOC_CURRENT_PAGE_URL = 'coverage.html';
+       </script>
+
+       <script src="./js/libs/custom-elements.min.js"></script>
+       <script src="./js/libs/lit-html.js"></script>
+       <script src="./js/menu-wc.js"></script>
+
+       <script src="./js/libs/bootstrap-native.js"></script>
+
+       <script src="./js/libs/es6-shim.min.js"></script>
+       <script src="./js/libs/EventDispatcher.js"></script>
+       <script src="./js/libs/promise.min.js"></script>
+       <script src="./js/libs/zepto.min.js"></script>
+
+       <script src="./js/compodoc.js"></script>
+
+       <script src="./js/tabs.js"></script>
+       <script src="./js/menu.js"></script>
+       <script src="./js/libs/clipboard.min.js"></script>
+       <script src="./js/libs/prism.js"></script>
+       <script src="./js/sourceCode.js"></script>
+          <script src="./js/search/search.js"></script>
+          <script src="./js/search/lunr.min.js"></script>
+          <script src="./js/search/search-lunr.js"></script>
+          <script src="./js/search/search_index.js"></script>
+       <script src="./js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/dependencies.html b/src/docs/dependencies.html
new file mode 100644
index 0000000..1d59f7b
--- /dev/null
+++ b/src/docs/dependencies.html
@@ -0,0 +1,147 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="./images/favicon.ico">
+	      <link rel="stylesheet" href="./styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="./" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content package-dependencies">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    <ol class="breadcrumb">
+        <li>Dependencies</li>
+    </ol>
+    <ul class="dependencies-list">
+        <li>
+            <b>@agm/core</b> : ^1.0.0-beta.3</li>
+        <li>
+            <b>@agm/js-marker-clusterer</b> : ^1.0.0-beta.3</li>
+        <li>
+            <b>@angular/animations</b> : ^6.0.3</li>
+        <li>
+            <b>@angular/common</b> : ^6.0.3</li>
+        <li>
+            <b>@angular/compiler</b> : ^6.0.3</li>
+        <li>
+            <b>@angular/core</b> : ^6.0.3</li>
+        <li>
+            <b>@angular/forms</b> : ^6.0.3</li>
+        <li>
+            <b>@angular/http</b> : ^6.0.3</li>
+        <li>
+            <b>@angular/platform-browser</b> : ^6.0.3</li>
+        <li>
+            <b>@angular/platform-browser-dynamic</b> : ^6.0.3</li>
+        <li>
+            <b>@angular/router</b> : ^6.0.3</li>
+        <li>
+            <b>@toverux/ngx-sweetalert2</b> : ^4.0.0</li>
+        <li>
+            <b>chart.js</b> : ^2.7.2</li>
+        <li>
+            <b>core-js</b> : ^2.5.4</li>
+        <li>
+            <b>i18n-config</b> : ^1.0.3</li>
+        <li>
+            <b>js-marker-clusterer</b> : ^1.0.0</li>
+        <li>
+            <b>ng2-charts</b> : ^1.6.0</li>
+        <li>
+            <b>ngx-easy-table</b> : ^5.1.0</li>
+        <li>
+            <b>rxjs</b> : ^6.0.0</li>
+        <li>
+            <b>sweetalert2</b> : ^7.25.3</li>
+        <li>
+            <b>zone.js</b> : ^0.8.26</li>
+    </ul>
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 0;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'package-dependencies';
+            var COMPODOC_CURRENT_PAGE_URL = 'dependencies.html';
+       </script>
+
+       <script src="./js/libs/custom-elements.min.js"></script>
+       <script src="./js/libs/lit-html.js"></script>
+       <script src="./js/menu-wc.js"></script>
+
+       <script src="./js/libs/bootstrap-native.js"></script>
+
+       <script src="./js/libs/es6-shim.min.js"></script>
+       <script src="./js/libs/EventDispatcher.js"></script>
+       <script src="./js/libs/promise.min.js"></script>
+       <script src="./js/libs/zepto.min.js"></script>
+
+       <script src="./js/compodoc.js"></script>
+
+       <script src="./js/tabs.js"></script>
+       <script src="./js/menu.js"></script>
+       <script src="./js/libs/clipboard.min.js"></script>
+       <script src="./js/libs/prism.js"></script>
+       <script src="./js/sourceCode.js"></script>
+          <script src="./js/search/search.js"></script>
+          <script src="./js/search/lunr.min.js"></script>
+          <script src="./js/search/search-lunr.js"></script>
+          <script src="./js/search/search_index.js"></script>
+       <script src="./js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/directives/DefaultImageDirective.html b/src/docs/directives/DefaultImageDirective.html
new file mode 100644
index 0000000..4b3468b
--- /dev/null
+++ b/src/docs/directives/DefaultImageDirective.html
@@ -0,0 +1,308 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content directive">
+                   <div class="content-data">
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Directives</li>
+  <li>DefaultImageDirective</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/directives/default-image.directive.ts</code>
+        </p>
+
+
+
+
+        <section>
+            <h3>Metadata</h3>
+            <table class="table table-sm table-hover">
+                <tbody>
+
+                    <tr>
+                        <td class="col-md-3">Selector</td>
+                        <td class="col-md-9"><code>img[default]</code></td>
+                    </tr>
+
+                </tbody>
+            </table>
+        </section>
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#updateUrl">updateUrl</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Inputs</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#default">default</a>
+                            </li>
+                            <li>
+                                <a href="#src">src</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+
+            <section>
+    <h3 id="inputs">Inputs</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="default"></a>
+                        <code>default</code>
+                    </td>
+                    <td class="col-md-10">
+                        <p>
+                            <em>Default value : </em><code>&#x27;./assets/img/icons/birthday.png&#x27;</code>
+                        </p>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="16" class="link-to-prism">src/app/directives/default-image.directive.ts:16</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-2">
+                        <a name="src"></a>
+                        <code>src</code>
+                    </td>
+                    <td class="col-md-10">
+                            <p>
+                            <em>Type :</em>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                            </p>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-2" colspan="2">
+                                    <div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/directives/default-image.directive.ts:13</a></div>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+            <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="updateUrl"></a>
+                        <span class="name">
+                            <b>
+                            updateUrl
+                            </b>
+                            <a href="#updateUrl"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>updateUrl()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="18" class="link-to-prism">src/app/directives/default-image.directive.ts:18</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Directive, Input } from &#x27;@angular/core&#x27;;
+
+@Directive({
+  // tslint:disable-next-line:directive-selector
+  selector: &#x27;img[default]&#x27;,
+  // tslint:disable-next-line:use-host-property-decorator
+  host: {
+    &#x27;(error)&#x27;: &#x27;updateUrl()&#x27;, &#x27;[src]&#x27;: &#x27;src&#x27;
+  }
+})
+export class DefaultImageDirective {
+  @Input()
+  src: string;
+  // Add default image to show if not load correct select src
+  @Input()
+  default &#x3D; &#x27;./assets/img/icons/birthday.png&#x27;;
+
+  updateUrl() {
+    this.src &#x3D; this.default;
+  }
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'directive';
+            var COMPODOC_CURRENT_PAGE_URL = 'DefaultImageDirective.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/fonts/ionicons.eot b/src/docs/fonts/ionicons.eot
new file mode 100644
index 0000000000000000000000000000000000000000..4b1fd0f48c9fa50401fa6dd1514fac66c0e92b06
GIT binary patch
diff --git a/src/docs/fonts/ionicons.svg b/src/docs/fonts/ionicons.svg
new file mode 100644
index 0000000..ba35c41
--- /dev/null
+++ b/src/docs/fonts/ionicons.svg
@@ -0,0 +1,2090 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<!--
+2018-6-14: Created with FontForge (http://fontforge.org)
+-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
+<metadata>
+Created by FontForge 20160407 at Thu Jun 14 08:50:34 2018
+ By Adam Bradley
+Copyright (c) 2018, Adam Bradley
+</metadata>
+<defs>
+<font id="Ionicons" horiz-adv-x="416" >
+  <font-face 
+    font-family="Ionicons"
+    font-weight="400"
+    font-stretch="normal"
+    units-per-em="512"
+    panose-1="2 0 5 3 0 0 0 0 0 0"
+    ascent="448"
+    descent="-64"
+    bbox="-0.75 -64 512.487 448"
+    underline-thickness="25.6"
+    underline-position="-51.2"
+    unicode-range="U+F100-F4CD"
+  />
+    <missing-glyph />
+    <glyph glyph-name="ion-ios-color-fill" unicode="&#xf159;" horiz-adv-x="384" 
+d="M167 330l172 -170c4 -4 1 -11 -5 -11v0c-10 0 -23 -1 -29 -7c-8 -8 -88 -86 -126 -123c-11 -10 -28 -10 -39 0l-131 126c-11 11 -12 29 -1 40l85 84l-50 49c-19 19 -19 49 0 68v0c9 9 22 14 34 14s25 -5 34 -14l56 -56v0zM64 338l48 -49l29 28l-50 49c-4 4 -9 6 -14 6
+c-6 0 -11 -3 -15 -8c-6 -8 -5 -19 2 -26zM339 108c11 -12 45 -53 45 -76c0 -26 -22 -48 -48 -48v0c-26 0 -48 21 -48 48c0 22 35 64 45 76c2 2 4 2 6 0z" />
+    <glyph glyph-name="ion-md-backspace" unicode="&#xf28f;" horiz-adv-x="426" 
+d="M390 352c20 0 36 -16 36 -36v-248c0 -20 -16 -36 -36 -36h-266c-12 0 -22 7 -28 16l-96 144l96 144c6 9 16 16 28 16h266zM337 128l-63 64l63 64l-25 25l-64 -64l-63 64l-25 -25l64 -64l-64 -64l25 -25l63 64l64 -64z" />
+    <glyph glyph-name="ion-md-paper-plane" unicode="&#xf33e;" 
+d="M0 177l416 223l-104 -416l-104 104l-74 -104l-15 148zM295 51l73 288l-291 -156l69 -25l181 138l-115 -161z" />
+    <glyph glyph-name="ion-ios-cart" unicode="&#xf3f8;" 
+d="M88 24c0 13 10 24 23 24s25 -11 25 -24s-11 -24 -24 -24s-24 11 -24 24zM336 0c-13 0 -24 12 -24 25s12 23 25 23s23 -12 23 -25s-11 -23 -24 -23zM416 316v-3l-16 -116c0 -3 -2 -5 -5 -5l-278 -47v0l4 -24c3 -16 7 -23 11 -26c3 -3 7 -3 9 -3v0h237c8 0 14 -6 14 -14
+s-6 -14 -14 -14h-237c-13 0 -25 5 -33 16c-7 9 -12 22 -14 36l-40 212s-2 9 -2 10v0c-1 7 -5 15 -10 16s-17 2 -26 2s-16 5 -16 14s7 14 16 14c27 0 41 0 49 -9c6 -8 8 -12 12 -19c1 -3 5 -4 8 -4l325 -32c2 0 5 -2 6 -4z" />
+    <glyph glyph-name="ion-ios-rose" unicode="&#xf4a3;" horiz-adv-x="320" 
+d="M320 307c-77 -89 -16 -136 -16 -204s-56 -119 -144 -119s-144 47 -144 115c0 60 35 100 93 131c25 14 33 17 52 26c30 13 65 27 105 38c17 5 35 9 54 13zM39 206c5 38 3 91 -39 135c0 0 66 -15 115 -41c14 -8 28 -17 37 -27c-12 -6 -24 -11 -36 -17c-7 -4 -14 -7 -20 -11
+c-25 -14 -44 -29 -57 -39zM256 370c0 0 26 -29 32 -51c-33 -7 -78 -20 -115 -36c-15 15 -43 32 -43 32c52 56 126 55 126 55zM144 351c-12 -8 -21 -16 -31 -27c-26 12 -41 18 -62 24c5 14 14 31 29 52c0 0 35 -11 64 -49z" />
+    <glyph glyph-name="ion-ios-refresh" unicode="&#xf49c;" horiz-adv-x="384" 
+d="M369 159v0c9 0 16 -7 15 -16c-8 -98 -91 -175 -192 -175c-106 0 -192 85 -192 191c0 104 84 189 188 191c2 0 4 2 4 4v46c0 13 14 21 25 14l96 -67c10 -6 10 -21 0 -27l-96 -67c-11 -7 -25 0 -25 13v50c0 2 -2 4 -4 4c-88 -2 -158 -73 -158 -161c0 -89 72 -161 162 -161
+c85 0 155 65 162 148c1 8 7 13 15 13z" />
+    <glyph glyph-name="ion-md-musical-note" unicode="&#xf332;" horiz-adv-x="256" 
+d="M128 384h128v-85h-85v-214c0 -47 -39 -85 -86 -85s-85 38 -85 85s38 86 85 86c16 0 30 -5 43 -12v225z" />
+    <glyph glyph-name="ion-md-list-box" unicode="&#xf31a;" horiz-adv-x="384" 
+d="M344 384c22 0 40 -18 40 -40v-304c0 -22 -18 -40 -40 -40h-304c-22 0 -40 18 -40 40v304c0 22 18 40 40 40h304zM240 80v48h-160v-48h160zM304 168v48h-224v-48h224zM304 256v48h-224v-48h224z" />
+    <glyph glyph-name="ion-ios-mail" unicode="&#xf1b8;" 
+d="M413 301c1 1 3 0 3 -2v-219c0 -18 -14 -32 -32 -32h-352c-18 0 -32 14 -32 32v219c0 2 2 3 3 2l108 -110c1 -1 1 -2 0 -3l-75 -80c-5 -5 -5 -13 0 -18c2 -2 6 -4 9 -4s7 2 9 4l75 80c1 1 2 1 3 0l18 -18c16 -16 36 -25 58 -25s43 8 58 24l18 19c1 1 2 1 3 0l75 -80
+c2 -2 6 -4 9 -4s7 2 9 4c5 5 5 13 0 18l-75 80c-1 1 -1 2 0 3zM208 153c-15 0 -29 6 -39 16l-157 160c5 4 12 7 20 7h352c8 0 14 -3 20 -7l-157 -160c-10 -11 -24 -16 -39 -16z" />
+    <glyph glyph-name="ion-md-ice-cream" unicode="&#xf30d;" horiz-adv-x="320" 
+d="M32 192h256l-128 -224zM296 287c14 -4 24 -16 24 -31v0c0 -18 -14 -32 -32 -32h-256c-18 0 -32 14 -32 32v0c0 15 10 27 24 31c-2 6 -2 15 -2 21c0 42 34 76 76 76c8 0 10 -1 17 -3c-5 -12 -3 -22 -1 -31l3 -1c2 15 11 29 11 29c18 23 46 38 77 38c53 0 96 -43 96 -96
+c0 -10 -2 -24 -5 -33z" />
+    <glyph glyph-name="ion-md-at" unicode="&#xf28d;" 
+d="M218 236c2 0 4 -1 6 -1s5 -1 7 -1l-7 -66c-3 -8 -7 -13 -11 -16s-8 -5 -14 -5s-10 3 -13 9s-4 15 -3 27c2 18 5 30 11 39s14 14 24 14zM208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM336 198c2 40 -8 72 -29 95s-51 35 -91 35
+s-73 -13 -97 -37s-37 -57 -39 -99s9 -76 31 -100s53 -36 94 -36c10 0 21 1 31 3s19 6 26 10l-6 24c-7 -3 -15 -5 -24 -7s-18 -2 -26 -2c-31 0 -55 10 -71 29s-24 46 -22 79c2 34 12 61 30 81s42 30 72 30c31 0 55 -10 70 -28s22 -44 20 -77c-1 -16 -4 -30 -11 -40
+s-16 -15 -27 -15c-3 0 -5 2 -7 5s-2 10 -2 18l8 83h-1h1c-9 5 -18 9 -25 11s-17 4 -29 4c-17 0 -33 -7 -45 -22s-19 -35 -22 -59c-2 -19 1 -34 9 -46s19 -17 34 -17c8 0 17 2 23 6s11 10 15 18c2 -8 7 -14 13 -18s13 -7 21 -7c25 0 44 7 56 23s19 35 20 56z" />
+    <glyph glyph-name="ion-ios-create" unicode="&#xf165;" horiz-adv-x="448" 
+d="M372 362c3 3 9 3 12 0l26 -26c3 -3 3 -9 0 -12l-202 -202c-2 -2 -4 -2 -6 -2h-26c-4 0 -8 4 -8 8v26c0 2 0 4 2 6zM444 381c3 -3 4 -8 4 -12s-1 -8 -4 -11l-12 -12c-2 -2 -3 -2 -5 0l-22 22l-10 10c-2 2 -2 4 0 6l11 12c3 3 8 4 12 4s8 -1 11 -4v-1zM218 106l1 1l148 147
+c2 2 6 2 6 -2v-209c0 -32 -26 -59 -58 -59h-256c-32 0 -59 27 -59 59v224c0 32 27 58 59 58h241c4 0 4 -5 2 -7l-147 -147l-1 -1c-3 -3 -5 -7 -5 -11v-1v-38v-3c0 -9 7 -16 16 -16h3h38h1c4 0 8 2 11 5z" />
+    <glyph glyph-name="ion-logo-chrome" unicode="&#xf22f;" horiz-adv-x="448" 
+d="M157 192c0 37 30 67 67 67s67 -30 67 -67s-30 -67 -67 -67s-67 30 -67 67zM445 230c2 -12 3 -25 3 -38c0 -106 -74 -195 -174 -218c-10 -2 -20 -4 -30 -5c-7 -1 -13 -1 -20 -1c-8 0 -17 0 -25 1v0v0v0v1l102 177c8 13 13 28 13 45c0 27 -13 50 -32 67h156
+c3 -9 5 -19 7 -29v0c-2 10 -4 20 -7 29v0c3 -9 5 -19 7 -29v0zM224 103c10 0 20 2 29 5l-78 -135v0c-42 9 -79 30 -108 59c-42 41 -67 97 -67 160c0 31 6 61 18 88c7 16 16 31 26 45v0l103 -178c16 -27 43 -44 77 -44zM59 343v0v1c24 26 55 47 90 59c23 8 49 13 75 13
+c73 0 138 -36 179 -90h1c10 -14 18 -29 25 -44v0c-7 15 -15 30 -25 44h-1c10 -14 19 -29 26 -44h-205c-44 0 -79 -32 -87 -72z" />
+    <glyph glyph-name="ion-md-volume-mute" unicode="&#xf3a1;" horiz-adv-x="192" 
+d="M0 256h85l107 112v-352l-107 112h-85v128z" />
+    <glyph glyph-name="ion-md-skip-forward" unicode="&#xf37d;" horiz-adv-x="384" 
+d="M0 384l277 -192l-277 -192v384zM320 0v384h64v-384h-64z" />
+    <glyph glyph-name="ion-ios-infinite" unicode="&#xf44a;" horiz-adv-x="464" 
+d="M433 266c20 -20 31 -46 31 -74s-12 -54 -32 -74s-47 -30 -75 -30s-55 10 -75 30l-125 123c-14 13 -32 20 -51 20s-36 -7 -50 -20c-13 -13 -21 -31 -21 -49s8 -36 21 -49c14 -13 31 -20 50 -20s37 7 51 20l31 30c2 2 3 2 5 0l20 -19c2 -2 2 -4 0 -6l-31 -30
+c-20 -20 -48 -30 -76 -30s-55 10 -75 30s-31 46 -31 74s11 54 31 74s47 30 75 30s56 -10 76 -30l125 -123c14 -13 32 -20 51 -20s36 7 50 20c13 13 20 31 20 49s-7 36 -20 49c-14 13 -31 20 -50 20s-37 -7 -51 -20l-31 -30c-2 -2 -3 -2 -5 0l-20 19c-2 2 -2 4 0 6l31 30
+c20 20 48 30 76 30s55 -10 75 -30z" />
+    <glyph glyph-name="ion-logo-windows" unicode="&#xf32f;" horiz-adv-x="448" 
+d="M448 183v0v-215l-248 36v179h248zM184 183v0v-177l-184 27v150h184zM448 416v0v-217h-248v182zM184 378v0v-179h-184v153z" />
+    <glyph glyph-name="ion-md-microphone" unicode="&#xf32d;" horiz-adv-x="256" 
+d="M256 336h-56v-37h56v-43h-56v-37h56v-43h-56v-37h56v-42c0 -29 -25 -52 -55 -52h-30v-77h-86v77h-30c-30 0 -55 23 -55 52v42h152v37h-152v43h152v37h-152v43h152v37h-152v28c0 29 25 52 55 52h146c30 0 55 -23 55 -52v-28z" />
+    <glyph glyph-name="ion-ios-share-alt" unicode="&#xf20f;" horiz-adv-x="384" 
+d="M381 218c2 -2 3 -7 3 -10s0 -6 -3 -8l-143 -134c-5 -5 -14 -2 -14 5v65c0 2 -2 5 -4 5c-98 -1 -161 -44 -212 -108c-3 -3 -9 1 -8 5c21 109 80 214 220 236c2 0 4 2 4 4v66c0 5 6 8 10 8c2 0 4 0 6 -2z" />
+    <glyph glyph-name="ion-md-wine" unicode="&#xf3a9;" horiz-adv-x="384" 
+d="M171 171l-171 170v43h384v-43l-171 -170v-131h107v-40h-256v40h107v131zM96 299h192l43 42h-278z" />
+    <glyph glyph-name="ion-md-skip-backward" unicode="&#xf37c;" horiz-adv-x="384" 
+d="M107 192l277 192v-384zM0 0v384h64v-384h-64z" />
+    <glyph glyph-name="ion-ios-bug" unicode="&#xf134;" horiz-adv-x="448" 
+d="M343 321c-6 -16 -17 -31 -29 -43c-24 -24 -56 -37 -90 -37s-67 13 -91 37c-12 12 -22 27 -28 43c29 39 72 63 119 63s90 -24 119 -63zM90 298c22 -45 69 -80 122 -83v-215c-40 2 -73 23 -100 55l-5 -5c-5 -4 -6 -11 -4 -17c3 -8 1 -18 -5 -25c-9 -10 -24 -11 -34 -2
+s-11 24 -2 34l3 3s2 1 2 1c4 13 13 26 27 37c-15 26 -26 56 -29 89c-2 0 -4 -1 -6 -1c-6 -1 -10 -4 -12 -9c-4 -10 -14 -17 -25 -16c-12 1 -21 10 -22 22c-1 14 10 26 24 26h3c4 2 8 5 12 6c7 2 14 4 25 4c1 23 6 45 13 65c-6 4 -11 7 -15 11c-5 4 -9 9 -12 14
+c-2 3 -3 5 -6 7c-2 1 -4 3 -6 5c-7 7 -7 18 -3 27c6 12 21 17 33 10c11 -6 15 -20 10 -31c2 -4 4 -7 6 -9s6 -3 6 -3zM424 192c14 0 25 -12 24 -26c-1 -12 -10 -21 -22 -22c-11 -1 -20 6 -24 15c-2 6 -7 9 -13 10c-2 0 -4 1 -6 1c-3 -33 -14 -64 -29 -90
+c14 -11 23 -23 27 -36c0 0 1 0 2 -1l3 -3c9 -10 8 -25 -2 -34s-25 -8 -34 2c-6 7 -8 16 -5 24c2 6 1 14 -4 18c-2 1 -3 2 -5 4c-27 -32 -60 -52 -100 -54v215c53 3 100 37 122 82c0 0 4 2 6 4c3 3 4 6 6 9c-5 11 -1 25 10 31c12 6 27 3 33 -9s3 -27 -9 -33v0
+c-2 -1 -5 -4 -6 -6c-3 -5 -7 -11 -12 -15c-4 -4 -9 -7 -15 -11c7 -20 12 -42 13 -65c11 0 18 -2 25 -4c4 -1 8 -4 12 -6h3z" />
+    <glyph glyph-name="ion-ios-help-circle" unicode="&#xf198;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM204 96c12 0 21 9 21 21s-9 20 -21 20s-22 -8 -22 -20s10 -21 22 -21zM244 193c18 11 28 24 28 44c0 30 -25 51 -63 51c-40 0 -64 -23 -65 -55h36c1 15 11 25 26 25s27 -10 27 -22
+s-7 -19 -24 -29c-18 -11 -25 -23 -23 -44v-8h35v8c0 13 6 20 23 30z" />
+    <glyph glyph-name="ion-md-bulb" unicode="&#xf2a7;" horiz-adv-x="288" 
+d="M80 20v18h128v-18c0 -11 -9 -20 -20 -20h-88c-11 0 -20 9 -20 20zM144 384c80 0 144 -60 144 -134c0 -46 -25 -87 -62 -111v-43c0 -11 -9 -19 -20 -19h-124c-11 0 -21 8 -21 19v43c-37 24 -61 65 -61 111c0 74 64 134 144 134z" />
+    <glyph glyph-name="ion-ios-document" unicode="&#xf170;" horiz-adv-x="304" 
+d="M208 293c-10 0 -19 9 -19 19v72c0 4 3 8 7 8v0c8 0 15 -3 21 -8l76 -63c7 -6 11 -14 11 -23v0c0 -3 -2 -5 -5 -5h-91zM163 312c0 -25 20 -45 45 -45h96v-243c0 -18 -14 -32 -32 -32h-240c-18 0 -32 14 -32 32v336c0 18 14 32 32 32h131v-80z" />
+    <glyph glyph-name="ion-ios-search" unicode="&#xf4a5;" horiz-adv-x="384" 
+d="M380 28c6 -7 6 -18 -1 -24c-3 -3 -7 -4 -11 -4s-9 2 -12 5l-106 107c-26 -21 -60 -34 -97 -34c-85 0 -153 69 -153 153s68 153 153 153s153 -69 153 -153c0 -36 -12 -69 -33 -95zM153 111c32 0 62 12 85 35s35 53 35 85s-12 62 -35 85s-53 35 -85 35s-62 -12 -85 -35
+s-35 -53 -35 -85s12 -62 35 -85s53 -35 85 -35z" />
+    <glyph glyph-name="ion-logo-youtube" unicode="&#xf34f;" horiz-adv-x="512" 
+d="M509 299c2 -36 3 -71 3 -107s-1 -71 -3 -107c0 -45 -33 -81 -74 -81c-58 -3 -118 -4 -179 -4s-121 1 -179 4c-41 0 -74 36 -74 81c-2 36 -3 71 -3 107s2 71 4 107c0 45 32 81 73 81c55 3 112 4 170 4h9h9c58 0 115 -1 170 -4c41 0 74 -36 74 -81zM207 94l145 98l-145 99
+v-197z" />
+    <glyph glyph-name="ion-md-aperture" unicode="&#xf279;" horiz-adv-x="448" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c36 36 56 85 56 136s-20 100 -56 136s-85 56 -136 56s-100 -20 -136 -56s-56 -85 -56 -136s20 -100 56 -136s85 -56 136 -56s100 20 136 56zM168 342l56 -86h-147
+c17 40 50 71 91 86zM381 160h-102l72 129c21 -27 33 -60 33 -97c0 -11 -1 -22 -3 -32zM328 314l-49 -90l-78 126c8 1 15 2 23 2c40 0 76 -14 104 -38zM67 224h102l-72 -129c-21 27 -33 60 -33 97c0 11 1 22 3 32zM280 42l-56 86h147c-17 -40 -50 -71 -91 -86zM120 70l49 90
+l78 -126c-8 -1 -15 -2 -23 -2c-40 0 -76 14 -104 38z" />
+    <glyph glyph-name="ion-md-list" unicode="&#xf31b;" horiz-adv-x="352" 
+d="M0 120v48h256v-48h-256zM0 216v48h320v-48h-320zM0 312v48h352v-48h-352zM0 24v48h288v-48h-288z" />
+    <glyph glyph-name="ion-ios-power" unicode="&#xf1ef;" horiz-adv-x="384" 
+d="M316 336c43 -36 68 -89 68 -145c0 -105 -86 -191 -192 -191s-192 86 -192 191c0 56 25 109 68 145c3 3 8 5 12 5c5 0 9 -3 13 -7c3 -4 5 -8 5 -13s-3 -10 -7 -13c-35 -29 -55 -72 -55 -117c0 -85 70 -155 156 -155s156 70 156 155c0 45 -20 87 -55 117c-4 3 -7 8 -7 13
+s2 9 5 13s9 7 14 7c4 0 8 -2 11 -5zM193 174c-10 0 -19 8 -19 18v174c0 10 9 18 19 18s18 -8 18 -18v-174c0 -10 -8 -18 -18 -18z" />
+    <glyph glyph-name="ion-md-grid" unicode="&#xf302;" horiz-adv-x="384" 
+d="M346 384c21 0 38 -17 38 -38v-308c0 -21 -17 -38 -38 -38h-308c-21 0 -38 17 -38 38v308c0 21 17 38 38 38h308zM115 38v77h-77v-77h77zM115 154v76h-77v-76h77zM115 269v77h-77v-77h77zM230 38v77h-76v-77h76zM230 154v76h-76v-76h76zM230 269v77h-76v-77h76zM346 38v77
+h-77v-77h77zM346 154v76h-77v-76h77zM346 269v77h-77v-77h77z" />
+    <glyph glyph-name="ion-ios-glasses" unicode="&#xf43f;" horiz-adv-x="446" 
+d="M432 207c8 0 14 -7 14 -15s-6 -15 -14 -15h-7c-3 -21 -13 -40 -28 -55c-17 -17 -40 -26 -64 -26c-51 0 -93 43 -93 96v0c0 6 -7 15 -17 15s-17 -9 -17 -15v0c0 -53 -42 -96 -93 -96c-24 0 -47 9 -64 26c-15 15 -25 34 -28 55h-7c-8 0 -14 7 -14 15s6 15 14 15h7
+c3 21 13 40 28 55c17 16 40 26 64 26c20 0 40 -6 56 -19c14 -11 24 -25 30 -42c7 5 16 7 24 7s17 -2 24 -7c6 17 16 31 30 42c16 13 36 19 56 19c24 0 47 -9 64 -26c15 -15 25 -34 28 -55h7z" />
+    <glyph glyph-name="ion-md-hand" unicode="&#xf304;" horiz-adv-x="414" 
+d="M401 174c15 -15 18 -36 3 -51c0 0 -96 -103 -126 -121v0c-28 -21 -65 -34 -100 -34c-55 0 -101 36 -117 85v0v1c0 1 -1 2 -1 3l-58 189c-5 15 2 32 17 37s30 -3 35 -18l34 -88c1 -4 2 -2 2 1l-22 161c-3 15 7 30 22 33s30 -8 33 -23l25 -138c0 -2 2 -2 2 0v177
+c0 15 13 28 28 28s28 -13 28 -28l8 -175c0 -5 3 -4 4 -1l23 135c2 15 16 27 31 25s27 -17 25 -32l-21 -172c-1 -12 -3 -30 2 -36c8 -9 20 -9 31 2l42 42c15 15 35 13 50 -2z" />
+    <glyph glyph-name="ion-ios-bluetooth" unicode="&#xf128;" horiz-adv-x="256" 
+d="M250 115c7 -6 7 -16 1 -23l-116 -120c-2 -2 -6 -4 -9 -4v0c-6 0 -11 5 -11 11v170l-85 -74c-7 -6 -19 -5 -25 2v0c-6 7 -5 18 2 24l108 91l-109 92c-7 6 -8 17 -2 24v0c6 7 18 7 25 1l86 -73v169c0 6 5 11 11 11v0c3 0 7 -2 9 -4l116 -121c6 -7 6 -17 -1 -23l-88 -76z
+M151 347c-1 1 -3 1 -3 -1v-119c0 -2 2 -3 3 -2l63 53c1 1 1 2 0 3zM148 38c0 -2 2 -2 3 -1l63 65c1 1 1 2 0 3l-63 53c-1 1 -3 0 -3 -2v-118z" />
+    <glyph glyph-name="ion-ios-time" unicode="&#xf4bf;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM222 174v146c0 8 -6 14 -14 14s-14 -6 -14 -14v-132h-82c-8 0 -14 -6 -14 -14s6 -14 14 -14h96c8 0 14 6 14 14z" />
+    <glyph glyph-name="ion-ios-trending-up" unicode="&#xf25b;" horiz-adv-x="448" 
+d="M433 320c8 0 15 -7 15 -15v-118c0 -8 -7 -15 -15 -15s-15 7 -15 15v82l-150 -152c-3 -3 -6 -4 -10 -4s-8 1 -11 4l-86 84l-135 -133c-3 -3 -7 -4 -11 -4s-8 1 -11 4s-4 6 -4 10c0 6 2 9 4 11l146 143c3 3 7 5 11 5s8 -2 11 -5l86 -84l138 142h-84c-8 0 -15 7 -15 15
+s7 15 15 15h121z" />
+    <glyph glyph-name="ion-md-contact" unicode="&#xf2d6;" 
+d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM208 338c-34 0 -62 -29 -62 -63s28 -62 62 -62s62 28 62 62s-28 63 -62 63zM208 37c52 0 98 27 125 67c-1 42 -83 64 -125 64s-124 -22 -125 -64c27 -40 73 -67 125 -67z" />
+    <glyph glyph-name="ion-md-close-circle" unicode="&#xf2bf;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM312 117l-75 75l75 75l-29 29l-75 -75l-75 75l-29 -29l75 -75l-75 -75l29 -29l75 75l75 -75z" />
+    <glyph glyph-name="ion-logo-sass" unicode="&#xf249;" horiz-adv-x="512" 
+d="M512 119v-8c-1 -9 -7 -17 -15 -22s-12 -4 -13 -3s1 3 4 5c13 8 17 20 10 33c-5 10 -15 16 -26 20c-24 8 -48 7 -72 0c4 -12 7 -23 -2 -34c-10 -12 -23 -19 -39 -22c-7 -2 -14 2 -15 9c-3 19 17 36 30 47c-7 11 -11 24 -14 37c-15 -17 -31 -40 -26 -61
+c3 -14 -1 -27 -14 -36s-30 -14 -46 -11c-4 1 -6 5 -5 8c2 14 25 32 35 43c2 2 3 4 1 7c-6 12 -10 23 -14 36c-13 -29 -30 -80 -57 -98c-9 -6 -17 -4 -21 5c-3 8 -2 20 -1 29c-6 -13 -11 -27 -20 -38c-7 -8 -24 -7 -30 1c-16 21 -13 50 -5 73l-29 -15c7 -16 8 -32 4 -49
+c-5 -19 -17 -35 -35 -46c-19 -12 -64 -24 -77 4c-7 16 -4 30 6 44c17 24 48 37 74 50c-32 23 -80 42 -96 80c-15 35 17 68 43 89c59 48 166 95 244 59c15 -7 36 -24 31 -52c-4 -24 -13 -39 -28 -54c-32 -32 -152 -77 -176 -15c-1 1 -1 4 1 4c2 -1 20 -15 43 -16
+c17 -1 36 3 52 8c33 11 71 33 80 67c4 13 -2 28 -15 34c-49 24 -116 -4 -159 -26c-33 -17 -84 -45 -82 -87c1 -37 56 -60 81 -82c15 7 42 15 52 27c11 13 26 25 44 26c8 0 14 -3 16 -10c2 -6 1 -11 0 -19c5 4 11 4 15 -1c12 -14 -22 -50 -10 -66c14 14 21 42 30 59
+c4 8 17 51 26 53c7 2 18 4 25 0c2 -1 3 -3 2 -5c-7 -19 -7 -33 3 -52c14 20 29 43 34 67c1 2 3 3 5 4c7 2 18 3 25 0c3 -1 3 -2 2 -5c-7 -22 -6 -38 6 -58c31 11 69 15 97 -5c-3 2 -7 5 0 0c5 -4 3 -2 0 0c12 -8 19 -18 21 -32zM113 94v0c1 7 -1 13 -3 20
+c-24 -8 -66 -35 -64 -62c1 -10 8 -13 17 -12s19 7 27 13c14 11 22 24 23 41zM216 166c1 3 -2 5 -5 4c-29 -8 -43 -57 -33 -81c1 -3 4 -3 6 -1c17 16 28 56 32 78zM286 84c8 -3 27 17 26 27c-8 -9 -18 -18 -26 -27zM367 102c11 6 16 19 12 30c-8 -6 -21 -19 -20 -31
+c0 -2 6 0 8 1z" />
+    <glyph glyph-name="ion-ios-apps" unicode="&#xf10a;" horiz-adv-x="384" 
+d="M371 310c18 -8 18 -21 0 -29l-148 -67c-17 -8 -45 -8 -62 0l-148 67c-18 8 -18 21 0 29l150 68c16 7 43 7 59 0zM161 73c17 -8 45 -8 62 0l100 45c4 2 9 2 13 0l35 -16c18 -8 18 -21 0 -29l-148 -67c-17 -8 -45 -8 -62 0l-148 67c-18 8 -18 21 0 29l35 16c4 2 10 2 14 0z
+M371 206c18 -8 18 -21 0 -29l-148 -67c-17 -8 -45 -8 -62 0l-148 67c-18 8 -18 21 0 29l32 15c4 2 9 2 13 0l108 -49c15 -5 37 -5 52 0l108 49c4 2 9 2 13 0z" />
+    <glyph glyph-name="ion-ios-outlet" unicode="&#xf1db;" 
+d="M311 370c3 0 6 0 8 -2c58 -37 97 -102 97 -176s-39 -138 -97 -176c-2 -2 -5 -2 -8 -2h-206c-3 0 -6 0 -8 2c-58 38 -97 102 -97 176s39 139 97 176c2 2 5 2 8 2h206zM145 177c2 0 4 2 4 4v111c0 2 -2 4 -4 4h-22c-2 0 -4 -2 -4 -4v-111c0 -2 2 -4 4 -4h22zM234 58
+c2 0 4 2 4 4v41c0 16 -14 30 -30 30s-30 -15 -30 -31v-40c0 -2 2 -4 4 -4h52zM293 192c2 0 4 2 4 4v81c0 2 -2 4 -4 4h-22c-2 0 -4 -2 -4 -4v-81c0 -2 2 -4 4 -4h22z" />
+    <glyph glyph-name="ion-ios-tablet-landscape" unicode="&#xf223;" horiz-adv-x="448" 
+d="M7 345v0c4 4 11 7 17 7h400c6 0 13 -3 17 -7v0c4 -4 7 -11 7 -17v-272c0 -6 -3 -13 -7 -17v0c-4 -4 -11 -7 -17 -7h-400c-6 0 -13 3 -17 7v0c-4 4 -7 11 -7 17v272c0 6 3 13 7 17zM17 192c0 -4 3 -7 7 -7s7 3 7 7s-3 7 -7 7s-7 -3 -7 -7zM438 192c0 8 -6 14 -14 14
+s-14 -6 -14 -14s6 -14 14 -14s14 6 14 14zM400 336h-352v-288h352v288z" />
+    <glyph glyph-name="ion-md-arrow-dropdown-circle" unicode="&#xf27f;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 128l96 96h-192z" />
+    <glyph glyph-name="ion-logo-flickr" unicode="&#xf107;" horiz-adv-x="384" 
+d="M288 384c53 0 96 -43 96 -96v-192c0 -53 -43 -96 -96 -96h-192c-53 0 -96 43 -96 96v192c0 53 43 96 96 96h192zM120 144c26 0 48 22 48 48s-22 48 -48 48s-48 -22 -48 -48s22 -48 48 -48zM264 144c26 0 48 22 48 48s-22 48 -48 48s-48 -22 -48 -48s22 -48 48 -48z" />
+    <glyph glyph-name="ion-md-tv" unicode="&#xf17f;" horiz-adv-x="448" 
+d="M407 372c22 0 41 -18 41 -40v-240c0 -22 -19 -40 -41 -40h-102v-40h-163v40h-101c-22 0 -41 18 -41 40v240c0 22 19 40 41 40h366zM407 92v0v240h-366v-240h366z" />
+    <glyph glyph-name="ion-ios-bowtie" unicode="&#xf130;" horiz-adv-x="448" 
+d="M259 234c10 -17 19 -53 17 -85c-1 -17 -5 -22 -5 -22s-12 -7 -36 -7h-11c-35 3 -40 15 -40 15s4 12 8 43s0 58 0 58s7 5 19 7c8 2 17 3 23 3v0c11 0 20 -4 25 -12zM174 239c0 0 3 -16 2 -32v-10c0 -3 -1 -6 -1 -10c0 -5 0 -10 -1 -15l-2 -10c-4 -21 -10 -34 -10 -34
+s-77 -80 -110 -80c-28 0 -52 68 -52 144s26 144 52 144c35 0 100 -57 122 -97zM396 336c26 0 52 -68 52 -144s-24 -144 -52 -144c-37 0 -98 69 -106 79c0 0 4 5 5 22v9v8c0 11 -2 23 -4 33l-3 11c-3 10 -7 18 -10 24c0 1 -2 4 -2 4l1 1c22 40 83 97 119 97z" />
+    <glyph glyph-name="ion-ios-barcode" unicode="&#xf3dc;" 
+d="M74 60c4 0 7 -2 10 -5s4 -6 4 -10c0 -8 -7 -13 -15 -13h-56c-10 0 -17 6 -17 16v288c0 10 8 16 18 16h54c4 0 9 -1 12 -4s4 -6 4 -10c0 -8 -7 -14 -15 -14h-40c-2 0 -4 -2 -4 -4v-256c0 -2 2 -4 4 -4h41zM399 352c10 0 17 -6 17 -16v-288c0 -10 -7 -16 -17 -16h-57
+c-4 0 -7 1 -10 4s-4 6 -4 10c0 8 7 14 15 14h40c2 0 4 2 4 4v256c0 2 -2 4 -4 4h-41c-5 0 -9 3 -12 8c0 1 -1 1 -1 2c-3 10 4 18 14 18h56zM74 272c8 0 14 -6 14 -14v-132c0 -8 -6 -14 -14 -14s-14 6 -14 14v132c0 8 6 14 14 14zM342 112c-8 0 -14 6 -14 14v132
+c0 8 6 14 14 14s14 -6 14 -14v-132c0 -8 -6 -14 -14 -14zM278 304c8 0 14 -6 14 -14v-196c0 -8 -6 -14 -14 -14s-14 6 -14 14v196c0 8 6 14 14 14zM138 304c8 0 14 -6 14 -14v-196c0 -8 -6 -14 -14 -14s-14 6 -14 14v196c0 8 6 14 14 14zM208 288c8 0 14 -6 14 -14v-164
+c0 -8 -6 -14 -14 -14s-14 6 -14 14v164c0 8 6 14 14 14z" />
+    <glyph glyph-name="ion-ios-shirt" unicode="&#xf213;" horiz-adv-x="413" 
+d="M413 266l-62 -64c-2 -3 -7 -1 -7 3v45c0 5 -5 10 -11 9c-4 -1 -7 -5 -7 -9v-61v-181c0 -4 -4 -8 -8 -8h-222c-4 0 -8 4 -8 8v181v61c0 5 -5 10 -11 9c-4 -1 -7 -5 -7 -9v-45c0 -4 -5 -6 -7 -3l-62 64c-1 2 -1 4 0 6c12 12 61 63 89 83c20 15 41 29 63 29s22 -8 54 -8
+s32 8 54 8s42 -14 62 -29c28 -20 77 -71 89 -83c1 -2 2 -4 1 -6zM207 305c30 0 54 13 54 36c0 30 -24 11 -54 11s-54 19 -54 -11c0 -23 24 -36 54 -36z" />
+    <glyph glyph-name="ion-md-home" unicode="&#xf30c;" 
+d="M160 0h-98v192h-62l208 192l208 -192h-62v-192h-98v128h-96v-128z" />
+    <glyph glyph-name="ion-ios-cafe" unicode="&#xf13c;" 
+d="M322 44c8 0 14 -7 14 -15s-7 -13 -15 -13h-259c-8 0 -14 7 -14 15s6 13 14 13h260zM351 330v0c39 -14 65 -49 65 -88c0 -25 -11 -49 -30 -67s-45 -27 -72 -27h-6v0c-16 -28 -36 -50 -58 -64c-19 -12 -38 -20 -44 -20h-60c-9 0 -46 12 -78 49c-18 21 -33 47 -44 79
+c-14 38 -22 84 -24 136c0 11 4 22 12 30c7 7 17 10 27 10h274c10 0 19 -3 26 -10c8 -8 12 -17 12 -28zM322 176v0c37 3 66 32 66 66c0 13 -5 26 -13 37c-7 9 -16 16 -26 21v0c-4 -47 -13 -90 -27 -124z" />
+    <glyph glyph-name="ion-md-navigate" unicode="&#xf334;" horiz-adv-x="320" 
+d="M160 384l160 -369l-15 -15l-145 64l-145 -64l-15 15z" />
+    <glyph glyph-name="ion-md-arrow-round-down" unicode="&#xf289;" horiz-adv-x="332" 
+d="M9 163c-12 12 -12 31 0 43s34 12 46 0l79 -83v214c0 17 14 31 32 31s32 -14 32 -31v-214l79 83c12 12 34 12 46 0s12 -31 0 -43l-134 -138c-6 -6 -14 -9 -23 -9v0c-9 0 -17 3 -23 9z" />
+    <glyph glyph-name="ion-md-color-fill" unicode="&#xf2d0;" horiz-adv-x="448" 
+d="M104 370l30 30l257 -256l-54 -11l-153 -149l-184 178l142 141zM288 162l-102 103l-103 -103h205zM391 144c0 0 57 -61 57 -92s-26 -56 -57 -56s-56 25 -56 56s56 92 56 92z" />
+    <glyph glyph-name="ion-ios-star-half" unicode="&#xf4b1;" horiz-adv-x="448" 
+d="M431 256c9 0 17 -7 17 -16c0 -4 -2 -8 -5 -11l-3 -2l-120 -86l46 -135c2 -7 1 -14 -5 -18c-3 -2 -6 -4 -9 -4s-7 2 -10 4l-118 84l-118 -84c-3 -2 -7 -4 -10 -4s-6 2 -9 4c-6 4 -7 12 -5 18l46 135l-121 85c-5 4 -7 7 -7 11v3c0 9 7 16 16 16v0h148l45 133
+c2 6 8 11 15 11s13 -5 15 -11l45 -133h147zM384 221c3 2 1 7 -3 7h-97v0c-12 0 -23 8 -27 19l-29 88v0c-1 2 -4 2 -4 0v-210c0 -12 6 -23 16 -30v0l78 -56c3 -2 7 1 6 5l-30 88c-4 12 0 25 10 32z" />
+    <glyph glyph-name="ion-ios-person" unicode="&#xf47e;" horiz-adv-x="384" 
+d="M384 10c1 -5 -3 -10 -8 -10h-368c-5 0 -9 5 -8 10c7 32 49 47 63 52c16 6 38 7 52 10c8 2 20 6 24 11s1 49 1 49s-7 12 -11 22s-8 38 -8 38s-8 0 -11 14c-3 16 -9 22 -8 34s7 11 7 11s-6 16 -7 51c-1 41 31 82 90 82c58 0 91 -41 90 -82c-1 -35 -7 -51 -7 -51s6 1 7 -11
+s-5 -18 -8 -34c-3 -14 -11 -14 -11 -14s-4 -28 -8 -38s-12 -22 -12 -22s-2 -44 2 -49s16 -9 24 -11c14 -3 36 -4 52 -10c14 -5 56 -20 63 -52z" />
+    <glyph glyph-name="ion-md-settings" unicode="&#xf377;" 
+d="M366 171l47 -34c3 -3 4 -10 2 -14l-43 -71c-2 -4 -7 -7 -12 -5l-54 21c-12 -8 -23 -16 -36 -21l-8 -55c-1 -4 -6 -8 -11 -8h-85c-5 0 -10 3 -11 8l-8 55c-13 5 -25 13 -36 21l-54 -21c-4 -2 -10 1 -12 5l-43 71c-3 5 -2 11 2 14l45 34c0 7 -1 14 -1 21s1 14 1 21l-46 34
+c-3 3 -4 10 -2 14l43 71c2 4 7 7 12 5l54 -21c12 8 23 16 36 21l8 55c1 4 6 8 11 8h85c5 0 10 -4 11 -8l7 -55c13 -5 25 -13 36 -21l53 21c4 2 11 -1 13 -5l43 -71c3 -5 2 -11 -2 -14l-45 -34c0 -7 1 -14 1 -21s0 -15 -1 -21zM207 119c41 0 75 32 75 73s-34 73 -75 73
+s-74 -32 -74 -73s33 -73 74 -73z" />
+    <glyph glyph-name="ion-ios-lock" unicode="&#xf1b0;" horiz-adv-x="320" 
+d="M280 256c22 0 40 -18 40 -40v-192c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v192c0 22 18 40 40 40h24v48c0 53 44 97 97 96s95 -44 95 -97v-47h24zM174 131c11 5 18 16 18 29c0 18 -15 33 -34 32c-16 -1 -29 -13 -30 -29c-1 -14 6 -26 18 -32v-69
+c0 -8 7 -14 15 -14s13 6 13 14v69zM228 256v48c0 18 -7 35 -20 48s-30 20 -48 20s-35 -7 -48 -20s-20 -30 -20 -48v-48h136z" />
+    <glyph glyph-name="ion-ios-egg" unicode="&#xf175;" horiz-adv-x="320" 
+d="M160 416v0c64 0 160 -133 160 -257s-64 -191 -160 -191s-160 67 -160 191s96 257 160 257z" />
+    <glyph glyph-name="ion-ios-repeat" unicode="&#xf1fe;" horiz-adv-x="384" 
+d="M273 290c4 -4 6 -9 6 -15s-2 -11 -6 -15l-36 -36c-3 -3 -6 -4 -10 -4s-7 1 -10 4s-4 7 -4 11c0 3 2 7 4 9l16 16h-155c-13 0 -25 -5 -35 -15s-15 -22 -15 -35v-16c0 -8 -6 -14 -14 -14v0c-8 0 -14 6 -14 14v16c0 21 8 40 23 55s34 23 55 23h157l-16 16c-2 2 -4 6 -4 9
+c0 5 2 10 7 13c1 1 2 2 3 2c5 1 10 0 14 -4zM370 204c8 0 14 -6 14 -14v-16c0 -43 -35 -78 -78 -78h-157l16 -16c2 -2 4 -6 4 -9c0 -5 -2 -10 -7 -13c-1 -1 -2 -1 -3 -1c-5 -1 -10 -1 -14 3l-34 34c-4 4 -6 9 -6 15s2 12 6 16l36 35c3 3 6 4 10 4s7 -1 10 -4s4 -7 4 -11
+c0 -3 -2 -7 -4 -9l-16 -16h155c13 0 25 5 35 15s15 22 15 35v16c0 8 6 14 14 14v0z" />
+    <glyph glyph-name="ion-ios-color-palette" unicode="&#xf15b;" horiz-adv-x="384" 
+d="M366 100c12 -11 14 -35 0 -48c-39 -34 -94 -52 -149 -52h-1c-55 0 -111 18 -153 55c-84 74 -84 195 0 269c45 40 102 60 158 60c48 0 94 -15 128 -45c46 -41 46 -108 0 -149l-30 -27c-14 -13 -14 -31 0 -44c7 -6 11 -8 23 -10c8 -1 17 -3 24 -9zM56 232
+c0 -18 14 -32 32 -32s32 14 32 32s-14 32 -32 32s-32 -14 -32 -32zM96 106c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM160 267c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM232 48c26 0 48 22 48 48s-22 48 -48 48
+s-48 -22 -48 -48s22 -48 48 -48zM256 256c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" />
+    <glyph glyph-name="ion-ios-alert" unicode="&#xf104;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM225 290c0 10 -7 18 -17 18v0c-10 0 -17 -8 -17 -18l3 -115c0 -8 6 -15 14 -15v0c8 0 14 7 14 15zM208 94c11 0 19 8 19 18s-8 19 -19 19s-19 -9 -19 -19s8 -18 19 -18z" />
+    <glyph glyph-name="ion-ios-bus" unicode="&#xf13a;" horiz-adv-x="320" 
+d="M14 31c11 -12 24 -9 58 -9c0 -10 1 -22 -3 -22h-55c-4 0 -5 7 -6 29c0 3 4 4 6 2zM306 31c2 2 6 1 6 -2c-1 -22 -2 -29 -6 -29h-55s-3 12 -3 22c34 0 47 -3 58 9zM288 384c18 0 32 -14 32 -32v0v-276c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v276v0
+c0 18 14 32 32 32h8h240h8zM66 72c12 1 21 10 22 22c1 15 -11 27 -26 26c-12 -1 -21 -10 -22 -22c-1 -15 11 -27 26 -26zM142 150c2 0 4 2 4 4v140c0 2 -2 4 -4 4h-98c-9 0 -16 -7 -16 -16v-116c0 -9 7 -16 16 -16h98zM258 72c12 1 21 10 22 22c1 15 -11 27 -26 26
+c-12 -1 -21 -10 -22 -22c-1 -15 11 -27 26 -26zM292 166v116c0 9 -7 16 -16 16h-98c-2 0 -4 -2 -4 -4v-140c0 -2 2 -4 4 -4h98c9 0 16 7 16 16zM277 328c9 0 15 6 15 14s-6 14 -15 14h-234c-9 0 -15 -6 -15 -14s6 -14 15 -14h234z" />
+    <glyph glyph-name="ion-md-beer" unicode="&#xf298;" horiz-adv-x="448" 
+d="M384 308c47 0 64 -33 64 -68v-96c0 -35 -14 -68 -64 -68h-16v-33v-11c0 -35 -29 -64 -64 -64h-176c-35 0 -64 29 -64 64v173v2c-26 0 -48 22 -48 48v55c-10 11 -16 26 -16 42c0 35 29 64 64 64c18 0 34 -8 46 -20c10 12 26 20 43 20c14 0 27 -6 37 -14c12 9 26 14 42 14
+c17 0 34 -6 46 -16c11 10 26 16 42 16c35 0 64 -29 64 -64c0 -15 -7 -29 -16 -38v-6h16zM320 256v49v15h-20c-3 -8 -7 -16 -13 -23c-13 -16 -33 -25 -55 -25c-26 0 -48 13 -61 33c-6 -2 -12 -3 -18 -3c-12 0 -23 4 -32 10c-2 1 -3 3 -5 4c-1 -2 -2 -3 -3 -5l-1 -1v-54h208z
+M64 320c9 0 18 4 24 11c2 2 3 4 4 6c0 0 6 10 12 11s20 6 30 -5c4 -5 11 -9 19 -9c3 0 5 1 7 2c3 1 7 2 9 4v0c3 2 6 4 10 4c7 0 12 -4 14 -10c0 0 1 -1 1 -2c1 -3 1 -5 3 -8c7 -12 20 -20 35 -20c13 0 26 6 33 16c5 7 7 15 7 24s9 8 9 8h55c6 0 13 -3 15 -9c1 3 1 6 1 9
+c0 18 -14 32 -32 32c-9 0 -17 -4 -23 -10c-2 -2 -6 -5 -16 -6h-8c-6 1 -11 3 -13 5c-7 7 -17 11 -28 11c-9 0 -18 -4 -25 -9c-2 -2 -4 -5 -6 -7c0 -1 -1 -1 -2 -2c-3 -3 -7 -5 -11 -5c-5 0 -8 3 -11 6c-1 2 -2 3 -3 5s-3 4 -5 6c-4 4 -10 6 -16 6c-10 0 -18 -9 -25 -16
+c-7 -8 -27 -8 -34 0s-18 16 -30 16c-18 0 -32 -14 -32 -32c0 -2 1 -5 1 -7c2 -9 7 -17 15 -21v-63c0 -9 7 -16 16 -16v75zM400 144v96c0 18 -6 24 -24 24h-8v-144h8c18 0 24 6 24 24z" />
+    <glyph glyph-name="ion-md-snow" unicode="&#xf37e;" horiz-adv-x="412" 
+d="M411 150l-57 -16l58 -33l-24 -42l-57 33l16 -57l-31 -8l-24 88l-62 36v-71l64 -64l-22 -23l-42 42v-67h-48v66l-42 -42l-22 22l64 65v71l-61 -35l-23 -88l-31 8l15 57l-58 -33l-24 41l57 33l-57 15l8 31l88 -23l63 36l-63 36l-88 -24l-8 31l57 15l-57 33l24 42l58 -34
+l-15 57l31 9l23 -88l61 -35v71l-64 65l22 22l42 -42v66h48v-67l42 42l22 -23l-64 -64v-71l62 36l24 88l31 -9l-16 -57l57 33l24 -42l-58 -33l57 -15l-8 -31l-88 24l-60 -35l60 -35l88 23z" />
+    <glyph glyph-name="ion-md-download" unicode="&#xf2e3;" horiz-adv-x="320" 
+d="M320 248l-160 -158l-160 158h91v136h138v-136h91zM0 45h320v-45h-320v45z" />
+    <glyph glyph-name="ion-md-star-outline" unicode="&#xf383;" horiz-adv-x="404" 
+d="M404 238l-110 -96l33 -142l-125 75l-125 -75l33 142l-110 96l145 12l57 134l57 -134zM219 103l60 -36l-16 68l-5 19l15 12l53 46l-70 6l-19 2l-8 18l-27 64l-27 -64l-8 -18l-19 -2l-70 -6l53 -46l15 -12l-5 -19l-16 -68l60 36l17 10z" />
+    <glyph glyph-name="ion-ios-microphone" unicode="&#xf1c6;" horiz-adv-x="288" 
+d="M203 244c-7 0 -12 -5 -12 -12s5 -12 12 -12h73c7 0 12 -5 12 -12s-5 -12 -12 -12h-73c-7 0 -12 -5 -12 -12s5 -12 12 -12h77c4 0 8 -4 8 -8c0 -14 -3 -27 -8 -39c-1 -3 -4 -5 -7 -5h-258c-3 0 -6 2 -7 5c-5 12 -8 25 -8 39c0 4 4 8 8 8h77c7 0 12 5 12 12s-5 12 -12 12
+h-73c-7 0 -12 5 -12 12s5 12 12 12h73c7 0 12 5 12 12s-5 12 -12 12h-73c-7 0 -12 5 -12 12s5 12 12 12h73c7 0 12 5 12 12s-5 12 -12 12h-77c-4 0 -8 4 -8 8c2 47 31 88 73 106c5 2 11 -1 11 -7v-36c0 -7 5 -12 12 -12s12 5 12 12v41c0 7 5 12 12 12v0c7 0 12 -5 12 -12
+v-57c0 -7 5 -12 12 -12s12 5 12 12v57c0 7 5 12 12 12v0c7 0 12 -5 12 -12v-41c0 -7 5 -12 12 -12s12 5 12 12v36c0 6 6 9 11 7c42 -18 71 -58 73 -106c0 -4 -4 -8 -8 -8h-77c-7 0 -12 -5 -12 -12s5 -12 12 -12h73c7 0 12 -5 12 -12s-5 -12 -12 -12h-73zM30 89c-2 3 0 7 3 7
+h222c3 0 6 -4 4 -7c-19 -22 -46 -36 -76 -40c-4 0 -7 -4 -7 -8v-41c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v41c0 4 -3 8 -7 8c-30 4 -56 18 -75 40z" />
+    <glyph glyph-name="ion-md-git-network" unicode="&#xf2fe;" horiz-adv-x="384" 
+d="M384 352c0 -24 -13 -44 -32 -55v-93l-128 -64v-53c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v53l-128 64v93c-19 11 -32 31 -32 55c0 35 29 64 64 64s64 -29 64 -64c0 -24 -13 -44 -32 -55v-53l96 -48l96 48v53c-19 11 -32 31 -32 55
+c0 35 29 64 64 64s64 -29 64 -64zM64 392c-22 0 -40 -18 -40 -40s18 -40 40 -40s40 18 40 40s-18 40 -40 40zM192 -8c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40zM320 312c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40z" />
+    <glyph glyph-name="ion-md-code-working" unicode="&#xf2cd;" horiz-adv-x="448" 
+d="M158 94l-30 -30l-128 128l128 128l30 -30l-98 -98zM290 94l98 98l-98 98l30 30l128 -128l-128 -128zM124 172v40h40v-40h-40zM324 212v-40h-40v40h40zM204 172v40h40v-40h-40z" />
+    <glyph glyph-name="ion-md-phone-portrait" unicode="&#xf347;" horiz-adv-x="288" 
+d="M247 416c23 0 41 -19 41 -41v-366c0 -22 -18 -41 -41 -41h-206c-23 0 -41 19 -41 41v366c0 22 18 41 41 41h206zM252 48v288h-216v-288h216z" />
+    <glyph glyph-name="ion-ios-videocam" unicode="&#xf4cd;" horiz-adv-x="448" 
+d="M419 294h20c5 0 9 -3 9 -8v-188c0 -5 -4 -9 -9 -9h-20c-3 0 -7 1 -10 3l-86 55c-2 2 -4 4 -4 7v76c0 3 2 5 4 7l86 55c3 2 7 2 10 2zM242 64h-190c-28 0 -52 23 -52 51v154c0 28 23 51 51 51h190c28 0 52 -23 52 -51v-153c0 -28 -23 -52 -51 -52z" />
+    <glyph glyph-name="ion-logo-no-smoking" unicode="&#xf109;" horiz-adv-x="448" 
+d="M328 144v48h16v-48h-16zM80 144v48h82l48 -48h-130zM332 388c69 -38 116 -112 116 -196c0 -124 -100 -224 -224 -224c-24 0 -47 4 -68 11c-2 1 -3 1 -5 2c-12 4 -24 9 -35 15h-1c-69 38 -115 112 -115 196c0 124 100 224 224 224c24 0 47 -4 68 -11c2 -1 3 -1 5 -2
+c12 -4 24 -9 35 -15v0zM224 22c37 0 72 12 100 32l-238 238c-20 -28 -32 -63 -32 -100c0 -65 36 -121 90 -150c6 -3 13 -7 19 -9c2 -1 3 -1 5 -2c9 -3 19 -5 29 -7c9 -2 18 -2 27 -2zM362 93c20 28 32 62 32 99c0 66 -37 123 -91 151c-6 3 -12 6 -18 8c-2 1 -3 1 -5 2
+c-9 3 -19 5 -29 7c-9 2 -18 2 -27 2c-37 0 -71 -12 -99 -32zM320 192v-34l-34 34h34zM352 144v48h16v-48h-16zM328 235c16 -7 16 -23 16 -30v-1h-16v1c0 8 -1 13 -7 16c-4 2 -13 4 -39 4h-3c-13 0 -24 0 -33 13c-5 8 -5 19 -2 29c-4 1 -8 1 -12 3c-17 7 -26 20 -26 38
+c0 33 27 44 39 44v-16c-1 0 -23 -2 -23 -28c0 -11 5 -19 16 -23c9 -4 18 -3 18 -3c3 0 6 -2 7 -5s2 -6 0 -8c-5 -7 -7 -18 -4 -22c4 -6 7 -6 20 -6h3c24 0 37 -2 46 -6zM368 204v0h-16c0 28 -4 37 -7 42c-6 10 -14 14 -25 14h-30c-3 0 -5 2 -6 4s-1 6 0 8c0 0 8 18 6 32
+c-1 8 -6 17 -27 17v16c24 0 40 -11 43 -30c2 -11 0 -23 -3 -31h17c16 0 30 -8 39 -22c6 -10 9 -24 9 -50z" />
+    <glyph glyph-name="ion-md-add" unicode="&#xf273;" horiz-adv-x="320" 
+d="M320 171h-139v-139h-42v139h-139v42h139v139h42v-139h139v-42z" />
+    <glyph glyph-name="ion-md-arrow-dropup" unicode="&#xf286;" horiz-adv-x="256" 
+d="M0 128l128 128l128 -128h-256z" />
+    <glyph glyph-name="ion-ios-checkmark-circle" unicode="&#xf14a;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM314 250c2 2 2 3 0 5l-17 18c-1 1 -2 2 -3 2v0c-1 0 -2 -1 -3 -2l-122 -123l-44 45c-1 1 -2 1 -3 1s-2 0 -3 -1l-18 -18c-2 -2 -2 -4 0 -6l56 -56c4 -4 8 -5 12 -5c5 0 10 3 12 5v0
+z" />
+    <glyph glyph-name="ion-ios-link" unicode="&#xf22a;" 
+d="M232 107c15 1 23 -17 13 -27l-66 -65c-20 -20 -46 -31 -74 -31s-54 11 -74 31s-31 46 -31 74s10 55 30 75l69 68c8 8 18 15 28 20c6 3 12 5 19 7c1 0 3 1 4 1c5 1 11 3 16 3h7c4 0 7 -1 11 -1h6c22 -4 42 -14 58 -30c12 -12 20 -25 24 -41c2 -8 -2 -17 -10 -19v0h-1
+c-8 -2 -16 2 -19 10c-4 10 -9 19 -17 27c-12 12 -29 20 -47 21h-4h-11c-5 -1 -10 -2 -15 -4s-9 -4 -14 -7c-4 -3 -8 -6 -12 -10l-68 -68c-14 -14 -22 -32 -22 -52s8 -37 22 -51s31 -22 51 -22s38 8 52 22l64 64c3 2 6 5 10 5h1zM385 369c20 -20 31 -46 31 -74
+s-10 -55 -30 -75l-69 -68c-8 -8 -18 -15 -28 -20c-6 -3 -12 -5 -19 -7c-6 -2 -14 -3 -20 -3c-3 0 -4 -1 -7 -1c-4 0 -7 1 -11 1c-24 2 -47 13 -64 30v0v0c-12 12 -20 24 -24 38c-3 9 3 18 12 20c8 2 16 -2 19 -10c4 -10 9 -18 16 -25c12 -12 29 -20 47 -21h4h11
+c5 1 10 2 15 4s9 5 14 8c4 3 8 5 12 9l68 68c14 14 22 32 22 52s-8 37 -22 51s-31 22 -51 22s-37 -8 -51 -22l-64 -63c-3 -3 -8 -5 -13 -5c-14 1 -20 18 -10 28l64 63c20 20 46 31 74 31s54 -11 74 -31z" />
+    <glyph glyph-name="ion-md-checkbox-outline" unicode="&#xf2b8;" horiz-adv-x="384" 
+d="M105 233l66 -66l183 183l30 -30l-213 -213l-96 96zM341 43v170h43v-170c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h213v-43h-213v-298h298z" />
+    <glyph glyph-name="ion-md-cloud-upload" unicode="&#xf2c8;" horiz-adv-x="480" 
+d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM272 172h68l-100 100l-100 -100h68v-76h64v76z" />
+    <glyph glyph-name="ion-logo-instagram" unicode="&#xf23e;" horiz-adv-x="384" 
+d="M272 352h-160c-21 0 -41 -9 -56 -24s-24 -35 -24 -56v-160c0 -21 9 -41 24 -56s35 -24 56 -24h160c21 0 41 9 56 24s24 35 24 56v160c0 21 -9 41 -24 56s-35 24 -56 24zM272 384v0c62 0 112 -50 112 -112v-160c0 -62 -50 -112 -112 -112h-160c-62 0 -112 50 -112 112v160
+c0 62 50 112 112 112h160zM296 272c-13 0 -24 11 -24 24s11 24 24 24s24 -11 24 -24s-11 -24 -24 -24zM192 256c-35 0 -64 -29 -64 -64s29 -64 64 -64s64 29 64 64s-29 64 -64 64zM192 288v0c53 0 96 -43 96 -96s-43 -96 -96 -96s-96 43 -96 96s43 96 96 96z" />
+    <glyph glyph-name="ion-md-volume-high" unicode="&#xf123;" horiz-adv-x="384" 
+d="M0 256h85l107 112v-352l-107 112h-85v128zM288 192c0 -38 -21 -73 -53 -88v177c32 -16 53 -51 53 -89zM235 384c85 -20 149 -99 149 -192s-64 -172 -149 -192v45c62 19 106 78 106 147s-44 128 -106 147v45z" />
+    <glyph glyph-name="ion-md-help-buoy" unicode="&#xf309;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM269 44c19 8 37 20 52 35s27 33 35 52l-40 12c-6 -13 -14 -25 -24 -35s-22 -18 -35 -24zM147 340c-19 -8 -37 -20 -52 -35s-27 -33 -35 -52l40 -12c6 13 14 25 24 35s22 18 35 24z
+M208 256c-35 0 -64 -29 -64 -64s29 -64 64 -64s64 29 64 64s-29 64 -64 64zM321 305c-15 15 -33 27 -52 35l-12 -40c13 -6 25 -14 35 -24s18 -22 24 -35l40 12c-8 19 -20 37 -35 52zM95 79c15 -15 33 -27 52 -35l12 40c-13 6 -25 14 -35 24s-18 22 -24 35l-40 -12
+c8 -19 20 -37 35 -52z" />
+    <glyph glyph-name="ion-md-restaurant" unicode="&#xf36c;" horiz-adv-x="415" 
+d="M116 168l-91 89c-34 33 -34 86 0 119l153 -148zM264 206l-33 -31l150 -145l-30 -30l-150 146l-150 -146l-30 30s163 159 211 207c-15 32 -4 77 31 111c41 40 101 49 132 17c33 -31 24 -89 -17 -129c-34 -34 -80 -45 -114 -30z" />
+    <glyph glyph-name="ion-md-body" unicode="&#xf29c;" horiz-adv-x="384" 
+d="M192 400c22 0 40 -18 40 -40s-18 -40 -40 -40s-40 18 -40 40s18 40 40 40zM384 256h-128v-272h-43v144h-42v-144h-43v272h-128v43h384v-43z" />
+    <glyph glyph-name="ion-md-crop" unicode="&#xf2dc;" 
+d="M304 135v153h-153v38h153c21 0 38 -17 38 -38v-153h-38zM112 102h304v-38h-74v-80h-38v80h-192c-21 0 -38 17 -38 38v186h-74v38h74v74h38v-298z" />
+    <glyph glyph-name="ion-md-chatbubbles" unicode="&#xf2b7;" 
+d="M85 80h219v-7c0 -17 -13 -31 -30 -31h-216l-58 -58v274c0 17 13 30 30 30h10v-163c0 -20 25 -45 45 -45zM381 400c19 0 35 -16 35 -35v-314l-76 53h-238c-19 0 -35 16 -35 35v226c0 19 16 35 35 35h279z" />
+    <glyph glyph-name="ion-logo-rss" unicode="&#xf248;" horiz-adv-x="384" 
+d="M56 112c31 0 56 -25 56 -56s-25 -56 -56 -56s-56 25 -56 56s25 56 56 56zM0 256c140 0 256 -116 256 -256h-80c0 48 -14 94 -48 128s-80 48 -128 48v80zM0 384c212 0 384 -172 384 -384h-80c0 171 -133 304 -304 304v80z" />
+    <glyph glyph-name="ion-md-outlet" unicode="&#xf33d;" horiz-adv-x="448" 
+d="M338 416c61 0 110 -51 110 -113v-222c0 -62 -49 -113 -110 -113h-228c-61 0 -110 51 -110 113v222c0 62 49 113 110 113h228zM143 197v102c0 11 -9 21 -20 21h-23c-11 0 -19 -9 -20 -20v-2v-101v-1c0 -11 9 -20 20 -20h23c11 0 20 9 20 20v1zM265 50v31
+c0 23 -18 42 -41 42s-41 -19 -41 -42v-29c0 -12 9 -20 20 -20h42c11 0 20 7 20 18zM368 197v102c0 11 -9 21 -20 21h-24c-11 0 -19 -9 -20 -20v-2v-101v-1c0 -11 9 -20 20 -20h24c11 0 20 9 20 20v1z" />
+    <glyph glyph-name="ion-ios-information-circle-outline" unicode="&#xf19f;" 
+d="M187 276c0 11 10 20 21 20s21 -9 21 -20s-10 -20 -21 -20s-21 9 -21 20zM189 240h38v-144h-38v144zM208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127s79 -53 127 -53s93 19 127 53s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0
+c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208z" />
+    <glyph glyph-name="ion-md-flash-off" unicode="&#xf169;" horiz-adv-x="408" 
+d="M408 12l-24 -24l-140 140l-72 -144v192h-64v88l-108 107l24 25zM300 240l-24 -48l-168 168v40h192l-64 -160h64z" />
+    <glyph glyph-name="ion-md-videocam" unicode="&#xf39f;" horiz-adv-x="448" 
+d="M352 228l96 98v-268l-96 98v-86c0 -13 -11 -24 -25 -24h-302c-14 0 -25 11 -25 24v244c0 13 11 24 25 24h302c14 0 25 -11 25 -24v-86z" />
+    <glyph glyph-name="ion-ios-square-outline" unicode="&#xf15c;" horiz-adv-x="320" 
+d="M292 352c15 0 28 -13 28 -28v-264c0 -15 -13 -28 -28 -28h-264c-15 0 -28 13 -28 28v264c0 15 13 28 28 28h264zM292 68v248c0 4 -4 8 -8 8h-248c-4 0 -8 -4 -8 -8v-248c0 -4 4 -8 8 -8h248c4 0 8 4 8 8z" />
+    <glyph glyph-name="ion-ios-information-circle" unicode="&#xf1a0;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM227 96v144h-38v-144h38zM208 256c11 0 21 9 21 20s-10 20 -21 20s-21 -9 -21 -20s10 -20 21 -20z" />
+    <glyph glyph-name="ion-ios-heart-dislike" unicode="&#xf13f;" horiz-adv-x="448" 
+d="M392 21c6 -6 6 -14 0 -20c-2 -2 -5 -2 -7 -3c-5 -1 -9 -1 -13 3l-368 362c-6 6 -6 14 0 20s14 6 20 0zM32 279c0 10 1 20 4 30l270 -265c-36 -31 -66 -52 -66 -52s-101 72 -161 154c-32 43 -47 96 -47 133zM402 146c-16 -22 -33 -42 -52 -61l-282 277c20 18 47 30 76 30
+v0v0h1c40 0 75 -21 95 -52c20 31 55 52 95 52h1v0v0c62 -1 112 -51 112 -113c0 -37 -14 -90 -46 -133z" />
+    <glyph glyph-name="ion-md-search" unicode="&#xf375;" horiz-adv-x="384" 
+d="M274 143l110 -110l-33 -33l-109 110v17l-7 6c-25 -21 -58 -34 -93 -34c-79 0 -142 63 -142 142s63 143 141 143c79 0 142 -64 142 -143c0 -36 -13 -68 -34 -93l7 -5h18zM142 143c55 0 99 43 99 98s-44 99 -99 99s-98 -44 -98 -99s43 -98 98 -98z" />
+    <glyph glyph-name="ion-ios-download" unicode="&#xf420;" horiz-adv-x="320" 
+d="M280 304c22 0 40 -18 40 -40v-240c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v240c0 22 18 40 40 40h107v-180l-48 47c-5 5 -13 5 -18 0s-5 -13 0 -18l70 -69v0c1 -1 2 -2 4 -3s3 -1 5 -1c3 0 7 2 9 4l70 69c5 5 5 13 0 18s-13 5 -18 0l-48 -47v180h107zM173 387
+v-83h-26v83c0 7 6 13 13 13s13 -6 13 -13z" />
+    <glyph glyph-name="ion-ios-boat" unicode="&#xf12a;" horiz-adv-x="400" 
+d="M296 26c0 0 27 -24 63 -36c2 -1 1 -4 -1 -4c-23 2 -40 6 -62 12c-22 -10 -67 -14 -96 -14s-73 5 -96 14c-21 -6 -39 -9 -62 -12c-2 0 -3 3 -1 4c36 12 63 36 63 36c26 -9 66 -15 96 -15s70 6 96 15zM390 185c6 -3 10 -9 10 -16c0 -2 0 -5 -1 -7l-55 -136
+c-28 0 -57 22 -57 22c-18 -9 -53 -17 -79 -19h-8h-8c-26 2 -61 10 -79 19c0 0 -29 -22 -57 -22l-55 136c-1 2 -1 5 -1 7c0 7 4 13 10 16v0l187 85c2 1 4 1 6 0l187 -85v0zM156 160c7 0 12 10 12 22s-5 22 -12 22s-12 -10 -12 -22s5 -22 12 -22zM244 160c7 0 12 10 12 22
+s-5 22 -12 22s-12 -10 -12 -22s5 -22 12 -22zM336 321l18 -97c1 -3 -2 -5 -5 -4l-26 11c-1 0 -2 2 -2 3l-16 86c-3 11 -7 16 -16 16h-177c-9 0 -15 -5 -17 -16l-16 -86c0 -1 -1 -3 -2 -3l-25 -11c-3 -1 -7 1 -6 4l18 97c5 26 17 47 40 47h34l2 8c4 14 16 24 31 24h57
+c15 0 27 -10 31 -24l2 -8h35c22 0 34 -20 40 -47v0z" />
+    <glyph glyph-name="ion-ios-volume-off" unicode="&#xf264;" horiz-adv-x="384" 
+d="M326 -16c-5 0 -9 3 -12 7l-228 388c-4 7 -2 15 5 19s15 2 19 -5l228 -388c4 -7 2 -15 -5 -19c-2 -1 -5 -2 -7 -2zM69 248l51 41l40 -69v-124c0 -6 -3 -11 -9 -14c-2 -1 -5 -2 -7 -2c-4 0 -7 2 -10 4l-65 52h-53c-9 0 -16 7 -16 16v80c0 9 7 16 16 16h53zM384 192v0
+c0 -53 -19 -103 -53 -143l-13 22c27 34 42 77 42 121v0v0c0 53 -20 102 -58 139c-5 5 -5 12 0 17s11 5 16 0c42 -42 66 -97 66 -156v0zM321 192c0 -31 -8 -60 -23 -85l-15 24c9 19 14 39 14 61v0v0c0 37 -14 72 -40 98c-5 5 -5 12 0 17s12 5 17 0c30 -31 47 -71 47 -115v0v0
+zM254 192c0 -3 -1 -7 -1 -10l-48 82c0 1 1 1 2 2c5 5 12 4 17 -1c19 -20 30 -45 30 -73v0v0z" />
+    <glyph glyph-name="ion-logo-reddit" unicode="&#xf247;" horiz-adv-x="449" 
+d="M259 160c0 18 14 31 32 31s32 -13 32 -31s-14 -32 -32 -32s-32 14 -32 32zM127 160c0 18 14 31 32 31s32 -13 32 -31s-14 -32 -32 -32s-32 14 -32 32zM449 197c0 -20 -11 -37 -27 -45c1 -5 1 -9 1 -14c0 -76 -88 -138 -198 -138s-199 61 -199 137c0 5 0 10 1 15
+c-16 8 -27 25 -27 45c0 28 23 50 50 50c13 0 24 -5 33 -13c33 23 79 39 129 41h7l29 98l86 -17c7 16 22 28 41 28c25 0 44 -20 44 -45s-19 -45 -44 -45c-24 0 -45 19 -45 44l-69 14l-24 -77c50 -2 96 -18 129 -41c9 8 21 13 34 13c27 0 49 -22 49 -50zM375 366
+c-15 0 -27 -12 -27 -27s12 -27 27 -27s27 12 27 27s-12 27 -27 27zM18 197c0 -11 6 -21 14 -27c7 19 20 38 37 53c-5 4 -12 6 -19 6c-18 0 -32 -14 -32 -32zM355 55c32 22 50 52 50 83v9c-1 6 -3 12 -5 18c-6 16 -15 30 -30 43c-4 4 -10 8 -15 12v0c-35 24 -80 37 -130 37
+s-96 -13 -131 -37v0c-5 -4 -11 -8 -15 -12c-15 -13 -24 -27 -30 -43c-2 -6 -4 -12 -5 -18v-9c0 -31 18 -61 50 -83c35 -24 81 -37 131 -37s95 13 130 37zM417 170c8 6 14 16 14 27c0 18 -13 32 -31 32c-7 0 -15 -2 -20 -6c17 -15 30 -34 37 -53zM289 90l13 -12
+c-1 -1 -29 -30 -77 -30s-77 29 -78 30l13 12s24 -24 65 -24c40 0 64 24 64 24z" />
+    <glyph glyph-name="ion-ios-flashlight" unicode="&#xf141;" horiz-adv-x="170" 
+d="M146 416c18 0 24 -14 24 -32h-170c0 18 6 32 24 32h122zM25 300c-16 18 -25 33 -25 68h170c0 -33 -10 -50 -25 -68c-8 -9 -12 -19 -12 -31v-266c0 -22 -18 -35 -40 -35h-16c-22 0 -40 13 -40 35v266c0 12 -4 22 -12 31zM57 210v-36c0 -16 13 -28 28 -28s28 12 28 28v36
+c0 16 -13 28 -28 28s-28 -12 -28 -28zM65 175c0 11 9 20 20 20s20 -9 20 -20s-9 -20 -20 -20s-20 9 -20 20z" />
+    <glyph glyph-name="ion-md-qr-scanner" unicode="&#xf35e;" 
+d="M48 324v-68h-48v68c0 34 27 60 61 60h67v-48h-68c-7 0 -12 -5 -12 -12zM356 384c33 0 60 -26 60 -60v-68h-48v68c0 7 -6 12 -13 12h-67v48h68zM368 61v67h48v-67c0 -34 -26 -61 -60 -61h-68v49h68c7 0 12 5 12 12zM60 49h68v-49h-67c-34 0 -61 27 -61 61v67h48v-67
+c0 -7 5 -12 12 -12z" />
+    <glyph glyph-name="ion-ios-navigate" unicode="&#xf46e;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 64l96 224l-224 -96h128v-128z" />
+    <glyph glyph-name="ion-md-power" unicode="&#xf359;" 
+d="M231 400v-231h-46v231h46zM343 350c45 -38 73 -95 73 -158c0 -115 -93 -208 -208 -208s-208 93 -208 208c0 63 28 120 73 158l33 -33c-36 -30 -60 -74 -60 -125c0 -89 72 -162 162 -162s162 73 162 162c0 51 -24 96 -60 125z" />
+    <glyph glyph-name="ion-ios-stopwatch" unicode="&#xf4b5;" horiz-adv-x="384" 
+d="M352 304l-26 26c-3 3 -3 8 0 11l12 11c3 3 8 3 11 0l25 -25c3 -3 3 -8 0 -11l-11 -12c-3 -3 -8 -3 -11 0zM21 304l-11 12c-3 3 -3 8 0 11l25 25c3 3 8 3 11 0l12 -11c3 -3 3 -8 0 -11l-26 -26c-3 -3 -8 -3 -11 0zM216 366c95 -12 168 -92 168 -190
+c0 -106 -86 -192 -192 -192s-192 86 -192 192c0 98 73 178 168 190v18c0 9 7 16 16 16h16c9 0 16 -7 16 -16v-18zM206 147c11 5 18 16 18 29s-7 24 -18 29v99c0 8 -6 14 -14 14s-14 -6 -14 -14v-99c-11 -5 -18 -16 -18 -29s7 -24 18 -29v-19c0 -8 6 -14 14 -14s14 6 14 14
+v19z" />
+    <glyph glyph-name="ion-md-key" unicode="&#xf316;" 
+d="M201 224h215v-64h-43v-64h-69v64h-103c-14 -40 -53 -72 -98 -72c-57 0 -103 47 -103 104s44 104 101 104c45 0 86 -32 100 -72zM104 158c19 0 34 15 34 34s-15 34 -34 34s-35 -15 -35 -34s16 -34 35 -34z" />
+    <glyph glyph-name="ion-ios-arrow-down" unicode="&#xf3d0;" horiz-adv-x="336" 
+d="M168 154l127 127c9 9 25 9 34 0s9 -25 0 -34l-144 -144c-9 -9 -24 -10 -33 -1l-145 145c-5 5 -7 11 -7 17s2 12 7 17c9 9 25 9 34 0z" />
+    <glyph glyph-name="ion-logo-linkedin" unicode="&#xf240;" horiz-adv-x="384" 
+d="M353 384c18 0 31 -13 31 -30v-321c0 -17 -13 -33 -31 -33h-320c-18 0 -33 16 -33 33v321c0 17 15 30 33 30h320zM119 64v171h-55v-171h55zM93 261c18 0 30 13 30 29c0 17 -11 30 -29 30s-30 -13 -30 -30c0 -16 11 -29 29 -29v0zM320 64v100c0 51 -27 75 -63 75
+c-29 0 -42 -17 -50 -28v24h-55v-171h55v97c0 5 0 10 2 14c4 10 13 20 28 20c20 0 28 -15 28 -37v-94h55z" />
+    <glyph glyph-name="ion-ios-arrow-dropdown" unicode="&#xf110;" 
+d="M100 237c8 8 19 8 27 0l81 -81l81 79c8 8 19 8 27 0c4 -4 6 -8 6 -13s-2 -10 -6 -14l-94 -94c-8 -7 -20 -6 -27 1l-95 95c-8 8 -8 19 0 27zM0 192c0 115 93 208 208 208s208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208zM332 316c-33 33 -77 52 -124 52
+s-91 -19 -124 -52s-52 -77 -52 -124s19 -91 52 -124s77 -52 124 -52s91 19 124 52s52 77 52 124s-19 91 -52 124z" />
+    <glyph glyph-name="ion-ios-settings" unicode="&#xf4a7;" horiz-adv-x="384" 
+d="M352 192c0 -21 14 -39 32 -46c-5 -20 -13 -40 -24 -57c-6 3 -13 4 -20 4c-13 0 -25 -5 -35 -15c-15 -15 -18 -36 -10 -54c-17 -11 -37 -19 -57 -24c-7 18 -25 32 -46 32s-39 -14 -46 -32c-20 5 -40 13 -57 24c8 18 5 39 -10 54c-10 10 -22 15 -35 15c-7 0 -14 -1 -20 -4
+c-11 17 -19 37 -24 57c18 7 32 25 32 46s-14 39 -32 46c5 20 13 39 24 57c6 -3 13 -4 20 -4c13 0 25 4 35 14c15 15 18 37 10 55c17 11 37 19 57 24c7 -18 25 -32 46 -32s39 14 46 32c20 -5 40 -13 57 -24c-8 -18 -5 -40 10 -55c10 -10 22 -14 35 -14c7 0 14 1 20 4
+c11 -17 19 -37 24 -57c-19 -7 -32 -25 -32 -46zM193 112c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80z" />
+    <glyph glyph-name="ion-md-sad" unicode="&#xf373;" 
+d="M208 160c45 0 83 -26 102 -64h-204c19 38 57 64 102 64zM208 400c114 0 208 -94 208 -208s-93 -208 -208 -208s-208 94 -208 208s93 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166zM281 213c-18 0 -31 13 -31 31
+s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31zM135 213c-18 0 -31 13 -31 31s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31z" />
+    <glyph glyph-name="ion-ios-tennisball" unicode="&#xf4bb;" 
+d="M202 -16c-110 3 -199 93 -202 203c8 1 15 1 23 1c48 0 94 -18 128 -52s53 -80 53 -128c0 -8 -1 -16 -2 -24zM182 374c0 -115 92 -207 207 -207c9 0 18 0 26 1c-11 -96 -89 -173 -186 -183c1 8 1 15 1 23c0 115 -92 207 -207 207c-7 0 -15 0 -22 -1c10 96 87 172 182 184
+c-1 -8 -1 -16 -1 -24zM261 246c-34 34 -53 80 -53 128c0 9 1 18 2 26c112 -2 204 -93 206 -205c-9 -1 -18 -2 -27 -2c-48 0 -94 19 -128 53zM184 399v0v0v0z" />
+    <glyph glyph-name="ion-ios-card" unicode="&#xf142;" horiz-adv-x="448" 
+d="M448 320v-48h-448v48c0 18 14 32 32 32h384c18 0 32 -14 32 -32zM0 64v160h448v-160c0 -18 -14 -32 -32 -32h-384c-18 0 -32 14 -32 32zM142 112c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h164c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-164zM70 112c-8 0 -14 -6 -14 -14v0
+c0 -8 6 -14 14 -14h12c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-12z" />
+    <glyph glyph-name="ion-md-create" unicode="&#xf2db;" horiz-adv-x="384" 
+d="M0 80l236 236l80 -80l-236 -236h-80v80zM378 298l-40 -40l-80 80l40 40c9 9 20 9 29 0l51 -51c9 -9 9 -20 0 -29z" />
+    <glyph glyph-name="ion-logo-vk" unicode="&#xf10d;" horiz-adv-x="448" 
+d="M395 149c41 -38 53 -58 53 -70c0 -6 -3 -9 -6 -11c-5 -4 -22 -4 -34 -4h-28c-9 0 -18 -1 -26 2c-6 2 -12 5 -18 9c-12 9 -21 21 -31 32c-5 6 -10 11 -17 15c-8 4 -14 2 -19 -4c-6 -6 -7 -18 -7 -26s1 -18 -6 -24c-2 -1 -4 -2 -6 -2c-4 -1 -17 -2 -33 -2s-68 8 -105 49
+c-36 39 -62 79 -82 120c-11 23 -30 55 -30 66c0 5 5 9 10 9h66c9 0 15 -4 19 -11s10 -26 23 -52c13 -25 25 -45 41 -50c2 0 8 -1 10 3c4 7 5 18 6 25c4 29 3 46 -5 67c-2 5 -7 7 -11 9c-7 3 -13 2 -11 5c4 5 12 10 19 12s21 4 40 4s40 -1 48 -7c1 -1 4 -4 5 -6
+c5 -11 2 -29 1 -55c-1 -46 3 -51 5 -54s5 -3 6 -3c2 0 4 0 6 1c8 4 26 26 40 52c13 25 18 36 21 44s8 16 14 16h74c16 0 20 -3 20 -14c0 -17 -18 -39 -32 -58c-34 -45 -40 -53 -40 -59c0 -3 0 -5 1 -8c3 -8 10 -12 19 -20z" />
+    <glyph glyph-name="ion-ios-wifi" unicode="&#xf26d;" horiz-adv-x="448" 
+d="M224 352c82 0 163 -33 222 -88c3 -3 3 -9 0 -12l-27 -28c-3 -3 -8 -3 -11 0c-23 22 -51 39 -80 51c-33 14 -68 21 -104 21s-71 -7 -104 -21c-29 -12 -56 -29 -79 -51c-3 -3 -9 -3 -12 0l-27 28c-3 3 -2 9 1 12c58 55 139 88 221 88zM81 170c-3 3 -3 9 0 12
+c38 34 88 55 143 55s104 -21 142 -55c4 -3 4 -9 1 -12l-29 -28c-3 -3 -8 -3 -11 0c-28 25 -65 39 -103 39s-75 -14 -103 -39c-3 -3 -8 -3 -11 0zM224 124c23 0 44 -10 59 -26c3 -3 3 -8 0 -11l-53 -53c-3 -3 -9 -3 -12 0l-53 53c-3 3 -3 8 0 11c15 16 36 26 59 26z" />
+    <glyph glyph-name="ion-logo-vimeo" unicode="&#xf2c4;" horiz-adv-x="448" 
+d="M445 334c7 -33 1 -66 -13 -97s-31 -59 -51 -87c-26 -36 -52 -71 -85 -101c-19 -18 -41 -35 -66 -44c-31 -11 -52 -5 -71 22c-14 19 -22 40 -28 63c-12 45 -25 90 -38 134c-4 12 -9 22 -15 33c-3 5 -8 10 -12 14c-5 4 -11 3 -17 0c-10 -6 -28 -18 -28 -18l-21 27
+c26 24 82 71 82 71c11 9 33 25 48 27c21 3 38 -4 50 -22c11 -17 15 -37 18 -57c7 -41 11 -82 23 -122c3 -10 8 -20 13 -29c7 -11 15 -13 25 -5c4 3 7 6 10 10c20 24 37 52 48 81c3 9 3 17 3 27c0 13 -10 25 -25 26s-24 -1 -39 -7c6 24 24 62 54 84c29 21 71 24 94 16
+s36 -23 41 -46z" />
+    <glyph glyph-name="ion-ios-checkmark-circle-outline" unicode="&#xf149;" 
+d="M315 255c2 -2 1 -4 0 -6l-134 -134v0c-2 -2 -7 -5 -12 -5c-4 0 -7 1 -11 5l-56 56c-2 2 -2 4 0 6l17 18c1 1 2 1 3 1s2 0 3 -1l44 -45l122 123c1 1 2 1 3 1v0c1 0 2 0 3 -1zM208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127s79 -53 127 -53
+s93 19 127 53s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208z" />
+    <glyph glyph-name="ion-md-battery-full" unicode="&#xf296;" horiz-adv-x="224" 
+d="M194 371c16 0 30 -14 30 -30v-343c0 -16 -13 -30 -30 -30h-164c-16 0 -30 13 -30 30v343c0 16 14 30 30 30h37v45h90v-45h37z" />
+    <glyph glyph-name="ion-md-color-wand" unicode="&#xf2d3;" horiz-adv-x="384" 
+d="M137 291l247 -254l-36 -37l-248 253zM117 316v68h37v-68h-37zM117 118v68h37v-68h-37zM206 235v37h69v-37h-69zM242 332l-48 -48l-25 26l47 48zM105 310l-26 -26l-47 48l26 26zM32 170l47 48l26 -26l-47 -48zM0 235v37h65v-37h-65z" />
+    <glyph glyph-name="ion-md-analytics" unicode="&#xf278;" horiz-adv-x="448" 
+d="M347 270c4 -1 9 -2 13 -2c11 0 22 4 30 10l58 -39v-212c0 -24 -19 -43 -43 -43h-362c-24 0 -43 19 -43 43v57l61 57c7 -4 15 -6 24 -6c13 0 24 5 33 13l58 -33c0 -3 -1 -6 -1 -9c0 -26 22 -48 48 -48s48 22 48 48c0 12 -4 22 -11 30zM85 231c-26 0 -48 -22 -48 -48
+c0 -6 1 -12 3 -17l-40 -38v229c0 24 19 43 43 43h362c24 0 43 -19 43 -43v-80l-41 28c1 4 1 7 1 11c0 26 -22 48 -48 48s-48 -22 -48 -48c0 -10 3 -20 9 -28l-87 -135c-3 1 -7 1 -11 1c-12 0 -22 -4 -30 -11l-60 34v6c0 26 -22 48 -48 48z" />
+    <glyph glyph-name="ion-ios-compass" unicode="&#xf15d;" 
+d="M232 168c1 -1 1 -3 0 -4l-98 -49c-2 -1 -4 1 -3 3l49 98c1 1 3 1 4 0zM208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM249 151v0l81 160c1 2 -1 4 -3 3l-159 -81h-1l-81 -160c-1 -2 1 -4 3 -3z" />
+    <glyph glyph-name="ion-logo-dribbble" unicode="&#xf233;" horiz-adv-x="384" 
+d="M192 384c106 0 192 -86 192 -192s-86 -192 -192 -192s-192 86 -192 192s86 192 192 192zM314 296c-17 -25 -47 -47 -85 -64c5 -10 9 -20 13 -31c33 3 75 4 110 2c-2 35 -16 68 -38 93zM192 352c-14 0 -26 -2 -39 -5c23 -23 43 -53 62 -87c34 14 62 33 79 55
+c-28 23 -63 37 -102 37zM120 334c-41 -21 -71 -58 -83 -103h25c44 0 85 6 121 17c-19 34 -40 63 -63 86zM32 200v-8c0 -40 15 -78 40 -106c24 45 67 83 122 106c4 2 8 3 14 4c-3 8 -6 16 -10 24c-40 -13 -88 -20 -138 -21c-9 0 -19 1 -28 1zM192 32c20 0 39 3 57 10
+c-3 25 -8 53 -15 79c-4 17 -10 33 -16 49c-7 -2 -13 -4 -17 -6c-48 -22 -86 -56 -107 -98c27 -21 61 -34 98 -34zM278 58c40 26 68 67 73 116c-30 2 -68 3 -99 0c4 -12 9 -25 12 -38c7 -27 11 -52 14 -78z" />
+    <glyph glyph-name="ion-ios-fitness" unicode="&#xf1ab;" horiz-adv-x="448" 
+d="M320 168h-192c-4 0 -8 4 -8 8v32c0 4 4 8 8 8h192c4 0 8 -4 8 -8v-32c0 -4 -4 -8 -8 -8zM346 86v212c0 12 10 22 22 22v0c12 0 22 -10 22 -22v-212c0 -12 -10 -22 -22 -22v0c-12 0 -22 10 -22 22zM428 256c11 0 20 -9 20 -20v-88c0 -11 -9 -20 -20 -20h-12
+c-4 0 -8 4 -8 8v112c0 4 4 8 8 8h12zM102 86c0 -12 -10 -22 -22 -22v0c-12 0 -22 10 -22 22v212c0 12 10 22 22 22v0c12 0 22 -10 22 -22v-212zM32 256c4 0 8 -4 8 -8v-112c0 -4 -4 -8 -8 -8h-12c-11 0 -20 9 -20 20v88c0 11 9 20 20 20h12z" />
+    <glyph glyph-name="ion-ios-aperture" unicode="&#xf108;" 
+d="M202 77h179c-25 -37 -61 -66 -103 -81l-22 22l-55 55c-1 1 -1 4 1 4zM119 113c0 2 2 3 3 2l127 -127c-13 -3 -27 -4 -41 -4c-32 0 -62 7 -89 20v109zM208 400c32 0 63 -7 90 -20v-109c0 -2 -3 -3 -4 -2l-126 127c13 3 26 4 40 4zM20 281h110c2 0 2 -2 1 -3l-127 -127
+c-3 13 -4 27 -4 41c0 32 7 62 20 89zM139 388l77 -77c1 -1 1 -4 -1 -4h-180c25 37 61 66 104 81zM119 227c0 1 0 2 1 3l50 50c1 1 2 1 3 1h71c1 0 1 0 2 -1l50 -50c1 -1 2 -2 2 -3v-70c0 -1 -1 -2 -2 -3l-50 -50c-1 -1 -1 -1 -2 -1h-71c-1 0 -2 0 -3 1l-50 50
+c-1 1 -1 2 -1 3v70zM412 232c3 -13 4 -26 4 -40c0 -32 -7 -62 -20 -89h-109c-2 0 -2 2 -1 3zM324 365c37 -25 65 -61 80 -104l-77 -77c-1 -1 -3 0 -3 2v179zM12 122l78 78c1 1 3 0 3 -2v-179c-37 25 -66 60 -81 103z" />
+    <glyph glyph-name="ion-md-document" unicode="&#xf2e1;" horiz-adv-x="320" 
+d="M192 400l128 -128v-248c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v336c0 22 18 40 40 40h152zM176 256h112l-112 112v-112z" />
+    <glyph glyph-name="ion-ios-bicycle" unicode="&#xf127;" horiz-adv-x="448" 
+d="M93 159c-17 0 -34 -8 -46 -20s-19 -29 -19 -46s7 -34 19 -46s29 -19 46 -19s34 7 46 19s20 29 20 46s-8 35 -20 47s-29 19 -46 19zM93 187v0c51 0 94 -43 94 -94s-43 -93 -94 -93s-93 42 -93 93s42 94 93 94zM288 320c-18 0 -32 14 -32 32s14 32 32 32s32 -14 32 -32
+s-14 -32 -32 -32zM355 159c-17 0 -34 -8 -46 -20s-20 -29 -20 -46s8 -34 20 -46s29 -19 46 -19s34 7 46 19s19 29 19 46s-7 35 -19 47s-29 19 -46 19zM355 187v0c51 0 93 -43 93 -94s-42 -93 -93 -93s-94 42 -94 93s43 94 94 94zM336 256c9 0 16 -7 16 -16s-7 -16 -16 -16
+h-57s-19 24 -38 52l-49 -52c18 -14 48 -25 48 -38v-90c0 -9 -7 -16 -16 -16s-16 7 -16 16v66s-16 16 -62 42c-6 4 -18 10 -18 27c0 8 3 17 9 23l72 69c6 6 14 9 22 9c11 0 21 -7 27 -16l30 -60h48z" />
+    <glyph glyph-name="ion-ios-clipboard" unicode="&#xf14c;" horiz-adv-x="352" 
+d="M60 288c0 9 7 16 16 16h200c9 0 16 -7 16 -16v-240c0 -9 -7 -16 -16 -16h-200c-9 0 -16 7 -16 16v240zM242 367c8 0 14 -7 14 -15v-18c0 -1 -1 -2 -2 -2h-156c-1 0 -2 1 -2 2v16c0 10 8 17 18 17h14c0 6 1 11 3 16c2 6 6 11 10 16c9 10 21 17 35 17s27 -7 36 -17
+c4 -5 8 -10 10 -16c2 -5 2 -10 2 -16h18zM179 352c7 1 12 6 13 13c1 10 -8 19 -18 18c-7 -1 -12 -7 -13 -14c-1 -10 8 -18 18 -17zM320 400c18 0 32 -14 32 -32v-368c0 -17 -15 -32 -32 -32h-288c-18 0 -32 14 -32 56v344c0 18 14 32 32 32h76c2 0 3 -2 2 -3
+c-3 -4 -6 -9 -8 -16c0 -1 0 -1 -1 -1h-1c-22 0 -27 -18 -27 -37v-9c0 -1 -1 -2 -2 -2h-22c-9 0 -16 -7 -16 -16v-297c0 -9 7 -16 16 -16h253c9 0 16 7 16 16v297c0 9 -7 16 -16 16h-20c-1 0 -2 1 -2 2v14v1v0c-1 19 -8 34 -27 34h-1c-1 0 -2 0 -2 1c-2 5 -4 9 -7 13
+c-1 1 0 3 2 3h75z" />
+    <glyph glyph-name="ion-ios-arrow-dropright-circle" unicode="&#xf12b;" 
+d="M0 192c0 115 93 208 208 208s208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208zM244 192l-79 -81c-8 -8 -8 -19 0 -27c4 -4 8 -6 13 -6s10 2 14 6l94 94c7 8 6 20 -1 27l-95 95c-8 8 -19 8 -27 0s-8 -19 0 -27z" />
+    <glyph glyph-name="ion-md-mail-unread" unicode="&#xf172;" horiz-adv-x="464" 
+d="M336 320c0 35 29 64 64 64s64 -29 64 -64s-29 -64 -64 -64s-64 29 -64 64zM351 245c14 -9 31 -15 49 -15s34 5 48 14v-185c0 -24 -19 -43 -43 -43h-362c-24 0 -43 19 -43 43v266c0 24 19 43 43 43h281c-9 -14 -14 -30 -14 -48s5 -36 15 -50l-101 -67l-176 117v-43
+l176 -117z" />
+    <glyph glyph-name="ion-md-shirt" unicode="&#xf37a;" horiz-adv-x="384" 
+d="M256 384l128 -32v-96l-77 16l13 -272h-256l13 272l-77 -16v96l128 32c11 -19 40 -32 64 -32s53 13 64 32z" />
+    <glyph glyph-name="ion-ios-finger-print" unicode="&#xf17c;" 
+d="M403 266c8 -24 13 -50 13 -73v-11c0 -7 -7 -13 -14 -13v0c-4 0 -8 1 -10 4s-4 6 -4 10c0 2 1 7 1 10c0 20 -5 42 -12 63s-17 38 -27 48c-5 5 -5 15 0 20c3 3 6 4 10 4v0c4 0 7 -1 10 -4c13 -13 24 -34 33 -58zM95 337c-4 0 -9 2 -11 6c-2 3 -3 6 -2 10s2 7 5 9
+c35 25 76 38 121 38c47 0 92 -17 131 -49c6 -5 7 -13 2 -19c-3 -3 -7 -5 -11 -5c-3 0 -6 1 -8 3c-34 28 -73 43 -114 43c-39 0 -75 -12 -105 -33c-2 -2 -5 -3 -8 -3zM27 193c0 -30 6 -53 15 -82c1 -4 1 -8 -1 -11s-5 -5 -9 -6c-1 0 -3 -1 -4 -1c-6 0 -11 4 -13 10
+c-10 31 -15 57 -15 90c0 50 18 99 51 137c3 3 7 4 11 4v0c3 0 6 -1 8 -3c3 -2 5 -5 5 -9s-1 -7 -3 -10c-29 -33 -45 -75 -45 -119zM308 318c26 -23 46 -55 57 -94c12 -43 16 -96 10 -155c-1 -7 -7 -12 -14 -12h-1c-8 1 -13 7 -12 15c5 55 2 106 -9 145c-10 34 -27 62 -49 81
+s-50 29 -79 29c-40 0 -76 -14 -101 -41c-23 -25 -36 -59 -33 -95c2 -31 6 -48 9 -63c5 -23 9 -42 6 -92c0 -7 -7 -13 -14 -13c-1 0 -3 1 -4 1c-6 2 -10 7 -10 14c3 46 -1 64 -5 85c-3 16 -7 33 -9 66c-3 43 11 84 40 115c30 32 73 50 121 50c36 0 70 -12 97 -36zM326 180
+c5 -31 7 -56 7 -77c0 -42 -5 -76 -5 -77c-1 -7 -7 -12 -14 -12h-2c-4 1 -7 3 -9 6s-3 6 -2 10c0 0 4 33 4 73c0 20 -2 43 -7 73c-5 31 -16 57 -32 75c-16 17 -36 26 -58 26c-15 0 -29 -3 -42 -9c-2 -1 -4 -1 -6 -1c-4 0 -8 2 -11 5s-4 8 -3 12s4 7 8 9c16 8 35 12 54 12
+c30 0 56 -12 77 -34s35 -53 41 -91zM137 244c-11 -16 -14 -35 -10 -59c9 -54 18 -116 10 -174c-1 -7 -7 -12 -14 -12h-1c-4 0 -7 2 -9 5s-3 7 -3 11c8 54 -1 114 -10 165c-5 31 0 58 15 80c3 4 7 6 11 6c3 0 7 -1 9 -3c5 -5 6 -13 2 -19zM270 60c7 0 13 -5 13 -13
+c0 -1 1 -21 -3 -41c-1 -6 -6 -11 -13 -11h-5c-6 2 -10 9 -9 16c3 17 3 35 3 35c0 8 5 14 13 14h1zM247 242c11 -10 19 -26 24 -44c8 -28 11 -67 12 -114c0 -4 -2 -7 -4 -10c-3 -3 -5 -4 -9 -4v0c-8 0 -14 7 -14 14c-1 45 -5 82 -12 108c-3 12 -13 39 -38 39
+c-11 0 -20 -4 -26 -11c-6 -8 -9 -21 -6 -37c13 -65 16 -127 9 -184c-1 -7 -7 -12 -14 -12h-1c-7 1 -13 7 -12 15c7 54 4 114 -8 176c-6 31 2 50 10 60c11 13 28 20 48 20c15 0 30 -6 41 -16zM217 202c8 -19 14 -51 16 -90c3 -39 2 -80 -2 -116c-1 -7 -6 -12 -13 -12h-2
+c-4 0 -7 2 -9 5s-3 6 -3 10c4 33 4 73 2 110s-7 67 -14 83c-3 7 0 15 7 18c2 1 3 1 5 1v0c6 0 11 -4 13 -9z" />
+    <glyph glyph-name="ion-logo-buffer" unicode="&#xf22d;" horiz-adv-x="384" 
+d="M7 284c-9 4 -9 11 0 15l169 82c4 2 10 3 16 3s12 -1 16 -3l169 -82c9 -4 9 -11 0 -15l-169 -82c-4 -2 -10 -3 -16 -3s-12 1 -16 3zM377 200c9 -4 9 -12 0 -16l-169 -81c-4 -2 -10 -4 -16 -4s-12 2 -16 4l-169 81c-9 4 -9 12 0 16c0 0 27 13 33 16c5 3 7 3 13 0
+s123 -60 123 -60c4 -2 10 -3 16 -3s12 1 16 3c0 0 121 59 125 61s5 2 9 0s35 -17 35 -17zM377 100c9 -4 9 -11 0 -15l-169 -82c-4 -2 -10 -3 -16 -3s-12 1 -16 3l-169 82c-9 4 -9 11 0 15c0 0 27 14 33 17c5 3 7 2 13 -1s123 -59 123 -59c4 -2 10 -3 16 -3s12 1 16 3
+c0 0 121 58 125 60s5 2 9 0s35 -17 35 -17z" />
+    <glyph glyph-name="ion-ios-arrow-forward" unicode="&#xf3d1;" horiz-adv-x="192" 
+d="M134 192l-127 127c-9 9 -9 25 0 34s25 9 34 0l144 -144c9 -9 10 -24 1 -33l-145 -145c-5 -5 -11 -7 -17 -7s-12 2 -17 7c-9 9 -9 25 0 34z" />
+    <glyph glyph-name="ion-md-construct" unicode="&#xf2d5;" horiz-adv-x="480" 
+d="M415 55c7 -5 7 -18 -2 -25l-41 -41c-7 -7 -17 -7 -24 0l-114 113l-96 -112c-8 -8 -19 -8 -27 0l-43 43c-10 8 -10 21 -2 27l105 105l-14 15c-41 -16 -89 -8 -123 26c-35 35 -44 88 -23 130l78 -75l53 53l-76 75c42 19 96 12 131 -23c34 -34 43 -80 27 -121l13 -13v0
+l58 -58v0zM478 231c2 -2 2 -5 0 -7l-55 -56c-2 -2 -6 -2 -8 0l-35 34c-2 2 -2 6 0 8l10 10l-14 13c-6 4 -17 4 -30 0l-31 -37l-57 57l29 28s-1 47 -17 60s-45 29 -45 29v30c30 0 55 -7 91 -25s63 -45 70 -52s17 -18 23 -27s5 -18 5 -18l18 -16l4 4c2 2 6 2 8 0z" />
+    <glyph glyph-name="ion-ios-restaurant" unicode="&#xf201;" horiz-adv-x="288" 
+d="M272 384c5 0 16 0 16 -11v-357c0 -9 -7 -16 -16 -16s-16 7 -16 16v128s-32 23 -32 80c0 83 23 160 48 160zM176 384h8s24 -107 24 -128s-13 -38 -32 -45v-195c0 -9 -7 -16 -16 -16s-16 7 -16 16v195c-19 7 -32 24 -32 45s24 128 24 128h8l-10 -104c0 -4 4 -8 8 -8
+s8 4 8 8l6 104h8l6 -104c0 -4 4 -8 8 -8s8 4 8 8zM48 384c26 0 48 -64 48 -128c0 -21 -13 -38 -32 -45v-195c0 -9 -7 -16 -16 -16s-16 7 -16 16v195c-19 7 -32 24 -32 45c0 64 22 128 48 128z" />
+    <glyph glyph-name="ion-md-repeat" unicode="&#xf36a;" horiz-adv-x="384" 
+d="M85 296v0v-83h-42v125h256v62l85 -83l-85 -83v62h-214zM299 88v0v83h42v-125h-256v-62l-85 83l85 83v-62h214z" />
+    <glyph glyph-name="ion-ios-reverse-camera" unicode="&#xf49f;" horiz-adv-x="384" 
+d="M354 288c18 0 30 -13 30 -31v-176c0 -18 -12 -33 -30 -33h-320c-18 0 -34 15 -34 33v176c0 18 16 31 34 31h7v8c0 4 4 8 8 8h26c4 0 8 -4 8 -8v-8h4c4 0 9 2 12 5c28 32 40 43 52 43h85c12 0 23 -11 51 -43c3 -3 7 -5 12 -5h55zM244 108c1 4 1 8 -2 11c-2 2 -5 4 -8 4
+c-2 0 -5 -2 -7 -3c-11 -8 -23 -11 -35 -11c-15 0 -30 5 -42 16c-10 9 -16 21 -19 34h20c1 0 1 1 2 1c3 2 4 5 2 8l-32 42c-1 1 -3 2 -5 2s-3 -1 -4 -2l-31 -42s-1 -1 -1 -2c0 -4 3 -6 6 -6h20c3 -19 12 -37 27 -51c16 -15 36 -22 57 -22c17 0 34 4 48 14c2 2 3 5 4 7z
+M301 175c2 3 1 7 -2 9h-2h-21c-3 20 -13 40 -26 52c-16 14 -36 23 -58 23c-17 0 -34 -5 -48 -15c-2 -1 -3 -4 -4 -6c-1 -4 -1 -9 2 -12c2 -2 5 -3 8 -3c2 0 5 1 7 2c11 7 23 11 35 11c15 0 29 -5 41 -16c10 -10 17 -22 20 -36h-21h-2c-3 -2 -4 -6 -2 -9l33 -43v-1
+c3 -2 7 -1 9 1z" />
+    <glyph glyph-name="ion-md-move" unicode="&#xf331;" horiz-adv-x="448" 
+d="M448 192l-96 -96v64h-96v-96h64l-96 -96l-96 96h64v96h-96v-64l-96 96l96 96v-64h96v96h-64l96 96l96 -96h-64v-96h96v64z" />
+    <glyph glyph-name="ion-ios-book" unicode="&#xf3e8;" 
+d="M98 384c54 0 100 -28 100 -82v-16v0v0v0v-284c0 -2 -3 -3 -4 -1v0c-10 34 -38 68 -82 71c-34 2 -67 -13 -93 -37c-2 -2 -5 -3 -7 -3h-4c-4 0 -8 3 -8 6v290c0 32 44 56 98 56zM318 384c54 0 98 -24 98 -56v-290c0 -3 -4 -6 -8 -6h-4c-2 0 -5 2 -7 3c-29 26 -60 39 -93 37
+c-43 -3 -72 -36 -82 -70v-1c-1 -2 -4 -1 -4 1v284v0v0v0v16c0 54 46 82 100 82z" />
+    <glyph glyph-name="ion-ios-cloud-outline" unicode="&#xf409;" horiz-adv-x="512" 
+d="M288 324c-40 0 -77 -20 -100 -53l-7 -9c-4 -5 -10 -7 -16 -5l-11 4c-5 2 -10 4 -16 4c-11 0 -22 -5 -30 -14s-14 -20 -14 -32v-11c0 -6 -4 -10 -9 -12l-10 -4c-14 -4 -25 -13 -34 -25c-8 -12 -13 -27 -13 -41c0 -17 7 -33 19 -46s28 -20 44 -20h330c16 0 32 7 44 20
+s19 29 19 46c0 15 -5 30 -15 42s-23 21 -37 23l-11 2c-6 1 -10 5 -11 11l-1 11c-3 30 -17 57 -39 77s-52 32 -82 32zM288 352v0c77 0 141 -59 149 -134c43 -8 75 -47 75 -92c0 -50 -41 -94 -91 -94h-330c-50 0 -91 44 -91 94c0 41 26 80 66 93c1 39 33 74 72 74
+c10 0 19 -3 27 -6c27 39 72 65 123 65z" />
+    <glyph glyph-name="ion-ios-arrow-dropdown-circle" unicode="&#xf125;" 
+d="M0 192c0 115 93 208 208 208s208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208zM289 235l-81 -79l-81 81c-8 8 -19 8 -27 0s-8 -19 0 -27l95 -95c7 -7 19 -8 27 -1l94 94c4 4 6 9 6 14s-2 9 -6 13c-8 8 -19 8 -27 0z" />
+    <glyph glyph-name="ion-md-pin" unicode="&#xf34a;" horiz-adv-x="320" 
+d="M160 416c88 0 160 -71 160 -157c0 -118 -160 -291 -160 -291s-160 173 -160 291c0 86 72 157 160 157zM160 203c32 0 57 25 57 56s-25 56 -57 56s-57 -25 -57 -56s25 -56 57 -56z" />
+    <glyph glyph-name="ion-ios-list-box" unicode="&#xf143;" 
+d="M0 365c0 19 16 35 35 35h346c19 0 35 -16 35 -35v-346c0 -19 -16 -35 -35 -35h-346c-19 0 -35 16 -35 35v346zM89 68c9 1 16 8 17 17c2 13 -9 25 -22 23c-9 -1 -16 -8 -17 -17c-2 -13 9 -25 22 -23zM89 172c9 1 16 8 17 17c2 13 -9 25 -22 23c-9 -1 -16 -8 -17 -17
+c-2 -13 9 -25 22 -23zM89 276c9 1 16 8 17 17c2 13 -9 25 -22 23c-9 -1 -16 -8 -17 -17c-2 -13 9 -25 22 -23zM337 74c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-180c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h180zM337 178c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-180
+c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h180zM337 282c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-180c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h180z" />
+    <glyph glyph-name="ion-ios-disc" unicode="&#xf16e;" 
+d="M208 282c50 0 90 -40 90 -90s-40 -90 -90 -90s-90 40 -90 90s40 90 90 90zM208 152c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40zM208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 78c63 0 114 51 114 114
+s-51 114 -114 114s-114 -51 -114 -114s51 -114 114 -114z" />
+    <glyph glyph-name="ion-ios-cube" unicode="&#xf168;" 
+d="M393 318c6 -3 6 -11 0 -14l-179 -94c-4 -2 -8 -2 -12 0l-179 94c-6 3 -6 11 0 14l179 81c4 2 8 2 12 0zM232 -15c-5 -3 -11 1 -11 7v187c0 3 1 6 4 7l180 93c5 3 11 -1 11 -7v-185c0 -3 -2 -6 -4 -7zM0 272c0 6 6 10 11 7l180 -93c3 -1 4 -4 4 -7v-187
+c0 -6 -6 -10 -11 -7l-180 95c-2 1 -4 4 -4 7v185z" />
+    <glyph glyph-name="ion-md-thunderstorm" unicode="&#xf393;" horiz-adv-x="448" 
+d="M361 287c48 -3 87 -44 87 -93c0 -52 -41 -82 -93 -82h-94l18 36h-33l33 67h-99v-103h-68c-62 0 -112 38 -112 100c0 55 38 100 91 111c6 1 15 2 21 2c50 0 91 -31 106 -75h33c-6 24 -19 47 -37 65c-25 25 -57 37 -91 40c25 31 61 45 101 45c68 0 124 -48 137 -113z
+M180 80v32h81l-59 -128v96h-22z" />
+    <glyph glyph-name="ion-md-male" unicode="&#xf323;" 
+d="M368 400h48v-48v-128h-48v94l-107 -107c17 -24 27 -52 27 -83c0 -80 -64 -144 -144 -144s-144 64 -144 144s64 144 144 144c31 0 59 -10 83 -27l107 107h-94v48h128zM144 32c53 0 96 43 96 96s-43 96 -96 96s-96 -43 -96 -96s43 -96 96 -96z" />
+    <glyph glyph-name="ion-ios-color-wand" unicode="&#xf416;" horiz-adv-x="384" 
+d="M382 42c3 -3 3 -8 0 -11l-29 -29c-3 -3 -8 -3 -11 0l-245 246c-3 3 -3 8 0 11l29 29c3 3 8 3 11 0zM356 28c3 3 3 8 0 11l-190 191c-3 3 -8 3 -11 0v0c-3 -3 -3 -9 0 -12l190 -190c3 -3 8 -3 11 0v0zM129 328c-7 0 -12 5 -12 12v32c0 7 5 12 12 12s12 -5 12 -12v-32
+c0 -7 -5 -12 -12 -12zM129 185c7 0 12 -5 12 -12v-32c0 -7 -5 -12 -12 -12s-12 5 -12 12v32c0 7 5 12 12 12zM207 258c0 7 5 12 12 12h32c7 0 12 -5 12 -12s-5 -12 -12 -12h-32c-7 0 -12 5 -12 12zM56 258c0 -7 -6 -12 -12 -12h-32c-7 0 -12 5 -12 12s5 12 12 12h32
+c7 0 12 -5 12 -12zM61 307l-21 21c-5 5 -5 12 0 17c2 2 5 3 8 3s7 -1 9 -3l21 -21c5 -5 5 -12 0 -17c-2 -2 -6 -3 -9 -3s-6 1 -8 3zM69 208c3 0 7 -1 9 -3c5 -5 5 -12 0 -17l-21 -21c-2 -2 -6 -4 -9 -4s-6 2 -8 4s-4 5 -4 8s2 7 4 9l21 21c2 2 5 3 8 3v0zM188 304
+c-3 0 -6 1 -8 3s-4 6 -4 9s2 6 4 8l21 21c2 2 5 3 8 3s7 -1 9 -3c5 -5 5 -12 0 -17l-21 -21c-2 -2 -6 -3 -9 -3z" />
+    <glyph glyph-name="ion-ios-pie" unicode="&#xf484;" horiz-adv-x="448" 
+d="M244 380c0 2 2 4 4 4c111 -4 200 -96 200 -208c0 -114 -92 -207 -207 -208c-88 -1 -164 54 -195 131c-1 2 1 5 3 6l189 48c4 1 6 4 6 8v219zM0 209c0 90 59 205 216 207c2 0 4 -2 4 -4v-229c0 -4 -2 -7 -6 -8l-194 -50c-2 0 -4 1 -5 3c-15 32 -15 81 -15 81z" />
+    <glyph glyph-name="ion-md-person" unicode="&#xf345;" horiz-adv-x="384" 
+d="M192 192c-53 0 -96 43 -96 96s43 96 96 96s96 -43 96 -96s-43 -96 -96 -96zM192 144c64 0 192 -32 192 -96v-48h-384v48c0 64 128 96 192 96z" />
+    <glyph glyph-name="ion-md-alert" unicode="&#xf276;" 
+d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM232 88v40h-48v-40h48zM232 176v128h-48v-128h48z" />
+    <glyph glyph-name="ion-md-tennisball" unicode="&#xf38e;" 
+d="M336 356c-42 -45 -64 -103 -64 -164s23 -119 65 -163c-36 -28 -81 -45 -129 -45s-93 17 -128 45c42 44 64 102 64 163s-22 119 -64 164c35 28 80 44 128 44s93 -16 128 -44zM305 193c0 27 5 53 15 78c9 23 23 44 40 62c35 -37 56 -87 56 -141s-21 -103 -55 -140
+c-18 19 -31 39 -41 63c-10 25 -15 51 -15 78zM111 193c0 -27 -5 -53 -15 -78c-10 -24 -23 -45 -41 -64c-34 37 -55 87 -55 141c0 55 21 105 56 142c17 -18 31 -40 40 -63c10 -25 15 -51 15 -78z" />
+    <glyph glyph-name="ion-logo-closed-captioning" unicode="&#xf105;" horiz-adv-x="448" 
+d="M0 352h448v-320h-448v320zM406 192c0 23 0 38 -3 70s-20 50 -52 53s-86 3 -127 3s-95 0 -127 -3s-49 -21 -52 -53s-3 -47 -3 -70s1 -41 3 -70s17 -50 52 -53s84 -3 127 -3s92 0 127 3s50 24 52 53s3 47 3 70zM326 168c0 1 -1 3 -1 3h46c0 -24 -5 -42 -16 -54
+s-29 -19 -54 -19c-12 0 -22 2 -31 5s-15 8 -21 15s-10 16 -13 28s-5 28 -5 46s2 33 6 45s8 22 15 29s15 12 24 15s19 5 30 5c22 0 38 -7 49 -19s17 -32 17 -54h-46v1c0 18 -11 29 -24 29c-14 0 -22 -9 -24 -26c0 0 -1 -10 -1 -26s1 -24 1 -24c1 -15 10 -26 24 -26
+s24 10 24 26v1zM171 168c0 1 -1 3 -1 3h46c0 -24 -5 -42 -16 -54s-29 -19 -54 -19c-12 0 -21 2 -30 5s-16 8 -22 15s-10 16 -13 28s-5 28 -5 46s2 33 6 45s8 22 15 29s15 12 24 15s19 5 30 5c22 0 38 -7 49 -19s17 -32 17 -54h-45v1c0 18 -11 29 -24 29
+c-14 0 -23 -9 -25 -26c0 0 -1 -10 -1 -26s1 -24 1 -24c1 -15 10 -26 24 -26s24 10 24 26v1z" />
+    <glyph glyph-name="ion-ios-qr-scanner" unicode="&#xf1f3;" 
+d="M126 384c8 0 14 -6 14 -14s-6 -14 -14 -14h-60c-9 0 -18 -4 -26 -12c-7 -8 -12 -17 -12 -26v-60c0 -8 -6 -14 -14 -14s-14 6 -14 14v59c0 37 30 67 67 67h59zM350 384c36 0 66 -30 66 -66v-60c0 -8 -6 -14 -14 -14s-14 6 -14 14v60c0 9 -5 18 -12 26c-8 8 -17 12 -26 12
+h-60c-8 0 -14 6 -14 14s6 14 14 14h60zM126 28c8 0 14 -6 14 -14s-6 -14 -14 -14h-60c-36 0 -66 30 -66 66v60c0 8 6 14 14 14s14 -6 14 -14v-60c0 -9 5 -18 12 -26c8 -8 17 -12 26 -12h60zM402 140c8 0 14 -6 14 -14v-59c0 -37 -30 -67 -67 -67h-59c-8 0 -14 6 -14 14
+s6 14 14 14h60c9 0 18 4 26 12c7 8 12 17 12 26v60c0 8 6 14 14 14z" />
+    <glyph glyph-name="ion-md-flashlight" unicode="&#xf16b;" horiz-adv-x="352" 
+d="M48 150l1 122h255v-122l-64 -64v-118h-128v118zM155 416h42v-64h-42v64zM0 338l30 30l45 -46l-30 -30zM277 322l45 46l30 -30l-45 -46z" />
+    <glyph glyph-name="ion-ios-code" unicode="&#xf157;" horiz-adv-x="384" 
+d="M268 305l114 -109c1 -1 2 -2 2 -4s-1 -3 -2 -4l-114 -109c-1 -1 -2 -2 -4 -2s-3 1 -4 2l-14 13c-1 1 -2 2 -2 4s1 3 2 4l96 92l-96 92c-1 1 -2 2 -2 4s1 3 2 4l14 13c1 1 3 2 4 2s3 -1 4 -2zM140 288c0 -2 -1 -3 -2 -4l-96 -92l96 -92c1 -1 2 -2 2 -4s-1 -3 -2 -4
+l-14 -13c-1 -1 -2 -2 -4 -2c-1 0 -3 1 -4 2l-114 109c-1 1 -2 2 -2 4s1 3 2 4l114 109c1 1 3 2 4 2s3 -1 4 -2l14 -13c1 -1 2 -2 2 -4z" />
+    <glyph glyph-name="ion-md-bowtie" unicode="&#xf2a1;" horiz-adv-x="448" 
+d="M244 144h-40c-15 0 -28 13 -28 28v40c0 15 13 28 28 28h40c15 0 28 -13 28 -28v-40c0 -15 -13 -28 -28 -28zM144 168c0 -18 8 -35 22 -45c-6 -27 -102 -91 -134 -91c-18 0 -32 14 -32 32v256c0 18 14 32 32 32c32 0 128 -64 134 -91c-14 -10 -22 -27 -22 -45v-48z
+M416 352c18 0 32 -14 32 -32v-256c0 -18 -14 -32 -32 -32c-32 0 -128 64 -134 91c14 10 22 27 22 45v48c0 18 -8 35 -22 45c6 27 102 91 134 91z" />
+    <glyph glyph-name="ion-md-infinite" unicode="&#xf310;" 
+d="M387 260c19 -18 29 -42 29 -68s-11 -50 -30 -68s-43 -28 -70 -28c-26 0 -51 10 -70 28l-38 36l-38 -36c-19 -18 -43 -28 -70 -28s-52 10 -71 28s-29 42 -29 68s10 50 29 68s44 28 71 28c26 0 51 -10 70 -28l108 -104c10 -10 24 -15 38 -15s28 5 38 15s15 22 15 36
+s-5 26 -15 36s-24 15 -38 15s-28 -5 -38 -15v0l-17 -16l-33 32l18 16c19 18 43 28 70 28s52 -10 71 -28zM138 156l37 36l-37 36c-10 10 -24 15 -38 15s-28 -5 -38 -15s-15 -22 -15 -36s5 -26 15 -36s24 -15 38 -15s28 5 38 15z" />
+    <glyph glyph-name="ion-md-volume-off" unicode="&#xf3a2;" horiz-adv-x="384" 
+d="M342 192c0 69 -45 128 -107 147v45c85 -20 149 -99 149 -192c0 -35 -8 -68 -24 -96l-32 32c9 19 14 41 14 64zM192 368v-104l-51 51zM357 51v0l24 -24l-24 -24l-40 40c-23 -21 -51 -36 -82 -43v45c19 6 37 15 52 28l-95 95v-152l-107 112h-85v128h85l9 10l-91 91l24 24z
+M288 192c0 -7 0 -15 -2 -22l-51 51v60c32 -16 53 -51 53 -89z" />
+    <glyph glyph-name="ion-ios-flag" unicode="&#xf42d;" horiz-adv-x="320" 
+d="M311 367c5 1 9 -3 9 -8v-191c0 -4 -3 -7 -7 -8c0 0 -37 -7 -72 -7s-57 6 -83 12s-51 15 -77 15c-21 0 -37 -2 -47 -4c-4 -1 -6 -4 -6 -8v-154c0 -8 -8 -15 -16 -14c-7 1 -12 7 -12 14v354l4 3c2 1 21 13 77 13c28 0 55 -5 81 -11c25 -5 50 -12 78 -12c18 0 48 3 61 5
+c4 0 7 1 10 1z" />
+    <glyph glyph-name="ion-md-cloud-download" unicode="&#xf2c6;" horiz-adv-x="480" 
+d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM208 180h-68l100 -100l100 100h-68v76h-64v-76z" />
+    <glyph glyph-name="ion-md-git-compare" unicode="&#xf2fc;" horiz-adv-x="448" 
+d="M160 66v62l96 -96l-96 -96v64h-22c-39 0 -64 11 -84 36c-18 23 -22 48 -22 94v167c-19 11 -32 31 -32 55c0 35 29 64 64 64s64 -29 64 -64c0 -24 -13 -44 -32 -55v-167c0 -35 2 -47 8 -54c5 -6 9 -10 34 -10h22zM64 392c-22 0 -40 -18 -40 -40s18 -40 40 -40s40 18 40 40
+s-18 40 -40 40zM416 87c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v170c0 35 -2 47 -8 54c-5 6 -9 9 -34 9h-22v-64l-96 96l96 96v-62h22c39 0 64 -10 84 -35c18 -23 22 -48 22 -94v-170zM384 -8c22 0 40 18 40 40s-18 40 -40 40
+s-40 -18 -40 -40s18 -40 40 -40z" />
+    <glyph glyph-name="ion-ios-mic" unicode="&#xf461;" horiz-adv-x="220" 
+d="M110 112c-35 0 -64 29 -64 64v160c0 35 29 64 64 64v0c35 0 64 -29 64 -64v-160c0 -35 -29 -64 -64 -64v0zM206 256c8 0 14 -6 14 -14v-69c0 -56 -42 -102 -96 -109v-52h36c8 0 14 -6 14 -14s-6 -14 -14 -14h-100c-8 0 -14 6 -14 14s6 14 14 14h36v52
+c-54 7 -96 53 -96 109v69c0 8 6 14 14 14s14 -6 14 -14v-69c0 -45 37 -82 82 -82s82 37 82 82v69c0 8 6 14 14 14z" />
+    <glyph glyph-name="ion-md-transgender" unicode="&#xf397;" horiz-adv-x="448" 
+d="M320 416h128v-128h-35v69l-88 -88c7 -15 11 -31 11 -49c0 -55 -40 -100 -91 -110v-46h63v-40h-63v-56h-42v56h-63v40h63v46c-52 10 -91 55 -91 110c0 18 4 34 11 49l-19 19l-31 -31l-29 29l31 31l-40 40v-69h-35v128h128v-35h-63l37 -37l32 32l28 -29l-31 -31l15 -15
+c20 19 48 31 78 31c24 0 46 -7 64 -20c0 0 6 -5 14 -12l81 81h-63v35zM224 158c35 0 64 29 64 64s-29 64 -64 64s-64 -29 -64 -64s29 -64 64 -64z" />
+    <glyph glyph-name="ion-md-headset" unicode="&#xf306;" horiz-adv-x="384" 
+d="M192 400c106 0 192 -88 192 -197v-153c0 -36 -29 -66 -64 -66h-64v176h85v43c0 85 -67 153 -149 153s-149 -68 -149 -153v-43h85v-176h-64c-35 0 -64 30 -64 66v153c0 109 86 197 192 197z" />
+    <glyph glyph-name="ion-md-arrow-down" unicode="&#xf27e;" horiz-adv-x="342" 
+d="M192 363v-260l120 120l30 -31l-171 -171l-171 171l30 30l120 -119v260h42z" />
+    <glyph glyph-name="ion-ios-partly-sunny" unicode="&#xf1df;" horiz-adv-x="480" 
+d="M152 384c9 0 16 -7 16 -16v-30c0 -9 -7 -16 -16 -16v0c-9 0 -16 7 -16 16v30c0 9 7 16 16 16v0zM63 232c0 -9 -7 -16 -16 -16h-31c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h31c9 0 16 -7 16 -16v0zM64 299l-21 21c-6 6 -6 16 0 22c3 3 8 4 12 4v0c4 0 8 -1 11 -4l20 -21
+c6 -6 6 -16 0 -22c-3 -3 -7 -5 -11 -5s-8 2 -11 5zM255 343c6 -6 6 -16 0 -22l-20 -21c-3 -3 -7 -4 -11 -4s-8 1 -11 4v0h-1c-6 6 -6 16 0 22l21 21c3 3 7 5 11 5v0c4 0 8 -2 11 -5zM77 175c4 0 8 -2 11 -5c6 -6 6 -16 0 -22l-20 -21c-3 -3 -7 -5 -11 -5s-9 2 -12 5
+c-6 6 -6 17 0 23l21 20c3 3 7 5 11 5v0zM387 189c51 0 93 -43 93 -94s-42 -95 -93 -95h-226c-41 0 -74 36 -74 77c0 39 29 73 67 76v1v10v6c2 39 24 74 56 92c5 3 10 5 15 7c13 5 26 8 41 8c54 0 99 -39 110 -89c3 0 6 1 9 1h2zM135 164c-34 7 -59 36 -59 72
+c0 40 33 74 73 74c23 0 45 -11 58 -28h-1c-5 -2 -9 -5 -14 -8c-33 -19 -56 -53 -58 -93v-6c0 -3 1 -7 1 -10v-1z" />
+    <glyph glyph-name="ion-md-cloudy-night" unicode="&#xf2ca;" horiz-adv-x="448" 
+d="M91 265h2h-2zM310 145c42 -3 74 -38 74 -81c0 -44 -36 -80 -80 -80h-208c-53 0 -96 44 -96 97c0 47 32 86 78 95c5 1 13 1 18 1c43 0 78 -26 91 -64h28c-6 21 -16 40 -32 56c-21 21 -48 32 -77 34c21 27 52 39 86 39c58 0 107 -41 118 -97zM80 223l-13 -17v0v5
+c0 92 63 168 148 189c-9 -21 -14 -45 -14 -70c0 -20 3 -39 9 -57c-6 1 -12 1 -18 1c-22 0 -43 -4 -61 -12c-20 -9 -37 -22 -51 -39zM386 141c-3 3 -6 7 -10 10h3c24 0 48 5 69 14c-7 -27 -19 -53 -35 -74c-4 19 -14 36 -27 50z" />
+    <glyph glyph-name="ion-md-nutrition" unicode="&#xf33a;" 
+d="M309 212c8 -8 13 -19 13 -31c0 -14 -6 -28 -17 -36l-233 -168c-9 -6 -19 -9 -28 -9c-25 0 -44 20 -44 44c0 8 2 15 5 21v1l158 255v0c8 10 21 16 35 16c10 0 20 -4 28 -10h1zM416 303l-109 -56l-42 41l68 128l49 -28l-32 -56l37 20z" />
+    <glyph glyph-name="ion-ios-options" unicode="&#xf1d9;" 
+d="M251 72c6 14 21 24 37 24s31 -10 37 -24h75c9 0 16 -7 16 -16v0c0 -9 -7 -16 -16 -16h-75c-6 -14 -21 -24 -37 -24s-31 10 -37 24h-235c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h235zM91 208c6 14 21 24 37 24s31 -10 37 -24h235c9 0 16 -7 16 -16v0c0 -9 -7 -16 -16 -16
+h-235c-6 -14 -21 -24 -37 -24s-31 10 -37 24h-75c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h75zM251 344c6 14 21 24 37 24s31 -10 37 -24h75c9 0 16 -7 16 -16v0c0 -9 -7 -16 -16 -16h-75c-6 -14 -21 -24 -37 -24s-31 10 -37 24h-235c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h235z
+" />
+    <glyph glyph-name="ion-md-log-out" unicode="&#xf31f;" 
+d="M144 171v42h190l-45 45l31 30l96 -96l-96 -96l-30 30l44 45h-190zM208 27c44 0 85 17 116 48l30 -30c-8 -8 -17 -16 -27 -23c-35 -24 -76 -38 -119 -38c-114 0 -208 93 -208 208s94 208 208 208c43 0 84 -13 119 -37c10 -7 19 -16 27 -24l-30 -30c-31 31 -72 48 -116 48
+s-86 -17 -117 -48s-48 -73 -48 -117s17 -86 48 -117s73 -48 117 -48zM401 192l-1 1l-1 -1l1 -1z" />
+    <glyph glyph-name="ion-md-appstore" unicode="&#xf27b;" 
+d="M416 296c-19 -214 -13 -312 -13 -312h-390s6 96 -13 312h104c0 57 47 104 104 104s104 -47 104 -104h104zM208 374c-43 0 -78 -35 -78 -78h156c0 43 -35 78 -78 78zM156 50l143 85l-143 84v-169z" />
+    <glyph glyph-name="ion-md-cellular" unicode="&#xf164;" horiz-adv-x="384" 
+d="M0 0l384 384v-384h-384z" />
+    <glyph glyph-name="ion-ios-beer" unicode="&#xf126;" horiz-adv-x="384" 
+d="M48 286v-96h-26c-9 0 -17 8 -17 17c0 16 11 22 11 35v51c0 19 -16 12 -16 41v4c0 26 25 43 50 43c10 0 18 -1 23 -2c6 -1 12 1 16 6c9 10 22 17 36 17c9 0 19 -2 26 -7c6 -4 13 -2 17 3c10 11 23 18 44 18c24 0 47 -16 56 -39c2 -5 7 -9 13 -9h1c21 0 38 -17 38 -38v-22
+c0 -2 -3 -4 -5 -2v0c-4 3 -8 4 -13 4h-230c-13 0 -24 -11 -24 -24zM322 -4c8 0 14 -6 14 -14s-6 -14 -14 -14h-276c-8 0 -14 6 -14 14s6 14 14 14h276zM336 254c26 0 48 -22 48 -48v-96c0 -26 -22 -48 -48 -48h-32c0 -12 2 -18 5 -30c1 -6 0 -12 -5 -16c-3 -3 -7 -4 -11 -4
+h-214c-6 0 -12 3 -15 8c-3 4 -4 9 -3 14v0c2 12 3 18 3 30v214c0 9 7 16 16 16h208c9 0 16 -7 16 -16v-24h32zM356 110v96c0 11 -9 20 -20 20h-32v-136h32c11 0 20 9 20 20z" />
+    <glyph glyph-name="ion-ios-snow" unicode="&#xf218;" horiz-adv-x="384" 
+d="M377 102c7 -4 9 -13 5 -20c-3 -5 -8 -8 -13 -8c-3 0 -6 1 -8 2l-32 19c-4 -16 -2 -32 -2 -32c1 -8 -4 -15 -12 -17c-1 0 -2 -1 -3 -1c-7 0 -13 6 -14 13c0 1 -4 26 6 52l-96 56v-99c27 -5 46 -20 47 -21c3 -2 6 -6 6 -10s-1 -8 -4 -11s-7 -5 -11 -5c-3 0 -7 1 -10 3
+c0 0 -12 10 -28 14v-38c0 -8 -8 -15 -16 -15s-15 7 -15 15v38c-16 -4 -29 -14 -29 -14c-3 -2 -7 -3 -10 -3c-4 0 -8 2 -11 5s-4 7 -4 11s3 8 6 10c1 1 21 16 48 21v99l-96 -56c10 -26 6 -51 6 -52c-1 -7 -7 -13 -14 -13c-1 0 -2 1 -3 1c-8 2 -13 9 -12 17c0 0 2 16 -3 32
+l-32 -19c-2 -1 -5 -2 -8 -2c-5 0 -10 3 -13 8c-4 7 -2 16 5 20l33 19c-12 12 -26 19 -26 19c-8 3 -11 11 -9 19c2 6 7 9 13 9c2 0 4 0 6 -1c1 0 24 -10 42 -31l96 56l-96 56c-18 -21 -41 -31 -42 -31c-2 -1 -4 -1 -6 -1c-6 0 -11 4 -13 10c-2 8 1 16 9 19c0 0 14 6 26 18
+l-33 19c-7 4 -9 13 -5 20c3 5 8 8 13 8c3 0 6 -1 8 -2l32 -19c5 16 3 32 3 32c-1 8 4 16 12 18h3c7 0 13 -6 14 -13c0 -1 4 -26 -6 -52l96 -56v100c-27 5 -47 19 -48 20c-3 2 -6 6 -6 10s1 8 4 11s7 5 11 5s7 -1 10 -3c0 0 13 -10 29 -14v38c0 8 7 15 15 15s16 -7 16 -15
+v-38c16 4 28 14 28 14c3 2 7 3 10 3c4 0 8 -2 11 -5s4 -7 4 -11s-3 -8 -6 -10c-1 -1 -20 -16 -47 -21v-99l96 56c-10 26 -7 51 -7 52c1 7 8 13 15 13c1 0 2 -1 3 -1c8 -2 13 -9 12 -17c0 -1 -2 -16 2 -32l32 19c2 1 5 2 8 2c5 0 10 -3 13 -8c4 -7 2 -16 -5 -20l-33 -19
+c12 -12 26 -19 26 -19c8 -3 11 -11 9 -19c-2 -6 -7 -9 -13 -9c-2 0 -4 0 -6 1c-1 0 -24 10 -42 31l-96 -56l96 -56c18 21 41 31 42 31c2 1 4 1 6 1c6 0 11 -4 13 -10c2 -8 -1 -16 -9 -19c0 0 -14 -6 -26 -18z" />
+    <glyph glyph-name="ion-ios-happy" unicode="&#xf192;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM280 248c-13 0 -24 -11 -24 -24s11 -24 24 -24s24 11 24 24s-11 24 -24 24zM136 248c-13 0 -24 -11 -24 -24s11 -24 24 -24s24 11 24 24s-11 24 -24 24zM208 79c45 0 82 30 94 71
+c2 5 -3 10 -8 10h-172c-5 0 -10 -5 -8 -10c12 -41 49 -71 94 -71z" />
+    <glyph glyph-name="ion-md-wallet" unicode="&#xf18f;" 
+d="M155 107c0 -24 18 -43 42 -43h197v-21c0 -24 -18 -43 -42 -43h-308c-24 0 -44 18 -44 42v300c0 24 20 42 44 42h308c23 0 42 -19 42 -43v-21h-197c-24 0 -42 -19 -42 -43v-170zM197 262c0 9 7 16 16 16h187c9 0 16 -7 16 -16v-140c0 -9 -7 -16 -16 -16h-187
+c-9 0 -16 7 -16 16v140zM274 160c16 1 29 14 30 30c1 19 -15 35 -34 34c-16 -1 -29 -14 -30 -30c-1 -19 15 -35 34 -34z" />
+    <glyph glyph-name="ion-md-funnel" unicode="&#xf2f7;" horiz-adv-x="448" 
+d="M176 48v48h96v-48h-96zM0 336h448v-48h-448v48zM80 167v50h288v-50h-288z" />
+    <glyph glyph-name="ion-ios-refresh-circle" unicode="&#xf135;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 64c67 0 123 51 128 117c0 6 -4 11 -10 11v0c-5 0 -10 -4 -10 -9c-4 -55 -51 -98 -107 -99c-59 -1 -108 47 -109 106c-1 60 48 110 108 110v-42c0 -6 7 -10 12 -7l73 47
+c5 3 5 10 0 13l-73 53c-5 4 -12 -1 -12 -7v-37c-71 0 -128 -57 -128 -128s57 -128 128 -128z" />
+    <glyph glyph-name="ion-ios-watch" unicode="&#xf269;" 
+d="M392 287c16 -25 24 -53 24 -82v-41c0 -21 -4 -40 -12 -58c-8 -17 -19 -33 -33 -46c-28 -25 -66 -39 -108 -39c-41 0 -54 8 -65 14c-7 4 -13 6 -27 7c-38 2 -69 16 -94 40c-3 2 -4 5 -4 9c0 3 2 7 4 9c2 3 5 4 9 4c3 0 8 -1 10 -3c20 -19 45 -30 77 -32
+c20 -1 29 -6 37 -11c9 -5 19 -10 53 -10c35 0 67 12 90 32c12 10 21 22 27 36c7 15 10 31 10 48v41c0 24 -7 48 -20 68c-12 20 -30 35 -51 46c-3 2 -6 5 -7 8s-1 7 1 10c2 4 7 7 12 7c2 0 4 0 6 -1c25 -13 46 -32 61 -56zM236 65c-6 1 -11 6 -11 13v2c1 6 7 11 13 11h2
+c7 -1 14 -2 21 -2c26 0 48 9 65 25c2 2 6 4 9 4c4 0 7 -2 9 -5c5 -5 5 -13 0 -18c-11 -10 -24 -19 -38 -24s-29 -8 -45 -8c-8 0 -16 1 -25 2zM238 86v0v0v0zM175 26c7 0 13 -6 13 -13s-6 -13 -13 -13c-46 0 -86 16 -121 47s-54 73 -54 114v44c0 29 8 57 24 82
+c15 24 36 43 61 56c2 1 4 1 6 1c5 0 10 -3 12 -7c2 -3 2 -7 1 -10s-4 -6 -7 -8c-21 -11 -39 -26 -51 -46c-13 -20 -20 -44 -20 -68v-44c0 -34 17 -68 46 -94c30 -27 63 -41 103 -41zM300 333c-1 -14 11 -26 25 -26v0c2 0 3 -3 1 -4c-8 -7 -18 -10 -29 -10h-178
+c-11 0 -21 3 -29 9c-1 1 0 3 0 4v0c0 1 1 1 2 1c13 1 24 12 23 26c-1 12 -11 22 -23 23c-4 0 -7 -1 -10 -2s-5 2 -4 4c8 16 23 26 41 26h178c11 0 22 -4 30 -11c5 -4 8 -9 11 -15c1 -2 0 -5 -3 -4c-4 2 -8 2 -12 2c-12 -1 -22 -11 -23 -23zM279 343c-2 8 -9 15 -17 17
+c-16 4 -31 -10 -27 -26c2 -8 9 -15 17 -17c16 -4 31 10 27 26z" />
+    <glyph glyph-name="ion-ios-reorder" unicode="&#xf1fd;" horiz-adv-x="352" 
+d="M0 128v16h352v-16h-352zM0 184v16h352v-16h-352zM0 240v16h352v-16h-352z" />
+    <glyph glyph-name="ion-ios-volume-high" unicode="&#xf11c;" horiz-adv-x="383" 
+d="M151 302c6 -3 9 -8 9 -14v-192c0 -6 -3 -11 -9 -14c-2 -1 -5 -2 -7 -2c-4 0 -7 2 -10 4l-65 52h-53c-9 0 -16 7 -16 16v80c0 9 7 16 16 16h53l65 53c3 2 6 3 10 3c2 0 5 -1 7 -2zM383 192v0v0c0 -59 -23 -114 -65 -156c-2 -2 -6 -4 -9 -4s-6 2 -8 4c-5 5 -5 12 0 17
+c38 37 58 86 58 139v0v0c0 53 -20 102 -58 139c-5 5 -5 12 0 17s12 5 17 0c42 -42 65 -97 65 -156zM320 192v0c0 -44 -16 -84 -46 -115c-2 -2 -6 -4 -9 -4s-6 2 -8 4c-5 5 -6 12 -1 17c26 26 40 61 40 98v0v0c0 37 -14 72 -40 98c-5 5 -4 12 1 17s12 5 17 0
+c30 -31 46 -71 46 -115v0zM223 266c19 -20 30 -46 30 -74v0v0c0 -28 -11 -54 -30 -74c-2 -2 -6 -3 -9 -3s-6 1 -8 3c-5 5 -5 12 0 17c15 15 23 36 23 57v0v0c0 22 -8 42 -23 57c-5 5 -5 12 0 17s12 5 17 0z" />
+    <glyph glyph-name="ion-ios-contrast" unicode="&#xf163;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM335 65c34 34 53 79 53 127s-19 93 -53 127s-79 53 -127 53v-360c48 0 93 19 127 53z" />
+    <glyph glyph-name="ion-ios-today" unicode="&#xf14f;" horiz-adv-x="384" 
+d="M324 416c33 0 60 -27 60 -60v-328c0 -33 -27 -60 -60 -60h-264c-33 0 -60 27 -60 60v328c0 33 27 60 60 60h264zM356 28v328c0 18 -14 32 -32 32h-264c-18 0 -32 -14 -32 -32v-328c0 -18 14 -32 32 -32h264c18 0 32 14 32 32zM296 272c13 0 24 -11 24 -24v-192
+c0 -13 -11 -24 -24 -24h-208c-13 0 -24 11 -24 24v192c0 13 11 24 24 24h208zM78 324c-8 0 -14 6 -14 14s6 14 14 14h100c8 0 14 -6 14 -14s-6 -14 -14 -14h-100z" />
+    <glyph glyph-name="ion-ios-mic-off" unicode="&#xf45f;" horiz-adv-x="256" 
+d="M242 -16c-5 0 -9 3 -12 7l-228 388c-4 7 -2 15 5 19s16 2 20 -5l227 -388c4 -7 2 -15 -5 -19c-2 -1 -5 -2 -7 -2zM192 176c0 -9 -2 -17 -5 -25l-120 205c8 26 33 44 61 44v0c35 0 64 -29 64 -64v-160zM64 176v65l75 -128c-4 -1 -7 -1 -11 -1v0c-35 0 -64 29 -64 64z
+M238 173c0 -26 -9 -49 -24 -68l-15 26c7 12 11 27 11 42v69c0 8 6 14 14 14s14 -6 14 -14v-69zM128 91c8 0 15 1 22 3l15 -25c-7 -3 -15 -4 -23 -5v-52h36c8 0 14 -6 14 -14s-6 -14 -14 -14h-100c-8 0 -14 6 -14 14s6 14 14 14h36v52c-54 7 -96 53 -96 109v69
+c0 8 6 14 14 14s14 -6 14 -14v-69c0 -45 37 -82 82 -82z" />
+    <glyph glyph-name="ion-ios-medkit" unicode="&#xf45e;" 
+d="M384 320c18 0 32 -14 32 -32v-256c0 -18 -14 -32 -32 -32h-352c-18 0 -32 14 -32 32v256c0 18 14 32 32 32h84v32c0 18 14 32 32 32h120c18 0 32 -14 32 -32v-32h84zM144 348v-28h128v28c0 4 -4 8 -8 8h-112c-4 0 -8 -4 -8 -8zM272 144c9 0 16 7 16 16s-7 16 -16 16h-32
+h-16v16v32c0 9 -7 16 -16 16s-16 -7 -16 -16v-32v-16h-16h-32c-9 0 -16 -7 -16 -16s7 -16 16 -16h32h16v-16v-32c0 -9 7 -16 16 -16s16 7 16 16v32v16h16h32z" />
+    <glyph glyph-name="ion-ios-arrow-round-down" unicode="&#xf118;" horiz-adv-x="192" 
+d="M188 152c5 -5 5 -13 0 -18l-83 -82c-2 -2 -6 -4 -9 -4c-2 0 -3 0 -5 1s-3 2 -4 3v0l-83 82c-5 5 -5 13 0 18s13 6 18 1l61 -61v231c0 7 6 13 13 13s13 -6 13 -13v-231l61 60c5 5 13 5 18 0z" />
+    <glyph glyph-name="ion-md-link" unicode="&#xf22e;" horiz-adv-x="448" 
+d="M43 192c0 -38 31 -69 69 -69h88v-43h-88c-62 0 -112 50 -112 112s50 112 112 112h88v-43h-88c-38 0 -69 -31 -69 -69zM128 170v44h192v-44h-192zM336 304c62 0 112 -50 112 -112s-50 -112 -112 -112h-88v43h88c38 0 69 31 69 69s-31 69 -69 69h-88v43h88z" />
+    <glyph glyph-name="ion-ios-chatbubbles" unicode="&#xf146;" 
+d="M383 127l16 -58s1 -2 1 -3c0 -4 -4 -8 -8 -8c-2 0 -4 1 -4 1l-57 21c-3 1 -6 2 -10 2c-3 0 -6 -1 -9 -2s-15 -5 -26 -8s-32 -8 -47 -8c-96 0 -171 77 -171 169c0 12 2 23 4 34c16 76 86 133 170 133c96 0 174 -75 174 -167c0 -33 -11 -64 -28 -90c-1 -1 -1 -2 -2 -3
+c-2 -4 -3 -9 -3 -13zM270 56c4 1 9 2 13 3c-4 -5 -7 -9 -7 -9c-30 -35 -73 -56 -120 -56c-21 0 -42 5 -61 12c-4 2 -6 2 -6 2c-2 0 -4 0 -6 -1l-56 -22c-1 0 -2 -1 -3 -1c-2 0 -3 1 -5 2c-2 2 -4 5 -3 8c0 0 12 60 12 62s-1 4 -3 8c-16 24 -25 53 -25 82c0 42 19 82 52 111
+l8 7c-1 -4 -3 -9 -4 -13s-1 -9 -2 -13c-1 -6 -2 -14 -2 -21c0 -92 75 -169 171 -169c10 0 24 2 34 4c5 1 9 3 13 4z" />
+    <glyph glyph-name="ion-ios-beaker" unicode="&#xf124;" horiz-adv-x="384" 
+d="M381 400c2 0 3 -1 3 -2s-2 -4 -3 -6s-12 -15 -14 -33v-310c0 -35 -28 -65 -63 -65h-208c-35 0 -64 29 -64 64v276c0 32 -2 32 -32 36c0 12 10 40 64 40h270h47zM48 371c12 -13 12 -29 12 -47v-36h279v0v71v3c0 3 1 6 2 10h-7h-270c-4 0 -10 0 -16 -1v0z" />
+    <glyph glyph-name="ion-ios-git-branch" unicode="&#xf183;" horiz-adv-x="332" 
+d="M262 352c39 0 70 -31 70 -70c0 -34 -24 -63 -56 -69c-1 -28 -14 -46 -38 -64c-25 -19 -56 -25 -78 -29c-27 -5 -42 -14 -51 -24c19 -13 31 -35 31 -58c0 -39 -31 -70 -70 -70s-70 31 -70 70c0 17 6 33 17 46c10 11 24 19 38 22v172c-15 3 -28 11 -38 22
+c-11 13 -17 29 -17 46c0 39 31 70 70 70s70 -31 70 -70c0 -17 -6 -34 -18 -47c-10 -11 -24 -19 -39 -22v-169c10 13 32 33 73 40c19 3 45 7 65 23c17 13 26 24 27 43c-32 7 -56 35 -56 68c0 39 31 70 70 70zM28 346c0 -23 19 -42 42 -42s42 19 42 42s-19 42 -42 42
+s-42 -19 -42 -42zM112 38c0 23 -19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42s42 19 42 42zM262 240c23 0 42 19 42 42s-19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42z" />
+    <glyph glyph-name="ion-logo-google" unicode="&#xf23a;" horiz-adv-x="408" 
+d="M406 224c0 -1 2 -14 2 -37c0 -54 -18 -106 -54 -144s-87 -59 -141 -59c-59 0 -116 22 -156 64c-38 39 -57 92 -57 144s20 108 59 147c40 39 94 61 150 61v0c73 0 120 -38 137 -53l-58 -58c-10 9 -38 30 -77 30c-34 0 -68 -12 -90 -35c-23 -23 -39 -58 -39 -92
+c0 -35 15 -69 39 -92c23 -22 58 -36 91 -36c46 0 102 30 114 87h-116v82h194z" />
+    <glyph glyph-name="ion-ios-recording" unicode="&#xf497;" horiz-adv-x="480" 
+d="M370 302c61 0 110 -49 110 -110s-49 -110 -110 -110h-260c-61 0 -110 49 -110 110s49 110 110 110v0v0c61 0 110 -49 110 -110c0 -30 -12 -58 -32 -78h105c-20 20 -33 48 -33 78c0 61 49 110 110 110v0v0zM448 192c0 43 -35 78 -78 78s-78 -35 -78 -78s35 -78 78 -78
+s78 35 78 78zM110 114c43 0 78 35 78 78s-35 78 -78 78s-78 -35 -78 -78s35 -78 78 -78z" />
+    <glyph glyph-name="ion-md-checkmark-circle" unicode="&#xf2bb;" 
+d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM165 81l192 192l-29 30l-163 -162l-76 77l-30 -30z" />
+    <glyph glyph-name="ion-ios-checkbox-outline" unicode="&#xf147;" horiz-adv-x="384" 
+d="M352 384c18 0 32 -14 32 -32v-320c0 -18 -14 -32 -32 -32h-320c-18 0 -32 14 -32 32v320c0 18 14 32 32 32h320zM356 36v312c0 4 -4 8 -8 8h-312c-4 0 -8 -4 -8 -8v-312c0 -4 4 -8 8 -8h312c4 0 8 4 8 8zM300 255c2 -2 1 -4 0 -6l-134 -134v0c-2 -2 -7 -5 -12 -5
+c-4 0 -7 1 -11 5l-56 56c-2 2 -2 4 0 6l17 18c1 1 2 1 3 1s2 0 3 -1l44 -45l122 123c1 1 2 1 3 1v0c1 0 2 0 3 -1z" />
+    <glyph glyph-name="ion-ios-arrow-round-up" unicode="&#xf11a;" horiz-adv-x="192" 
+d="M188 232c-5 -5 -13 -5 -18 0l-61 60v-231c0 -7 -6 -13 -13 -13s-13 6 -13 13v231l-61 -61c-5 -5 -13 -4 -18 1s-5 13 0 18l83 82v0c1 1 2 2 4 3s3 1 5 1c3 0 7 -2 9 -4l83 -82c5 -5 5 -13 0 -18z" />
+    <glyph glyph-name="ion-ios-home" unicode="&#xf448;" 
+d="M211 344l156 -125c1 -1 1 -2 1 -3v-230c0 -1 -1 -2 -2 -2h-108c-1 0 -2 1 -2 2v140c0 1 -1 2 -2 2h-92c-1 0 -2 -1 -2 -2v-140c0 -1 -1 -2 -2 -2h-108c-1 0 -2 1 -2 2v230c0 1 1 2 2 3l156 125c2 1 3 1 5 0zM411 244c3 -2 5 -6 5 -10s-1 -8 -4 -11s-6 -4 -10 -4
+c-3 0 -7 1 -9 3l-184 147l-1 1l-1 -1l-184 -148c-2 -2 -6 -3 -9 -3c-4 0 -7 1 -10 4s-4 7 -4 11s2 8 5 10l43 35v92c0 1 1 2 2 2h60c1 0 2 -1 2 -2v-42l82 67c4 3 9 5 14 5s10 -2 14 -5z" />
+    <glyph glyph-name="ion-ios-paper" unicode="&#xf472;" 
+d="M76 368c0 18 12 30 30 30l278 2c18 0 32 -14 32 -32v-353c0 -17 -14 -31 -31 -31h-353c-18 0 -32 14 -32 32v288c0 18 14 32 32 32h16v-290c0 -8 6 -14 14 -14v0c8 0 14 6 14 14v322zM142 336c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h84c8 0 14 6 14 14v0
+c0 8 -6 14 -14 14h-84zM142 176c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h148c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-148zM338 68c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-196c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h196zM338 228c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-196
+c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h196z" />
+    <glyph glyph-name="ion-md-cafe" unicode="&#xf2a9;" 
+d="M0 0v48h368v-48h-368zM376 384c22 0 40 -18 40 -40v-80c0 -22 -18 -40 -40 -40h-40v-64c0 -44 -36 -80 -80 -80h-144c-44 0 -80 36 -80 80v224h293h11h40zM376 272v64h-40v-64h40z" />
+    <glyph glyph-name="ion-md-medical" unicode="&#xf327;" horiz-adv-x="408" 
+d="M300 192l108 -62l-48 -84l-108 63v-125h-96v125l-108 -63l-48 84l108 62l-108 62l48 84l108 -63v125h96v-125l108 63l48 -84z" />
+    <glyph glyph-name="ion-ios-log-in" unicode="&#xf1b1;" horiz-adv-x="414" 
+d="M368 368c25 0 46 -21 46 -46v-260c0 -25 -21 -46 -46 -46h-280c-25 0 -46 21 -46 46c0 8 6 14 14 14s14 -6 14 -14c0 -10 8 -18 18 -18h280c10 0 18 8 18 18v260c0 10 -8 18 -18 18h-280c-10 0 -18 -8 -18 -18c0 -8 -6 -14 -14 -14s-14 6 -14 14c0 25 21 46 46 46h280z
+M175 114l64 64h-225c-8 0 -14 6 -14 14s6 14 14 14h224l-65 64c-6 6 -6 14 0 20c3 3 6 4 10 4s7 -1 10 -4l84 -84c4 -4 7 -10 7 -15s-3 -11 -7 -15l-82 -82c-3 -3 -6 -4 -10 -4s-7 2 -10 4v0c-5 6 -5 15 0 20z" />
+    <glyph glyph-name="ion-ios-return-right" unicode="&#xf203;" horiz-adv-x="384" 
+d="M378 183c4 -4 6 -10 6 -16s-3 -11 -7 -15l-57 -58c-3 -3 -6 -4 -10 -4s-7 2 -10 4v0c-3 3 -4 6 -4 10s1 7 4 10l40 40h-262c-21 0 -40 8 -55 23s-23 34 -23 55v48c0 8 6 14 14 14s14 -6 14 -14v-48c0 -13 5 -25 15 -35s22 -15 35 -15h261l-41 40v0c-3 3 -4 6 -4 10
+s1 7 4 10s6 4 10 4s7 -1 10 -4z" />
+    <glyph glyph-name="ion-logo-bitbucket" unicode="&#xf193;" 
+d="M405 384c7 -1 12 -8 11 -16l-18 -113h-256l22 -127h88l16 96h125l-34 -212c-1 -7 -6 -12 -13 -12h-271c-4 0 -9 1 -12 4v0c-3 3 -5 8 -6 12l-57 352v2c0 8 7 14 14 14h389h2z" />
+    <glyph glyph-name="ion-ios-man" unicode="&#xf1bb;" horiz-adv-x="228" 
+d="M114 341v0v0c-25 0 -46 21 -46 46s21 45 46 45s45 -20 45 -45c0 -12 -4 -24 -13 -32c-8 -9 -20 -14 -32 -14zM79 -48c-14 0 -27 10 -27 30l1 278h-10v-105c0 -9 -3 -15 -6 -18c-4 -4 -9 -7 -15 -7s-12 3 -16 7c-3 3 -6 9 -6 18v122c0 14 5 27 14 38c10 12 24 18 39 18
+h122c15 0 29 -6 39 -18c9 -11 14 -24 14 -38v-122c0 -7 -2 -14 -7 -18c-4 -4 -9 -7 -15 -7s-12 3 -16 7c-5 4 -6 11 -6 18v105h-9v-278c0 -20 -14 -30 -28 -30c-13 0 -26 10 -27 30v0v141h-12v-141v0c-1 -20 -15 -30 -29 -30z" />
+    <glyph glyph-name="ion-md-lock" unicode="&#xf31d;" horiz-adv-x="320" 
+d="M280 262c22 0 40 -18 40 -40v-200c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v200c0 22 18 40 40 40h20v40c0 55 45 100 100 100s100 -45 100 -100v-40h20zM160 80c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40zM222 262v40c0 34 -28 62 -62 62
+s-62 -28 -62 -62v-40h124z" />
+    <glyph glyph-name="ion-ios-flask" unicode="&#xf431;" horiz-adv-x="385" 
+d="M374 94c8 -16 11 -32 11 -46c-1 -36 -27 -64 -63 -64h-257c-36 0 -64 28 -65 64c0 14 4 30 12 46l116 194v2v78c0 2 -2 4 -4 4c-7 0 -12 5 -12 12v4c0 7 5 12 12 12h137c7 0 12 -5 12 -12v-4c0 -7 -5 -12 -12 -12c-2 0 -4 -2 -4 -4v-78v-2zM98 160h189c6 0 10 7 7 12
+l-61 102c-3 5 -4 10 -4 16v78v4h-73v-4v-78c0 -6 -1 -11 -4 -16l-61 -102c-3 -5 1 -12 7 -12z" />
+    <glyph glyph-name="ion-md-remove-circle" unicode="&#xf367;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM315 171v42h-214v-42h214z" />
+    <glyph glyph-name="ion-md-code-download" unicode="&#xf2cc;" horiz-adv-x="448" 
+d="M203 288h42v-126l45 45l30 -31l-96 -96l-96 96l30 30l45 -44v126zM158 94l-30 -30l-128 128l128 128l30 -30l-98 -98zM290 94l98 98l-98 98l30 30l128 -128l-128 -128z" />
+    <glyph glyph-name="ion-ios-wine" unicode="&#xf26f;" horiz-adv-x="208" 
+d="M177 397c9 -25 31 -87 31 -125v-4v-1c0 -19 0 -45 -28 -74c-7 -7 -15 -13 -23 -20c-19 -15 -39 -31 -39 -50v-115c0 -1 1 -2 2 -2h57c8 0 15 -6 15 -14s-7 -14 -15 -14h-146c-8 0 -15 6 -15 14s7 14 15 14h57c1 0 2 1 2 2v115c0 19 -20 35 -39 50c-8 7 -17 13 -23 20
+c-28 29 -28 55 -28 74v1v4c0 38 22 100 31 125c2 6 7 9 13 9h120c6 0 11 -3 13 -9zM176 295v1c-5 26 -15 60 -22 81c0 1 -1 1 -2 1h-96c-1 0 -2 0 -2 -1c-7 -21 -17 -55 -22 -81v-1s1 -1 2 -1h140c1 0 2 1 2 1z" />
+    <glyph glyph-name="ion-ios-expand" unicode="&#xf178;" horiz-adv-x="384" 
+d="M48 356l117 -117c5 -5 5 -15 0 -20c-3 -3 -6 -4 -10 -4s-7 1 -10 4l-117 117v-78c0 -8 -6 -14 -14 -14v0c-8 0 -14 6 -14 14v112c0 8 6 14 14 14h112c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-78zM370 384c8 0 14 -6 14 -14v-112c0 -8 -6 -14 -14 -14v0
+c-8 0 -14 6 -14 14v78l-117 -117c-3 -3 -6 -4 -10 -4s-7 1 -10 4c-5 5 -5 15 0 20l117 117h-78c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h112zM155 169c4 0 7 -1 10 -4c5 -5 5 -15 0 -20l-117 -117h78c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-112c-8 0 -14 6 -14 14v112
+c0 8 6 14 14 14v0c8 0 14 -6 14 -14v-78l117 117c3 3 6 4 10 4zM370 140c8 0 14 -6 14 -14v-112c0 -8 -6 -14 -14 -14h-112c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h78l-117 117c-5 5 -5 15 0 20c3 3 6 4 10 4s7 -1 10 -4l117 -117v78c0 8 6 14 14 14v0z" />
+    <glyph glyph-name="ion-ios-list" unicode="&#xf454;" horiz-adv-x="384" 
+d="M0 192c0 15 13 28 28 28s28 -13 28 -28s-13 -28 -28 -28s-28 13 -28 28zM0 316c0 15 13 28 28 28s28 -13 28 -28s-13 -28 -28 -28s-28 13 -28 28zM0 68c0 15 13 28 28 28s28 -13 28 -28s-13 -28 -28 -28s-28 13 -28 28zM368 208c9 0 16 -7 16 -16s-7 -16 -16 -16h-240
+c-9 0 -16 7 -16 16s7 16 16 16h240zM368 84c9 0 16 -7 16 -16s-7 -16 -16 -16h-240c-9 0 -16 7 -16 16s7 16 16 16h240zM128 300c-9 0 -16 7 -16 16s7 16 16 16h240c9 0 16 -7 16 -16s-7 -16 -16 -16h-240z" />
+    <glyph glyph-name="ion-md-keypad" unicode="&#xf317;" horiz-adv-x="320" 
+d="M160 50c22 0 40 -19 40 -41s-18 -41 -40 -41s-40 19 -40 41s18 41 40 41zM40 416c22 0 41 -19 41 -41s-19 -40 -41 -40s-40 18 -40 40s18 41 40 41zM40 294c22 0 41 -19 41 -41s-19 -41 -41 -41s-40 19 -40 41s18 41 40 41zM40 172c22 0 41 -19 41 -41s-19 -41 -41 -41
+s-40 19 -40 41s18 41 40 41zM280 334c-22 0 -41 19 -41 41s19 41 41 41s40 -19 40 -41s-18 -41 -40 -41zM160 172c22 0 40 -19 40 -41s-18 -41 -40 -41s-40 19 -40 41s18 41 40 41zM280 172c22 0 40 -19 40 -41s-18 -41 -40 -41s-41 19 -41 41s19 41 41 41zM280 294
+c22 0 40 -19 40 -41s-18 -41 -40 -41s-41 19 -41 41s19 41 41 41zM160 294c22 0 40 -19 40 -41s-18 -41 -40 -41s-40 19 -40 41s18 41 40 41zM160 416c22 0 40 -19 40 -41s-18 -40 -40 -40s-40 18 -40 40s18 41 40 41z" />
+    <glyph glyph-name="ion-logo-octocat" unicode="&#xf243;" horiz-adv-x="448" 
+d="M146 160c8 0 16 -3 22 -12c6 -8 10 -20 10 -32s-4 -23 -10 -31s-14 -13 -22 -13c-9 0 -17 5 -23 13s-9 19 -9 31s3 24 9 32c6 9 14 12 23 12zM303 160c9 0 16 -3 22 -12c6 -8 9 -20 9 -32s-3 -23 -9 -31s-14 -13 -22 -13c-9 0 -17 5 -23 13s-10 19 -10 31s4 24 10 32
+c6 9 14 12 23 12zM414 276c24 -27 34 -66 34 -96c0 -24 0 -46 -6 -65s-13 -35 -21 -47c-9 -12 -20 -23 -32 -32c-13 -9 -24 -17 -34 -21s-22 -7 -36 -9c-13 -2 -24 -4 -31 -4c0 0 -28 -2 -64 -2s-64 2 -64 2c-7 0 -18 2 -31 4c-14 2 -26 5 -36 9s-22 12 -34 21
+c-13 9 -23 20 -32 32c-8 12 -15 28 -21 47c-5 19 -6 41 -6 65c0 31 10 70 34 96c0 0 -2 14 0 39s7 48 16 69c30 -3 67 -20 112 -51c15 4 36 6 62 6c28 0 48 -2 62 -6c20 14 40 25 58 33c19 8 33 13 41 15s13 3 13 3c9 -21 14 -44 16 -69s0 -39 0 -39v0zM348 42
+c28 13 42 40 42 81c0 24 -8 43 -26 59c-9 8 -20 13 -32 15s-31 1 -56 -1s-40 -4 -52 -4s-25 2 -42 3s-30 3 -39 3c-10 0 -20 1 -31 -2s-21 -8 -28 -14c-17 -15 -25 -35 -25 -59c0 -41 13 -68 41 -81c27 -13 69 -18 123 -18h2c54 0 95 5 123 18z" />
+    <glyph glyph-name="ion-ios-planet" unicode="&#xf1eb;" 
+d="M415 96c2 -6 2 -12 -1 -17c-3 -6 -11 -9 -22 -9c-37 0 -120 32 -208 81c-54 30 -103 64 -137 92c-38 32 -53 54 -45 67c4 7 11 10 23 10c16 0 48 -10 83 -24c3 -1 3 -5 1 -7l-11 -10c-1 -1 -2 -2 -4 -1c-21 8 -46 16 -57 19c-4 1 -6 -3 -4 -6c10 -13 25 -24 39 -35
+c7 -6 15 -11 23 -17c8 21 23 39 41 52c21 15 44 23 70 23c32 0 63 -11 86 -33c24 -23 37 -54 37 -87c0 -26 -9 -51 -25 -72c10 -4 19 -8 28 -11c15 -6 34 -11 44 -13c3 -1 6 3 4 6c-6 8 -26 24 -42 36c-2 1 -3 4 -2 6l5 13c1 3 4 4 7 2c24 -18 45 -35 55 -47
+c6 -7 10 -12 12 -18zM264 94c2 -1 4 -3 4 -5s-1 -4 -3 -5c-20 -13 -42 -20 -66 -20c-32 0 -63 12 -86 35s-36 53 -36 85c0 1 1 3 1 4c0 2 1 4 3 5c1 0 2 1 3 1s2 -1 3 -2c25 -17 54 -36 84 -53c33 -19 64 -32 93 -45z" />
+    <glyph glyph-name="ion-logo-usd" unicode="&#xf2b1;" horiz-adv-x="320" 
+d="M315 145c3 -10 5 -19 5 -29c0 -21 -5 -38 -14 -53s-20 -26 -35 -35s-31 -17 -50 -21c-10 -2 -19 -3 -29 -4v-35h-64v35c-9 1 -19 4 -28 6c-20 5 -36 12 -51 23s-26 24 -35 41c-8 16 -13 34 -14 55h69c0 -12 2 -24 7 -33c5 -10 12 -17 21 -23s20 -11 31 -14v120
+c-8 2 -18 4 -27 6c-17 4 -30 9 -41 16s-20 15 -27 23s-11 17 -14 26s-4 18 -4 28c0 18 4 34 12 48s19 25 33 34s29 16 46 20c7 2 15 3 22 4v33h64v-33c9 -1 16 -4 24 -6c18 -5 34 -12 48 -22s25 -22 33 -37c7 -13 11 -28 12 -46h-69c-3 21 -12 37 -26 46c-7 4 -13 8 -22 10
+v-106c9 -2 16 -4 25 -6c12 -3 22 -6 27 -7c13 -4 23 -9 33 -15c10 -7 18 -14 24 -22s11 -17 14 -27zM128 238v92c-7 -2 -15 -4 -21 -7c-7 -4 -12 -9 -17 -15s-7 -14 -7 -23c0 -13 4 -24 13 -31c8 -7 20 -12 32 -16zM247 89c3 7 4 13 4 20c0 14 -3 24 -10 31s-15 11 -23 14
+s-16 5 -26 8v-107c6 1 10 2 14 3c11 3 20 8 27 13s11 11 14 18z" />
+    <glyph glyph-name="ion-ios-bulb" unicode="&#xf138;" horiz-adv-x="296" 
+d="M296 259c0 -31 -13 -56 -30 -80v0c-11 -15 -22 -18 -32 -35c-14 -24 -17 -41 -18 -56c0 -8 -8 -15 -16 -15h-10c-2 0 -4 2 -4 4v94c0 5 1 11 3 15l22 42c3 7 -1 15 -9 15v0c-4 0 -7 -3 -9 -6l-26 -51c-2 -4 -3 -9 -3 -14v-95c0 -2 -2 -4 -4 -4h-24c-2 0 -4 2 -4 4v95
+c0 5 -1 10 -3 14l-26 51c-2 4 -5 6 -9 6v0c-8 0 -13 -8 -9 -15l21 -42c2 -4 3 -9 3 -14v-95c0 -2 -2 -4 -4 -4h-9c-8 0 -16 6 -16 15c-1 15 -4 31 -19 56c-10 17 -20 20 -31 35v0c-17 24 -30 49 -30 80c0 78 70 141 148 141s148 -63 148 -141zM130 -16c-8 0 -14 6 -14 14v0
+c0 8 6 14 14 14h36c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-36zM110 28c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h76c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-76z" />
+    <glyph glyph-name="ion-md-map" unicode="&#xf325;" horiz-adv-x="384" 
+d="M373 384c6 0 11 -5 11 -11v-322c0 -5 -3 -9 -7 -10l-121 -41l-128 45s-105 -41 -108 -42s-7 -3 -9 -3c-6 0 -11 5 -11 11v322c0 5 3 9 7 10l121 41l128 -45s103 40 108 42s7 3 9 3zM256 43v254l-128 44v-254z" />
+    <glyph glyph-name="ion-md-time" unicode="&#xf394;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166zM218 296v-109l94 -56l-16 -25l-109 65v125h31z" />
+    <glyph glyph-name="ion-logo-ionitron" unicode="&#xf151;" horiz-adv-x="426" 
+d="M425 179c3 -34 -4 -63 -19 -65h-7c-18 -79 -87 -141 -172 -146c-71 -4 -134 33 -169 89l-16 -3c-17 -2 -36 26 -41 64s5 71 22 73l12 1c17 80 86 142 172 147c77 4 145 -38 177 -103c11 -22 16 -46 17 -72c4 24 -2 57 -8 72c21 2 29 -23 32 -57zM47 184
+c9 -13 18 -34 21 -58c3 -25 1 -46 -5 -61c9 10 17 36 13 64c-4 27 -18 47 -29 55zM231 68c8 0 15 8 15 16s-9 14 -17 14c-9 0 -14 -8 -14 -16s8 -14 16 -14zM312 72c8 0 15 9 15 17s-9 14 -17 14c-9 0 -14 -8 -14 -16s8 -15 16 -15zM123 378h-1c-1 1 0 3 0 4c0 3 2 6 5 9
+s8 6 14 9c1 0 1 1 2 1c1 1 3 1 4 1c4 6 9 12 17 14c7 1 14 0 19 -4h2h2c6 0 12 1 16 0c3 -1 6 -2 8 -3c1 0 2 1 3 1c3 0 6 -3 6 -6s-3 -6 -6 -6v-1c-1 -1 -1 -2 -2 -3s-3 -2 -4 -3s-2 -1 -3 -2l-8 -5h-1l1 2l6 3c1 1 3 2 4 3l3 3s1 2 2 3v0c-2 1 -5 3 -5 6c0 1 0 2 1 3
+c-2 1 -4 1 -6 1h-11v0h-4h-1c-7 -1 -14 -2 -22 -4c-1 0 -2 -1 -3 -1c14 3 24 3 29 2c2 -3 3 -6 4 -10c2 -12 -3 -23 -14 -28l4 -24l-13 -2l-4 24c-12 0 -21 9 -23 21c-1 4 -1 7 0 10v0c-1 0 -2 -1 -3 -1c-4 -2 -8 -5 -11 -7c-3 -3 -5 -6 -5 -8v-2c0 0 0 -1 1 -1
+c2 -2 5 -3 9 -4c3 -1 7 -1 11 -1h1l2 -1h-3c-4 0 -9 1 -12 1c-4 1 -7 0 -9 2c-1 1 -2 2 -2 3v0v1v0v0v0z" />
+    <glyph glyph-name="ion-ios-grid" unicode="&#xf18c;" horiz-adv-x="384" 
+d="M142 140c-1 0 -2 1 -2 2v100c0 1 1 2 2 2h100c1 0 2 -1 2 -2v-100c0 -1 -1 -2 -2 -2h-100zM0 352c0 18 14 32 32 32h320c18 0 32 -14 32 -32v-320c0 -18 -14 -32 -32 -32h-320c-18 0 -32 14 -32 32v320zM330 244c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-56c-1 0 -2 1 -2 2
+v56c0 8 -6 14 -14 14v0c-8 0 -14 -6 -14 -14v-56c0 -1 -1 -2 -2 -2h-100c-1 0 -2 1 -2 2v56c0 8 -6 14 -14 14v0c-8 0 -14 -6 -14 -14v-56c0 -1 -1 -2 -2 -2h-56c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h56c1 0 2 -1 2 -2v-100c0 -1 -1 -2 -2 -2h-56c-8 0 -14 -6 -14 -14
+v0c0 -8 6 -14 14 -14h56c1 0 2 -1 2 -2v-56c0 -8 6 -14 14 -14v0c8 0 14 6 14 14v56c0 1 1 2 2 2h100c1 0 2 -1 2 -2v-56c0 -8 6 -14 14 -14v0c8 0 14 6 14 14v56c0 1 1 2 2 2h56c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-56c-1 0 -2 1 -2 2v100c0 1 1 2 2 2h56z" />
+    <glyph glyph-name="ion-logo-model-s" unicode="&#xf153;" horiz-adv-x="448" 
+d="M412 240c9 -6 23 -16 32 -26c0 0 4 -28 4 -62c0 -48 -6 -93 -6 -93c-2 0 -3 -1 -5 -1c0 -1 -1 -13 -2 -21c0 -2 -1 -5 -6 -5h-64c-2 0 -5 1 -5 3l-1 17h-12c-25 0 -15 8 -27 8c-11 0 -55 -3 -96 -3s-85 3 -96 3c-12 0 -2 -8 -27 -8h-11l-1 -17c0 -2 -3 -3 -5 -3h-65
+c-5 0 -6 3 -6 5c-1 8 -2 20 -2 21c-2 0 -3 1 -5 1c0 0 -6 45 -6 93c0 33 4 62 4 62c9 10 23 19 32 25c3 2 3 7 -1 8l-5 1v0c-7 0 -23 2 -26 5s-4 6 -4 9s2 8 5 11s15 5 23 6s9 0 11 -1s3 -7 3 -12c0 -3 3 -6 6 -7c2 0 2 1 3 3c5 13 12 34 21 51c12 21 23 27 28 29s9 3 43 6
+c34 4 64 4 81 4s46 0 80 -4s38 -4 43 -6s17 -8 29 -29c9 -16 14 -36 19 -49c1 -3 5 -5 8 -4h1c1 0 2 2 2 3c0 6 1 14 3 15s2 2 10 1s21 -3 24 -6s5 -8 5 -11s-1 -6 -4 -9s-19 -5 -26 -5v0l-5 -1c-4 -1 -4 -5 -1 -7zM91 293c-4 -9 -10 -31 -9 -33s-1 -4 12 -3s91 3 130 3
+s117 -2 130 -3s11 1 12 3s-6 24 -10 33c-2 5 -6 11 -10 17c-5 7 -12 12 -20 13c-17 3 -53 7 -102 7s-85 -4 -102 -7c-8 -1 -16 -6 -21 -13c-4 -6 -8 -12 -10 -17zM100 177c6 0 14 2 20 3c4 1 4 5 1 7c-7 5 -20 13 -37 18c-26 7 -41 7 -55 7c-2 0 -4 -1 -4 -3
+c0 -4 -1 -11 1 -19c2 -11 26 -15 28 -15s6 3 11 3s25 -1 35 -1zM310 104c13 2 28 16 18 30c-6 8 -21 14 -49 18c-30 4 -48 4 -55 4s-26 0 -56 -4c-28 -4 -41 -10 -49 -18c-11 -13 6 -28 19 -30s58 -2 86 -2s73 0 86 2zM422 189c2 8 0 16 0 20c0 2 -1 3 -3 3
+c-14 0 -30 -1 -56 -8c-17 -5 -30 -12 -37 -17c-3 -2 -2 -6 2 -7c6 -1 14 -3 20 -3c10 0 30 1 35 1s9 -4 11 -4s26 4 28 15z" />
+    <glyph glyph-name="ion-ios-hand" unicode="&#xf190;" horiz-adv-x="320" 
+d="M299 331c12 0 21 -10 21 -21v-233c0 -55 -32 -93 -78 -93h-58s-40 11 -40 11c-43 25 -94 96 -113 118c-20 22 -39 41 -27 53c18 17 40 7 66 -16l28 -24v219c0 11 9 20 21 20s21 -9 21 -20v-127c0 -5 4 -9 9 -9s9 4 9 9v161c0 11 9 21 21 21s21 -10 21 -21v-144
+c0 -5 4 -8 9 -8s9 3 9 8v127c0 11 9 21 21 21s21 -10 21 -21v-161c0 -5 4 -9 9 -9s9 4 9 9v109c0 11 9 21 21 21z" />
+    <glyph glyph-name="ion-md-brush" unicode="&#xf2a4;" horiz-adv-x="448" 
+d="M118 146c39 0 71 -32 71 -70c0 -51 -43 -92 -95 -92c-36 0 -72 18 -94 46c20 0 47 16 47 46c0 38 32 70 71 70zM441 362c9 -9 9 -23 0 -32l-211 -207l-65 63l211 207c9 9 25 9 34 0z" />
+    <glyph glyph-name="ion-ios-add-circle-outline" unicode="&#xf100;" 
+d="M298 208c9 0 16 -7 16 -16s-7 -16 -16 -16h-74v-74c0 -9 -7 -16 -16 -16s-16 6 -16 16v74h-74s-16 6 -16 16s7 16 16 16h74v74c0 9 7 16 16 16s16 -7 16 -16v-74h74zM208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127s79 -53 127 -53s93 19 127 53
+s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208z" />
+    <glyph glyph-name="ion-ios-mail-unread" unicode="&#xf145;" 
+d="M320 296c0 27 21 48 48 48s48 -21 48 -48s-21 -48 -48 -48s-48 21 -48 48zM368 230c19 0 36 7 48 20v-178c0 -18 -14 -32 -32 -32h-352c-18 0 -32 14 -32 32v219c0 2 2 3 3 2l108 -110c1 -1 1 -2 0 -3l-75 -80c-5 -5 -5 -13 0 -18c2 -2 6 -4 9 -4s7 2 9 4l75 80
+c1 1 2 1 3 0l18 -18c16 -16 36 -25 58 -25s43 8 58 24l18 19c1 1 2 1 3 0l75 -80c2 -2 6 -4 9 -4s7 2 9 4c5 5 5 13 0 18l-75 80c-1 1 -1 2 0 3l47 48c5 -1 11 -1 16 -1zM302 296c0 -22 10 -41 26 -53l-81 -82c-10 -11 -24 -16 -39 -16s-29 5 -39 16l-157 160c5 4 12 7 20 7
+h278c-5 -10 -8 -20 -8 -32z" />
+    <glyph glyph-name="ion-md-desktop" unicode="&#xf2df;" horiz-adv-x="448" 
+d="M405 416c23 0 43 -20 43 -43v-282c0 -23 -20 -43 -43 -43h-138l42 -48v-32h-170v32l42 48h-138c-23 0 -43 20 -43 43v282c0 23 20 43 43 43h362zM405 128v245h-362v-245h362z" />
+    <glyph glyph-name="ion-ios-briefcase" unicode="&#xf3ee;" 
+d="M32 0c-18 0 -32 14 -32 32v192h416v-192c0 -18 -14 -32 -32 -32h-352zM384 320c18 0 32 -14 32 -32v-40h-416v40c0 18 14 32 32 32h8v8c0 4 4 8 8 8h32c4 0 8 -4 8 -8v-8h28v32c0 18 14 32 32 32h120c18 0 32 -14 32 -32v-32h28v8c0 4 4 8 8 8h32c4 0 8 -4 8 -8v-8h8z
+M272 320v28c0 4 -4 8 -8 8h-112c-4 0 -8 -4 -8 -8v-28h128z" />
+    <glyph glyph-name="ion-ios-cloud-circle" unicode="&#xf152;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM291 128c25 0 45 21 45 47c0 23 -16 42 -38 46c-4 38 -34 67 -72 67c-26 0 -49 -14 -62 -34c-4 2 -10 4 -15 4c-20 0 -36 -17 -36 -37c-20 -6 -33 -25 -33 -46c0 -26 20 -47 45 -47
+h166z" />
+    <glyph glyph-name="ion-md-trophy" unicode="&#xf39b;" 
+d="M344 343h72c0 -62 -13 -108 -21 -127s-34 -52 -59 -70c-24 -17 -95 -53 -104 -58v-28c3 -9 17 -28 78 -28h26v-48h-256v48h21c60 0 78 18 83 28v28c-9 4 -74 35 -104 58c-32 25 -48 46 -59 70s-21 59 -21 127h71c-1 27 0 56 0 57h273c0 -1 1 -30 0 -57zM62 236
+c10 -20 24 -37 41 -51c-11 26 -19 58 -26 97c-1 5 -1 10 -2 16h-29c2 -24 7 -44 16 -62zM354 236c9 18 14 38 16 62h-29c-1 -6 -1 -11 -2 -16c-7 -40 -15 -71 -26 -97c18 14 31 31 41 51z" />
+    <glyph glyph-name="ion-md-apps" unicode="&#xf27a;" horiz-adv-x="320" 
+d="M0 272v80h80v-80h-80zM120 32v80h80v-80h-80zM0 32v80h80v-80h-80zM0 152v80h80v-80h-80zM120 152v80h80v-80h-80zM240 352h80v-80h-80v80zM120 272v80h80v-80h-80zM240 152v80h80v-80h-80zM240 32v80h80v-80h-80z" />
+    <glyph glyph-name="ion-md-mail-open" unicode="&#xf321;" horiz-adv-x="448" 
+d="M448 246v-203c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v203c0 15 8 30 20 37l204 101l204 -101c13 -7 20 -22 20 -37zM224 144l171 112l-171 85l-171 -85z" />
+    <glyph glyph-name="ion-md-cart" unicode="&#xf2b4;" 
+d="M122 70c23 0 41 -18 41 -41s-18 -42 -41 -42s-42 19 -42 42s19 41 42 41zM0 397h68l19 -42h308c11 0 21 -9 21 -20c0 -4 -1 -8 -2 -10l-75 -129c-7 -14 -20 -22 -36 -22h-155l-21 -32s-2 -5 -2 -6c0 -3 2 -5 5 -5h238v-40h-243c-26 0 -45 14 -45 42c0 7 2 15 5 20l31 51
+l-74 151h-42v42zM326 70c23 0 42 -18 42 -41s-19 -42 -42 -42s-41 19 -41 42s18 41 41 41z" />
+    <glyph glyph-name="ion-md-archive" unicode="&#xf27c;" 
+d="M406 348c7 -7 10 -17 10 -29v-289c0 -25 -21 -46 -46 -46h-324c-25 0 -46 21 -46 46v289c0 12 3 22 10 29l33 39c6 8 16 13 26 13h278c10 0 20 -5 26 -13zM208 65l127 127h-81v46h-92v-46h-81zM49 354h317l-22 23h-277z" />
+    <glyph glyph-name="ion-logo-whatsapp" unicode="&#xf2c5;" horiz-adv-x="448" 
+d="M228 416c121 0 220 -97 220 -218s-99 -218 -220 -218c-39 0 -74 10 -106 27l-122 -39l40 117c-20 33 -32 72 -32 113c0 121 99 218 220 218zM337 115c5 13 6 24 5 26s-5 4 -11 7s-32 18 -37 20s-9 2 -13 -3s-16 -17 -19 -21s-6 -4 -12 -1s-23 10 -44 30
+c-16 15 -27 33 -30 39s0 9 3 12c3 2 6 6 9 9s4 5 6 9s1 7 0 10s-12 31 -16 42s-10 11 -13 11h-10s-10 -2 -15 -7s-21 -19 -22 -46s18 -54 21 -58s37 -64 93 -88s57 -17 67 -16s33 12 38 25z" />
+    <glyph glyph-name="ion-md-paw" unicode="&#xf342;" 
+d="M412 282c7 -15 5 -34 -3 -52c-11 -23 -34 -38 -56 -38c-6 0 -11 1 -16 3c-24 9 -32 39 -18 70c11 25 33 42 55 42c5 0 9 -1 14 -3c10 -4 19 -12 24 -22zM97 265c14 -31 6 -61 -18 -70c-5 -2 -11 -3 -16 -3c-22 0 -45 15 -56 38c-9 17 -9 37 -2 52c5 10 13 18 23 22
+c5 2 9 3 14 3c22 0 44 -17 55 -42zM146 269c-30 1 -57 28 -61 61c-3 20 4 40 17 54c9 9 20 15 33 16h7c29 -1 50 -26 54 -60c3 -22 -1 -43 -14 -57c-8 -8 -18 -13 -30 -14h-6zM208 224c69 0 139 -97 139 -176c0 -24 -12 -43 -24 -51c-14 -10 -24 -13 -45 -13
+c-13 0 -22 2 -28 6c-12 7 -26 10 -40 10h-4c-14 0 -28 -3 -40 -10c-6 -4 -15 -6 -28 -6c-21 0 -31 3 -45 13c-12 8 -24 27 -24 51c0 79 70 176 139 176zM265 269c-12 1 -23 6 -31 14c-13 14 -17 35 -14 57c4 34 26 59 55 60h6c13 -1 24 -7 33 -16c13 -13 20 -34 17 -54
+c-4 -34 -30 -60 -60 -61h-6z" />
+    <glyph glyph-name="ion-md-tablet-landscape" unicode="&#xf38c;" horiz-adv-x="448" 
+d="M0 328c0 13 11 24 24 24h400c13 0 24 -11 24 -24v-272c0 -13 -11 -24 -24 -24h-400c-13 0 -24 11 -24 24v272zM384 320h-336v-256h336v256zM430 192c0 8 -6 14 -14 14s-14 -6 -14 -14s6 -14 14 -14s14 6 14 14z" />
+    <glyph glyph-name="ion-md-mail" unicode="&#xf322;" horiz-adv-x="448" 
+d="M405 368c23 0 43 -20 43 -43v-266c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v266c0 23 20 43 43 43h362zM400 277v43l-176 -117l-176 117v-43l176 -117z" />
+    <glyph glyph-name="ion-ios-git-compare" unicode="&#xf185;" horiz-adv-x="448" 
+d="M202 120l59 -59c4 -4 7 -10 7 -16s-3 -11 -7 -15l-57 -58c-3 -3 -6 -4 -10 -4s-7 2 -10 4v0c-5 6 -5 15 0 20l40 40h-90c-34 0 -58 16 -70 45c-9 23 -9 50 -9 65v136c-15 3 -28 11 -38 22c-11 13 -17 29 -17 46c0 39 31 70 70 70s70 -31 70 -70c0 -17 -6 -34 -18 -47
+c-10 -11 -24 -19 -39 -22v-135c0 -17 1 -42 9 -59c8 -16 22 -23 42 -23h89l-41 40v0c-3 3 -4 6 -4 10s1 7 4 10s6 4 10 4s7 -1 10 -4zM70 304c23 0 42 19 42 42s-19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42zM393 106c14 -3 28 -11 38 -22c11 -13 17 -29 17 -46
+c0 -39 -31 -70 -70 -70s-70 31 -70 70c0 17 6 34 18 47c10 11 24 19 39 22v135c0 17 -1 41 -9 58c-8 16 -22 24 -42 24h-89l41 -40v0c3 -3 4 -6 4 -10s-1 -7 -4 -10s-6 -4 -10 -4s-7 1 -10 4l-59 59c-4 4 -7 10 -7 16s3 11 7 15l57 58c3 3 6 4 10 4s7 -2 10 -4v0
+c5 -6 5 -15 0 -20l-40 -40h90c34 0 58 -16 70 -45c9 -23 9 -50 9 -65v-136zM378 -4c23 0 42 19 42 42s-19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42z" />
+    <glyph glyph-name="ion-ios-radio" unicode="&#xf1f9;" horiz-adv-x="448" 
+d="M28 192c0 -51 19 -98 54 -136c3 -3 4 -6 4 -10s-1 -7 -4 -10c-3 -2 -6 -4 -10 -4s-7 1 -10 4c-40 43 -62 98 -62 156c0 59 22 113 62 156c3 3 6 4 10 4s7 -1 10 -4c6 -6 5 -14 0 -20c-35 -38 -54 -85 -54 -136zM386 348c40 -43 62 -98 62 -156s-22 -112 -62 -155
+c-3 -3 -6 -5 -10 -5s-8 1 -10 4c-6 6 -5 14 0 20c35 38 54 85 54 136s-19 98 -54 136c-3 3 -4 6 -4 10s1 7 4 10c3 2 6 4 10 4v0c4 0 7 -1 10 -4zM127 100v0c3 -3 4 -6 4 -10s-1 -6 -4 -9s-6 -5 -10 -5s-7 2 -10 5v0v0c-29 30 -45 68 -45 110c0 43 17 83 47 113
+c3 3 6 4 10 4v0c4 0 7 -2 10 -5c5 -6 6 -14 0 -19c-25 -24 -39 -58 -39 -93c0 -34 13 -67 37 -91v0zM339 304c30 -30 47 -70 47 -112s-16 -81 -45 -111c-2 -3 -6 -5 -10 -5s-7 2 -10 5c-5 5 -5 14 0 19c24 24 37 58 37 92c0 35 -14 68 -39 92v0v0c-6 6 -5 14 0 19
+c3 3 6 5 10 5v0c4 0 7 -1 10 -4zM175 265c5 -6 5 -15 0 -20c-14 -14 -23 -33 -23 -53s8 -39 22 -53c3 -3 4 -6 4 -10s-1 -7 -4 -10s-6 -4 -10 -4s-7 1 -10 4c-19 19 -30 45 -30 72c0 28 11 54 31 74c3 3 6 4 10 4v0c4 0 7 -1 10 -4zM294 265c20 -20 30 -46 30 -74
+c0 -27 -10 -53 -29 -72c-3 -3 -6 -4 -10 -4s-7 1 -10 4s-4 6 -4 10s1 7 4 10c14 14 21 32 21 52s-8 40 -22 54c-6 6 -5 15 0 20c3 3 6 4 10 4v0c4 0 7 -1 10 -4zM224 230c21 0 38 -17 38 -38s-17 -38 -38 -38s-38 17 -38 38s17 38 38 38z" />
+    <glyph glyph-name="ion-md-rose" unicode="&#xf372;" 
+d="M213 233c-32 41 -61 76 -95 93c-14 7 -24 11 -30 14c86 25 120 76 120 76s35 -52 119 -78c-2 -1 -15 -3 -23 -8c-43 -25 -67 -56 -91 -97zM198 195c60 -92 109 -130 145 -158c-27 -41 -77 -69 -135 -69c-86 0 -156 62 -156 138c0 41 2 136 -52 215c83 0 138 -34 198 -126
+zM416 321c-69 -101 -52 -174 -52 -215c0 -13 -2 -25 -6 -37c-8 6 -16 14 -27 24c-22 22 -57 58 -96 110c21 42 53 77 96 103c30 18 85 15 85 15z" />
+    <glyph glyph-name="ion-md-build" unicode="&#xf2a6;" horiz-adv-x="448" 
+d="M442 50c8 -6 8 -21 -2 -29l-47 -47c-8 -8 -20 -8 -28 0l-185 186c-47 -18 -101 -8 -140 31c-41 41 -51 102 -27 151l90 -88l61 62l-88 88c49 22 110 14 151 -27c39 -39 48 -94 30 -141z" />
+    <glyph glyph-name="ion-ios-chatboxes" unicode="&#xf3fa;" 
+d="M378 278c21 0 38 -17 38 -38v-155c0 -21 -21 -38 -42 -38h-1c-6 0 -10 -2 -10 -8v-50c0 -5 -5 -6 -9 -3l-63 58c-2 2 -5 3 -8 3h-127c-21 0 -38 17 -38 38v155c0 21 17 38 38 38h222zM126 302c-18 0 -32 -14 -32 -32v-100h-61c-18 0 -33 14 -33 32v165c0 18 15 33 33 33
+h238c18 0 33 -15 33 -33v-65h-178z" />
+    <glyph glyph-name="ion-ios-transgender" unicode="&#xf259;" 
+d="M402 280c-8 0 -13 6 -13 13v60l-73 -72c34 -31 53 -74 53 -120c0 -31 -9 -60 -25 -86l20 -19l29 29c2 3 5 4 9 4s7 -1 10 -4c5 -5 5 -14 0 -19l-29 -30l29 -29c5 -5 5 -14 0 -19c-2 -3 -6 -4 -10 -4s-6 1 -9 4l-29 29l-30 -29c-2 -3 -5 -4 -9 -4s-7 1 -10 4
+c-5 5 -5 14 0 19l29 29l-16 17c-31 -34 -74 -53 -120 -53c-43 0 -84 17 -114 47s-47 71 -47 114c0 46 19 89 53 120l-17 16l-30 -30c-2 -3 -5 -4 -9 -4s-7 1 -10 4c-5 5 -5 14 0 19l30 30l-37 37v-60c0 -8 -5 -13 -13 -13s-14 5 -14 13v93c0 8 6 14 14 14h93
+c8 0 14 -6 14 -14s-6 -13 -14 -13h-60l37 -37l28 28c2 3 6 4 10 4s6 -1 9 -4c5 -5 5 -14 0 -19l-28 -29l19 -19c26 16 55 25 86 25s60 -9 86 -25l75 76h-60c-8 0 -13 5 -13 13s5 14 13 14h93c8 0 14 -6 14 -14v-93c0 -8 -6 -13 -14 -13zM342 161c0 36 -14 70 -39 95
+s-59 39 -95 39s-70 -14 -95 -39s-39 -59 -39 -95s14 -70 39 -95s59 -39 95 -39s70 14 95 39s39 59 39 95z" />
+    <glyph glyph-name="ion-ios-train" unicode="&#xf258;" horiz-adv-x="288" 
+d="M282 -8c6 -5 6 -14 0 -20c-3 -3 -6 -4 -10 -4s-7 1 -10 4l-14 14h-208l-14 -14c-3 -3 -6 -4 -10 -4s-7 1 -10 4c-5 6 -6 15 0 20l50 48c6 5 15 6 20 0s6 -15 0 -20l-6 -6h148l-6 6c-6 5 -5 14 0 20s14 5 20 0zM225 400c35 0 63 -28 63 -63v-236c0 -35 -144 -65 -144 -65
+s-144 30 -144 65v236c0 35 30 63 65 63h15c0 9 7 16 16 16h96c9 0 16 -7 16 -16h17zM144 96c26 0 48 22 48 48s-22 48 -48 48s-48 -22 -48 -48s22 -48 48 -48zM240 256v64c0 9 -7 16 -16 16h-160c-9 0 -16 -7 -16 -16v-64c0 -9 7 -16 16 -16h160c9 0 16 7 16 16zM114 144
+c0 17 13 30 30 30s30 -13 30 -30s-13 -30 -30 -30s-30 13 -30 30z" />
+    <glyph glyph-name="ion-md-checkmark-circle-outline" unicode="&#xf2ba;" 
+d="M123 232l64 -64l179 178l29 -29l-208 -208l-93 93zM374 192h42c0 -114 -94 -208 -208 -208s-208 94 -208 208s94 208 208 208c28 0 54 -6 78 -16l-32 -32c-15 4 -30 6 -46 6c-92 0 -166 -74 -166 -166s74 -166 166 -166s166 74 166 166z" />
+    <glyph glyph-name="ion-md-umbrella" unicode="&#xf39c;" 
+d="M362 204c-17 0 -32 -11 -37 -26h-20c-6 14 -21 26 -38 26c-18 0 -40 -6 -42 -32v-119c0 -15 -1 -37 -14 -50c-10 -10 -23 -19 -43 -19c-36 0 -60 26 -60 61v21h43v-21c0 -14 10 -16 17 -16c14 0 13 15 13 24v118c-1 18 -16 33 -34 33c-16 0 -29 -11 -33 -26h-20
+c-5 15 -19 26 -36 26c-13 0 -29 -11 -36 -26h-22v4c0 106 77 193 181 203c3 9 11 15 21 15s19 -6 22 -15c50 -5 97 -29 133 -66c38 -39 59 -91 59 -141h-20c-7 15 -22 26 -34 26z" />
+    <glyph glyph-name="ion-md-trending-down" unicode="&#xf399;" horiz-adv-x="448" 
+d="M448 51h-134l51 51l-109 110l-90 -90l-166 166l32 32l134 -134l90 89l141 -141l51 52v-135z" />
+    <glyph glyph-name="ion-md-git-branch" unicode="&#xf2fa;" horiz-adv-x="320" 
+d="M320 288c0 -24 -13 -44 -32 -55v-9c0 -42 -19 -76 -55 -99c-23 -15 -53 -25 -92 -31c-20 -3 -28 -14 -30 -19c10 -11 17 -26 17 -43c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v210c-19 11 -32 31 -32 55c0 35 29 64 64 64s64 -29 64 -64
+c0 -24 -13 -44 -32 -55v-150c10 5 21 9 35 11c29 4 53 11 68 21c18 11 25 25 25 45v9c-19 11 -32 31 -32 55c0 35 29 64 64 64s64 -29 64 -64zM64 392c-22 0 -40 -18 -40 -40s18 -40 40 -40s40 18 40 40s-18 40 -40 40zM64 -8c22 0 40 18 40 40s-18 40 -40 40
+s-40 -18 -40 -40s18 -40 40 -40zM256 248c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40z" />
+    <glyph glyph-name="ion-ios-jet" unicode="&#xf1a5;" 
+d="M416 400c0 0 -1 -19 -27 -53c-12 -15 -121 -162 -121 -162l8 -160l-36 -41l-52 102l-10 -8l-4 -82l-33 -6l-48 60l-53 -26l26 53l-60 48l6 33l82 4l8 10l-102 52l41 36l160 -8s146 109 162 121c33 26 53 27 53 27z" />
+    <glyph glyph-name="ion-ios-school" unicode="&#xf209;" horiz-adv-x="448" 
+d="M64 178c0 6 7 10 12 7l132 -75c2 -2 4 -4 4 -7v-94c0 -6 -7 -10 -12 -7l-132 76c-2 2 -4 4 -4 7v93zM248 2c-5 -3 -12 1 -12 7v94c0 3 2 6 4 7l132 76c5 3 12 -1 12 -7v-94c0 -3 -2 -6 -4 -7zM216 383c5 3 11 3 16 0l212 -129c2 -2 4 -5 4 -8v-171c0 -7 -6 -10 -10 -10v0
+c-7 0 -11 3 -11 10v153c0 6 -2 10 -7 7l-188 -108c-5 -3 -11 -3 -16 0l-212 118c-5 3 -5 11 0 14z" />
+    <glyph glyph-name="ion-ios-magnet" unicode="&#xf1b4;" 
+d="M414 186c2 -2 2 -6 0 -8l-57 -58c-2 -2 -7 -2 -9 0l-163 163c-13 13 -28 20 -42 22s-26 -2 -36 -12s-15 -23 -13 -37s10 -28 23 -41l163 -163c2 -2 2 -7 0 -9l-58 -57c-1 -1 -2 -2 -4 -2s-3 1 -4 2l-173 172c-27 27 -41 62 -41 100s14 74 41 101s63 41 101 41
+s73 -14 100 -41zM228 68l-30 -30l20 -20l30 30zM352 152l30 30l-20 20l-30 -30z" />
+    <glyph glyph-name="ion-ios-flash" unicode="&#xf17e;" horiz-adv-x="256" 
+d="M248 224c6 0 11 -8 7 -14l-184 -240c-3 -4 -8 -1 -7 3l52 187h-108c-6 0 -10 7 -6 13l183 241c3 4 8 1 7 -3l-52 -187h108z" />
+    <glyph glyph-name="ion-logo-twitch" unicode="&#xf2af;" 
+d="M32 416h384v-272l-112 -112h-80l-64 -64h-64v64h-96v304zM368 160v208h-304v-272h80v-64l64 64h96zM272 176v129h48v-129h-48zM160 176v129h48v-129h-48z" />
+    <glyph glyph-name="ion-md-disc" unicode="&#xf2e0;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 98c52 0 94 42 94 94s-42 94 -94 94s-94 -42 -94 -94s42 -94 94 -94zM208 213c11 0 21 -10 21 -21s-10 -21 -21 -21s-21 10 -21 21s10 21 21 21z" />
+    <glyph glyph-name="ion-md-cube" unicode="&#xf2dd;" horiz-adv-x="448" 
+d="M435 280c7 0 13 -6 13 -12v-183c0 -9 -6 -19 -14 -23v0l-175 -92v-1c-2 -1 -4 -1 -6 -1c-7 0 -13 6 -13 12v185c0 9 4 17 12 22h1l177 92c2 1 3 1 5 1zM422 330c0 0 8 -4 8 -10c0 -8 -8 -11 -8 -11l-185 -98c-4 -2 -8 -3 -13 -3c-4 0 -9 1 -13 3l-185 97s-8 5 -8 12
+c0 6 8 10 8 10l182 81s10 5 16 5s17 -5 17 -5zM196 187c8 -5 12 -13 12 -22v-185c0 -6 -6 -12 -13 -12c-2 0 -4 1 -6 2l-175 92v1c-8 4 -14 13 -14 22v183c0 6 6 12 13 12c2 0 3 0 5 -1z" />
+    <glyph glyph-name="ion-md-log-in" unicode="&#xf31e;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208c-43 0 -84 13 -119 38c-34 24 -60 57 -75 96l-4 10h46l2 -5c8 -18 19 -34 33 -48c31 -31 73 -48 117 -48s86 17 117 48s48 73 48 117s-17 86 -48 117s-73 48 -117 48s-86 -17 -117 -48c-14 -14 -25 -30 -33 -48l-2 -5
+h-46l4 10c15 39 41 72 75 96c35 24 76 38 119 38zM0 171v42h190l-45 45l31 30l96 -96l-96 -96l-30 30l44 45h-190z" />
+    <glyph glyph-name="ion-md-happy" unicode="&#xf305;" 
+d="M208 400c114 0 208 -94 208 -208s-93 -208 -208 -208s-208 94 -208 208s93 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166zM281 213c-18 0 -31 13 -31 31s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31zM135 213
+c-18 0 -31 13 -31 31s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31zM208 78c-49 0 -89 29 -106 72h212c-17 -43 -57 -72 -106 -72z" />
+    <glyph glyph-name="ion-logo-npm" unicode="&#xf195;" horiz-adv-x="512" 
+d="M228 178v57h28v-57h-28zM0 292h512v-171h-256v-29h-114v29h-142v171zM142 149v114h-114v-114h57v86h29v-86h28zM284 149v114h-113v-143h57v29h56zM484 149v0v114h-171v-114h57v86h28v-86h29v86h28v-86h29z" />
+    <glyph glyph-name="ion-md-watch" unicode="&#xf3a6;" horiz-adv-x="320" 
+d="M320 192c0 -51 -24 -96 -61 -125l-19 -115h-160l-19 115c-37 29 -61 74 -61 125s24 96 61 125l19 115h160l19 -115c37 -29 61 -74 61 -125zM40 192c0 -66 54 -120 120 -120s120 54 120 120s-54 120 -120 120s-120 -54 -120 -120z" />
+    <glyph glyph-name="ion-md-notifications" unicode="&#xf338;" horiz-adv-x="352" 
+d="M176 -16c-23 0 -41 19 -41 42h82c0 -23 -18 -42 -41 -42zM311 109l41 -42v-21h-352v21l41 42v114c0 63 45 117 104 131v15c0 18 13 31 31 31s31 -13 31 -31v-15c59 -14 104 -68 104 -131v-114z" />
+    <glyph glyph-name="ion-md-bookmarks" unicode="&#xf2a0;" horiz-adv-x="384" 
+d="M341 384c24 0 43 -19 43 -43v-298c0 -24 -19 -43 -43 -43h-21c16 5 23 21 23 43v298c0 22 -8 37 -23 43h21zM282 384c22 -2 38 -21 38 -43v-298c0 -22 -16 -41 -38 -43h-5h-234c-24 0 -43 19 -43 43v298c0 24 19 43 43 43h234h5zM144 192v160h-112v-160l56 32z" />
+    <glyph glyph-name="ion-ios-volume-mute" unicode="&#xf263;" horiz-adv-x="160" 
+d="M151 302c6 -3 9 -8 9 -14v-192c0 -6 -3 -11 -9 -14c-2 -1 -5 -2 -7 -2c-4 0 -7 2 -10 4l-65 52h-53c-9 0 -16 7 -16 16v80c0 9 7 16 16 16h53l65 52c3 2 6 4 10 4c2 0 5 -1 7 -2z" />
+    <glyph glyph-name="ion-ios-male" unicode="&#xf1b9;" 
+d="M402 400c8 0 14 -6 14 -14v-108c0 -8 -6 -14 -14 -14s-13 6 -13 14v75l-91 -90c26 -31 40 -70 40 -110c0 -23 -4 -45 -13 -66c-8 -20 -20 -37 -36 -53s-34 -29 -54 -37c-21 -9 -43 -13 -66 -13s-45 4 -66 13c-20 8 -37 21 -53 37s-29 33 -37 53c-9 21 -13 43 -13 66
+s4 45 13 66c8 20 21 38 37 54s33 28 53 36c21 9 43 13 66 13c40 0 79 -14 110 -40l90 91h-75c-8 0 -14 5 -14 13s6 14 14 14h108zM311 153c0 38 -15 73 -42 100s-62 42 -100 42s-73 -15 -100 -42s-42 -62 -42 -100s15 -73 42 -100s62 -42 100 -42s73 15 100 42s42 62 42 100
+z" />
+    <glyph glyph-name="ion-ios-cut" unicode="&#xf16a;" horiz-adv-x="360" 
+d="M232 171c-25 -33 -38 -42 -38 -42l-14 -9c-7 -4 -20 -14 -29 -28c-14 -23 -25 -55 -26 -58c-4 -14 -12 -26 -22 -35c-11 -10 -25 -15 -39 -15c-17 0 -34 8 -46 22c-12 13 -18 31 -18 49s6 36 18 49c12 14 28 22 46 22c12 0 24 -4 34 -11l10 20c3 7 7 15 11 22
+c2 4 5 9 9 15c3 5 6 9 9 14c8 12 15 22 15 23v0l15 20v0l3 4l10 13l114 154c6 0 15 -2 20 -7c12 -11 19 -23 19 -41c0 -13 -4 -28 -11 -46c-10 -24 -64 -102 -90 -135zM64 27c13 0 24 12 24 28c0 15 -11 28 -24 28s-24 -13 -24 -28s11 -28 24 -28zM180 160c9 0 16 7 16 16
+s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM116 188c-35 48 -69 97 -78 118c-7 18 -11 32 -11 46c0 18 7 35 19 44c4 3 10 4 19 4l105 -141l-47 -65c-2 -3 -3 -6 -5 -9c-1 1 -1 2 -2 3zM296 126c35 0 64 -32 64 -71s-29 -71 -64 -71c-14 0 -28 5 -39 15
+c-10 9 -18 21 -22 35c-1 3 -12 35 -26 58c-5 7 -10 12 -15 17l36 33l11 14c4 -7 7 -14 10 -21c4 -8 8 -14 11 -20c10 7 22 11 34 11zM296 27c13 0 24 12 24 28c0 15 -11 28 -24 28s-24 -13 -24 -28s11 -28 24 -28z" />
+    <glyph glyph-name="ion-ios-paper-plane" unicode="&#xf1dd;" 
+d="M404 399c6 3 14 -2 12 -9l-82 -400c-1 -6 -7 -8 -12 -4l-99 72c-4 3 -9 2 -12 -2l-38 -45c-4 -6 -10 -4 -11 3l11 78c1 7 3 12 7 18l179 219c2 3 0 6 -3 7c-2 0 -3 0 -4 -1l-208 -203c-4 -5 -7 -11 -7 -18l8 -91c0 -5 -9 -3 -10 2l-53 109c-2 4 -5 6 -9 8l-68 26
+c-6 3 -7 12 -1 15z" />
+    <glyph glyph-name="ion-md-eye-off" unicode="&#xf2e8;" horiz-adv-x="448" 
+d="M224 303c-13 0 -25 -2 -37 -7l-44 44c25 9 53 14 81 14c102 0 189 -63 224 -152c-15 -38 -39 -70 -70 -96l-59 59c5 12 7 24 7 37c0 56 -46 101 -102 101zM20 358l26 26l362 -358l-26 -26l-60 59l-9 9c-28 -11 -57 -18 -89 -18c-102 0 -189 63 -224 152
+c16 40 42 75 76 101l-9 9zM133 247c-7 -14 -11 -29 -11 -45c0 -56 46 -101 102 -101c16 0 31 4 45 11l-32 31c-4 -1 -9 -1 -13 -1c-34 0 -61 26 -61 60c0 4 1 9 2 13zM221 262h3c34 0 61 -26 61 -60v-3z" />
+    <glyph glyph-name="ion-md-code" unicode="&#xf2ce;" horiz-adv-x="448" 
+d="M158 94l-30 -30l-128 128l128 128l30 -30l-98 -98zM290 94l98 98l-98 98l30 30l128 -128l-128 -128z" />
+    <glyph glyph-name="ion-logo-foursquare" unicode="&#xf237;" horiz-adv-x="320" 
+d="M281 416c35 0 45 -20 37 -57c-10 -49 -40 -202 -43 -213c-3 -13 -8 -34 -39 -34h-72c-3 0 -3 0 -6 -3c-2 -2 -115 -133 -115 -133c-9 -10 -23 -8 -28 -6s-15 8 -15 26v380s10 40 43 40h238zM275 146c3 11 33 164 43 213zM267 351c2 9 -5 16 -12 16h-191
+c-9 0 -15 -8 -15 -15v-296c0 -1 1 -1 2 0c0 0 70 84 78 94s11 11 23 11h64c9 0 14 8 15 12s8 43 10 51s-6 16 -13 16h-82c-10 0 -18 8 -18 18v13c0 10 8 17 18 17h96s14 6 15 12z" />
+    <glyph glyph-name="ion-logo-facebook" unicode="&#xf236;" horiz-adv-x="384" 
+d="M363 384c12 0 21 -9 21 -21v-342c0 -12 -9 -21 -21 -21h-107v152h50l7 56h-57v36c0 17 5 28 29 28h35v52c-5 1 -28 2 -49 2c-44 0 -79 -27 -79 -77v-41h-46v-56h46v-152h-171c-12 0 -21 9 -21 21v342c0 12 9 21 21 21h342z" />
+    <glyph glyph-name="ion-md-today" unicode="&#xf17d;" horiz-adv-x="384" 
+d="M341 416c24 0 43 -19 43 -43v-362c0 -24 -19 -43 -43 -43h-298c-24 0 -43 19 -43 43v362c0 24 19 43 43 43h298zM337 11c2 0 4 2 4 4v354c0 2 -2 4 -4 4h-290c-2 0 -4 -2 -4 -4v-354c0 -2 2 -4 4 -4h290zM81 254c0 1 1 2 2 2h218c1 0 2 -1 2 -2v-204c0 -1 -1 -2 -2 -2
+h-218c-1 0 -2 1 -2 2v204zM81 333c0 1 1 2 2 2h171c1 0 2 -1 2 -2v-34c0 -1 -1 -2 -2 -2h-171c-1 0 -2 1 -2 2v34z" />
+    <glyph glyph-name="ion-ios-umbrella" unicode="&#xf25f;" 
+d="M359 310c36 -43 56 -86 57 -144c0 -2 -1 -3 -2 -4s-2 -2 -4 -2h-2c-3 0 -4 1 -5 4c-3 10 -8 20 -16 26c-8 7 -17 10 -27 10s-18 -4 -26 -10s-13 -16 -16 -26c-1 -3 -3 -4 -6 -4h-5c-3 0 -4 1 -5 4c-3 10 -8 20 -16 26s-17 10 -27 10c-15 0 -29 -9 -37 -23v-147
+c0 -25 -19 -46 -44 -46s-45 21 -45 46c0 8 5 14 13 14s14 -6 14 -14c0 -10 8 -18 18 -18s17 8 17 18v148c-8 14 -22 22 -37 22c-20 0 -36 -15 -42 -36c-1 -3 -3 -4 -6 -4h-5c-3 0 -4 1 -5 4c-3 10 -8 20 -16 26c-8 7 -17 10 -27 10s-19 -4 -27 -10s-13 -16 -16 -26
+c-1 -3 -2 -4 -5 -4h-3c-3 0 -6 3 -6 6v2c0 58 20 102 56 144c35 41 81 66 132 71c2 10 10 17 20 17s18 -7 20 -17c50 -5 96 -31 131 -73z" />
+    <glyph glyph-name="ion-md-flag" unicode="&#xf2ef;" horiz-adv-x="320" 
+d="M300 365c8 1 15 2 20 3v-20v-188c-6 -1 -12 -2 -20 -3c-14 -2 -30 -4 -48 -4c-31 0 -59 6 -87 12c-27 6 -53 15 -80 15c-15 0 -27 -1 -37 -2v-178h-28h-20v171v53v141v3l4 3c2 1 22 13 81 13c29 0 57 -5 84 -11c26 -5 52 -12 81 -12c18 0 36 2 50 4z" />
+    <glyph glyph-name="ion-logo-euro" unicode="&#xf235;" horiz-adv-x="320" 
+d="M138 176h124l-7 -48h-117v-13c0 -44 15 -63 79 -63c26 0 56 3 93 9l10 -65c-38 -9 -71 -12 -106 -12c-115 0 -164 41 -164 117v27h-50v48h50v48h-50v48h50v11c0 76 49 117 164 117c35 0 68 -3 106 -12l-10 -65c-37 6 -67 9 -93 9c-64 0 -79 -22 -79 -58v-2h138l-7 -48
+h-131v-48z" />
+    <glyph glyph-name="ion-md-musical-notes" unicode="&#xf333;" horiz-adv-x="384" 
+d="M96 384h288v-315c0 -41 -32 -69 -70 -69s-69 27 -69 65s31 65 69 65c9 0 19 -1 27 -4v122h-202v-179c0 -41 -32 -69 -70 -69s-69 27 -69 65s31 65 69 65c9 0 19 -1 27 -4v258zM341 288v53h-202v-53h202z" />
+    <glyph glyph-name="ion-logo-javascript" unicode="&#xf23f;" horiz-adv-x="448" 
+d="M176 360v0v-213c0 -97 -49 -131 -121 -131c-18 0 -40 3 -55 8l8 62c10 -4 24 -6 39 -6c31 0 49 15 49 68v212h80zM350 368v0c38 0 65 -7 85 -16l-19 -64c-13 7 -35 17 -67 17s-48 -16 -48 -33c0 -22 19 -31 62 -48c58 -22 85 -53 85 -102c0 -57 -42 -106 -133 -106
+c-38 0 -72 10 -91 21l15 63v0c20 -11 49 -21 81 -21c34 0 52 15 52 38c0 21 -15 33 -55 47c-55 20 -93 52 -93 102c0 58 49 102 126 102z" />
+    <glyph glyph-name="ion-md-paper" unicode="&#xf33f;" horiz-adv-x="448" 
+d="M432 384c9 0 16 -7 16 -16v-286c0 -45 -37 -82 -82 -82h-280c-47 0 -86 38 -86 86v208c0 23 19 42 42 42h102v32c0 9 7 16 16 16h272zM144 304h-45c2 -6 3 -12 3 -19v-173h42v192zM127 49c9 9 15 19 17 31h-58c-9 0 -16 7 -16 16v189c0 11 -8 19 -19 19s-19 -8 -19 -19
+v-199c0 -14 6 -28 16 -38s24 -16 38 -16c15 0 30 6 41 17zM416 82v269h-240v-15v-250c0 -21 -8 -39 -21 -54h211c13 0 25 5 35 15s15 22 15 35zM216 256v56h160v-56h-160zM216 192v32h160v-32h-160zM216 128v32h160v-32h-160zM376 96c0 -11 0 -32 -19 -32h-149
+c8 0 8 32 8 32h160z" />
+    <glyph glyph-name="ion-md-medkit" unicode="&#xf328;" 
+d="M304 304h112v-264c0 -22 -18 -40 -40 -40h-336c-22 0 -40 18 -40 40v264h112v40c0 22 18 40 40 40h112c22 0 40 -18 40 -40v-40zM152 344v-40h112v40h-112zM288 120v48h-56v56h-48v-56h-56v-48h56v-56h48v56h56z" />
+    <glyph glyph-name="ion-logo-twitter" unicode="&#xf2b0;" horiz-adv-x="472" 
+d="M472 338c-13 -20 -29 -36 -48 -50v-12c0 -128 -98 -276 -276 -276c-55 0 -105 16 -148 44c8 -1 15 -2 23 -2c45 0 87 16 120 42c-42 1 -78 29 -90 67c6 -1 12 -2 18 -2c9 0 18 2 26 4c-44 9 -78 48 -78 95v1c13 -7 28 -12 44 -12c-26 17 -43 47 -43 81c0 18 5 34 13 48
+c48 -59 119 -97 199 -101c-2 7 -2 14 -2 22c0 54 43 97 97 97c28 0 52 -12 70 -31c22 4 43 13 62 24c-7 -23 -23 -42 -43 -54c20 2 39 7 56 15z" />
+    <glyph glyph-name="ion-ios-hourglass" unicode="&#xf103;" horiz-adv-x="348" 
+d="M334 14c8 0 14 -5 14 -13s-6 -15 -14 -15h-320c-8 0 -14 7 -14 15s6 13 14 13h6c6 0 11 1 12 7v1c14 136 100 138 100 170s-85 34 -100 170v1c-1 6 -6 7 -12 7h-6c-8 0 -14 7 -14 15s6 13 14 13h320c8 0 14 -7 14 -15s-6 -13 -14 -13h-5c-6 0 -12 -1 -13 -7v-1
+c-14 -136 -100 -138 -100 -170s85 -34 100 -170v-1c1 -6 7 -7 13 -7h5zM81 48c-3 -7 -1 -16 7 -16h172c8 0 10 9 7 16c-31 79 -80 71 -80 102v55c0 19 37 33 60 65c4 5 0 12 -6 12h-133c-6 0 -11 -7 -7 -12c23 -32 60 -46 60 -65v-55c0 -32 -51 -22 -80 -102z" />
+    <glyph glyph-name="ion-md-trending-up" unicode="&#xf39a;" horiz-adv-x="448" 
+d="M314 320h134v-134l-51 51l-141 -141l-90 90l-134 -135l-32 32l166 166l90 -90l109 110z" />
+    <glyph glyph-name="ion-logo-nodejs" unicode="&#xf242;" horiz-adv-x="384" 
+d="M192 -32c-6 0 -12 2 -17 5l-53 32c-8 5 -4 6 -1 7c11 4 14 5 25 12c1 1 3 1 4 0l39 -23c1 -1 4 -1 5 0l156 92c1 1 2 2 2 4v187c0 2 0 4 -2 5l-156 94c-1 1 -3 1 -4 0l-155 -94c-2 -1 -3 -3 -3 -5v-187c0 -2 0 -3 2 -4l40 -24c24 -12 38 1 38 15v183c0 3 2 5 5 5h22
+c3 0 5 -2 5 -5v-183c0 -33 -19 -52 -49 -52c-9 0 -17 1 -37 11l-41 24c-10 6 -17 18 -17 30v190c0 12 7 24 17 30l158 95c10 6 24 6 34 0l158 -95c10 -6 17 -18 17 -30v-190c0 -12 -7 -24 -17 -30l-158 -94c-5 -3 -11 -5 -17 -5v0zM241 96c-65 0 -84 31 -84 59c0 3 1 5 4 5
+h21c2 0 5 -2 5 -4c3 -22 16 -31 54 -31c33 0 47 11 47 29c0 11 -3 18 -55 23c-43 4 -71 15 -71 51c0 33 28 52 73 52c46 0 76 -14 79 -51c0 -1 -1 -2 -2 -3s-2 -2 -3 -2h-20c-2 0 -5 2 -5 4c-4 17 -16 23 -49 23c-36 0 -41 -12 -41 -22c0 -12 5 -16 54 -23s72 -16 72 -51
+c0 -36 -29 -59 -79 -59v0v0z" />
+    <glyph glyph-name="ion-ios-shuffle" unicode="&#xf4a9;" horiz-adv-x="384" 
+d="M342 160l36 -36c4 -4 6 -9 6 -15s-2 -12 -6 -16l-34 -33c-3 -3 -6 -4 -10 -4s-7 1 -10 4s-4 6 -4 10s1 7 4 10l16 16h-84c-4 0 -8 2 -11 5v0l-53 67l-53 -67v0c-3 -3 -7 -5 -11 -5h-114c-8 0 -14 6 -14 14s6 14 14 14h107l53 66l-53 66h-107c-8 0 -14 6 -14 14
+s6 14 14 14h114c4 0 8 -2 11 -5v0l124 -155h75l-16 16c-3 3 -4 6 -4 10s1 7 4 10s6 4 10 4s7 -1 10 -4zM215 213l-10 12c-2 2 -2 5 0 7l40 51v0c3 3 7 5 11 5h84l-16 16c-3 3 -4 6 -4 10s1 7 4 10s6 4 10 4s7 -1 10 -4l34 -34c4 -4 6 -9 6 -15s-2 -12 -6 -16l-36 -35
+c-3 -3 -6 -4 -10 -4s-7 1 -10 4s-4 6 -4 10s1 7 4 10l16 16h-75l-38 -47c-1 -1 -3 -3 -5 -3v0c-2 0 -4 2 -5 3z" />
+    <glyph glyph-name="ion-logo-steam" unicode="&#xf24c;" horiz-adv-x="512" 
+d="M479 240c0 -20 -16 -36 -36 -36s-36 16 -36 36s16 36 36 36s36 -16 36 -36zM443 309c38 0 69 -31 69 -69s-31 -70 -69 -70l-67 -48c-2 -26 -24 -47 -51 -47c-25 0 -46 18 -51 41l-196 78c-8 -5 -16 -7 -26 -7c-28 0 -52 24 -52 52s24 52 52 52c25 0 45 -18 50 -41
+l196 -79c8 5 17 8 27 8c2 0 3 -1 5 -1l43 62c0 38 32 69 70 69zM443 286c-26 0 -47 -20 -47 -46s21 -47 47 -47s46 21 46 47s-20 46 -46 46zM52 277c-21 0 -38 -17 -38 -38s17 -38 38 -38c3 0 5 0 8 1l-16 6v0c-15 7 -22 24 -16 39s24 23 39 17v0l19 -7c-6 12 -19 20 -34 20
+zM325 165c-3 0 -6 -1 -9 -1l16 -6c16 -6 23 -24 17 -40s-23 -23 -39 -17c-6 3 -13 6 -19 8c6 -12 19 -20 34 -20c21 0 38 17 38 38s-17 38 -38 38z" />
+    <glyph glyph-name="ion-md-beaker" unicode="&#xf297;" horiz-adv-x="384" 
+d="M384 413c0 -1 -2 -3 -3 -5s-11 -15 -13 -33v-332v0v-11c0 -35 -29 -64 -64 -64h-208c-35 0 -64 29 -64 64v308c0 32 -2 32 -32 36c0 12 10 40 64 40h270h47c2 0 3 -2 3 -3zM290 16c17 0 30 14 30 32v320h-240v-325c3 -15 16 -27 32 -27h178zM118 288h164v-226
+c0 -4 -4 -8 -8 -8h-148c-4 0 -8 4 -8 8v226z" />
+    <glyph glyph-name="ion-md-arrow-dropleft" unicode="&#xf282;" horiz-adv-x="128" 
+d="M128 320v-256l-128 128z" />
+    <glyph glyph-name="ion-md-bed" unicode="&#xf160;" horiz-adv-x="384" 
+d="M105 184c-29 0 -53 23 -53 51s24 51 53 51s52 -23 52 -51s-23 -51 -52 -51zM314 286c39 0 70 -30 70 -68v-154h-35v51h-314v-51h-35v256h35v-154h139v120h140z" />
+    <glyph glyph-name="ion-md-cog" unicode="&#xf2cf;" horiz-adv-x="448" 
+d="M448 160h-35c-2 -12 -5 -24 -9 -35l30 -17l-32 -56l-30 18c-8 -9 -17 -18 -26 -26l18 -30l-56 -32l-17 30c-11 -4 -23 -7 -35 -9v-35h-64v35c-12 2 -24 5 -35 9l-17 -30l-56 32l18 30c-9 8 -18 17 -26 26l-30 -18l-32 56l30 17c-4 11 -7 23 -9 35h-35v64h35
+c2 12 5 24 9 35l-30 17l32 56l30 -18c8 9 17 18 26 26l-18 30l56 32l17 -30c11 4 23 7 35 9v35h64v-35c12 -2 24 -5 35 -9l17 30l56 -32l-18 -30c9 -8 18 -17 26 -26l30 18l32 -56l-30 -17c4 -11 7 -23 9 -35h35v-64zM224 224c-18 0 -32 -14 -32 -32s14 -32 32 -32
+s32 14 32 32s-14 32 -32 32zM109 105l32 38c-8 14 -13 31 -13 49v1l-47 17c-1 -6 -1 -12 -1 -18c0 -33 11 -63 29 -87zM150 253c11 13 25 23 42 29v50c-37 -8 -69 -31 -89 -62zM224 48c24 0 46 6 66 16l-32 38c-10 -4 -22 -6 -34 -6s-24 2 -34 6l-32 -38
+c20 -10 42 -16 66 -16zM256 282c17 -6 31 -16 42 -29l47 17c-20 31 -52 54 -89 62v-50zM339 105c18 24 29 54 29 87c0 6 0 12 -1 18l-47 -17v-1c0 -18 -5 -35 -13 -49z" />
+    <glyph glyph-name="ion-md-flask" unicode="&#xf2f2;" horiz-adv-x="384" 
+d="M373 94c8 -16 11 -32 11 -46c-1 -36 -27 -64 -63 -64h-256c-36 0 -64 28 -65 64c0 14 4 30 12 46l100 162v96h-32v48h224v-48h-32v-96zM91 144h203l-30 48h-143z" />
+    <glyph glyph-name="ion-md-bonfire" unicode="&#xf29d;" 
+d="M224 97l16 -89c1 -3 2 -5 2 -8c0 -18 -16 -32 -35 -32s-35 14 -35 32c0 2 1 5 1 7l17 93v0c2 7 9 12 17 12c9 0 16 -7 17 -15zM262 93v0v0zM356 58c10 -8 10 -25 0 -35s-29 -9 -37 0c-1 1 -3 2 -4 4l-53 66c-3 5 -2 11 2 15c5 5 12 5 18 1l69 -47c2 -1 3 -3 5 -4z
+M334 113v0v0zM402 126c10 -1 14 -7 14 -19c0 -9 -10 -14 -19 -12l-63 18v0v0c-4 2 -6 5 -5 9s5 7 9 6zM82 113v0v0zM82 113h-1l-62 -18c-9 -2 -19 3 -19 12c0 12 3 18 13 19l65 2c4 1 8 -2 9 -6s-1 -7 -5 -9v0zM134 109c5 4 13 3 18 -1c4 -4 5 -10 2 -15l-53 -65
+c-1 -2 -3 -4 -4 -5c-10 -10 -27 -10 -37 0s-10 25 0 35c2 2 3 3 5 4zM208 416c72 -22 108 -106 108 -179c0 -60 -48 -108 -108 -108s-108 48 -108 108c0 46 17 89 44 121l-1 -6c0 -28 21 -51 49 -51s46 23 46 51c0 29 -30 64 -30 64zM204 169c36 0 65 29 65 65
+c0 19 -3 37 -8 54c-14 -18 -38 -29 -62 -34s-38 -20 -38 -42c0 -23 19 -43 43 -43z" />
+    <glyph glyph-name="ion-md-git-merge" unicode="&#xf2fd;" horiz-adv-x="384" 
+d="M320 224c35 0 64 -29 64 -64s-29 -64 -64 -64c-24 0 -44 13 -55 32c-22 0 -70 4 -109 27c-21 13 -41 30 -60 49v-117c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v210c-19 11 -32 31 -32 55c0 35 29 64 64 64s64 -29 64 -64
+c0 -21 -10 -39 -26 -51c22 -37 55 -72 87 -91c23 -14 58 -18 76 -18c11 19 31 32 55 32zM24 352c0 -22 18 -40 40 -40s40 18 40 40s-18 40 -40 40s-40 -18 -40 -40zM104 32c0 22 -18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40s40 18 40 40zM320 120c22 0 40 18 40 40
+s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40z" />
+    <glyph glyph-name="ion-ios-funnel" unicode="&#xf182;" 
+d="M0 361c0 13 9 23 21 23h374c12 0 21 -10 21 -23v0c0 -6 -2 -12 -6 -16l-152 -180c-4 -4 -5 -9 -5 -15v-134c0 -11 -10 -19 -20 -15l-55 20c-9 3 -15 12 -15 22v107c0 6 -1 11 -5 15l-152 180c-4 4 -6 10 -6 16v0z" />
+    <glyph glyph-name="ion-md-close-circle-outline" unicode="&#xf166;" 
+d="M208 358c-44 0 -86 -18 -117 -49s-49 -73 -49 -117s18 -86 49 -117s73 -49 117 -49s86 18 117 49s49 73 49 117s-18 86 -49 117s-73 49 -117 49zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM312 117l-29 -29l-75 75l-75 -75
+l-29 29l75 75l-75 75l29 29l75 -75l75 75l29 -29l-75 -75z" />
+    <glyph glyph-name="ion-md-help-circle" unicode="&#xf30a;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM229 67v42h-42v-42h42zM229 130c0 46 62 52 62 104c0 46 -37 83 -83 83s-83 -37 -83 -83h41c0 22 19 42 42 42s42 -19 42 -42c0 -42 -63 -37 -63 -104h42z" />
+    <glyph glyph-name="ion-md-book" unicode="&#xf29e;" 
+d="M378 368c22 3 38 -17 38 -38v-244c0 -21 -16 -33 -38 -38l-170 -32l-170 32c-22 5 -38 17 -38 38v244c0 21 16 41 38 38l170 -32zM378 86v244l-151 -32v-244zM189 54v244l-151 32v-244z" />
+    <glyph glyph-name="ion-ios-pricetags" unicode="&#xf48f;" horiz-adv-x="448" 
+d="M371 416c15 0 28 -13 28 -28v-124c0 -4 -1 -7 -4 -10l-232 -232c-16 -14 -32 -9 -43 2l-112 113c-11 11 -11 28 0 39l235 236c3 3 6 4 10 4h118zM325 308c14 2 26 14 28 28c2 20 -14 36 -34 34c-14 -2 -25 -14 -27 -28c-2 -20 13 -36 33 -34zM424 368
+c14 -2 24 -14 24 -28v-118c0 -4 -1 -7 -4 -10l-235 -236c-11 -11 -28 -11 -39 0l-9 9l259 259c3 3 4 6 4 10v114z" />
+    <glyph glyph-name="ion-ios-move" unicode="&#xf1cb;" horiz-adv-x="448" 
+d="M444 202c6 -5 6 -15 0 -20l-79 -79c-5 -5 -15 -5 -20 0v0c-5 5 -5 15 0 20l55 55h-162l1 -162l55 55c5 5 14 5 19 0v0c5 -5 5 -15 0 -20l-79 -79c-5 -5 -15 -5 -20 0l-79 79c-5 5 -5 15 0 20v0c5 5 15 5 20 0l55 -55v162h-162l55 -55c5 -5 5 -15 0 -20v0
+c-5 -5 -15 -5 -20 0l-79 79c-5 5 -5 15 0 20l79 79c5 5 15 5 20 0v0c5 -5 5 -15 0 -20l-55 -55h162v162l-55 -55c-5 -5 -15 -5 -20 0v0c-5 5 -5 15 0 20l79 79c5 5 15 5 20 0l79 -79c5 -5 5 -15 0 -20v0c-5 -5 -14 -5 -19 0l-55 55l-1 -162h162l-55 55c-5 5 -5 15 0 20v0
+c5 5 15 5 20 0z" />
+    <glyph glyph-name="ion-ios-wallet" unicode="&#xf18b;" 
+d="M356 288c33 0 60 -27 60 -60v-168c0 -33 -27 -60 -60 -60h-296c-33 0 -60 27 -60 60v168c0 33 27 60 60 60h296zM295 383c16 3 32 -2 43 -13v0c9 -9 14 -25 14 -38v-20h-287c-34 0 -49 -19 -49 -19c0 22 26 40 44 44z" />
+    <glyph glyph-name="ion-ios-car" unicode="&#xf140;" 
+d="M368 252c26 -22 48 -46 48 -85v-76c0 -4 -2 -7 -6 -8c-15 -3 -62 -10 -202 -10s-187 7 -202 10c-4 1 -6 4 -6 8v76c0 39 24 62 48 85c15 33 49 92 100 92h120c51 0 86 -61 100 -92zM142 320c-35 0 -62 -60 -62 -70h256c0 10 -22 70 -62 70h-132zM64 116c18 0 32 14 32 32
+s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM280 148v0c0 9 -7 16 -16 16h-112c-9 0 -16 -7 -16 -16v0c0 -9 7 -16 16 -16h112c9 0 16 7 16 16zM352 116c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM112 64c0 -11 1 -24 -5 -24h-85s-6 12 -6 29
+c0 0 48 -5 96 -5zM304 64c48 0 96 5 96 5c0 -16 2 -29 -5 -29h-86s-5 14 -5 24z" />
+    <glyph glyph-name="ion-md-notifications-off" unicode="&#xf336;" horiz-adv-x="364" 
+d="M182 -16c-23 0 -41 19 -41 42h82c0 -23 -18 -42 -41 -42zM57 341l295 -295v0l12 -12l-24 -24l-36 36h-298v21l41 41v115c0 23 6 44 16 63l-63 64l24 24l33 -33v0zM317 223v-94l-208 207c13 8 27 15 42 18v15c0 18 13 31 31 31s31 -13 31 -31v-15c59 -14 104 -67 104 -131
+z" />
+    <glyph glyph-name="ion-md-school" unicode="&#xf374;" horiz-adv-x="448" 
+d="M82 167l142 -82l142 82v-85l-142 -82l-142 82v85zM224 384l224 -128v-171h-41v148l-183 -105l-224 128z" />
+    <glyph glyph-name="ion-ios-color-filter" unicode="&#xf414;" horiz-adv-x="424" 
+d="M398 199c17 -22 26 -49 26 -77c0 -34 -13 -65 -37 -89s-54 -37 -88 -37c-33 0 -64 12 -87 35c-24 -23 -54 -35 -87 -35s-64 13 -88 37s-37 55 -37 89c0 28 9 55 26 77c16 20 38 36 62 44c-1 6 -1 13 -1 19c0 34 12 65 36 89s55 37 89 37s65 -13 89 -37s36 -55 36 -89
+c0 -6 0 -13 -1 -19c24 -8 46 -23 62 -44zM212 362c-55 0 -100 -44 -100 -100c0 -5 0 -9 1 -14h12c33 0 64 -12 87 -35c24 23 54 35 87 35h12c1 5 1 9 1 14c0 56 -45 100 -100 100zM212 161h6c-2 4 -4 7 -6 11c-2 -4 -4 -7 -6 -11h6zM165 30c11 5 22 11 31 20
+c-14 21 -23 46 -23 72c0 6 1 13 2 19c-18 6 -35 16 -49 29s-25 30 -32 48c-19 -6 -36 -19 -48 -35c-14 -18 -21 -39 -21 -61c0 -56 45 -100 100 -100c14 0 27 2 40 8zM181 166c4 10 9 19 15 28c-9 9 -20 15 -31 20c-13 6 -26 9 -40 9h-5c11 -27 33 -48 61 -57zM212 72
+c9 15 14 32 14 50c0 5 -1 9 -2 14h-12h-12c-1 -5 -1 -9 -1 -14c0 -18 4 -35 13 -50zM259 214c-11 -5 -22 -11 -31 -20c6 -9 11 -18 15 -28c28 9 50 30 61 57h-5c-14 0 -27 -3 -40 -9zM299 22c55 0 100 44 100 100c0 22 -7 43 -21 61c-12 16 -29 29 -48 35
+c-7 -18 -18 -35 -32 -48s-31 -23 -49 -29c1 -6 2 -13 2 -19c0 -26 -9 -51 -23 -72c9 -9 20 -15 31 -20c13 -6 26 -8 40 -8z" />
+    <glyph glyph-name="ion-md-magnet" unicode="&#xf320;" horiz-adv-x="352" 
+d="M304 349c32 -33 48 -80 48 -135c0 -44 -1 -72 -13 -116s-33 -98 -37 -106s-9 -9 -14 -7s-48 18 -55 21s-11 10 -9 16s26 65 34 95s12 55 12 95c0 28 -10 53 -28 72c-18 18 -41 29 -66 29s-48 -11 -66 -29c-18 -19 -28 -44 -28 -72c0 -40 4 -59 12 -95c0 0 30 -86 34 -95
+c3 -7 -1 -12 -9 -16s-49 -19 -55 -21c-8 -2 -12 1 -16 9c-13 28 -35 104 -35 104c-11 47 -13 72 -13 116c0 55 16 102 48 135s76 51 128 51s96 -18 128 -51zM93 28l-27 74l-22 -6c9 -34 19 -61 26 -77zM282 19c7 16 17 43 25 77l-22 6c-8 -29 -19 -57 -26 -74z" />
+    <glyph glyph-name="ion-logo-snapchat" unicode="&#xf24b;" horiz-adv-x="480" 
+d="M480 88c0 -2 0 -11 -6 -21c-5 -8 -16 -19 -38 -24c-6 -1 -11 -3 -15 -4c-2 -1 -5 -1 -7 -1v-1c-1 -7 -1 -13 -4 -18c-2 -5 -9 -12 -22 -12c-2 0 -6 0 -9 1c-2 0 -3 1 -5 1c-7 1 -15 2 -23 2c-10 0 -19 -2 -26 -6c-4 -3 -9 -7 -14 -10c-18 -13 -38 -27 -71 -27
+s-53 14 -71 27c-5 3 -9 7 -14 10c-7 4 -15 6 -25 6c-8 0 -17 -1 -24 -2c-2 0 -3 -1 -5 -1c-3 -1 -7 -1 -9 -1c-13 0 -20 7 -22 12c-3 5 -3 11 -4 18v1c-2 0 -4 0 -6 1c-4 1 -10 3 -16 4c-22 5 -33 16 -38 24c-6 10 -6 18 -6 20v15l15 1c16 1 44 7 54 17c29 27 36 43 36 52
+c0 1 0 2 -4 5c-5 3 -13 6 -20 8c-5 2 -10 3 -14 5c-9 4 -18 16 -17 29c1 15 14 27 30 27c4 0 8 0 12 -2c8 -3 13 -4 17 -5c-1 9 -2 19 -3 30c-5 38 5 74 29 102c25 29 64 45 105 45v0c41 0 80 -16 105 -45c24 -28 34 -63 29 -101c-1 -11 -2 -22 -3 -31c4 1 10 2 18 5
+c4 1 8 2 12 2c16 0 29 -12 30 -27c1 -13 -9 -25 -18 -29c-4 -2 -9 -3 -14 -5c-7 -2 -14 -5 -19 -8c-4 -3 -5 -4 -5 -5c0 -16 20 -37 36 -52c11 -10 39 -16 54 -17l15 -1v-14zM192 320c-9 0 -16 -11 -16 -24s7 -24 16 -24s16 11 16 24s-7 24 -16 24zM296 242c3 3 3 9 0 12
+s-9 3 -12 0c-12 -12 -28 -19 -44 -19c-17 0 -32 7 -44 19c-3 3 -9 3 -12 0s-3 -9 0 -12c15 -15 35 -23 56 -23s41 8 56 23zM288 272c9 0 16 11 16 24s-7 24 -16 24s-16 -11 -16 -24s7 -24 16 -24z" />
+    <glyph glyph-name="ion-ios-eye" unicode="&#xf425;" horiz-adv-x="448" 
+d="M224 336c96 0 168 -69 220 -133c5 -6 5 -15 0 -21c-51 -56 -124 -134 -220 -134c-98 0 -155 61 -220 133c-6 6 -6 16 0 22c76 83 140 133 220 133zM228 102c46 2 84 40 86 86c2 53 -41 96 -94 94c-46 -2 -84 -40 -86 -86c-2 -53 41 -96 94 -94zM224 239
+c0 -26 21 -47 46 -47c6 0 12 2 18 4v-4c0 -37 -31 -67 -69 -64c-31 2 -57 28 -59 59c-3 38 27 69 64 69h3c-2 -5 -3 -11 -3 -17z" />
+    <glyph glyph-name="ion-ios-nuclear" unicode="&#xf1d5;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM120 35c27 -15 56 -23 88 -23s62 8 89 23l-50 86c-1 2 0 4 2 5c20 13 34 36 35 61c0 2 2 3 4 3h100v2c0 48 -19 93 -53 127c-11 11 -23 20 -36 28l-51 -87c-1 -2 -3 -3 -5 -2
+c-10 5 -23 8 -35 8c-13 0 -25 -2 -36 -8c-2 -1 -4 -1 -5 1l-51 88c-13 -8 -24 -17 -35 -28c-34 -34 -53 -79 -53 -127v-2h100c2 0 4 -1 4 -3c1 -25 15 -48 35 -61c2 -1 3 -3 2 -5zM152 192c0 31 25 56 56 56s56 -25 56 -56s-25 -56 -56 -56s-56 25 -56 56z" />
+    <glyph glyph-name="ion-ios-journal" unicode="&#xf189;" horiz-adv-x="384" 
+d="M28 416h228v-384h-208c-9 0 -17 -8 -16 -18c1 -8 8 -14 16 -14h320c9 0 16 -7 16 -16v0c0 -9 -7 -16 -16 -16h-340c-16 0 -28 12 -28 28v392c0 16 12 28 28 28zM368 32h-64v384h52c16 0 28 -12 28 -28v-340c0 -9 -7 -16 -16 -16z" />
+    <glyph glyph-name="ion-ios-notifications-off" unicode="&#xf1d1;" horiz-adv-x="320" 
+d="M160 -8c-31 0 -48 22 -48 53h96c0 -31 -17 -53 -48 -53zM59 393l227 -388c4 -7 2 -15 -5 -19c-2 -1 -5 -2 -7 -2c-5 0 -9 3 -12 7l-228 388c-4 7 -2 15 5 19c2 1 5 2 7 2v0h1v0c5 0 10 -3 12 -7zM200 64h-40h-140c-16 0 -26 19 -16 32c15 20 46 32 46 123
+c0 33 5 59 13 79zM316 96c10 -13 0 -32 -16 -32h-30l-166 284c8 5 17 9 26 11c4 1 6 2 6 6v3c0 13 11 24 24 24s25 -11 25 -24v-3c0 -4 2 -5 6 -6c38 -9 79 -47 79 -140c0 -91 31 -103 46 -123z" />
+    <glyph glyph-name="ion-md-card" unicode="&#xf2b3;" horiz-adv-x="448" 
+d="M403 368c25 0 45 -20 45 -44v-264c0 -24 -20 -44 -45 -44h-358c-25 0 -45 20 -45 44v264c0 24 20 44 45 44h358zM403 60v132h-358v-132h358zM403 280v44h-358v-44h358z" />
+    <glyph glyph-name="ion-logo-codepen" unicode="&#xf230;" horiz-adv-x="448" 
+d="M209 144c1 -1 3 -3 3 -4v-53s-62 41 -93 62l39 26c2 1 3 1 5 0c15 -10 31 -21 46 -31zM163 207c-1 -1 -3 -1 -4 0c-13 9 -26 17 -40 26c31 21 93 62 93 62v-51c0 -2 -2 -5 -3 -6c-15 -10 -31 -21 -46 -31zM238 239c-1 1 -2 2 -2 3v54l93 -63l-40 -26c-1 -1 -3 -1 -4 0
+c-16 11 -31 21 -47 32zM226 218c6 -4 40 -27 40 -27l-39 -26c-2 -1 -4 -1 -6 0l-39 26s17 11 25 17c5 3 9 6 14 9c1 1 4 2 5 1zM109 211l30 -20l-30 -20v40zM224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM363 151v81
+c0 6 -2 9 -7 12c-41 27 -83 55 -124 82c-6 4 -11 4 -17 0c-41 -27 -81 -54 -122 -81c-5 -3 -8 -8 -8 -14v-80c0 -6 3 -10 8 -13c41 -27 81 -55 122 -82c6 -4 11 -4 17 0c41 27 82 55 123 82c5 3 8 7 8 13zM284 175c2 2 5 2 7 0l38 -26l-93 -62v51c0 3 1 4 3 6
+c15 10 30 21 45 31zM338 171l-30 20l30 20v-40z" />
+    <glyph glyph-name="ion-md-battery-dead" unicode="&#xf295;" horiz-adv-x="224" 
+d="M194 371c16 0 30 -14 30 -30v-343c0 -16 -13 -30 -30 -30h-164c-16 0 -30 13 -30 30v343c0 16 14 30 30 30h37v45h90v-45h37zM176 16v307h-128v-307h128z" />
+    <glyph glyph-name="ion-md-wifi" unicode="&#xf3a8;" 
+d="M208 219c23 0 42 -18 42 -41s-19 -41 -42 -41s-42 18 -42 41s19 41 42 41zM333 178c0 -45 -26 -85 -63 -107l-20 36c25 14 41 40 41 71c0 45 -37 82 -83 82s-83 -37 -83 -82c0 -31 16 -57 41 -71l-20 -36c-37 22 -63 62 -63 107c0 68 56 124 125 124s125 -56 125 -124z
+M208 384c114 0 208 -93 208 -206c0 -76 -42 -142 -104 -178l-21 36c50 28 83 81 83 142c0 91 -74 165 -166 165s-166 -74 -166 -165c0 -61 33 -113 83 -142l-21 -36c-62 36 -104 102 -104 178c0 113 94 206 208 206z" />
+    <glyph glyph-name="ion-ios-brush" unicode="&#xf132;" horiz-adv-x="448" 
+d="M118 165c52 0 102 -42 90 -102c-11 -52 -54 -71 -90 -77c-6 -1 -14 -2 -22 -2c-32 0 -78 8 -95 33c-1 2 -1 5 1 6c20 9 32 26 32 47c0 49 32 95 84 95zM436 388c13 -13 17 -30 5 -45l-145 -165c-5 -6 -8 -12 -8 -20v-1c0 -5 -2 -11 -6 -15l-45 -52c-2 -2 -6 -3 -8 -1
+c-1 1 -2 3 -2 5c0 50 -41 82 -87 86c-2 0 -4 2 -5 4v0c-1 2 0 5 2 7l53 43c4 4 10 6 16 6v0v0c7 0 15 3 20 8l165 145c6 5 13 7 19 7c9 0 18 -4 26 -12z" />
+    <glyph glyph-name="ion-ios-checkmark" unicode="&#xf3ff;" horiz-adv-x="215" 
+d="M214 255c2 -2 1 -4 0 -6l-133 -134h-1c-2 -2 -6 -5 -11 -5c-4 0 -8 1 -12 5l-56 56c-2 2 -2 4 0 6l18 18c1 1 2 1 3 1s2 0 3 -1l44 -45l122 123c1 1 2 1 3 1v0c1 0 2 0 3 -1z" />
+    <glyph glyph-name="ion-ios-body" unicode="&#xf3e4;" horiz-adv-x="384" 
+d="M144 368c0 27 21 48 48 48s48 -21 48 -48s-21 -48 -48 -48s-48 21 -48 48zM360 304c13 0 24 -11 24 -24s-11 -24 -24 -24h-98c-6 -1 -14 -4 -18 -14c-5 -12 -2 -34 1 -52l4 -21v-1v0l30 -172c2 -13 -6 -26 -19 -28s-26 7 -28 20l-21 120v0s-6 32 -18 32h-1
+c-12 0 -19 -32 -19 -32v0l-21 -120c-2 -13 -15 -22 -28 -20s-21 15 -19 28l30 172v0v1l4 21c3 18 6 40 1 52c-4 10 -12 13 -18 14h-98c-13 0 -24 11 -24 24s11 24 24 24h336z" />
+    <glyph glyph-name="ion-ios-crop" unicode="&#xf41e;" horiz-adv-x="384" 
+d="M78 384c8 0 14 -6 14 -14v-20c0 -8 -6 -14 -14 -14v0c-8 0 -14 6 -14 14v20c0 8 6 14 14 14v0zM92 106c0 -8 6 -14 14 -14h152c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-166c-16 0 -28 12 -28 28v166c0 8 6 14 14 14v0c8 0 14 -6 14 -14v-152zM370 92c8 0 14 -6 14 -14
+v0c0 -8 -6 -14 -14 -14h-20c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h20zM0 306c0 8 6 14 14 14h278c16 0 28 -12 28 -28v-278c0 -8 -6 -14 -14 -14v0c-8 0 -14 6 -14 14v264c0 8 -6 14 -14 14h-264c-8 0 -14 6 -14 14v0z" />
+    <glyph glyph-name="ion-md-radio" unicode="&#xf362;" 
+d="M26 306l263 110l14 -35l-172 -72h243c23 0 42 -18 42 -42v-256c0 -24 -19 -43 -42 -43h-332c-23 0 -42 19 -42 43v256c0 18 11 33 26 39zM112 10c35 0 64 29 64 64s-29 64 -64 64s-64 -29 -64 -64s29 -64 64 -64zM368 181v86h-320v-86h243v47h45v-47h32z" />
+    <glyph glyph-name="ion-ios-appstore" unicode="&#xf10c;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM129 103l18 30c-2 6 -10 12 -20 12h-2c-3 0 -5 -2 -7 -4l-14 -23c-4 -7 -2 -16 5 -20c2 -1 6 -2 8 -2c5 0 9 2 12 7zM249 150c0 0 1 1 1 4c0 5 -1 9 -4 14l-1 1c-3 6 -11 9 -18 9
+h-54v0l37 62l16 28l18 30c4 7 2 16 -5 20s-16 2 -20 -5l-9 -16v0l-10 16c-4 7 -13 9 -20 5s-8 -13 -4 -20l17 -30v0l-53 -90v0h-45c-8 0 -15 -6 -15 -14s6 -15 14 -15h29h33zM322 149c8 0 14 7 14 15s-7 14 -15 14h-41v0l-49 82s-4 -1 -8 -9c-6 -11 -5 -25 1 -36l22 -37
+l17 -29l27 -46c3 -4 7 -7 12 -7c3 0 6 1 8 2c7 4 9 13 5 20l-19 31v0h26z" />
+    <glyph glyph-name="ion-ios-build" unicode="&#xf136;" 
+d="M393 317c4 3 9 3 12 -1c8 -12 12 -24 11 -34c-1 -12 -6 -36 -30 -60c-17 -17 -45 -30 -72 -30c-11 0 -22 3 -32 8c-2 1 -6 2 -9 2s-7 -1 -11 -5c-9 -9 -188 -200 -188 -200c-8 -9 -19 -13 -30 -13s-23 5 -31 13c-17 17 -18 45 0 61c0 0 192 181 200 188c7 7 4 15 2 20
+c-19 44 3 83 23 104c21 22 48 29 60 30h2c10 0 22 -4 32 -11c4 -3 5 -8 1 -12l-45 -45c-1 -1 -1 -2 -1 -3l8 -47c0 -2 1 -3 3 -3l47 -8c1 0 2 0 3 1zM55 19c5 5 5 14 0 20c-6 5 -14 5 -20 0c-5 -6 -5 -14 0 -20c6 -5 14 -5 20 0z" />
+    <glyph glyph-name="ion-ios-cellular" unicode="&#xf13d;" 
+d="M360 396c36 -34 56 -78 56 -126v0v0v0c0 -48 -20 -93 -56 -127c-3 -2 -5 -3 -9 -3s-7 2 -10 4c-3 3 -4 5 -4 9s1 8 4 10c30 29 47 67 47 107v0c0 41 -17 79 -47 107c-3 3 -4 5 -4 9s1 7 4 10c3 2 6 4 10 4s6 -2 9 -4zM303 351c23 -22 35 -50 35 -81v0v0v0
+c0 -31 -12 -59 -35 -81c-2 -2 -6 -4 -9 -4s-7 1 -9 3s-4 6 -4 9s2 7 4 9c18 17 28 40 28 64v0c0 24 -10 47 -28 64c-2 2 -4 6 -4 9s2 6 4 8s6 4 9 4s7 -2 9 -4zM75 377c-30 -28 -47 -66 -47 -107v0c0 -41 17 -79 47 -107c3 -3 4 -6 4 -10s-1 -6 -4 -9c-3 -2 -6 -4 -10 -4
+s-6 1 -9 3c-36 34 -56 79 -56 127v0v0c0 48 20 92 56 126c3 2 5 4 9 4v0c4 0 7 -2 10 -4c3 -3 4 -6 4 -10s-1 -7 -4 -9zM131 334c-18 -17 -28 -40 -28 -64v0c0 -24 10 -47 28 -64c2 -2 4 -6 4 -9s-2 -7 -4 -9s-6 -3 -9 -3s-7 2 -9 4c-23 22 -35 50 -35 81v0v0
+c0 31 12 59 35 81c2 2 6 4 9 4s7 -2 9 -4s4 -5 4 -8s-2 -7 -4 -9zM208 325c26 0 48 -22 48 -48c0 -22 -14 -40 -34 -46v-233c0 -8 -6 -14 -14 -14s-14 6 -14 14v233c-20 6 -34 24 -34 46c0 26 22 48 48 48z" />
+    <glyph glyph-name="ion-ios-trophy" unicode="&#xf25d;" 
+d="M402 348c8 0 14 -6 14 -14v0c0 -41 -7 -66 -22 -90c-14 -22 -34 -37 -57 -41c-3 0 -5 -2 -6 -5c-6 -15 -20 -35 -51 -52c-20 -11 -37 -19 -52 -22c-4 -1 -6 -3 -6 -7v-81c0 -4 4 -8 8 -8h66c8 0 14 -7 14 -15s-6 -13 -14 -13h-80h-16h-80c-8 0 -14 7 -14 15s6 13 14 13
+h66c4 0 8 4 8 8v81c0 4 -2 7 -6 8c-15 3 -32 10 -52 21c-31 17 -45 37 -51 52c-1 3 -3 5 -6 5c-23 4 -42 19 -56 41c-15 24 -23 49 -23 90v0c0 8 6 14 14 14h66v20c0 9 7 16 16 16h224c9 0 16 -7 16 -16v-20h66zM80 237v75c0 4 -4 8 -8 8h-35c-5 0 -8 -4 -8 -9
+c2 -27 9 -38 15 -49c7 -14 18 -23 31 -28c3 -1 5 0 5 3zM372 262c6 11 13 22 15 49c0 5 -3 9 -8 9h-35c-4 0 -8 -4 -8 -8v-75c0 -3 2 -4 5 -3c13 5 24 14 31 28z" />
+    <glyph glyph-name="ion-ios-git-network" unicode="&#xf187;" horiz-adv-x="384" 
+d="M313 416c39 0 71 -32 71 -71c0 -34 -24 -62 -56 -69v-57c0 -3 -2 -6 -4 -7l-117 -60v-44c15 -3 28 -11 38 -23c11 -13 18 -29 18 -46c0 -39 -32 -71 -71 -71s-71 32 -71 71c0 34 24 62 56 69v44l-117 60c-2 1 -4 4 -4 7v57c-15 3 -28 11 -38 23c-11 13 -18 29 -18 46
+c0 39 32 71 71 71s70 -32 70 -71c0 -34 -23 -62 -55 -69v-43l106 -55l106 55v43c-15 3 -28 11 -38 23c-11 13 -17 29 -17 46c0 39 31 71 70 71zM30 345c0 -22 19 -41 41 -41s40 19 40 41s-18 41 -40 41s-41 -19 -41 -41zM233 39c0 22 -19 41 -41 41s-41 -19 -41 -41
+s19 -41 41 -41s41 19 41 41zM313 304c22 0 41 19 41 41s-19 41 -41 41s-40 -19 -40 -41s18 -41 40 -41z" />
+    <glyph glyph-name="ion-md-warning" unicode="&#xf3a5;" horiz-adv-x="448" 
+d="M0 -16l224 416l224 -416h-448zM248 48v48h-48v-48h48zM248 128v96h-48v-96h48z" />
+    <glyph glyph-name="ion-md-thumbs-up" unicode="&#xf392;" 
+d="M150 0c-21 0 -38 17 -38 38v192c0 11 4 20 11 27l126 127l20 -20c5 -5 9 -12 9 -20l-1 -6l-18 -82h119c21 0 38 -24 38 -45v-38c0 -5 -1 -10 -3 -14l-57 -136c-6 -14 -18 -23 -34 -23h-172zM0 0v224h64v-224h-64z" />
+    <glyph glyph-name="ion-ios-megaphone" unicode="&#xf1c1;" 
+d="M42 261c0 -27 14 -54 34 -72c3 -3 0 -8 -4 -7v0c-27 9 -54 30 -61 64c-6 0 -11 7 -11 15s4 14 10 15c6 39 36 70 74 70v0c3 0 5 -4 2 -6c-26 -16 -44 -46 -44 -79zM402 345c9 -23 14 -52 14 -82s-5 -58 -14 -81c-1 -3 -2 -5 -3 -8c-6 -13 -12 -24 -21 -33
+c-16 -16 -29 -18 -35 -18s-11 2 -20 5c-38 14 -64 32 -112 32c-26 0 -16 -97 -16 -132s4 -44 -14 -44s-61 16 -68 24s-6 18 -4 36s23 102 25 115s-9 12 -21 22c-27 16 -44 46 -44 80c0 38 22 71 54 85c0 0 -2 0 40 0s111 20 154 46c4 3 12 8 26 8c13 0 24 -5 34 -15
+c8 -8 16 -19 22 -32c1 -2 2 -5 3 -8zM376 188c8 18 14 45 14 75s-6 57 -14 75c-6 16 -18 25 -27 25s-18 -9 -24 -25c-8 -18 -13 -45 -13 -75s5 -57 13 -75c6 -16 15 -28 24 -28s21 12 27 28z" />
+    <glyph glyph-name="ion-md-flash" unicode="&#xf2f1;" horiz-adv-x="192" 
+d="M0 400h192l-64 -160h64l-128 -256v192h-64v224z" />
+    <glyph glyph-name="ion-md-expand" unicode="&#xf2e7;" horiz-adv-x="384" 
+d="M333 51v77h51v-128h-128v51h77zM333 333h-77v51h128v-128h-51v77zM51 333v-77h-51v128h128v-51h-77zM51 51h77v-51h-128v128h51v-77z" />
+    <glyph glyph-name="ion-md-train" unicode="&#xf396;" horiz-adv-x="352" 
+d="M176 400c97 0 176 -11 176 -88v-208c0 -42 -35 -76 -77 -76l33 -33v-11h-44l-44 44h-83l-44 -44h-49v11l33 33c-42 0 -77 34 -77 76v208c0 77 88 88 176 88zM77 72c18 0 33 14 33 32s-15 33 -33 33s-33 -15 -33 -33s15 -32 33 -32zM154 225v87h-110v-87h110zM198 225h110
+v87h-110v-87zM275 72c18 0 33 14 33 32s-15 33 -33 33s-33 -15 -33 -33s15 -32 33 -32z" />
+    <glyph glyph-name="ion-md-boat" unicode="&#xf29b;" horiz-adv-x="448" 
+d="M52 35l-51 139c-2 6 -1 12 1 17s8 8 13 10l38 13v98c0 23 20 43 43 43h64l16 53h96l16 -53h64c23 0 43 -20 43 -43v-98l38 -13c5 -2 11 -5 13 -10s3 -12 1 -17l-51 -139h-1c-34 0 -65 20 -86 43c-21 -23 -51 -43 -85 -43s-64 19 -85 42c-21 -23 -52 -42 -86 -42h-1z
+M96 312v-84l128 41l128 -41v84h-256zM309 40c0 0 59 -64 107 -64h-21c-30 0 -59 12 -86 26c-53 -28 -117 -28 -170 0c-27 -14 -56 -26 -86 -26h-21c49 0 107 64 107 64c52 -36 118 -36 170 0z" />
+    <glyph glyph-name="ion-md-planet" unicode="&#xf356;" horiz-adv-x="448" 
+d="M104 297c15 18 32 31 53 41c32 15 69 19 106 10c83 -21 135 -103 119 -186c-1 -3 -1 -7 -2 -10c-5 -20 -11 -37 -23 -53c-2 -3 -6 -6 -8 -9c-6 3 -11 6 -17 9c-35 20 -73 46 -111 75c-48 37 -93 78 -125 114c2 3 6 6 8 9zM386 121c47 -49 70 -82 59 -100
+c-6 -10 -23 -11 -47 -5c-25 6 -58 17 -96 35c-34 -19 -76 -25 -117 -15c-86 22 -139 109 -117 195c-51 60 -77 112 -65 132c6 10 24 12 47 3c21 -8 43 -20 66 -35c-10 -7 -14 -11 -14 -11c-23 14 -43 19 -58 23c-2 0 -9 2 -7 -4c2 -4 3 -7 5 -11c8 -14 21 -30 36 -48
+c33 -38 79 -80 130 -120c38 -30 78 -56 114 -76c33 -19 63 -33 84 -38c2 -1 4 -1 6 -1c6 -1 1 8 -1 12c-7 12 -14 26 -32 47c0 0 3 6 7 17z" />
+    <glyph glyph-name="ion-ios-keypad" unicode="&#xf450;" horiz-adv-x="384" 
+d="M331 107c30 0 53 -24 53 -54s-23 -53 -53 -53s-54 23 -54 53s24 54 54 54zM192 107c30 0 53 -24 53 -54s-23 -53 -53 -53s-53 23 -53 53s23 54 53 54zM53 107c30 0 54 -24 54 -54s-24 -53 -54 -53s-53 23 -53 53s23 54 53 54zM331 245c30 0 53 -23 53 -53
+s-23 -53 -53 -53s-54 23 -54 53s24 53 54 53zM192 245c30 0 53 -23 53 -53s-23 -53 -53 -53s-53 23 -53 53s23 53 53 53zM53 245c30 0 54 -23 54 -53s-24 -53 -54 -53s-53 23 -53 53s23 53 53 53zM331 384c30 0 53 -23 53 -53s-23 -54 -53 -54s-54 24 -54 54s24 53 54 53z
+M192 384c30 0 53 -23 53 -53s-23 -54 -53 -54s-53 24 -53 54s23 53 53 53zM53 384c30 0 54 -23 54 -53s-24 -54 -54 -54s-53 24 -53 54s23 53 53 53z" />
+    <glyph glyph-name="ion-md-contrast" unicode="&#xf2d9;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM321 79c30 30 47 70 47 113s-17 83 -47 113s-70 47 -113 47v-320c43 0 83 17 113 47z" />
+    <glyph glyph-name="ion-md-save" unicode="&#xf1a9;" horiz-adv-x="384" 
+d="M299 384l85 -85v-256c0 -24 -19 -43 -43 -43h-298c-24 0 -43 19 -43 43v298c0 24 19 43 43 43h256zM192 43c35 0 64 29 64 64s-29 64 -64 64s-64 -29 -64 -64s29 -64 64 -64zM256 256v85h-213v-85h213z" />
+    <glyph glyph-name="ion-md-football" unicode="&#xf2f6;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM79 210l-44 -38c3 -27 12 -53 27 -76h58l15 29l-17 67zM296 96h57c15 23 25 49 28 76l-44 38l-39 -18l-17 -67zM329 242l19 54c-19 26 -46 46 -76 58l-48 -33v-47l61 -52zM143 354
+c-30 -12 -56 -32 -75 -58l19 -54l43 -20l61 52v47zM170 22c11 -2 23 -4 35 -4c13 0 29 2 41 4c1 0 2 1 3 1l19 54l-15 30h-90l-15 -29l20 -56h2z" />
+    <glyph glyph-name="ion-md-star-half" unicode="&#xf382;" horiz-adv-x="404" 
+d="M404 238l-110 -96l33 -142l-125 75l-125 -75l33 142l-110 96l145 12l57 134l57 -134zM219 103l60 -36l-16 68l-5 19l15 12l53 46l-70 6l-19 2l-8 18l-27 64v-189z" />
+    <glyph glyph-name="ion-logo-game-controller-b" unicode="&#xf181;" horiz-adv-x="448" 
+d="M103 243c11 0 19 -8 19 -19s-8 -19 -19 -19s-19 8 -19 19s8 19 19 19zM434 199c21 -88 18 -152 -7 -164c-4 -2 -9 -3 -13 -3c-22 0 -45 24 -67 52c-26 32 -33 33 -111 33h-24c-78 0 -84 -1 -110 -33c-23 -28 -46 -52 -68 -52c-4 0 -9 1 -13 3c-25 12 -28 76 -7 164
+s43 136 88 149c10 3 18 4 26 4c28 0 47 -15 96 -15s68 15 96 15c8 0 16 -1 26 -4c45 -13 67 -61 88 -149zM103 184c22 0 39 18 39 40s-17 40 -39 40s-39 -18 -39 -40s17 -40 39 -40zM276 204c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20zM320 160
+c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20zM320 248c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20zM364 204c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20z" />
+    <glyph glyph-name="ion-ios-woman" unicode="&#xf271;" horiz-adv-x="256" 
+d="M158 -48c-6 0 -12 3 -16 7c-3 3 -7 8 -7 18v120h-14v-120c0 -10 -4 -16 -7 -19c-4 -4 -10 -6 -16 -6s-13 2 -17 6c-3 3 -7 9 -7 19v120h-44l44 170h-6l-25 -90c-4 -13 -13 -18 -21 -18v0c-7 0 -13 3 -17 9c-5 6 -6 15 -4 24l29 104c4 15 21 38 49 39v0h98
+c28 -1 45 -26 49 -39v0l29 -105c2 -9 1 -18 -4 -24c-4 -5 -11 -8 -17 -8c-8 0 -17 5 -21 18v0l-24 90h-8l45 -170h-45v-120c0 -10 -4 -15 -7 -18c-4 -4 -10 -7 -16 -7zM128 342c-24 0 -44 20 -44 45s20 45 44 45s44 -20 44 -45s-20 -45 -44 -45z" />
+    <glyph glyph-name="ion-logo-yen" unicode="&#xf34e;" horiz-adv-x="384" 
+d="M384 416l-112 -208h48v-48h-73l-15 -31v-17h88v-48h-88v-96h-80v96h-88v48h88v17l-14 31h-74v48h48l-112 208h80l112 -221l112 221h80z" />
+    <glyph glyph-name="ion-ios-phone-portrait" unicode="&#xf1e3;" horiz-adv-x="224" 
+d="M192 416c18 0 32 -15 32 -33v-381c0 -18 -14 -34 -32 -34h-159c-18 0 -33 16 -33 34v381c0 18 15 33 33 33h159zM97 393c-2 0 -4 -2 -4 -4s2 -4 4 -4h30c2 0 4 2 4 4s-2 4 -4 4h-30zM112 -17c10 0 18 7 18 17s-8 18 -18 18s-17 -8 -17 -18s7 -17 17 -17zM206 32
+c1 0 2 1 2 2v329c0 1 -1 2 -2 2h-188c-1 0 -2 -1 -2 -2v-329c0 -1 1 -2 2 -2h188z" />
+    <glyph glyph-name="ion-md-jet" unicode="&#xf315;" horiz-adv-x="448" 
+d="M448 416c0 0 1 -24 -27 -60c-13 -17 -128 -175 -128 -175l4 -169l-39 -44l-55 110l-11 -9v-88l-41 -7l-48 63l-60 -26l26 60l-63 48l7 41h88l9 11l-110 55l44 39l169 -4s159 115 176 128c36 28 59 27 59 27z" />
+    <glyph glyph-name="ion-ios-cloud-done" unicode="&#xf154;" horiz-adv-x="512" 
+d="M437 218c43 -8 75 -47 75 -92c0 -50 -41 -94 -91 -94h-330c-50 0 -91 44 -91 94c0 41 26 80 66 93c1 39 33 74 72 74c10 0 19 -3 27 -6c27 39 72 65 123 65c77 0 141 -59 149 -134zM362 236c2 2 2 3 0 5l-17 18c-1 1 -2 2 -3 2v0c-1 0 -2 -1 -3 -2l-122 -123l-44 45
+c-1 1 -2 1 -3 1s-2 0 -3 -1l-18 -18c-2 -2 -2 -4 0 -6l56 -56c4 -4 8 -5 12 -5c5 0 10 3 12 5v0z" />
+    <glyph glyph-name="ion-md-pricetag" unicode="&#xf35a;" horiz-adv-x="384" 
+d="M352 384l32 -32v-160l-188 -179c-9 -9 -23 -13 -31 -13s-21 5 -29 13l-123 123c-9 9 -13 20 -13 31c0 10 5 21 13 29l181 188h158zM321 281c10 3 19 12 22 22c6 22 -10 41 -31 41c-18 0 -32 -14 -32 -32c0 -21 19 -37 41 -31z" />
+    <glyph glyph-name="ion-md-text" unicode="&#xf38f;" horiz-adv-x="384" 
+d="M344 384c22 0 40 -18 40 -40v-240c0 -22 -18 -40 -40 -40h-280l-64 -64v344c0 22 10 40 32 40h312zM134 206v40h-38v-40h38zM211 206v40h-38v-40h38zM288 206v40h-38v-40h38z" />
+    <glyph glyph-name="ion-ios-paw" unicode="&#xf47a;" 
+d="M276 368c23 -3 38 -36 33 -73c-5 -34 -26 -60 -48 -60h-4c-23 3 -37 36 -32 73c5 34 25 60 47 60h1v0v0v0h3zM273 368v0v0zM394 279c22 -9 29 -45 15 -79c-12 -29 -34 -47 -54 -47c-4 0 -7 1 -11 2c-22 9 -28 44 -14 78c12 29 33 48 53 48v0v0v0c4 0 7 -1 11 -2zM280 153
+c24 -37 71 -40 83 -72c2 -6 4 -13 4 -19c0 -26 -20 -46 -46 -46c-32 0 -75 24 -113 24s-81 -24 -113 -24c-26 0 -46 20 -46 46c0 6 1 13 3 19c12 32 60 35 84 72c28 44 40 60 72 60s44 -16 72 -60zM155 235c-22 0 -43 26 -48 60c-5 37 10 70 33 73h4c22 0 43 -26 48 -60
+c5 -37 -10 -70 -33 -73h-4zM72 155c-4 -1 -7 -2 -11 -2c-20 0 -42 18 -54 47c-14 34 -7 70 15 79c4 1 7 2 11 2c20 0 42 -19 54 -48c14 -34 7 -69 -15 -78z" />
+    <glyph glyph-name="ion-md-heart-half" unicode="&#xf1a2;" 
+d="M302 384c64 0 114 -50 114 -115c0 -80 -71 -144 -178 -242l-30 -27l-30 27c-107 98 -178 162 -178 242c0 65 50 115 114 115c36 0 71 -17 94 -44c23 27 58 44 94 44zM208 42c50 46 107 99 136 135c28 35 40 63 40 92c0 23 -9 44 -24 59s-35 24 -58 24
+c-26 0 -53 -13 -70 -33l-24 -29v-248z" />
+    <glyph glyph-name="ion-ios-images" unicode="&#xf19e;" horiz-adv-x="448" 
+d="M230 249l70 -136c2 -3 -1 -7 -5 -7l-161 14c-4 0 -5 4 -3 7l92 123c2 2 5 2 7 -1zM335 184l46 -78c2 -3 -1 -8 -5 -8l-45 4c-2 0 -2 2 -3 3l-26 49c-1 2 0 4 1 6l25 25c2 2 5 2 7 -1zM346 224c-15 0 -27 13 -24 28c2 11 12 19 23 19c15 0 27 -13 24 -28
+c-2 -11 -12 -19 -23 -19zM423 319c15 -1 26 -15 25 -30l-26 -296c-1 -15 -14 -26 -29 -25l-298 26c-15 1 -25 14 -24 29l1 17l-16 -1c-15 -1 -28 9 -29 24l-27 297c-1 15 10 28 25 29l297 27c15 1 28 -10 29 -25l6 -67zM56 147l26 3l15 170c1 15 14 26 29 25l202 -18l-5 53
+c0 4 -3 6 -7 6l-280 -25c-4 0 -6 -4 -6 -8l18 -200c0 -4 4 -6 8 -6zM418 283c0 4 -2 7 -6 7l-52 5l-30 2l-198 17c-4 0 -7 -2 -7 -6l-14 -156l-3 -44c0 -4 2 -7 6 -7l260 -23l19 -1c4 0 7 2 7 6z" />
+    <glyph glyph-name="ion-md-arrow-back" unicode="&#xf27d;" horiz-adv-x="342" 
+d="M342 213v-42h-260l119 -120l-30 -30l-171 171l171 171l31 -30l-120 -120h260z" />
+    <glyph glyph-name="ion-md-finger-print" unicode="&#xf2ee;" horiz-adv-x="384" 
+d="M14 242c-2 0 -5 1 -7 2c-7 4 -9 12 -5 19c18 30 72 101 190 101c51 0 96 -14 133 -41c31 -22 49 -47 57 -59c4 -6 2 -15 -4 -19s-16 -3 -20 3c-15 22 -60 88 -166 88c-104 0 -151 -61 -166 -87c-3 -5 -7 -7 -12 -7zM252 -32h-4c-86 22 -118 108 -119 112v1
+c-1 2 -18 62 8 97c12 16 31 24 55 24c23 0 39 -7 50 -22c9 -12 13 -27 17 -41c8 -30 13 -45 44 -47c14 -1 23 7 28 14c14 19 15 50 5 77c-13 35 -60 101 -144 101c-36 0 -69 -12 -95 -34c-22 -18 -39 -44 -47 -70c-15 -49 5 -125 5 -126c2 -7 -2 -15 -10 -17s-15 3 -17 10
+c-1 4 -23 86 -5 142c19 61 79 122 169 122c42 0 81 -14 114 -41c25 -21 46 -49 57 -77c14 -36 10 -77 -10 -103c-13 -18 -32 -27 -52 -26c-53 3 -63 40 -70 68s-11 42 -39 42c-15 0 -25 -4 -32 -13c-9 -12 -10 -30 -9 -44s4 -26 5 -28c2 -6 31 -77 99 -94
+c8 -2 12 -10 10 -17c-2 -6 -7 -10 -13 -10zM142 -26c-4 0 -8 2 -11 5c-34 36 -54 77 -61 128v0c-4 34 3 81 32 114c22 24 52 37 90 37c45 0 81 -22 103 -62c16 -29 19 -58 19 -59c1 -8 -4 -14 -12 -15s-15 4 -16 12v0s-2 26 -16 50c-17 31 -43 46 -78 46
+c-30 0 -54 -9 -70 -27c-23 -26 -27 -66 -24 -92c6 -45 24 -81 54 -113c5 -6 5 -15 -1 -20c-3 -2 -6 -4 -9 -4zM300 14c-30 0 -56 9 -76 26c-41 33 -46 88 -46 90c-1 8 5 14 13 15s14 -5 15 -13c0 -1 4 -45 36 -71c19 -15 43 -22 74 -18c8 1 15 -4 16 -12s-5 -14 -13 -15
+c-7 -1 -13 -2 -19 -2zM323 385c5 -2 9 -7 9 -13c0 -8 -6 -13 -14 -13c-3 0 -7 0 -9 2v0v0s-36 27 -117 27s-117 -27 -117 -27v0v0c-2 -2 -5 -2 -8 -2c-8 0 -14 5 -14 13c0 4 1 8 4 11v0h1s0 1 1 1c9 6 51 32 133 32c78 0 119 -23 131 -31z" />
+    <glyph glyph-name="ion-md-refresh" unicode="&#xf366;" horiz-adv-x="352" 
+d="M176 60c56 0 104 34 123 84h46c-21 -74 -88 -128 -169 -128c-98 0 -176 79 -176 176s79 176 176 176c48 0 92 -20 124 -52l52 52v-154h-154l70 70c-23 24 -56 40 -92 40c-73 0 -132 -59 -132 -132s59 -132 132 -132z" />
+    <glyph glyph-name="ion-ios-undo" unicode="&#xf4c7;" horiz-adv-x="448" 
+d="M448 53v-37h-3c-2 0 -3 1 -4 3c-2 6 -8 20 -21 40c-22 33 -59 67 -95 83c-28 12 -53 21 -97 23c-2 0 -4 -2 -4 -4v-81c0 -3 -3 -6 -6 -4l-216 142c-2 2 -2 5 0 7l216 142c3 2 6 0 6 -3v-83c0 -2 2 -4 4 -4c72 -4 123 -24 163 -65c61 -62 57 -139 57 -159z" />
+    <glyph glyph-name="ion-md-arrow-dropup-circle" unicode="&#xf285;" 
+d="M416 192c0 -115 -93 -208 -208 -208s-208 93 -208 208s93 208 208 208s208 -93 208 -208zM304 160l-96 96l-96 -96h192z" />
+    <glyph glyph-name="ion-logo-skype" unicode="&#xf24a;" horiz-adv-x="384" 
+d="M373 151c7 -14 11 -29 11 -46c0 -58 -47 -105 -106 -105c-18 0 -35 4 -50 12c-11 -2 -22 -3 -34 -3c-101 0 -183 81 -183 181c0 12 2 24 4 36c-9 16 -15 34 -15 53c0 58 47 105 106 105c21 0 41 -6 57 -16c10 2 20 2 31 2c101 0 183 -80 183 -180c0 -13 -1 -27 -4 -39z
+M288 104c9 12 12 25 12 40c0 12 -2 23 -7 32s-12 16 -21 22s-19 10 -31 14s-26 7 -41 10c-12 3 -20 5 -25 6s-10 4 -15 6s-7 5 -10 8c-2 3 -4 6 -4 10c0 7 3 13 11 18s19 7 32 7c14 0 25 -2 31 -7s11 -12 16 -20c4 -7 8 -11 11 -14c4 -3 9 -5 16 -5c8 0 13 3 18 8s8 11 8 17
+c0 7 -2 14 -6 21s-10 14 -18 20s-18 11 -30 15s-27 5 -43 5c-20 0 -38 -2 -53 -8c-16 -6 -28 -15 -36 -25c-8 -11 -12 -22 -12 -36s3 -26 11 -36s19 -17 32 -23c13 -5 29 -10 48 -14c14 -3 26 -5 34 -8c8 -2 14 -6 19 -11c5 -4 7 -10 7 -17c0 -9 -4 -17 -13 -23
+s-22 -9 -37 -9c-11 0 -20 2 -27 5s-11 6 -15 11s-8 12 -11 19s-6 11 -10 15s-10 6 -16 6c-8 0 -14 -2 -19 -7s-8 -10 -8 -17c0 -11 4 -22 12 -33s18 -19 30 -26c17 -9 39 -14 65 -14c22 0 42 3 58 10s29 16 37 28z" />
+    <glyph glyph-name="ion-ios-pizza" unicode="&#xf1e7;" horiz-adv-x="384" 
+d="M383 338c3 -9 0 -18 -4 -26c-6 -12 -17 -13 -23 -14l-158 -295c-1 -2 -3 -3 -5 -3v0c-2 0 -5 1 -6 3l-158 296c-10 1 -19 8 -22 14c0 1 -2 2 -2 3c-3 6 -7 13 -4 21c2 7 15 14 27 20c28 13 71 27 165 27c91 0 138 -15 165 -27c11 -5 22 -12 25 -19zM117 225
+c3 8 2 18 -2 26s-11 13 -20 16c-4 1 -7 2 -11 2h-1c-3 0 -4 -3 -3 -6c8 -14 16 -30 25 -47c1 -3 5 -2 7 0c2 3 4 5 5 9zM233 128l26 48c1 1 0 4 -1 5c-6 7 -15 11 -25 11c-19 0 -34 -15 -34 -33c0 -17 13 -31 30 -33c2 0 3 1 4 2zM268 305c3 2 6 4 8 7s0 6 -3 7
+c-16 3 -33 5 -51 6c-3 0 -5 -2 -4 -5s3 -6 5 -9c5 -7 12 -11 21 -12c2 0 3 -1 5 -1c7 0 13 3 19 7z" />
+    <glyph glyph-name="ion-md-glasses" unicode="&#xf300;" horiz-adv-x="448" 
+d="M448 272v0v0v-48h-11l-5 -22c-16 -65 -40 -90 -95 -90s-97 17 -97 90v22s-2 16 -16 16s-16 -16 -16 -16v-22c0 -73 -40 -90 -96 -90s-80 22 -96 90l-5 22h-11v48h208v0h32v0h208z" />
+    <glyph glyph-name="ion-ios-contact" unicode="&#xf41a;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208v0v0c-108 0 -196 81 -207 186c-1 7 -1 15 -1 22s0 15 1 22c11 105 99 186 207 186v0v0zM344 74c29 33 44 74 44 118c0 48 -19 93 -53 127s-79 53 -127 53s-93 -19 -127 -53s-53 -79 -53 -127c0 -44 15 -85 44 -118
+c21 8 56 21 80 28c2 1 3 0 3 10c0 11 -1 18 -4 24c-4 8 -7 20 -9 31c-4 5 -10 15 -14 33c-3 16 -1 22 1 28v2c1 4 0 23 -3 38c-2 10 1 34 15 52c9 12 27 26 58 28h18c32 -2 49 -16 58 -28c14 -18 17 -42 15 -52c-3 -15 -4 -34 -3 -38c0 0 1 -1 1 -2c2 -6 3 -12 0 -28
+c-4 -18 -10 -27 -14 -32c-2 -11 -5 -24 -9 -32c-3 -7 -6 -15 -6 -23c0 -10 0 -10 2 -11c23 -7 60 -19 83 -28z" />
+    <glyph glyph-name="ion-md-copy" unicode="&#xf2da;" horiz-adv-x="336" 
+d="M208 400l128 -128v-200c0 -22 -18 -40 -40 -40h-8v-8c0 -22 -18 -40 -40 -40h-208c-22 0 -40 18 -40 40v288c0 22 18 40 40 40h8v8c0 22 18 40 40 40h120zM208 355v-83h83zM256 24v8h-176c-22 0 -32 10 -32 32v256h-8c-5 0 -8 -4 -8 -8v-288c0 -4 4 -8 8 -8h208
+c4 0 8 3 8 8zM304 72v168h-96h-32v32v96h-16h-72c-5 0 -8 -4 -8 -8v-288c0 -4 4 -8 8 -8h208c4 0 8 3 8 8z" />
+    <glyph glyph-name="ion-ios-people" unicode="&#xf47c;" horiz-adv-x="449" 
+d="M318 113c11 -4 45 -22 45 -67h-139h-139c0 45 35 63 46 67s29 5 37 8c6 2 15 4 18 8s3 28 3 28s-7 7 -10 14s-5 28 -5 28s-6 -3 -9 10c-2 11 -6 18 -5 26s5 6 5 6s-5 9 -5 38c0 30 22 59 64 59s65 -29 65 -59c0 -29 -6 -38 -6 -38s5 2 6 -6s-3 -15 -5 -26
+c-3 -13 -10 -10 -10 -10s-1 -21 -4 -28s-10 -14 -10 -14s0 -24 3 -28s11 -6 17 -8c8 -3 27 -4 38 -8zM108 162c0 0 -1 -14 1 -16s19 -6 19 -6c12 -2 9 -9 9 -9c-7 -1 -16 0 -25 -5c-15 -8 -30 -22 -32 -30h-80c0 20 15 35 23 38s16 5 25 7c4 1 10 3 12 5s2 17 2 17v0
+s-24 -1 -34 8c16 20 7 51 10 77s18 41 46 41v0h1c29 0 44 -15 47 -41s-6 -53 10 -77c-10 -8 -34 -9 -34 -9zM340 162c0 0 -23 1 -33 9c16 24 7 51 10 77s18 41 47 41c0 0 -1 0 0 0v0c28 0 44 -15 47 -41s-6 -57 10 -77c-10 -9 -33 -8 -33 -8v0s-2 -15 0 -17s8 -4 12 -5
+c9 -2 18 -4 26 -7s23 -18 23 -38h-80c-2 8 -17 22 -32 30c-9 5 -18 4 -25 5c0 0 -3 7 9 9c0 0 17 4 19 6s0 16 0 16z" />
+    <glyph glyph-name="ion-md-baseball" unicode="&#xf291;" 
+d="M318 45c5 -6 10 -12 16 -18c-35 -27 -78 -43 -126 -43s-91 16 -126 43c6 6 11 12 16 18l23 -13l16 28l-20 12c5 9 10 17 14 26c1 3 3 7 4 10l25 -6l7 32l-23 5c3 12 5 24 6 37h24v32h-24c-1 12 -3 25 -6 37l23 5l-7 32l-25 -6c-1 3 -3 6 -4 9c-4 9 -9 19 -14 27l20 12
+l-16 28l-23 -14c-5 6 -10 13 -16 19c35 27 78 43 126 43s91 -16 126 -43c-6 -6 -11 -13 -16 -19l-23 14l-16 -28l20 -12c-5 -8 -10 -18 -14 -27c-1 -3 -3 -6 -4 -9l-25 6l-7 -32l23 -5c-3 -12 -5 -25 -6 -37h-24v-32h24c1 -13 3 -25 6 -37l-23 -5l7 -32l25 6
+c1 -3 3 -7 4 -10c4 -9 9 -18 14 -26l-20 -12l16 -28zM346 322c3 4 6 7 10 11l2 2c36 -37 58 -88 58 -143s-22 -106 -58 -144l-2 2c-4 4 -7 8 -10 12l18 10l-16 28l-21 -12c-5 8 -9 17 -13 26l-1 1l21 5l-7 32l-24 -6c-2 10 -4 20 -5 30h24v32h-24c1 10 3 20 5 30l24 -6l7 32
+l-21 5v1c4 9 9 18 14 26l21 -13l16 28zM70 62c-3 -4 -6 -7 -10 -11l-2 -2c-36 37 -58 88 -58 143s22 106 58 144l2 -2c4 -4 7 -8 10 -12l-18 -11l16 -28l21 13c5 -8 9 -17 13 -26l1 -1l-21 -5l7 -32l24 6c2 -10 4 -20 5 -30h-24v-32h24c-1 -10 -3 -20 -5 -30l-24 6l-7 -32
+l21 -5v-1c-4 -9 -9 -18 -14 -26l-21 12l-16 -28z" />
+    <glyph glyph-name="ion-logo-tux" unicode="&#xf2ae;" horiz-adv-x="384" 
+d="M362 52c7 -4 22 -10 22 -20s-16 -16 -42 -30s-33 -34 -61 -34s-28 18 -39 21s-33 2 -46 2s-35 2 -42 -4c-11 -9 -23 -19 -38 -19s-26 9 -56 16s-60 7 -60 23s11 17 7 31s-7 25 -4 30s10 4 19 5s19 2 22 11c1 5 -2 17 5 25c-4 16 -2 27 10 44c17 23 15 38 24 53
+s31 36 36 45c9 16 9 22 8 55c0 0 -2 22 -2 51c0 27 17 59 67 59s68 -31 70 -69c4 -60 0 -68 26 -100c15 -18 37 -43 45 -68s13 -56 12 -66c-1 -6 -1 -9 -3 -11c3 -1 6 -2 8 -5c3 -4 2 -11 0 -26c-1 -8 5 -15 12 -19zM136 -4c1 13 -4 22 -17 44s-28 53 -42 60s-21 5 -22 0
+s-2 -20 -3 -23c-3 -6 -11 -11 -16 -12s-19 1 -22 -4s4 -16 4 -24c0 -21 -14 -32 1 -35c14 -2 34 -6 49 -10s31 -11 44 -12c12 -1 23 3 24 16zM254 62c-2 10 -5 28 1 35c4 5 10 6 17 5c0 4 0 8 3 12s11 7 19 7c16 0 24 -11 20 -5c-3 4 -8 10 -13 11c0 0 4 11 2 33
+c-4 40 -34 62 -34 62c27 -30 27 -58 27 -72c0 -6 -1 -16 -4 -22c0 0 -6 -1 -12 -3c-11 -4 -8 -3 -7 7c3 29 -7 64 -17 77s-7 19 -15 35s-18 18 -15 34s5 22 -8 25s-23 8 -24 13c0 2 -1 5 0 10s5 13 14 13c8 0 14 -5 14 -13s-4 -13 -5 -14c-2 -2 3 -3 7 -3c3 4 6 10 6 22
+c0 15 -10 25 -22 25s-29 -11 -22 -41c-8 6 -15 5 -21 3c0 0 2 15 -2 23c-4 9 -18 16 -24 4s-3 -25 0 -31s4 -6 4 -6c2 1 5 4 5 4s-6 3 -7 11c-1 9 3 14 7 15s10 -2 12 -8s0 -13 0 -13s-8 -8 -12 -11s-12 -7 -12 -11s6 -11 15 -17c11 -7 19 -7 44 3c19 7 16 11 22 13
+c4 1 7 -3 5 -6s-6 -2 -22 -9s-21 -8 -29 -11c-6 -2 -11 -5 -26 9c-1 1 10 -16 17 -19s35 11 51 18c3 1 7 -2 3 -6s-29 -25 -48 -28c-11 -2 -21 16 -25 22c-5 8 -7 11 -5 -12s-9 -32 -17 -43s-13 -17 -19 -44s2 -56 -8 -53c-6 2 -14 12 -14 25s-1 17 0 20c1 4 -4 -8 -4 -21
+s2 -17 7 -23c3 -4 44 -32 55 -42s12 -21 9 -28s-11 -10 -11 -10s5 -9 9 -18c3 -7 2 -18 2 -22c0 0 10 9 5 25c0 0 11 -10 32 -8c25 2 41 11 53 22c11 10 12 12 12 2c1 -17 -7 -24 -5 -31c4 8 9 11 11 23s1 26 -1 36zM344 15c24 11 31 16 23 22c-17 11 -29 16 -29 32
+c0 5 5 15 3 21c-2 4 -7 4 -7 4c-10 -24 -33 -22 -33 -22c-20 0 -26 15 -27 20c-2 0 -10 2 -11 -4s1 -13 5 -37c6 -31 -11 -49 -5 -59s19 -16 34 -8s23 21 47 31z" />
+    <glyph glyph-name="ion-ios-skip-backward" unicode="&#xf215;" horiz-adv-x="320" 
+d="M79 348v-138l229 140c5 3 12 -1 12 -7v-302c0 -6 -7 -10 -12 -7l-229 140v-138c0 -2 -2 -4 -4 -4h-71c-2 0 -4 2 -4 4v312c0 2 2 4 4 4h71c2 0 4 -2 4 -4z" />
+    <glyph glyph-name="ion-ios-help-circle-outline" unicode="&#xf197;" 
+d="M208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127s79 -53 127 -53s93 19 127 53s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM209 288c38 0 63 -21 63 -51
+c0 -20 -10 -33 -28 -44c-17 -10 -23 -17 -23 -30v-8h-35v8c-2 21 5 33 23 44c17 10 24 17 24 29s-12 22 -27 22s-25 -10 -26 -25h-36c1 32 25 55 65 55zM182 117c0 12 10 20 22 20s21 -8 21 -20s-9 -21 -21 -21s-22 9 -22 21z" />
+    <glyph glyph-name="ion-logo-wordpress" unicode="&#xf330;" horiz-adv-x="384" 
+d="M195 177l53 -146c0 -1 6 -13 9 -19c-3 -1 -5 -2 -8 -3v0c-10 -3 -21 -6 -32 -7c-8 -1 -17 -2 -25 -2c-17 0 -34 2 -50 6v0c-2 0 -3 2 -5 2l25 73v0zM17 268c6 0 7 -1 15 -1l93 -255c-3 1 -5 2 -8 3c-63 27 -109 87 -116 158c-1 6 -1 13 -1 19c0 25 7 53 17 76zM366 273
+c11 -24 18 -52 18 -81c0 -9 -1 -18 -2 -26c-9 -65 -50 -120 -107 -147c-2 -1 -3 -1 -5 -2l22 65l39 113c10 25 13 45 13 62v19v0c-1 18 -10 44 -36 43h-2c-17 0 -29 -14 -29 -30c0 -14 8 -27 17 -41c7 -12 14 -26 14 -47c0 -15 -4 -34 -13 -56l-17 -58l-62 186
+c10 0 20 1 20 1c9 1 7 16 -2 15c0 0 -28 -3 -46 -3c-17 0 -45 3 -45 3c-9 1 -10 -15 -1 -15c0 0 9 -1 18 -1l27 -74l-38 -113l-63 187c10 0 20 2 20 2c9 1 8 15 -1 14c0 0 -28 -2 -46 -2h-34c5 9 11 17 17 25c35 44 90 72 150 72c24 0 48 -5 69 -13c34 -13 63 -36 85 -65
+c2 -2 3 -5 5 -7c6 -8 11 -17 15 -26z" />
+    <glyph glyph-name="ion-ios-speedometer" unicode="&#xf4b0;" horiz-adv-x="448" 
+d="M224 384c124 0 224 -100 224 -224c0 -57 -21 -108 -56 -148l-4 -4c-5 -5 -11 -8 -18 -8s-14 3 -19 8c-32 34 -77 56 -127 56s-95 -22 -127 -56c-5 -5 -12 -8 -19 -8s-13 3 -18 8l-4 4c-35 40 -56 91 -56 148c0 124 100 224 224 224zM210 338v-36c0 -8 6 -14 14 -14
+s14 6 14 14v36c0 8 -6 14 -14 14s-14 -6 -14 -14zM82 146c8 0 14 6 14 14s-6 14 -14 14h-36c-8 0 -14 -6 -14 -14s6 -14 14 -14h36zM134 251c5 5 5 14 0 19l-26 26c-5 5 -15 5 -20 0v0c-5 -5 -5 -15 0 -20l26 -25c5 -5 15 -5 20 0v0zM294 216c3 4 2 11 -2 14
+c-4 2 -9 2 -12 0l-75 -47c-14 -10 -17 -28 -7 -42s28 -17 42 -7c3 2 5 4 7 7zM334 251l26 25c5 5 5 15 0 20v0c-5 5 -15 5 -20 0l-26 -26c-5 -5 -5 -14 0 -19v0c5 -5 15 -5 20 0zM402 146c8 0 14 6 14 14s-6 14 -14 14h-36c-8 0 -14 -6 -14 -14s6 -14 14 -14h36z" />
+    <glyph glyph-name="ion-md-albums" unicode="&#xf275;" 
+d="M107 -16c-24 0 -43 20 -43 43v266c0 24 19 43 43 43h266c24 0 43 -19 43 -43v-266c0 -24 -19 -43 -43 -43h-266zM43 400h266c24 0 43 -19 43 -43v-5h-32h-229c-24 0 -43 -19 -43 -43v-229v-32h-5c-24 0 -43 19 -43 43v266c0 24 19 43 43 43z" />
+    <glyph glyph-name="ion-ios-map" unicode="&#xf1bd;" horiz-adv-x="384" 
+d="M0 376c0 7 7 11 12 7l70 -51c2 -2 3 -4 3 -7v-316c0 -7 -7 -11 -12 -7l-69 50c-2 2 -4 4 -4 7v317zM105 325c0 3 1 5 3 7l62 36c5 4 12 0 12 -7v-316c0 -3 -1 -5 -3 -7l-62 -37c-5 -4 -12 0 -12 7v317zM372 382c5 4 12 1 12 -6v-317c0 -3 -2 -5 -4 -7l-69 -50
+c-5 -4 -12 0 -12 7v316c0 3 1 5 3 7zM202 362c0 7 7 11 12 7l62 -37c2 -2 3 -4 3 -7v-316c0 -7 -7 -11 -12 -7l-62 37c-2 2 -3 4 -3 7v316z" />
+    <glyph glyph-name="ion-ios-thunderstorm" unicode="&#xf4bd;" horiz-adv-x="448" 
+d="M342 306c58 0 106 -41 106 -100c0 -58 -41 -110 -113 -110h-84l54 85c2 3 0 7 -3 7h-60l22 74c1 3 -1 6 -4 6h-86c-2 0 -4 -2 -4 -4l-23 -112c-1 -2 1 -5 4 -5h67l-14 -51h-119c-47 0 -85 41 -85 88c0 44 34 84 76 90v4c0 71 58 122 128 122s113 -40 125 -94h13zM175 -11
+l29 107h47l-69 -110c-2 -4 -8 -1 -7 3z" />
+    <glyph glyph-name="ion-ios-heart-half" unicode="&#xf19d;" 
+d="M304 392c62 -1 112 -51 112 -113c0 -37 -16 -90 -48 -133c-60 -82 -160 -154 -160 -154s-100 72 -160 154c-32 43 -48 96 -48 133c0 62 50 112 112 113v0v0h1c40 0 75 -21 95 -52c20 31 55 52 95 52h1v0v0zM346 163c29 40 42 87 42 116c0 22 -8 44 -24 60s-38 25 -60 25
+v0h-1v0c-14 0 -28 -4 -41 -11c-12 -7 -22 -16 -30 -28l-1 -1c-15 -22 -23 -48 -23 -75v-205c0 -7 8 -10 13 -6c33 27 88 74 125 125z" />
+    <glyph glyph-name="ion-md-add-circle-outline" unicode="&#xf158;" 
+d="M315 171h-86v-86h-42v86h-86v42h86v86h42v-86h86v-42zM208 358c-44 0 -86 -18 -117 -49s-49 -73 -49 -117s18 -86 49 -117s73 -49 117 -49s86 18 117 49s49 73 49 117s-18 86 -49 117s-73 49 -117 49zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208
+s-208 93 -208 208s93 208 208 208z" />
+    <glyph glyph-name="ion-ios-arrow-dropup-circle" unicode="&#xf12d;" 
+d="M208 -16c-115 0 -208 93 -208 208s93 208 208 208s208 -93 208 -208s-93 -208 -208 -208zM208 228l81 -79c8 -8 19 -8 27 0c4 4 6 8 6 13s-2 10 -6 14l-94 94c-8 7 -20 6 -27 -1l-95 -95c-8 -8 -8 -19 0 -27s19 -8 27 0z" />
+    <glyph glyph-name="ion-ios-rainy" unicode="&#xf495;" 
+d="M386 272c19 -18 30 -42 30 -69c0 -24 -9 -48 -25 -67c-15 -18 -36 -31 -58 -35l-69 -95c-3 -4 -8 -6 -13 -6c-3 0 -6 1 -9 3s-6 6 -6 10s1 7 3 10l55 75h-35l-37 -50c-3 -4 -7 -5 -12 -5c-3 0 -7 0 -9 2c-3 2 -5 6 -6 10s1 8 3 11l24 32h-35l-67 -92c-2 -3 -7 -6 -14 -6
+c-2 0 -4 1 -8 3c-3 2 -6 6 -6 10s0 7 2 10l56 75h-35l-37 -50c-3 -4 -8 -5 -13 -5c-3 0 -7 0 -9 2c-3 2 -5 6 -6 10s1 8 3 11v0l24 32c-42 3 -77 41 -77 86c0 21 8 42 22 58c12 14 28 24 46 28c1 31 13 60 36 81s53 33 86 33c31 0 60 -9 81 -26c18 -15 31 -34 37 -58h6
+c28 0 53 -10 72 -28z" />
+    <glyph glyph-name="ion-ios-trash" unicode="&#xf4c5;" horiz-adv-x="276" 
+d="M15 320h247l-24 -291c0 -16 -13 -29 -29 -29h-141c-16 0 -29 13 -29 29zM77 55h18l-7 233h-18zM147 55v233h-18v-233h18zM199 55l7 233h-18l-7 -233h18zM246 356c18 0 30 -8 30 -26h-276c0 18 12 26 30 26h36l26 23c4 3 9 5 14 5h64c5 0 10 -2 14 -5l26 -23h36z" />
+    <glyph glyph-name="ion-md-image" unicode="&#xf30e;" horiz-adv-x="384" 
+d="M384 43c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h298c23 0 43 -20 43 -43v-298zM117 160l-74 -96h298l-96 128l-74 -96z" />
+    <glyph glyph-name="ion-ios-airplane" unicode="&#xf137;" horiz-adv-x="448" 
+d="M376 224c44 0 72 -14 72 -32s-28 -32 -72 -32h-18l-65 2c-1 0 -2 0 -2 -1l-97 -146c-3 -5 -8 -7 -14 -7h-23c-6 0 -8 6 -6 11l50 143c0 1 -1 2 -2 2l-121 3c-2 0 -5 -1 -7 -3l-38 -46c-3 -4 -7 -6 -12 -6h-17c-3 0 -5 3 -4 6l20 68c2 4 2 8 0 12l-20 69c-1 3 1 5 4 5h17
+c5 0 9 -2 12 -6l37 -45c2 -2 4 -3 7 -3l122 2c1 0 2 1 2 2l-50 143c-2 5 0 11 6 11h23c5 0 11 -2 14 -7l97 -146c0 -1 1 -1 2 -1l65 2h18z" />
+    <glyph glyph-name="ion-md-calendar" unicode="&#xf2ab;" horiz-adv-x="384" 
+d="M304 176v-96h-96v96h96zM272 384h48v-32h24c22 0 40 -18 40 -40v-272c0 -22 -18 -40 -40 -40h-304c-22 0 -40 18 -40 40v272c0 22 18 40 40 40h24v32h48v-32h160v32zM344 40v212h-304v-212h304z" />
+    <glyph glyph-name="ion-md-redo" unicode="&#xf365;" horiz-adv-x="448" 
+d="M0 111c30 92 116 157 218 157c58 0 110 -21 150 -56l80 76v-192h-198l80 77c-30 25 -69 41 -112 41c-77 0 -143 -48 -166 -118z" />
+    <glyph glyph-name="ion-ios-sync" unicode="&#xf222;" horiz-adv-x="480" 
+d="M476 191c5 -5 5 -14 0 -19l-42 -42c-2 -2 -4 -3 -7 -3s-5 1 -7 3l-43 42c-5 5 -5 14 0 19c2 2 6 4 10 4s7 -2 9 -4l19 -18c3 24 0 48 -7 71c-8 27 -24 53 -44 73c-17 17 -36 30 -58 39c-21 9 -43 13 -66 13s-45 -4 -66 -13c-22 -9 -41 -22 -58 -39
+c-12 -12 -22 -25 -30 -39c-2 -4 -7 -7 -12 -7c-2 0 -5 0 -7 1c-3 2 -6 5 -7 9s-1 8 1 11c9 16 21 32 34 45c19 20 42 35 68 45c25 10 50 15 77 15c52 0 100 -19 138 -54c46 -42 70 -103 66 -165l13 13c3 3 5 4 9 4s7 -1 10 -4zM413 112c4 -2 6 -4 7 -8s1 -9 -1 -12
+c-9 -17 -21 -31 -35 -45c-20 -20 -42 -35 -67 -45c-24 -10 -51 -15 -77 -15s-53 5 -77 15c-25 10 -48 25 -68 45c-24 24 -40 52 -50 83c-8 24 -11 50 -9 76l-13 -13c-3 -3 -5 -4 -9 -4s-7 1 -10 4c-5 5 -5 14 0 19l42 43c2 2 4 3 7 3s5 -1 7 -3l43 -43c5 -5 5 -13 0 -18
+l-1 -1c-2 -2 -6 -4 -9 -4s-7 2 -9 4l-19 18c-6 -53 12 -106 50 -144c17 -17 37 -30 59 -39c21 -9 43 -12 66 -12s45 3 66 12c22 9 41 22 58 39c12 12 22 25 30 39c2 4 7 8 12 8c2 0 5 -1 7 -2z" />
+    <glyph glyph-name="ion-ios-photos" unicode="&#xf482;" horiz-adv-x="480" 
+d="M448 304c18 0 32 -14 32 -32v-240c0 -18 -14 -32 -32 -32h-336c-18 0 -32 14 -32 32v240c0 18 14 32 32 32h336zM84 332c-18 0 -32 -14 -32 -32v-236h-20c-18 0 -32 14 -32 32v256c0 18 14 32 32 32h352c18 0 32 -14 32 -32v-20h-332z" />
+    <glyph glyph-name="ion-md-locate" unicode="&#xf31c;" horiz-adv-x="448" 
+d="M224 272c44 0 80 -36 80 -80s-36 -80 -80 -80s-80 36 -80 80s36 80 80 80zM415 213h33v-42h-33c-10 -89 -81 -160 -170 -170v-33h-42v33c-89 10 -160 81 -170 170h-33v42h33c10 89 81 160 170 170v33h42v-33c89 -10 160 -81 170 -170zM224 43c82 0 149 67 149 149
+s-67 149 -149 149s-149 -67 -149 -149s67 -149 149 -149z" />
+    <glyph glyph-name="ion-logo-game-controller-a" unicode="&#xf13b;" horiz-adv-x="448" 
+d="M337 302c61 0 111 -45 111 -109s-50 -111 -111 -111h-226c-61 0 -111 47 -111 111s50 109 111 109h226zM168 181v22c0 3 -2 5 -5 5h-35v35c0 3 -2 5 -5 5h-22c-3 0 -5 -2 -5 -5v-35h-36c-3 0 -4 -2 -4 -5v-21c0 -3 2 -6 5 -6h35v-36c0 -3 2 -4 5 -4h21c3 0 6 2 6 5v35h35
+c3 0 5 2 5 5zM288 172c11 0 19 9 19 20s-8 19 -19 19s-20 -8 -20 -19s9 -20 20 -20zM330 131c11 0 20 8 20 19s-9 19 -20 19s-19 -8 -19 -19s8 -19 19 -19zM330 214c11 0 20 10 20 20c0 11 -9 19 -20 19s-19 -8 -19 -19c0 -10 8 -20 19 -20zM373 172c11 0 19 9 19 20
+s-8 19 -19 19s-19 -8 -19 -19s8 -20 19 -20z" />
+    <glyph glyph-name="ion-md-man" unicode="&#xf324;" horiz-adv-x="168" 
+d="M84 341c-21 0 -37 17 -37 38s16 37 37 37s37 -16 37 -37s-16 -38 -37 -38zM121 333c28 0 47 -24 47 -48v-114c0 -22 -32 -22 -32 0v105h-5v-286c0 -28 -41 -31 -43 0v165h-1h-7v-165c-1 -29 -43 -30 -43 0v286h-6v-105c0 -22 -31 -22 -31 0v114c0 24 19 48 47 48h37h37z
+" />
+    <glyph glyph-name="ion-ios-call" unicode="&#xf13e;" horiz-adv-x="384" 
+d="M373 83c15 -15 12 -18 9 -26c0 0 -5 -12 -13 -24c-10 -15 -18 -23 -30 -29s-35 -12 -95 22c-48 27 -85 53 -125 93v0v0v0v0c-40 39 -66 77 -93 125c-34 60 -27 82 -21 94s13 21 28 31c12 8 24 13 24 13c8 3 11 6 26 -9s37 -49 45 -67c10 -20 10 -28 0 -42
+c-8 -12 -17 -20 -14 -34s24 -41 50 -67s52 -46 66 -49s22 5 34 14c14 10 22 10 42 0c17 -8 52 -30 67 -45z" />
+    <glyph glyph-name="ion-ios-arrow-back" unicode="&#xf3cf;" horiz-adv-x="192" 
+d="M58 192l127 -127c9 -9 9 -25 0 -34c-5 -5 -11 -7 -17 -7s-12 2 -17 7l-145 145c-9 9 -8 24 1 33l144 144c9 9 25 9 34 0s9 -25 0 -34z" />
+    <glyph glyph-name="ion-md-barcode" unicode="&#xf290;" horiz-adv-x="480" 
+d="M72 64v256h48v-256h-48zM216 64v256h48v-256h-48zM144 80v224h48v-224h-48zM288 80v224h48v-224h-48zM360 64v256h48v-256h-48zM88 344h-40v-304h40v-48h-88v8v40v304v40v8h88v-48zM392 392h88v-8v-40v-304v-40v-8h-88v48h40v304h-40v48z" />
+    <glyph glyph-name="ion-logo-freebsd-devil" unicode="&#xf238;" horiz-adv-x="512" 
+d="M503 333c19 -37 8 -81 -20 -108s-60 -33 -60 -33c2 -32 16 -59 -41 -102c-43 -32 2 -90 2 -90c10 -14 23 -19 32 -32h-272s15 14 -7 32c0 0 -20 17 -18 29s6 13 9 15s0 7 0 7l-19 19s-13 -13 -44 -13c-38 0 -65 39 -65 39h46s-6 -8 -7 -13c-1 -4 1 -5 1 -5s11 -6 22 -6
+c17 0 33 12 33 12l-24 22l-15 -4l-16 37l39 -10l-1 -15l28 -18s9 9 7 27s-9 26 -9 26s-4 0 -9 -4s-6 -6 -6 -6l-10 44s43 -19 50 -63c3 -20 -6 -35 -6 -35l17 -10s6 5 17 7s23 2 29 -8s5 -12 4 -19s0 -9 6 -11s6 -6 11 -8s15 -6 21 -2s8 11 8 18v16s-9 8 -32 20
+s-54 22 -66 40s-12 44 0 57c9 10 23 25 26 35c4 14 4 42 4 42s-10 16 -8 40c2 30 22 84 96 114c0 0 -40 -55 -20 -80c0 0 37 11 77 9c31 -2 56 -12 73 -28s25 -23 47 -17s28 17 28 33c0 19 -16 51 -16 51s36 -7 58 -51zM195 245c14 4 21 -11 21 -11c14 25 30 60 22 64
+s-64 -25 -66 -88c0 0 6 31 23 35zM232 230c5 7 34 8 37 -17c4 -35 -24 -57 -24 -57s7 -2 23 2c17 4 43 29 43 70s-21 66 -41 62s-38 -60 -38 -60z" />
+    <glyph glyph-name="ion-logo-markdown" unicode="&#xf241;" horiz-adv-x="448" 
+d="M416 352c18 0 32 -14 32 -32v-256c0 -18 -14 -32 -32 -32h-384c-18 0 -32 14 -32 32v256c0 18 14 32 32 32h384zM252 96v0v192h-56l-42 -68l-42 68h-56v-192h56v96l42 -54l42 54v-96h56zM336 96v0l70 96h-42v96h-56v-96h-42z" />
+    <glyph glyph-name="ion-md-arrow-up" unicode="&#xf28c;" horiz-adv-x="342" 
+d="M192 21h-42v260l-120 -119l-30 30l171 171l171 -171l-30 -31l-120 120v-260z" />
+    <glyph glyph-name="ion-ios-backspace" unicode="&#xf11d;" 
+d="M347 352c38 0 69 -31 69 -69v-180c0 -38 -31 -71 -69 -71h-165c-45 0 -64 26 -102 64s-72 76 -72 76c-5 6 -8 13 -8 21s3 15 8 21c0 0 43 45 72 74s55 64 102 64h165zM329 139l-52 53l52 53c6 6 6 16 0 22s-16 6 -22 0l-53 -52l-53 52c-6 6 -15 7 -22 0s-6 -16 0 -22
+s52 -53 52 -53s-45 -46 -52 -53s-6 -16 0 -22s16 -6 22 0l53 52l53 -52c6 -6 16 -6 22 0s6 16 0 22z" />
+    <glyph glyph-name="ion-md-hammer" unicode="&#xf303;" horiz-adv-x="448" 
+d="M442 50c8 -6 8 -21 -2 -29l-47 -47c-8 -8 -20 -8 -28 0l-215 268c-14 4 -32 -2 -39 -6l-15 -14l10 -10c2 -2 2 -7 0 -9l-36 -36c-2 -2 -7 -2 -9 0l-59 59c-2 2 -2 6 0 8l37 37c2 2 6 2 8 0l4 -4l20 17s-2 11 5 20s17 21 25 29s36 37 74 56s65 27 97 27v-32
+s-30 -18 -48 -32c-17 -14 -26 -72 -26 -72z" />
+    <glyph glyph-name="ion-md-cloud-done" unicode="&#xf2c3;" horiz-adv-x="480" 
+d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM197 85l141 141l-30 30l-111 -111l-44 45l-30 -30z" />
+    <glyph glyph-name="ion-md-business" unicode="&#xf1a4;" 
+d="M213 299h203v-299h-416v384h213v-85zM85 43v42h-42v-42h42zM85 128v43h-42v-43h42zM85 213v43h-42v-43h42zM85 299v42h-42v-42h42zM170 43v42h-42v-42h42zM170 128v43h-42v-43h42zM170 213v43h-42v-43h42zM170 299v42h-42v-42h42zM373 43v213h-160v-43h43v-42h-43v-43h43
+v-43h-43v-42h160zM336 213v-42h-43v42h43zM336 128v-43h-43v43h43z" />
+    <glyph glyph-name="ion-ios-exit" unicode="&#xf177;" 
+d="M96 312c0 22 18 40 40 40h240c22 0 40 -18 40 -40v-240c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v107h180l-47 -48c-5 -5 -5 -13 0 -18s13 -5 18 0l69 70v0c1 1 2 2 3 4s1 3 1 5c0 3 -2 7 -4 9l-69 70c-5 5 -13 5 -18 0s-5 -13 0 -18l47 -48h-180v107zM13 205h83
+v-26h-83c-7 0 -13 6 -13 13s6 13 13 13z" />
+    <glyph glyph-name="ion-md-send" unicode="&#xf376;" 
+d="M0 0v149l298 43l-298 43v149l416 -192z" />
+    <glyph glyph-name="ion-ios-ice-cream" unicode="&#xf19a;" horiz-adv-x="288" 
+d="M109 42c0 2 1 3 3 2l12 -7c2 -2 2 -5 0 -7l-7 -4c-1 -1 -3 0 -3 1zM175 27c0 -1 -2 -2 -3 -1l-7 4c-2 2 -2 5 0 7l12 7c2 1 4 0 3 -2zM77 206c2 1 3 1 5 0c10 -9 22 -16 36 -19c4 -1 5 -5 2 -7l-37 -23l-7 -4c-1 -1 -3 0 -3 1l-4 12l-9 29c0 1 0 2 1 2c6 2 12 5 16 9z
+M81 137c1 1 3 1 4 0l39 -24c2 -2 2 -5 0 -7l-28 -16c-1 -1 -3 0 -3 1l-14 45zM146 99l42 -26v0c1 -1 1 -2 0 -3v0l-42 -26c-1 -1 -3 -1 -4 0l-41 26h-1c-1 1 -1 2 0 3v1l42 25c1 1 3 1 4 0zM185 151c2 -2 2 -4 0 -6l-39 -24c-1 -1 -3 -1 -4 0l-38 24c-2 2 -2 4 0 6l38 24
+c1 1 3 1 4 0zM206 206c2 1 4 1 6 0c4 -4 11 -7 18 -9l-10 -31l-4 -12c0 -1 -2 -2 -3 -1l-7 4l-37 23c-3 2 -3 6 1 7c14 3 26 10 36 19zM121 6c-1 2 -1 3 1 4l20 13c1 1 3 1 4 0l20 -13c2 -1 3 -2 2 -4l-2 -5s-7 -19 -22 -19c-14 0 -22 19 -22 19zM165 106c-3 2 -3 5 0 7
+l39 24c1 1 3 1 4 0h1c1 0 1 -2 1 -3l-15 -44c0 -1 -2 -2 -3 -1zM264 280c3 3 7 3 10 0c8 -7 14 -18 14 -30c0 -22 -18 -40 -40 -40c-11 0 -29 4 -37 12c-2 1 -3 1 -5 0c-15 -13 -36 -20 -62 -20s-47 7 -62 20c-2 1 -3 1 -5 0c-9 -8 -26 -12 -37 -12c-22 0 -40 18 -40 40
+c0 13 7 25 17 32c2 1 4 1 5 0c7 -7 15 -11 20 -13c2 -1 3 1 2 3l-4 6c-6 9 -8 19 -6 29c9 54 54 95 110 95s102 -41 111 -94c2 -10 -1 -21 -7 -30l-4 -6c-1 -2 0 -4 2 -3c5 2 12 6 18 11z" />
+    <glyph glyph-name="ion-md-resize" unicode="&#xf36b;" 
+d="M250 400h166v-166l-65 64l-249 -249l64 -65h-166v166l65 -64l249 249z" />
+    <glyph glyph-name="ion-ios-camera" unicode="&#xf3f6;" horiz-adv-x="384" 
+d="M134 173c0 32 26 57 58 57s58 -25 58 -57s-26 -57 -58 -57s-58 25 -58 57zM354 288c18 0 30 -13 30 -31v-176c0 -18 -12 -33 -30 -33h-320c-18 0 -34 15 -34 33v176c0 18 16 31 34 31h7v8c0 4 4 8 8 8h26c4 0 8 -4 8 -8v-8h4c4 0 9 2 12 5c28 32 40 43 52 43h85
+c12 0 23 -11 51 -43c3 -3 7 -5 12 -5h55zM196 88c44 2 79 37 81 81c2 50 -39 91 -89 89c-44 -2 -79 -37 -81 -81c-2 -50 39 -91 89 -89zM288 230c7 0 13 6 13 13s-6 13 -13 13s-13 -6 -13 -13s6 -13 13 -13z" />
+    <glyph glyph-name="ion-md-information" unicode="&#xf312;" horiz-adv-x="48" 
+d="M0 76v137h48v-137h-48zM0 260v48h48v-48h-48z" />
+    <glyph glyph-name="ion-md-bluetooth" unicode="&#xf29a;" horiz-adv-x="286" 
+d="M286 288l-97 -96l97 -96l-128 -128h-23v170l-103 -103l-32 32l126 125l-126 125l32 32l103 -103v170h23zM180 330v-84l42 42zM222 96l-42 42v-84z" />
+    <glyph glyph-name="ion-ios-filing" unicode="&#xf429;" 
+d="M376 384c22 0 40 -18 40 -40v-304c0 -22 -18 -40 -40 -40h-336c-22 0 -40 18 -40 40v304c0 22 18 40 40 40h336zM388 208v132c0 9 -7 16 -16 16h-328c-9 0 -16 -7 -16 -16v-132c0 -9 7 -16 16 -16h87c7 0 13 -5 15 -11c4 -12 14 -21 26 -21h72c12 0 22 9 26 21
+c2 6 8 11 15 11h87c9 0 16 7 16 16zM338 292h-260c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h260c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14zM338 228h-260c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h260c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14z" />
+    <glyph glyph-name="ion-ios-thermometer" unicode="&#xf252;" horiz-adv-x="192" 
+d="M150 143c25 -17 42 -46 42 -79c0 -53 -43 -96 -96 -96s-96 43 -96 96c0 33 17 62 42 79c4 3 7 8 7 13v214c0 26 21 46 47 46s47 -20 47 -46v-214c0 -5 3 -10 7 -13zM96 3c32 0 58 27 58 59c0 25 -16 47 -38 55c-3 1 -6 5 -6 8v143c0 8 -6 14 -14 14v0
+c-8 0 -15 -6 -15 -14v-143c0 -3 -2 -7 -5 -8c-22 -8 -38 -30 -38 -55c0 -32 26 -59 58 -59z" />
+    <glyph glyph-name="ion-logo-ionic" unicode="&#xf150;" 
+d="M208 287c52 0 95 -43 95 -95s-43 -95 -95 -95s-95 43 -95 95s43 95 95 95zM301 322c0 24 19 43 43 43s43 -19 43 -43s-19 -44 -43 -44s-43 20 -43 44zM397 278c12 -27 19 -56 19 -86c0 -115 -93 -208 -208 -208s-208 93 -208 208s93 208 208 208c34 0 65 -8 95 -23l4 -2
+l-3 -3c-8 -7 -15 -15 -19 -25l-1 -3l-3 2c-23 11 -48 16 -73 16c-94 0 -170 -76 -170 -170s76 -170 170 -170s170 76 170 170c0 22 -4 44 -13 65l-1 3l2 1c10 4 20 10 27 18l3 3z" />
+    <glyph glyph-name="ion-ios-gift" unicode="&#xf191;" 
+d="M384 312c18 0 32 -14 32 -32v-20c0 -2 -2 -4 -4 -4h-408c-2 0 -4 2 -4 4v20c0 18 14 32 32 32h84c-12 11 -20 27 -20 44c0 33 28 60 63 60c21 0 38 -9 49 -27c11 18 28 27 49 27c35 0 63 -27 63 -60c0 -17 -8 -33 -20 -44h84zM257 388c-19 0 -34 -16 -34 -64h34
+s34 14 34 32s-15 32 -34 32zM159 388c-19 0 -34 -14 -34 -32s15 -32 34 -32h34c0 48 -15 64 -34 64zM16 222c0 4 4 8 8 8h170v-262h-146c-18 0 -32 14 -32 32v222zM392 230c4 0 8 -4 8 -8v-222c0 -18 -14 -32 -32 -32h-146v262h170z" />
+    <glyph glyph-name="ion-md-help-circle-outline" unicode="&#xf16d;" 
+d="M208 358c-44 0 -86 -18 -117 -49s-49 -73 -49 -117s18 -86 49 -117s73 -49 117 -49s86 18 117 49s49 73 49 117s-18 86 -49 117s-73 49 -117 49zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM187 67v42h42v-42h-42zM229 130
+h-42c0 67 63 62 63 104c0 23 -19 42 -42 42s-42 -20 -42 -42h-41c0 46 37 83 83 83s83 -37 83 -83c0 -52 -62 -58 -62 -104z" />
+    <glyph glyph-name="ion-ios-battery-full" unicode="&#xf122;" horiz-adv-x="480" 
+d="M380 304c26 0 48 -22 48 -48v-128c0 -26 -22 -48 -48 -48h-332c-26 0 -48 22 -48 48v128c0 26 22 48 48 48h332zM400 128v128c0 11 -9 20 -20 20h-332c-11 0 -20 -9 -20 -20v-128c0 -11 9 -20 20 -20h332c11 0 20 9 20 20zM448 243c16 0 32 -27 32 -51s-16 -51 -32 -51
+v102zM368 256c7 0 12 -5 12 -12v-104c0 -7 -5 -12 -12 -12h-308c-7 0 -12 5 -12 12v104c0 7 5 12 12 12h308z" />
+    <glyph glyph-name="ion-ios-radio-button-off" unicode="&#xf1f6;" 
+d="M208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127s79 -53 127 -53s93 19 127 53s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208z" />
+    <glyph glyph-name="ion-md-play" unicode="&#xf357;" horiz-adv-x="320" 
+d="M0 396l320 -204l-320 -204v408z" />
+    <glyph glyph-name="ion-md-close" unicode="&#xf2c0;" horiz-adv-x="298" 
+d="M298 311l-119 -119l119 -119l-30 -30l-119 119l-119 -119l-30 30l119 119l-119 119l30 30l119 -119l119 119z" />
+    <glyph glyph-name="ion-ios-bookmark" unicode="&#xf12e;" horiz-adv-x="256" 
+d="M0 368c0 18 14 32 32 32h192c18 0 32 -14 32 -32v-380c0 -3 -3 -5 -6 -3l-117 92c-3 2 -7 2 -10 0l-117 -92c-3 -2 -6 0 -6 3v380z" />
+    <glyph glyph-name="ion-md-play-circle" unicode="&#xf174;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM166 98l125 94l-125 94v-188z" />
+    <glyph glyph-name="ion-md-color-palette" unicode="&#xf2d2;" horiz-adv-x="384" 
+d="M192 384c106 0 192 -77 192 -171c0 -59 -48 -106 -107 -106h-38c-18 0 -32 -14 -32 -32c0 -9 3 -17 8 -22s9 -12 9 -21c0 -18 -14 -32 -32 -32c-106 0 -192 86 -192 192s86 192 192 192zM75 192c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM139 277
+c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM245 277c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM309 192c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" />
+    <glyph glyph-name="ion-ios-arrow-dropleft-circle" unicode="&#xf129;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM251 111l-79 81l81 81c8 8 8 19 0 27s-19 8 -27 0l-95 -95c-7 -7 -8 -19 -1 -27l94 -94c4 -4 9 -6 14 -6s9 2 13 6c8 8 8 19 0 27z" />
+    <glyph glyph-name="ion-md-battery-charging" unicode="&#xf294;" horiz-adv-x="224" 
+d="M194 371c16 0 30 -14 30 -30v-343c0 -16 -13 -30 -30 -30h-164c-16 0 -30 13 -30 30v343c0 16 14 30 30 30h37v45h90v-45h37zM90 13l89 168h-45v123l-89 -168h45v-123z" />
+    <glyph glyph-name="ion-md-share-alt" unicode="&#xf378;" horiz-adv-x="384" 
+d="M384 200l-160 -147v88c-107 0 -171 -34 -224 -109c21 107 75 214 224 235v85z" />
+    <glyph glyph-name="ion-logo-xing" unicode="&#xf10f;" horiz-adv-x="426" 
+d="M271 144v-1l99 -175h-103c-1 0 -2 0 -2 1l-99 173v2l156 272h104zM179 232v-1l-81 -134c0 -1 0 -1 -1 -1h-97l81 135v1l-59 104h96c1 0 2 0 2 -1z" />
+    <glyph glyph-name="ion-md-unlock" unicode="&#xf39e;" horiz-adv-x="320" 
+d="M280 262c22 0 40 -18 40 -40v-200c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v200c0 22 18 40 40 40h182v40v0c0 34 -28 62 -62 62s-62 -28 -62 -62h-38c0 55 45 100 100 100s100 -45 100 -100v-40h20zM160 80c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40
+s18 -40 40 -40z" />
+    <glyph glyph-name="ion-logo-apple" unicode="&#xf229;" horiz-adv-x="320" 
+d="M238 294v0c25 0 52 -14 71 -39c-63 -36 -53 -128 11 -153c-9 -20 -13 -28 -24 -46c-16 -25 -37 -56 -65 -56h-1c-24 0 -31 16 -63 16v0c-33 0 -40 -16 -64 -16h-1c-28 0 -48 28 -64 53c-44 69 -48 150 -21 193c19 30 50 48 78 48c29 0 47 -16 71 -16c23 0 38 16 72 16z
+M230 384v0c3 -23 -6 -46 -18 -62c-13 -17 -35 -30 -56 -30h-1c-4 22 6 44 18 60c14 17 37 31 57 32z" />
+    <glyph glyph-name="ion-ios-square" unicode="&#xf21a;" horiz-adv-x="320" 
+d="M292 32h-264c-15 0 -28 13 -28 28v264c0 15 13 28 28 28h264c15 0 28 -13 28 -28v-264c0 -15 -13 -28 -28 -28z" />
+    <glyph glyph-name="ion-ios-albums" unicode="&#xf3ca;" horiz-adv-x="480" 
+d="M445 287c19 0 35 -16 35 -35v-232c0 -19 -16 -35 -35 -35h-410c-19 0 -35 16 -35 35v232c0 19 16 35 35 35h410zM418 315h-356c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h356c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14zM387 371h-294c-7 0 -13 6 -13 13v2c0 7 6 13 13 13h294
+c7 0 13 -6 13 -13v-2c0 -7 -6 -13 -13 -13z" />
+    <glyph glyph-name="ion-md-star" unicode="&#xf384;" horiz-adv-x="404" 
+d="M202 75l-125 -75l33 142l-110 96l145 12l57 134l57 -134l145 -12l-110 -96l33 -142z" />
+    <glyph glyph-name="ion-md-bookmark" unicode="&#xf29f;" horiz-adv-x="288" 
+d="M248 384c22 0 40 -18 40 -40v-344l-144 64l-144 -64v344c0 22 18 40 40 40h208z" />
+    <glyph glyph-name="ion-md-woman" unicode="&#xf3aa;" horiz-adv-x="192" 
+d="M30 299c3 12 17 33 42 34h48c24 -1 38 -22 42 -34l29 -104c6 -23 -21 -32 -27 -10l-26 96h-9l46 -169h-43v-127c0 -23 -31 -23 -31 0v127h-10v-127c0 -23 -32 -23 -32 0v127h-42l45 169h-7l-27 -96c-7 -21 -33 -13 -27 10zM133 379c0 -21 -17 -37 -37 -37s-37 16 -37 37
+s17 37 37 37s37 -16 37 -37z" />
+    <glyph glyph-name="ion-ios-construct" unicode="&#xf15f;" horiz-adv-x="480" 
+d="M364 384v0v0zM259 390c6 -4 18 -12 10 -12c0 0 -35 6 -60 -15c-18 -16 -30 -31 -31 -53s7 -34 35 -62l5 3c1 1 3 1 4 1c2 0 6 -1 7 -2c0 0 -5 5 14 -14l-50 -47c-18 18 -13 13 -13 13c-2 2 -3 6 -1 10l4 7c-25 25 -39 37 -51 40c-4 1 -8 2 -12 2c-10 0 -17 -3 -21 -7
+s-12 -16 -5 -23l12 -12c2 -2 2 -6 0 -8l-33 -35c-1 -1 -3 -1 -4 -1s-3 0 -4 1l-63 64c-2 2 -2 5 0 7l34 34c1 1 3 2 4 2c0 0 16 -8 24 0s0 20 6 29s16 19 23 26s35 34 81 53c16 7 33 9 47 9c15 0 29 -4 38 -10zM446 48c2 -2 2 -6 0 -8l-55 -54c-1 -1 -3 -2 -4 -2s-3 1 -4 2
+c0 0 -56 66 -114 127l47 51c61 -58 130 -116 130 -116zM463 323c13 -13 18 -29 17 -41s-6 -36 -30 -60c-17 -17 -45 -30 -72 -30c-11 0 -22 3 -32 8c-2 1 -6 2 -9 2s-7 -1 -11 -5c-2 -2 -9 -10 -21 -22c-3 -4 -7 -8 -11 -12c-8 -8 -17 -17 -26 -27c-4 -4 -7 -8 -11 -12
+c-54 -57 -119 -127 -119 -127c-8 -9 -18 -13 -29 -13s-24 5 -32 13c-17 17 -18 45 0 61c0 0 70 65 127 119c4 4 8 7 12 11c10 9 19 18 27 26c4 4 7 8 11 11c13 12 21 20 23 21c7 8 5 15 3 20c-19 44 2 83 22 104c21 22 48 29 60 30h2c12 0 28 -6 39 -17l-53 -53l10 -51
+l51 -9zM121 22c5 5 5 14 0 20c-5 5 -13 5 -19 0c-5 -5 -5 -14 0 -20c5 -5 13 -5 19 0z" />
+    <glyph glyph-name="ion-logo-android" unicode="&#xf225;" horiz-adv-x="352" 
+d="M64 180v76h224v-76v-90c0 -7 -4 -14 -11 -14h-28v-52c0 -13 -11 -24 -24 -24v0h-1c-6 0 -10 2 -14 5c-5 4 -9 11 -9 19v52h-49v-52c0 -13 -11 -24 -24 -24s-24 11 -24 24v52h-29c-7 0 -11 7 -11 14v90zM328 272c13 0 24 -11 24 -24v-96c0 -13 -11 -24 -24 -24
+s-24 11 -24 24v96c0 13 11 24 24 24zM24 272c13 0 24 -11 24 -24v-96c0 -13 -11 -24 -24 -24s-24 11 -24 24v96c0 13 11 24 24 24zM231 359c48 -21 56 -72 57 -87h-224c1 15 8 66 56 87l-18 22c0 1 0 1 1 2s3 1 3 1l19 -23c14 5 31 9 51 9s36 -4 50 -9l20 23c0 1 1 0 2 -1
+l2 -2zM127 309c8 0 13 6 13 13s-6 14 -13 14c-8 0 -14 -7 -14 -14s7 -13 14 -13zM225 309c7 0 14 6 14 13s-7 14 -14 14c-8 0 -13 -7 -13 -14s6 -13 13 -13z" />
+    <glyph glyph-name="ion-md-radio-button-on" unicode="&#xf361;" 
+d="M208 296c57 0 104 -47 104 -104s-47 -104 -104 -104s-104 47 -104 104s47 104 104 104zM208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166z" />
+    <glyph glyph-name="ion-ios-cloud-download" unicode="&#xf408;" horiz-adv-x="512" 
+d="M437 282c43 -8 75 -47 75 -92c0 -50 -41 -94 -91 -94h-152v141c0 7 -6 13 -13 13s-13 -6 -13 -13v-141h-152c-50 0 -91 44 -91 94c0 41 26 80 66 93c1 39 33 74 72 74c10 0 19 -3 27 -6c27 39 72 65 123 65c77 0 141 -59 149 -134zM243 12v84h26v-84l48 47c5 5 13 5 18 0
+s5 -13 0 -18l-70 -69v0c-1 -1 -2 -2 -4 -3s-3 -1 -5 -1c-3 0 -7 2 -9 4l-70 69c-5 5 -5 13 0 18s13 5 18 0z" />
+    <glyph glyph-name="ion-md-heart-dislike" unicode="&#xf167;" 
+d="M4 371l24 25l384 -384l-24 -24l-92 92c-18 -17 -37 -34 -58 -53l-30 -27l-30 27c-107 98 -178 162 -178 242c0 30 11 57 29 77zM416 269c0 -49 -26 -92 -72 -141l-254 254c8 2 16 2 24 2c36 0 71 -17 94 -44c23 27 58 44 94 44c64 0 114 -50 114 -115z" />
+    <glyph glyph-name="ion-md-leaf" unicode="&#xf319;" horiz-adv-x="320" 
+d="M320 160c0 -119 -81 -140 -128 -143v-49h-64v49c-47 3 -128 24 -128 143c0 167 160 256 160 256s160 -89 160 -256z" />
+    <glyph glyph-name="ion-md-people" unicode="&#xf343;" horiz-adv-x="448" 
+d="M305 216c-34 0 -61 27 -61 60s27 60 61 60s62 -27 62 -60s-28 -60 -62 -60zM143 216c-34 0 -62 27 -62 60s28 60 62 60s61 -27 61 -60s-27 -60 -61 -60zM143 172c48 0 145 -23 145 -70v-54h-288v54c0 47 95 70 143 70zM305 161c48 0 143 -12 143 -59v-54h-128v54
+c0 30 -9 41 -32 58c7 1 11 1 17 1z" />
+    <glyph glyph-name="ion-ios-thumbs-down" unicode="&#xf254;" horiz-adv-x="384" 
+d="M17 325c2 2 4 5 3 8c0 1 -1 2 -1 3c-3 6 -5 13 -1 23c11 26 45 33 76 37c17 2 36 4 56 4c38 0 81 -4 113 -8c22 -3 34 -7 46 -12c16 -6 31 -12 67 -12c5 0 8 -3 8 -8v-160c0 -4 -4 -8 -8 -8c-6 0 -15 -3 -22 -10c-3 -3 -9 -11 -14 -19c-8 -12 -17 -25 -26 -33
+c-2 -2 -6 -5 -10 -9c-17 -15 -49 -43 -57 -60c-5 -11 -9 -30 -12 -42c-4 -15 -3 -23 -6 -27c-5 -6 -16 -8 -28 -8s-20 9 -26 19c-12 21 -13 57 -3 90c5 17 11 28 15 36c3 6 5 11 5 13c-1 5 -4 6 -17 5c-3 0 -11 -1 -21 -3c-25 -4 -63 -10 -81 -11c-26 -2 -36 0 -46 12
+c-8 9 -13 24 -8 38c2 6 0 14 -4 18c-5 5 -10 11 -10 23c0 13 3 21 6 26c2 3 3 6 2 10l-1 1c0 1 0 2 -1 3c-5 6 -11 15 -11 29c0 15 9 26 17 32z" />
+    <glyph glyph-name="ion-md-clipboard" unicode="&#xf2bd;" horiz-adv-x="384" 
+d="M341 368c23 0 43 -20 43 -43v-314c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v314c0 23 20 43 43 43h87c7 28 32 48 62 48s55 -20 62 -48h87zM192 368c-12 0 -21 -9 -21 -21s9 -22 21 -22s21 10 21 22s-9 21 -21 21zM344 8v320h-40v-72h-224v72h-40v-320h304z" />
+    <glyph glyph-name="ion-md-images" unicode="&#xf30f;" horiz-adv-x="448" 
+d="M426 308c13 -1 23 -12 22 -24l-14 -263c-1 -13 -12 -22 -25 -21l-330 16c-13 1 -23 10 -22 23l2 46l-15 -1c-12 -1 -22 7 -23 18l-21 236c-1 11 7 21 19 22l296 24c12 1 22 -7 23 -18l5 -54zM71 302c1 12 11 22 24 22l219 -11l-2 31h-1v1c-1 5 -5 8 -10 8l-261 -22
+c-5 0 -9 -4 -10 -9v0v-1l16 -178l18 25zM405 66l10 199h-1c0 6 -4 10 -10 10l-291 14c-6 0 -11 -4 -12 -9v0l-10 -199l122 131l69 -81l38 34zM352 192c-18 0 -32 14 -32 32s14 32 32 32s32 -14 32 -32s-14 -32 -32 -32z" />
+    <glyph glyph-name="ion-ios-star-outline" unicode="&#xf4b2;" horiz-adv-x="448" 
+d="M431 256c9 0 17 -7 17 -16c0 -4 -2 -8 -5 -11l-3 -2l-120 -86l46 -135c2 -7 1 -14 -5 -18c-3 -2 -6 -4 -9 -4s-7 2 -10 4l-118 84l-118 -84c-3 -2 -7 -4 -10 -4s-6 2 -9 4c-6 4 -7 12 -5 18l46 135l-121 85c-5 4 -7 7 -7 11v3c0 9 7 16 16 16v0h148l45 133
+c2 6 8 11 15 11s13 -5 15 -11l45 -133h147zM304 164l79 57c3 2 2 7 -2 7h-97v0c-12 0 -23 8 -27 19l-29 89c-1 4 -7 4 -8 0l-30 -89c-4 -11 -14 -19 -26 -19h-99c-4 0 -5 -5 -2 -7l81 -57c10 -7 14 -20 10 -32l-30 -88c-1 -4 3 -6 6 -4l78 55c5 4 10 5 16 5s11 -1 16 -5
+l78 -56c3 -2 7 1 6 5l-30 88c-4 12 0 25 10 32z" />
+    <glyph glyph-name="ion-md-reverse-camera" unicode="&#xf36f;" horiz-adv-x="448" 
+d="M408 352c22 0 40 -18 40 -40v-272c0 -22 -18 -40 -40 -40h-368c-22 0 -40 18 -40 40v272c0 22 18 40 40 40h88l32 32h128l32 -32h88zM336 181v0v99l-33 -33c-20 20 -48 33 -79 33c-62 0 -112 -50 -112 -112s50 -112 112 -112c52 0 95 34 108 81h-30
+c-12 -32 -42 -53 -78 -53c-46 0 -84 38 -84 84s38 84 84 84c23 0 44 -11 59 -26l-45 -45h98z" />
+    <glyph glyph-name="ion-md-american-football" unicode="&#xf277;" horiz-adv-x="448" 
+d="M0 192c14 35 36 66 64 91v-182c-28 25 -50 56 -64 91zM448 192c-14 -35 -36 -66 -64 -91v182c28 -25 50 -56 64 -91zM224 343c47 0 91 -14 128 -37v-77v-21v-32v-28v-70c-37 -23 -81 -37 -128 -37s-91 14 -128 37v70v28v32v21v77c37 23 81 37 128 37zM320 208v32h-32v-32
+h-48v32h-32v-32h-48v32h-32v-32v-32v-32h32v32h48v-32h32v32h48v-32h32v32v32z" />
+    <glyph glyph-name="ion-ios-calendar" unicode="&#xf3f4;" 
+d="M376 352c22 0 40 -18 40 -40v-272c0 -22 -18 -40 -40 -40h-336c-22 0 -40 18 -40 40v272c0 22 18 40 40 40h40v-24c0 -4 4 -8 8 -8h16c4 0 8 4 8 8v24h192v-24c0 -4 4 -8 8 -8h16c4 0 8 4 8 8v24h40zM384 52v180c0 4 -4 8 -8 8h-336c-4 0 -8 -4 -8 -8v-180
+c0 -11 9 -20 20 -20h312c11 0 20 9 20 20zM112 376v-24h-32v24c0 4 4 8 8 8h16c4 0 8 -4 8 -8zM336 376v-24h-32v24c0 4 4 8 8 8h16c4 0 8 -4 8 -8z" />
+    <glyph glyph-name="ion-md-more" unicode="&#xf1c9;" horiz-adv-x="80" 
+d="M80 312c0 -22 -18 -40 -40 -40s-40 18 -40 40s18 40 40 40s40 -18 40 -40zM80 72c0 -22 -18 -40 -40 -40s-40 18 -40 40s18 40 40 40s40 -18 40 -40zM80 192c0 -22 -18 -40 -40 -40s-40 18 -40 40s18 40 40 40s40 -18 40 -40z" />
+    <glyph glyph-name="ion-md-eye" unicode="&#xf2e9;" horiz-adv-x="448" 
+d="M224 343c102 0 188 -62 224 -151c-36 -89 -122 -151 -224 -151s-188 62 -224 151c36 89 122 151 224 151zM224 91c56 0 102 46 102 101s-46 101 -102 101s-102 -46 -102 -101s46 -101 102 -101zM224 252c34 0 61 -27 61 -60s-27 -60 -61 -60s-61 27 -61 60s27 60 61 60z
+" />
+    <glyph glyph-name="ion-md-heart-empty" unicode="&#xf1a1;" 
+d="M302 384c64 0 114 -50 114 -115c0 -80 -71 -144 -178 -242l-30 -27l-30 27c-107 98 -178 162 -178 242c0 65 50 115 114 115c36 0 71 -17 94 -44c23 27 58 44 94 44zM221 55c50 46 94 86 123 122c28 35 40 63 40 92c0 23 -9 44 -24 59s-35 24 -58 24
+c-26 0 -53 -12 -70 -32l-24 -30l-24 30c-17 20 -44 32 -70 32c-23 0 -43 -9 -58 -24s-24 -36 -24 -59c0 -29 12 -57 40 -92c29 -36 73 -76 123 -122l4 -4l9 -8l9 8z" />
+    <glyph glyph-name="ion-md-arrow-round-back" unicode="&#xf288;" horiz-adv-x="352" 
+d="M321 224c17 0 31 -14 31 -32s-14 -32 -31 -32h-214l83 -79c12 -12 12 -34 0 -46s-31 -12 -43 0l-138 134c-6 6 -9 14 -9 23v0c0 9 3 17 9 23l138 134c12 12 31 12 43 0s12 -34 0 -46l-83 -79h214z" />
+    <glyph glyph-name="ion-md-airplane" unicode="&#xf15a;" horiz-adv-x="384" 
+d="M384 112l-160 48v-114l48 -31v-31l-80 16l-80 -16v31l48 31v114l-160 -48v40l160 104v113c0 18 15 31 32 31s32 -13 32 -31v-113l160 -104v-40z" />
+    <glyph glyph-name="ion-md-fastforward" unicode="&#xf2ea;" horiz-adv-x="448" 
+d="M448 192l-218 -146v292zM0 338l218 -146l-218 -146v292z" />
+    <glyph glyph-name="ion-ios-cloud-upload" unicode="&#xf40b;" horiz-adv-x="512" 
+d="M437 282c43 -8 75 -47 75 -92c0 -50 -41 -94 -91 -94h-152v142l48 -47c5 -5 13 -5 18 0s5 13 0 18l-70 69c-2 2 -6 4 -9 4c-2 0 -3 0 -5 -1s-3 -2 -4 -3v0l-70 -69c-5 -5 -5 -13 0 -18s13 -5 18 0l48 47v-142h-152c-50 0 -91 44 -91 94c0 41 26 80 66 93
+c1 39 33 74 72 74c10 0 19 -3 27 -6c27 39 72 65 123 65c77 0 141 -59 149 -134zM243 -19v115h26v-115c0 -7 -6 -13 -13 -13s-13 6 -13 13z" />
+    <glyph glyph-name="ion-ios-arrow-dropup" unicode="&#xf116;" 
+d="M100 147c-8 8 -8 19 0 27l95 95c7 7 19 8 27 1l94 -94c4 -4 6 -9 6 -14s-2 -9 -6 -13c-8 -8 -19 -8 -27 0l-81 79l-81 -81c-8 -8 -19 -8 -27 0zM208 -16c-115 0 -208 93 -208 208s93 208 208 208s208 -93 208 -208s-93 -208 -208 -208zM208 16c47 0 91 19 124 52
+s52 77 52 124s-19 91 -52 124s-77 52 -124 52s-91 -19 -124 -52s-52 -77 -52 -124s19 -91 52 -124s77 -52 124 -52z" />
+    <glyph glyph-name="ion-md-pizza" unicode="&#xf354;" horiz-adv-x="384" 
+d="M343 318c11 -4 13 -13 10 -20l-161 -330s-156 320 -161 330s2 17 10 20c43 18 97 28 151 28s105 -9 151 -28zM122 244c19 0 32 14 32 32s-13 32 -32 32s-32 -14 -32 -32s13 -32 32 -32zM192 101c19 0 32 14 32 32s-13 32 -32 32s-32 -14 -32 -32s13 -32 32 -32zM262 224
+c19 0 32 14 32 32s-13 32 -32 32s-32 -14 -32 -32s13 -32 32 -32zM373 382c6 -2 11 -6 11 -13l-10 -24c-3 -5 -8 -9 -15 -9c-2 0 -3 1 -7 2c-45 18 -103 30 -160 30s-111 -11 -160 -30c-3 -1 -5 -2 -7 -2c-6 0 -12 4 -15 9l-10 24c0 8 6 12 11 14c53 21 117 33 181 33
+s129 -13 181 -34z" />
+    <glyph glyph-name="ion-ios-code-working" unicode="&#xf156;" horiz-adv-x="384" 
+d="M382 196c1 -1 2 -2 2 -4s-1 -3 -2 -4l-114 -109c-1 -1 -2 -2 -4 -2s-3 1 -4 2l-14 13c-1 1 -2 2 -2 4s1 3 2 4l96 92l-96 92c-1 1 -2 2 -2 4s1 3 2 4l14 13c1 1 3 2 4 2s3 -1 4 -2zM42 192l96 -92c1 -1 2 -2 2 -4s-1 -3 -2 -4l-14 -13c-1 -1 -2 -2 -4 -2c-1 0 -3 1 -4 2
+l-114 109c-1 1 -2 2 -2 4s1 3 2 4l114 109c1 1 3 2 4 2s3 -1 4 -2l14 -13c1 -1 2 -2 2 -4s-1 -3 -2 -4zM170 192c0 12 10 22 22 22s22 -10 22 -22s-10 -22 -22 -22s-22 10 -22 22zM106 192c0 12 10 22 22 22s22 -10 22 -22s-10 -22 -22 -22s-22 10 -22 22zM234 192
+c0 12 10 22 22 22s22 -10 22 -22s-10 -22 -22 -22s-22 10 -22 22z" />
+    <glyph glyph-name="ion-logo-designernews" unicode="&#xf232;" horiz-adv-x="448" 
+d="M258 303l1 -53l-64 102zM297 352l151 -118v-202h-248l-200 157v0h63c46 0 77 33 77 82c0 20 -5 37 -15 51l-3 3l37 -29v-107h40l-2 99l64 -99h36v83v80zM98 270c0 -28 -14 -44 -40 -44h-19v89h19c26 0 40 -16 40 -45z" />
+    <glyph glyph-name="ion-logo-dropbox" unicode="&#xf234;" horiz-adv-x="384" 
+d="M113 371l79 -66l-114 -71l-78 63zM0 172l78 62l114 -70l-79 -66zM192 164l114 70l78 -62l-113 -74zM384 297l-78 -63l-114 71l79 66zM192 150l80 -66l34 22v-25l-114 -68l-114 68v25l34 -22z" />
+    <glyph glyph-name="ion-ios-arrow-round-forward" unicode="&#xf119;" horiz-adv-x="288" 
+d="M184 284c5 5 13 5 18 0l82 -83c2 -2 4 -6 4 -9c0 -2 0 -3 -1 -5s-2 -3 -3 -4v0l-82 -83c-5 -5 -13 -5 -18 0s-6 13 -1 18l61 61h-231c-7 0 -13 6 -13 13s6 13 13 13h231l-60 61c-5 5 -5 13 0 18z" />
+    <glyph glyph-name="ion-md-car" unicode="&#xf2b2;" horiz-adv-x="384" 
+d="M339 331l45 -118v-160c0 -12 -9 -21 -21 -21h-22c-12 0 -21 9 -21 21v11h-256v-11c0 -12 -9 -21 -21 -21h-22c-12 0 -21 9 -21 21v160l45 118c4 13 16 21 30 21h234c14 0 26 -8 30 -21zM75 128c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM309 128
+c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM43 235h298l-32 85h-234z" />
+    <glyph glyph-name="ion-ios-swap" unicode="&#xf21f;" horiz-adv-x="448" 
+d="M357 182c-5 5 -5 13 0 18l47 48h-225c-7 0 -13 6 -13 13s6 13 13 13h225l-47 48c-5 5 -5 13 0 18s13 5 18 0l69 -70v0c1 -1 2 -2 3 -4s1 -3 1 -5c0 -3 -2 -7 -4 -9l-69 -70c-5 -5 -13 -5 -18 0zM91 44c-5 -5 -13 -5 -18 0l-69 70c-2 2 -4 6 -4 9c0 2 0 3 1 5s2 3 3 4v0
+l69 70c5 5 13 5 18 0s5 -13 0 -18l-47 -48h225c7 0 13 -6 13 -13s-6 -13 -13 -13h-225l47 -48c5 -5 5 -13 0 -18z" />
+    <glyph glyph-name="ion-md-git-commit" unicode="&#xf2fb;" horiz-adv-x="448" 
+d="M448 224v-64h-100c-14 -55 -64 -96 -124 -96s-109 41 -123 96h-101v64h101c14 55 63 96 123 96s110 -41 124 -96h100zM224 112c44 0 80 36 80 80s-36 80 -80 80s-79 -36 -79 -80s35 -80 79 -80z" />
+    <glyph glyph-name="ion-md-person-add" unicode="&#xf344;" horiz-adv-x="480" 
+d="M288 192c-53 0 -96 43 -96 96s43 96 96 96s96 -43 96 -96s-43 -96 -96 -96zM288 144c64 0 192 -32 192 -96v-48h-384v48c0 64 128 96 192 96zM96 224h64v-32h-64v-64h-32v64h-64v32h64v64h32v-64z" />
+    <glyph glyph-name="ion-ios-moon" unicode="&#xf468;" horiz-adv-x="352" 
+d="M321 94c9 0 18 0 26 2c3 1 6 -3 4 -6c-5 -8 -10 -15 -16 -22c-35 -42 -87 -68 -145 -68c-105 0 -190 86 -190 193c0 86 55 159 133 184c12 4 22 6 28 7c3 1 5 -3 3 -6c-4 -7 -10 -17 -13 -24c-11 -24 -18 -50 -18 -78c0 -49 19 -95 53 -129s79 -53 127 -53h8z" />
+    <glyph glyph-name="ion-ios-business" unicode="&#xf1a3;" horiz-adv-x="320" 
+d="M50 368c-10 0 -18 8 -18 18v0c0 10 8 18 18 18h220c10 0 18 -8 18 -18v0c0 -10 -8 -18 -18 -18h-220zM302 348c10 0 18 -8 18 -18c0 -9 -7 -17 -16 -18v-300c0 -13 -11 -24 -24 -24h-88c-4 0 -8 4 -8 8v40c0 4 -4 8 -8 8h-32c-4 0 -8 -4 -8 -8v-40c0 -4 -4 -8 -8 -8h-88
+c-13 0 -24 11 -24 24v300c-9 1 -16 9 -16 18c0 10 8 18 18 18h284zM96 84v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM96 148v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM96 212v16c0 4 -4 8 -8 8h-16
+c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM96 276v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM176 84v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM176 148v16c0 4 -4 8 -8 8h-16
+c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM176 212v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM176 276v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM256 84v16c0 4 -4 8 -8 8h-16
+c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM256 148v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM256 212v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM256 276v16c0 4 -4 8 -8 8h-16
+c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8z" />
+    <glyph glyph-name="ion-ios-film" unicode="&#xf42b;" horiz-adv-x="448" 
+d="M416 368c18 0 32 -14 32 -32v-288c0 -18 -14 -32 -32 -32h-384c-18 0 -32 14 -32 32v288c0 18 14 32 32 32h384zM88 48v48c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48c4 0 8 4 8 8zM88 128v48c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48
+c4 0 8 4 8 8zM88 208v48c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48c4 0 8 4 8 8zM88 288v48c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48c4 0 8 4 8 8zM320 180c7 0 12 5 12 12s-5 12 -12 12h-192c-7 0 -12 -5 -12 -12s5 -12 12 -12h192z
+M424 48v48c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48c4 0 8 4 8 8zM424 128v48c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48c4 0 8 4 8 8zM424 208v48c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48c4 0 8 4 8 8zM424 288v48
+c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48c4 0 8 4 8 8z" />
+    <glyph glyph-name="ion-md-git-pull-request" unicode="&#xf2ff;" horiz-adv-x="384" 
+d="M352 71c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v170c0 35 -2 47 -8 54c-5 6 -9 10 -34 10h-22v-65l-96 96l96 96v-61h22c39 0 64 -11 84 -36c18 -23 22 -48 22 -94v-170zM320 -24c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40
+s18 -40 40 -40zM64 400c35 0 64 -29 64 -64c0 -24 -13 -44 -32 -55v-210c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v210c-19 11 -32 31 -32 55c0 35 29 64 64 64zM64 -24c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40z
+M64 296c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40z" />
+    <glyph glyph-name="ion-ios-arrow-up" unicode="&#xf3d8;" horiz-adv-x="336" 
+d="M168 230l-127 -127c-9 -9 -25 -9 -34 0c-5 5 -7 11 -7 17s2 12 7 17l145 145c9 9 24 8 33 -1l144 -144c9 -9 9 -25 0 -34s-25 -9 -34 0z" />
+    <glyph glyph-name="ion-ios-american-football" unicode="&#xf106;" 
+d="M331 315c40 -40 62 -96 73 -148l-171 -171c-52 11 -108 33 -148 73s-62 95 -73 148l171 171c52 -11 108 -33 148 -73zM296 160c5 5 5 13 1 18c-3 3 -7 4 -11 4c-3 0 -6 -2 -8 -4l-19 -19l-16 16l20 19c3 3 5 8 3 13c0 1 -1 1 -1 2c-3 5 -7 8 -13 7c-3 0 -6 -2 -8 -4
+l-19 -19l-16 16l20 19c3 3 5 8 3 13c-1 2 -1 5 -3 6v0c-3 3 -8 4 -12 3c-3 0 -5 -2 -7 -4l-19 -19l-16 16l20 19c3 3 5 8 3 13c0 1 -1 1 -1 2c-3 5 -7 8 -13 7c-3 0 -6 -2 -8 -4l-19 -19l-15 15c-5 5 -13 5 -18 0v0c-5 -5 -5 -13 0 -18l15 -15l-19 -19c-3 -3 -6 -8 -4 -13
+c0 -1 1 -1 1 -2c3 -5 8 -8 14 -7c3 0 5 2 7 4l20 19l15 -16l-19 -19c-3 -3 -6 -8 -4 -13c0 -1 1 -1 1 -2c3 -5 8 -8 14 -7c3 0 5 2 7 4l19 19l16 -16l-20 -19c-3 -3 -5 -8 -3 -13c0 -1 1 -1 1 -2c3 -5 7 -8 13 -7c3 0 6 2 8 4l19 19l16 -16l-20 -19c-3 -3 -4 -8 -3 -13
+c1 -2 1 -3 3 -5v0c3 -3 8 -5 12 -4c3 0 5 2 7 4l19 19l15 -15c5 -5 13 -5 18 0v0c5 5 5 13 0 18l-15 15zM347 -16c-24 0 -54 1 -85 6l148 148c10 -66 5 -125 3 -144c0 -4 -3 -7 -7 -7c-10 -1 -31 -3 -59 -3zM69 400c24 0 54 -1 85 -6l-148 -148c-10 66 -5 125 -3 144
+c0 4 3 7 7 7c10 1 31 3 59 3z" />
+    <glyph glyph-name="ion-ios-unlock" unicode="&#xf261;" horiz-adv-x="320" 
+d="M280 256c22 0 40 -18 40 -40v-192c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v192c0 22 18 40 40 40h24v47c0 53 42 96 95 97s97 -43 97 -96v0v0c0 -8 -6 -14 -14 -14s-14 6 -14 14v0v0c0 18 -7 35 -20 48s-30 20 -48 20s-35 -7 -48 -20s-20 -30 -20 -48v-48h188z
+M174 131c11 5 18 16 18 29c0 18 -15 33 -34 32c-16 -1 -29 -13 -30 -29c-1 -14 6 -26 18 -32v-69c0 -8 7 -14 15 -14s13 6 13 14v69z" />
+    <glyph glyph-name="ion-ios-pint" unicode="&#xf486;" horiz-adv-x="232" 
+d="M232 273c0 -91 -36 -94 -36 -169c0 -37 16 -66 16 -92c0 -25 -6 -28 -29 -28h-134c-23 0 -29 3 -29 28c0 26 16 56 16 93c0 75 -36 76 -36 167c0 20 1 82 19 116c4 8 10 12 29 12h136c19 0 25 -4 29 -12c18 -34 19 -95 19 -115zM48 372h-6c-5 -12 -10 -29 -12 -51h172
+c-2 22 -7 39 -12 51h-6h-136z" />
+    <glyph glyph-name="ion-ios-flash-off" unicode="&#xf12f;" horiz-adv-x="256" 
+d="M254 5c4 -7 2 -15 -5 -19c-2 -1 -5 -2 -7 -2c-5 0 -9 3 -12 7l-228 388c-4 7 -2 15 5 19s16 2 20 -5zM197 135l-53 89h104c6 0 11 -8 7 -14zM192 411l-51 -182l-42 72l86 113c3 4 8 1 7 -3zM59 249l53 -89h-104c-6 0 -10 8 -6 14zM64 -27l51 182l42 -72l-86 -113
+c-3 -4 -8 -1 -7 3z" />
+    <glyph glyph-name="ion-ios-cog" unicode="&#xf412;" 
+d="M409 206c4 0 7 -4 7 -8v-12c0 -4 -3 -8 -7 -8l-26 -4c-3 -1 -7 -2 -7 -6c0 -3 0 -7 -1 -10s1 -7 4 -9l23 -12c4 -2 5 -6 4 -10l-4 -11c-1 -4 -6 -6 -10 -5l-26 5c-4 1 -6 -1 -8 -4s-3 -6 -5 -9s-1 -6 1 -9l17 -20c3 -3 3 -8 0 -11l-7 -9c-3 -3 -8 -3 -11 -1l-23 13
+c-3 2 -6 1 -9 -1c-2 -2 -5 -4 -7 -6c-3 -2 -4 -6 -3 -9l10 -25c2 -4 0 -8 -4 -10l-10 -6c-4 -2 -8 0 -10 3l-17 20c-2 3 -6 4 -9 3s-5 -3 -9 -4c-3 -1 -6 -4 -6 -8l1 -26c0 -4 -3 -7 -7 -8l-12 -2c-4 -1 -8 1 -9 5l-8 25c-1 3 -4 6 -8 6c-2 0 -3 -1 -5 -1s-3 1 -5 1
+c-4 0 -7 -3 -8 -6l-8 -25c-1 -4 -5 -6 -9 -5l-12 2c-4 1 -6 4 -6 8v26c0 4 -3 7 -6 8c-4 1 -7 3 -10 4s-6 0 -8 -3l-16 -20c-2 -3 -7 -5 -11 -3l-10 6c-4 2 -5 6 -3 10l9 25c1 3 0 7 -3 9c-2 2 -5 4 -7 6c-3 2 -6 3 -9 1l-23 -13c-3 -2 -8 -2 -11 1l-7 9c-3 3 -3 8 0 11
+l18 20c2 3 2 6 0 9s-3 6 -5 9s-5 5 -8 4l-26 -5c-4 -1 -8 1 -9 5l-4 11c-1 4 -1 7 3 9l24 13c3 2 5 6 4 9s-2 6 -2 9c0 4 -3 6 -7 7l-26 4c-4 0 -7 4 -7 8v12c0 4 3 8 7 8l26 4c3 1 7 3 7 7c0 3 1 6 2 9s-1 7 -4 9l-24 13c-4 2 -4 6 -3 10l4 11c1 4 5 6 9 5l26 -5
+c4 -1 6 1 8 4s3 5 5 8s2 7 0 10l-18 20c-3 3 -3 7 0 10l7 9c3 3 8 4 11 2l22 -14c3 -2 7 -1 10 1c2 2 5 4 7 6c3 2 4 6 3 9l-10 25c-2 4 0 8 4 10l10 6c4 2 8 1 10 -2l17 -21c3 -3 5 -4 8 -3c2 1 8 3 10 4c3 1 6 4 6 8l-1 26c0 4 3 8 7 9l12 2c4 1 8 -2 9 -6l8 -25
+c1 -3 4 -5 8 -5h5h5c4 0 7 2 8 5l8 25c1 4 5 7 9 6l12 -2c4 -1 6 -5 6 -9v-26c0 -4 3 -7 6 -8c4 -1 9 -4 9 -4c4 -1 7 1 9 3l16 21c2 3 7 4 11 2l10 -6c4 -2 5 -6 3 -10l-9 -25c-1 -3 0 -7 3 -9c2 -2 5 -4 7 -6c3 -2 6 -3 9 -1l23 14c3 2 8 1 11 -2l7 -9c3 -3 3 -8 0 -11
+l-18 -19c-2 -3 -2 -7 0 -10s3 -5 5 -8s5 -5 8 -4l26 5c4 1 8 -1 9 -5l4 -11c1 -4 1 -8 -3 -10l-24 -13c-3 -2 -5 -6 -4 -9s2 -6 2 -9c0 -4 3 -6 7 -7zM134 91l56 97c1 2 1 6 0 8l-56 97c-5 9 -18 10 -26 3c-27 -26 -44 -63 -44 -104s17 -78 45 -104c8 -7 20 -6 25 3z
+M348 158c2 10 -6 20 -16 20h-111c-3 0 -6 -2 -7 -4l-56 -97c-5 -9 -1 -20 9 -23c13 -4 27 -6 41 -6c68 0 125 47 140 110zM332 206c10 0 18 10 16 20c-15 63 -72 110 -140 110c-14 0 -28 -2 -41 -6c-10 -3 -14 -14 -9 -23l56 -97c1 -2 4 -4 7 -4h111z" />
+    <glyph glyph-name="ion-ios-baseball" unicode="&#xf3de;" 
+d="M208 374c-2 -1 -5 1 -5 3c-1 8 -2 15 -3 23h8c115 0 208 -93 208 -208v-8v0c-7 1 -15 2 -22 3c-2 0 -4 3 -3 5l3 9c2 5 -1 9 -6 11v0c-5 2 -9 0 -11 -5l-4 -11c-1 -2 -3 -4 -5 -3c-7 2 -15 5 -22 8c-4 2 -8 3 -12 5c-2 1 -3 4 -2 6l6 8c3 4 2 10 -2 13h-1
+c-4 3 -9 1 -12 -3l-7 -10c-1 -2 -3 -2 -5 -1c-12 7 -23 16 -33 25c-2 2 -2 3 0 5l8 8c4 3 4 8 0 12l-1 1c-3 4 -8 4 -12 0l-8 -8c-2 -2 -4 -2 -6 0c-9 10 -16 21 -23 32c-1 2 -1 4 1 5l10 7c4 3 6 8 3 12v1c-3 4 -9 5 -13 2l-8 -6c-2 -1 -5 0 -6 2c-2 4 -4 9 -6 14
+c-3 7 -5 13 -7 20c-1 2 0 4 2 5l12 4c5 2 7 6 5 11v0c-2 5 -6 8 -11 6zM210 1c1 -5 2 -12 2 -17v0h-4c-115 0 -208 93 -208 208v4v0c6 -1 12 -1 18 -2c2 0 4 -3 3 -5l-4 -13c-2 -5 1 -9 6 -11v0c5 -2 9 1 11 6l5 14c1 2 3 4 5 3c8 -2 15 -5 22 -8c4 -2 9 -4 13 -6
+c2 -1 3 -4 2 -6l-8 -11c-3 -4 -1 -9 3 -12v-1c4 -3 9 -1 12 3l9 13c1 2 3 2 5 1c11 -7 22 -15 32 -24c2 -2 3 -3 1 -5l-10 -10c-4 -3 -4 -9 0 -13v0c3 -4 9 -4 13 0l9 10c2 2 4 1 6 -1c9 -10 18 -21 25 -33c1 -2 1 -4 -1 -5l-13 -9c-4 -3 -6 -8 -3 -12h1c3 -4 8 -6 12 -3
+l11 8c2 1 5 0 6 -2c2 -4 3 -8 5 -12c3 -8 6 -15 8 -23c1 -2 -1 -4 -3 -5l-13 -4c-5 -2 -8 -7 -6 -12v0c2 -5 6 -8 11 -6l12 4c2 1 5 -1 5 -3zM383 167c1 2 3 3 5 3c9 -2 17 -3 26 -4c-12 -95 -88 -171 -184 -181v1c-1 7 -2 15 -3 22c0 2 1 3 3 4l16 5c5 2 7 6 5 11v1
+c-2 5 -6 7 -11 5l-14 -4c-2 -1 -4 1 -5 3c-4 14 -9 27 -15 40c-1 2 -1 4 1 5l13 9c4 3 5 8 2 12v1c-3 4 -9 5 -13 2l-10 -7c-2 -1 -5 -1 -6 1c-8 12 -17 25 -27 36c-2 2 -2 3 0 5l10 11c4 3 4 8 0 12v0c-3 4 -9 4 -13 0l-10 -10c-2 -2 -3 -1 -5 0c-11 10 -23 18 -35 26
+c-2 1 -2 4 -1 6l7 10c3 4 1 10 -3 13v0c-4 3 -9 1 -12 -3l-8 -12c-1 -2 -4 -2 -6 -1c-13 7 -26 12 -40 16c-2 1 -4 3 -3 5l4 13c2 5 0 9 -5 11h-1c-5 2 -9 -1 -11 -6l-5 -14c-1 -2 -2 -3 -4 -3c-7 1 -15 2 -23 3h-1c10 96 86 172 181 184c1 -9 2 -19 4 -28c0 -2 -1 -3 -3 -4
+l-17 -6c-5 -2 -8 -6 -6 -11v0c2 -5 6 -8 11 -6l16 5c2 1 4 -1 5 -3c4 -14 10 -26 16 -39c1 -2 1 -5 -1 -6l-15 -10c-4 -3 -6 -8 -3 -12h1c3 -4 8 -6 12 -3l13 9c2 1 5 1 6 -1c8 -12 16 -23 26 -34c2 -2 2 -3 0 -5l-13 -13c-4 -3 -4 -9 0 -13v0c3 -4 9 -4 13 0l13 13
+c2 2 3 1 5 0c11 -10 23 -19 35 -27c2 -1 2 -3 1 -5l-9 -14c-3 -4 -1 -9 3 -12v-1c4 -3 9 -1 12 3l11 15c1 2 3 3 5 2c13 -6 25 -12 39 -16c2 -1 4 -3 3 -5l-5 -17c-2 -5 1 -9 6 -11v0c5 -2 9 1 11 6z" />
+    <glyph glyph-name="ion-ios-help" unicode="&#xf446;" horiz-adv-x="128" 
+d="M65 288c38 0 63 -21 63 -51c0 -20 -10 -33 -28 -44c-17 -10 -23 -17 -23 -30v-8h-35v8c-2 21 5 33 23 44c17 10 24 17 24 29s-12 22 -27 22s-25 -10 -26 -25h-36c1 32 25 55 65 55zM38 117c0 12 10 20 22 20s21 -8 21 -20s-9 -21 -21 -21s-22 9 -22 21z" />
+    <glyph glyph-name="ion-md-square" unicode="&#xf381;" horiz-adv-x="384" 
+d="M341 384c23 0 43 -20 43 -43v-298c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h298z" />
+    <glyph glyph-name="ion-ios-folder-open" unicode="&#xf180;" horiz-adv-x="448" 
+d="M416 329v-41h-384v73c0 13 11 23 25 23h96c8 0 12 -2 17 -7v0l23 -23c2 -2 3 -2 6 -2h194c13 0 23 -10 23 -23zM32 260h384h8c15 0 25 -10 24 -30c-1 -21 -24 -205 -24 -205c-2 -17 -10 -25 -23 -25h-352c-13 0 -22 7 -25 25c0 0 -22 192 -24 211s11 24 24 24h8z" />
+    <glyph glyph-name="ion-ios-tablet-portrait" unicode="&#xf24e;" horiz-adv-x="320" 
+d="M313 409v0c4 -4 7 -11 7 -17v-400c0 -6 -3 -13 -7 -17v0c-4 -4 -11 -7 -17 -7h-272c-6 0 -13 3 -17 7v0c-4 4 -7 11 -7 17v400c0 6 3 13 7 17v0c4 4 11 7 17 7h272c6 0 13 -3 17 -7zM160 399c-4 0 -7 -3 -7 -7s3 -7 7 -7s7 3 7 7s-3 7 -7 7zM160 -22c8 0 14 6 14 14
+s-6 14 -14 14s-14 -6 -14 -14s6 -14 14 -14zM304 16v352h-288v-352h288z" />
+    <glyph glyph-name="ion-ios-arrow-dropright" unicode="&#xf114;" 
+d="M163 300c8 8 19 8 27 0l95 -95c7 -7 8 -19 1 -27l-94 -94c-4 -4 -9 -6 -14 -6s-9 2 -13 6c-8 8 -8 19 0 27l80 81l-82 81c-8 7 -8 19 0 27zM0 192c0 115 93 208 208 208s208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208zM32 192c0 -47 19 -91 52 -124
+s77 -52 124 -52s91 19 124 52s52 77 52 124s-19 91 -52 124s-77 52 -124 52s-91 -19 -124 -52s-52 -77 -52 -124z" />
+    <glyph glyph-name="ion-ios-image" unicode="&#xf19c;" 
+d="M65 136c-4 0 -8 4 -5 8l95 154c2 3 7 3 9 0l96 -154c3 -4 -1 -8 -5 -8h-190zM259 194c-1 2 -1 4 0 6l26 32c2 3 7 3 9 0l62 -88c3 -4 -1 -8 -5 -8h-53c-2 0 -3 0 -4 2zM303 280c-18 -2 -33 13 -31 31c1 13 12 24 25 25c18 2 33 -13 31 -31c-1 -13 -12 -24 -25 -25z
+M384 400c18 0 32 -14 32 -32v-352c0 -18 -14 -32 -32 -32h-352c-18 0 -32 14 -32 32v352c0 18 14 32 32 32h352zM381 120v0v237c0 4 -4 8 -8 8h-330c-4 0 -8 -4 -8 -8v-237c0 -4 4 -8 8 -8h330c4 0 8 4 8 8z" />
+    <glyph glyph-name="ion-logo-slack" unicode="&#xf10b;" horiz-adv-x="480" 
+d="M218 150l-20 62l64 21l20 -62zM218 150l-20 62l64 21l20 -62zM460 258c50 -165 11 -236 -154 -286s-236 -11 -286 154s-11 236 154 286s236 11 286 -154zM377 151c13 4 19 19 15 32s-18 19 -31 15l-31 -10l-21 62l31 10c13 4 20 19 16 32s-19 19 -32 15l-31 -10l-10 32
+c-4 13 -19 20 -32 16s-20 -19 -16 -32l11 -32l-64 -21l-11 32c-4 13 -18 20 -31 16s-20 -19 -16 -32l11 -32l-31 -10c-13 -4 -20 -19 -16 -32c3 -10 13 -17 23 -17c3 0 6 0 9 1l31 11l20 -62l-31 -11c-13 -4 -19 -18 -15 -31c3 -10 13 -17 23 -17c3 0 5 0 8 1l31 11l11 -33
+c3 -10 13 -17 23 -17c3 0 5 1 8 2c13 4 20 18 16 31l-11 32l64 22l11 -33c3 -10 13 -16 23 -16c3 0 6 0 9 1c13 4 19 18 15 31l-10 32z" />
+    <glyph glyph-name="ion-md-trash" unicode="&#xf398;" horiz-adv-x="320" 
+d="M32 43v245h256v-245c0 -23 -20 -43 -43 -43h-170c-23 0 -43 20 -43 43zM320 352v-32h-320v32h80l27 32h106l27 -32h80z" />
+    <glyph glyph-name="ion-md-rainy" unicode="&#xf363;" horiz-adv-x="448" 
+d="M107 48c0 0 23 -26 23 -41c0 -13 -10 -23 -23 -23s-23 10 -23 23c0 15 23 41 23 41zM185 80c0 0 23 -26 23 -41c0 -13 -10 -23 -23 -23s-23 10 -23 23c0 15 23 41 23 41zM263 48c0 0 23 -26 23 -41c0 -13 -10 -23 -23 -23s-23 10 -23 23c0 15 23 41 23 41zM341 80
+c0 0 23 -26 23 -41c0 -13 -10 -23 -23 -23s-23 10 -23 23c0 15 23 41 23 41zM361 287c48 -3 87 -44 87 -93c0 -52 -44 -98 -96 -98h-243c-62 0 -109 54 -109 116c0 55 38 100 91 111c6 1 15 2 21 2c50 0 91 -31 106 -75h33c-6 24 -19 47 -37 65c-25 25 -57 37 -91 40
+c25 31 61 45 101 45c68 0 124 -48 137 -113z" />
+    <glyph glyph-name="ion-ios-skip-forward" unicode="&#xf217;" horiz-adv-x="320" 
+d="M241 348c0 2 2 4 4 4h71c2 0 4 -2 4 -4v-312c0 -2 -2 -4 -4 -4h-71c-2 0 -4 2 -4 4v138l-229 -140c-5 -3 -12 1 -12 7v302c0 6 7 10 12 7l229 -140v138z" />
+    <glyph glyph-name="ion-md-cloud-outline" unicode="&#xf2c7;" horiz-adv-x="480" 
+d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM380 72c33 0 60 27 60 60s-27 60 -60 60h-30v10c0 61 -49 110 -110 110c-51 0 -93 -34 -106 -80h-14
+c-44 0 -80 -36 -80 -80s36 -80 80 -80h260z" />
+    <glyph glyph-name="ion-ios-help-buoy" unicode="&#xf196;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM263 364l-6 -89c14 -8 26 -20 34 -34l89 6c-9 27 -24 51 -45 72s-45 36 -72 45zM81 319c-21 -21 -36 -45 -45 -72l89 -6c8 14 20 26 34 34l-6 89c-27 -9 -51 -24 -72 -45zM153 20
+l6 89c-14 8 -26 20 -34 34l-89 -6c9 -27 24 -51 45 -72s45 -36 72 -45zM208 124c38 0 68 30 68 68s-30 68 -68 68s-68 -30 -68 -68s30 -68 68 -68zM335 65c21 21 36 46 45 73l-89 6c-8 -14 -20 -27 -34 -35l6 -89c27 9 51 24 72 45z" />
+    <glyph glyph-name="ion-md-fitness" unicode="&#xf1ac;" 
+d="M386 132l30 -29l-45 -45l30 -30l-30 -29l-29 29l-45 -44l-30 30l-29 -30l-30 30l74 74l-178 178l-74 -74l-30 30l30 30l-30 29l44 45l-29 30l29 29l30 -29l45 44l30 -30l29 30l30 -30l-74 -74l178 -178l74 74l30 -30z" />
+    <glyph glyph-name="ion-md-compass" unicode="&#xf2d4;" horiz-adv-x="448" 
+d="M224 217c13 0 25 -12 25 -25s-12 -25 -25 -25s-25 12 -25 25s12 25 25 25zM224 416c123 0 224 -101 224 -224s-101 -224 -224 -224s-224 101 -224 224s101 224 224 224zM273 143l85 183l-183 -85l-85 -183z" />
+    <glyph glyph-name="ion-md-bicycle" unicode="&#xf299;" horiz-adv-x="448" 
+d="M299 317c-19 0 -34 14 -34 33s15 34 34 34s33 -15 33 -34s-14 -33 -33 -33zM355 187c51 0 93 -43 93 -94s-42 -93 -93 -93s-94 42 -94 93s43 94 94 94zM355 28c36 0 65 29 65 65s-29 66 -65 66s-66 -30 -66 -66s30 -65 66 -65zM274 224l-30 45l-43 -45l39 -32v-112h-32
+v86l-61 38c-9 6 -19 15 -19 27c0 8 3 17 9 23l72 69c6 6 14 9 22 9c11 0 22 -7 28 -16l34 -60h59v-32h-78zM93 187c51 0 94 -43 94 -94s-43 -93 -94 -93s-93 42 -93 93s42 94 93 94zM93 28c36 0 66 29 66 65s-30 66 -66 66s-65 -30 -65 -66s29 -65 65 -65z" />
+    <glyph glyph-name="ion-md-filing" unicode="&#xf2ec;" 
+d="M401 240l15 -48v-167c0 -21 -21 -41 -43 -41h-314c-24 0 -59 19 -59 43v165l15 48h26v32l14 48h26v32l15 48h224l15 -48v-32h26l14 -48v-32h26zM128 352v-32h160v32h-160zM87 272v-32h242v32h-242zM369 160v32h-322v-32h83c7 -36 39 -64 78 -64s71 28 78 64h83z" />
+    <glyph glyph-name="ion-ios-close-circle-outline" unicode="&#xf14d;" 
+d="M283 139c6 -6 6 -16 0 -22s-16 -6 -22 0l-53 52l-53 -52c-6 -6 -16 -6 -22 0s-7 15 0 22s52 53 52 53s-46 47 -52 53s-7 15 0 22s16 6 22 0l53 -52l53 52c6 6 16 6 22 0s6 -16 0 -22l-52 -53zM208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127
+s79 -53 127 -53s93 19 127 53s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208z" />
+    <glyph glyph-name="ion-ios-bed" unicode="&#xf139;" horiz-adv-x="448" 
+d="M426 240c12 0 22 -10 22 -22v-180c0 -12 -10 -22 -22 -22v0c-12 0 -22 10 -22 22v6c0 2 -2 4 -4 4h-352c-2 0 -4 -2 -4 -4v-6c0 -12 -10 -22 -22 -22v0c-12 0 -22 10 -22 22v180c0 12 10 22 22 22v0c12 0 22 -10 22 -22c0 -1 1 -2 2 -2h356c1 0 2 1 2 2c0 12 10 22 22 22
+v0zM52 234c-4 0 -8 4 -8 8v94c0 18 14 32 32 32h296c18 0 32 -14 32 -32v-94c0 -4 -4 -8 -8 -8h-22c-2 0 -4 2 -4 4v13c0 9 -7 16 -16 16h-98c-9 0 -16 -7 -16 -16v-13c0 -2 -2 -4 -4 -4h-24c-2 0 -4 2 -4 4v13c0 9 -7 16 -16 16h-98c-9 0 -16 -7 -16 -16v-13
+c0 -2 -2 -4 -4 -4h-22z" />
+    <glyph glyph-name="ion-md-arrow-forward" unicode="&#xf287;" horiz-adv-x="342" 
+d="M0 171v42h260l-119 120l30 30l171 -171l-171 -171l-31 30l120 120h-260z" />
+    <glyph glyph-name="ion-md-arrow-dropdown" unicode="&#xf280;" horiz-adv-x="256" 
+d="M0 256h256l-128 -128z" />
+    <glyph glyph-name="ion-ios-musical-note" unicode="&#xf46b;" horiz-adv-x="236" 
+d="M226 400c6 1 10 -4 10 -8v-75c0 -8 -6 -13 -13 -15l-93 -19c-4 -1 -6 -4 -6 -8v-230c0 -26 -13 -41 -24 -48c-15 -10 -43 -13 -51 -13c-3 0 -9 0 -14 1c-13 3 -35 17 -35 47c0 37 40 47 64 52c5 1 11 2 14 3c8 2 13 7 16 13c2 4 2 10 2 12v255v0v0c0 4 4 7 8 8
+s117 24 122 25z" />
+    <glyph glyph-name="ion-ios-walk" unicode="&#xf266;" horiz-adv-x="256" 
+d="M73 87v91l46 -47l-9 -52c0 -5 -2 -10 -6 -14l-70 -51c-4 -4 -12 -9 -16 -9c-5 0 -9 3 -13 7s-5 7 -5 12s1 10 5 14zM141 342c-20 3 -34 23 -31 43s23 34 43 31s33 -23 30 -43s-22 -34 -42 -31zM223 -11c1 -10 -6 -19 -16 -21h-2c-9 0 -17 7 -18 16l-15 104c0 2 -1 4 -2 5
+l-92 94c-3 3 -5 7 -5 11v76l-32 -17c-3 -1 -4 -4 -4 -7v-58c0 -10 -9 -19 -19 -19s-18 9 -18 19v65c0 13 5 24 15 29l68 32c2 1 5 2 8 2h37c12 0 18 -5 18 -16v-120l57 -68c2 -3 5 -6 5 -10zM250 216c4 -4 6 -10 6 -15s-1 -8 -5 -12c-7 -7 -19 -7 -26 0l-70 70v53z" />
+    <glyph glyph-name="ion-ios-pricetag" unicode="&#xf48d;" 
+d="M387 400c16 0 29 -13 29 -29v-123c0 -4 -1 -7 -4 -10l-246 -246c-11 -11 -30 -11 -41 0l-117 117c-11 11 -11 30 0 41l246 246c3 3 6 4 10 4h123zM340 288c15 2 26 13 28 28c2 20 -16 38 -36 36c-15 -2 -26 -13 -28 -28c-2 -20 16 -38 36 -36z" />
+    <glyph glyph-name="ion-ios-menu" unicode="&#xf1c3;" horiz-adv-x="384" 
+d="M368 272h-352c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h352c9 0 16 -7 16 -16v0c0 -9 -7 -16 -16 -16zM368 176h-352c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h352c9 0 16 -7 16 -16v0c0 -9 -7 -16 -16 -16zM368 80h-352c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h352
+c9 0 16 -7 16 -16v0c0 -9 -7 -16 -16 -16z" />
+    <glyph glyph-name="ion-md-cash" unicode="&#xf2b5;" horiz-adv-x="448" 
+d="M0 352h448v-256h-448v256zM160 128c-20 24 -32 58 -32 96s12 72 32 96h-64c0 -35 -29 -64 -64 -64v-80c27 0 48 -21 48 -48h80zM416 176v80c-35 0 -64 29 -64 64h-64c20 -24 32 -58 32 -96s-12 -72 -32 -96h80c0 27 22 48 48 48zM0 32v32h448v-32h-448z" />
+    <glyph glyph-name="ion-ios-person-add" unicode="&#xf1e1;" horiz-adv-x="384" 
+d="M321 62c14 -5 56 -20 63 -52c1 -5 -3 -10 -8 -10h-184h-184c-5 0 -9 5 -8 10c7 32 49 47 63 52c16 6 38 7 52 10c8 2 20 6 24 11c4 4 2 38 2 47c0 1 -1 3 -2 4c-2 4 -7 12 -10 20s-6 25 -7 33c0 2 -2 5 -4 6c-3 2 -6 5 -8 13c-3 16 -9 22 -8 34c0 5 2 7 4 9s3 5 2 8
+c-2 8 -6 22 -6 45c-1 41 31 82 90 82c58 0 91 -41 90 -82c0 -23 -4 -37 -6 -45c-1 -3 0 -6 2 -8s4 -4 4 -9c1 -12 -5 -18 -8 -34c-2 -8 -5 -11 -8 -13c-2 -1 -4 -4 -4 -6c-1 -8 -4 -25 -7 -33s-9 -16 -11 -20c-1 -1 -1 -3 -1 -4c0 -9 -2 -43 2 -47c4 -5 16 -9 24 -11
+c14 -3 36 -4 52 -10zM373 154c6 0 11 -4 11 -10v0c0 -6 -5 -10 -11 -10h-27v-28c0 -6 -4 -10 -10 -10v0c-6 0 -11 4 -11 10v28h-27c-6 0 -10 4 -10 10v0c0 6 4 10 10 10h27v28c0 6 5 10 11 10v0c6 0 10 -4 10 -10v-28h27z" />
+    <glyph glyph-name="ion-ios-git-commit" unicode="&#xf184;" horiz-adv-x="448" 
+d="M434 206c8 0 14 -6 14 -14s-6 -14 -14 -14h-77c-3 -32 -17 -62 -41 -84c-25 -24 -58 -36 -92 -36s-67 12 -92 36c-24 22 -38 52 -41 84h-77c-8 0 -14 6 -14 14s6 14 14 14h77c3 32 17 62 41 84c25 24 58 36 92 36s67 -12 92 -36c24 -22 38 -52 41 -84h77zM299 117
+c20 20 31 47 31 75s-11 55 -31 75s-47 31 -75 31s-55 -11 -75 -31s-31 -47 -31 -75s11 -55 31 -75s47 -31 75 -31s55 11 75 31z" />
+    <glyph glyph-name="ion-ios-close-circle" unicode="&#xf14e;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM261 117c6 -6 16 -6 22 0s6 16 0 22l-52 53l52 53c6 6 6 16 0 22s-16 6 -22 0l-53 -52l-53 52c-6 6 -16 6 -22 0c-3 -3 -5 -7 -5 -11s2 -8 5 -11l52 -53l-52 -53
+c-3 -3 -5 -7 -5 -11s2 -8 5 -11c6 -6 16 -6 22 0l53 52z" />
+    <glyph glyph-name="ion-ios-close" unicode="&#xf406;" horiz-adv-x="191" 
+d="M118 192l68 -68c6 -6 6 -17 0 -23s-16 -6 -22 0l-68 68l-69 -68c-6 -6 -16 -6 -22 0c-3 3 -5 7 -5 11s2 9 5 12l68 68l-68 68c-3 3 -5 8 -5 12s2 8 5 11c6 6 16 6 22 0l69 -68l68 68c6 6 16 6 22 0s6 -17 0 -23z" />
+    <glyph glyph-name="ion-md-camera" unicode="&#xf2ad;" horiz-adv-x="448" 
+d="M161 168c0 35 28 63 63 63s63 -28 63 -63s-28 -63 -63 -63s-63 28 -63 63zM408 352c22 0 40 -18 40 -40v-272c0 -22 -18 -40 -40 -40h-368c-22 0 -40 18 -40 40v272c0 22 18 40 40 40h88l32 32h128l32 -32h88zM224 56c62 0 112 50 112 112s-50 112 -112 112
+s-112 -50 -112 -112s50 -112 112 -112z" />
+    <glyph glyph-name="ion-ios-resize" unicode="&#xf1ff;" horiz-adv-x="352" 
+d="M338 368c8 0 14 -6 14 -14v-110c0 -8 -6 -14 -14 -14v0c-8 0 -14 6 -14 14v76l-276 -276h76c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-110c-8 0 -14 6 -14 14v110c0 8 6 14 14 14v0c8 0 14 -6 14 -14v-76l276 276h-76c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h110z" />
+    <glyph glyph-name="ion-md-arrow-round-forward" unicode="&#xf28a;" horiz-adv-x="352" 
+d="M205 35c-12 -12 -31 -12 -43 0s-12 34 0 46l83 79h-214c-17 0 -31 14 -31 32s14 32 31 32h214l-83 79c-12 12 -12 34 0 46s31 12 43 0l138 -134c6 -6 9 -14 9 -23v0c0 -9 -3 -17 -9 -23z" />
+    <glyph glyph-name="ion-ios-football" unicode="&#xf437;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM335 319c-20 20 -43 35 -69 44c-1 0 -3 0 -4 -1l-38 -26c-1 -1 -2 -2 -2 -3v-63c0 -1 1 -2 2 -3l56 -48c1 -1 3 -2 4 -1l58 27c1 0 2 1 2 2l14 41c0 1 1 3 0 4c-6 10 -15 19 -23 27
+zM261 22l17 43v3l-23 42c-1 1 -1 2 -3 2h-88c-1 0 -2 -1 -3 -2l-23 -42v-3l17 -43c0 -1 1 -3 2 -3c16 -5 33 -7 51 -7c17 0 35 2 51 7c1 0 2 2 2 3zM194 333c0 1 -1 3 -2 3l-38 26c-1 1 -3 0 -4 0c-26 -9 -49 -23 -69 -43c-8 -8 -17 -17 -23 -27c-1 -1 0 -3 0 -4l14 -41
+c0 -1 1 -2 2 -2l58 -27c1 -1 3 0 4 1l57 47c1 1 1 3 1 4v63zM30 184c-1 -1 -2 -2 -2 -3c2 -35 15 -68 35 -96c1 -1 2 -1 3 -1l46 -1c2 0 3 1 4 2l23 44v3l-14 57c0 1 -2 3 -3 3l-52 24c-1 1 -3 0 -4 -1zM300 85c1 -1 2 -2 4 -2l46 1c1 0 2 0 3 1c20 28 33 61 35 96
+c0 1 -1 2 -2 3l-36 31c-1 1 -3 2 -4 1l-52 -24c-1 0 -3 -2 -3 -3l-14 -57v-3z" />
+    <glyph glyph-name="ion-ios-headset" unicode="&#xf194;" horiz-adv-x="448" 
+d="M224 324c24 0 47 -10 64 -28s26 -34 26 -60c0 -8 -6 -14 -13 -14s-13 6 -13 14c0 17 -7 33 -19 44s-28 16 -45 16s-33 -5 -45 -16s-19 -27 -19 -44c0 -8 -6 -14 -13 -14s-13 6 -13 14c0 26 9 42 26 60s40 28 64 28zM425 169c15 -15 23 -34 23 -55v-12
+c0 -21 -8 -40 -23 -55s-34 -23 -55 -23h-6c-4 0 -7 -1 -10 -4c-2 -2 -6 -4 -10 -4c-8 0 -14 6 -14 14v204c0 28 -11 55 -31 75s-47 31 -75 31s-55 -11 -75 -31s-31 -47 -31 -75v-204c0 -8 -6 -14 -14 -14c-4 0 -8 2 -10 4c-3 3 -6 4 -10 4h-6c-21 0 -40 8 -55 23
+s-23 34 -23 55v12c0 21 8 40 23 55s34 23 55 23h8c2 0 4 2 4 4v38c0 36 14 70 39 95s59 39 95 39s70 -14 95 -40c25 -25 39 -58 39 -94v-38c0 -2 2 -4 4 -4h8c21 0 40 -8 55 -23z" />
+    <glyph glyph-name="ion-md-arrow-dropleft-circle" unicode="&#xf281;" 
+d="M416 192c0 -115 -93 -208 -208 -208s-208 93 -208 208s93 208 208 208s208 -93 208 -208zM144 192l96 -96v192z" />
+    <glyph glyph-name="ion-ios-analytics" unicode="&#xf3ce;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM28 192c0 -12 1 -23 3 -34c6 -5 20 -16 37 -13c12 2 28 25 38 41c4 6 8 12 11 16c17 21 34 23 45 21c24 -3 43 -27 52 -49c7 -18 20 -28 33 -29c15 -1 31 10 42 29c1 2 3 5 4 7
+c9 17 23 43 51 43c20 0 35 -14 44 -24c-2 45 -21 87 -53 119c-34 34 -79 53 -127 53s-93 -19 -127 -53s-53 -79 -53 -127z" />
+    <glyph glyph-name="ion-ios-hammer" unicode="&#xf18e;" 
+d="M229 201c4 -9 3 -18 -3 -25c-6 -6 -19 -18 -39 -38c-40 -40 -90 -97 -119 -132c-6 -7 -17 -8 -24 -1l-39 39c-7 7 -6 18 1 24c34 29 92 78 132 118l39 39s15 8 23 4c2 -1 5 -2 7 -4l18 -18c2 -2 3 -4 4 -6zM414 230c2 -2 2 -6 0 -8l-56 -55c-1 -1 -3 -2 -4 -2
+c-2 0 -3 1 -4 2l-34 34c-2 2 -2 6 0 8l2 2c7 6 6 17 0 24c-1 1 -2 1 -3 2c-4 2 -13 5 -23 5c-4 0 -9 -1 -13 -2c-9 -2 -17 -9 -31 -23c-3 -3 -9 -3 -12 0l-19 20c-3 3 -3 8 0 11c15 17 20 28 19 45c-1 23 -15 40 -31 53c-10 8 -29 10 -45 10c-10 0 -19 0 -23 -1h-3
+c-8 0 -3 9 3 14c7 7 29 15 55 15c14 0 30 -2 47 -9c47 -19 75 -46 82 -53s18 -18 24 -27s-2 -22 5 -29c3 -3 8 -5 12 -5s8 1 10 3v0c1 1 3 2 4 2c2 0 3 -1 4 -2z" />
+    <glyph glyph-name="ion-md-open" unicode="&#xf33b;" horiz-adv-x="384" 
+d="M341 43v133h43v-133c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h133v-43h-133v-298h298zM224 384h160v-160h-43v87l-215 -215l-30 30l215 215h-87v43z" />
+    <glyph glyph-name="ion-md-return-left" unicode="&#xf36d;" horiz-adv-x="448" 
+d="M401 312h47v-144h-358l85 -86l-33 -34l-142 144l142 144l33 -34l-85 -86h311v96z" />
+    <glyph glyph-name="ion-md-square-outline" unicode="&#xf380;" horiz-adv-x="384" 
+d="M341 341h-298v-298h298v298zM341 384v0c24 0 43 -19 43 -43v-298c0 -24 -19 -43 -43 -43h-298c-24 0 -43 19 -43 43v298c0 24 19 43 43 43h298z" />
+    <glyph glyph-name="ion-md-phone-landscape" unicode="&#xf346;" horiz-adv-x="448" 
+d="M448 89c0 -23 -19 -41 -41 -41h-366c-22 0 -41 18 -41 41v206c0 23 19 41 41 41h366c22 0 41 -18 41 -41v-206zM80 84h288v216h-288v-216z" />
+    <glyph glyph-name="ion-md-stopwatch" unicode="&#xf386;" horiz-adv-x="384" 
+d="M168 141v131h48v-131h-48zM344 278c25 -33 40 -74 40 -118c0 -106 -86 -192 -192 -192s-192 86 -192 192s86 192 192 192c44 0 85 -15 118 -40l31 30l33 -33zM298 54c28 28 44 66 44 106s-16 78 -44 106s-66 44 -106 44s-78 -16 -106 -44s-44 -66 -44 -106
+s16 -78 44 -106s66 -44 106 -44s78 16 106 44zM128 368v48h128v-48h-128z" />
+    <glyph glyph-name="ion-logo-python" unicode="&#xf246;" horiz-adv-x="384" 
+d="M129 199c-29 -5 -49 -30 -49 -57v-43v-3h-15c-29 0 -54 29 -62 69c-2 9 -3 17 -3 27v1c0 53 29 95 65 95h127v16h-96v29c0 26 7 40 46 47c13 2 29 4 45 4s39 -1 55 -4c25 -4 46 -22 46 -47v-57v-31c0 -21 -14 -38 -33 -43c-4 -1 -8 -2 -13 -2h-104h3c-4 0 -8 0 -12 -1z
+M140 321c10 0 17 7 17 17s-7 18 -17 18s-18 -8 -18 -18s8 -17 18 -17zM380 225c3 -10 4 -21 4 -33c0 -16 -3 -30 -7 -43c-11 -31 -33 -53 -58 -53h-127v-16h96v-26c0 -26 -23 -40 -46 -47c-35 -10 -68 -9 -97 0c-25 7 -49 22 -49 47v54v33c0 21 14 36 33 41c4 1 8 2 13 2
+h104c3 0 6 1 9 1c27 4 49 28 49 62v38v3h15c28 0 52 -26 61 -63zM244 65c-10 0 -18 -7 -18 -17s8 -18 18 -18s17 8 17 18s-7 17 -17 17z" />
+    <glyph glyph-name="ion-logo-hackernews" unicode="&#xf23c;" horiz-adv-x="384" 
+d="M0 384h384v-384h-384v384zM214 169l64 120h-45l-38 -84l-40 84h-47l66 -120v-72h40v72z" />
+    <glyph glyph-name="ion-md-cut" unicode="&#xf2de;" horiz-adv-x="448" 
+d="M171 290l277 -277v-23h-67l-157 157l-53 -53c5 -11 8 -23 8 -36c0 -50 -39 -90 -89 -90s-90 40 -90 90s40 89 90 89c13 0 25 -3 36 -8l53 53l-53 53c-11 -5 -23 -8 -36 -8c-50 0 -90 39 -90 89s40 90 90 90s89 -40 89 -90c0 -13 -3 -25 -8 -36zM90 282c25 0 44 19 44 44
+s-19 45 -44 45s-45 -20 -45 -45s20 -44 45 -44zM90 13c25 0 44 20 44 45s-19 44 -44 44s-45 -19 -45 -44s20 -45 45 -45zM224 181c6 0 11 5 11 11s-5 11 -11 11s-11 -5 -11 -11s5 -11 11 -11zM381 394h67v-23l-157 -157l-45 45z" />
+    <glyph glyph-name="ion-md-photos" unicode="&#xf348;" 
+d="M352 27c0 -24 -20 -43 -43 -43h-266c-24 0 -43 19 -43 43v266c0 24 19 43 43 43h266c24 0 43 -19 43 -43v-266zM109 144l-66 -96h266l-88 128l-66 -96zM373 400c24 0 43 -19 43 -43v-266c0 -24 -19 -43 -43 -43h-5v32v229c0 24 -19 43 -43 43h-229h-32v5
+c0 24 19 43 43 43h266z" />
+    <glyph glyph-name="ion-ios-locate" unicode="&#xf1ae;" horiz-adv-x="415" 
+d="M347 189c0 1 -1 2 -1 3s1 2 1 3c0 -1 -1 -1 -1 -2s1 -3 1 -4zM411 178c2 0 4 -2 4 -4c-9 -100 -89 -180 -189 -189c-2 0 -5 2 -5 4v50c0 8 -5 14 -13 14s-15 -6 -15 -14v-50c0 -2 -2 -4 -4 -4c-100 9 -180 89 -189 189c0 2 2 4 4 4h50c8 0 14 5 14 13s-6 15 -14 15h-50
+c-2 0 -4 2 -4 4c9 100 89 180 189 189c2 0 4 -2 4 -4v-50c0 -8 6 -14 14 -14s14 6 14 14v50c0 2 3 4 5 4c100 -9 180 -89 189 -189c0 -2 -2 -4 -4 -4h-50c-7 0 -13 -5 -14 -11c0 -1 -1 -2 -1 -3s1 -2 1 -3c1 -6 6 -11 13 -11h51zM207 122c39 0 70 31 70 70s-31 70 -70 70
+s-70 -31 -70 -70s31 -70 70 -70z" />
+    <glyph glyph-name="ion-md-mic-off" unicode="&#xf32b;" horiz-adv-x="408" 
+d="M316 93l58 -58l-58 58l58 -58l34 -33l-24 -24l-95 95c-19 -11 -40 -20 -62 -23v-82h-46v82c-75 10 -137 76 -137 153h39c0 -68 58 -117 121 -117c20 0 40 5 57 14l-32 33c-8 -3 -16 -5 -25 -5c-38 0 -69 31 -69 69v29l-135 134l24 24l111 -110v0l140 -140l5 -5l9 -9z
+M273 197c0 -4 0 -8 -1 -12l-137 137v25c0 38 31 69 69 69s69 -31 69 -69v-150zM365 203c0 -31 -10 -60 -27 -84l-27 28c9 17 15 36 15 56h39zM408 2v0l-34 33z" />
+    <glyph glyph-name="ion-md-cloudy" unicode="&#xf2cb;" horiz-adv-x="448" 
+d="M91 265h2h-2zM361 229c48 -3 87 -44 87 -93c0 -52 -41 -94 -93 -94h-243c-62 0 -112 50 -112 112c0 55 38 100 91 111c6 1 15 2 21 2c50 0 91 -31 106 -75h33c-6 24 -19 47 -37 65c-25 25 -57 37 -91 40c25 31 61 45 101 45c68 0 124 -48 137 -113z" />
+    <glyph glyph-name="ion-ios-podium" unicode="&#xf1ed;" horiz-adv-x="384" 
+d="M0 248c0 4 4 8 8 8h96c4 0 8 -4 8 -8v-208c0 -4 -4 -8 -8 -8h-96c-4 0 -8 4 -8 8v208zM136 352h112c4 0 8 -4 8 -8v-304c0 -4 -4 -8 -8 -8h-119h-1v312c0 4 4 8 8 8zM376 192c4 0 8 -4 8 -8v-144c0 -4 -4 -8 -8 -8h-96c-4 0 -8 4 -8 8v144c0 4 4 8 8 8h96z" />
+    <glyph glyph-name="ion-ios-print" unicode="&#xf1f1;" 
+d="M80 200c0 9 7 16 16 16h224c9 0 16 -7 16 -16v-200c0 -9 -7 -16 -16 -16h-224c-9 0 -16 7 -16 16v200zM336 400c9 0 16 -7 16 -16v-20c0 -2 -2 -4 -4 -4h-280c-2 0 -4 2 -4 4v20c0 9 7 16 16 16h256zM384 336c18 0 32 -13 32 -31v-175c0 -18 -14 -32 -32 -32h-16
+c-4 0 -8 4 -8 8v106c0 16 -12 28 -28 28h-248c-16 0 -28 -12 -28 -28v-106c0 -4 -4 -8 -8 -8h-16c-18 0 -32 14 -32 32v175c0 18 14 31 32 31h352z" />
+    <glyph glyph-name="ion-md-browsers" unicode="&#xf2a3;" horiz-adv-x="432" 
+d="M384 384c27 0 48 -22 48 -48v-288c0 -26 -22 -48 -48 -48h-336c-27 0 -48 22 -48 48v288c0 26 21 48 48 48h336zM384 48v224h-336v-224h336z" />
+    <glyph glyph-name="ion-ios-calculator" unicode="&#xf3f2;" horiz-adv-x="296" 
+d="M264 400c18 0 32 -14 32 -32v-352c0 -18 -14 -32 -32 -32h-232c-18 0 -32 14 -32 32v352c0 18 14 32 32 32h232zM252 128c0 13 -11 24 -24 24v0c-13 0 -24 -11 -24 -24v-80c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v80zM252 208c0 13 -11 24 -24 24v0
+c-13 0 -24 -11 -24 -24v0c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v0zM172 48c0 13 -11 24 -24 24v0c-13 0 -24 -11 -24 -24v0c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v0zM172 128c0 13 -11 24 -24 24v0c-13 0 -24 -11 -24 -24v0c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v0
+zM172 208c0 13 -11 24 -24 24v0c-13 0 -24 -11 -24 -24v0c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v0zM92 48c0 13 -11 24 -24 24v0c-13 0 -24 -11 -24 -24v0c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v0zM92 128c0 13 -11 24 -24 24v0c-13 0 -24 -11 -24 -24v0
+c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v0zM92 208c0 13 -11 24 -24 24v0c-13 0 -24 -11 -24 -24v0c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v0zM44 288c0 -9 7 -16 16 -16h176c9 0 16 7 16 16v48c0 9 -7 16 -16 16h-176c-9 0 -16 -7 -16 -16v-48z" />
+    <glyph glyph-name="ion-md-gift" unicode="&#xf199;" horiz-adv-x="420" 
+d="M378 314c23 0 42 -19 42 -43v-245c0 -24 -20 -42 -43 -42h-336c-23 0 -41 18 -41 42v245c0 24 19 43 42 43h46c-2 7 -4 13 -4 21c0 35 28 65 63 65c22 0 42 -13 53 -30l10 -14l10 14c11 17 31 28 53 28c35 0 63 -28 63 -63c0 -7 -2 -14 -4 -21h46zM274 357
+c-12 0 -21 -9 -21 -21s9 -21 21 -21s21 9 21 21s-9 21 -21 21zM146 357c-12 0 -21 -9 -21 -21s9 -21 21 -21s21 9 21 21s-9 21 -21 21zM42 271v-245h147v229v0l-50 -69l-34 24l44 61h-107zM378 26v245h-107l44 -61l-34 -24l-50 69v-229h147z" />
+    <glyph glyph-name="ion-md-thumbs-down" unicode="&#xf391;" 
+d="M266 384c21 0 38 -17 38 -38v-192c0 -11 -4 -20 -11 -27l-126 -127l-20 20c-5 5 -9 12 -9 20l1 6l18 82h-119c-21 0 -38 24 -38 45v38c0 5 1 10 3 14l57 136c6 14 18 23 34 23h172zM352 160v224h64v-224h-64z" />
+    <glyph glyph-name="ion-md-arrow-dropright-circle" unicode="&#xf283;" 
+d="M208 -16c-115 0 -208 93 -208 208s93 208 208 208s208 -93 208 -208s-93 -208 -208 -208zM176 96l96 96l-96 96v-192z" />
+    <glyph glyph-name="ion-ios-battery-dead" unicode="&#xf121;" horiz-adv-x="480" 
+d="M380 304c26 0 48 -22 48 -48v-128c0 -26 -22 -48 -48 -48h-332c-26 0 -48 22 -48 48v128c0 26 22 48 48 48h332zM400 128v128c0 11 -9 20 -20 20h-332c-11 0 -20 -9 -20 -20v-128c0 -11 9 -20 20 -20h332c11 0 20 9 20 20zM448 243c16 0 32 -27 32 -51s-16 -51 -32 -51
+v102z" />
+    <glyph glyph-name="ion-ios-add" unicode="&#xf102;" horiz-adv-x="257" 
+d="M241 208c9 0 16 -7 16 -16s-7 -16 -16 -16h-97v-96c0 -9 -7 -16 -16 -16c-4 0 -8 1 -11 4s-5 8 -5 12v96h-96c-4 0 -8 2 -11 5s-5 7 -5 11c0 9 7 16 16 16h96v96c0 9 7 16 16 16s16 -7 16 -16v-96h97z" />
+    <glyph glyph-name="ion-md-rocket" unicode="&#xf179;" horiz-adv-x="288" 
+d="M144 26c18 0 33 7 43 11c5 2 11 -1 11 -7l-4 -51c0 -3 -4 -5 -6 -3l-15 11c-2 1 -4 1 -5 -1l-21 -32c-2 -2 -4 -2 -6 0l-21 32c-1 2 -4 2 -6 1l-14 -11c-2 -2 -6 0 -6 3l-4 51c0 6 6 9 11 7c10 -4 25 -11 43 -11zM286 155c2 -2 2 -4 2 -7l-18 -112c-1 -6 -7 -8 -12 -5
+l-67 45s-20 -20 -46 -20s-48 20 -48 20l-67 -45c-5 -3 -10 -1 -11 5l-19 112c0 3 0 5 2 7l48 49c0 158 94 228 94 228s94 -70 94 -228zM144 256c17 0 31 14 31 32s-14 32 -31 32s-30 -14 -30 -32s13 -32 30 -32z" />
+    <glyph glyph-name="ion-md-briefcase" unicode="&#xf2a2;" 
+d="M304 304h112v-264c0 -22 -18 -40 -40 -40h-336c-22 0 -40 18 -40 40v264h112v40c0 22 18 40 40 40h112c22 0 40 -18 40 -40v-40zM264 304v40h-112v-40h112z" />
+    <glyph glyph-name="ion-ios-flower" unicode="&#xf433;" 
+d="M337 218c52 0 79 -11 79 -26s-27 -26 -79 -26c-27 0 -60 6 -86 13c-1 -3 -2 -6 -4 -9c23 -14 52 -32 71 -51c37 -37 48 -63 37 -74c-3 -2 -6 -4 -10 -4c-14 0 -36 13 -64 41c-19 19 -37 48 -51 71c-3 -2 -7 -3 -10 -4c7 -26 14 -59 14 -86c0 -52 -11 -79 -26 -79
+s-26 27 -26 79c0 27 7 60 14 86c-3 1 -6 2 -9 4c-14 -23 -33 -52 -52 -71c-28 -28 -50 -41 -64 -41c-4 0 -7 1 -10 4c-11 11 0 37 37 74c19 19 48 37 71 51c-2 3 -3 6 -4 9c-26 -7 -59 -13 -86 -13c-52 0 -79 11 -79 26s27 26 79 26c27 0 60 -7 86 -14c1 3 2 6 4 9
+c-23 14 -52 33 -71 52c-37 37 -48 63 -37 74c3 2 6 4 10 4c14 0 36 -13 64 -41c19 -19 37 -48 51 -71c3 2 6 3 9 4c-7 26 -13 59 -13 86c0 52 11 79 26 79s26 -27 26 -79c0 -27 -7 -60 -14 -86c3 -1 7 -2 10 -4c14 23 32 52 51 71c28 28 50 41 64 41c4 0 7 -1 10 -4
+c11 -11 0 -37 -37 -74c-19 -19 -48 -38 -71 -52c2 -3 3 -6 4 -9c26 7 59 14 86 14zM270 72c7 -7 14 -14 20 -19c9 -31 7 -50 -4 -54c-2 -1 -3 -1 -5 -1c-10 0 -22 11 -34 33c1 10 2 20 2 32s-1 25 -3 38c8 -11 16 -21 24 -29zM146 312c-7 7 -14 13 -20 18c-9 31 -7 51 4 55
+c2 1 3 1 5 1c10 0 22 -11 34 -33c-1 -10 -2 -20 -2 -32s1 -25 3 -38c-8 11 -16 21 -24 29zM88 129c-7 -7 -14 -14 -19 -20c-13 -4 -24 -5 -32 -5c-12 0 -19 4 -22 10c-4 10 6 24 32 38c10 -1 20 -1 32 -1s25 1 38 3c-11 -8 -21 -17 -29 -25zM328 254c7 7 14 14 19 20
+c13 4 24 6 32 6c12 0 19 -4 22 -10c4 -10 -6 -25 -32 -39c-10 1 -20 2 -32 2s-25 -2 -38 -4c11 8 21 17 29 25zM146 72c8 8 16 18 24 29c-2 -13 -3 -26 -3 -38c0 -10 0 -20 1 -28c-14 -24 -26 -36 -36 -36c-2 0 -3 0 -5 1c-10 4 -13 22 -5 50c8 6 16 14 24 22zM270 312
+c-8 -8 -16 -19 -24 -30c2 13 3 27 3 39c0 10 0 19 -1 27c14 24 26 36 36 36c2 0 3 1 5 0c10 -4 13 -23 5 -51c-8 -6 -16 -13 -24 -21zM52 232c-28 16 -41 30 -36 41c3 6 11 10 22 10c8 0 17 -2 28 -5c6 -8 14 -16 22 -24s18 -17 29 -25c-13 2 -26 4 -38 4
+c-10 0 -19 0 -27 -1zM364 152c28 -16 41 -31 36 -42c-3 -6 -11 -9 -22 -9c-8 0 -17 2 -28 5c-6 8 -14 15 -22 23s-18 17 -29 25c13 -2 26 -3 38 -3c10 0 19 0 27 1z" />
+    <glyph glyph-name="ion-logo-github" unicode="&#xf239;" horiz-adv-x="448" 
+d="M224 416c124 0 224 -103 224 -230c0 -101 -64 -188 -153 -218h-4c-8 0 -12 7 -12 12c0 8 1 31 1 62c0 21 -8 36 -16 43c50 6 103 25 103 113c0 25 -9 46 -23 62c2 6 10 29 -2 61h-5c-8 0 -27 -3 -57 -24c-18 5 -37 8 -56 8s-38 -3 -56 -8c-30 21 -49 24 -57 24h-5
+c-12 -32 -4 -55 -2 -61c-14 -16 -23 -37 -23 -62c0 -88 52 -107 102 -113c-6 -6 -12 -16 -14 -31c-6 -3 -16 -6 -26 -6c-13 0 -28 5 -39 25c0 0 -13 22 -35 24v0c-2 0 -21 0 -1 -14c0 0 15 -8 25 -34c0 0 10 -33 53 -33c7 0 14 0 22 2v-39c0 -5 -3 -11 -11 -11h-4
+c-89 30 -153 116 -153 218c0 127 100 230 224 230z" />
+    <glyph glyph-name="ion-ios-play" unicode="&#xf488;" horiz-adv-x="256" 
+d="M0 344c0 6 7 10 12 7l240 -152c5 -3 5 -11 0 -14l-240 -152c-5 -3 -12 1 -12 7v304z" />
+    <glyph glyph-name="ion-md-globe" unicode="&#xf301;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM186 15c6 15 21 29 8 39c-8 7 -16 14 -23 21c-2 2 -11 20 -9 23c5 9 6 14 8 24c3 12 -3 16 -13 22c-15 10 -29 23 -43 34c-7 5 -17 10 -20 19s-5 20 -10 28c-14 20 -12 34 -10 58
+c0 7 -1 16 -2 25c-28 -32 -42 -73 -42 -116c0 -48 18 -92 52 -126c29 -29 65 -46 104 -51zM334 66c23 23 39 51 47 82c-8 -1 -19 2 -19 2s-21 24 -23 45c-2 22 0 39 -3 57c-3 16 -20 31 -27 46c-7 14 -13 28 -20 42c2 -1 5 -2 7 -3c5 1 10 2 14 2c-23 16 -49 25 -76 29v-8
+l4 -9l-14 -13l-9 3l-10 10l-10 12l-14 5c-16 -2 -31 -7 -45 -13v-7c7 3 16 5 23 8c3 1 13 -7 16 -9c-4 -5 -21 -15 -22 -21c0 -2 7 -6 7 -10c0 -6 -1 -11 -1 -17c3 3 20 21 22 21c13 3 35 -19 37 -26s-22 -24 -33 -34c-8 -8 -25 -12 -20 -24c2 -4 10 -20 5 -24
+c-6 -5 -14 9 -17 12c-8 10 -26 7 -38 7c0 -17 -1 -31 15 -43c15 -11 30 -25 47 -33c13 -6 36 7 47 -1c16 -11 29 -21 47 -29c8 -3 33 -20 26 -31c-5 -8 -10 -15 -14 -23s-13 -20 -20 -25c-8 -6 -16 -17 -21 -29c35 7 66 23 92 49z" />
+    <glyph glyph-name="ion-md-cloud" unicode="&#xf2c9;" horiz-adv-x="480" 
+d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121z" />
+    <glyph glyph-name="ion-md-egg" unicode="&#xf2e5;" horiz-adv-x="352" 
+d="M176 416c70 0 176 -133 176 -257s-70 -191 -176 -191s-176 67 -176 191s106 257 176 257z" />
+    <glyph glyph-name="ion-ios-easel" unicode="&#xf173;" horiz-adv-x="448" 
+d="M402 -14c2 -4 1 -8 -1 -12s-7 -6 -11 -6h-1c-6 0 -11 3 -13 8l-26 70c-2 4 0 8 2 12s7 6 11 6c5 0 10 -3 12 -8zM86 64c4 0 9 -2 11 -6c3 -4 3 -8 1 -12l-26 -70c-2 -5 -6 -8 -12 -8h-1c-4 0 -9 2 -11 6s-3 8 -1 12l26 70c2 5 7 8 13 8zM225 64c7 0 13 -6 13 -13v-37
+c0 -7 -6 -14 -13 -14h-1c-7 0 -14 7 -14 14v37c0 7 7 13 14 13h1zM392 320c4 0 8 -4 8 -8v-176c0 -4 -4 -8 -8 -8h-336c-4 0 -8 4 -8 8v176c0 4 4 8 8 8h336zM416 368c18 0 32 -14 32 -32v-224c0 -18 -14 -32 -32 -32h-384c-18 0 -32 14 -32 32v224c0 18 14 32 32 32h384z
+M420 124v0v205c0 3 -1 6 -3 8v0c-2 2 -5 3 -8 3h-365c-9 0 -16 -7 -16 -16v-200c0 -9 7 -16 16 -16h360c9 0 16 7 16 16zM224 416c13 0 24 -13 24 -26h-48c0 13 11 26 24 26z" />
+    <glyph glyph-name="ion-ios-log-out" unicode="&#xf1b2;" 
+d="M264 76c8 0 14 -6 14 -14c0 -25 -21 -46 -46 -46h-186c-25 0 -46 21 -46 46v260c0 25 21 46 46 46h186c25 0 46 -21 46 -46c0 -8 -6 -14 -14 -14s-14 6 -14 14c0 10 -8 18 -18 18h-186c-10 0 -18 -8 -18 -18v-260c0 -10 8 -18 18 -18h186c10 0 18 8 18 18c0 8 6 14 14 14
+zM325 290l84 -84c4 -4 7 -10 7 -15s-3 -11 -7 -15l-82 -82c-3 -3 -6 -4 -10 -4s-7 2 -10 4v0c-5 6 -5 15 0 20l64 64h-257c-8 0 -14 6 -14 14s6 14 14 14h256l-65 64c-6 6 -6 14 0 20c3 3 6 4 10 4s7 -1 10 -4z" />
+    <glyph glyph-name="ion-md-options" unicode="&#xf33c;" horiz-adv-x="448" 
+d="M0 32v32h272v-32h-272zM368 32v32h80v-32h-80zM352 0c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v96c0 18 14 32 32 32v0c18 0 32 -14 32 -32v-96zM0 176v32h80v-32h-80zM176 176v32h272v-32h-272zM160 144c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v96
+c0 18 14 32 32 32v0c18 0 32 -14 32 -32v-96zM0 320v32h272v-32h-272zM368 320v32h80v-32h-80zM352 288c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v96c0 18 14 32 32 32v0c18 0 32 -14 32 -32v-96z" />
+    <glyph glyph-name="ion-md-color-filter" unicode="&#xf2d1;" horiz-adv-x="384" 
+d="M378 328c8 -8 8 -22 0 -30l-67 -67l41 -41l-30 -30l-30 30l-191 -190h-101v101l190 191l-30 30l30 30l41 -41l67 67c8 8 22 8 30 0zM84 43l172 171l-42 42l-171 -172z" />
+    <glyph glyph-name="ion-ios-heart" unicode="&#xf443;" 
+d="M304 392c62 -1 112 -51 112 -113c0 -37 -16 -90 -48 -133c-60 -82 -160 -154 -160 -154s-100 72 -160 154c-32 43 -48 96 -48 133c0 62 50 112 112 113v0v0h1c40 0 75 -21 95 -52c20 31 55 52 95 52h1v0v0z" />
+    <glyph glyph-name="ion-md-rewind" unicode="&#xf370;" horiz-adv-x="448" 
+d="M218 46l-218 146l218 146v-292zM230 192l218 146v-292z" />
+    <glyph glyph-name="ion-md-reorder" unicode="&#xf369;" horiz-adv-x="320" 
+d="M0 64v36h320v-36h-320zM0 284v36h320v-36h-320zM0 212v35h320v-35h-320zM0 137v35h320v-35h-320z" />
+    <glyph glyph-name="ion-md-bus" unicode="&#xf2a8;" horiz-adv-x="352" 
+d="M0 96v204c0 75 82 84 176 84s176 -9 176 -84v-204c0 -18 -14 -24 -27 -36v-39c0 -12 -9 -21 -21 -21h-21c-12 0 -22 9 -22 21v22h-170v-22c0 -12 -10 -21 -22 -21h-21c-12 0 -21 9 -21 21v39c-13 12 -27 17 -27 36zM80 80c18 0 32 14 32 32s-14 32 -32 32
+s-32 -14 -32 -32s14 -32 32 -32zM272 80c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM304 203v106h-256v-106h256z" />
+    <glyph glyph-name="ion-ios-medical" unicode="&#xf45c;" horiz-adv-x="353" 
+d="M351 274c4 -7 1 -17 -6 -21l-99 -57c-3 -2 -3 -5 0 -7l99 -57c7 -4 10 -15 6 -22l-17 -28c-4 -7 -14 -10 -21 -6l-99 57c-3 2 -6 0 -6 -3v-115c0 -9 -6 -15 -15 -15h-33c-9 0 -16 6 -16 15v115c0 3 -3 5 -6 3l-98 -57c-7 -4 -17 -1 -21 6l-17 28c-4 7 -1 17 6 21l98 57
+c3 2 3 5 0 7l-98 57c-7 4 -10 15 -6 22l17 28c4 7 14 10 21 6l98 -57c3 -2 6 0 6 3v114c0 9 7 16 16 16h33c9 0 15 -7 15 -16v-114c0 -3 3 -5 6 -3l99 57c7 4 17 1 21 -6z" />
+    <glyph glyph-name="ion-ios-stats" unicode="&#xf21c;" horiz-adv-x="352" 
+d="M104 0c-4 0 -8 4 -8 8v368c0 4 4 8 8 8h48c4 0 8 -4 8 -8v-368c0 -4 -4 -8 -8 -8h-48zM8 0c-4 0 -8 4 -8 8v144c0 4 4 8 8 8h48c4 0 8 -4 8 -8v-144c0 -4 -4 -8 -8 -8h-48zM200 0c-4 0 -8 4 -8 8v208c0 4 4 8 8 8h48c4 0 8 -4 8 -8v-208c0 -4 -4 -8 -8 -8h-48zM288 312
+c0 4 4 8 8 8h48c4 0 8 -4 8 -8v-304c0 -4 -4 -8 -8 -8h-48c-4 0 -8 4 -8 8v304z" />
+    <glyph glyph-name="ion-ios-battery-charging" unicode="&#xf120;" horiz-adv-x="480" 
+d="M380 304c26 0 48 -22 48 -48v-128c0 -26 -22 -48 -48 -48h-332c-26 0 -48 22 -48 48v128c0 26 22 48 48 48h332zM400 128v128c0 11 -9 20 -20 20h-332c-11 0 -20 -9 -20 -20v-128c0 -11 9 -20 20 -20h332c11 0 20 9 20 20zM448 243c16 0 32 -27 32 -51s-16 -51 -32 -51
+v102zM368 256c7 0 12 -5 12 -12v-104c0 -7 -5 -12 -12 -12h-308c-7 0 -12 5 -12 12v104c0 7 5 12 12 12h308zM203 140l45 61h-27l8 43l-45 -61h27z" />
+    <glyph glyph-name="ion-logo-pinterest" unicode="&#xf244;" horiz-adv-x="448" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224c-22 0 -44 3 -64 9c8 14 18 31 23 48c3 10 16 62 16 62c8 -15 30 -28 54 -28c72 0 121 65 121 153c0 66 -56 129 -142 129c-106 0 -160 -76 -160 -140c0 -39 15 -73 46 -86c5 -2 10 0 12 6c1 4 3 14 4 18
+c2 6 1 7 -3 12c-9 11 -15 24 -15 44c0 57 42 107 110 107c60 0 94 -36 94 -85c0 -65 -29 -119 -71 -119c-24 0 -42 19 -36 43c7 28 20 59 20 79c0 18 -10 34 -30 34c-24 0 -43 -25 -43 -58c0 -21 7 -36 7 -36s-25 -104 -29 -122c-4 -17 -5 -35 -4 -51
+c-79 35 -134 113 -134 205c0 124 100 224 224 224z" />
+    <glyph glyph-name="ion-md-call" unicode="&#xf2ac;" horiz-adv-x="384" 
+d="M363 117c12 0 21 -9 21 -21v-75c0 -12 -9 -21 -21 -21c-201 0 -363 162 -363 363c0 12 9 21 21 21h75c12 0 21 -9 21 -21c0 -27 4 -52 13 -77c2 -7 0 -16 -5 -21l-47 -47c31 -61 80 -110 141 -141l47 47c5 6 14 7 21 5c23 -7 49 -12 76 -12z" />
+    <glyph glyph-name="ion-ios-redo" unicode="&#xf499;" horiz-adv-x="448" 
+d="M0 16v37c0 20 -4 97 57 159c40 41 91 61 163 65c2 0 4 2 4 4v83c0 3 3 5 6 3l216 -142c2 -2 2 -5 0 -7l-216 -142c-3 -2 -6 1 -6 4v81c0 2 -2 4 -4 4c-44 -2 -69 -11 -97 -23c-36 -16 -73 -51 -95 -84c-13 -20 -19 -33 -21 -39c-1 -2 -2 -3 -4 -3h-3z" />
+    <glyph glyph-name="ion-md-sync" unicode="&#xf38b;" horiz-adv-x="320" 
+d="M160 355c88 0 160 -73 160 -163c0 -32 -9 -62 -25 -87l-29 30c9 17 14 37 14 57c0 67 -54 122 -120 122v-61l-80 82l80 81v-61zM160 70v61l80 -82l-80 -81v61c-88 0 -160 73 -160 163c0 32 9 63 25 87l29 -30c-9 -17 -14 -37 -14 -57c0 -67 54 -122 120 -122z" />
+    <glyph glyph-name="ion-ios-remove-circle" unicode="&#xf1fb;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM298 176c9 0 16 7 16 16s-7 16 -16 16h-180c-9 0 -16 -6 -16 -16s8 -16 16 -16h180z" />
+    <glyph glyph-name="ion-md-medal" unicode="&#xf326;" 
+d="M226 296h-226l54 104h241zM122 71c0 48 38 86 86 86s87 -38 87 -86s-39 -87 -87 -87s-86 39 -86 87zM301 149c-2 3 -5 5 -7 7c-23 23 -54 36 -86 36l139 208l69 -104zM158 181c-13 -6 -26 -14 -36 -24c-16 -16 -27 -36 -32 -57l-90 162h104z" />
+    <glyph glyph-name="ion-ios-mail-open" unicode="&#xf1b6;" 
+d="M406 238c4 -4 10 -13 10 -25v-213c0 -18 -14 -32 -32 -32h-352c-18 0 -32 14 -32 32v212c0 11 5 21 10 26s159 162 159 162c10 11 24 16 39 16s29 -5 39 -16c0 0 155 -158 159 -162zM386 196c10 10 0 36 -16 36h-324s-26 -26 -16 -36l81 -85c1 -1 1 -2 0 -3l-75 -80
+c-5 -5 -5 -13 0 -18c2 -2 6 -4 9 -4s7 2 9 4l151 161c2 2 4 2 6 0l151 -161c2 -2 6 -4 9 -4s7 2 9 4c5 5 5 13 0 18l-75 80c-1 1 -1 2 0 3z" />
+    <glyph glyph-name="ion-ios-checkbox" unicode="&#xf148;" horiz-adv-x="384" 
+d="M352 384c18 0 32 -14 32 -32v-320c0 -18 -14 -32 -32 -32h-320c-18 0 -32 14 -32 32v320c0 18 14 32 32 32h320zM300 250c2 2 1 3 -1 5l-17 18c-1 1 -2 2 -3 2v0c-1 0 -2 -1 -3 -2l-122 -123l-44 45c-1 1 -2 1 -3 1s-2 0 -3 -1l-18 -18c-2 -2 -2 -4 0 -6l56 -56
+c4 -4 8 -5 12 -5c5 0 10 3 12 5v0z" />
+    <glyph glyph-name="ion-ios-code-download" unicode="&#xf155;" horiz-adv-x="384" 
+d="M268 305l114 -109c1 -1 2 -2 2 -4s-1 -3 -2 -4l-114 -109c-1 -1 -2 -2 -4 -2s-3 1 -4 2l-14 13c-1 1 -2 2 -2 4s1 3 2 4l96 92l-96 92c-1 1 -2 2 -2 4s1 3 2 4l14 13c1 1 3 2 4 2s3 -1 4 -2zM42 192l96 -92c1 -1 2 -2 2 -4s-1 -3 -2 -4l-14 -13c-1 -1 -2 -2 -4 -2
+c-1 0 -3 1 -4 2l-114 109c-1 1 -2 2 -2 4s1 3 2 4l114 109c1 1 3 2 4 2s3 -1 4 -2l14 -13c1 -1 2 -2 2 -4s-1 -3 -2 -4zM269 181c0 -4 -2 -8 -5 -11l-62 -57c-3 -2 -6 -4 -10 -4s-7 2 -10 4l-62 57c-3 3 -5 7 -5 11s1 7 4 10v0c3 3 7 4 11 4c3 0 6 -1 9 -3l39 -35v106
+c0 8 6 15 14 15s14 -7 14 -15v-106l39 35c3 2 5 4 9 4s7 -2 10 -5h1c3 -3 4 -6 4 -10z" />
+    <glyph glyph-name="ion-ios-alarm" unicode="&#xf3c8;" horiz-adv-x="384" 
+d="M317 384c38 -2 67 -33 67 -69c0 -18 -7 -26 -16 -37c-1 -1 -3 -2 -5 -2h-1c-2 0 -3 1 -4 2l-90 80c-2 1 -2 4 -2 6s0 4 2 5c13 10 29 15 45 15v0h4zM0 315c0 36 29 67 67 69h4v0c16 0 32 -5 45 -15c2 -1 2 -3 2 -5s0 -5 -2 -6l-90 -80c-1 -1 -2 -2 -4 -2h-1
+c-2 0 -4 1 -5 2c-9 11 -16 19 -16 37zM326 62l35 -36c6 -6 5 -15 -1 -21c-3 -3 -8 -5 -12 -5s-8 2 -11 5l-34 35c-30 -25 -69 -40 -111 -40s-81 15 -111 40l-35 -35c-3 -3 -7 -5 -11 -5s-8 2 -11 5c-6 6 -7 15 -1 21l35 36c-26 31 -42 70 -42 114c0 97 79 176 176 176
+s176 -79 176 -176c0 -44 -16 -83 -42 -114zM206 174v116c0 8 -6 14 -14 14s-14 -6 -14 -14v-102h-68c-8 0 -14 -6 -14 -14s6 -14 14 -14h82c8 0 14 6 14 14z" />
+    <glyph glyph-name="ion-ios-send" unicode="&#xf20c;" horiz-adv-x="384" 
+d="M372 383c7 3 14 -4 11 -11l-152 -367c-3 -6 -12 -6 -15 0l-65 104c-4 6 -3 14 2 19l169 191c1 1 3 4 2 5s-5 -1 -6 -2l-195 -168c-5 -4 -13 -5 -19 -2l-99 56c-7 3 -6 12 0 15z" />
+    <glyph glyph-name="ion-ios-fastforward" unicode="&#xf427;" horiz-adv-x="448" 
+d="M444 199c5 -3 5 -11 0 -14l-208 -120c-5 -3 -12 1 -12 7v115l-212 -122c-5 -3 -12 1 -12 7v240c0 6 7 10 12 7l212 -122v115c0 6 7 10 12 7z" />
+    <glyph glyph-name="ion-ios-timer" unicode="&#xf4c1;" horiz-adv-x="400" 
+d="M200 -8c-110 0 -200 90 -200 200c0 55 21 106 61 144c6 6 17 6 23 0s6 -17 0 -23c-33 -32 -52 -75 -52 -121c0 -92 76 -168 168 -168s168 76 168 168c0 87 -67 159 -152 167v-63c0 -9 -7 -16 -16 -16s-16 7 -16 16v80c0 9 7 16 16 16c110 0 200 -90 200 -200
+s-90 -200 -200 -200zM120 286l99 -71c14 -10 17 -28 7 -42s-28 -17 -42 -7c-3 2 -5 4 -7 7l-71 99c-3 4 -2 11 2 14s9 2 12 0z" />
+    <glyph glyph-name="ion-md-water" unicode="&#xf3a7;" horiz-adv-x="352" 
+d="M300 285c69 -72 69 -191 0 -263c-34 -36 -79 -54 -124 -54s-91 18 -125 54c-69 72 -69 191 0 263l125 131z" />
+    <glyph glyph-name="ion-ios-heart-empty" unicode="&#xf19b;" 
+d="M304 392c62 -1 112 -51 112 -113c0 -37 -16 -90 -48 -133c-60 -82 -160 -154 -160 -154s-100 72 -160 154c-32 43 -48 96 -48 133c0 62 50 112 112 113v0v0h1c40 0 75 -21 95 -52c20 31 55 52 95 52h1v0v0zM346 163c29 40 42 87 42 116c0 22 -8 44 -24 60s-38 25 -60 25
+v0h-1v0c-14 0 -28 -4 -41 -11c-12 -7 -22 -16 -30 -28c-5 -8 -14 -13 -24 -13s-18 5 -23 13c-8 12 -19 21 -31 28c-13 7 -27 11 -41 11v0h-1v0c-23 0 -43 -9 -59 -25s-25 -37 -25 -60c0 -29 13 -76 42 -116c43 -58 108 -112 138 -136c30 24 95 78 138 136z" />
+    <glyph glyph-name="ion-md-radio-button-off" unicode="&#xf360;" 
+d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166z" />
+    <glyph glyph-name="ion-md-chatboxes" unicode="&#xf2b6;" 
+d="M344 384c4 0 7 -4 7 -8v-214c0 -4 -3 -9 -7 -9h-187l-90 -89v89h-57c-4 0 -10 5 -10 9v214c0 4 6 8 10 8h334zM408 321c4 0 8 -5 8 -9v-214c0 -4 -4 -9 -8 -9h-57v-89l-90 89h-130l39 39h181c18 0 25 10 25 26v167h32z" />
+    <glyph glyph-name="ion-md-exit" unicode="&#xf2e6;" horiz-adv-x="384" 
+d="M151 115l55 56h-206v42h207l-56 56l30 30l107 -107l-107 -107zM341 384c23 0 43 -20 43 -43v-298c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v85h43v-85h298v298h-298v-85h-43v85c0 23 20 43 43 43h298z" />
+    <glyph glyph-name="ion-ios-pulse" unicode="&#xf493;" horiz-adv-x="448" 
+d="M403 176c25 -1 44 -21 45 -46c1 -27 -21 -50 -48 -50c-20 0 -38 13 -45 31h-51c-7 0 -13 5 -15 11l-16 47l-50 -173c-2 -7 -8 -12 -15 -12h-1c-8 0 -14 6 -15 13l-51 308l-37 -182c-2 -7 -9 -12 -16 -12h-72c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h59l53 245
+c2 7 9 12 17 12s14 -5 15 -13l52 -315l45 156c2 7 8 11 15 11v0c7 0 13 -4 15 -11l29 -85h38c7 20 27 34 49 33z" />
+    <glyph glyph-name="ion-md-folder" unicode="&#xf2f5;" horiz-adv-x="448" 
+d="M181 352l43 -48h181c23 0 43 -20 43 -43v-186c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v234c0 23 20 43 43 43h138z" />
+    <glyph glyph-name="ion-ios-copy" unicode="&#xf41c;" horiz-adv-x="384" 
+d="M288 333c-10 0 -19 9 -19 19v72c0 4 3 8 7 8v0c6 0 16 -4 21 -8l77 -64c6 -5 10 -13 10 -21v0c0 -3 -3 -6 -6 -6h-90zM243 352c0 -25 20 -45 45 -45h96v-243c0 -18 -14 -32 -32 -32h-240c-18 0 -32 14 -32 32v336c0 18 14 32 32 32h131v-80zM52 36c0 -18 14 -32 32 -32
+h236v-20c0 -18 -14 -32 -32 -32h-256c-18 0 -32 14 -32 32v352c0 18 14 32 32 32h20v-332z" />
+    <glyph glyph-name="ion-md-basket" unicode="&#xf292;" horiz-adv-x="448" 
+d="M330 243h98c11 0 20 -9 20 -20l-1 -6l-51 -187c-5 -17 -21 -30 -40 -30h-264c-19 0 -35 13 -40 30l-51 187c-1 2 -1 4 -1 6c0 11 9 20 20 20h98l89 132c4 6 11 9 17 9s13 -2 17 -8zM163 243h122l-61 89zM224 81c22 0 41 18 41 40s-19 41 -41 41s-41 -19 -41 -41
+s19 -40 41 -40z" />
+    <glyph glyph-name="ion-ios-contacts" unicode="&#xf161;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM351 136c9 -3 17 -8 23 -15c10 22 14 46 14 71c0 49 -19 94 -54 128c-34 33 -80 52 -128 52c-47 0 -91 -19 -125 -52c-34 -34 -53 -80 -53 -128c0 -33 9 -64 25 -92
+c13 7 27 8 42 11c7 1 23 5 25 13s2 15 2 23c0 3 -1 3 -3 5c-4 4 -6 9 -8 14c-2 8 -3 16 -4 24c-9 -2 -10 16 -12 21c-1 4 -2 19 4 22c-3 5 -4 12 -5 18c-2 13 -2 26 3 39c10 26 36 39 63 38c26 -1 52 -15 60 -41c4 -12 3 -27 1 -40c-1 -5 -3 -10 -5 -14c8 -3 4 -21 3 -24
+c-2 -5 -2 -21 -11 -19c-1 -10 -2 -22 -7 -31c-1 -2 -8 -8 -8 -10v-11c0 -5 0 -10 2 -15s10 -7 14 -8c14 -5 28 -5 42 -10c28 -10 45 -35 45 -65v0c0 -2 3 -3 5 -2s3 2 5 3c4 3 6 8 6 12c-2 17 -7 31 -20 44c-20 19 -46 25 -46 25c-3 1 -8 2 -12 3s-4 6 0 8c8 3 13 5 16 6
+c4 1 15 4 16 9v14c-21 2 -29 6 -29 6c-6 3 -2 6 0 11c14 32 -10 88 32 105c7 3 15 4 25 4c12 0 23 -2 31 -7c15 -9 20 -27 20 -44c0 -20 -4 -44 7 -62c2 -3 4 -4 0 -6c0 0 -6 -5 -31 -6c0 0 -2 -13 1 -17c6 -7 21 -7 29 -10z" />
+    <glyph glyph-name="ion-ios-desktop" unicode="&#xf16c;" horiz-adv-x="448" 
+d="M320 6c0 -3 -2 -6 -5 -6h-182c-3 0 -5 3 -5 6c0 2 2 4 4 4l22 2c12 3 21 16 23 28l1 8h92l1 -8c2 -12 11 -25 23 -28l22 -2c2 0 4 -2 4 -4zM441 377c4 -4 7 -11 7 -17v-272c0 -6 -3 -13 -7 -17s-11 -7 -17 -7h-400c-6 0 -13 3 -17 7s-7 11 -7 17v272c0 6 3 13 7 17
+s11 7 17 7h400c6 0 13 -3 17 -7zM224 88c4 0 8 4 8 8s-4 8 -8 8s-8 -4 -8 -8s4 -8 8 -8zM428 128c2 0 4 2 4 4v224c0 7 -5 12 -12 12h-392c-7 0 -12 -5 -12 -12v-224c0 -2 2 -4 4 -4h408z" />
+    <glyph glyph-name="ion-logo-yahoo" unicode="&#xf34d;" horiz-adv-x="320" 
+d="M289 380c11 0 21 1 31 4l-128 -213v-171c-10 4 -21 4 -32 4s-22 0 -32 -4v171l-128 213c10 -4 21 -4 32 -4s22 0 32 4l96 -160l96 160c10 -4 22 -4 33 -4z" />
+    <glyph glyph-name="ion-ios-laptop" unicode="&#xf1a8;" horiz-adv-x="480" 
+d="M432 80h48v0c0 -10 -10 -19 -20 -23s-28 -9 -48 -9h-344c-20 0 -38 5 -49 10c-9 4 -19 12 -19 22v0h48v239c0 10 8 17 17 17h350c9 0 17 -8 17 -17v-239zM240 328c-2 0 -4 -2 -4 -4s2 -4 4 -4s4 2 4 4s-2 4 -4 4zM66 312c-1 0 -2 -1 -2 -2v-212c0 -1 1 -2 2 -2h348
+c1 0 2 1 2 2v212c0 1 -1 2 -2 2h-348zM282 72c7 0 10 6 10 8h-104c0 -2 5 -8 10 -8h84z" />
+    <glyph glyph-name="ion-ios-flame" unicode="&#xf42f;" horiz-adv-x="288" 
+d="M108 400c98 -59 187 -161 180 -267c-8 -125 -117 -149 -143 -149s-144 38 -145 149c-1 136 137 132 108 267zM182 45c2 6 3 12 3 18c0 41 -41 88 -41 88s-40 -47 -40 -88c0 -6 0 -12 2 -18c10 -39 66 -39 76 0z" />
+    <glyph glyph-name="ion-md-contract" unicode="&#xf2d8;" horiz-adv-x="384" 
+d="M0 77v51h128v-128h-51v77h-77zM77 307v77h51v-128h-128v51h77zM256 0v128h128v-51h-77v-77h-51zM307 307h77v-51h-128v128h51v-77z" />
+    <glyph glyph-name="ion-md-female" unicode="&#xf2eb;" horiz-adv-x="288" 
+d="M288 272c0 -71 -52 -131 -120 -142v-50h72v-48h-72v-64h-48v64h-72v48h72v50c-68 11 -120 71 -120 142c0 80 64 144 144 144s144 -64 144 -144zM48 272c0 -53 43 -96 96 -96s96 43 96 96s-43 96 -96 96s-96 -43 -96 -96z" />
+    <glyph glyph-name="ion-md-share" unicode="&#xf379;" horiz-adv-x="384" 
+d="M320 104c34 0 62 -28 62 -62s-28 -62 -62 -62s-62 28 -62 62c0 5 1 10 2 14l-152 88c-12 -11 -27 -17 -44 -17c-35 0 -64 29 -64 64s28 64 63 64c17 0 32 -6 44 -17l151 87c-1 5 -2 10 -2 15c0 35 29 64 64 64s64 -29 64 -64s-29 -64 -64 -64c-17 0 -32 6 -44 17
+l-151 -87c1 -5 2 -10 2 -15s-1 -10 -2 -15l153 -88c11 11 26 16 42 16z" />
+    <glyph glyph-name="ion-md-calculator" unicode="&#xf2aa;" horiz-adv-x="320" 
+d="M272 400c27 0 48 -22 48 -48v-320c0 -26 -22 -48 -48 -48h-224c-27 0 -48 22 -48 48v320c0 26 21 48 48 48h224zM104 32v48h-48v-48h48zM104 120v48h-48v-48h48zM104 208v48h-48v-48h48zM184 32v48h-48v-48h48zM184 120v48h-48v-48h48zM184 208v48h-48v-48h48zM264 32
+v136h-48v-136h48zM264 208v48h-48v-48h48zM264 304v48h-208v-48h208z" />
+    <glyph glyph-name="ion-ios-nutrition" unicode="&#xf470;" horiz-adv-x="384" 
+d="M295 216v0c6 -6 9 -14 9 -23c0 -11 -5 -20 -13 -26v0s-44 -33 -97 -72c-3 -2 -7 -2 -10 0l-37 26c-4 3 -8 3 -10 1v0c-2 -2 -2 -6 1 -10l21 -32c2 -4 1 -9 -2 -11l-105 -77c-6 -4 -12 -8 -20 -8c-18 0 -32 14 -32 32c0 7 2 13 5 18v0c1 2 11 18 29 46c2 4 6 5 10 3l17 -8
+c4 -3 8 -3 10 -1v0c2 2 2 6 -1 10l-14 24c-2 3 -2 6 0 8c24 39 49 79 71 114c2 4 7 4 11 2l32 -20c4 -3 8 -3 10 -1v0c2 2 2 6 -1 10l-27 41c-2 3 -2 5 0 8l12 20v0c6 10 16 16 28 16c9 0 18 -4 24 -10v0l79 -79v-1v0zM383 317c2 -4 1 -9 -3 -11l-92 -47l-28 29l57 108
+c2 4 7 5 11 3l18 -8c4 -2 5 -7 3 -11l-48 -79l60 37c4 2 9 1 11 -3z" />
+    <glyph glyph-name="ion-md-folder-open" unicode="&#xf2f4;" horiz-adv-x="448" 
+d="M405 304c23 0 43 -20 43 -43v-186c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v234c0 23 20 43 43 43h138l43 -48h181zM416 75v186c0 6 -5 11 -11 11h-373v-197c0 -6 5 -11 11 -11h362c6 0 11 5 11 11z" />
+    <glyph glyph-name="ion-md-bug" unicode="&#xf2a5;" horiz-adv-x="384" 
+d="M384 288v-48h-50c1 -8 2 -16 2 -24v-24h48v-48h-48v-24c0 -8 -1 -16 -2 -24h50v-48h-67c-25 -43 -72 -72 -125 -72s-100 29 -125 72h-67v48h50c-1 8 -2 16 -2 24v24h-48v48h48v24c0 8 1 16 2 24h-50v48h68c11 19 25 35 43 47l-39 39l34 34l52 -52c11 3 22 4 34 4
+s23 -1 34 -4l52 52l34 -34l-39 -39c18 -12 33 -28 44 -47h67z" />
+    <glyph glyph-name="ion-md-arrow-round-up" unicode="&#xf28b;" horiz-adv-x="332" 
+d="M323 221c12 -12 12 -31 0 -43s-34 -12 -46 0l-79 83v-214c0 -17 -14 -31 -32 -31s-32 14 -32 31v214l-79 -83c-12 -12 -34 -12 -46 0s-12 31 0 43l134 138c6 6 14 9 23 9v0c9 0 17 -3 23 -9z" />
+    <glyph glyph-name="ion-ios-save" unicode="&#xf1a6;" horiz-adv-x="384" 
+d="M208 384c4 0 8 -4 8 -8v-72c0 -4 -4 -8 -8 -8h-12c-4 0 -12 4 -12 8v72c0 4 4 8 8 8h16zM370 318c9 -9 14 -21 14 -34v-252c0 -18 -14 -32 -32 -32h-320c-18 0 -32 14 -32 32v320c0 18 14 32 32 32h32c9 0 16 -7 16 -16v-80c0 -9 7 -16 16 -16h128c9 0 16 7 16 16v80
+c0 9 7 16 16 16h28c13 0 25 -5 34 -14zM258 48v96c0 9 -8 16 -18 16h-160c-10 0 -18 -7 -18 -16v-96c0 -9 8 -16 18 -16h160c10 0 18 7 18 16z" />
+    <glyph glyph-name="ion-md-ribbon" unicode="&#xf371;" horiz-adv-x="384" 
+d="M192 416c71 0 128 -57 128 -128s-57 -128 -128 -128s-128 57 -128 128s57 128 128 128zM192 208c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80zM130 141c20 -8 40 -13 62 -13c9 0 18 1 26 2l-26 -56l-48 -106l-48 80h-96l75 131c1 -2 3 -3 4 -4
+c15 -15 32 -26 51 -34zM309 179l75 -131h-96l-48 -80l-32 70l22 49l24 54c19 8 36 19 51 34z" />
+    <glyph glyph-name="ion-ios-sunny" unicode="&#xf4b7;" 
+d="M208 61c8 0 15 -7 15 -15v-47c0 -8 -7 -15 -15 -15s-15 7 -15 15v47c0 8 7 15 15 15zM208 400c8 0 15 -7 15 -15v-47c0 -8 -7 -15 -15 -15s-15 7 -15 15v47c0 8 7 15 15 15zM77 192c0 -8 -7 -15 -15 -15h-47c-8 0 -15 7 -15 15s7 15 15 15h47c8 0 15 -7 15 -15zM401 207
+c8 0 15 -7 15 -15s-7 -15 -15 -15h-47c-8 0 -15 7 -15 15s7 15 15 15h47zM104 104c4 0 8 -2 11 -5c6 -6 6 -15 0 -21l-32 -33c-3 -3 -7 -5 -11 -5s-8 2 -11 5s-5 7 -5 11s2 8 5 11l33 32c3 3 6 5 10 5zM312 280c-4 0 -8 2 -11 5s-5 7 -5 11s2 7 5 10l32 33c3 3 7 5 11 5
+s8 -2 11 -5s5 -7 5 -11s-2 -8 -5 -11l-33 -32c-3 -3 -6 -5 -10 -5zM83 339l32 -33c3 -3 5 -6 5 -10s-2 -8 -5 -11s-7 -5 -11 -5s-7 2 -10 5l-33 32c-3 3 -5 7 -5 11s2 8 5 11s7 5 11 5s8 -2 11 -5zM322 99l33 -32c3 -3 5 -7 5 -11s-2 -8 -5 -11s-7 -5 -11 -5s-8 2 -11 5
+l-32 33c-6 6 -6 15 0 21c3 3 7 5 11 5s7 -2 10 -5zM208 288v0c53 0 96 -43 96 -96s-43 -96 -96 -96s-96 43 -96 96s43 96 96 96z" />
+    <glyph glyph-name="ion-ios-subway" unicode="&#xf21e;" horiz-adv-x="320" 
+d="M256 416c35 0 64 -29 64 -64v-232c0 -35 -29 -64 -64 -64h-192c-35 0 -64 29 -64 64v232c0 35 29 64 64 64h192zM104 392c-4 0 -8 -4 -8 -8s4 -8 8 -8h112c4 0 8 4 8 8s-4 8 -8 8h-112zM72 88c16 0 28 12 28 28s-12 28 -28 28s-28 -12 -28 -28s12 -28 28 -28zM248 88
+c16 0 28 12 28 28s-12 28 -28 28s-28 -12 -28 -28s12 -28 28 -28zM288 240v96c0 9 -7 16 -16 16h-224c-9 0 -16 -7 -16 -16v-96c0 -9 7 -16 16 -16h224c9 0 16 7 16 16zM298 -8c6 -5 6 -14 0 -20c-3 -3 -6 -4 -10 -4s-7 1 -10 4l-14 14h-208l-14 -14c-3 -3 -6 -4 -10 -4
+s-7 1 -10 4c-5 6 -6 15 0 20l50 48c6 5 15 6 20 0s6 -15 0 -20l-6 -6h148l-6 6c-6 5 -5 14 0 20s14 5 20 0z" />
+    <glyph glyph-name="ion-md-clock" unicode="&#xf2be;" 
+d="M355 339c81 -81 81 -213 0 -294s-213 -81 -294 0s-81 213 0 294s213 81 294 0zM339 286c-8 -4 -10 -14 -6 -22s14 -10 22 -6s10 14 6 22s-14 10 -22 6zM32 192c0 -9 7 -16 16 -16s16 7 16 16s-7 16 -16 16s-16 -7 -16 -16zM77 98c8 4 10 14 6 22s-14 10 -22 6
+s-9 -14 -5 -22s13 -10 21 -6zM83 264c4 8 2 18 -6 22s-17 2 -21 -6s-3 -18 5 -22s18 -2 22 6zM120 344c-8 -4 -10 -14 -6 -22s14 -9 22 -5s10 13 6 21s-14 10 -22 6zM112 234l80 -47v-123h31v139l-95 57zM142 45c4 8 2 18 -6 22s-18 2 -22 -6s-2 -17 6 -21s18 -3 22 5z
+M208 16c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM208 336c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM296 40c8 4 10 14 6 22s-14 9 -22 5s-10 -13 -6 -21s14 -10 22 -6zM302 323c4 8 2 17 -6 21s-18 3 -22 -5s-2 -18 6 -22s18 -2 22 6z
+M360 104c4 8 3 18 -5 22s-18 2 -22 -6s-2 -18 6 -22s17 -2 21 6zM368 176c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16z" />
+    <glyph glyph-name="ion-ios-notifications-outline" unicode="&#xf133;" horiz-adv-x="320" 
+d="M193 45v0c8 0 15 -8 13 -16c-5 -22 -20 -37 -46 -37s-42 15 -47 37c-2 8 5 16 13 16v0c6 0 11 -4 12 -10c1 -4 3 -8 5 -11c1 -1 6 -6 17 -6s15 4 16 6c2 3 4 7 5 11c1 6 6 10 12 10zM316 96c10 -13 0 -32 -16 -32h-140h-140c-16 0 -26 19 -16 32c15 20 46 32 46 123
+c0 93 41 131 79 140c4 1 7 2 7 6v3c0 13 11 24 24 24v0v0c13 0 24 -11 24 -24v-3c0 -4 2 -5 6 -6c38 -9 80 -47 80 -140c0 -91 31 -103 46 -123zM277 90c4 0 5 4 3 7c-7 8 -16 19 -22 34c-10 23 -14 51 -14 88s-7 67 -21 87c-12 18 -28 25 -39 27c-7 2 -13 5 -18 11
+c-3 4 -9 4 -12 0c-4 -5 -11 -9 -19 -11c-11 -2 -27 -9 -39 -27c-14 -20 -21 -50 -21 -87s-4 -65 -14 -88c-6 -15 -14 -26 -21 -34c-2 -3 -1 -7 3 -7h234z" />
+    <glyph glyph-name="ion-ios-quote" unicode="&#xf1f5;" horiz-adv-x="320" 
+d="M113 352v0c18 0 31 -13 31 -31v-192c0 -52 -21 -84 -28 -94c-2 -2 -5 -3 -7 -3h-40c-7 0 -11 8 -6 13c12 14 30 38 32 74c0 5 -3 9 -8 9h-39c-26 0 -48 22 -48 48v128c0 26 22 48 48 48h65zM289 352v0c18 0 31 -13 31 -31v-192c0 -52 -21 -84 -28 -94c-2 -2 -5 -3 -7 -3
+h-40c-7 0 -11 8 -6 13c12 14 30 38 32 74c0 5 -3 9 -8 9h-39c-26 0 -48 22 -48 48v128c0 26 22 48 48 48h65z" />
+    <glyph glyph-name="ion-ios-pause" unicode="&#xf478;" horiz-adv-x="256" 
+d="M72 32h-64c-4 0 -8 4 -8 8v304c0 4 4 8 8 8h64c4 0 8 -4 8 -8v-304c0 -4 -4 -8 -8 -8zM248 32h-64c-4 0 -8 4 -8 8v304c0 4 4 8 8 8h64c4 0 8 -4 8 -8v-304c0 -4 -4 -8 -8 -8z" />
+    <glyph glyph-name="ion-ios-remove" unicode="&#xf1fc;" horiz-adv-x="257" 
+d="M241 208c9 0 16 -7 16 -16s-7 -16 -16 -16h-225c-4 0 -8 2 -11 5s-5 7 -5 11c0 9 7 16 16 16h225z" />
+    <glyph glyph-name="ion-ios-done-all" unicode="&#xf171;" horiz-adv-x="320" 
+d="M222 238l-67 -69l-26 27l66 69c1 1 3 2 4 2v0c1 0 2 -1 3 -2l20 -21c2 -2 2 -4 0 -6zM28 195l76 -79l-13 -14v0c-2 -2 -7 -6 -13 -6c-4 0 -9 3 -13 7l-64 65c-2 2 -2 4 0 6l20 21c1 1 3 1 4 1s2 0 3 -1zM319 266c2 -2 2 -5 0 -7l-151 -156v0c-2 -2 -7 -6 -13 -6
+c-4 0 -10 2 -14 6l-63 65c-2 2 -2 5 0 7l20 21c1 1 2 1 3 1s3 0 4 -1l50 -52l138 143c1 1 2 1 3 1v0c1 0 2 0 3 -1z" />
+    <glyph glyph-name="ion-md-recording" unicode="&#xf364;" horiz-adv-x="420" 
+d="M324 288c53 0 96 -43 96 -96s-43 -96 -96 -96h-228c-53 0 -96 43 -96 96s43 96 96 96s97 -43 97 -96c0 -24 -8 -44 -22 -61h79c-14 17 -22 37 -22 61c0 53 43 96 96 96zM96 131c34 0 61 27 61 61s-27 61 -61 61s-61 -27 -61 -61s27 -61 61 -61zM324 131c34 0 61 27 61 61
+s-27 61 -61 61s-61 -27 -61 -61s27 -61 61 -61z" />
+    <glyph glyph-name="ion-ios-archive" unicode="&#xf10e;" 
+d="M412 328h-408c-2 0 -4 2 -4 4v20c0 18 14 32 32 32h352c18 0 32 -14 32 -32v-20c0 -2 -2 -4 -4 -4zM392 302c4 0 8 -4 8 -8v-262c0 -18 -14 -32 -32 -32h-320c-18 0 -32 14 -32 32v262c0 4 4 8 8 8h368zM258 160c8 0 15 8 14 16c-1 7 -7 12 -14 12h-100
+c-8 0 -15 -8 -14 -16c1 -7 7 -12 14 -12h100z" />
+    <glyph glyph-name="ion-ios-text" unicode="&#xf250;" 
+d="M208 384c115 0 208 -75 208 -168s-93 -168 -208 -168c-10 0 -19 1 -28 2c-6 -7 -25 -27 -47 -37c-18 -8 -39 -12 -51 -13c-3 0 -5 4 -3 6c12 14 28 35 33 61c-67 28 -112 84 -112 149c0 93 93 168 208 168z" />
+    <glyph glyph-name="ion-ios-remove-circle-outline" unicode="&#xf1fa;" 
+d="M298 208c9 0 16 -7 16 -16s-7 -16 -16 -16h-180c-8 0 -16 6 -16 16s7 16 16 16h180zM208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127s79 -53 127 -53s93 19 127 53s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0c115 0 208 -93 208 -208
+s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208z" />
+    <glyph glyph-name="ion-ios-attach" unicode="&#xf11b;" horiz-adv-x="231" 
+d="M216 287c9 0 15 -7 15 -16v-194c0 -14 -3 -28 -9 -42c-6 -13 -14 -25 -24 -35c-21 -20 -48 -32 -76 -32h-13c-28 0 -55 11 -76 32c-20 20 -33 49 -33 78v251c0 24 9 45 26 61s38 26 62 26s46 -10 62 -26c17 -16 26 -38 26 -61v-235c0 -18 -7 -33 -18 -44s-26 -18 -42 -18
+c-34 0 -60 26 -60 62v134c0 9 7 16 16 16s15 -7 15 -16v-134c0 -19 15 -32 29 -32c15 0 29 15 29 32v235c0 15 -7 29 -17 39s-25 16 -40 16s-30 -6 -41 -16c-11 -11 -17 -24 -17 -39v-251c0 -20 9 -39 24 -55s35 -25 55 -25h13c20 0 42 9 56 24s22 35 22 55v194
+c0 9 7 16 16 16z" />
+    <glyph glyph-name="ion-md-undo" unicode="&#xf39d;" horiz-adv-x="448" 
+d="M230 268c102 0 188 -66 218 -157l-52 -15c-23 70 -89 118 -166 118c-43 0 -82 -16 -112 -41l80 -77h-198v192l80 -76c40 35 92 56 150 56z" />
+    <glyph glyph-name="ion-md-refresh-circle" unicode="&#xf228;" 
+d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM320 206v98l-33 -33c-20 20 -48 33 -79 33c-62 0 -112 -50 -112 -112s50 -112 112 -112c51 0 93 34 107 80h-29c-12 -31 -43 -52 -78 -52c-46 0 -84 38 -84 84s38 84 84 84
+c23 0 44 -10 59 -25l-45 -45h98z" />
+    <glyph glyph-name="ion-ios-switch" unicode="&#xf221;" 
+d="M54 80c0 23 19 42 42 42s42 -19 42 -42s-19 -42 -42 -42s-42 19 -42 42zM320 176c53 0 96 -43 96 -96s-43 -96 -96 -96h-224c-53 0 -96 43 -96 96s43 96 96 96h224zM96 16c35 0 64 29 64 64s-29 64 -64 64s-64 -29 -64 -64s29 -64 64 -64zM278 304c0 23 19 42 42 42
+s42 -19 42 -42s-19 -42 -42 -42s-42 19 -42 42zM96 208c-53 0 -96 43 -96 96s43 96 96 96h224c53 0 96 -43 96 -96s-43 -96 -96 -96h-224zM320 368c-35 0 -64 -29 -64 -64s29 -64 64 -64s64 29 64 64s-29 64 -64 64z" />
+    <glyph glyph-name="ion-logo-bitcoin" unicode="&#xf22b;" horiz-adv-x="320" 
+d="M314 169c4 -10 7 -30 6 -44c-1 -16 -5 -37 -16 -51s-26 -24 -45 -31c-15 -6 -33 -10 -59 -11v-64h-40v64h-32v-64h-41v64h-87l9 48h26c9 0 9 0 12 1s4 4 5 7s2 8 2 17v173c0 9 -1 16 -2 18s-3 4 -6 6s-9 2 -18 2h-28v48h87v64h41v-64h32v64h40v-64c20 -1 33 -4 46 -9
+c16 -6 28 -15 37 -27s12 -28 13 -45c1 -10 0 -20 -3 -28c-2 -8 -8 -16 -16 -23c-6 -6 -11 -9 -16 -11c9 -2 17 -6 25 -10c15 -8 23 -18 28 -30zM128 298v-74h32v74h-32zM128 86h32v90h-32v-90zM200 294v-66c6 3 9 7 13 12c5 6 7 12 7 20s-2 15 -6 21c-4 5 -8 11 -14 13z
+M229 107c8 7 10 15 10 26c0 9 -3 19 -8 25s-12 10 -20 13c-4 2 -6 2 -11 3v-82c2 0 5 1 7 2c10 4 14 6 22 13z" />
+    <glyph glyph-name="ion-ios-return-left" unicode="&#xf202;" horiz-adv-x="384" 
+d="M6 183l60 59c3 3 6 4 10 4s7 -1 10 -4s4 -6 4 -10s-1 -7 -4 -10v0l-41 -40h261c13 0 25 5 35 15c10 9 15 22 15 35v48c0 8 6 14 14 14s14 -6 14 -14v-48c0 -21 -8 -40 -23 -55s-34 -23 -55 -23h-262l40 -40c3 -3 4 -6 4 -10s-1 -7 -4 -10v0c-3 -2 -6 -4 -10 -4
+s-7 1 -10 4l-58 58c-4 4 -6 9 -6 15s2 12 6 16z" />
+    <glyph glyph-name="ion-ios-trending-down" unicode="&#xf25a;" horiz-adv-x="448" 
+d="M448 79c0 -8 -7 -15 -15 -15h-121c-8 0 -15 7 -15 15s7 15 15 15h84l-138 142l-86 -84c-3 -3 -7 -5 -11 -5s-8 2 -11 5l-146 143c-2 2 -4 6 -4 11c0 4 1 7 4 10s7 4 11 4s8 -1 11 -4l135 -133l86 84c3 3 7 4 11 4s8 -1 11 -4l149 -152v82c0 8 7 15 15 15s15 -7 15 -15
+v-118z" />
+    <glyph glyph-name="ion-logo-tumblr" unicode="&#xf24d;" horiz-adv-x="256" 
+d="M193 52c21 0 42 6 63 20v-65c-18 -8 -34 -15 -48 -18s-28 -5 -45 -5c-19 0 -35 2 -50 7c-14 5 -28 12 -38 21s-17 18 -21 28s-6 25 -6 44v140h-48v58c16 5 30 14 42 24s19 21 26 35s11 37 14 59h62v-112h96v-64h-96v-101c0 -24 1 -40 4 -47c2 -7 7 -12 14 -16
+c9 -6 19 -8 31 -8z" />
+    <glyph glyph-name="ion-ios-notifications" unicode="&#xf1d3;" horiz-adv-x="320" 
+d="M160 -8c-31 0 -48 22 -48 53h96c0 -31 -17 -53 -48 -53zM316 96c10 -13 0 -32 -16 -32h-140h-140c-16 0 -26 19 -16 32c15 20 46 32 46 123c0 93 41 131 79 140c4 1 7 2 7 6v3c0 13 11 24 24 24s24 -11 24 -24v-3c0 -4 3 -5 7 -6c38 -9 79 -47 79 -140
+c0 -91 31 -103 46 -123z" />
+    <glyph glyph-name="ion-ios-cash" unicode="&#xf144;" horiz-adv-x="448" 
+d="M434 92c8 0 14 -6 14 -14s-6 -14 -14 -14h-420c-8 0 -14 6 -14 14s6 14 14 14h420zM434 44c8 0 14 -6 14 -14s-6 -14 -14 -14h-420c-8 0 -14 6 -14 14s6 14 14 14h420zM413 368c19 0 35 -16 35 -35v-178c0 -19 -16 -35 -35 -35h-378c-19 0 -35 16 -35 35v178
+c0 19 16 35 35 35h378zM82 152c8 0 14 6 14 14s-6 14 -14 14h-36c-8 0 -14 -6 -14 -14s6 -14 14 -14h36zM82 308c8 0 14 6 14 14s-6 14 -14 14h-36c-8 0 -14 -6 -14 -14s6 -14 14 -14h36zM224 164c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80zM402 152
+c8 0 14 6 14 14s-6 14 -14 14h-36c-8 0 -14 -6 -14 -14s6 -14 14 -14h36zM402 308c8 0 14 6 14 14s-6 14 -14 14h-36c-8 0 -14 -6 -14 -14s6 -14 14 -14h36zM171 242c0 29 24 53 53 53s53 -24 53 -53s-24 -53 -53 -53s-53 24 -53 53z" />
+    <glyph glyph-name="ion-md-menu" unicode="&#xf32a;" horiz-adv-x="384" 
+d="M0 64v43h384v-43h-384zM0 171v42h384v-42h-384zM0 320h384v-43h-384v43z" />
+    <glyph glyph-name="ion-ios-eye-off" unicode="&#xf17a;" horiz-adv-x="448" 
+d="M56 380l356 -356c6 -6 6 -14 0 -20c-2 -2 -5 -3 -7 -4c-5 -1 -9 0 -13 4l-356 356c-6 6 -6 14 0 20s14 6 20 0zM228 102c12 1 24 4 35 9l43 -44c-25 -12 -52 -19 -82 -19c-98 0 -155 61 -220 133c-6 6 -6 16 0 22c30 32 57 60 85 81l54 -54c-5 -10 -8 -22 -9 -34
+c-2 -53 41 -96 94 -94zM444 182c-24 -26 -52 -57 -85 -82l-54 54c5 10 8 22 9 34c2 53 -41 96 -94 94c-12 0 -25 -4 -35 -9l-43 44c26 12 53 19 82 19c96 0 168 -69 220 -133c5 -6 5 -15 0 -21zM160 187c-1 8 1 17 3 24l79 -80c-7 -2 -15 -4 -23 -3c-31 2 -57 28 -59 59z
+M288 192c0 -6 -1 -13 -3 -19l-18 19h3c6 0 12 2 18 4v-4zM224 239v-5l-19 19c6 2 13 3 19 3h3c-2 -5 -3 -11 -3 -17z" />
+    <glyph glyph-name="ion-ios-radio-button-on" unicode="&#xf1f7;" 
+d="M208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127s79 -53 127 -53s93 19 127 53s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM316 300c29 -29 44 -67 44 -108
+s-15 -79 -44 -108s-67 -44 -108 -44s-79 15 -108 44s-44 67 -44 108s15 79 44 108s67 44 108 44s79 -15 108 -44z" />
+    <glyph glyph-name="ion-logo-xbox" unicode="&#xf34c;" horiz-adv-x="448" 
+d="M95 200c-49 -72 -50 -139 -50 -143c-28 38 -45 84 -45 135c0 67 30 128 77 169l3 -1c51 -18 93 -68 93 -68s-38 -33 -78 -92zM448 192c0 -51 -17 -97 -45 -135c0 4 -1 71 -50 143c-40 59 -78 92 -78 92s42 50 93 68l3 1c47 -41 77 -102 77 -169zM169 367
+c-37 17 -65 12 -72 10c36 25 80 39 127 39s91 -14 127 -39c-7 2 -35 6 -72 -10c-29 -13 -55 -35 -55 -35s-26 22 -55 35zM327 155c40 -49 54 -85 62 -108l2 -5c-41 -46 -101 -74 -167 -74s-126 28 -167 74l1 5c8 23 23 59 63 108c46 57 103 94 103 94s57 -37 103 -94z" />
+    <glyph glyph-name="ion-logo-html5" unicode="&#xf23d;" horiz-adv-x="384" 
+d="M0 416h384l-35 -403l-157 -45l-157 45zM308 284l4 50h-241l13 -150h167l-6 -64l-53 -15l-54 15l-3 39h-48l6 -78l99 -27l98 28l14 151h-176l-4 51h184z" />
+    <glyph glyph-name="ion-ios-globe" unicode="&#xf18a;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208v0h-1c-55 0 -107 22 -146 61s-61 91 -61 147s22 108 61 147s91 61 146 61h1v0zM388 206c-3 36 -16 69 -38 97c-16 -8 -32 -15 -49 -21c6 -24 9 -49 10 -76h77zM194 206v62c-18 1 -36 3 -53 7c-5 -21 -8 -45 -9 -69h62
+zM194 178h-62c1 -24 4 -48 9 -69c17 4 35 6 53 7v62zM222 178v-62c18 -1 35 -3 52 -7c5 21 8 45 9 69h-61zM222 206h61c-1 24 -4 48 -9 69c-17 -4 -34 -6 -52 -7v-62zM331 324c-19 17 -40 31 -64 39c10 -15 19 -34 26 -55c13 4 26 10 38 16zM267 301c-11 34 -28 59 -45 68
+v-74c15 1 30 3 45 6zM194 369c-17 -9 -34 -34 -46 -68c15 -3 31 -5 46 -6v74zM148 363c-24 -8 -45 -22 -63 -39c12 -6 24 -12 37 -16c7 21 16 41 26 55zM66 303c-22 -28 -35 -62 -38 -97h77c1 27 4 52 10 76c-17 5 -33 13 -49 21zM28 178c3 -36 15 -69 37 -97
+c16 8 33 15 50 21c-6 24 -9 49 -10 76h-77zM84 60c18 -17 40 -31 64 -39c-10 15 -19 34 -26 55c-13 -4 -26 -10 -38 -16zM148 83c12 -34 29 -59 46 -68v74c-15 -1 -31 -3 -46 -6zM222 15c17 9 34 34 45 68c-15 3 -30 5 -45 6v-74zM267 21c24 8 46 22 65 39
+c-12 6 -25 12 -38 16c-7 -21 -17 -40 -27 -55zM350 81c22 28 35 61 38 97h-77c-1 -27 -4 -52 -10 -76c17 -6 33 -13 49 -21z" />
+    <glyph glyph-name="ion-md-print" unicode="&#xf35c;" 
+d="M352 288c35 0 64 -29 64 -64v-139h-80v-85h-256v85h-80v139c0 35 29 64 64 64h288zM304 32v128h-192v-128h192zM336 384v0v-80h-256v80h256z" />
+    <glyph glyph-name="ion-md-information-circle" unicode="&#xf311;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM229 88v125h-42v-125h42zM229 254v42h-42v-42h42z" />
+    <glyph glyph-name="ion-ios-open" unicode="&#xf1d7;" 
+d="M180 148c5 -5 13 -5 18 0l134 134c3 -5 4 -12 4 -18v-224c0 -22 -18 -40 -40 -40h-256c-22 0 -40 18 -40 40v224c0 22 18 40 40 40h256c6 0 13 -1 18 -4l-134 -134c-5 -5 -5 -13 0 -18zM412 380c2 -2 4 -6 4 -10v-98c0 -7 -6 -13 -13 -13s-13 6 -13 13v67l-58 -57
+c-4 8 -10 14 -18 18l57 58h-67c-7 0 -13 6 -13 13s6 13 13 13h97c4 0 9 -2 11 -4z" />
+    <glyph glyph-name="ion-md-mic" unicode="&#xf32c;" horiz-adv-x="320" 
+d="M160 128c-38 0 -69 31 -69 69v150c0 38 31 69 69 69s69 -31 69 -69v-150c0 -38 -31 -69 -69 -69zM281 203h39c0 -78 -62 -142 -137 -153v-82h-46v82c-75 10 -137 75 -137 153h39c0 -69 58 -116 121 -116s121 47 121 116z" />
+    <glyph glyph-name="ion-md-cloud-circle" unicode="&#xf2c2;" 
+d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM302 109c29 0 52 23 52 52s-23 52 -52 52h-11c0 46 -37 83 -83 83c-38 0 -71 -26 -80 -62h-3c-34 0 -63 -29 -63 -63s29 -62 63 -62h177z" />
+    <glyph glyph-name="ion-md-heart" unicode="&#xf308;" 
+d="M208 0l-30 27c-107 98 -178 162 -178 242c0 65 50 115 114 115c36 0 71 -17 94 -44c23 27 58 44 94 44c64 0 114 -50 114 -115c0 -80 -71 -144 -178 -242z" />
+    <glyph glyph-name="ion-ios-musical-notes" unicode="&#xf46c;" horiz-adv-x="320" 
+d="M310 400c6 1 10 -4 10 -8v-302c0 -21 -9 -38 -27 -48c-13 -8 -29 -12 -37 -13s-13 -1 -19 -1c-16 1 -42 14 -42 48c0 37 40 47 64 52c5 1 11 2 14 3c8 2 14 7 17 13c2 4 2 9 2 13v131c0 5 -5 9 -10 8l-152 -31c-4 -1 -6 -3 -6 -7v-213c0 -26 -13 -41 -24 -48
+c-15 -10 -44 -13 -51 -13v0c-3 0 -5 1 -7 1c-19 2 -42 16 -42 47c0 37 40 47 64 52c5 1 11 2 14 3c8 2 13 7 16 13c2 4 2 10 2 12v240c0 4 4 7 8 8s201 39 206 40z" />
+    <glyph glyph-name="ion-ios-pin" unicode="&#xf1e5;" horiz-adv-x="288" 
+d="M144 400c80 0 144 -60 144 -134c0 -104 -144 -282 -144 -282s-144 178 -144 282c0 74 64 134 144 134zM144 209c26 0 47 21 47 47s-21 47 -47 47s-47 -21 -47 -47s21 -47 47 -47z" />
+    <glyph glyph-name="ion-ios-cloud" unicode="&#xf40c;" horiz-adv-x="512" 
+d="M437 218c43 -8 75 -47 75 -92c0 -50 -41 -94 -91 -94h-330c-50 0 -91 44 -91 94c0 41 26 80 66 93c1 39 33 74 72 74c10 0 19 -3 27 -6c27 39 72 65 123 65c77 0 141 -59 149 -134z" />
+    <glyph glyph-name="ion-md-easel" unicode="&#xf2e4;" 
+d="M80 144v128h256v-128h-256zM400 352c9 0 16 -7 16 -16v-256c0 -9 -7 -16 -16 -16h-384c-9 0 -16 7 -16 16v256c0 9 7 16 16 16h384zM368 112v192h-320v-192h320zM32 -16l23 64h57l-23 -64h-57zM231 400l12 -32h-70l12 32h46zM327 -16l-23 64h57l23 -64h-57zM184 16v32h48
+v-32h-48z" />
+    <glyph glyph-name="ion-md-pie" unicode="&#xf349;" horiz-adv-x="448" 
+d="M1 192c0 5 -1 11 -1 16c0 115 93 208 208 208c5 0 11 -1 16 -1v-32v-191h-191h-32zM78 46c-26 32 -42 71 -45 114h223v223c43 -3 82 -19 114 -45c47 -38 78 -96 78 -162c0 -115 -93 -208 -208 -208c-66 0 -124 31 -162 78z" />
+    <glyph glyph-name="ion-md-done-all" unicode="&#xf2e2;" horiz-adv-x="512" 
+d="M388 308l-140 -139l-31 31l140 139zM481 339l31 -31l-264 -263l-122 123l30 31l92 -91zM0 168l32 31l122 -123l-31 -31z" />
+    <glyph glyph-name="ion-md-volume-low" unicode="&#xf131;" horiz-adv-x="288" 
+d="M0 256h85l107 112v-352l-107 112h-85v128zM288 192c0 -38 -21 -73 -53 -88v177c32 -16 53 -51 53 -89z" />
+    <glyph glyph-name="ion-md-help" unicode="&#xf30b;" horiz-adv-x="256" 
+d="M161 0h-66v65h66v-65zM160 98h-64c0 101 96 95 96 159c0 35 -29 63 -64 63s-64 -30 -64 -64h-64c0 71 57 128 128 128s128 -56 128 -127c0 -80 -96 -89 -96 -159z" />
+    <glyph glyph-name="ion-ios-contract" unicode="&#xf162;" horiz-adv-x="384" 
+d="M120 243l-116 117c-5 5 -5 15 0 20c3 3 6 4 10 4s7 -1 10 -4l117 -116v77c0 8 6 14 14 14v0c8 0 14 -6 14 -14v-112c0 -8 -6 -14 -14 -14h-112c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h77zM229 215c-8 0 -14 6 -14 14v112c0 8 6 14 14 14v0c8 0 14 -6 14 -14v-77l117 116
+c3 3 6 4 10 4s7 -1 10 -4c5 -5 5 -15 0 -20l-116 -117h77c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-112zM14 0c-4 0 -7 1 -10 4c-5 5 -5 15 0 20l116 117h-77c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h112c8 0 14 -6 14 -14v-112c0 -8 -6 -14 -14 -14v0c-8 0 -14 6 -14 14v77
+l-117 -116c-3 -3 -6 -4 -10 -4zM229 29c-8 0 -14 6 -14 14v112c0 8 6 14 14 14h112c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-77l116 -117c5 -5 5 -15 0 -20c-3 -3 -6 -4 -10 -4s-7 1 -10 4l-117 116v-77c0 -8 -6 -14 -14 -14v0z" />
+    <glyph glyph-name="ion-md-megaphone" unicode="&#xf329;" horiz-adv-x="448" 
+d="M350 305c21 -21 34 -50 34 -81s-13 -60 -34 -81l-23 23c15 15 24 36 24 58s-9 43 -24 58zM396 349c32 -32 52 -76 52 -125s-20 -93 -52 -125l-22 23c26 26 42 62 42 102s-16 76 -42 102zM288 264c18 -2 32 -19 32 -40s-14 -38 -32 -40v-104h-32l-96 64h-30l30 -128h-48
+l-80 128l-32 16v112l32 16h128l96 80h32v-104z" />
+    <glyph glyph-name="ion-md-speedometer" unicode="&#xf37f;" 
+d="M80 -16v48h256v-48h-256zM208 160c-18 0 -32 14 -32 32c0 3 0 6 1 9l-49 67l4 4l67 -49c3 1 6 1 9 1c18 0 32 -14 32 -32s-14 -32 -32 -32zM208 400c115 0 208 -93 208 -208c0 -48 -16 -93 -44 -128h-59l-4 4l-22 22l23 23l22 -22c20 24 32 54 35 85h-31v32h31
+c-3 31 -15 61 -35 85l-22 -22l-23 23l22 22c-24 20 -54 32 -85 35v-31h-32v31c-31 -3 -61 -15 -85 -35l22 -22l-23 -23l-22 22c-20 -24 -32 -54 -35 -85h31v-32h-31c3 -31 15 -61 35 -85l22 22l23 -23l-22 -22l-4 -4h-59c-28 35 -44 80 -44 128c0 115 93 208 208 208z" />
+    <glyph glyph-name="ion-md-pint" unicode="&#xf34b;" horiz-adv-x="384" 
+d="M0 400h384l-43 -379c-3 -21 -20 -37 -42 -37h-214c-22 0 -39 16 -42 37zM327 275l9 83h-288l9 -83h270z" />
+    <glyph glyph-name="ion-md-contacts" unicode="&#xf2d7;" horiz-adv-x="448" 
+d="M207 104c47 -14 76 -62 87 -104h-294c11 42 40 90 87 104c18 -10 38 -16 60 -16s42 6 60 16zM147 328c58 0 106 -48 106 -106s-48 -106 -106 -106s-106 48 -106 106s48 106 106 106zM147 141c34 0 62 23 74 51h-148c12 -28 40 -51 74 -51zM291 64c-13 20 -34 43 -60 53
+c11 9 21 23 28 35c13 -5 27 -8 42 -8c22 0 42 6 60 16c47 -14 76 -54 87 -96h-157zM275 248c-8 37 -31 69 -63 87c19 29 52 49 89 49c58 0 106 -48 106 -106s-48 -106 -106 -106c-11 0 -22 2 -32 5c3 8 6 16 7 25c8 -3 16 -4 25 -4c34 0 62 22 74 50h-100z" />
+    <glyph glyph-name="ion-ios-bonfire" unicode="&#xf12c;" horiz-adv-x="384" 
+d="M207 97l15 -75c1 -3 1 -5 1 -8c0 -18 -14 -30 -32 -30s-32 12 -32 30c0 2 1 5 1 7l15 79v0c2 7 8 12 16 12s15 -7 16 -15zM242 93v0v0zM325 62c9 -8 9 -25 0 -35c-10 -10 -27 -9 -35 0c-1 1 -2 2 -3 4l-45 62c-3 5 -2 11 2 15c4 5 10 5 16 1l60 -43c2 -1 3 -3 5 -4z
+M308 113v0v0zM371 128c8 0 13 -6 13 -18c0 -9 -10 -17 -18 -15l-57 18h-1v0c-3 2 -5 5 -4 9s4 6 8 6h59zM75 113v0v0zM75 113v0l-58 -18c-8 -2 -17 6 -17 15s4 18 12 18h60s7 -2 8 -6s-2 -7 -5 -9v0zM124 109c5 4 11 3 16 -1c4 -4 5 -10 2 -15l-45 -61c-1 -2 -2 -4 -3 -5
+c-10 -10 -25 -10 -35 0s-10 25 0 35c2 2 3 3 5 4zM295 309c0 -30 -10 -55 -51 -81c-37 -24 -93 -43 -109 -100c0 0 -58 23 -48 91s124 100 112 181c24 0 96 -33 96 -91zM295 188c-16 -47 -44 -60 -80 -60c-15 0 -36 12 -47 28c12 14 28 24 47 34c9 5 20 10 29 16
+c21 14 39 28 48 46c5 -14 8 -49 3 -64zM98 276c-6 4 -12 16 -11 29c2 21 34 36 32 65c14 2 34 -6 45 -26c-5 -10 -15 -20 -28 -32s-26 -21 -38 -36z" />
+    <glyph glyph-name="ion-logo-googleplus" unicode="&#xf23b;" horiz-adv-x="512" 
+d="M318 217c0 0 2 -11 2 -29c0 -43 -14 -84 -42 -113c-28 -30 -68 -46 -110 -46c-46 0 -91 17 -123 50c-30 31 -45 72 -45 113s16 85 46 115c31 31 74 48 118 48v0c57 0 94 -29 108 -41l-48 -48c-8 7 -28 21 -58 21c-27 0 -51 -7 -69 -25s-28 -43 -28 -70s10 -52 29 -70
+c18 -18 43 -26 69 -26c36 0 75 19 84 64h-91v64h157zM512 224v-41h-57v-57h-41v57h-57v41h57v57h41v-57h57z" />
+    <glyph glyph-name="ion-md-stats" unicode="&#xf385;" horiz-adv-x="352" 
+d="M96 0v384h64v-384h-64zM0 0v112h64v-112h-64zM192 0v176h64v-176h-64zM288 0v272h64v-272h-64z" />
+    <glyph glyph-name="ion-ios-rewind" unicode="&#xf4a1;" horiz-adv-x="448" 
+d="M4 199l208 120c5 3 12 -1 12 -7v-115l212 122c5 3 12 -1 12 -7v-240c0 -6 -7 -10 -12 -7l-212 122v-115c0 -6 -7 -10 -12 -7l-208 120c-5 3 -5 11 0 14z" />
+    <glyph glyph-name="ion-logo-polymer" unicode="&#xf15e;" horiz-adv-x="448" 
+d="M360 352l88 -160l-88 -160h-78l88 160l-51 93l-153 -253h-78l-88 160l88 160h78l-88 -160l51 -93l153 253h78z" />
+    <glyph glyph-name="ion-md-timer" unicode="&#xf395;" 
+d="M185 76c0 13 10 24 23 24s23 -11 23 -24s-10 -23 -23 -23s-23 10 -23 23zM185 400h23c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208c0 68 32 128 83 166v1l158 -157l-33 -33l-125 125c-23 -28 -37 -63 -37 -102c0 -89 72 -162 162 -162s162 73 162 162
+c0 82 -61 149 -139 160v-44h-46v92zM347 192c0 -13 -10 -23 -23 -23s-24 10 -24 23s11 23 24 23s23 -10 23 -23zM69 192c0 13 10 23 23 23s24 -10 24 -23s-11 -23 -24 -23s-23 10 -23 23z" />
+    <glyph glyph-name="ion-md-checkmark" unicode="&#xf2bc;" horiz-adv-x="384" 
+d="M122 108l230 230l32 -31l-262 -261l-122 122l32 31z" />
+    <glyph glyph-name="ion-ios-water" unicode="&#xf26b;" horiz-adv-x="320" 
+d="M256 302c37 -52 64 -111 64 -175c0 -79 -72 -143 -160 -143c-56 0 -106 26 -134 65c-6 8 -11 17 -15 26c-7 16 -11 34 -11 52v4c1 62 27 119 64 171c34 48 68 79 91 96c3 2 7 2 10 0c23 -18 57 -47 91 -96zM170 37c55 0 100 42 100 94v1c0 10 -13 12 -17 3
+c-17 -42 -41 -67 -86 -81c-9 -3 -7 -17 3 -17v0z" />
+    <glyph glyph-name="ion-ios-cloudy" unicode="&#xf410;" horiz-adv-x="448" 
+d="M204 352v0c70 0 113 -49 125 -103h6h7c58 0 106 -50 106 -109s-48 -108 -106 -108h-257c-47 0 -85 41 -85 88c0 44 34 84 77 88c0 4 -1 9 -1 13c0 71 58 131 128 131z" />
+    <glyph glyph-name="ion-md-podium" unicode="&#xf358;" horiz-adv-x="448" 
+d="M0 32v192h128v-192h-128zM160 32v288h128v-288h-128zM320 32v128h128v-128h-128z" />
+    <glyph glyph-name="ion-ios-basketball" unicode="&#xf3e0;" 
+d="M171 142c-22 23 -48 42 -77 56s-60 22 -92 24c5 33 18 64 36 90c64 -28 122 -68 172 -118c3 -3 5 -6 8 -9l-6 -6c-13 -13 -27 -25 -41 -37zM278 262c-21 21 -37 46 -49 73c-9 21 -15 43 -17 65c45 -1 87 -16 121 -42c-15 -34 -32 -67 -53 -97c-1 0 -2 1 -2 1zM351 213
+c-18 8 -36 19 -52 31c21 30 40 62 55 96c37 -37 61 -88 62 -144c-22 2 -44 8 -65 17zM146 130c1 -1 2 -3 4 -4c-33 -24 -68 -46 -105 -63c-28 35 -45 80 -45 129v4c25 -2 50 -7 73 -17c27 -12 52 -28 73 -49zM236 204c-26 27 -56 52 -86 74c-30 21 -62 40 -95 55
+c33 36 79 61 131 66c6 -61 35 -117 79 -159c-9 -12 -19 -25 -29 -36zM253 185c11 12 21 24 31 37c38 -29 83 -47 131 -52c-5 -52 -30 -97 -66 -131c-24 53 -57 102 -96 146zM187 122c17 14 34 28 49 44c38 -43 69 -91 92 -144c-26 -18 -57 -31 -90 -36c-4 49 -21 96 -51 136
+zM167 106c11 -15 21 -31 28 -49c10 -23 15 -48 17 -73h-4c-56 0 -107 23 -145 59c37 17 72 39 104 63z" />
+    <glyph glyph-name="ion-ios-at" unicode="&#xf3da;" horiz-adv-x="384" 
+d="M384 214c0 -74 -35 -121 -90 -121c-28 0 -49 15 -53 37h-4c-10 -23 -30 -36 -57 -36c-49 0 -82 40 -82 98c0 56 33 94 81 94c25 0 46 -12 55 -32h4v28h39v-130c0 -16 9 -26 25 -26c28 0 46 34 46 86c0 83 -63 139 -155 139c-91 0 -156 -66 -156 -160
+c0 -96 64 -158 164 -158c20 0 40 2 55 5c10 2 18 -6 18 -16v0c0 -7 -5 -13 -12 -15c-18 -4 -39 -7 -62 -7c-122 0 -200 75 -200 192c0 114 79 192 195 192c111 0 189 -69 189 -170zM141 191c0 -37 18 -60 46 -60c30 0 49 24 49 60s-20 59 -49 59s-46 -22 -46 -59z" />
+    <glyph glyph-name="ion-md-pulse" unicode="&#xf35d;" horiz-adv-x="448" 
+d="M396 179c29 0 52 -22 52 -51c0 -14 -5 -27 -15 -37s-23 -16 -37 -16c-20 0 -40 12 -48 31h-56c-9 0 -16 6 -19 14l-16 40l-40 -162c-2 -8 -10 -14 -19 -14h-1c-10 1 -17 7 -19 16l-54 282l-31 -161c-2 -9 -10 -15 -19 -15h-74v40h58l51 238c2 10 9 16 19 16s18 -8 20 -18
+l55 -292l34 136c2 8 10 14 19 14v0c9 0 16 -5 19 -13l31 -81h42c8 20 26 33 48 33z" />
+    <glyph glyph-name="ion-ios-medal" unicode="&#xf1bf;" 
+d="M2 324h126c1 0 2 -1 2 -2v-118c0 -1 -2 -2 -3 -2l-104 29c-14 4 -23 17 -23 31v60c0 1 1 2 2 2zM208 166zM156 322c0 1 1 2 2 2h106c1 0 2 -1 2 -2v-124c0 -1 0 -2 -1 -2l-56 -16h-1l-50 14c-1 0 -2 1 -2 2v126zM286 322c0 1 1 2 2 2h126c1 0 2 -1 2 -2v-60
+c0 -14 -9 -27 -23 -31l-104 -30c-1 0 -3 1 -3 2v119zM0 384c0 18 14 32 32 32h352c18 0 32 -14 32 -32v-38c0 -1 -1 -2 -2 -2h-412c-1 0 -2 1 -2 2v38zM208 140zM152 96c0 31 25 56 56 56s56 -25 56 -56s-25 -56 -56 -56s-56 25 -56 56zM303 181c20 -23 33 -52 33 -85
+c0 -71 -57 -128 -128 -128s-128 57 -128 128c0 33 13 63 33 86l51 -14c-24 -15 -40 -42 -40 -72c0 -46 38 -84 84 -84s84 38 84 84c0 30 -16 57 -40 72zM208 152c31 0 56 -25 56 -56s-25 -56 -56 -56s-56 25 -56 56s25 56 56 56z" />
+    <glyph glyph-name="ion-md-shuffle" unicode="&#xf37b;" horiz-adv-x="384" 
+d="M158 260l-34 -34l-124 124l34 34zM252 384h132v-132l-49 49l-301 -301l-34 34l301 301zM260 158l75 -75l49 49v-132h-132l49 49l-75 75z" />
+    <glyph glyph-name="ion-md-flower" unicode="&#xf2f3;" horiz-adv-x="384" 
+d="M341 192c25 -12 43 -37 43 -67c0 -41 -34 -74 -75 -74c-16 0 -31 5 -43 13l1 -6c0 -41 -34 -74 -75 -74s-75 33 -75 74l1 6c-12 -8 -27 -13 -43 -13c-41 0 -75 33 -75 74c0 30 18 55 43 67c-25 12 -43 37 -43 67c0 41 34 74 75 74c16 0 31 -5 43 -13l-1 6
+c0 41 34 74 75 74s75 -33 75 -74l-1 -6c12 8 27 13 43 13c41 0 75 -33 75 -74c0 -30 -18 -55 -43 -67zM192 118c41 0 75 33 75 74s-34 74 -75 74s-75 -33 -75 -74s34 -74 75 -74z" />
+    <glyph glyph-name="ion-md-walk" unicode="&#xf3a4;" horiz-adv-x="272" 
+d="M168 336c-22 0 -40 18 -40 40s18 40 40 40s40 -18 40 -40s-18 -40 -40 -40zM168 216l-20 38l-20 -62l57 -96v-128h-38v96l-50 68l-57 -164h-40l81 320l-41 -16v-80h-40v112l111 38c4 1 10 1 13 1c13 0 23 -6 31 -18l45 -69h72v-40h-104z" />
+    <glyph glyph-name="ion-md-add-circle" unicode="&#xf272;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM315 171v42h-86v86h-42v-86h-86v-42h86v-86h42v86h86z" />
+    <glyph glyph-name="ion-ios-thumbs-up" unicode="&#xf256;" horiz-adv-x="384" 
+d="M367 59c-2 -2 -4 -5 -3 -8c0 -1 1 -2 1 -3c3 -6 5 -13 1 -23c-11 -26 -45 -33 -76 -37c-17 -2 -36 -4 -56 -4c-38 0 -81 4 -113 8c-22 3 -34 7 -46 12c-16 6 -31 12 -67 12c-5 0 -8 3 -8 8v160c0 4 4 8 8 8c6 0 15 3 22 10c3 3 9 11 14 19c8 12 17 25 26 33c2 2 6 5 10 9
+c17 15 49 43 57 60c5 11 9 30 12 42c4 15 3 23 6 27c5 6 16 8 28 8s20 -9 26 -19c12 -21 13 -57 3 -90c-5 -17 -11 -28 -15 -36c-3 -6 -5 -11 -5 -13c1 -5 4 -6 17 -5c3 0 11 1 21 3c25 4 62 10 80 11c26 2 37 0 47 -12c8 -9 13 -24 8 -38c-2 -6 0 -14 4 -18
+c5 -5 10 -11 10 -23c0 -13 -3 -21 -6 -26c-2 -3 -3 -6 -2 -10v-1c0 -1 1 -2 2 -3c5 -6 11 -15 11 -29c0 -15 -9 -26 -17 -32z" />
+    <glyph glyph-name="ion-ios-rocket" unicode="&#xf14b;" 
+d="M414 394c13 -57 -34 -180 -102 -248c-13 -13 -27 -24 -40 -33c2 -21 1 -41 -7 -59c-22 -50 -80 -66 -105 -70c-6 -1 -12 4 -11 10l9 81c-8 0 -14 1 -18 1s-8 3 -11 6l-32 31c-3 3 -5 7 -5 11s-1 10 -1 18l-81 -8c-6 -1 -11 4 -10 10c4 25 19 83 69 105c18 8 39 9 60 7
+c9 13 20 27 33 40c68 68 195 115 249 102c2 0 3 -2 3 -4zM251 234c17 -17 43 -17 60 0s17 44 0 61s-43 17 -60 0s-17 -44 0 -61zM127 68c2 2 5 0 5 -3c-1 -10 -5 -19 -13 -27c-18 -18 -85 -20 -85 -20s2 67 20 85c8 8 17 12 27 13c3 0 5 -4 3 -6v0c-4 -4 -7 -12 -8 -20
+c-3 -18 13 -33 31 -30c8 1 16 4 20 8v0z" />
+    <glyph glyph-name="ion-md-alarm" unicode="&#xf274;" horiz-adv-x="428" 
+d="M428 323l-28 -33l-98 82l28 33zM125 373l-97 -83l-28 33l97 83zM225 275v0v-111l85 -50l-16 -27l-101 61v127h32zM214 360c106 0 193 -86 193 -191s-87 -191 -193 -191c-107 0 -193 86 -193 191s86 191 193 191zM214 20c82 0 150 66 150 149c0 82 -68 149 -150 149
+s-150 -67 -150 -149s68 -149 150 -149z" />
+    <glyph glyph-name="ion-ios-sad" unicode="&#xf207;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM134 248c-12 -1 -21 -10 -22 -22c-1 -15 11 -27 26 -26c12 1 21 10 22 22c1 15 -11 27 -26 26zM133 96c0 0 39 4 77 4s73 -4 73 -4c12 0 19 11 14 22c-15 34 -49 59 -89 59
+s-74 -25 -89 -59c-5 -11 2 -22 14 -22zM282 200c12 1 21 10 22 22c1 15 -11 27 -26 26c-12 -1 -21 -10 -22 -22c-1 -15 11 -27 26 -26z" />
+    <glyph glyph-name="ion-md-nuclear" unicode="&#xf339;" horiz-adv-x="448" 
+d="M304 176h144c0 -83 -46 -153 -114 -192l-71 122c-12 -6 -25 -10 -39 -10s-28 3 -40 10l-70 -122c-68 39 -114 109 -114 192h144c0 29 15 54 38 68l-71 125c33 19 72 31 113 31s80 -11 113 -30l-73 -124c24 -14 40 -40 40 -70z" />
+    <glyph glyph-name="ion-md-attach" unicode="&#xf28e;" horiz-adv-x="235" 
+d="M203 320h32v-235c0 -65 -53 -117 -118 -117s-117 52 -117 117v246c0 47 38 85 85 85s86 -38 86 -85v-246c0 -30 -24 -53 -54 -53s-53 23 -53 53v203h32v-203c0 -12 9 -21 21 -21s22 9 22 21v246c0 30 -24 53 -54 53s-53 -23 -53 -53v-246c0 -47 38 -85 85 -85
+s86 38 86 85v235z" />
+    <glyph glyph-name="ion-ios-more" unicode="&#xf1c8;" horiz-adv-x="384" 
+d="M192 230v0c21 0 38 -17 38 -38s-17 -38 -38 -38s-38 17 -38 38s17 38 38 38zM38 230v0c21 0 38 -17 38 -38s-17 -38 -38 -38s-38 17 -38 38s17 38 38 38zM346 230v0c21 0 38 -17 38 -38s-17 -38 -38 -38s-38 17 -38 38s17 38 38 38z" />
+    <glyph glyph-name="ion-md-tablet-portrait" unicode="&#xf38d;" horiz-adv-x="320" 
+d="M296 416c13 0 24 -11 24 -24v-400c0 -13 -11 -24 -24 -24h-272c-13 0 -24 11 -24 24v400c0 13 11 24 24 24h272zM288 32v336h-256v-336h256zM160 -14c8 0 14 6 14 14s-6 14 -14 14s-14 -6 -14 -14s6 -14 14 -14z" />
+    <glyph glyph-name="ion-md-journal" unicode="&#xf18d;" horiz-adv-x="341" 
+d="M32 405h203v-426h-203c-18 0 -32 14 -32 32v362c0 18 14 32 32 32zM299 405c23 0 42 -19 42 -42v-342c0 -23 -19 -42 -42 -42h-16v426h16z" />
+    <glyph glyph-name="ion-md-arrow-dropright" unicode="&#xf284;" horiz-adv-x="128" 
+d="M0 320l128 -128l-128 -128v256z" />
+    <glyph glyph-name="ion-md-flame" unicode="&#xf2f0;" horiz-adv-x="320" 
+d="M297 226c14 -24 23 -47 23 -85s-4 -74 -32 -106s-63 -51 -119 -51c-17 0 -34 1 -48 7s-25 13 -33 25c-11 16 -21 28 -25 52c-6 -25 -1 -48 6 -60c-43 26 -69 71 -69 125v4c5 78 65 93 90 135c8 14 14 30 10 48c11 -9 18 -26 18 -40c0 -16 -2 -28 -2 -28c4 8 12 18 14 31
+c6 35 -10 70 -50 117l17 -2c94 -16 168 -56 188 -154c7 -36 -3 -68 -10 -83c14 11 21 43 22 55v10z" />
+    <glyph glyph-name="ion-ios-volume-low" unicode="&#xf11e;" horiz-adv-x="256" 
+d="M151 302c6 -3 9 -8 9 -14v-192c0 -6 -3 -11 -9 -14c-2 -1 -5 -2 -7 -2c-4 0 -7 2 -10 4l-65 52h-53c-9 0 -16 7 -16 16v80c0 9 7 16 16 16h53l65 52c3 2 6 4 10 4c2 0 5 -1 7 -2zM226 265c19 -20 30 -45 30 -73v0v0c0 -28 -11 -54 -30 -74c-2 -2 -5 -3 -8 -3s-6 1 -8 3
+c-5 5 -5 12 0 17c15 15 22 36 22 57v0v0c0 22 -7 41 -22 56c-5 5 -5 13 0 18s11 4 16 -1z" />
+    <glyph glyph-name="ion-md-switch" unicode="&#xf38a;" horiz-adv-x="288" 
+d="M56 232c-31 0 -56 25 -56 56s25 56 56 56h95c14 15 35 24 57 24c44 0 80 -36 80 -80s-36 -80 -80 -80c-22 0 -43 9 -57 24h-95zM39 305c-5 -4 -7 -11 -7 -17s2 -12 7 -17c4 -5 11 -7 17 -7h76c-2 8 -4 16 -4 24s2 16 4 24h-76c-6 0 -12 -2 -17 -7zM232 152
+c31 0 56 -25 56 -56s-25 -56 -56 -56h-95c-14 -15 -35 -24 -57 -24c-44 0 -80 36 -80 80s36 80 80 80c22 0 43 -9 57 -24h95zM249 79c5 4 7 11 7 17s-2 12 -7 17c-4 5 -11 7 -17 7h-76c2 -8 4 -16 4 -24s-2 -16 -4 -24h76c6 0 12 2 17 7z" />
+    <glyph glyph-name="ion-md-information-circle-outline" unicode="&#xf16f;" 
+d="M208 358c-44 0 -86 -18 -117 -49s-49 -73 -49 -117s18 -86 49 -117s73 -49 117 -49s86 18 117 49s49 73 49 117s-18 86 -49 117s-73 49 -117 49zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM229 88h-42v125h42v-125z
+M229 254h-42v42h42v-42z" />
+    <glyph glyph-name="ion-md-swap" unicode="&#xf389;" horiz-adv-x="448" 
+d="M99 217v-75h175v-49h-175v-75l-99 99zM448 267l-99 -100v75h-175v49h175v75z" />
+    <glyph glyph-name="ion-md-film" unicode="&#xf2ed;" horiz-adv-x="320" 
+d="M280 384h40v-384h-40v43h-40v-43h-160v43h-40v-43h-40v384h40v-43h40v43h160v-43h40v43zM80 85v43h-40v-43h40zM80 171v42h-40v-42h40zM80 256v43h-40v-43h40zM280 85v43h-40v-43h40zM280 171v42h-40v-42h40zM280 256v43h-40v-43h40z" />
+    <glyph glyph-name="ion-md-moon" unicode="&#xf32e;" horiz-adv-x="410" 
+d="M144 323c0 -106 86 -192 192 -192c26 0 51 5 74 15c-22 -91 -104 -159 -202 -159c-115 0 -208 93 -208 208c0 98 68 180 159 202c-10 -23 -15 -48 -15 -74z" />
+    <glyph glyph-name="ion-md-partly-sunny" unicode="&#xf340;" horiz-adv-x="448" 
+d="M235 312l-19 19l25 25l19 -19zM144 322c30 0 56 -15 70 -39c-7 -2 -13 -4 -19 -7c-20 -9 -37 -22 -51 -39l-13 -16c-21 -5 -39 -15 -54 -28c-9 13 -15 29 -15 47c0 45 37 82 82 82zM130 343v41h28v-41h-28zM0 226v28h41v-28h-41zM50 171l18 -18l-25 -25l-19 19l25 25z
+M28 337l19 19l25 -25l-19 -19zM374 159c42 -3 74 -37 74 -79c0 -44 -36 -80 -80 -80h-208c-53 0 -96 43 -96 96c0 47 32 85 78 94c5 1 13 2 18 2c43 0 78 -27 91 -64h28c-6 21 -16 39 -32 55c-21 21 -48 32 -77 34c21 27 52 39 86 39c58 0 107 -42 118 -97z" />
+    <glyph glyph-name="ion-md-subway" unicode="&#xf387;" horiz-adv-x="352" 
+d="M176 400c94 0 176 -10 176 -85v-214c0 -42 -33 -74 -75 -74l27 -27v-16h-256v16l27 27c-42 0 -75 32 -75 74v214c0 75 82 85 176 85zM80 64c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM160 208v96h-112v-96h112zM272 64c18 0 32 14 32 32
+s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM304 208v96h-112v-96h112z" />
+    <glyph glyph-name="ion-ios-cloudy-night" unicode="&#xf40e;" horiz-adv-x="448" 
+d="M246 153c42 0 76 -35 76 -77s-34 -76 -76 -76h-186c-34 0 -60 29 -60 62c0 32 24 59 55 62v9c0 50 41 91 92 91c44 0 80 -30 89 -71h8h2zM420 143c7 0 16 2 23 3c4 0 6 -3 4 -6c-4 -6 -10 -13 -15 -19c-22 -25 -53 -43 -87 -51c0 2 1 4 1 6c0 26 -10 52 -29 71
+c-17 17 -39 28 -63 30c-7 18 -19 34 -34 46c-21 17 -47 25 -73 25h-5c9 61 54 112 114 130c8 2 15 5 23 6c3 0 6 -3 4 -6l-11 -19c-10 -20 -16 -42 -16 -65c0 -40 16 -79 46 -107c30 -29 68 -45 110 -45c3 0 6 1 8 1z" />
+    <glyph glyph-name="ion-ios-ribbon" unicode="&#xf205;" horiz-adv-x="384" 
+d="M191 155c-70 1 -129 59 -130 129c-1 73 59 133 132 132c70 -1 129 -60 130 -130c1 -73 -59 -132 -132 -131zM187 359c-37 -2 -66 -32 -68 -69c-3 -44 34 -81 78 -78c37 2 66 31 68 68c3 44 -34 82 -78 79zM192 140c9 0 18 0 27 2c3 1 5 -3 4 -6l-31 -69l-43 -94
+c-3 -6 -12 -7 -15 -1l-39 65c-2 2 -4 4 -7 4h-80c-6 0 -10 6 -7 12l76 133c1 2 4 3 6 1c27 -29 66 -47 109 -47zM300 187c2 2 5 1 7 -1l76 -133c3 -6 -1 -12 -7 -12h-80c-3 0 -5 -2 -7 -4l-39 -65c-3 -6 -12 -5 -15 1l-34 74v4l45 97c0 1 1 3 2 3c20 8 37 20 52 36z" />
+    <glyph glyph-name="ion-logo-css3" unicode="&#xf231;" horiz-adv-x="384" 
+d="M192 109v0zM0 416h384l-35 -403l-157 -45l-157 45zM291 81l22 252h-241l4 -49h184l-4 -51h-121l4 -50h112l-5 -64l-54 -15v0v0l-53 15l-4 40h-48l7 -78l98 -28z" />
+    <glyph glyph-name="ion-md-remove" unicode="&#xf368;" horiz-adv-x="320" 
+d="M0 171v42h320v-42h-320z" />
+    <glyph glyph-name="ion-ios-share" unicode="&#xf211;" horiz-adv-x="320" 
+d="M280 272c22 0 40 -18 40 -40v-208c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v208c0 22 18 40 40 40h107v-147c0 -7 6 -13 14 -13c7 0 12 6 12 13v147h107zM173 356v-84h-26v84l-48 -47c-5 -5 -13 -5 -18 0s-5 13 0 18l70 69v0c1 1 2 2 4 3s3 1 5 1c3 0 7 -2 9 -4
+l70 -69c5 -5 5 -13 0 -18s-13 -5 -18 0z" />
+    <glyph glyph-name="ion-ios-arrow-dropleft" unicode="&#xf112;" 
+d="M253 300c8 -8 8 -19 0 -27l-81 -81l79 -81c8 -8 8 -19 0 -27c-4 -4 -8 -6 -13 -6s-10 2 -14 6l-94 94c-7 8 -6 20 1 27l95 95c8 8 19 8 27 0zM208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM332 68c33 33 52 77 52 124
+s-19 91 -52 124s-77 52 -124 52s-91 -19 -124 -52s-52 -77 -52 -124s19 -91 52 -124s77 -52 124 -52s91 19 124 52z" />
+    <glyph glyph-name="ion-md-checkbox" unicode="&#xf2b9;" horiz-adv-x="384" 
+d="M341 384c23 0 43 -20 43 -43v-298c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h298zM149 85l192 192l-30 30l-162 -162l-76 77l-30 -30z" />
+    <glyph glyph-name="ion-ios-bookmarks" unicode="&#xf3ea;" horiz-adv-x="432" 
+d="M376 416c30 0 56 -25 56 -55v-290c0 -30 -25 -55 -55 -55h-108c-4 0 -8 0 -12 -1c-16 -3 -27 -17 -27 -33c0 -8 -8 -15 -16 -14c-7 1 -12 7 -12 14c0 16 -12 30 -27 33c-4 1 -8 1 -12 1h-108c-30 0 -55 25 -55 55v290c0 30 25 55 55 55h106v0c22 0 41 -18 41 -41v-314
+c0 -8 7 -14 15 -14s13 6 13 14v314c0 23 19 41 41 41v0h41v-128l23 15l9 6l9 -6l23 -15v128z" />
+    <glyph glyph-name="ion-ios-key" unicode="&#xf1a7;" 
+d="M297 230c66 0 119 -54 119 -122s-53 -124 -119 -124s-119 56 -119 124c0 18 2 32 9 48c-3 5 -9 11 -10 17c-1 5 7 25 6 30s-8 10 -11 11c-9 2 -25 -11 -31 -10s-21 14 -22 24s15 24 5 34s-21 -3 -30 -3c-7 0 -11 4 -16 9c-6 6 -9 11 -9 19s4 18 3 24s-2 9 -10 12
+s-27 -7 -36 3c-6 6 -10 9 -25 24c-5 5 21 33 28 40c5 4 13 10 21 10c5 0 10 -2 15 -7c10 -11 143 -124 194 -167c12 4 25 4 38 4zM320 48c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" />
+    <glyph glyph-name="ion-md-basketball" unicode="&#xf293;" 
+d="M144 176h48v-192c-42 3 -81 19 -113 44c38 41 61 93 65 148zM224 -16v192h49c4 -55 26 -107 64 -148c-32 -25 -71 -41 -113 -44zM192 400v-192h-48c-3 55 -26 107 -64 148c31 25 70 41 112 44zM273 208h-49v192c42 -3 80 -19 112 -44c-38 -41 -60 -93 -63 -148zM361 334
+c31 -34 51 -78 55 -126h-110c2 22 6 43 14 63c9 23 24 45 41 63zM320 115c-8 20 -12 40 -14 61h110c-4 -48 -24 -91 -55 -125c-18 19 -31 40 -41 64zM96 271c8 -20 12 -41 14 -63h-110c4 48 25 92 56 126c17 -19 30 -40 40 -63zM55 51c-31 34 -51 77 -55 125h110
+c-2 -21 -6 -41 -14 -61c-10 -24 -23 -45 -41 -64z" />
+    <glyph glyph-name="ion-md-pause" unicode="&#xf341;" horiz-adv-x="320" 
+d="M0 0v384h107v-384h-107zM213 384h107v-384h-107v384z" />
+    <glyph glyph-name="ion-md-return-right" unicode="&#xf36e;" horiz-adv-x="448" 
+d="M0 312h47v-96h311l-85 86l33 34l142 -144l-142 -144l-33 34l85 86h-358v144z" />
+    <glyph glyph-name="ion-ios-star" unicode="&#xf4b3;" horiz-adv-x="448" 
+d="M431 256c9 0 17 -7 17 -16c0 -4 -2 -8 -5 -11l-3 -2l-120 -86l46 -135c2 -7 1 -14 -5 -18c-3 -2 -6 -4 -9 -4s-7 2 -10 4l-118 84l-118 -84c-3 -2 -7 -4 -10 -4s-6 2 -9 4c-6 4 -7 12 -5 18l46 135l-121 85c-5 4 -7 7 -7 11v3c0 9 7 16 16 16v0h148l45 133
+c2 6 8 11 15 11s13 -5 15 -11l45 -133h147z" />
+    <glyph glyph-name="ion-ios-female" unicode="&#xf17b;" 
+d="M14 -16c-4 0 -7 1 -10 4c-5 5 -5 14 0 19l45 45l-37 37c-5 5 -5 14 0 19c2 3 5 4 9 4s7 -1 10 -4l37 -37l50 50c-26 31 -40 70 -40 110c0 23 4 45 13 66c8 20 20 37 36 53s34 29 54 37c21 9 43 13 66 13s45 -4 66 -13c20 -8 37 -21 53 -37s29 -33 37 -53
+c9 -21 13 -43 13 -66s-4 -45 -13 -66c-8 -20 -21 -38 -37 -54s-33 -28 -53 -36c-21 -9 -43 -13 -66 -13c-40 0 -79 14 -110 40l-50 -50l37 -37c5 -5 5 -14 0 -19c-2 -3 -5 -4 -9 -4s-7 1 -10 4l-37 37l-45 -45c-2 -3 -5 -4 -9 -4zM146 331c-27 -27 -41 -62 -41 -100
+s15 -73 42 -100s62 -42 100 -42s73 15 100 42s42 62 42 100s-15 73 -42 100s-62 42 -100 42s-74 -15 -101 -42z" />
+    <glyph glyph-name="ion-logo-playstation" unicode="&#xf245;" horiz-adv-x="512" 
+d="M400 245c0 -11 0 -22 -2 -33c-2 -10 -5 -20 -10 -28c-4 -7 -10 -13 -18 -17c-7 -4 -16 -6 -24 -6c-13 0 -31 4 -42 9v131v2c0 9 -7 17 -15 17h-1c-9 0 -16 -8 -16 -17v-3v-300l-80 26v358s28 -4 75 -18s67 -21 84 -31c8 -5 15 -11 21 -17c7 -7 13 -14 17 -23
+c8 -16 10 -33 11 -50zM87 90c-4 -2 -8 -3 -11 -6c-1 -1 -3 -3 -2 -5s4 -4 6 -5c6 -2 13 -3 19 -3c7 0 15 0 22 2c5 1 9 3 14 5c30 10 41 12 41 12v-42c-14 -2 -36 -4 -50 -4c-30 -1 -60 4 -88 13c-9 3 -19 6 -27 12c-4 3 -8 8 -10 13c-2 4 -1 9 1 13s5 8 9 11
+c9 6 18 10 28 14c8 4 17 7 26 10c35 12 111 37 111 37v-47s-62 -20 -89 -30zM512 102c0 -5 -2 -9 -5 -13c-6 -7 -14 -11 -22 -15s-17 -8 -26 -11c-54 -19 -171 -59 -171 -59v48s92 30 133 44c6 2 11 4 16 8c2 2 4 3 3 6c-1 2 -4 4 -6 5c-6 2 -13 3 -19 3
+c-10 0 -20 -2 -30 -5c-29 -10 -97 -32 -97 -32v49s45 14 67 16c8 1 23 1 31 1c26 0 54 -3 79 -11c5 -2 8 -3 14 -5c9 -3 18 -8 25 -14c4 -4 8 -9 8 -15z" />
+    <glyph glyph-name="ion-ios-git-merge" unicode="&#xf186;" horiz-adv-x="384" 
+d="M314 230c39 0 70 -31 70 -70s-31 -70 -70 -70c-33 0 -61 24 -68 56c-12 0 -25 3 -50 13c-31 12 -72 32 -113 89v-141c15 -3 29 -11 39 -22c12 -13 18 -30 18 -47c0 -39 -31 -70 -70 -70s-70 31 -70 70c0 17 6 33 17 46c10 11 24 19 38 22v172c-15 3 -28 11 -38 22
+c-11 13 -17 29 -17 46c0 39 31 70 70 70s70 -31 70 -70c0 -30 -18 -56 -45 -66c40 -63 81 -83 111 -95c21 -8 29 -11 39 -11c6 32 35 56 69 56zM112 38c0 23 -19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42s42 19 42 42zM70 304c23 0 42 19 42 42s-19 42 -42 42
+s-42 -19 -42 -42s19 -42 42 -42zM314 118c23 0 42 19 42 42s-19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42z" />
+    <glyph glyph-name="ion-md-remove-circle-outline" unicode="&#xf176;" 
+d="M208 358c-44 0 -86 -18 -117 -49s-49 -73 -49 -117s18 -86 49 -117s73 -49 117 -49s86 18 117 49s49 73 49 117s-18 86 -49 117s-73 49 -117 49zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM315 171h-214v42h214v-42z" />
+    <glyph glyph-name="ion-ios-clock" unicode="&#xf403;" 
+d="M355 339c81 -81 81 -213 0 -294s-213 -81 -294 0s-81 213 0 294s213 81 294 0zM42 184c3 1 5 3 6 6c1 6 -3 11 -9 10c-3 -1 -6 -3 -7 -6c-1 -6 4 -11 10 -10zM68 102c2 2 3 5 2 8c-2 5 -9 8 -13 4c-2 -2 -3 -5 -2 -8c2 -5 9 -8 13 -4zM70 274c1 3 0 6 -2 8
+c-4 4 -11 1 -13 -4c-1 -3 0 -6 2 -8c4 -4 11 -1 13 4zM132 44c1 3 -1 6 -3 8c-4 4 -10 2 -12 -3c-1 -3 0 -7 2 -9c4 -4 11 -1 13 4zM129 332c2 2 4 5 3 8c-2 5 -9 8 -13 4c-2 -2 -3 -6 -2 -9c2 -5 8 -7 12 -3zM165 255l33 -61c1 -2 2 -5 2 -8v-122c0 -5 3 -8 8 -8s8 3 8 8
+v122c0 5 -2 10 -4 15l-34 63c-2 4 -7 4 -11 2s-4 -7 -2 -11zM210 16c3 1 5 3 6 6c1 6 -3 11 -9 10c-3 -1 -6 -3 -7 -6c-1 -6 4 -11 10 -10zM210 352c3 1 5 3 6 6c1 6 -3 11 -9 10c-3 -1 -6 -3 -7 -6c-1 -6 4 -11 10 -10zM297 40c2 2 4 6 3 9c-2 5 -9 7 -13 3
+c-2 -2 -3 -5 -2 -8c2 -5 8 -8 12 -4zM300 335c1 3 -1 7 -3 9c-4 4 -10 1 -12 -4c-1 -3 0 -6 2 -8c4 -4 11 -2 13 3zM361 106c1 3 0 6 -2 8c-4 4 -11 1 -13 -4c-1 -3 0 -6 2 -8c4 -4 11 -1 13 4zM359 270c2 2 3 5 2 8c-2 5 -9 8 -13 4c-2 -2 -3 -5 -2 -8c2 -5 9 -8 13 -4z
+M378 184c3 1 5 3 6 6c1 6 -3 11 -9 10c-3 -1 -6 -3 -7 -6c-1 -6 4 -11 10 -10z" />
+    <glyph glyph-name="ion-md-sunny" unicode="&#xf388;" horiz-adv-x="448" 
+d="M245 416v0v-64h-42v64h42zM374 372v0l30 -30l-38 -38l-30 30zM74 372v0l38 -38l-30 -30l-38 38zM224 320v0c70 0 128 -58 128 -128s-58 -128 -128 -128s-128 58 -128 128s58 128 128 128zM448 213v0v-42h-64v42h64zM64 213v0v-42h-64v42h64zM366 80v0l38 -38l-30 -30
+l-38 38zM82 80v0l30 -30l-38 -38l-30 30zM245 32v0v-64h-42v64h42z" />
+    <glyph glyph-name="ion-ios-add-circle" unicode="&#xf101;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM298 176c9 0 16 7 16 16s-7 16 -16 16h-74v74c0 9 -7 16 -16 16s-16 -7 -16 -16v-74h-74c-9 0 -16 -7 -16 -16c0 -4 1 -8 4 -11s8 -5 12 -5h74v-74c0 -4 2 -9 5 -12s7 -4 11 -4
+c9 0 16 7 16 16v74h74z" />
+    <glyph glyph-name="ion-ios-browsers" unicode="&#xf3f0;" 
+d="M0 267c0 22 18 40 40 40h243c22 0 40 -18 40 -40v-243c0 -22 -18 -40 -40 -40h-243c-22 0 -40 18 -40 40v243zM93 360c0 22 18 40 40 40h243c22 0 40 -18 40 -40v-243c0 -22 -18 -40 -40 -40h-28c-2 0 -4 2 -4 4v199c0 26 -22 48 -48 48h-199c-2 0 -4 2 -4 4v28z" />
+    <glyph glyph-name="ion-ios-git-pull-request" unicode="&#xf188;" horiz-adv-x="384" 
+d="M329 106c14 -3 28 -11 38 -22c11 -13 17 -29 17 -46c0 -39 -31 -70 -70 -70s-70 31 -70 70c0 17 6 34 18 47c10 11 24 19 39 22v135c0 17 -1 41 -9 58c-8 16 -22 24 -42 24h-77l41 -40v0c3 -3 4 -6 4 -10s-1 -7 -4 -10s-6 -4 -10 -4s-7 1 -10 4l-56 56
+c-3 -11 -8 -21 -16 -29c-10 -11 -24 -19 -39 -22v-162c15 -3 29 -11 39 -22c12 -13 18 -30 18 -47c0 -39 -31 -70 -70 -70s-70 31 -70 70c0 17 6 33 17 46c10 11 24 19 38 22v164c-15 3 -28 11 -38 22c-11 13 -17 29 -17 46c0 39 31 70 70 70c32 0 59 -22 67 -51l55 55
+c3 3 6 4 10 4s7 -2 10 -4v0c5 -6 5 -15 0 -20l-40 -40h78c34 0 58 -16 70 -45c9 -23 9 -50 9 -65v-136zM112 38c0 23 -19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42s42 19 42 42zM70 296c23 0 42 19 42 42s-19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42zM314 -4
+c23 0 42 19 42 42s-19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42z" />
+    <glyph glyph-name="ion-md-quote" unicode="&#xf35f;" horiz-adv-x="383" 
+d="M32 32l45 97h-77v223h160v-223l-51 -97h-77zM256 32l50 97h-82v223h159v-223l-50 -97h-77z" />
+    <glyph glyph-name="ion-md-pricetags" unicode="&#xf35b;" horiz-adv-x="448" 
+d="M410 341l38 -37v-128l-191 -180c-9 -9 -23 -12 -31 -12s-21 4 -29 12l213 204v141zM352 400l32 -32v-160l-188 -180c-9 -9 -23 -12 -31 -12s-21 4 -29 12l-124 124c-9 9 -12 21 -12 32s4 20 12 28l180 188h160zM321 297c10 3 19 12 22 22c6 22 -10 41 -31 41
+c-18 0 -32 -14 -32 -32c0 -21 19 -37 41 -31z" />
+    <glyph glyph-name="ion-logo-angular" unicode="&#xf227;" horiz-adv-x="448" 
+d="M182 192l42 89l42 -89h-84zM224 416l224 -80l-46 -272l-178 -96l-178 96l-46 272zM312 96h40l-128 280l-128 -280h40l27 56h122z" />
+    <glyph glyph-name="ion-md-thermometer" unicode="&#xf390;" horiz-adv-x="192" 
+d="M143 148c29 -16 49 -48 49 -84c0 -53 -43 -96 -96 -96s-96 43 -96 96c0 36 20 68 49 84v222c0 26 21 46 47 46s47 -20 47 -46v-222zM80 370v-50h32v50c0 8 -8 14 -16 14s-16 -6 -16 -14z" />
+    <glyph glyph-name="ion-ios-information" unicode="&#xf44d;" horiz-adv-x="41" 
+d="M0 272c0 11 9 20 20 20s21 -9 21 -20s-10 -20 -21 -20s-20 9 -20 20zM1 236h39v-144h-39v144z" />
+    <glyph glyph-name="ion-ios-basket" unicode="&#xf11f;" horiz-adv-x="448" 
+d="M356 74v76h67l-18 -76h-49zM356 0v55h45l-6 -25c-5 -17 -20 -30 -39 -30v0zM233 0v56h104v-56h-104zM43 74l-17 76h66v-76h-49zM111 168v88h104v-88h-104zM233 168v88h104v-88h-104zM54 30l-7 26h45v-56v0c-19 0 -33 13 -38 30zM111 0v56h104v-56h-104zM233 74v76h104
+v-76h-104zM111 74v76h104v-76h-104zM432 256c10 0 18 -10 16 -20l-20 -68h-72v174c0 8 -6 14 -14 14h-236c-8 0 -14 -6 -14 -14v-174h-72l-20 68c-2 10 6 20 16 20h48v96c0 18 14 32 32 32h256c18 0 32 -14 32 -32v-96h48z" />
+    <glyph glyph-name="ion-md-hourglass" unicode="&#xf111;" horiz-adv-x="256" 
+d="M0 400h256v-123v0v0l-85 -85l85 -85v0v0v-123h-256v123v0v0l85 85l-85 85v0v0v123zM213 96l-85 85l-85 -85v-71h170v71zM128 203l85 85v72h-170v-72z" />
+    <glyph glyph-name="ion-ios-leaf" unicode="&#xf1aa;" 
+d="M406 69c17 -3 10 -39 -5 -37c0 0 -20 1 -62 14c0 0 -15 -23 -38 -34c-25 -12 -117 -33 -195 38c-106 97 -118 354 -98 333c85 -90 194 -47 266 -106c54 -44 92 -122 76 -196c0 0 4 -4 56 -12zM314 62c5 5 10 16 10 24c-84 28 -151 72 -194 108c-4 3 -9 -2 -5 -6
+c44 -45 111 -103 189 -126z" />
+    <glyph glyph-name="ion-ios-folder" unicode="&#xf435;" horiz-adv-x="448" 
+d="M448 329v-42c0 -2 -2 -1 -3 0s-5 1 -7 1h-428c-2 0 -6 0 -7 -1s-3 -2 -3 0v74c0 13 11 23 25 23h96c8 0 12 -2 17 -7v0l23 -23c2 -2 3 -2 6 -2h258c13 0 23 -10 23 -23zM0 32v212c0 9 7 16 16 16h416c9 0 16 -7 16 -16v-212c0 -18 -14 -32 -32 -32h-384
+c-17 0 -32 14 -32 32z" />
+    <glyph glyph-name="ion-md-laptop" unicode="&#xf318;" horiz-adv-x="512" 
+d="M437 32h75c0 -23 -64 -32 -96 -32h-320c-32 0 -96 9 -96 32h75c-23 0 -43 20 -43 43v266c0 23 20 43 43 43h362c23 0 43 -20 43 -43v-266c0 -23 -20 -43 -43 -43zM75 341v-272h362v272h-362zM256 13c12 0 21 10 21 22s-9 21 -21 21s-21 -9 -21 -21s9 -22 21 -22z" />
+    <glyph glyph-name="ion-md-notifications-outline" unicode="&#xf337;" horiz-adv-x="352" 
+d="M177 328c7 0 24 -5 24 -5c46 -10 78 -53 78 -100v-114v-13l9 -10l8 -8h-240l8 8l9 10v13v114c0 47 32 90 78 100c0 0 18 5 24 5zM176 400v0c18 0 31 -13 31 -31v-15c59 -14 104 -68 104 -131v-114l41 -42v-21h-352v21l41 42v114c0 63 45 117 104 131v15c0 18 13 31 31 31
+zM217 26v0c0 -23 -18 -42 -41 -42s-41 19 -41 42h82z" />
+    <glyph glyph-name="ion-ios-tv" unicode="&#xf115;" horiz-adv-x="484" 
+d="M438 370c26 0 46 -20 46 -46v-216c0 -26 -20 -46 -46 -46h-392c-26 0 -46 20 -46 46v216c0 26 20 46 46 46h392zM456 108v0v216c0 10 -8 18 -18 18h-392c-10 0 -18 -8 -18 -18v-216c0 -10 8 -18 18 -18h392c10 0 18 8 18 18zM422 320c7 0 12 -5 12 -12v-184
+c0 -7 -5 -12 -12 -12h-360c-7 0 -12 5 -12 12v184c0 7 5 12 12 12h360zM356 42c8 0 14 -6 14 -14s-6 -14 -14 -14h-228c-8 0 -14 6 -14 14s6 14 14 14h228z" />
+    <glyph glyph-name="ion-ios-phone-landscape" unicode="&#xf1e2;" horiz-adv-x="448" 
+d="M0 272c0 18 15 32 33 32h381c18 0 34 -14 34 -32v-159c0 -18 -16 -33 -34 -33h-381c-18 0 -33 15 -33 33v159zM23 177c0 -2 2 -4 4 -4s4 2 4 4v30c0 2 -2 4 -4 4s-4 -2 -4 -4v-30zM437 192c0 10 -7 18 -17 18s-18 -8 -18 -18s8 -17 18 -17s17 7 17 17zM392 288h-341v-192
+h341v192zM410 192c0 6 5 10 10 10c6 0 10 -4 10 -10s-4 -10 -10 -10c-5 0 -10 4 -10 10z" />
+    <glyph glyph-name="ion-ios-warning" unicode="&#xf268;" 
+d="M181 368c12 21 42 21 54 0l177 -323c11 -20 -4 -45 -27 -45h-354c-23 0 -38 25 -27 45zM226 234h-36l4 -122h28zM208 46c11 0 19 8 19 18s-8 18 -19 18s-19 -8 -19 -18s8 -18 19 -18z" />
+    <glyph glyph-name="ion-ios-arrow-round-back" unicode="&#xf117;" horiz-adv-x="288" 
+d="M104 284c5 -5 5 -13 0 -18l-60 -61h231c7 0 13 -6 13 -13s-6 -13 -13 -13h-231l60 -61c5 -5 5 -13 0 -18s-13 -5 -18 0l-82 83v0c-1 1 -2 2 -3 4s-1 3 -1 5c0 3 2 7 4 9l82 83c5 5 13 5 18 0z" />
+    <glyph glyph-name="ion-ios-play-circle" unicode="&#xf113;" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM292 188c3 2 3 6 0 8l-137 83c-3 2 -7 0 -7 -4v-166c0 -4 4 -6 7 -4z" />
+  </font>
+</defs></svg>
diff --git a/src/docs/fonts/ionicons.ttf b/src/docs/fonts/ionicons.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..67bd84202ad5b2e307d3b6fac1731c2a5d963e0b
GIT binary patch
diff --git a/src/docs/fonts/ionicons.woff b/src/docs/fonts/ionicons.woff
new file mode 100644
index 0000000000000000000000000000000000000000..ec1c1f879567793545e1a00ae1dabde12a7fd96f
GIT binary patch
diff --git a/src/docs/fonts/ionicons.woff2 b/src/docs/fonts/ionicons.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..4233951c94265a0ad912f11d1f4977eb45ef3cd5
GIT binary patch
diff --git a/src/docs/fonts/roboto-v15-latin-300.eot b/src/docs/fonts/roboto-v15-latin-300.eot
new file mode 100644
index 0000000000000000000000000000000000000000..826acfda9102ca6aba858813c72fa34b6968da36
GIT binary patch
diff --git a/src/docs/fonts/roboto-v15-latin-300.svg b/src/docs/fonts/roboto-v15-latin-300.svg
new file mode 100644
index 0000000..52b2832
--- /dev/null
+++ b/src/docs/fonts/roboto-v15-latin-300.svg
@@ -0,0 +1,314 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg">
+<defs >
+<font id="Roboto" horiz-adv-x="1137" ><font-face
+    font-family="Roboto Light"
+    units-per-em="2048"
+    panose-1="2 0 0 0 0 0 0 0 0 0"
+    ascent="1900"
+    descent="-500"
+    alphabetic="0" />
+<glyph unicode=" " horiz-adv-x="498" />
+<glyph unicode="!" horiz-adv-x="462" d="M284 405H173L167 1456H291L284 405ZM153 70Q153 104 175 127T235 151T295 128T318 70Q318 37 296 15T235 -8T175 14T153 70Z" />
+<glyph unicode="&quot;" horiz-adv-x="588" d="M243 1396L223 1083H143L146 1536H243V1396ZM479 1396L459 1083H378L382 1536H479V1396Z" />
+<glyph unicode="#" horiz-adv-x="1191" d="M753 410H439L362 0H263L340 410H85V503H357L440 944H161V1040H458L537 1456H636L557 1040H872L951 1456H1051L972 1040H1201V944H954L871 503H1126V410H853L776 0H676L753 410ZM456 503H771L854 944H539L456 503Z" />
+<glyph unicode="$" horiz-adv-x="1135" d="M901 359Q901 470 829 540T575 674Q349 745 258 842T167 1095Q167 1258 267 1359T539 1475V1677H641V1475Q817 1459 913 1343T1010 1028H891Q891 1185 810 1277T587 1370Q445 1370 366 1296T286 1097Q286 977 359 910T607
+783T862 669T981 540T1021 361Q1021 197 919 97T637 -18V-208H536V-19Q335 -6 225 107T115 418H235Q235 262 326 174T580 85Q722 85 811 161T901 359Z" />
+<glyph unicode="%" horiz-adv-x="1513" d="M109 1176Q109 1306 189 1391T394 1477T598 1392T679 1170V1099Q679 971 600 886T396 800Q273 800 191 884T109 1106V1176ZM206 1099Q206 1006 257 946T396 886Q481 886 531 946T582 1103V1176Q582 1269 530 1329T394
+1390Q311 1390 259 1330T206 1170V1099ZM842 357Q842 487 922 572T1126 657T1330 573T1412 350V279Q1412 149 1332 64T1128 -21T924 63T842 284V357ZM938 279Q938 185 989 125T1128 65Q1214 65 1264 125T1315 284V357Q1315 453 1264 511T1126 570Q1042 570 990
+511T938 353V279ZM434 121L359 169L1070 1307L1145 1259L434 121Z" />
+<glyph unicode="&amp;" horiz-adv-x="1260" d="M404 794Q317 899 278 981T238 1145Q238 1298 329 1387T573 1476Q712 1476 798 1396T884 1191Q884 1047 718 908L558 784L958 318Q1049 465 1049 651H1160Q1160 403 1032 232L1231 0H1087L961 146Q882 68 779 24T560
+-20Q352 -20 230 86T108 371Q108 477 170 571T390 784L404 794ZM560 81Q651 81 736 119T890 229L483 701L469 716L423 681Q227 521 227 371Q227 240 317 161T560 81ZM358 1149Q358 1027 493 861L624 961Q688 1007 729 1062T770 1191Q770 1269 716 1321T572 1374Q474
+1374 416 1311T358 1149Z" />
+<glyph unicode="&apos;" horiz-adv-x="348" d="M226 1395L209 1090H119Q124 1386 124 1536H226V1395Z" />
+<glyph unicode="(" horiz-adv-x="653" d="M140 588Q140 806 196 1011T360 1387T592 1632L621 1551Q555 1504 490 1414T374 1200T292 922T260 571Q260 362 307 169T438 -171T621 -393L592 -470Q465 -394 357 -225T195 148T140 588Z" />
+<glyph unicode=")" horiz-adv-x="667" d="M514 573Q514 353 460 150T298 -223T62 -470L33 -393Q131 -323 214 -176T346 166T394 591Q394 798 346 990T214 1334T33 1555L62 1632Q188 1555 295 1386T458 1011T514 573Z" />
+<glyph unicode="*" horiz-adv-x="869" d="M361 1000L29 1108L61 1209L393 1086L389 1456H493L485 1083L809 1210L842 1109L509 994L732 700L647 637L433 942L229 639L144 700L361 1000Z" />
+<glyph unicode="+" horiz-adv-x="1156" d="M630 740H1073V628H630V146H509V628H75V740H509V1206H630V740Z" />
+<glyph unicode="," horiz-adv-x="392" d="M131 -272L60 -220Q151 -98 154 33V188H271V63Q271 -145 131 -272Z" />
+<glyph unicode="-" horiz-adv-x="586" d="M528 592H49V693H528V592Z" />
+<glyph unicode="." horiz-adv-x="489" d="M145 72Q145 107 167 131T230 156T293 132T316 72T293 15T230 -8T168 14T145 72Z" />
+<glyph unicode="/" horiz-adv-x="813" d="M139 -125H30L638 1456H746L139 -125Z" />
+<glyph unicode="0" horiz-adv-x="1135" d="M1015 607Q1015 299 902 140T569 -20Q353 -20 238 136T120 592V853Q120 1160 234 1318T567 1476Q783 1476 897 1324T1015 874V607ZM895 868Q895 1118 814 1246T567 1374Q405 1374 323 1249T239 880V594Q239 345 323 213T569
+81Q729 81 811 210T895 588V868Z" />
+<glyph unicode="1" horiz-adv-x="1135" d="M694 0H574V1312L178 1165V1277L674 1461H694V0Z" />
+<glyph unicode="2" horiz-adv-x="1135" d="M1049 0H137V92L636 658Q760 801 808 894T856 1075Q856 1213 775 1293T552 1374Q405 1374 315 1280T224 1036H105Q105 1159 160 1260T318 1418T552 1476Q752 1476 864 1371T977 1085Q977 983 914 862T690 560L284 101H1049V0Z" />
+<glyph unicode="3" horiz-adv-x="1135" d="M403 793H527Q630 793 707 829T824 929T865 1076Q865 1216 786 1295T559 1374Q419 1374 330 1292T240 1074H120Q120 1187 177 1280T335 1425T559 1476Q757 1476 871 1368T985 1072Q985 967 919 879T736 746Q872 708 942
+616T1012 395Q1012 208 890 94T564 -20Q434 -20 326 32T158 177T98 395H218Q218 256 315 169T564 81Q719 81 805 160T892 391Q892 537 799 614T523 691H403V793Z" />
+<glyph unicode="4" horiz-adv-x="1135" d="M872 469H1099V368H872V0H752V368H67V436L741 1456H872V469ZM214 469H752V1301L699 1209L214 469Z" />
+<glyph unicode="5" horiz-adv-x="1135" d="M218 746L289 1456H1017V1345H392L341 853Q458 933 615 933Q812 933 929 805T1046 464Q1046 234 932 107T611 -20Q421 -20 303 86T168 383H283Q300 234 384 158T611 81Q767 81 846 180T926 462Q926 622 837 723T594 824Q509
+824 446 803T313 719L218 746Z" />
+<glyph unicode="6" horiz-adv-x="1135" d="M843 1467V1362H829Q568 1362 418 1209T252 782Q312 865 405 910T613 956Q805 956 918 824T1032 477Q1032 335 979 221T827 44T601 -20Q392 -20 261 131T130 523V643Q130 1034 308 1248T813 1467H843ZM594 853Q480 853
+382 786T250 614V512Q250 322 347 202T601 82Q741 82 827 193T914 473Q914 645 828 749T594 853Z" />
+<glyph unicode="7" horiz-adv-x="1135" d="M1034 1387L412 0H287L905 1354H77V1456H1034V1387Z" />
+<glyph unicode="8" horiz-adv-x="1135" d="M995 1081Q995 968 929 879T755 747Q881 704 957 608T1033 386Q1033 199 906 90T570 -20Q359 -20 233 89T106 386Q106 510 179 607T379 747Q271 789 207 878T143 1081Q143 1262 259 1369T568 1476T877 1368T995 1081ZM913
+385Q913 521 816 608T568 696T321 610T225 385T318 164T570 81Q725 81 819 163T913 385ZM875 1082Q875 1207 789 1290T568 1374Q432 1374 348 1294T263 1082Q263 954 347 876T569 798Q704 798 789 876T875 1082Z" />
+<glyph unicode="9" horiz-adv-x="1135" d="M884 674Q820 580 725 529T519 477Q395 477 300 541T153 718T101 965Q101 1109 156 1227T311 1410T541 1476Q760 1476 882 1323T1004 887V779Q1004 385 836 187T323 -11H301L302 93H344Q605 97 741 241T884 674ZM534
+580Q654 580 749 651T885 837V906Q885 1128 793 1250T543 1373Q401 1373 310 1259T219 970Q219 803 306 692T534 580Z" />
+<glyph unicode=":" horiz-adv-x="430" d="M383 72Q383 107 405 131T468 156T531 132T554 72T531 15T468 -8T406 14T383 72ZM129 995Q129 1030 151 1054T214 1079T277 1055T300 995T277 938T214 915T152 937T129 995Z" />
+<glyph unicode=";" horiz-adv-x="399" d="M118 995Q118 1030 140 1054T203 1079T266 1055T289 995T266 938T203 915T141 937T118 995ZM131 -272L60 -220Q151 -98 154 33V188H271V63Q271 -145 131 -272Z" />
+<glyph unicode="&lt;" horiz-adv-x="1047" d="M208 655L904 355V229L77 608V705L904 1083V957L208 655Z" />
+<glyph unicode="=" horiz-adv-x="1133" d="M983 829H149V935H983V829ZM983 418H149V524H983V418Z" />
+<glyph unicode="&gt;" horiz-adv-x="1061" d="M835 659L124 962V1085L969 707V610L124 231V355L835 659Z" />
+<glyph unicode="?" horiz-adv-x="930" d="M376 404Q378 522 408 594T537 763T664 901T708 990T724 1101Q724 1226 658 1297T472 1369Q352 1369 279 1301T203 1115H84Q86 1279 195 1377T472 1476Q644 1476 743 1376T843 1103Q843 995 794 901T608 680Q495 585 495
+404H376ZM360 70Q360 104 381 127T442 151Q480 151 502 128T525 70Q525 37 503 15T442 -8Q403 -8 382 14T360 70Z" />
+<glyph unicode="@" horiz-adv-x="1870" d="M1754 513Q1749 366 1700 241T1565 48T1364 -20Q1267 -20 1206 31T1125 174Q1017 -20 827 -20Q687 -20 618 101T567 427Q582 590 641 717T796 916T1001 988Q1078 988 1136 967T1271 880L1220 310Q1210 194 1249 130T1376
+66Q1499 66 1575 186T1661 513Q1680 918 1507 1122T983 1327Q772 1327 603 1222T335 923T225 478T291 35T528 -260T906 -363Q998 -363 1087 -341T1236 -284L1267 -364Q1210 -402 1108 -427T902 -453Q652 -453 472 -341T203 -17T125 478Q137 756 247 970T550 1302T987
+1420Q1242 1420 1419 1314T1681 1002T1754 513ZM673 286Q684 186 729 132T848 77Q1033 77 1121 332L1166 848Q1099 897 1008 897Q897 897 816 809T696 565T673 286Z" />
+<glyph unicode="A" horiz-adv-x="1279" d="M970 408H309L159 0H30L581 1456H698L1249 0H1121L970 408ZM347 513H931L639 1306L347 513Z" />
+<glyph unicode="B" horiz-adv-x="1255" d="M184 0V1456H614Q848 1456 969 1360T1090 1075Q1090 962 1029 879T860 759Q987 731 1064 634T1142 410Q1142 217 1018 109T671 0H184ZM307 700V104H676Q834 104 926 184T1019 408Q1019 543 931 621T686 700H307ZM307
+803H643Q797 806 881 875T966 1078Q966 1218 879 1284T614 1351H307V803Z" />
+<glyph unicode="C" horiz-adv-x="1330" d="M1215 454Q1190 224 1051 102T679 -20Q517 -20 393 61T200 290T131 630V819Q131 1013 199 1163T394 1394T688 1476Q922 1476 1057 1350T1215 1000H1091Q1045 1371 688 1371Q490 1371 373 1223T255 814V636Q255 384 369
+234T679 84Q872 84 970 176T1091 454H1215Z" />
+<glyph unicode="D" horiz-adv-x="1341" d="M184 0V1456H591Q770 1456 912 1375T1133 1141T1213 795V661Q1213 466 1134 315T912 82T582 0H184ZM307 1351V104H583Q813 104 952 256T1091 669V797Q1091 1048 954 1199T593 1351H307Z" />
+<glyph unicode="E" horiz-adv-x="1165" d="M988 698H307V104H1090V0H184V1456H1085V1351H307V802H988V698Z" />
+<glyph unicode="F" horiz-adv-x="1152" d="M986 680H307V0H184V1456H1086V1351H307V785H986V680Z" />
+<glyph unicode="G" horiz-adv-x="1400" d="M1235 173Q1171 82 1035 31T729 -20Q558 -20 425 62T219 294T145 638V822Q145 1125 298 1300T709 1476Q934 1476 1071 1362T1234 1046H1111Q1084 1206 981 1288T710 1371Q506 1371 387 1226T268 817V645Q268 479 324
+352T486 154T729 84Q888 84 1002 134Q1076 167 1112 211V587H721V691H1235V173Z" />
+<glyph unicode="H" horiz-adv-x="1449" d="M1263 0H1139V698H307V0H184V1456H307V802H1139V1456H1263V0Z" />
+<glyph unicode="I" horiz-adv-x="545" d="M334 0H211V1456H334V0Z" />
+<glyph unicode="J" horiz-adv-x="1127" d="M827 1456H951V433Q951 226 832 103T511 -20Q299 -20 185 91T71 401H194Q194 243 277 164T511 84Q650 84 737 176T827 426V1456Z" />
+<glyph unicode="K" horiz-adv-x="1292" d="M512 723L307 521V0H184V1456H307V671L1053 1456H1208L598 808L1255 0H1105L512 723Z" />
+<glyph unicode="L" horiz-adv-x="1079" d="M308 104H1027V0H184V1456H308V104Z" />
+<glyph unicode="M" horiz-adv-x="1772" d="M347 1456L884 171L1423 1456H1587V0H1464V634L1474 1284L932 0H837L297 1279L307 638V0H184V1456H347Z" />
+<glyph unicode="N" horiz-adv-x="1454" d="M1268 0H1145L308 1246V0H184V1456H308L1146 209V1456H1268V0Z" />
+<glyph unicode="O" horiz-adv-x="1386" d="M1260 649Q1260 448 1191 296T992 62T694 -20Q439 -20 282 162T125 655V805Q125 1004 195 1157T395 1393T692 1476T988 1395T1187 1166T1260 823V649ZM1137 807Q1137 1070 1018 1219T692 1368Q489 1368 369 1219T248
+801V649Q248 390 368 239T694 87Q903 87 1020 236T1137 653V807Z" />
+<glyph unicode="P" horiz-adv-x="1261" d="M307 593V0H184V1456H680Q907 1456 1038 1340T1170 1021Q1170 816 1044 705T677 593H307ZM307 697H680Q859 697 953 782T1047 1019Q1047 1170 954 1259T688 1351H307V697Z" />
+<glyph unicode="Q" horiz-adv-x="1386" d="M1256 649Q1256 441 1183 287T973 53L1238 -178L1153 -254L856 3Q774 -20 689 -20Q523 -20 394 62T193 294T121 642V805Q121 1004 191 1157T391 1393T687 1476Q857 1476 986 1394T1185 1159T1256 806V649ZM1133 807Q1133
+1070 1014 1219T687 1368Q485 1368 365 1219T244 801V649Q244 390 363 239T689 87Q897 87 1015 236T1133 652V807Z" />
+<glyph unicode="R" horiz-adv-x="1300" d="M728 606H305V0H181V1456H654Q887 1456 1018 1343T1149 1027Q1149 887 1067 780T847 632L1211 13V0H1080L728 606ZM305 711H682Q837 711 931 799T1025 1027Q1025 1181 927 1266T652 1351H305V711Z" />
+<glyph unicode="S" horiz-adv-x="1213" d="M1008 358Q1008 479 923 549T612 683T282 822Q134 928 134 1100Q134 1267 271 1371T623 1476Q768 1476 882 1420T1060 1264T1123 1041H999Q999 1190 897 1280T623 1371Q456 1371 357 1297T258 1102Q258 991 347 921T632
+798T929 687T1081 549T1132 360Q1132 188 995 84T632 -20Q478 -20 350 35T155 189T88 416H211Q211 262 326 173T632 84Q802 84 905 159T1008 358Z" />
+<glyph unicode="T" horiz-adv-x="1223" d="M1172 1351H673V0H550V1351H52V1456H1172V1351Z" />
+<glyph unicode="U" horiz-adv-x="1346" d="M1187 1456V462Q1186 315 1122 206T942 39T674 -20Q444 -20 306 105T162 453V1456H284V471Q284 287 389 186T674 84T958 186T1063 470V1456H1187Z" />
+<glyph unicode="V" horiz-adv-x="1263" d="M623 180L631 149L640 180L1098 1456H1233L691 0H573L31 1456H165L623 180Z" />
+<glyph unicode="W" horiz-adv-x="1836" d="M453 393L498 167L553 383L869 1456H980L1292 383L1346 165L1394 393L1657 1456H1783L1410 0H1292L962 1139L925 1283L889 1139L551 0H433L61 1456H187L453 393Z" />
+<glyph unicode="X" horiz-adv-x="1253" d="M627 840L1037 1456H1184L702 738L1199 0H1051L627 636L201 0H55L553 738L70 1456H217L627 840Z" />
+<glyph unicode="Y" horiz-adv-x="1226" d="M611 662L1056 1456H1198L672 548V0H549V548L24 1456H170L611 662Z" />
+<glyph unicode="Z" horiz-adv-x="1225" d="M239 104H1138V0H90V93L954 1351H116V1456H1106V1368L239 104Z" />
+<glyph unicode="[" horiz-adv-x="491" d="M493 1562H283V-210H493V-312H163V1664H493V1562Z" />
+<glyph unicode="\" horiz-adv-x="807" d="M48 1456H165L773 -125H656L48 1456Z" />
+<glyph unicode="]" horiz-adv-x="491" d="M0 1664H331V-312H0V-210H211V1562H0V1664Z" />
+<glyph unicode="^" horiz-adv-x="852" d="M421 1298L193 729H77L376 1456H466L764 729H648L421 1298Z" />
+<glyph unicode="_" horiz-adv-x="884" d="M882 -101H1V0H882V-101Z" />
+<glyph unicode="`" horiz-adv-x="585" d="M438 1245H329L103 1524H247L438 1245Z" />
+<glyph unicode="a" horiz-adv-x="1097" d="M839 0Q821 51 816 151Q753 69 656 25T449 -20Q293 -20 197 67T100 287Q100 445 231 537T598 629H815V752Q815 868 744 934T535 1001Q410 1001 328 937T246 783L126 784Q126 913 246 1007T541 1102Q722 1102 826 1012T934
+759V247Q934 90 967 12V0H839ZM463 86Q583 86 677 144T815 299V537H601Q422 535 321 472T220 297Q220 206 287 146T463 86Z" />
+<glyph unicode="b" horiz-adv-x="1135" d="M1027 530Q1027 277 915 129T614 -20Q388 -20 272 148L267 0H155V1536H274V925Q388 1102 612 1102Q804 1102 915 956T1027 548V530ZM907 551Q907 765 824 881T590 998Q475 998 395 942T274 776V288Q364 84 592 84Q740
+84 823 201T907 551Z" />
+<glyph unicode="c" horiz-adv-x="1055" d="M556 81Q681 81 765 151T857 334H972Q967 235 910 154T759 26T556 -20Q343 -20 219 128T94 526V562Q94 722 150 845T310 1035T555 1102Q733 1102 848 996T972 717H857Q849 844 766 922T555 1000Q393 1000 304 883T214
+555V520Q214 313 303 197T556 81Z" />
+<glyph unicode="d" horiz-adv-x="1138" d="M108 551Q108 803 220 952T526 1102Q745 1102 860 929V1536H979V0H867L862 144Q747 -20 524 -20Q337 -20 223 130T108 537V551ZM229 530Q229 323 312 204T546 84Q767 84 860 279V787Q767 998 548 998Q397 998 313 880T229 530Z" />
+<glyph unicode="e" horiz-adv-x="1058" d="M575 -20Q437 -20 326 48T152 237T90 510V553Q90 709 150 834T319 1030T553 1102Q750 1102 865 968T981 600V533H209V510Q209 326 314 204T580 81Q676 81 749 116T883 228L958 171Q826 -20 575 -20ZM553 1000Q418 1000
+326 901T213 635H862V648Q857 804 773 902T553 1000Z" />
+<glyph unicode="f" horiz-adv-x="678" d="M242 0V984H63V1082H242V1213Q242 1379 326 1468T562 1557Q630 1557 689 1540L680 1440Q630 1452 571 1452Q472 1452 417 1391T362 1216V1082H620V984H362V0H242Z" />
+<glyph unicode="g" horiz-adv-x="1136" d="M108 551Q108 805 220 953T526 1102Q747 1102 862 926L868 1082H980V22Q980 -187 863 -309T546 -431Q433 -431 331 -381T169 -246L236 -174Q363 -330 538 -330Q688 -330 772 -242T859 4V140Q744 -20 524 -20Q336 -20
+222 130T108 535V551ZM229 530Q229 323 312 204T546 84Q767 84 859 282V785Q817 889 738 943T548 998Q397 998 313 880T229 530Z" />
+<glyph unicode="h" horiz-adv-x="1124" d="M275 899Q334 996 426 1049T627 1102Q801 1102 886 1004T972 710V0H853V711Q852 856 792 927T598 998Q487 998 402 929T275 741V0H156V1536H275V899Z" />
+<glyph unicode="i" horiz-adv-x="459" d="M290 0H170V1082H290V0ZM149 1395Q149 1429 171 1452T231 1476T291 1453T314 1395T292 1338T231 1315T171 1338T149 1395Z" />
+<glyph unicode="j" horiz-adv-x="467" d="M285 1082V-129Q285 -279 213 -358T1 -437Q-53 -437 -104 -418L-102 -319Q-58 -332 -12 -332Q166 -332 166 -127V1082H285ZM226 1476Q265 1476 287 1453T309 1395T287 1338T226 1315Q188 1315 167 1338T145 1395T166 1452T226
+1476Z" />
+<glyph unicode="k" horiz-adv-x="1003" d="M413 545L276 413V0H156V1536H276V553L389 675L803 1082H954L495 626L994 0H851L413 545Z" />
+<glyph unicode="l" horiz-adv-x="459" d="M290 0H170V1536H290V0Z" />
+<glyph unicode="m" horiz-adv-x="1815" d="M265 1082L269 906Q329 1004 419 1053T619 1102Q875 1102 944 892Q1002 993 1099 1047T1313 1102Q1661 1102 1668 722V0H1548V713Q1547 858 1486 928T1285 998Q1156 996 1067 915T968 716V0H848V722Q847 861 783 929T584
+998Q471 998 390 934T270 742V0H150V1082H265Z" />
+<glyph unicode="n" horiz-adv-x="1125" d="M270 1082L274 897Q335 997 426 1049T627 1102Q801 1102 886 1004T972 710V0H853V711Q852 856 792 927T598 998Q487 998 402 929T275 741V0H156V1082H270Z" />
+<glyph unicode="o" horiz-adv-x="1147" d="M90 557Q90 713 150 838T321 1032T572 1102Q788 1102 922 951T1056 549V524Q1056 367 996 242T825 48T574 -20Q359 -20 225 131T90 533V557ZM210 524Q210 330 310 206T574 81Q736 81 836 205T937 534V557Q937 681 891
+784T762 943T572 1000Q412 1000 311 875T210 546V524Z" />
+<glyph unicode="p" horiz-adv-x="1135" d="M1026 530Q1026 277 914 129T614 -20Q392 -20 274 136V-416H155V1082H266L272 929Q389 1102 611 1102Q805 1102 915 955T1026 547V530ZM906 551Q906 758 821 878T584 998Q474 998 395 945T274 791V272Q317 179 397 130T586
+81Q737 81 821 201T906 551Z" />
+<glyph unicode="q" horiz-adv-x="1142" d="M108 551Q108 805 220 953T528 1102Q747 1102 861 935L867 1082H979V-416H859V134Q741 -20 526 -20Q336 -20 222 130T108 535V551ZM229 530Q229 320 313 201T548 81Q763 81 859 268V798Q814 895 735 947T550 1000Q399
+1000 314 881T229 530Z" />
+<glyph unicode="r" horiz-adv-x="689" d="M656 980Q618 987 575 987Q463 987 386 925T275 743V0H156V1082H273L275 910Q370 1102 580 1102Q630 1102 659 1089L656 980Z" />
+<glyph unicode="s" horiz-adv-x="1037" d="M804 275Q804 364 733 418T517 502T294 572T176 669T137 807Q137 935 244 1018T518 1102Q699 1102 808 1013T918 779H798Q798 874 719 937T518 1000Q400 1000 329 948T257 811Q257 730 316 686T533 604T769 525T886 424T924
+281Q924 144 814 62T525 -20Q336 -20 219 71T101 303H221Q228 198 309 140T525 81Q650 81 727 136T804 275Z" />
+<glyph unicode="t" horiz-adv-x="658" d="M342 1359V1082H566V984H342V263Q342 173 374 129T483 85Q513 85 580 95L585 -3Q538 -20 457 -20Q334 -20 278 51T222 262V984H23V1082H222V1359H342Z" />
+<glyph unicode="u" horiz-adv-x="1125" d="M852 137Q744 -20 507 -20Q334 -20 244 80T152 378V1082H271V393Q271 84 521 84Q781 84 850 299V1082H970V0H854L852 137Z" />
+<glyph unicode="v" horiz-adv-x="985" d="M493 165L822 1082H945L541 0H444L38 1082H161L493 165Z" />
+<glyph unicode="w" horiz-adv-x="1544" d="M415 249L433 156L457 254L717 1082H819L1076 261L1104 147L1127 252L1349 1082H1473L1158 0H1056L778 858L765 917L752 857L479 0H377L63 1082H186L415 249Z" />
+<glyph unicode="x" horiz-adv-x="996" d="M496 643L788 1082H930L563 551L946 0H805L497 458L189 0H48L430 551L63 1082H204L496 643Z" />
+<glyph unicode="y" horiz-adv-x="973" d="M499 172L815 1082H944L482 -184L458 -240Q369 -437 183 -437Q140 -437 91 -423L90 -324L152 -330Q240 -330 294 -287T387 -137L440 9L32 1082H163L499 172Z" />
+<glyph unicode="z" horiz-adv-x="996" d="M235 101H938V0H87V88L743 979H107V1082H894V993L235 101Z" />
+<glyph unicode="{" horiz-adv-x="676" d="M637 -404Q469 -354 384 -241T299 59V280Q299 543 68 543V647Q299 647 299 908V1137Q300 1320 384 1433T637 1597L663 1518Q419 1440 419 1127V914Q419 668 235 595Q419 518 419 277V49Q423 -243 666 -324L637 -404Z" />
+<glyph unicode="|" horiz-adv-x="452" d="M279 -270H178V1456H279V-270Z" />
+<glyph unicode="}" horiz-adv-x="676" d="M9 -324Q252 -243 256 49V273Q256 526 449 594Q256 662 256 913V1126Q256 1442 12 1518L38 1597Q209 1546 292 1432T376 1131V908Q376 647 607 647V543Q376 543 376 280V59Q376 -128 291 -241T38 -404L9 -324Z" />
+<glyph unicode="~" horiz-adv-x="1402" d="M1254 764Q1254 615 1171 519T958 423Q886 423 824 450T670 558T535 659T441 680Q352 680 303 621T253 450L145 449Q145 598 226 692T441 787Q515 787 581 756T740 643Q807 580 855 555T958 529Q1046 529 1098 592T1150
+764H1254Z" />
+<glyph unicode="&#xa0;" horiz-adv-x="498" />
+<glyph unicode="&#xa1;" horiz-adv-x="452" d="M174 690H285L292 -359H168L174 690ZM305 1022Q305 988 283 965T223 942T163 965T140 1022T162 1079T223 1102T283 1079T305 1022Z" />
+<glyph unicode="&#xa2;" horiz-adv-x="1115" d="M581 81Q704 81 788 150T882 334H997Q989 195 887 97T636 -17V-245H516V-16Q331 7 225 150T119 526V562Q119 784 224 929T516 1098V1318H636V1099Q791 1083 891 978T997 717H882Q874 844 791 922T580 1000Q418 1000
+329 883T239 555V520Q239 313 328 197T581 81Z" />
+<glyph unicode="&#xa3;" horiz-adv-x="1170" d="M404 645L413 368Q415 194 349 104H1094V0H97V104H195Q246 117 272 211Q292 285 290 367L281 645H93V749H277L268 1039Q268 1239 378 1357T674 1476Q856 1476 961 1371T1067 1088H944Q944 1223 869 1297T665 1371Q540
+1371 466 1283T392 1039L401 749H745V645H404Z" />
+<glyph unicode="&#xa4;" horiz-adv-x="1481" d="M1131 133Q1053 61 953 21T740 -20Q514 -20 349 132L194 -26L109 60L268 221Q144 389 144 608Q144 835 277 1006L109 1177L194 1264L361 1094Q526 1234 740 1234T1119 1092L1289 1265L1375 1177L1204 1002Q1334
+832 1334 608Q1334 393 1212 224L1375 60L1289 -27L1131 133ZM257 608Q257 470 321 350T499 161T740 91Q869 91 981 161T1157 350T1221 608Q1221 747 1156 866T979 1054T740 1122T500 1054T323 867T257 608Z" />
+<glyph unicode="&#xa5;" horiz-adv-x="1223" d="M607 734L1028 1456H1171L718 705H1085V616H667V412H1085V324H667V0H544V324H130V412H544V616H130V705H496L44 1456H187L607 734Z" />
+<glyph unicode="&#xa6;" horiz-adv-x="444" d="M159 -270V501H279V-270H159ZM279 698H159V1456H279V698Z" />
+<glyph unicode="&#xa7;" horiz-adv-x="1239" d="M1119 431Q1119 331 1058 262T887 159Q978 111 1026 41T1075 -139Q1075 -303 949 -399T606 -495Q497 -495 401 -467T236 -382Q102 -268 102 -64L222 -62Q222 -218 325 -305T606 -393Q766 -393 860 -324T954 -141Q954
+-64 920 -17T805 69T548 156T284 255T153 378T108 551Q108 651 166 721T331 825Q245 872 199 942T153 1120Q153 1281 282 1378T624 1476Q848 1476 972 1363T1097 1045H977Q977 1191 881 1282T624 1374Q459 1374 366 1306T273 1122Q273 1043 304 996T411 911T646
+828Q842 777 936 726T1075 603T1119 431ZM454 771Q346 758 287 700T228 553Q228 470 263 422T379 336T663 242L755 214Q867 227 933 284T999 428Q999 526 932 585T692 700L454 771Z" />
+<glyph unicode="&#xa8;" horiz-adv-x="881" d="M143 1396Q143 1430 164 1453T225 1477Q263 1477 285 1454T308 1396Q308 1363 286 1340T225 1317Q186 1317 165 1340T143 1396ZM580 1395Q580 1429 602 1452T662 1476Q701 1476 723 1453T745 1395Q745 1362 723 1339T662
+1316Q624 1316 602 1339T580 1395Z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1637" d="M1121 607Q1121 455 1039 374T807 293T566 399T474 686V776Q474 950 566 1056T807 1163T1039 1083T1122 850H1023Q1023 1074 807 1074Q701 1074 637 993T573 771V680Q573 546 636 465T807 383Q913 383 967 436T1022
+607H1121ZM192 729Q192 553 273 399T502 155T817 65Q984 65 1129 154T1357 396T1441 729Q1441 907 1358 1059T1130 1300T817 1389Q646 1389 499 1298T272 1055T192 729ZM107 729Q107 931 200 1104T459 1376T817 1476T1174 1377T1432 1104T1526 729Q1526 532 1436
+360T1181 84T817 -21Q620 -21 455 82T198 358T107 729Z" />
+<glyph unicode="&#xaa;" horiz-adv-x="906" d="M649 705Q634 748 628 799Q541 691 406 691Q289 691 223 749T157 908Q157 1018 240 1079T486 1140H625V1201Q625 1286 585 1333T464 1380Q374 1380 323 1345T271 1237L164 1243Q164 1345 247 1410T464 1476Q588 1476
+661 1405T734 1199V884Q734 792 760 705H649ZM426 786Q479 786 536 816T625 890V1058H496Q266 1058 266 912Q266 786 426 786Z" />
+<glyph unicode="&#xab;" horiz-adv-x="933" d="M247 792L523 404H418L123 783V802L418 1181H523L247 792ZM556 536L832 148H727L432 527V546L727 925H832L556 536Z" />
+<glyph unicode="&#xac;" horiz-adv-x="1117" d="M936 386H816V670H124V776H936V386Z" />
+<glyph unicode="&#xad;" horiz-adv-x="586" d="M528 592H49V693H528V592Z" />
+<glyph unicode="&#xae;" horiz-adv-x="1642" d="M102 729Q102 931 195 1104T454 1376T812 1476T1169 1377T1428 1104T1522 729Q1522 530 1431 358T1175 83T812 -21T450 82T193 358T102 729ZM187 729Q187 550 270 396T499 154T812 65T1125 153T1353 396T1436 729Q1436
+905 1355 1057T1129 1299T812 1389Q644 1389 499 1301T270 1060T187 729ZM650 666V321H552V1160H810Q957 1160 1036 1099T1115 912Q1115 779 974 715Q1046 689 1074 635T1102 504T1106 394T1119 337V321H1017Q1003 357 1003 503Q1003 592 966 629T838 666H650ZM650
+757H831Q912 757 964 799T1017 910Q1017 995 974 1031T824 1070H650V757Z" />
+<glyph unicode="&#xaf;" horiz-adv-x="874" d="M776 1359H106V1456H776V1359Z" />
+<glyph unicode="&#xb0;" horiz-adv-x="774" d="M630 1226Q630 1122 559 1051T388 980Q287 980 215 1051T143 1226T216 1402T388 1476T558 1403T630 1226ZM233 1226Q233 1159 277 1115T388 1071T497 1115T540 1226Q540 1295 497 1340T388 1385Q323 1385 278 1340T233
+1226Z" />
+<glyph unicode="&#xb1;" horiz-adv-x="1085" d="M609 829H1000V727H609V289H498V727H84V829H498V1267H609V829ZM963 0H128V101H963V0Z" />
+<glyph unicode="&#xb2;" horiz-adv-x="740" d="M667 665H96V740L416 1054Q522 1164 522 1237Q522 1300 482 1338T362 1377Q275 1377 228 1333T181 1215H76Q76 1323 155 1394T360 1465T557 1403T628 1239Q628 1138 510 1016L455 961L229 752H667V665Z" />
+<glyph unicode="&#xb3;" horiz-adv-x="740" d="M267 1107H353Q434 1109 481 1145T529 1241Q529 1303 486 1340T362 1377Q286 1377 238 1340T190 1245H85Q85 1341 163 1403T361 1465Q489 1465 562 1405T635 1243Q635 1187 597 1140T489 1069Q651 1027 651 880Q651
+778 572 716T363 654Q234 654 153 717T71 884H177Q177 822 229 782T366 741Q453 741 499 779T546 883Q546 1025 340 1025H267V1107Z" />
+<glyph unicode="&#xb4;" horiz-adv-x="576" d="M315 1524H460L229 1245H124L315 1524Z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1140" d="M281 1082V446Q281 266 344 174T544 81Q676 81 753 138T859 312V1082H979V0H870L863 154Q765 -20 552 -20Q368 -20 281 105V-416H162V1082H281Z" />
+<glyph unicode="&#xb6;" horiz-adv-x="973" d="M681 0V520H573Q423 520 312 578T142 742T83 988Q83 1201 216 1328T577 1456H801V0H681Z" />
+<glyph unicode="&#xb7;" horiz-adv-x="503" d="M163 717Q163 752 185 776T247 800T310 776T333 717T310 659T247 635T185 658T163 717Z" />
+<glyph unicode="&#xb8;" horiz-adv-x="498" d="M246 0L234 -64Q399 -85 399 -235Q399 -327 320 -381T105 -435L98 -357Q187 -357 243 -325T300 -237Q300 -179 257 -157T124 -127L153 0H246Z" />
+<glyph unicode="&#xb9;" horiz-adv-x="740" d="M464 669H358V1332L126 1262V1352L450 1459H464V669Z" />
+<glyph unicode="&#xba;" horiz-adv-x="922" d="M135 1132Q135 1285 223 1380T458 1476Q605 1476 693 1381T782 1127V1033Q782 880 694 785T460 690Q313 690 224 784T135 1038V1132ZM243 1033Q243 919 299 852T460 785Q559 785 616 851T674 1037V1132Q674 1247
+616 1313T458 1380T301 1312T243 1127V1033Z" />
+<glyph unicode="&#xbb;" horiz-adv-x="928" d="M221 944L516 560V541L221 162H115L391 550L115 944H221ZM540 944L835 560V541L540 162H434L710 550L434 944H540Z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1484" d="M453 664H347V1327L115 1257V1347L439 1454H453V664ZM414 129L340 177L1051 1315L1125 1267L414 129ZM1272 275H1399V187H1272V0H1167V187H768L764 253L1161 789H1272V275ZM878 275H1167V659L1136 609L878 275Z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1548" d="M370 129L296 177L1007 1315L1081 1267L370 129ZM438 664H332V1327L100 1257V1347L424 1454H438V664ZM1436 0H865V75L1185 389Q1291 499 1291 572Q1291 635 1251 673T1131 712Q1044 712 997 668T950 550H845Q845
+658 924 729T1129 800T1326 738T1397 574Q1397 473 1279 351L1224 296L998 87H1436V0Z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1590" d="M558 129L484 177L1195 1315L1269 1267L558 129ZM1387 275H1514V187H1387V0H1282V187H883L879 253L1276 789H1387V275ZM993 275H1282V659L1251 609L993 275ZM314 1107H400Q481 1109 528 1145T576 1241Q576 1303
+533 1340T409 1377Q333 1377 285 1340T237 1245H132Q132 1341 210 1403T408 1465Q536 1465 609 1405T682 1243Q682 1187 644 1140T536 1069Q698 1027 698 880Q698 778 619 716T410 654Q281 654 200 717T118 884H224Q224 822 276 782T413 741Q500 741 546 779T593
+883Q593 1025 387 1025H314V1107Z" />
+<glyph unicode="&#xbf;" horiz-adv-x="940" d="M551 687Q549 564 524 505T405 352T288 228Q207 123 207 -8Q207 -137 274 -207T469 -277Q588 -277 659 -207T732 -20H852Q850 -186 745 -284T469 -383Q291 -383 190 -283T88 -10Q88 101 141 202T337 438Q422 509
+429 618L431 687H551ZM567 1022Q567 988 545 965T485 941T425 964T402 1022Q402 1055 424 1078T485 1101T545 1078T567 1022Z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1279" d="M970 408H309L159 0H30L581 1456H698L1249 0H1121L970 408ZM347 513H931L639 1306L347 513ZM716 1560H607L381 1839H525L716 1560Z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1279" d="M970 408H309L159 0H30L581 1456H698L1249 0H1121L970 408ZM347 513H931L639 1306L347 513ZM762 1839H907L676 1560H571L762 1839Z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1279" d="M970 408H309L159 0H30L581 1456H698L1249 0H1121L970 408ZM347 513H931L639 1306L347 513ZM921 1583V1573H810L642 1756L475 1573H366V1586L604 1841H680L921 1583Z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1279" d="M970 408H309L159 0H30L581 1456H698L1249 0H1121L970 408ZM347 513H931L639 1306L347 513ZM983 1809Q983 1713 927 1655T788 1596Q712 1596 640 1651T510 1706Q463 1706 432 1675T400 1588L310 1591Q310 1683 364
+1743T505 1803Q553 1803 587 1786T651 1748T711 1710T783 1693Q829 1693 861 1726T894 1815L983 1809Z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1279" d="M970 408H309L159 0H30L581 1456H698L1249 0H1121L970 408ZM347 513H931L639 1306L347 513ZM349 1711Q349 1745 370 1768T431 1792Q469 1792 491 1769T514 1711Q514 1678 492 1655T431 1632Q392 1632 371 1655T349
+1711ZM786 1710Q786 1744 808 1767T868 1791Q907 1791 929 1768T951 1710Q951 1677 929 1654T868 1631Q830 1631 808 1654T786 1710Z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1279" d="M970 408H309L159 0H30L581 1456H698L1249 0H1121L970 408ZM347 513H931L639 1306L347 513ZM450 1715Q450 1795 506 1850T643 1905Q722 1905 779 1850T836 1715Q836 1636 781 1582T643 1528T505 1582T450 1715ZM527
+1715Q527 1665 560 1632T643 1599Q692 1599 726 1631T760 1715Q760 1768 725 1801T643 1834Q594 1834 561 1800T527 1715Z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1865" d="M1823 0H1006L989 389H393L163 0H17L898 1456H1762V1354H1068L1091 809H1680V707H1095L1121 101H1823V0ZM460 502H985L950 1331L460 502Z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1330" d="M1215 454Q1190 224 1051 102T679 -20Q517 -20 393 61T200 290T131 630V819Q131 1013 199 1163T394 1394T688 1476Q922 1476 1057 1350T1215 1000H1091Q1045 1371 688 1371Q490 1371 373 1223T255 814V636Q255 384
+369 234T679 84Q872 84 970 176T1091 454H1215ZM728 -9L716 -73Q881 -94 881 -244Q881 -336 802 -390T587 -444L580 -366Q669 -366 725 -334T782 -246Q782 -188 739 -166T606 -136L635 -9H728Z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1165" d="M988 698H307V104H1090V0H184V1456H1085V1351H307V802H988V698ZM693 1566H584L358 1845H502L693 1566Z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1165" d="M988 698H307V104H1090V0H184V1456H1085V1351H307V802H988V698ZM739 1845H884L653 1566H548L739 1845Z" />
+<glyph unicode="&#xca;" horiz-adv-x="1165" d="M988 698H307V104H1090V0H184V1456H1085V1351H307V802H988V698ZM898 1589V1579H787L619 1762L452 1579H343V1592L581 1847H657L898 1589Z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1165" d="M988 698H307V104H1090V0H184V1456H1085V1351H307V802H988V698ZM326 1717Q326 1751 347 1774T408 1798Q446 1798 468 1775T491 1717Q491 1684 469 1661T408 1638Q369 1638 348 1661T326 1717ZM763 1716Q763 1750
+785 1773T845 1797Q884 1797 906 1774T928 1716Q928 1683 906 1660T845 1637Q807 1637 785 1660T763 1716Z" />
+<glyph unicode="&#xcc;" horiz-adv-x="545" d="M334 0H211V1456H334V0ZM348 1566H239L13 1845H157L348 1566Z" />
+<glyph unicode="&#xcd;" horiz-adv-x="545" d="M334 0H211V1456H334V0ZM393 1845H538L307 1566H202L393 1845Z" />
+<glyph unicode="&#xce;" horiz-adv-x="545" d="M334 0H211V1456H334V0ZM553 1589V1579H442L274 1762L107 1579H-2V1592L236 1847H312L553 1589Z" />
+<glyph unicode="&#xcf;" horiz-adv-x="545" d="M334 0H211V1456H334V0ZM-19 1717Q-19 1751 2 1774T63 1798Q101 1798 123 1775T146 1717Q146 1684 124 1661T63 1638Q24 1638 3 1661T-19 1717ZM418 1716Q418 1750 440 1773T500 1797Q539 1797 561 1774T583 1716Q583
+1683 561 1660T500 1637Q462 1637 440 1660T418 1716Z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1371" d="M214 0V689H33V791H214V1456H621Q800 1456 942 1375T1163 1141T1243 795V661Q1243 466 1164 315T942 82T612 0H214ZM645 689H337V104H608Q843 104 982 256T1121 669V797Q1121 1048 984 1199T623 1351H337V791H645V689Z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1454" d="M1268 0H1145L308 1246V0H184V1456H308L1146 209V1456H1268V0ZM1067 1809Q1067 1713 1011 1655T872 1596Q796 1596 724 1651T594 1706Q547 1706 516 1675T484 1588L394 1591Q394 1683 448 1743T589 1803Q637 1803
+671 1786T735 1748T795 1710T867 1693Q913 1693 945 1726T978 1815L1067 1809Z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1386" d="M1260 649Q1260 448 1191 296T992 62T694 -20Q439 -20 282 162T125 655V805Q125 1004 195 1157T395 1393T692 1476T988 1395T1187 1166T1260 823V649ZM1137 807Q1137 1070 1018 1219T692 1368Q489 1368 369 1219T248
+801V649Q248 390 368 239T694 87Q903 87 1020 236T1137 653V807ZM765 1572H656L430 1851H574L765 1572Z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1386" d="M1260 649Q1260 448 1191 296T992 62T694 -20Q439 -20 282 162T125 655V805Q125 1004 195 1157T395 1393T692 1476T988 1395T1187 1166T1260 823V649ZM1137 807Q1137 1070 1018 1219T692 1368Q489 1368 369 1219T248
+801V649Q248 390 368 239T694 87Q903 87 1020 236T1137 653V807ZM811 1851H956L725 1572H620L811 1851Z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1386" d="M1260 649Q1260 448 1191 296T992 62T694 -20Q439 -20 282 162T125 655V805Q125 1004 195 1157T395 1393T692 1476T988 1395T1187 1166T1260 823V649ZM1137 807Q1137 1070 1018 1219T692 1368Q489 1368 369 1219T248
+801V649Q248 390 368 239T694 87Q903 87 1020 236T1137 653V807ZM970 1595V1585H859L691 1768L524 1585H415V1598L653 1853H729L970 1595Z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1386" d="M1260 649Q1260 448 1191 296T992 62T694 -20Q439 -20 282 162T125 655V805Q125 1004 195 1157T395 1393T692 1476T988 1395T1187 1166T1260 823V649ZM1137 807Q1137 1070 1018 1219T692 1368Q489 1368 369 1219T248
+801V649Q248 390 368 239T694 87Q903 87 1020 236T1137 653V807ZM1032 1821Q1032 1725 976 1667T837 1608Q761 1608 689 1663T559 1718Q512 1718 481 1687T449 1600L359 1603Q359 1695 413 1755T554 1815Q602 1815 636 1798T700 1760T760 1722T832 1705Q878 1705
+910 1738T943 1827L1032 1821Z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1386" d="M1260 649Q1260 448 1191 296T992 62T694 -20Q439 -20 282 162T125 655V805Q125 1004 195 1157T395 1393T692 1476T988 1395T1187 1166T1260 823V649ZM1137 807Q1137 1070 1018 1219T692 1368Q489 1368 369 1219T248
+801V649Q248 390 368 239T694 87Q903 87 1020 236T1137 653V807ZM398 1723Q398 1757 419 1780T480 1804Q518 1804 540 1781T563 1723Q563 1690 541 1667T480 1644Q441 1644 420 1667T398 1723ZM835 1722Q835 1756 857 1779T917 1803Q956 1803 978 1780T1000 1722Q1000
+1689 978 1666T917 1643Q879 1643 857 1666T835 1722Z" />
+<glyph unicode="&#xd7;" horiz-adv-x="1072" d="M93 179L451 544L108 894L187 974L529 624L872 974L951 894L608 544L966 179L887 100L529 464L172 100L93 179Z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1386" d="M1260 649Q1260 448 1191 296T992 62T694 -20Q508 -20 375 77L274 -83H170L307 134Q125 318 125 658V805Q125 1004 195 1157T395 1393T692 1476Q916 1476 1064 1336L1171 1505H1274L1125 1268Q1259 1088 1260 807V649ZM248
+649Q248 388 370 235L1002 1237Q883 1368 692 1368Q489 1368 369 1219T248 801V649ZM1137 807Q1137 1018 1057 1160L434 171Q541 87 694 87Q903 87 1020 236T1137 653V807Z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1346" d="M1187 1456V462Q1186 315 1122 206T942 39T674 -20Q444 -20 306 105T162 453V1456H284V471Q284 287 389 186T674 84T958 186T1063 470V1456H1187ZM756 1560H647L421 1839H565L756 1560Z" />
+<glyph unicode="&#xda;" horiz-adv-x="1346" d="M1187 1456V462Q1186 315 1122 206T942 39T674 -20Q444 -20 306 105T162 453V1456H284V471Q284 287 389 186T674 84T958 186T1063 470V1456H1187ZM802 1839H947L716 1560H611L802 1839Z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1346" d="M1187 1456V462Q1186 315 1122 206T942 39T674 -20Q444 -20 306 105T162 453V1456H284V471Q284 287 389 186T674 84T958 186T1063 470V1456H1187ZM961 1583V1573H850L682 1756L515 1573H406V1586L644 1841H720L961 1583Z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1346" d="M1187 1456V462Q1186 315 1122 206T942 39T674 -20Q444 -20 306 105T162 453V1456H284V471Q284 287 389 186T674 84T958 186T1063 470V1456H1187ZM389 1711Q389 1745 410 1768T471 1792Q509 1792 531 1769T554 1711Q554
+1678 532 1655T471 1632Q432 1632 411 1655T389 1711ZM826 1710Q826 1744 848 1767T908 1791Q947 1791 969 1768T991 1710Q991 1677 969 1654T908 1631Q870 1631 848 1654T826 1710Z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1226" d="M611 662L1056 1456H1198L672 548V0H549V548L24 1456H170L611 662ZM732 1833H877L646 1554H541L732 1833Z" />
+<glyph unicode="&#xde;" horiz-adv-x="1214" d="M303 1456V1152H628Q771 1152 877 1101T1039 956T1096 738Q1096 553 974 441T641 324H303V0H183V1456H303ZM303 1051V425H627Q784 425 880 510T976 736T885 961T642 1051H303Z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1200" d="M271 0H151V1127Q151 1327 246 1435T512 1544Q665 1544 760 1460T856 1237Q856 1179 843 1131T794 1019T746 913T733 824Q733 768 774 716T911 593T1051 454T1096 306Q1096 160 990 70T720 -20Q636 -20 545 4T414
+60L448 161Q485 132 562 106T706 80Q828 80 902 144T976 306Q976 367 932 423T797 547T659 681T613 826Q613 922 676 1034T739 1230Q739 1323 676 1382T522 1442Q275 1442 271 1136V0Z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1097" d="M839 0Q821 51 816 151Q753 69 656 25T449 -20Q293 -20 197 67T100 287Q100 445 231 537T598 629H815V752Q815 868 744 934T535 1001Q410 1001 328 937T246 783L126 784Q126 913 246 1007T541 1102Q722 1102 826
+1012T934 759V247Q934 90 967 12V0H839ZM463 86Q583 86 677 144T815 299V537H601Q422 535 321 472T220 297Q220 206 287 146T463 86ZM653 1245H544L318 1524H462L653 1245Z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1097" d="M839 0Q821 51 816 151Q753 69 656 25T449 -20Q293 -20 197 67T100 287Q100 445 231 537T598 629H815V752Q815 868 744 934T535 1001Q410 1001 328 937T246 783L126 784Q126 913 246 1007T541 1102Q722 1102 826
+1012T934 759V247Q934 90 967 12V0H839ZM463 86Q583 86 677 144T815 299V537H601Q422 535 321 472T220 297Q220 206 287 146T463 86ZM699 1524H844L613 1245H508L699 1524Z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1097" d="M839 0Q821 51 816 151Q753 69 656 25T449 -20Q293 -20 197 67T100 287Q100 445 231 537T598 629H815V752Q815 868 744 934T535 1001Q410 1001 328 937T246 783L126 784Q126 913 246 1007T541 1102Q722 1102 826
+1012T934 759V247Q934 90 967 12V0H839ZM463 86Q583 86 677 144T815 299V537H601Q422 535 321 472T220 297Q220 206 287 146T463 86ZM858 1268V1258H747L579 1441L412 1258H303V1271L541 1526H617L858 1268Z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1097" d="M839 0Q821 51 816 151Q753 69 656 25T449 -20Q293 -20 197 67T100 287Q100 445 231 537T598 629H815V752Q815 868 744 934T535 1001Q410 1001 328 937T246 783L126 784Q126 913 246 1007T541 1102Q722 1102 826
+1012T934 759V247Q934 90 967 12V0H839ZM463 86Q583 86 677 144T815 299V537H601Q422 535 321 472T220 297Q220 206 287 146T463 86ZM920 1494Q920 1398 864 1340T725 1281Q649 1281 577 1336T447 1391Q400 1391 369 1360T337 1273L247 1276Q247 1368 301 1428T442
+1488Q490 1488 524 1471T588 1433T648 1395T720 1378Q766 1378 798 1411T831 1500L920 1494Z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1097" d="M839 0Q821 51 816 151Q753 69 656 25T449 -20Q293 -20 197 67T100 287Q100 445 231 537T598 629H815V752Q815 868 744 934T535 1001Q410 1001 328 937T246 783L126 784Q126 913 246 1007T541 1102Q722 1102 826
+1012T934 759V247Q934 90 967 12V0H839ZM463 86Q583 86 677 144T815 299V537H601Q422 535 321 472T220 297Q220 206 287 146T463 86ZM286 1396Q286 1430 307 1453T368 1477Q406 1477 428 1454T451 1396Q451 1363 429 1340T368 1317Q329 1317 308 1340T286 1396ZM723
+1395Q723 1429 745 1452T805 1476Q844 1476 866 1453T888 1395Q888 1362 866 1339T805 1316Q767 1316 745 1339T723 1395Z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1097" d="M839 0Q821 51 816 151Q753 69 656 25T449 -20Q293 -20 197 67T100 287Q100 445 231 537T598 629H815V752Q815 868 744 934T535 1001Q410 1001 328 937T246 783L126 784Q126 913 246 1007T541 1102Q722 1102 826
+1012T934 759V247Q934 90 967 12V0H839ZM463 86Q583 86 677 144T815 299V537H601Q422 535 321 472T220 297Q220 206 287 146T463 86ZM387 1400Q387 1480 443 1535T580 1590Q659 1590 716 1535T773 1400Q773 1321 718 1267T580 1213T442 1267T387 1400ZM464 1400Q464
+1350 497 1317T580 1284Q629 1284 663 1316T697 1400Q697 1453 662 1486T580 1519Q531 1519 498 1485T464 1400Z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1732" d="M1265 -20Q1126 -20 1027 34T867 186Q807 88 693 34T440 -20Q271 -20 178 64T85 293Q85 450 195 539T511 632H781V720Q781 852 718 926T528 1000Q398 1000 315 935T232 765L113 778Q113 922 229 1012T528 1102Q653
+1102 741 1049T870 889Q930 989 1024 1045T1235 1102Q1431 1102 1543 982T1658 644V538H901V509Q901 308 997 195T1265 81Q1450 81 1589 199L1636 112Q1491 -20 1265 -20ZM458 80Q549 80 642 126T781 236V536H525Q388 536 302 475T207 309L206 289Q206 192 271
+136T458 80ZM1235 1000Q1103 1000 1013 902T904 636H1539V667Q1539 821 1459 910T1235 1000Z" />
+<glyph unicode="&#xe7;" horiz-adv-x="1055" d="M556 81Q681 81 765 151T857 334H972Q967 235 910 154T759 26T556 -20Q343 -20 219 128T94 526V562Q94 722 150 845T310 1035T555 1102Q733 1102 848 996T972 717H857Q849 844 766 922T555 1000Q393 1000 304 883T214
+555V520Q214 313 303 197T556 81ZM589 -9L577 -73Q742 -94 742 -244Q742 -336 663 -390T448 -444L441 -366Q530 -366 586 -334T643 -246Q643 -188 600 -166T467 -136L496 -9H589Z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1058" d="M575 -20Q437 -20 326 48T152 237T90 510V553Q90 709 150 834T319 1030T553 1102Q750 1102 865 968T981 600V533H209V510Q209 326 314 204T580 81Q676 81 749 116T883 228L958 171Q826 -20 575 -20ZM553 1000Q418
+1000 326 901T213 635H862V648Q857 804 773 902T553 1000ZM640 1245H531L305 1524H449L640 1245Z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1058" d="M575 -20Q437 -20 326 48T152 237T90 510V553Q90 709 150 834T319 1030T553 1102Q750 1102 865 968T981 600V533H209V510Q209 326 314 204T580 81Q676 81 749 116T883 228L958 171Q826 -20 575 -20ZM553 1000Q418
+1000 326 901T213 635H862V648Q857 804 773 902T553 1000ZM686 1524H831L600 1245H495L686 1524Z" />
+<glyph unicode="&#xea;" horiz-adv-x="1058" d="M575 -20Q437 -20 326 48T152 237T90 510V553Q90 709 150 834T319 1030T553 1102Q750 1102 865 968T981 600V533H209V510Q209 326 314 204T580 81Q676 81 749 116T883 228L958 171Q826 -20 575 -20ZM553 1000Q418
+1000 326 901T213 635H862V648Q857 804 773 902T553 1000ZM845 1268V1258H734L566 1441L399 1258H290V1271L528 1526H604L845 1268Z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1058" d="M575 -20Q437 -20 326 48T152 237T90 510V553Q90 709 150 834T319 1030T553 1102Q750 1102 865 968T981 600V533H209V510Q209 326 314 204T580 81Q676 81 749 116T883 228L958 171Q826 -20 575 -20ZM553 1000Q418
+1000 326 901T213 635H862V648Q857 804 773 902T553 1000ZM273 1396Q273 1430 294 1453T355 1477Q393 1477 415 1454T438 1396Q438 1363 416 1340T355 1317Q316 1317 295 1340T273 1396ZM710 1395Q710 1429 732 1452T792 1476Q831 1476 853 1453T875 1395Q875 1362
+853 1339T792 1316Q754 1316 732 1339T710 1395Z" />
+<glyph unicode="&#xec;" horiz-adv-x="456" d="M288 0H168V1082H288V0ZM305 1233H196L-30 1512H114L305 1233Z" />
+<glyph unicode="&#xed;" horiz-adv-x="456" d="M288 0H168V1082H288V0ZM350 1768H495L264 1489H159L350 1768Z" />
+<glyph unicode="&#xee;" horiz-adv-x="456" d="M288 0H168V1082H288V0ZM510 1256V1246H399L231 1429L64 1246H-45V1259L193 1514H269L510 1256Z" />
+<glyph unicode="&#xef;" horiz-adv-x="456" d="M288 0H168V1082H288V0ZM-62 1384Q-62 1418 -41 1441T20 1465Q58 1465 80 1442T103 1384Q103 1351 81 1328T20 1305Q-19 1305 -40 1328T-62 1384ZM375 1383Q375 1417 397 1440T457 1464Q496 1464 518 1441T540 1383Q540
+1350 518 1327T457 1304Q419 1304 397 1327T375 1383Z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1191" d="M811 1303Q1049 1053 1055 645V535Q1055 376 999 249T842 51T615 -20Q485 -20 379 41T211 216T149 466Q149 695 268 830T587 965Q687 965 773 927T919 821Q877 1072 709 1240L484 1101L433 1174L639 1302Q502 1408
+296 1475L335 1578Q577 1506 744 1366L938 1487L989 1414L811 1303ZM935 625L933 682Q894 765 807 813T609 861Q448 861 359 756T269 466Q269 363 314 274T438 134T619 83Q760 83 847 207T935 543V625Z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1125" d="M270 1082L274 897Q335 997 426 1049T627 1102Q801 1102 886 1004T972 710V0H853V711Q852 856 792 927T598 998Q487 998 402 929T275 741V0H156V1082H270ZM916 1493Q916 1397 860 1339T721 1280Q645 1280 573 1335T443
+1390Q396 1390 365 1359T333 1272L243 1275Q243 1367 297 1427T438 1487Q486 1487 520 1470T584 1432T644 1394T716 1377Q762 1377 794 1410T827 1499L916 1493Z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1147" d="M90 557Q90 713 150 838T321 1032T572 1102Q788 1102 922 951T1056 549V524Q1056 367 996 242T825 48T574 -20Q359 -20 225 131T90 533V557ZM210 524Q210 330 310 206T574 81Q736 81 836 205T937 534V557Q937 681
+891 784T762 943T572 1000Q412 1000 311 875T210 546V524ZM645 1245H536L310 1524H454L645 1245Z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1147" d="M90 557Q90 713 150 838T321 1032T572 1102Q788 1102 922 951T1056 549V524Q1056 367 996 242T825 48T574 -20Q359 -20 225 131T90 533V557ZM210 524Q210 330 310 206T574 81Q736 81 836 205T937 534V557Q937 681
+891 784T762 943T572 1000Q412 1000 311 875T210 546V524ZM691 1524H836L605 1245H500L691 1524Z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1147" d="M90 557Q90 713 150 838T321 1032T572 1102Q788 1102 922 951T1056 549V524Q1056 367 996 242T825 48T574 -20Q359 -20 225 131T90 533V557ZM210 524Q210 330 310 206T574 81Q736 81 836 205T937 534V557Q937 681
+891 784T762 943T572 1000Q412 1000 311 875T210 546V524ZM850 1268V1258H739L571 1441L404 1258H295V1271L533 1526H609L850 1268Z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1147" d="M90 557Q90 713 150 838T321 1032T572 1102Q788 1102 922 951T1056 549V524Q1056 367 996 242T825 48T574 -20Q359 -20 225 131T90 533V557ZM210 524Q210 330 310 206T574 81Q736 81 836 205T937 534V557Q937 681
+891 784T762 943T572 1000Q412 1000 311 875T210 546V524ZM912 1493Q912 1397 856 1339T717 1280Q641 1280 569 1335T439 1390Q392 1390 361 1359T329 1272L239 1275Q239 1367 293 1427T434 1487Q482 1487 516 1470T580 1432T640 1394T712 1377Q758 1377 790 1410T823
+1499L912 1493Z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1147" d="M90 557Q90 713 150 838T321 1032T572 1102Q788 1102 922 951T1056 549V524Q1056 367 996 242T825 48T574 -20Q359 -20 225 131T90 533V557ZM210 524Q210 330 310 206T574 81Q736 81 836 205T937 534V557Q937 681
+891 784T762 943T572 1000Q412 1000 311 875T210 546V524ZM278 1396Q278 1430 299 1453T360 1477Q398 1477 420 1454T443 1396Q443 1363 421 1340T360 1317Q321 1317 300 1340T278 1396ZM715 1395Q715 1429 737 1452T797 1476Q836 1476 858 1453T880 1395Q880 1362
+858 1339T797 1316Q759 1316 737 1339T715 1395Z" />
+<glyph unicode="&#xf7;" horiz-adv-x="1164" d="M1070 644H72V760H1070V644ZM495 1088Q495 1123 517 1147T579 1171T642 1147T665 1088T642 1030T579 1006T517 1029T495 1088ZM495 291Q495 326 517 350T579 374T642 350T665 291T642 233T579 210T517 233T495 291Z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1140" d="M89 557Q89 713 149 838T320 1032T571 1102Q685 1102 785 1054L863 1214H957L857 1010Q951 938 1003 821T1055 557V524Q1055 368 994 242T823 48T573 -20Q465 -20 373 21L294 -140H200L299 63Q199 134 144 253T89
+524V557ZM208 524Q208 414 243 319T348 163L737 957Q662 1000 571 1000Q410 1000 309 875T208 546V524ZM935 557Q935 660 902 751T806 905L419 115Q487 81 573 81Q734 81 834 205T935 534V557Z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1125" d="M852 137Q744 -20 507 -20Q334 -20 244 80T152 378V1082H271V393Q271 84 521 84Q781 84 850 299V1082H970V0H854L852 137ZM647 1245H538L312 1524H456L647 1245Z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1125" d="M852 137Q744 -20 507 -20Q334 -20 244 80T152 378V1082H271V393Q271 84 521 84Q781 84 850 299V1082H970V0H854L852 137ZM693 1524H838L607 1245H502L693 1524Z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1125" d="M852 137Q744 -20 507 -20Q334 -20 244 80T152 378V1082H271V393Q271 84 521 84Q781 84 850 299V1082H970V0H854L852 137ZM852 1268V1258H741L573 1441L406 1258H297V1271L535 1526H611L852 1268Z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1125" d="M852 137Q744 -20 507 -20Q334 -20 244 80T152 378V1082H271V393Q271 84 521 84Q781 84 850 299V1082H970V0H854L852 137ZM280 1396Q280 1430 301 1453T362 1477Q400 1477 422 1454T445 1396Q445 1363 423 1340T362
+1317Q323 1317 302 1340T280 1396ZM717 1395Q717 1429 739 1452T799 1476Q838 1476 860 1453T882 1395Q882 1362 860 1339T799 1316Q761 1316 739 1339T717 1395Z" />
+<glyph unicode="&#xfd;" horiz-adv-x="973" d="M499 172L815 1082H944L482 -184L458 -240Q369 -437 183 -437Q140 -437 91 -423L90 -324L152 -330Q240 -330 294 -287T387 -137L440 9L32 1082H163L499 172ZM633 1524H778L547 1245H442L633 1524Z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1150" d="M1031 530Q1031 277 919 129T618 -20Q397 -20 279 136V-416H159V1536H279V932Q396 1102 616 1102Q808 1102 919 956T1031 548V530ZM911 551Q911 758 826 878T589 998Q479 998 400 945T279 791V270Q321 180 400 131T591
+81Q742 81 826 201T911 551Z" />
+<glyph unicode="&#xff;" horiz-adv-x="973" d="M499 172L815 1082H944L482 -184L458 -240Q369 -437 183 -437Q140 -437 91 -423L90 -324L152 -330Q240 -330 294 -287T387 -137L440 9L32 1082H163L499 172ZM220 1396Q220 1430 241 1453T302 1477Q340 1477 362 1454T385
+1396Q385 1363 363 1340T302 1317Q263 1317 242 1340T220 1396ZM657 1395Q657 1429 679 1452T739 1476Q778 1476 800 1453T822 1395Q822 1362 800 1339T739 1316Q701 1316 679 1339T657 1395Z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1334" d="M1417 686H415V788H1417V686Z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1580" d="M1462 686H126V788H1462V686Z" />
+<glyph unicode="&#x2018;" horiz-adv-x="364" d="M238 1554L310 1503Q220 1385 217 1249V1121H98V1233Q98 1325 135 1410T238 1554Z" />
+<glyph unicode="&#x2019;" horiz-adv-x="364" d="M133 1099L62 1151Q152 1272 155 1405V1536H273V1435Q273 1226 133 1099Z" />
+<glyph unicode="&#x201a;" horiz-adv-x="353" d="M112 -231L41 -179Q124 -68 132 51L133 205H252V104Q252 -104 112 -231Z" />
+<glyph unicode="&#x201c;" horiz-adv-x="612" d="M239 1554L311 1503Q221 1385 218 1249V1121H99V1233Q99 1325 136 1410T239 1554ZM490 1554L562 1503Q472 1385 469 1249V1121H350V1233Q350 1325 387 1410T490 1554Z" />
+<glyph unicode="&#x201d;" horiz-adv-x="617" d="M139 1099L68 1151Q158 1272 161 1405V1536H279V1435Q279 1226 139 1099ZM383 1099L312 1151Q402 1272 405 1405V1536H523V1435Q523 1226 383 1099Z" />
+<glyph unicode="&#x201e;" horiz-adv-x="593" d="M112 -240L41 -188Q130 -65 133 73V236H252V106Q252 -111 112 -240ZM346 -240L275 -188Q363 -66 366 73V236H486V106Q486 -111 346 -240Z" />
+<glyph unicode="&#x2022;" horiz-adv-x="662" d="M146 752Q146 831 197 881T331 931Q413 931 464 883T517 757V717Q517 636 466 588T332 540Q248 540 197 589T146 719V752Z" />
+<glyph unicode="&#x2039;" horiz-adv-x="609" d="M232 555L508 167H403L108 546V565L403 944H508L232 555Z" />
+<glyph unicode="&#x203a;" horiz-adv-x="609" d="M203 944L498 560V541L203 162H97L373 550L97 944H203Z" />
+</font>
+</defs>
+</svg>
diff --git a/src/docs/fonts/roboto-v15-latin-300.ttf b/src/docs/fonts/roboto-v15-latin-300.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..66bc5ab8e299e9948a6fce6b7867cc638bc703c7
GIT binary patch
diff --git a/src/docs/fonts/roboto-v15-latin-300.woff b/src/docs/fonts/roboto-v15-latin-300.woff
new file mode 100644
index 0000000000000000000000000000000000000000..7e6c479f2cc2fde6b324f1e3f1dc16b9c8d64e36
GIT binary patch
diff --git a/src/docs/fonts/roboto-v15-latin-300.woff2 b/src/docs/fonts/roboto-v15-latin-300.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..c34c128065cbeee902296858fc0fc97860766212
GIT binary patch
diff --git a/src/docs/fonts/roboto-v15-latin-700.eot b/src/docs/fonts/roboto-v15-latin-700.eot
new file mode 100644
index 0000000000000000000000000000000000000000..f89cad7b7f9c64a64c33ff2d27d52be1c28131a9
GIT binary patch
diff --git a/src/docs/fonts/roboto-v15-latin-700.svg b/src/docs/fonts/roboto-v15-latin-700.svg
new file mode 100644
index 0000000..fc8d42f
--- /dev/null
+++ b/src/docs/fonts/roboto-v15-latin-700.svg
@@ -0,0 +1,310 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg">
+<defs >
+<font id="Roboto" horiz-adv-x="1186" ><font-face
+    font-family="Roboto"
+    units-per-em="2048"
+    panose-1="2 0 0 0 0 0 0 0 0 0"
+    ascent="1900"
+    descent="-500"
+    alphabetic="0" />
+<glyph unicode=" " horiz-adv-x="510" />
+<glyph unicode="!" horiz-adv-x="557" d="M405 447H165L131 1456H439L405 447ZM285 289Q358 289 402 246T447 136Q447 70 403 27T285 -16Q213 -16 169 27T124 136T168 245T285 289Z" />
+<glyph unicode="&quot;" horiz-adv-x="657" d="M266 1398L226 987H64V1536H266V1398ZM591 1398L552 987H390V1536H591V1398Z" />
+<glyph unicode="#" horiz-adv-x="1220" d="M667 410H474L402 0H219L291 410H64V582H321L371 866H139V1040H402L475 1456H657L584 1040H778L851 1456H1034L961 1040H1180V866H930L880 582H1104V410H850L778 0H595L667 410ZM504 582H697L747 866H553L504 582Z" />
+<glyph unicode="$" horiz-adv-x="1175" d="M790 383Q790 465 745 513T590 603T402 684T267 777T179 901T147 1070Q147 1239 255 1347T542 1473V1687H702V1470Q879 1445 979 1323T1079 1005H790Q790 1125 741 1184T608 1244Q526 1244 481 1198T436 1069Q436 993
+480 947T643 853T840 763T970 667T1051 545T1079 385Q1079 215 973 109T681 -16V-215H522V-17Q317 5 205 128T92 457H381Q381 338 437 275T600 211Q688 211 739 257T790 383Z" />
+<glyph unicode="%" horiz-adv-x="1512" d="M95 1176Q95 1310 182 1393T410 1477Q553 1477 640 1395T727 1171V1099Q727 964 640 882T412 800Q270 800 183 882T95 1105V1176ZM287 1099Q287 1039 321 1003T412 966T501 1003T534 1102V1176Q534 1236 501 1273T410
+1310Q355 1310 321 1274T287 1172V1099ZM791 357Q791 492 879 574T1107 657Q1249 657 1336 576T1424 351V279Q1424 145 1338 63T1109 -20Q965 -20 878 63T791 283V357ZM983 279Q983 224 1019 185T1109 146Q1231 146 1231 281V357Q1231 417 1197 453T1107 490T1017
+454T983 354V279ZM469 109L328 185L1039 1323L1180 1247L469 109Z" />
+<glyph unicode="&amp;" horiz-adv-x="1344" d="M71 392Q71 493 127 579T335 770Q270 857 233 933T196 1093Q196 1263 303 1369T593 1476Q756 1476 860 1379T965 1137Q965 963 789 830L677 749L928 457Q987 573 987 713H1233Q1233 429 1102 253L1320 0H992L917
+86Q756 -20 547 -20Q331 -20 201 93T71 392ZM561 212Q665 212 758 270L471 602L450 587Q361 511 361 408Q361 321 416 267T561 212ZM455 1097Q455 1022 543 908L620 959Q679 997 701 1033T724 1119T687 1206T592 1243Q530 1243 493 1203T455 1097Z" />
+<glyph unicode="&apos;" horiz-adv-x="331" d="M275 1389L246 985H63V1536H275V1389Z" />
+<glyph unicode="(" horiz-adv-x="719" d="M124 592Q124 821 185 1028T365 1394T623 1616L679 1460Q533 1352 451 1126T369 598V567Q369 264 450 37T679 -302L623 -455Q487 -394 370 -240T190 117T124 539V592Z" />
+<glyph unicode=")" horiz-adv-x="722" d="M609 569Q609 343 544 134T357 -235T96 -455L40 -302Q182 -195 264 28T349 541V594Q349 893 268 1121T40 1463L96 1616Q232 1557 352 1402T539 1041T609 614V569Z" />
+<glyph unicode="*" horiz-adv-x="928" d="M341 962L27 1051L86 1232L397 1107L377 1456H573L553 1100L856 1223L915 1040L595 951L805 685L646 572L464 864L284 582L125 690L341 962Z" />
+<glyph unicode="+" horiz-adv-x="1118" d="M694 815H1055V554H694V146H419V554H57V815H419V1206H694V815Z" />
+<glyph unicode="," horiz-adv-x="500" d="M186 -365L35 -286L71 -221Q138 -99 140 22V246H384L383 46Q382 -65 327 -178T186 -365Z" />
+<glyph unicode="-" horiz-adv-x="794" d="M673 507H110V740H673V507Z" />
+<glyph unicode="." horiz-adv-x="595" d="M126 142Q126 211 172 254T289 297Q360 297 406 254T453 142Q453 74 407 32T289 -11Q218 -11 172 31T126 142Z" />
+<glyph unicode="/" horiz-adv-x="765" d="M202 -125H-13L523 1456H738L202 -125Z" />
+<glyph unicode="0" horiz-adv-x="1175" d="M1079 602Q1079 300 954 140T588 -20Q350 -20 224 137T95 587V855Q95 1160 221 1318T586 1476T950 1320T1079 870V602ZM790 896Q790 1077 741 1159T586 1242Q484 1242 436 1164T384 918V564Q384 386 432 300T588 213Q694
+213 741 296T790 550V896Z" />
+<glyph unicode="1" horiz-adv-x="1175" d="M801 0H512V1114L167 1007V1242L770 1458H801V0Z" />
+<glyph unicode="2" horiz-adv-x="1175" d="M1097 0H99V198L570 700Q667 806 713 885T760 1035Q760 1132 711 1187T571 1243Q473 1243 417 1176T360 998H70Q70 1131 133 1241T313 1413T576 1476Q801 1476 925 1368T1050 1063Q1050 955 994 843T802 582L471 233H1097V0Z" />
+<glyph unicode="3" horiz-adv-x="1175" d="M393 856H547Q657 856 710 911T763 1057Q763 1145 711 1194T566 1243Q483 1243 427 1198T371 1079H82Q82 1193 143 1283T315 1425T559 1476Q790 1476 921 1366T1052 1061Q1052 961 991 877T831 748Q954 704 1014 616T1075
+408Q1075 214 934 97T559 -20Q341 -20 203 95T64 399H353Q353 317 414 265T566 213Q669 213 727 267T786 412Q786 630 546 630H393V856Z" />
+<glyph unicode="4" horiz-adv-x="1175" d="M954 548H1119V315H954V0H665V315H68L55 497L662 1456H954V548ZM343 548H665V1062L646 1029L343 548Z" />
+<glyph unicode="5" horiz-adv-x="1175" d="M142 716L226 1456H1042V1215H463L427 902Q530 957 646 957Q854 957 972 828T1090 467Q1090 326 1031 215T860 42T598 -20Q466 -20 353 33T175 184T105 405H391Q400 314 454 264T597 213Q695 213 748 283T801 483Q801
+607 740 673T567 739Q464 739 400 685L372 659L142 716Z" />
+<glyph unicode="6" horiz-adv-x="1175" d="M883 1471V1233H855Q659 1230 540 1131T396 856Q512 974 689 974Q879 974 991 838T1103 480Q1103 338 1042 223T868 44T613 -20Q383 -20 242 140T100 567V671Q100 908 189 1089T446 1370T835 1471H883ZM601 742Q531 742
+474 706T390 609V521Q390 376 447 295T607 213Q700 213 757 286T815 477Q815 596 757 669T601 742Z" />
+<glyph unicode="7" horiz-adv-x="1175" d="M1089 1294L526 0H221L785 1222H61V1456H1089V1294Z" />
+<glyph unicode="8" horiz-adv-x="1175" d="M1048 1069Q1048 963 995 881T849 750Q955 699 1017 610T1079 399Q1079 205 947 93T588 -20T228 93T95 399Q95 520 157 610T324 750Q231 799 179 881T126 1069Q126 1255 250 1365T587 1476Q799 1476 923 1367T1048 1069ZM789
+420Q789 515 734 572T586 629Q494 629 439 573T384 420Q384 327 438 270T588 213Q682 213 735 268T789 420ZM759 1055Q759 1140 714 1191T587 1243Q506 1243 461 1193T416 1055Q416 968 461 915T588 862T714 915T759 1055Z" />
+<glyph unicode="9" horiz-adv-x="1175" d="M775 582Q662 471 511 471Q318 471 202 603T86 961Q86 1104 148 1223T323 1409T575 1476Q719 1476 831 1404T1005 1197T1068 888V781Q1068 417 887 209T374 -13L303 -14V227L367 228Q744 245 775 582ZM582 692Q652 692
+702 728T779 815V934Q779 1081 723 1162T573 1243Q486 1243 430 1164T374 964Q374 845 428 769T582 692Z" />
+<glyph unicode=":" horiz-adv-x="578" d="M381 142Q381 211 427 254T544 297Q615 297 661 254T708 142Q708 74 662 32T544 -11Q473 -11 427 31T381 142ZM125 961Q125 1030 171 1073T288 1116Q359 1116 405 1073T452 961Q452 893 406 851T288 808Q217 808 171 850T125
+961Z" />
+<glyph unicode=";" horiz-adv-x="537" d="M108 961Q108 1030 154 1073T271 1116Q342 1116 388 1073T435 961Q435 893 389 851T271 808Q200 808 154 850T108 961ZM208 -365L57 -286L93 -221Q160 -99 162 22V246H406L405 46Q404 -65 349 -178T208 -365Z" />
+<glyph unicode="&lt;" horiz-adv-x="1042" d="M345 618L915 417V137L54 502V738L915 1103V823L345 618Z" />
+<glyph unicode="=" horiz-adv-x="1172" d="M1030 746H136V982H1030V746ZM1030 313H136V549H1030V313Z" />
+<glyph unicode="&gt;" horiz-adv-x="1058" d="M701 621L120 824V1102L991 737V502L120 136V415L701 621Z" />
+<glyph unicode="?" horiz-adv-x="1019" d="M347 447Q347 587 381 670T505 833T626 964T656 1071Q656 1240 500 1240Q426 1240 382 1195T335 1069H45Q47 1260 168 1368T500 1476Q712 1476 829 1374T946 1084Q946 999 908 924T775 756L694 679Q618 606 607 508L603
+447H347ZM318 140Q318 207 363 250T480 294T596 251T642 140Q642 74 598 31T480 -12T363 31T318 140Z" />
+<glyph unicode="@" horiz-adv-x="1833" d="M1749 536Q1738 280 1623 130T1312 -21Q1226 -21 1164 16T1069 122Q969 -18 808 -18Q662 -18 582 105T522 430Q540 595 605 723T771 921T987 990Q1130 990 1231 924L1294 881L1243 303Q1233 224 1260 182T1348 140Q1440
+140 1502 247T1570 529Q1587 878 1430 1065T963 1253Q770 1253 619 1155T381 877T283 463Q267 109 425 -84T898 -278Q981 -278 1072 -260T1229 -210L1267 -364Q1206 -404 1103 -428T894 -453Q630 -453 444 -347T167 -33T87 463Q99 739 213 958T523 1296T967 1416Q1218
+1416 1399 1309T1670 1001T1749 536ZM744 430Q733 298 767 230T877 161Q926 161 970 204T1043 328L1085 801Q1046 814 1005 814Q890 814 827 716T744 430Z" />
+<glyph unicode="A" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543Z" />
+<glyph unicode="B" horiz-adv-x="1307" d="M130 0V1456H640Q905 1456 1042 1355T1179 1057Q1179 950 1124 869T971 749Q1083 721 1147 636T1212 428Q1212 218 1078 110T696 0H130ZM430 634V241H687Q793 241 852 291T912 431Q912 631 705 634H430ZM430 846H652Q879
+850 879 1027Q879 1126 822 1169T640 1213H430V846Z" />
+<glyph unicode="C" horiz-adv-x="1340" d="M1273 485Q1256 250 1100 115T687 -20Q407 -20 247 168T86 686V775Q86 985 160 1145T371 1390T691 1476Q943 1476 1097 1341T1275 962H975Q964 1103 897 1166T691 1230Q541 1230 467 1123T390 789V679Q390 443 461 334T687
+225Q826 225 894 288T973 485H1273Z" />
+<glyph unicode="D" horiz-adv-x="1331" d="M130 0V1456H578Q770 1456 921 1370T1158 1124T1243 761V694Q1243 491 1160 333T924 88T581 0H130ZM430 1213V241H575Q751 241 844 356T939 685V762Q939 984 847 1098T578 1213H430Z" />
+<glyph unicode="E" horiz-adv-x="1152" d="M1006 631H430V241H1106V0H130V1456H1104V1213H430V866H1006V631Z" />
+<glyph unicode="F" horiz-adv-x="1122" d="M1006 595H430V0H130V1456H1078V1213H430V837H1006V595Z" />
+<glyph unicode="G" horiz-adv-x="1395" d="M1282 184Q1201 87 1053 34T725 -20Q536 -20 394 62T174 302T94 671V770Q94 988 167 1147T379 1391T704 1476Q963 1476 1109 1353T1282 993H990Q970 1118 902 1176T713 1234Q560 1234 480 1119T399 777V684Q399 455 486
+338T741 221Q910 221 982 293V544H709V765H1282V184Z" />
+<glyph unicode="H" horiz-adv-x="1447" d="M1315 0H1015V624H430V0H130V1456H430V866H1015V1456H1315V0Z" />
+<glyph unicode="I" horiz-adv-x="597" d="M449 0H149V1456H449V0Z" />
+<glyph unicode="J" horiz-adv-x="1144" d="M717 1456H1017V448Q1017 309 956 203T782 38T529 -20Q298 -20 169 97T40 430H342Q342 323 387 272T529 221Q615 221 666 280T717 448V1456Z" />
+<glyph unicode="K" horiz-adv-x="1300" d="M586 584L430 416V0H130V1456H430V796L562 977L933 1456H1302L785 809L1317 0H960L586 584Z" />
+<glyph unicode="L" horiz-adv-x="1109" d="M430 241H1067V0H130V1456H430V241Z" />
+<glyph unicode="M" horiz-adv-x="1794" d="M522 1456L896 400L1268 1456H1662V0H1361V398L1391 1085L998 0H792L400 1084L430 398V0H130V1456H522Z" />
+<glyph unicode="N" horiz-adv-x="1446" d="M1314 0H1014L430 958V0H130V1456H430L1015 496V1456H1314V0Z" />
+<glyph unicode="O" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473 1111T390
+766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761Z" />
+<glyph unicode="P" horiz-adv-x="1321" d="M430 513V0H130V1456H698Q862 1456 986 1396T1178 1226T1245 974Q1245 760 1099 637T693 513H430ZM430 756H698Q817 756 879 812T942 972Q942 1079 879 1145T705 1213H430V756Z" />
+<glyph unicode="Q" horiz-adv-x="1414" d="M1324 695Q1324 491 1258 341T1075 99L1317 -91L1126 -260L816 -11Q763 -20 706 -20Q525 -20 383 67T163 315T84 687V759Q84 974 161 1137T380 1388T704 1476T1027 1389T1246 1138T1324 760V695ZM1020 761Q1020 990 938
+1109T704 1228Q553 1228 471 1111T388 766V695Q388 472 470 349T706 226Q857 226 938 344T1020 690V761Z" />
+<glyph unicode="R" horiz-adv-x="1307" d="M669 533H430V0H130V1456H671Q929 1456 1069 1341T1209 1016Q1209 867 1145 768T949 609L1264 14V0H942L669 533ZM430 776H672Q785 776 847 833T909 992Q909 1095 851 1154T671 1213H430V776Z" />
+<glyph unicode="S" horiz-adv-x="1259" d="M885 382Q885 467 825 512T609 608T362 708Q114 842 114 1069Q114 1187 180 1279T371 1424T651 1476Q807 1476 929 1420T1118 1260T1186 1026H886Q886 1126 823 1181T646 1237Q536 1237 475 1191T414 1068Q414 997 485
+949T696 859Q952 782 1069 668T1186 384Q1186 195 1043 88T658 -20Q490 -20 352 41T142 210T69 458H370Q370 217 658 217Q765 217 825 260T885 382Z" />
+<glyph unicode="T" horiz-adv-x="1267" d="M1226 1213H780V0H480V1213H40V1456H1226V1213Z" />
+<glyph unicode="U" horiz-adv-x="1348" d="M1232 1456V497Q1232 258 1083 119T674 -20Q419 -20 269 115T116 486V1456H416V495Q416 352 484 287T674 221Q927 221 931 487V1456H1232Z" />
+<glyph unicode="V" horiz-adv-x="1339" d="M668 361L998 1456H1332L825 0H512L7 1456H340L668 361Z" />
+<glyph unicode="W" horiz-adv-x="1791" d="M1264 420L1460 1456H1759L1436 0H1134L897 974L660 0H358L35 1456H334L531 422L771 1456H1025L1264 420Z" />
+<glyph unicode="X" horiz-adv-x="1301" d="M651 954L924 1456H1269L845 734L1280 0H931L651 510L371 0H22L457 734L33 1456H378L651 954Z" />
+<glyph unicode="Y" horiz-adv-x="1266" d="M632 800L935 1456H1263L785 528V0H480V528L2 1456H331L632 800Z" />
+<glyph unicode="Z" horiz-adv-x="1241" d="M448 241H1182V0H73V176L793 1213H74V1456H1166V1284L448 241Z" />
+<glyph unicode="[" horiz-adv-x="569" d="M552 1471H410V-116H552V-339H120V1694H552V1471Z" />
+<glyph unicode="\" horiz-adv-x="864" d="M0 1456H295L903 -125H607L0 1456Z" />
+<glyph unicode="]" horiz-adv-x="569" d="M13 1694H445V-339H13V-116H156V1471H13V1694Z" />
+<glyph unicode="^" horiz-adv-x="895" d="M448 1186L274 729H44L343 1456H553L852 729H623L448 1186Z" />
+<glyph unicode="_" horiz-adv-x="914" d="M912 -226H1V0H912V-226Z" />
+<glyph unicode="`" horiz-adv-x="677" d="M565 1226H328L52 1536H367L565 1226Z" />
+<glyph unicode="a" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987 719V250Q988
+96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201Z" />
+<glyph unicode="b" horiz-adv-x="1153" d="M1086 531Q1086 271 975 126T665 -20Q489 -20 384 115L371 0H111V1536H400V985Q500 1102 663 1102Q861 1102 973 957T1086 547V531ZM797 552Q797 716 745 791T590 867Q452 867 400 754V327Q453 213 592 213Q732 213 776
+351Q797 417 797 552Z" />
+<glyph unicode="c" horiz-adv-x="1068" d="M561 213Q641 213 691 257T743 374H1014Q1013 264 954 173T793 31T566 -20Q334 -20 200 127T66 535V554Q66 804 199 953T564 1102Q767 1102 889 987T1014 679H743Q741 763 691 815T559 868Q458 868 407 795T355 556V526Q355
+359 406 286T561 213Z" />
+<glyph unicode="d" horiz-adv-x="1154" d="M66 549Q66 802 179 952T490 1102Q648 1102 751 984V1536H1041V0H780L766 115Q658 -20 488 -20Q297 -20 182 130T66 549ZM355 528Q355 376 408 295T562 214Q696 214 751 327V754Q697 867 564 867Q355 867 355 528Z" />
+<glyph unicode="e" horiz-adv-x="1107" d="M609 -20Q371 -20 222 126T72 515V543Q72 706 135 834T313 1032T577 1102Q799 1102 926 962T1054 565V447H365Q379 341 449 277T628 213Q795 213 889 334L1031 175Q966 83 855 32T609 -20ZM576 868Q490 868 437 810T368
+644H770V667Q768 763 718 815T576 868Z" />
+<glyph unicode="f" horiz-adv-x="734" d="M190 0V870H29V1082H190V1174Q190 1356 294 1456T587 1557Q647 1557 734 1537L731 1313Q695 1322 643 1322Q480 1322 480 1169V1082H695V870H480V0H190Z" />
+<glyph unicode="g" horiz-adv-x="1169" d="M69 549Q69 798 187 950T507 1102Q685 1102 784 980L796 1082H1058V36Q1058 -106 994 -211T812 -371T538 -426Q419 -426 306 -379T135 -256L263 -80Q371 -201 525 -201Q640 -201 704 -140T768 35V93Q668 -20 505 -20Q310
+-20 190 132T69 537V549ZM358 528Q358 381 417 298T579 214Q711 214 768 313V768Q710 867 581 867Q477 867 418 782T358 528Z" />
+<glyph unicode="h" horiz-adv-x="1146" d="M393 964Q508 1102 682 1102Q1034 1102 1039 693V0H750V685Q750 778 710 822T577 867Q450 867 393 769V0H104V1536H393V964Z" />
+<glyph unicode="i" horiz-adv-x="543" d="M416 0H126V1082H416V0ZM109 1362Q109 1427 152 1469T271 1511Q345 1511 389 1469T433 1362Q433 1296 389 1254T271 1212T154 1254T109 1362Z" />
+<glyph unicode="j" horiz-adv-x="532" d="M417 1082V-59Q417 -238 322 -337T48 -437Q-27 -437 -95 -420V-191Q-43 -200 -4 -200Q127 -200 127 -61V1082H417ZM104 1362Q104 1427 147 1469T266 1511T384 1469T428 1362Q428 1296 384 1254T266 1212T149 1254T104 1362Z" />
+<glyph unicode="k" horiz-adv-x="1094" d="M504 434L400 330V0H111V1536H400V685L456 757L733 1082H1080L689 631L1114 0H782L504 434Z" />
+<glyph unicode="l" horiz-adv-x="543" d="M416 0H126V1536H416V0Z" />
+<glyph unicode="m" horiz-adv-x="1773" d="M382 1082L391 961Q506 1102 702 1102Q911 1102 989 937Q1103 1102 1314 1102Q1490 1102 1576 1000T1662 691V0H1372V690Q1372 782 1336 824T1209 867Q1079 867 1029 743L1030 0H741V689Q741 783 704 825T578 867Q455
+867 400 765V0H111V1082H382Z" />
+<glyph unicode="n" horiz-adv-x="1147" d="M377 1082L386 957Q502 1102 697 1102Q869 1102 953 1001T1039 699V0H750V692Q750 784 710 825T577 867Q455 867 394 763V0H105V1082H377Z" />
+<glyph unicode="o" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577 868Q471
+868 413 786T355 530Z" />
+<glyph unicode="p" horiz-adv-x="1153" d="M1085 531Q1085 281 972 131T665 -20Q501 -20 400 94V-416H111V1082H379L389 976Q494 1102 663 1102Q863 1102 974 954T1085 546V531ZM796 552Q796 703 743 785T587 867Q451 867 400 763V320Q453 213 589 213Q796 213 796 552Z" />
+<glyph unicode="q" horiz-adv-x="1157" d="M66 551Q66 806 179 954T491 1102Q665 1102 768 969L787 1082H1041V-416H751V93Q651 -20 489 -20Q296 -20 181 130T66 551ZM355 530Q355 375 409 294T563 213Q696 213 751 319V766Q697 868 565 868Q465 868 410 787T355 530Z" />
+<glyph unicode="r" horiz-adv-x="747" d="M719 811Q660 819 615 819Q451 819 400 708V0H111V1082H384L392 953Q479 1102 633 1102Q681 1102 723 1089L719 811Z" />
+<glyph unicode="s" horiz-adv-x="1053" d="M697 299Q697 352 645 382T476 437Q90 518 90 765Q90 909 209 1005T522 1102Q728 1102 851 1005T975 753H686Q686 815 646 855T521 896Q448 896 408 863T368 779Q368 731 413 702T567 651T749 602Q978 518 978 311Q978
+163 851 72T523 -20Q387 -20 282 28T116 161T56 344H330Q334 267 387 226T529 185Q612 185 654 216T697 299Z" />
+<glyph unicode="t" horiz-adv-x="692" d="M457 1348V1082H642V870H457V330Q457 270 480 244T568 218Q616 218 653 225V6Q568 -20 478 -20Q174 -20 168 287V870H10V1082H168V1348H457Z" />
+<glyph unicode="u" horiz-adv-x="1146" d="M759 110Q652 -20 463 -20Q289 -20 198 80T104 373V1082H393V383Q393 214 547 214Q694 214 749 316V1082H1039V0H767L759 110Z" />
+<glyph unicode="v" horiz-adv-x="1035" d="M516 353L717 1082H1019L654 0H378L13 1082H315L516 353Z" />
+<glyph unicode="w" horiz-adv-x="1505" d="M1052 393L1194 1082H1473L1197 0H955L750 681L545 0H304L28 1082H307L448 394L646 1082H855L1052 393Z" />
+<glyph unicode="x" horiz-adv-x="1042" d="M523 759L705 1082H1014L706 552L1027 0H717L524 340L332 0H21L342 552L35 1082H345L523 759Z" />
+<glyph unicode="y" horiz-adv-x="1028" d="M515 409L715 1082H1025L590 -168L566 -225Q469 -437 246 -437Q183 -437 118 -418V-199L162 -200Q244 -200 284 -175T348 -92L382 -3L3 1082H314L515 409Z" />
+<glyph unicode="z" horiz-adv-x="1042" d="M443 233H972V0H74V176L583 848H89V1082H956V911L443 233Z" />
+<glyph unicode="{" horiz-adv-x="676" d="M586 -360Q226 -259 226 105V304Q226 515 48 515V722Q222 722 226 921V1133Q226 1318 316 1432T586 1597L642 1436Q566 1408 527 1339T486 1146V936Q486 710 307 619Q486 527 486 300V88Q491 -146 642 -198L586 -360Z" />
+<glyph unicode="|" horiz-adv-x="518" d="M348 -270H173V1456H348V-270Z" />
+<glyph unicode="}" horiz-adv-x="676" d="M34 -198Q186 -144 190 92V304Q190 530 373 618Q190 706 190 937V1146Q186 1379 34 1436L90 1597Q269 1547 359 1434T450 1136V921Q454 722 628 722V515Q450 515 450 306V89Q442 -261 90 -360L34 -198Z" />
+<glyph unicode="~" horiz-adv-x="1328" d="M1221 793Q1221 607 1128 491T888 375Q814 375 751 403T604 511T451 591Q393 591 357 541T321 413L106 415Q106 601 196 714T437 827Q515 827 579 797T724 690T873 612Q932 612 969 665T1007 794L1221 793Z" />
+<glyph unicode="&#xa0;" horiz-adv-x="510" />
+<glyph unicode="&#xa1;" horiz-adv-x="578" d="M170 639H411L444 -369H137L170 639ZM452 948Q452 881 406 838T290 795T174 838T128 948T172 1058T290 1101T407 1058T452 948Z" />
+<glyph unicode="&#xa2;" horiz-adv-x="1178" d="M594 213Q674 213 724 257T776 374H1048Q1046 229 950 124T698 -11V-245H498V-12Q311 18 205 162T99 532V554Q99 772 204 917T498 1094V1318H698V1093Q861 1064 953 953T1048 679H776Q774 765 724 816T593 868Q491
+868 440 794T388 559V526Q388 358 439 286T594 213Z" />
+<glyph unicode="&#xa3;" horiz-adv-x="1217" d="M564 576L570 437Q570 314 508 241H1161V0H102V241H194Q266 259 266 420L261 576H99V812H253L246 1039Q246 1241 369 1358T700 1475Q912 1475 1033 1363T1154 1058H867Q867 1143 824 1188T699 1233Q633 1233 590
+1184T546 1039L555 812H864V576H564Z" />
+<glyph unicode="&#xa4;" horiz-adv-x="1418" d="M1073 107Q914 -20 712 -20Q509 -20 351 106L222 -26L81 118L216 255Q116 411 116 608Q116 812 225 973L81 1120L222 1264L364 1119Q519 1234 712 1234Q906 1234 1061 1117L1205 1265L1347 1120L1199 969Q1306 810
+1306 608Q1306 415 1208 259L1347 118L1205 -27L1073 107ZM302 608Q302 490 356 389T505 229T712 170Q822 170 917 228T1067 388T1121 608Q1121 727 1067 827T918 986T712 1044Q600 1044 505 986T356 828T302 608Z" />
+<glyph unicode="&#xa5;" horiz-adv-x="1254" d="M626 850L903 1456H1232L857 742H1091V567H772V452H1091V278H772V0H472V278H136V452H472V567H136V742H396L20 1456H350L626 850Z" />
+<glyph unicode="&#xa6;" horiz-adv-x="516" d="M128 -270V525H388V-270H128ZM388 698H128V1456H388V698Z" />
+<glyph unicode="&#xa7;" horiz-adv-x="1287" d="M1180 481Q1180 299 1018 210Q1153 108 1153 -78Q1153 -253 1016 -352T636 -452Q379 -452 236 -345T92 -35L381 -34Q381 -123 445 -170T636 -218Q748 -218 806 -181T864 -80Q864 -15 800 26T553 117T278 223T140
+353T94 534Q94 714 256 807Q120 910 120 1095Q120 1266 260 1371T640 1476Q887 1476 1023 1363T1159 1049H870Q870 1136 809 1189T640 1243Q530 1243 470 1204T410 1097Q410 1024 465 987T706 901T988 797T1133 666T1180 481ZM458 704Q383 662 383 563Q383 494
+424 457T590 379L812 312Q894 359 894 452Q894 514 849 553T685 633L458 704Z" />
+<glyph unicode="&#xa8;" horiz-adv-x="956" d="M93 1365Q93 1419 131 1455T231 1492Q293 1492 331 1455T369 1365T331 1276T231 1239Q172 1239 133 1274T93 1365ZM580 1365Q580 1418 619 1455T718 1492Q776 1492 816 1456T857 1365Q857 1313 819 1276T718 1238T618
+1275T580 1365Z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1606" d="M1117 596Q1117 444 1030 363T782 282T528 388T433 675V788Q433 962 528 1068T782 1175Q945 1175 1031 1093T1118 861H962Q962 957 916 998T782 1040Q690 1040 640 973T588 792V669Q588 552 639 485T782 417Q871
+417 916 457T961 596H1117ZM1383 729Q1383 895 1308 1037T1096 1265T796 1351Q637 1351 501 1269T286 1043T208 729T285 415T499 188T796 104T1093 189T1307 418T1383 729ZM86 729Q86 931 179 1104T438 1376T796 1476T1153 1377T1412 1104T1506 729Q1506 525 1411
+352T1152 79T796 -20Q603 -20 439 80T180 353T86 729Z" />
+<glyph unicode="&#xaa;" horiz-adv-x="909" d="M604 705Q594 732 587 773Q510 691 386 691Q268 691 203 752T137 919Q137 1029 221 1089T478 1150H580V1201Q580 1328 464 1328Q399 1328 363 1303T326 1229L153 1243Q153 1347 240 1411T464 1476Q599 1476 677 1404T755
+1199V883Q755 786 781 705H604ZM429 835Q469 835 511 853T580 897V1033H474Q398 1032 355 1002T312 923Q312 835 429 835Z" />
+<glyph unicode="&#xab;" horiz-adv-x="1023" d="M559 524L799 125H613L333 515V534L613 924H799L559 524ZM688 524L928 125H742L462 515V534L742 924H928L688 524Z" />
+<glyph unicode="&#xac;" horiz-adv-x="1129" d="M961 374H761V634H126V805H961V374Z" />
+<glyph unicode="&#xad;" horiz-adv-x="794" d="M673 507H110V740H673V507Z" />
+<glyph unicode="&#xae;" horiz-adv-x="1606" d="M86 729Q86 931 179 1104T438 1376T796 1476T1153 1377T1412 1104T1506 729Q1506 525 1411 352T1152 79T796 -20Q603 -20 439 80T180 353T86 729ZM1383 729Q1383 895 1308 1037T1096 1265T796 1351Q637 1351 501
+1269T286 1043T208 729T285 415T499 188T796 104T1093 189T1307 418T1383 729ZM652 653V316H501V1166H782Q933 1166 1020 1098T1107 903Q1107 791 994 729Q1055 698 1079 643T1104 505T1107 389T1121 332V316H966Q953 350 953 510Q953 586 920 619T810 653H652ZM652
+787H788Q862 787 909 819T957 903Q957 973 922 1002T793 1033H652V787Z" />
+<glyph unicode="&#xaf;" horiz-adv-x="1026" d="M878 1290H148V1457H878V1290Z" />
+<glyph unicode="&#xb0;" horiz-adv-x="795" d="M126 1200Q126 1314 207 1395T398 1476Q507 1476 586 1396T666 1200T587 1007T398 928Q290 928 208 1006T126 1200ZM398 1076Q451 1076 485 1111T520 1200Q520 1252 486 1290T398 1328T309 1290T273 1200T309 1112T398
+1076Z" />
+<glyph unicode="&#xb1;" horiz-adv-x="1100" d="M677 942H1005V701H677V337H424V701H89V942H424V1285H677V942ZM977 1H113V236H977V1Z" />
+<glyph unicode="&#xb2;" horiz-adv-x="763" d="M693 667H73V805L360 1062Q416 1111 440 1153T465 1218Q465 1302 370 1302Q320 1302 291 1271T261 1193H55Q55 1309 140 1388T361 1467Q509 1467 589 1403T670 1219Q670 1149 634 1091T490 946L342 831H693V667Z" />
+<glyph unicode="&#xb3;" horiz-adv-x="763" d="M273 1136H355Q474 1136 474 1224Q474 1259 446 1280T368 1301Q326 1301 297 1286T267 1241H62Q62 1343 146 1404T362 1466Q507 1466 592 1407T678 1240Q678 1121 543 1071Q693 1030 693 887Q693 782 602 719T362
+655Q220 655 134 721T48 902H254Q254 868 288 844T374 819Q434 819 460 845T487 907Q487 999 365 1000H273V1136Z" />
+<glyph unicode="&#xb4;" horiz-adv-x="679" d="M298 1536H613L336 1226H101L298 1536Z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1261" d="M428 1082V459Q428 333 468 274T608 214Q757 214 813 319V1082H1102V0H833L827 68Q738 -21 602 -21Q500 -21 428 24V-416H139V1082H428Z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1003" d="M650 0V520H570Q340 520 208 647T75 988Q75 1201 208 1328T571 1456H869V0H650Z" />
+<glyph unicode="&#xb7;" horiz-adv-x="617" d="M140 697Q140 766 186 809T303 852T420 809T467 697T420 586T303 543Q231 543 186 586T140 697Z" />
+<glyph unicode="&#xb8;" horiz-adv-x="548" d="M345 7L334 -51Q484 -78 484 -224Q484 -334 393 -398T135 -462L128 -295Q240 -295 240 -214Q240 -172 207 -157T98 -136L129 7H345Z" />
+<glyph unicode="&#xb9;" horiz-adv-x="763" d="M528 669H324V1217L135 1176V1334L509 1455H528V669Z" />
+<glyph unicode="&#xba;" horiz-adv-x="936" d="M118 1121Q118 1281 213 1378T464 1476T715 1379T811 1116V1044Q811 885 717 788T466 690Q308 690 213 788T118 1049V1121ZM293 1044Q293 946 339 891T466 836Q544 836 589 890T636 1041V1121Q636 1218 590 1273T464
+1328Q386 1328 340 1274T293 1117V1044Z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1023" d="M272 923L552 533V514L272 124H85L325 523L85 923H272ZM665 923L945 533V514L665 124H478L718 523L478 923H665Z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1470" d="M494 664H290V1212L101 1171V1329L475 1450H494V664ZM458 117L317 193L1028 1331L1169 1255L458 117ZM1302 326H1390V159H1302V0H1097V159H751L739 294L1096 789H1302V326ZM935 326H1097V538L1083 516L935 326Z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1559" d="M416 117L275 193L986 1331L1127 1255L416 117ZM477 670H273V1218L84 1177V1335L458 1456H477V670ZM1477 0H857V138L1144 395Q1200 444 1224 486T1249 551Q1249 635 1154 635Q1104 635 1075 604T1045 526H839Q839
+642 924 721T1145 800Q1293 800 1373 736T1454 552Q1454 482 1418 424T1274 279L1126 164H1477V0Z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1655" d="M619 117L478 193L1189 1331L1330 1255L619 117ZM1460 326H1548V159H1460V0H1255V159H909L897 294L1254 789H1460V326ZM1093 326H1255V538L1241 516L1093 326ZM319 1137H401Q520 1137 520 1225Q520 1260 492 1281T414
+1302Q372 1302 343 1287T313 1242H108Q108 1344 192 1405T408 1467Q553 1467 638 1408T724 1241Q724 1122 589 1072Q739 1031 739 888Q739 783 648 720T408 656Q266 656 180 722T94 903H300Q300 869 334 845T420 820Q480 820 506 846T533 908Q533 1000 411 1001H319V1137Z"
+/>
+<glyph unicode="&#xbf;" horiz-adv-x="1019" d="M666 643Q666 510 635 428T525 272T417 162T374 89T359 8Q359 -149 513 -149Q590 -149 635 -104T683 22H972Q970 -170 849 -277T518 -385Q305 -385 187 -284T69 6Q69 165 222 318L319 411Q369 456 388 505T410 643H666ZM702
+949Q702 882 656 839T540 796T424 839T378 949T422 1059T540 1102T657 1059T702 949Z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM836 1536H599L323 1846H638L836 1536Z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM750 1846H1065L788 1536H553L750 1846Z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM1076 1566V1554H846L692 1699L538 1554H312V1570L608 1846H776L1076 1566Z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM1068 1832Q1068 1719 1002 1643T841 1566Q803 1566 774 1574T692 1611T617 1645T567 1652Q532 1652 508 1627T483 1556L315
+1566Q315 1677 380 1755T541 1833Q571 1833 597 1826T684 1789T767 1754T815 1748Q850 1748 875 1772T901 1843L1068 1832Z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM309 1675Q309 1729 347 1765T447 1802Q509 1802 547 1765T585 1675T547 1586T447 1549Q388 1549 349 1584T309 1675ZM796
+1675Q796 1728 835 1765T934 1802Q992 1802 1032 1766T1073 1675Q1073 1623 1035 1586T934 1548T834 1585T796 1675Z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1378" d="M952 300H426L326 0H7L549 1456H827L1372 0H1053L952 300ZM507 543H871L688 1088L507 543ZM470 1730Q470 1816 535 1875T693 1935Q785 1935 850 1877T916 1730Q916 1645 852 1587T693 1529Q596 1529 533 1588T470
+1730ZM585 1730Q585 1686 614 1655T693 1623T772 1654T801 1730Q801 1776 772 1807T693 1839T615 1808T585 1730Z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1925" d="M1865 0H968L954 333H508L341 0H2L788 1456H1804V1220H1206L1221 865H1723V629H1231L1247 235H1865V0ZM633 580H944L920 1150L633 580Z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1340" d="M1273 485Q1256 250 1100 115T687 -20Q407 -20 247 168T86 686V775Q86 985 160 1145T371 1390T691 1476Q943 1476 1097 1341T1275 962H975Q964 1103 897 1166T691 1230Q541 1230 467 1123T390 789V679Q390 443 461
+334T687 225Q826 225 894 288T973 485H1273ZM797 6L786 -52Q936 -79 936 -225Q936 -335 845 -399T587 -463L580 -296Q692 -296 692 -215Q692 -173 659 -158T550 -137L581 6H797Z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1152" d="M1006 631H430V241H1106V0H130V1456H1104V1213H430V866H1006V631ZM779 1539H542L266 1849H581L779 1539Z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1152" d="M1006 631H430V241H1106V0H130V1456H1104V1213H430V866H1006V631ZM693 1849H1008L731 1539H496L693 1849Z" />
+<glyph unicode="&#xca;" horiz-adv-x="1152" d="M1006 631H430V241H1106V0H130V1456H1104V1213H430V866H1006V631ZM1019 1569V1557H789L635 1702L481 1557H255V1573L551 1849H719L1019 1569Z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1152" d="M1006 631H430V241H1106V0H130V1456H1104V1213H430V866H1006V631ZM252 1678Q252 1732 290 1768T390 1805Q452 1805 490 1768T528 1678T490 1589T390 1552Q331 1552 292 1587T252 1678ZM739 1678Q739 1731 778 1768T877
+1805Q935 1805 975 1769T1016 1678Q1016 1626 978 1589T877 1551T777 1588T739 1678Z" />
+<glyph unicode="&#xcc;" horiz-adv-x="597" d="M449 0H149V1456H449V0ZM443 1539H206L-70 1849H245L443 1539Z" />
+<glyph unicode="&#xcd;" horiz-adv-x="597" d="M449 0H149V1456H449V0ZM356 1849H671L394 1539H159L356 1849Z" />
+<glyph unicode="&#xce;" horiz-adv-x="597" d="M449 0H149V1456H449V0ZM683 1569V1557H453L299 1702L145 1557H-81V1573L215 1849H383L683 1569Z" />
+<glyph unicode="&#xcf;" horiz-adv-x="597" d="M449 0H149V1456H449V0ZM-84 1678Q-84 1732 -46 1768T54 1805Q116 1805 154 1768T192 1678T154 1589T54 1552Q-5 1552 -44 1587T-84 1678ZM403 1678Q403 1731 442 1768T541 1805Q599 1805 639 1769T680 1678Q680
+1626 642 1589T541 1551T441 1588T403 1678Z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1361" d="M160 0V642H-20V825H160V1456H608Q800 1456 951 1370T1188 1124T1273 761V694Q1273 491 1190 333T954 88T611 0H160ZM679 642H460V241H605Q783 241 876 358T969 694V762Q969 984 877 1098T608 1213H460V825H679V642Z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1446" d="M1314 0H1014L430 958V0H130V1456H430L1015 496V1456H1314V0ZM1102 1832Q1102 1719 1036 1643T875 1566Q837 1566 808 1574T726 1611T651 1645T601 1652Q566 1652 542 1627T517 1556L349 1566Q349 1677 414 1755T575
+1833Q605 1833 631 1826T718 1789T801 1754T849 1748Q884 1748 909 1772T935 1843L1102 1832Z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473
+1111T390 766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761ZM850 1536H613L337 1846H652L850 1536Z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473
+1111T390 766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761ZM764 1846H1079L802 1536H567L764 1846Z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473
+1111T390 766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761ZM1090 1566V1554H860L706 1699L552 1554H326V1570L622 1846H790L1090 1566Z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473
+1111T390 766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761ZM1082 1832Q1082 1719 1016 1643T855 1566Q817 1566 788 1574T706 1611T631 1645T581 1652Q546 1652 522 1627T497 1556L329 1566Q329 1677 394 1755T555 1833Q585 1833 611 1826T698 1789T781
+1754T829 1748Q864 1748 889 1772T915 1843L1082 1832Z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1414" d="M1326 695Q1326 480 1250 318T1033 68T708 -20Q527 -20 385 67T165 315T86 687V759Q86 974 163 1137T382 1388T706 1476T1029 1389T1248 1138T1326 760V695ZM1022 761Q1022 990 940 1109T706 1228Q555 1228 473
+1111T390 766V695Q390 472 472 349T708 226Q859 226 940 344T1022 690V761ZM323 1675Q323 1729 361 1765T461 1802Q523 1802 561 1765T599 1675T561 1586T461 1549Q402 1549 363 1584T323 1675ZM810 1675Q810 1728 849 1765T948 1802Q1006 1802 1046 1766T1087
+1675Q1087 1623 1049 1586T948 1548T848 1585T810 1675Z" />
+<glyph unicode="&#xd7;" horiz-adv-x="1088" d="M65 373L372 686L65 999L235 1167L539 856L844 1167L1014 999L707 686L1014 373L844 205L539 515L235 205L65 373Z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1411" d="M1333 695Q1333 480 1257 318T1040 68T715 -20Q551 -20 420 50L335 -95H147L290 147Q93 342 93 702V759Q93 974 170 1137T389 1388T713 1476Q888 1476 1027 1394L1101 1518H1288L1154 1291Q1333 1093 1333 754V695ZM397
+695Q397 523 446 410L893 1167Q820 1228 713 1228Q562 1228 480 1111T397 766V695ZM1030 761Q1030 912 992 1017L552 273Q622 226 715 226Q866 226 947 344T1030 690V761Z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1348" d="M1232 1456V497Q1232 258 1083 119T674 -20Q419 -20 269 115T116 486V1456H416V495Q416 352 484 287T674 221Q927 221 931 487V1456H1232ZM814 1536H577L301 1846H616L814 1536Z" />
+<glyph unicode="&#xda;" horiz-adv-x="1348" d="M1232 1456V497Q1232 258 1083 119T674 -20Q419 -20 269 115T116 486V1456H416V495Q416 352 484 287T674 221Q927 221 931 487V1456H1232ZM728 1846H1043L766 1536H531L728 1846Z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1348" d="M1232 1456V497Q1232 258 1083 119T674 -20Q419 -20 269 115T116 486V1456H416V495Q416 352 484 287T674 221Q927 221 931 487V1456H1232ZM1054 1566V1554H824L670 1699L516 1554H290V1570L586 1846H754L1054 1566Z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1348" d="M1232 1456V497Q1232 258 1083 119T674 -20Q419 -20 269 115T116 486V1456H416V495Q416 352 484 287T674 221Q927 221 931 487V1456H1232ZM287 1675Q287 1729 325 1765T425 1802Q487 1802 525 1765T563 1675T525
+1586T425 1549Q366 1549 327 1584T287 1675ZM774 1675Q774 1728 813 1765T912 1802Q970 1802 1010 1766T1051 1675Q1051 1623 1013 1586T912 1548T812 1585T774 1675Z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1266" d="M632 800L935 1456H1263L785 528V0H480V528L2 1456H331L632 800ZM693 1846H1008L731 1536H496L693 1846Z" />
+<glyph unicode="&#xde;" horiz-adv-x="1246" d="M422 1456V1189H652Q814 1188 933 1133T1117 975T1181 738Q1181 536 1043 414T664 287H422V0H133V1456H422ZM422 956V520H645Q762 520 827 579T892 736T829 894T653 956H422Z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1292" d="M424 0H135V1101Q135 1321 259 1440T609 1559Q800 1559 915 1460T1031 1189Q1031 1081 978 994T924 830Q924 793 954 754T1073 636Q1224 502 1224 354Q1224 177 1109 79T779 -20Q698 -20 619 -4T500 36L554 265Q652
+213 773 213Q852 213 894 249T936 349Q936 395 902 438T785 548Q635 668 635 818Q635 914 690 1004T745 1174Q745 1244 701 1285T588 1327Q429 1327 424 1114V0Z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987
+719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM695 1226H458L182 1536H497L695 1226Z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987
+719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM609 1536H924L647 1226H412L609 1536Z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987
+719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM935 1256V1244H705L551 1389L397 1244H171V1260L467 1536H635L935 1256Z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987
+719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM927 1779Q927 1666 861 1590T700 1513Q662 1513 633 1521T551 1558T476 1592T426 1599Q391 1599 367 1574T342 1503L174 1513Q174 1624
+239 1702T400 1780Q430 1780 456 1773T543 1736T626 1701T674 1695Q709 1695 734 1719T760 1790L927 1779Z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987
+719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM168 1365Q168 1419 206 1455T306 1492Q368 1492 406 1455T444 1365T406 1276T306 1239Q247 1239 208 1274T168 1365ZM655 1365Q655
+1418 694 1455T793 1492Q851 1492 891 1456T932 1365Q932 1313 894 1276T793 1238T693 1275T655 1365Z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1098" d="M738 0Q718 39 709 97Q604 -20 436 -20Q277 -20 173 72T68 304Q68 476 195 568T564 661H697V723Q697 798 659 843T537 888Q464 888 423 853T381 757H92Q92 851 150 931T314 1056T552 1102Q752 1102 869 1002T987
+719V250Q988 96 1030 17V0H738ZM499 201Q563 201 617 229T697 306V492H589Q372 492 358 342L357 325Q357 271 395 236T499 201ZM329 1420Q329 1506 394 1565T552 1625Q644 1625 709 1567T775 1420Q775 1335 711 1277T552 1219Q455 1219 392 1278T329 1420ZM444
+1420Q444 1376 473 1345T552 1313T631 1344T660 1420Q660 1466 631 1497T552 1529T474 1498T444 1420Z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1729" d="M1246 -20Q999 -20 860 127Q796 58 694 19T466 -20Q280 -20 173 69T66 319Q66 476 190 562T557 649H725V706Q725 782 685 825T567 868Q485 868 438 833T390 745L101 764Q101 913 231 1007T570 1102Q781 1102 897
+992Q1023 1104 1223 1102Q1435 1102 1556 971T1677 607V450H1009Q1020 334 1089 273T1276 212Q1353 212 1418 228T1571 289L1648 100Q1575 44 1468 12T1246 -20ZM521 192Q570 192 628 214T725 272V461H561Q466 460 411 418T355 315Q355 259 395 226T521 192ZM1223
+868Q1133 868 1079 811T1011 644H1393V672Q1393 766 1350 817T1223 868Z" />
+<glyph unicode="&#xe7;" horiz-adv-x="1068" d="M561 213Q641 213 691 257T743 374H1014Q1013 264 954 173T793 31T566 -20Q334 -20 200 127T66 535V554Q66 804 199 953T564 1102Q767 1102 889 987T1014 679H743Q741 763 691 815T559 868Q458 868 407 795T355
+556V526Q355 359 406 286T561 213ZM666 6L655 -52Q805 -79 805 -225Q805 -335 714 -399T456 -463L449 -296Q561 -296 561 -215Q561 -173 528 -158T419 -137L450 6H666Z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1107" d="M609 -20Q371 -20 222 126T72 515V543Q72 706 135 834T313 1032T577 1102Q799 1102 926 962T1054 565V447H365Q379 341 449 277T628 213Q795 213 889 334L1031 175Q966 83 855 32T609 -20ZM576 868Q490 868 437
+810T368 644H770V667Q768 763 718 815T576 868ZM688 1226H451L175 1536H490L688 1226Z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1107" d="M609 -20Q371 -20 222 126T72 515V543Q72 706 135 834T313 1032T577 1102Q799 1102 926 962T1054 565V447H365Q379 341 449 277T628 213Q795 213 889 334L1031 175Q966 83 855 32T609 -20ZM576 868Q490 868 437
+810T368 644H770V667Q768 763 718 815T576 868ZM602 1536H917L640 1226H405L602 1536Z" />
+<glyph unicode="&#xea;" horiz-adv-x="1107" d="M609 -20Q371 -20 222 126T72 515V543Q72 706 135 834T313 1032T577 1102Q799 1102 926 962T1054 565V447H365Q379 341 449 277T628 213Q795 213 889 334L1031 175Q966 83 855 32T609 -20ZM576 868Q490 868 437
+810T368 644H770V667Q768 763 718 815T576 868ZM928 1256V1244H698L544 1389L390 1244H164V1260L460 1536H628L928 1256Z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1107" d="M609 -20Q371 -20 222 126T72 515V543Q72 706 135 834T313 1032T577 1102Q799 1102 926 962T1054 565V447H365Q379 341 449 277T628 213Q795 213 889 334L1031 175Q966 83 855 32T609 -20ZM576 868Q490 868 437
+810T368 644H770V667Q768 763 718 815T576 868ZM161 1365Q161 1419 199 1455T299 1492Q361 1492 399 1455T437 1365T399 1276T299 1239Q240 1239 201 1274T161 1365ZM648 1365Q648 1418 687 1455T786 1492Q844 1492 884 1456T925 1365Q925 1313 887 1276T786 1238T686
+1275T648 1365Z" />
+<glyph unicode="&#xec;" horiz-adv-x="561" d="M423 0H134V1082H423V0ZM425 1211H188L-88 1521H227L425 1211Z" />
+<glyph unicode="&#xed;" horiz-adv-x="561" d="M423 0H134V1082H423V0ZM338 1777H653L376 1467H141L338 1777Z" />
+<glyph unicode="&#xee;" horiz-adv-x="561" d="M423 0H134V1082H423V0ZM665 1241V1229H435L281 1374L127 1229H-99V1245L197 1521H365L665 1241Z" />
+<glyph unicode="&#xef;" horiz-adv-x="561" d="M423 0H134V1082H423V0ZM-102 1350Q-102 1404 -64 1440T36 1477Q98 1477 136 1440T174 1350T136 1261T36 1224Q-23 1224 -62 1259T-102 1350ZM385 1350Q385 1403 424 1440T523 1477Q581 1477 621 1441T662 1350Q662
+1298 624 1261T523 1223T423 1260T385 1350Z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1178" d="M849 1305Q1104 1043 1105 651V577Q1105 405 1039 268T853 56T587 -20Q443 -20 328 43T149 219T84 468Q84 699 207 832T536 966Q672 966 780 890Q731 1042 614 1155L423 1033L345 1147L497 1244Q381 1316 233 1355L324
+1579Q562 1531 740 1399L911 1508L988 1394L849 1305ZM816 663Q748 746 601 746Q488 746 431 672T373 468Q373 356 433 285T591 213Q694 213 755 303T816 552V663Z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1147" d="M377 1082L386 957Q502 1102 697 1102Q869 1102 953 1001T1039 699V0H750V692Q750 784 710 825T577 867Q455 867 394 763V0H105V1082H377ZM951 1779Q951 1666 885 1590T724 1513Q686 1513 657 1521T575 1558T500
+1592T450 1599Q415 1599 391 1574T366 1503L198 1513Q198 1624 263 1702T424 1780Q454 1780 480 1773T567 1736T650 1701T698 1695Q733 1695 758 1719T784 1790L951 1779Z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577
+868Q471 868 413 786T355 530ZM720 1226H483L207 1536H522L720 1226Z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577
+868Q471 868 413 786T355 530ZM634 1536H949L672 1226H437L634 1536Z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577
+868Q471 868 413 786T355 530ZM960 1256V1244H730L576 1389L422 1244H196V1260L492 1536H660L960 1256Z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577
+868Q471 868 413 786T355 530ZM952 1779Q952 1666 886 1590T725 1513Q687 1513 658 1521T576 1558T501 1592T451 1599Q416 1599 392 1574T367 1503L199 1513Q199 1624 264 1702T425 1780Q455 1780 481 1773T568 1736T651 1701T699 1695Q734 1695 759 1719T785 1790L952
+1779Z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1158" d="M66 551Q66 712 128 838T306 1033T577 1102Q796 1102 934 968T1089 604L1091 530Q1091 281 952 131T579 -20T206 130T66 538V551ZM355 530Q355 376 413 295T579 213Q684 213 743 293T802 551Q802 702 743 785T577
+868Q471 868 413 786T355 530ZM193 1365Q193 1419 231 1455T331 1492Q393 1492 431 1455T469 1365T431 1276T331 1239Q272 1239 233 1274T193 1365ZM680 1365Q680 1418 719 1455T818 1492Q876 1492 916 1456T957 1365Q957 1313 919 1276T818 1238T718 1275T680
+1365Z" />
+<glyph unicode="&#xf7;" horiz-adv-x="1168" d="M1091 571H63V801H1091V571ZM415 1089Q415 1157 460 1199T578 1241Q649 1241 695 1200T742 1089Q742 1022 697 981T578 939Q503 939 459 981T415 1089ZM415 277Q415 345 460 387T578 429Q649 429 695 388T742 277Q742
+210 697 169T578 127Q503 127 459 169T415 277Z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1156" d="M66 551Q66 712 128 838T306 1033T577 1102Q678 1102 763 1073L833 1216H994L891 1005Q1091 856 1091 530Q1091 281 952 131T579 -20Q484 -20 403 6L331 -142H170L273 70Q66 216 66 551ZM355 530Q355 400 396 322L656
+854Q620 868 577 868Q471 868 413 786T355 530ZM802 551Q802 665 765 747L509 223Q539 213 579 213Q684 213 743 293T802 551Z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1146" d="M759 110Q652 -20 463 -20Q289 -20 198 80T104 373V1082H393V383Q393 214 547 214Q694 214 749 316V1082H1039V0H767L759 110ZM716 1226H479L203 1536H518L716 1226Z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1146" d="M759 110Q652 -20 463 -20Q289 -20 198 80T104 373V1082H393V383Q393 214 547 214Q694 214 749 316V1082H1039V0H767L759 110ZM630 1536H945L668 1226H433L630 1536Z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1146" d="M759 110Q652 -20 463 -20Q289 -20 198 80T104 373V1082H393V383Q393 214 547 214Q694 214 749 316V1082H1039V0H767L759 110ZM956 1256V1244H726L572 1389L418 1244H192V1260L488 1536H656L956 1256Z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1146" d="M759 110Q652 -20 463 -20Q289 -20 198 80T104 373V1082H393V383Q393 214 547 214Q694 214 749 316V1082H1039V0H767L759 110ZM189 1365Q189 1419 227 1455T327 1492Q389 1492 427 1455T465 1365T427 1276T327 1239Q268
+1239 229 1274T189 1365ZM676 1365Q676 1418 715 1455T814 1492Q872 1492 912 1456T953 1365Q953 1313 915 1276T814 1238T714 1275T676 1365Z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1028" d="M515 409L715 1082H1025L590 -168L566 -225Q469 -437 246 -437Q183 -437 118 -418V-199L162 -200Q244 -200 284 -175T348 -92L382 -3L3 1082H314L515 409ZM578 1536H893L616 1226H381L578 1536Z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1162" d="M1087 531Q1087 281 974 131T667 -20Q503 -20 403 93V-416H113V1536H403V989Q503 1102 665 1102Q863 1102 975 955T1087 545V531ZM798 552Q798 703 745 785T589 867Q457 867 403 765V318Q457 213 591 213Q798 213 798 552Z" />
+<glyph unicode="&#xff;" horiz-adv-x="1028" d="M515 409L715 1082H1025L590 -168L566 -225Q469 -437 246 -437Q183 -437 118 -418V-199L162 -200Q244 -200 284 -175T348 -92L382 -3L3 1082H314L515 409ZM137 1365Q137 1419 175 1455T275 1492Q337 1492 375 1455T413
+1365T375 1276T275 1239Q216 1239 177 1274T137 1365ZM624 1365Q624 1418 663 1455T762 1492Q820 1492 860 1456T901 1365Q901 1313 863 1276T762 1238T662 1275T624 1365Z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1294" d="M1444 596H408V832H1444V596Z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1563" d="M1746 596H365V832H1746V596Z" />
+<glyph unicode="&#x2018;" horiz-adv-x="479" d="M286 1570L422 1491Q336 1355 333 1215V1048H104V1198Q104 1292 156 1398T286 1570Z" />
+<glyph unicode="&#x2019;" horiz-adv-x="470" d="M194 1009L58 1088Q144 1223 147 1367V1536H377V1381Q377 1291 327 1186T194 1009Z" />
+<glyph unicode="&#x201a;" horiz-adv-x="508" d="M202 -305L66 -226Q144 -100 147 48V229H385L384 63Q383 -26 334 -129T202 -305Z" />
+<glyph unicode="&#x201c;" horiz-adv-x="831" d="M294 1570L430 1491Q344 1355 341 1215V1048H112V1198Q112 1292 164 1398T294 1570ZM637 1570L773 1491Q687 1355 684 1215V1048H455V1198Q455 1292 507 1398T637 1570Z" />
+<glyph unicode="&#x201d;" horiz-adv-x="837" d="M208 1009L72 1088Q158 1223 161 1367V1536H391V1381Q391 1291 341 1186T208 1009ZM555 1009L419 1088Q505 1223 508 1367V1536H738V1381Q738 1291 688 1186T555 1009Z" />
+<glyph unicode="&#x201e;" horiz-adv-x="825" d="M209 -325L66 -246Q144 -112 147 47V263H385L384 64Q383 -33 336 -142T209 -325ZM545 -325L402 -246Q488 -98 491 48V263H729L728 60Q726 -36 676 -145T545 -325Z" />
+<glyph unicode="&#x2022;" horiz-adv-x="736" d="M135 766Q135 870 201 933T371 996Q479 996 543 934T610 771V728Q610 625 545 563T373 500Q268 500 202 562T135 731V766Z" />
+<glyph unicode="&#x2039;" horiz-adv-x="638" d="M334 524L574 125H388L108 515V534L388 924H574L334 524Z" />
+<glyph unicode="&#x203a;" horiz-adv-x="618" d="M267 923L547 533V514L267 124H80L320 523L80 923H267Z" />
+</font>
+</defs>
+</svg>
diff --git a/src/docs/fonts/roboto-v15-latin-700.ttf b/src/docs/fonts/roboto-v15-latin-700.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..19090afb10e101b0524a4dbe1f5af074dcd2a1d3
GIT binary patch
diff --git a/src/docs/fonts/roboto-v15-latin-700.woff b/src/docs/fonts/roboto-v15-latin-700.woff
new file mode 100644
index 0000000000000000000000000000000000000000..bf737c1c396c2a088dd5e36c749a86c1d6f09d30
GIT binary patch
diff --git a/src/docs/fonts/roboto-v15-latin-700.woff2 b/src/docs/fonts/roboto-v15-latin-700.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..11cde5d04c470947b1c88e42a684fcf0d5b396b0
GIT binary patch
diff --git a/src/docs/fonts/roboto-v15-latin-regular.eot b/src/docs/fonts/roboto-v15-latin-regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..d26bc8f519b5b90a0639f82a18bfef133599196a
GIT binary patch
diff --git a/src/docs/fonts/roboto-v15-latin-regular.svg b/src/docs/fonts/roboto-v15-latin-regular.svg
new file mode 100644
index 0000000..ed55c10
--- /dev/null
+++ b/src/docs/fonts/roboto-v15-latin-regular.svg
@@ -0,0 +1,308 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg">
+<defs >
+<font id="Roboto" horiz-adv-x="1157" ><font-face
+    font-family="Roboto"
+    units-per-em="2048"
+    panose-1="2 0 0 0 0 0 0 0 0 0"
+    ascent="1900"
+    descent="-500"
+    alphabetic="0" />
+<glyph unicode=" " horiz-adv-x="507" />
+<glyph unicode="!" horiz-adv-x="527" d="M347 411H180L167 1456H361L347 411ZM160 93Q160 138 187 168T269 199T351 169T379 93T351 19T269 -11T188 18T160 93Z" />
+<glyph unicode="&quot;" horiz-adv-x="655" d="M277 1400L247 1042H136L137 1536H277V1400ZM547 1400L517 1042H406L407 1536H547V1400Z" />
+<glyph unicode="#" horiz-adv-x="1261" d="M765 410H501L421 0H278L358 410H119V547H384L453 901H195V1040H480L562 1456H705L623 1040H887L969 1456H1113L1031 1040H1235V901H1004L935 547H1160V410H909L829 0H685L765 410ZM527 547H791L860 901H596L527 547Z" />
+<glyph unicode="$" horiz-adv-x="1150" d="M856 375Q856 467 792 530T574 644Q361 709 264 813T166 1079Q166 1243 261 1348T524 1473V1692H673V1472Q841 1449 934 1331T1028 1008H844Q844 1149 777 1232T596 1315Q477 1315 414 1254T351 1082Q351 980 417 920T636
+810T874 701T1000 562T1041 377Q1041 208 940 105T655 -17V-208H507V-17Q321 0 216 115T110 429H295Q295 290 368 215T575 140Q706 140 781 203T856 375Z" />
+<glyph unicode="%" horiz-adv-x="1500" d="M105 1176Q105 1307 188 1392T403 1477Q536 1477 618 1392T701 1170V1099Q701 967 618 884T405 800Q275 800 190 883T105 1106V1176ZM243 1099Q243 1021 287 971T405 920Q476 920 519 969T563 1103V1176Q563 1254 520
+1305T403 1356T286 1305T243 1172V1099ZM814 357Q814 488 897 572T1112 657T1327 573T1411 350V279Q1411 148 1328 64T1114 -21T899 62T814 285V357ZM952 279Q952 200 996 150T1114 99Q1186 99 1229 148T1272 283V357Q1272 436 1229 486T1112 536Q1041 536 997
+487T952 353V279ZM447 110L342 176L1053 1314L1158 1248L447 110Z" />
+<glyph unicode="&amp;" horiz-adv-x="1273" d="M101 391Q101 496 159 584T383 789Q286 907 253 979T220 1122Q220 1288 318 1382T584 1476Q734 1476 832 1389T930 1168Q930 1080 886 1006T730 849L623 770L947 383Q1015 513 1015 672H1182Q1182 417 1059 249L1267
+0H1045L948 115Q874 49 775 15T572 -20Q359 -20 230 93T101 391ZM572 131Q719 131 841 243L486 668L453 644Q286 521 286 391Q286 273 362 202T572 131ZM405 1128Q405 1032 523 888L641 971Q709 1019 734 1062T759 1168Q759 1235 709 1279T583 1324Q501 1324 453
+1269T405 1128Z" />
+<glyph unicode="&apos;" horiz-adv-x="357" d="M253 1425L232 1057H103L104 1536H253V1425Z" />
+<glyph unicode="(" horiz-adv-x="700" d="M133 591Q133 817 193 1025T374 1403T623 1643L661 1521Q515 1409 422 1179T319 664L318 579Q318 193 459 -91Q544 -261 661 -357L623 -470Q490 -396 369 -222Q133 118 133 591Z" />
+<glyph unicode=")" horiz-adv-x="712" d="M567 581Q567 358 509 154T330 -224T77 -470L38 -357Q192 -239 285 9T381 561V593Q381 803 337 983T215 1307T38 1530L77 1643Q209 1570 328 1399T507 1022T567 581Z" />
+<glyph unicode="*" horiz-adv-x="882" d="M330 983L28 1073L74 1224L376 1112L367 1456H520L510 1107L807 1217L853 1065L546 974L744 703L620 609L434 897L254 616L129 707L330 983Z" />
+<glyph unicode="+" horiz-adv-x="1161" d="M670 781H1076V606H670V146H484V606H78V781H484V1206H670V781Z" />
+<glyph unicode="," horiz-adv-x="402" d="M134 -290L29 -218Q123 -87 127 52V219H308V74Q308 -27 259 -128T134 -290Z" />
+<glyph unicode="-" horiz-adv-x="565" d="M525 543H37V694H525V543Z" />
+<glyph unicode="." horiz-adv-x="539" d="M144 97Q144 145 172 177T258 209T344 177T374 97Q374 51 345 20T258 -11T173 20T144 97Z" />
+<glyph unicode="/" horiz-adv-x="844" d="M177 -125H18L626 1456H784L177 -125Z" />
+<glyph unicode="0" horiz-adv-x="1150" d="M1034 621Q1034 296 923 138T576 -20Q343 -20 231 134T115 596V843Q115 1164 226 1320T574 1476Q809 1476 920 1326T1034 861V621ZM849 874Q849 1109 783 1216T574 1324Q432 1324 367 1217T300 888V592Q300 356 368 244T576
+131Q713 131 779 237T849 571V874Z" />
+<glyph unicode="1" horiz-adv-x="1150" d="M729 0H543V1233L170 1096V1264L700 1463H729V0Z" />
+<glyph unicode="2" horiz-adv-x="1150" d="M1075 0H121V133L625 693Q737 820 779 899T822 1064Q822 1178 753 1251T569 1324Q431 1324 355 1246T278 1027H93Q93 1228 222 1352T569 1476Q772 1476 890 1370T1008 1086Q1008 871 734 574L344 151H1075V0Z" />
+<glyph unicode="3" horiz-adv-x="1150" d="M390 818H529Q660 820 735 887T810 1068Q810 1324 555 1324Q435 1324 364 1256T292 1074H107Q107 1247 233 1361T555 1476Q761 1476 878 1367T995 1064Q995 969 934 880T766 747Q886 709 951 621T1017 406Q1017 210 889
+95T556 -20T223 91T94 384H280Q280 269 355 200T556 131Q690 131 761 201T832 402Q832 529 754 597T529 667H390V818Z" />
+<glyph unicode="4" horiz-adv-x="1150" d="M902 489H1104V338H902V0H716V338H53V447L705 1456H902V489ZM263 489H716V1203L694 1163L263 489Z" />
+<glyph unicode="5" horiz-adv-x="1150" d="M206 730L280 1456H1026V1285H437L393 888Q500 951 636 951Q835 951 952 820T1069 464Q1069 239 948 110T608 -20Q415 -20 293 87T154 383H329Q346 258 418 195T608 131Q737 131 810 219T884 462Q884 608 805 696T593
+785Q472 785 403 732L354 692L206 730Z" />
+<glyph unicode="6" horiz-adv-x="1150" d="M847 1457V1300H813Q597 1296 469 1172T321 823Q436 955 635 955Q825 955 938 821T1052 475Q1052 250 930 115T601 -20Q392 -20 262 140T132 554V625Q132 1027 303 1239T814 1457H847ZM604 801Q509 801 429 744T318 601V533Q318
+353 399 243T601 133Q726 133 797 225T869 466Q869 616 797 708T604 801Z" />
+<glyph unicode="7" horiz-adv-x="1150" d="M1061 1352L458 0H264L865 1304H77V1456H1061V1352Z" />
+<glyph unicode="8" horiz-adv-x="1150" d="M1004 1076Q1004 967 947 882T791 749Q905 700 971 606T1038 393Q1038 204 911 92T575 -20Q365 -20 239 92T112 393Q112 511 176 606T355 750Q258 798 202 883T146 1076Q146 1260 264 1368T575 1476Q767 1476 885 1368T1004
+1076ZM853 397Q853 519 776 596T573 673T373 597T297 397T370 202T575 131Q705 131 779 202T853 397ZM575 1324Q466 1324 399 1257T331 1073Q331 962 397 894T575 825T752 893T819 1073T750 1254T575 1324Z" />
+<glyph unicode="9" horiz-adv-x="1150" d="M830 640Q772 571 692 529T515 487Q389 487 296 549T151 723T100 972Q100 1118 155 1235T313 1414T551 1476Q767 1476 891 1315T1016 874V820Q1016 395 848 200T341 -1H305V155H344Q573 159 696 274T830 640ZM545 640Q638
+640 716 697T831 838V912Q831 1094 752 1208T552 1322Q430 1322 356 1229T282 982Q282 833 353 737T545 640Z" />
+<glyph unicode=":" horiz-adv-x="496" d="M390 97Q390 145 418 177T504 209T590 177T620 97Q620 51 591 20T504 -11T419 20T390 97ZM135 980Q135 1028 163 1060T249 1092T335 1060T365 980Q365 934 336 903T249 872T164 903T135 980Z" />
+<glyph unicode=";" horiz-adv-x="433" d="M111 980Q111 1028 139 1060T225 1092T311 1060T341 980Q341 934 312 903T225 872T140 903T111 980ZM146 -290L41 -218Q135 -87 139 52V219H320V74Q320 -27 271 -128T146 -290Z" />
+<glyph unicode="&lt;" horiz-adv-x="1041" d="M264 644L890 391V195L72 574V720L890 1098V902L264 644Z" />
+<glyph unicode="=" horiz-adv-x="1124" d="M986 814H152V975H986V814ZM986 399H152V559H986V399Z" />
+<glyph unicode="&gt;" horiz-adv-x="1070" d="M795 650L134 909V1099L988 721V575L134 196V388L795 650Z" />
+<glyph unicode="?" horiz-adv-x="967" d="M357 410Q359 529 384 598T486 751L617 886Q701 981 701 1090Q701 1195 646 1254T486 1314Q384 1314 322 1260T260 1115H75Q77 1277 190 1376T486 1476Q675 1476 780 1375T886 1096Q886 921 724 751L615 643Q542 562 542
+410H357ZM349 93Q349 138 376 168T458 199T540 169T568 93T540 19T458 -11T377 18T349 93Z" />
+<glyph unicode="@" horiz-adv-x="1839" d="M1738 502Q1726 260 1618 120T1329 -20Q1142 -20 1089 148Q1035 63 966 22T822 -20Q680 -20 607 96T553 417Q568 582 628 711T784 915T985 989Q1066 989 1130 968T1274 883L1222 329Q1203 98 1350 98Q1463 98 1533 210T1609
+502Q1628 891 1465 1095T967 1299Q766 1299 610 1200T364 912T263 478Q251 230 323 48T542 -231T899 -328Q989 -328 1079 -306T1230 -249L1267 -364Q1205 -403 1103 -428T895 -453Q645 -453 465 -341T196 -17T118 478Q130 753 241 972T542 1311T971 1431Q1220 1431
+1398 1319T1663 996T1738 502ZM712 417Q698 275 738 199T867 123Q927 123 982 174T1074 320L1075 329L1121 832Q1065 861 1001 861Q884 861 808 742T712 417Z" />
+<glyph unicode="A" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538Z" />
+<glyph unicode="B" horiz-adv-x="1275" d="M169 0V1456H645Q882 1456 1001 1358T1121 1068Q1121 966 1063 888T905 766Q1023 733 1091 641T1160 420Q1160 224 1033 112T674 0H169ZM361 681V157H678Q812 157 889 226T967 418Q967 681 681 681H361ZM361 835H651Q777
+835 852 898T928 1069Q928 1189 858 1243T645 1298H361V835Z" />
+<glyph unicode="C" horiz-adv-x="1333" d="M1240 462Q1213 231 1070 106T688 -20Q430 -20 275 165T119 660V800Q119 1003 191 1157T397 1393T705 1476Q937 1476 1077 1347T1240 988H1047Q1022 1162 939 1240T705 1318Q521 1318 417 1182T312 795V654Q312 417 411
+277T688 137Q848 137 933 209T1047 462H1240Z" />
+<glyph unicode="D" horiz-adv-x="1343" d="M169 0V1456H580Q770 1456 916 1372T1141 1133T1222 777V684Q1222 478 1143 323T916 85T572 0H169ZM361 1298V157H563Q785 157 908 295T1032 688V773Q1032 1021 916 1158T585 1298H361Z" />
+<glyph unicode="E" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673Z" />
+<glyph unicode="F" horiz-adv-x="1132" d="M972 643H361V0H169V1456H1071V1298H361V800H972V643Z" />
+<glyph unicode="G" horiz-adv-x="1395" d="M1244 191Q1170 85 1038 33T729 -20Q551 -20 413 63T200 301T122 658V785Q122 1114 275 1295T707 1476Q935 1476 1074 1360T1244 1029H1052Q998 1318 708 1318Q515 1318 416 1183T315 790V671Q315 426 427 282T730 137Q838
+137 919 161T1053 242V569H716V725H1244V191Z" />
+<glyph unicode="H" horiz-adv-x="1460" d="M1288 0H1095V673H361V0H169V1456H361V830H1095V1456H1288V0Z" />
+<glyph unicode="I" horiz-adv-x="557" d="M375 0H183V1456H375V0Z" />
+<glyph unicode="J" horiz-adv-x="1130" d="M779 1456H972V425Q972 216 847 98T512 -20Q295 -20 174 91T53 402H245Q245 277 313 207T512 137Q631 137 704 212T779 422V1456Z" />
+<glyph unicode="K" horiz-adv-x="1284" d="M539 677L361 492V0H169V1456H361V736L1008 1456H1240L667 813L1285 0H1055L539 677Z" />
+<glyph unicode="L" horiz-adv-x="1102" d="M362 157H1052V0H169V1456H362V157Z" />
+<glyph unicode="M" horiz-adv-x="1788" d="M417 1456L893 268L1369 1456H1618V0H1426V567L1444 1179L966 0H819L342 1176L361 567V0H169V1456H417Z" />
+<glyph unicode="N" horiz-adv-x="1460" d="M1288 0H1095L362 1122V0H169V1456H362L1097 329V1456H1288V0Z" />
+<glyph unicode="O" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 1311
+417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775Z" />
+<glyph unicode="P" horiz-adv-x="1292" d="M361 570V0H169V1456H706Q945 1456 1080 1334T1216 1011Q1216 799 1084 685T704 570H361ZM361 727H706Q860 727 942 799T1024 1009Q1024 1139 942 1217T717 1298H361V727Z" />
+<glyph unicode="Q" horiz-adv-x="1408" d="M1281 681Q1281 470 1214 318T1026 79L1286 -125L1155 -246L848 -2Q776 -20 696 -20Q524 -20 391 64T185 305T109 668V773Q109 983 182 1144T388 1390T694 1476Q870 1476 1003 1391T1209 1147T1281 774V681ZM1089 775Q1089
+1032 987 1171T694 1311Q513 1311 409 1173T301 788V681Q301 431 405 287T696 143T984 278T1089 667V775Z" />
+<glyph unicode="R" horiz-adv-x="1261" d="M703 589H361V0H168V1456H650Q896 1456 1028 1344T1161 1018Q1161 882 1088 781T883 630L1225 12V0H1019L703 589ZM361 746H656Q799 746 883 820T968 1018Q968 1153 888 1225T655 1298H361V746Z" />
+<glyph unicode="S" horiz-adv-x="1215" d="M598 649Q351 720 239 823T126 1079Q126 1251 263 1363T621 1476Q771 1476 888 1418T1070 1258T1135 1035H942Q942 1167 858 1242T621 1318Q479 1318 400 1256T320 1082Q320 993 395 932T652 819T936 707T1088 563T1138
+370Q1138 193 1000 87T631 -20Q481 -20 351 37T151 195T80 422H273Q273 290 370 214T631 137Q783 137 864 199T945 368T870 533T598 649Z" />
+<glyph unicode="T" horiz-adv-x="1222" d="M1175 1298H707V0H516V1298H49V1456H1175V1298Z" />
+<glyph unicode="U" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194Z" />
+<glyph unicode="V" horiz-adv-x="1303" d="M651 255L1067 1456H1277L737 0H567L28 1456H237L651 255Z" />
+<glyph unicode="W" horiz-adv-x="1817" d="M483 459L511 267L552 440L840 1456H1002L1283 440L1323 264L1354 460L1580 1456H1773L1420 0H1245L945 1061L922 1172L899 1061L588 0H413L61 1456H253L483 459Z" />
+<glyph unicode="X" horiz-adv-x="1284" d="M644 898L993 1456H1219L759 734L1230 0H1002L644 568L284 0H57L529 734L68 1456H293L644 898Z" />
+<glyph unicode="Y" horiz-adv-x="1230" d="M613 725L993 1456H1211L709 543V0H517V543L15 1456H235L613 725Z" />
+<glyph unicode="Z" horiz-adv-x="1226" d="M313 157H1146V0H86V144L884 1298H99V1456H1114V1315L313 157Z" />
+<glyph unicode="[" horiz-adv-x="543" d="M523 1512H332V-160H523V-312H146V1664H523V1512Z" />
+<glyph unicode="\" horiz-adv-x="840" d="M40 1456H216L824 -125H648L40 1456Z" />
+<glyph unicode="]" horiz-adv-x="543" d="M9 1664H387V-312H9V-160H202V1512H9V1664Z" />
+<glyph unicode="^" horiz-adv-x="856" d="M426 1211L236 729H64L363 1456H490L788 729H617L426 1211Z" />
+<glyph unicode="_" horiz-adv-x="924" d="M920 -151H4V0H920V-151Z" />
+<glyph unicode="`" horiz-adv-x="633" d="M474 1240H315L57 1534H280L474 1240Z" />
+<glyph unicode="a" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
+751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141Z" />
+<glyph unicode="b" horiz-adv-x="1149" d="M1056 529Q1056 281 942 131T636 -20Q431 -20 319 125L310 0H140V1536H325V963Q437 1102 634 1102T943 953T1056 545V529ZM871 550Q871 739 798 842T588 945Q405 945 325 775V307Q410 137 590 137Q723 137 797 240T871 550Z" />
+<glyph unicode="c" horiz-adv-x="1072" d="M574 131Q673 131 747 191T829 341H1004Q999 248 940 164T783 30T574 -20Q353 -20 223 127T92 531V562Q92 720 150 843T316 1034T573 1102Q755 1102 875 993T1004 710H829Q821 815 750 882T573 950Q432 950 355 849T277
+555V520Q277 333 354 232T574 131Z" />
+<glyph unicode="d" horiz-adv-x="1155" d="M95 550Q95 799 213 950T522 1102Q712 1102 823 972V1536H1008V0H838L829 116Q718 -20 520 -20Q332 -20 214 134T95 536V550ZM280 529Q280 345 356 241T566 137Q742 137 823 295V792Q740 945 568 945Q432 945 356 840T280 529Z" />
+<glyph unicode="e" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 869T284
+640H826V654Q818 795 750 872T566 950Z" />
+<glyph unicode="f" horiz-adv-x="711" d="M231 0V939H60V1082H231V1193Q231 1367 324 1462T587 1557Q651 1557 714 1540L704 1390Q657 1399 604 1399Q514 1399 465 1347T416 1196V1082H647V939H416V0H231Z" />
+<glyph unicode="g" horiz-adv-x="1149" d="M96 550Q96 803 213 952T523 1102Q721 1102 832 962L841 1082H1010V26Q1010 -184 886 -305T551 -426Q434 -426 322 -376T151 -239L247 -128Q366 -275 538 -275Q673 -275 748 -199T824 15V108Q713 -20 521 -20Q331 -20
+214 133T96 550ZM282 529Q282 346 357 242T567 137Q742 137 824 296V790Q739 945 569 945Q434 945 358 840T282 529Z" />
+<glyph unicode="h" horiz-adv-x="1128" d="M325 951Q448 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1536H325V951Z" />
+<glyph unicode="i" horiz-adv-x="497" d="M341 0H156V1082H341V0ZM141 1369Q141 1414 168 1445T250 1476T332 1445T360 1369T332 1294T250 1264T169 1294T141 1369Z" />
+<glyph unicode="j" horiz-adv-x="489" d="M331 1082V-125Q331 -437 48 -437Q-13 -437 -65 -419V-271Q-33 -279 19 -279Q81 -279 113 -246T146 -129V1082H331ZM127 1369Q127 1413 154 1444T235 1476Q289 1476 317 1445T345 1369T317 1294T235 1264T154 1294T127 1369Z" />
+<glyph unicode="k" horiz-adv-x="1038" d="M442 501L326 380V0H141V1536H326V607L425 726L762 1082H987L566 630L1036 0H819L442 501Z" />
+<glyph unicode="l" horiz-adv-x="497" d="M341 0H156V1536H341V0Z" />
+<glyph unicode="m" horiz-adv-x="1795" d="M314 1082L319 962Q438 1102 640 1102Q867 1102 949 928Q1003 1006 1089 1054T1294 1102Q1650 1102 1656 725V0H1471V714Q1471 830 1418 887T1240 945Q1137 945 1069 884T990 718V0H804V709Q804 945 573 945Q391 945
+324 790V0H139V1082H314Z" />
+<glyph unicode="n" horiz-adv-x="1130" d="M315 1082L321 946Q445 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1082H315Z" />
+<glyph unicode="o" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 807
+839T582 950Q445 950 361 841T277 529Z" />
+<glyph unicode="p" horiz-adv-x="1149" d="M1054 529Q1054 282 941 131T635 -20Q438 -20 325 105V-416H140V1082H309L318 962Q431 1102 632 1102Q827 1102 940 955T1054 546V529ZM869 550Q869 733 791 839T577 945Q409 945 325 796V279Q408 131 579 131Q712 131
+790 236T869 550Z" />
+<glyph unicode="q" horiz-adv-x="1164" d="M95 550Q95 805 212 953T526 1102Q718 1102 829 973L837 1082H1007V-416H822V100Q710 -20 524 -20Q328 -20 212 132T95 537V550ZM280 529Q280 343 358 237T570 131Q735 131 822 277V807Q734 950 572 950Q438 950 359
+844T280 529Z" />
+<glyph unicode="r" horiz-adv-x="693" d="M663 916Q621 923 572 923Q390 923 325 768V0H140V1082H320L323 957Q414 1102 581 1102Q635 1102 663 1088V916Z" />
+<glyph unicode="s" horiz-adv-x="1056" d="M770 287Q770 362 714 403T517 475T294 547T172 647T132 785Q132 918 244 1010T532 1102Q716 1102 830 1007T945 764H759Q759 840 695 895T532 950Q431 950 374 906T317 791Q317 724 370 690T561 625T786 551T913 448T955
+300Q955 155 839 68T538 -20Q408 -20 308 26T152 154T95 333H280Q285 240 354 186T538 131Q643 131 706 173T770 287Z" />
+<glyph unicode="t" horiz-adv-x="669" d="M391 1344V1082H593V939H391V268Q391 203 418 171T510 138Q542 138 598 150V0Q525 -20 456 -20Q332 -20 269 55T206 268V939H9V1082H206V1344H391Z" />
+<glyph unicode="u" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107Z" />
+<glyph unicode="v" horiz-adv-x="992" d="M497 251L765 1082H954L566 0H425L33 1082H222L497 251Z" />
+<glyph unicode="w" horiz-adv-x="1539" d="M1098 255L1306 1082H1491L1176 0H1026L763 820L507 0H357L43 1082H227L440 272L692 1082H841L1098 255Z" />
+<glyph unicode="x" horiz-adv-x="1015" d="M503 687L743 1082H959L605 547L970 0H756L506 405L256 0H41L406 547L52 1082H266L503 687Z" />
+<glyph unicode="y" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271Z" />
+<glyph unicode="z" horiz-adv-x="1015" d="M314 151H947V0H88V136L685 929H97V1082H917V951L314 151Z" />
+<glyph unicode="{" horiz-adv-x="693" d="M632 -366Q455 -316 366 -202T276 101V300Q276 543 64 543V688Q276 688 276 930V1138Q278 1321 365 1433T632 1597L670 1482Q461 1415 461 1133V931Q461 704 294 615Q461 525 461 296V90Q464 -185 670 -251L632 -366Z" />
+<glyph unicode="|" horiz-adv-x="499" d="M324 -270H175V1456H324V-270Z" />
+<glyph unicode="}" horiz-adv-x="693" d="M19 -251Q222 -186 229 80V300Q229 531 410 615Q229 697 229 930V1133Q229 1415 20 1482L58 1597Q235 1547 324 1435T414 1137V927Q414 688 626 688V543Q414 543 414 300V98Q414 -90 324 -203T58 -366L19 -251Z" />
+<glyph unicode="~" horiz-adv-x="1393" d="M1263 777Q1263 619 1170 511T939 402Q867 402 803 428T655 529T533 621T454 639Q376 639 334 586T292 438L131 436Q131 596 223 699T454 802Q530 802 600 770T758 658T910 567L939 565Q1015 565 1062 623T1110 776L1263 777Z" />
+<glyph unicode="&#xa0;" horiz-adv-x="507" />
+<glyph unicode="&#xa1;" horiz-adv-x="499" d="M170 684H338L351 -360H157L170 684ZM358 996Q358 951 331 920T249 889T167 920T139 996T167 1071T249 1101T330 1071T358 996Z" />
+<glyph unicode="&#xa2;" horiz-adv-x="1120" d="M586 131Q686 131 760 191T842 341H1017Q1011 215 912 115T669 -12V-245H484V-11Q305 23 205 165T105 527V562Q105 774 206 916T484 1092V1318H669V1095Q819 1072 915 966T1017 710H842Q834 815 763 882T586 950Q445
+950 368 849T290 555V520Q290 333 367 232T586 131Z" />
+<glyph unicode="&#xa3;" horiz-adv-x="1190" d="M449 622L457 402Q457 248 395 157H1128L1127 0H95V157H172Q212 166 237 231T264 393V401L256 622H91V779H251L242 1039Q242 1238 364 1357T687 1476Q877 1476 988 1370T1099 1087H908Q908 1194 845 1256T670 1318Q565
+1318 500 1241T435 1039L444 779H763V622H449Z" />
+<glyph unicode="&#xa4;" horiz-adv-x="1460" d="M1103 112Q944 -20 735 -20Q528 -20 369 110L235 -26L105 109L244 250Q140 406 140 608Q140 814 252 977L105 1128L235 1264L382 1114Q540 1234 735 1234Q931 1234 1090 1113L1239 1265L1371 1128L1220 974Q1330
+811 1330 608Q1330 412 1228 253L1371 109L1239 -27L1103 112ZM311 608Q311 485 368 379T524 212T735 151T946 212T1100 379T1157 608Q1157 730 1101 835T946 1001T735 1062Q622 1062 524 1002T369 836T311 608Z" />
+<glyph unicode="&#xa5;" horiz-adv-x="1240" d="M614 782L978 1456H1197L779 736H1091V611H707V446H1091V322H707V0H514V322H136V446H514V611H136V736H449L31 1456H251L614 782Z" />
+<glyph unicode="&#xa6;" horiz-adv-x="491" d="M147 -270V521H333V-270H147ZM333 698H147V1456H333V698Z" />
+<glyph unicode="&#xa7;" horiz-adv-x="1256" d="M1145 431Q1145 242 959 157Q1028 108 1064 40T1100 -128Q1100 -296 970 -395T612 -495Q500 -495 400 -467T229 -382Q90 -269 90 -64L276 -62Q276 -192 366 -267T612 -343Q748 -343 831 -285T914 -130Q914 -41 843
+11T563 126Q381 174 285 229T143 362T96 551Q96 737 278 825Q212 874 177 942T141 1110Q141 1276 274 1376T630 1476Q862 1476 992 1363T1122 1045H937Q937 1170 853 1247T630 1325Q488 1325 408 1268T327 1112Q327 1043 355 1003T450 931T661 858T889 782T1030
+698T1116 585T1145 431ZM602 691Q512 715 437 742Q357 723 320 673T282 553Q282 483 309 443T402 370T611 296T797 238Q875 258 917 308T959 428Q959 516 890 570T602 691Z" />
+<glyph unicode="&#xa8;" horiz-adv-x="856" d="M102 1371Q102 1416 129 1446T211 1477T293 1447T321 1371T293 1296T211 1266T130 1296T102 1371ZM532 1369Q532 1414 559 1445T641 1476T723 1445T751 1369T723 1294T641 1264T560 1294T532 1369Z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1609" d="M1119 597Q1119 444 1033 364T788 283Q631 283 537 388T442 676V786Q442 962 537 1067T788 1173Q948 1173 1034 1091T1120 860H974Q974 959 927 1001T788 1044Q694 1044 640 975T586 783V670Q586 550 640 481T788
+412Q880 412 926 454T973 597H1119ZM206 729Q206 557 286 411T503 181T801 98T1098 181T1315 410T1395 729Q1395 899 1316 1044T1100 1272T801 1356Q641 1356 503 1274T286 1045T206 729ZM91 729Q91 931 184 1104T443 1376T801 1476T1158 1377T1416 1104T1510 729Q1510
+532 1420 360T1165 84T801 -21Q604 -21 439 82T182 358T91 729Z" />
+<glyph unicode="&#xaa;" horiz-adv-x="915" d="M618 705Q606 739 600 777Q524 691 396 691Q277 691 212 753T147 918Q147 1029 230 1089T486 1149H594V1201Q594 1336 470 1336Q401 1336 362 1309T322 1231L161 1243Q161 1346 247 1411T470 1476Q603 1476 680 1405T757
+1199V883Q757 786 783 705H618ZM435 828Q478 828 522 848T594 895V1037H482Q399 1036 355 1005T310 922Q310 828 435 828Z" />
+<glyph unicode="&#xab;" horiz-adv-x="961" d="M536 804L794 407H653L358 795V814L653 1203H794L536 804ZM610 548L868 151H727L432 539V558L727 947H868L610 548Z" />
+<glyph unicode="&#xac;" horiz-adv-x="1134" d="M958 375H772V639H127V800H958V375Z" />
+<glyph unicode="&#xad;" horiz-adv-x="565" d="M525 543H37V694H525V543Z" />
+<glyph unicode="&#xae;" horiz-adv-x="1610" d="M90 729Q90 931 183 1104T442 1376T800 1476T1157 1377T1415 1104T1509 729Q1509 532 1419 360T1164 84T800 -21Q603 -21 438 82T181 358T90 729ZM205 729Q205 557 285 411T502 181T800 98Q961 98 1099 182T1315
+412T1394 729Q1394 900 1316 1044T1099 1272T800 1356Q640 1356 502 1274T285 1045T205 729ZM653 654V316H512V1165H788Q941 1165 1025 1100T1110 909Q1110 786 982 721Q1104 671 1105 517V456Q1105 370 1122 332V316H977Q963 352 963 444T960 554Q944 650 829
+654H653ZM653 782H809Q881 784 925 817T969 904Q969 977 930 1007T791 1038H653V782Z" />
+<glyph unicode="&#xaf;" horiz-adv-x="938" d="M834 1313H120V1456H834V1313Z" />
+<glyph unicode="&#xb0;" horiz-adv-x="765" d="M130 1216Q130 1320 204 1398T385 1476Q489 1476 562 1399T636 1216Q636 1110 563 1035T385 960Q280 960 205 1035T130 1216ZM385 1088Q439 1088 476 1123T513 1216Q513 1274 476 1311T385 1349Q330 1349 293 1310T255
+1216T292 1125T385 1088Z" />
+<glyph unicode="&#xb1;" horiz-adv-x="1094" d="M649 854H1013V703H649V289H482V703H97V854H482V1267H649V854ZM970 0H135V152H970V0Z" />
+<glyph unicode="&#xb2;" horiz-adv-x="751" d="M683 667H84V775L384 1057Q493 1159 493 1228Q493 1277 461 1307T369 1338Q294 1338 259 1300T223 1205H66Q66 1319 149 1393T365 1467T574 1404T651 1230Q651 1126 544 1019L460 940L284 795H683V667Z" />
+<glyph unicode="&#xb3;" horiz-adv-x="751" d="M265 1125H349Q423 1125 459 1155T495 1234Q495 1279 464 1308T362 1337Q305 1337 268 1312T230 1245H73Q73 1343 154 1404T360 1466Q497 1466 575 1406T653 1241Q653 1186 618 1141T517 1070Q666 1029 666 886Q666
+780 581 718T360 655Q228 655 145 718T62 888H220Q220 843 259 813T366 783Q436 783 472 813T509 894Q509 1007 353 1009H265V1125Z" />
+<glyph unicode="&#xb4;" horiz-adv-x="642" d="M316 1534H540L272 1240H123L316 1534Z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1160" d="M339 1082V449Q340 286 391 208T559 130Q758 130 820 282V1082H1006V0H839L830 115Q737 -20 567 -20Q420 -20 339 53V-416H154V1082H339Z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1001" d="M646 0V520H562Q332 520 200 647T67 988Q67 1201 200 1328T563 1456H832V0H646Z" />
+<glyph unicode="&#xb7;" horiz-adv-x="534" d="M147 729Q147 777 175 809T261 841T347 809T377 729Q377 682 348 651T261 619T176 650T147 729Z" />
+<glyph unicode="&#xb8;" horiz-adv-x="507" d="M285 0L273 -52Q426 -79 426 -225Q426 -322 346 -378T123 -435L116 -328Q195 -328 238 -302T282 -229Q282 -185 250 -164T120 -134L152 0H285Z" />
+<glyph unicode="&#xb9;" horiz-adv-x="751" d="M495 674H338V1275L122 1218V1346L477 1463H495V674Z" />
+<glyph unicode="&#xba;" horiz-adv-x="931" d="M122 1123Q122 1281 216 1378T464 1476Q619 1476 713 1380T807 1117V1043Q807 884 714 787T466 690T217 787T122 1049V1123ZM285 1043Q285 943 333 886T466 829Q549 829 596 886T644 1045V1123Q644 1222 596 1279T464
+1336Q383 1336 335 1281T285 1129V1043Z" />
+<glyph unicode="&#xbb;" horiz-adv-x="960" d="M244 949L539 560V541L244 152H102L360 550L102 949H244ZM593 949L888 560V541L593 152H451L709 550L451 949H593Z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1500" d="M458 664H301V1265L85 1208V1336L440 1453H458V664ZM443 118L339 184L1050 1322L1154 1256L443 118ZM1318 299H1425V169H1318V0H1161V169H786L780 271L1157 789H1318V299ZM938 299H1161V588L1144 560L938 299Z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1589" d="M399 118L295 184L1006 1322L1110 1256L399 118ZM453 664H296V1265L80 1208V1336L435 1453H453V664ZM1481 0H882V108L1182 390Q1291 492 1291 561Q1291 610 1259 640T1167 671Q1092 671 1057 633T1021 538H864Q864
+652 947 726T1163 800T1372 737T1449 563Q1449 459 1342 352L1258 273L1082 128H1481V0Z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1593" d="M570 118L466 184L1177 1322L1281 1256L570 118ZM1410 299H1517V169H1410V0H1253V169H878L872 271L1249 789H1410V299ZM1030 299H1253V588L1236 560L1030 299ZM314 1126H398Q472 1126 508 1156T544 1235Q544 1280
+513 1309T411 1338Q354 1338 317 1313T279 1246H122Q122 1344 203 1405T409 1467Q546 1467 624 1407T702 1242Q702 1187 667 1142T566 1071Q715 1030 715 887Q715 781 630 719T409 656Q277 656 194 719T111 889H269Q269 844 308 814T415 784Q485 784 521 814T558
+895Q558 1008 402 1010H314V1126Z" />
+<glyph unicode="&#xbf;" horiz-adv-x="969" d="M588 680Q587 574 567 511T498 388T358 233T255 37L253 0Q253 -109 311 -166T478 -224Q578 -224 640 -168T703 -20H888Q886 -181 774 -283T478 -385Q282 -385 175 -285T68 -5Q68 168 228 343L337 456Q403 534 403
+680H588ZM596 997Q596 952 569 921T487 890T405 921T377 997Q377 1041 405 1071T487 1101T568 1071T596 997Z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM778 1550H619L361 1844H584L778 1550Z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM763 1844H987L719 1550H570L763 1844Z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM975 1572V1562H822L672 1732L523 1562H370V1574L616 1846H728L975 1572Z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM1027 1814Q1027 1706 966 1639T812 1572Q771 1572 741 1582T663 1623T593 1660T543 1667Q502 1667 473 1636T444 1555L320
+1562Q320 1669 380 1739T534 1809Q569 1809 597 1799T673 1760T746 1722T803 1713Q846 1713 874 1747T903 1826L1027 1814Z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM351 1681Q351 1726 378 1756T460 1787T542 1757T570 1681T542 1606T460 1576T379 1606T351 1681ZM781 1679Q781 1724
+808 1755T890 1786T972 1755T1000 1679T972 1604T890 1574T809 1604T781 1679Z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM887 1729Q887 1642 825 1584T672 1525Q580 1525 519 1584T457 1729T518 1876T672 1937T825 1876T887 1729ZM556 1729Q556
+1682 589 1648T672 1614Q720 1614 754 1647T788 1729T755 1812T672 1847Q622 1847 589 1812T556 1729Z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1914" d="M1879 0H996L981 353H417L212 0H-14L866 1456H1817V1304H1126L1146 833H1736V682H1152L1174 151H1879V0ZM518 527H974L943 1260L518 527Z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1333" d="M1240 462Q1213 231 1070 106T688 -20Q430 -20 275 165T119 660V800Q119 1003 191 1157T397 1393T705 1476Q937 1476 1077 1347T1240 988H1047Q1022 1162 939 1240T705 1318Q521 1318 417 1182T312 795V654Q312
+417 411 277T688 137Q848 137 933 209T1047 462H1240ZM751 -9L739 -61Q892 -88 892 -234Q892 -331 812 -387T589 -444L582 -337Q661 -337 704 -311T748 -238Q748 -194 716 -173T586 -143L618 -9H751Z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM725 1562H566L308 1856H531L725 1562Z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM710 1856H934L666 1562H517L710 1856Z" />
+<glyph unicode="&#xca;" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM922 1584V1574H769L619 1744L470 1574H317V1586L563 1858H675L922 1584Z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM298 1693Q298 1738 325 1768T407 1799T489 1769T517 1693T489 1618T407 1588T326 1618T298 1693ZM728 1691Q728 1736 755 1767T837 1798T919 1767T947
+1691T919 1616T837 1586T756 1616T728 1691Z" />
+<glyph unicode="&#xcc;" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM385 1562H226L-32 1856H191L385 1562Z" />
+<glyph unicode="&#xcd;" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM369 1856H593L325 1562H176L369 1856Z" />
+<glyph unicode="&#xce;" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM582 1584V1574H429L279 1744L130 1574H-23V1586L223 1858H335L582 1584Z" />
+<glyph unicode="&#xcf;" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM-42 1693Q-42 1738 -15 1768T67 1799T149 1769T177 1693T149 1618T67 1588T-14 1618T-42 1693ZM388 1691Q388 1736 415 1767T497 1798T579 1767T607 1691T579 1616T497 1586T416 1616T388 1691Z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1373" d="M199 0V666H37V817H199V1456H610Q800 1456 946 1372T1171 1133T1252 777V684Q1252 478 1173 323T946 85T602 0H199ZM673 666H391V157H592Q814 157 937 294T1062 680V773Q1062 1021 946 1158T615 1298H391V817H673V666Z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1460" d="M1288 0H1095L362 1122V0H169V1456H362L1097 329V1456H1288V0ZM1081 1814Q1081 1706 1020 1639T866 1572Q825 1572 795 1582T717 1623T647 1660T597 1667Q556 1667 527 1636T498 1555L374 1562Q374 1669 434 1739T588
+1809Q623 1809 651 1799T727 1760T800 1722T857 1713Q900 1713 928 1747T957 1826L1081 1814Z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521
+1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM812 1552H653L395 1846H618L812 1552Z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521
+1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM797 1846H1021L753 1552H604L797 1846Z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521
+1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM1009 1574V1564H856L706 1734L557 1564H404V1576L650 1848H762L1009 1574Z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521
+1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM1061 1816Q1061 1708 1000 1641T846 1574Q805 1574 775 1584T697 1625T627 1662T577 1669Q536 1669 507 1638T478 1557L354 1564Q354 1671 414 1741T568 1811Q603 1811 631 1801T707
+1762T780 1724T837 1715Q880 1715 908 1749T937 1828L1061 1816Z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521
+1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM385 1683Q385 1728 412 1758T494 1789T576 1759T604 1683T576 1608T494 1578T413 1608T385 1683ZM815 1681Q815 1726 842 1757T924 1788T1006 1757T1034 1681T1006 1606T924
+1576T843 1606T815 1681Z" />
+<glyph unicode="&#xd7;" horiz-adv-x="1092" d="M89 329L419 665L91 1000L210 1123L539 788L868 1123L987 1000L659 665L989 329L870 206L539 543L208 206L89 329Z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q534 -20 403 62L306 -93H164L308 138Q118 330 118 690V773Q118 983 191 1144T397 1390T703 1476Q917 1476 1065 1351L1168 1516H1309L1150 1261Q1287 1074 1289 780V681ZM309
+681Q309 437 407 296L971 1200Q869 1311 703 1311Q521 1311 417 1173T309 788V681ZM1098 775Q1098 957 1042 1088L493 207Q584 143 705 143Q891 143 993 278T1098 667V775Z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM773 1550H614L356 1844H579L773 1550Z" />
+<glyph unicode="&#xda;" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM758 1844H982L714 1550H565L758 1844Z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM970 1572V1562H817L667 1732L518 1562H365V1574L611
+1846H723L970 1572Z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM346 1681Q346 1726 373 1756T455 1787T537 1757T565
+1681T537 1606T455 1576T374 1606T346 1681ZM776 1679Q776 1724 803 1755T885 1786T967 1755T995 1679T967 1604T885 1574T804 1604T776 1679Z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1230" d="M613 725L993 1456H1211L709 543V0H517V543L15 1456H235L613 725ZM708 1844H932L664 1550H515L708 1844Z" />
+<glyph unicode="&#xde;" horiz-adv-x="1210" d="M352 1456V1163H631Q778 1163 888 1111T1057 961T1117 738Q1117 544 985 429T626 313H352V0H166V1456H352ZM352 1011V465H629Q771 465 851 540T931 736Q931 859 851 934T635 1011H352Z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1218" d="M324 0H139V1111Q139 1319 242 1436T532 1554Q712 1554 810 1465T909 1216Q909 1091 845 990T781 819Q781 768 818 721T950 601T1087 461T1130 317Q1130 158 1029 69T745 -20Q664 -20 574 2T445 52L488 207Q537
+175 604 153T725 131Q832 131 888 178T945 307Q945 359 908 407T777 528T639 671T595 821Q595 910 664 1013T734 1201Q734 1295 682 1348T542 1402Q324 1402 324 1109V0Z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
+751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM687 1240H528L270 1534H493L687 1240Z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
+751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM672 1534H896L628 1240H479L672 1534Z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
+751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM884 1262V1252H731L581 1422L432 1252H279V1264L525 1536H637L884 1262Z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
+751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM936 1504Q936 1396 875 1329T721 1262Q680 1262 650 1272T572 1313T502 1350T452 1357Q411 1357 382 1326T353 1245L229 1252Q229 1359 289
+1429T443 1499Q478 1499 506 1489T582 1450T655 1412T712 1403Q755 1403 783 1437T812 1516L936 1504Z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
+751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM260 1371Q260 1416 287 1446T369 1477T451 1447T479 1371T451 1296T369 1266T288 1296T260 1371ZM690 1369Q690 1414 717 1445T799 1476T881
+1445T909 1369T881 1294T799 1264T718 1294T690 1369Z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
+751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM796 1419Q796 1332 734 1274T581 1215Q489 1215 428 1274T366 1419T427 1566T581 1627T734 1566T796 1419ZM465 1419Q465 1372 498 1338T581
+1304Q629 1304 663 1337T697 1419T664 1502T581 1537Q531 1537 498 1502T465 1419Z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1729" d="M1262 -20Q1001 -20 865 160Q800 74 687 27T433 -20Q266 -20 172 66T78 304Q78 461 191 548T526 635H749V720Q749 827 694 888T535 950Q430 950 360 895T290 759L106 778Q106 921 227 1011T535 1102Q650 1102 738
+1061T876 936Q939 1015 1026 1058T1218 1102Q1428 1102 1544 974T1660 612V497H932Q939 321 1026 226T1262 130Q1410 130 1531 206L1578 237L1642 101Q1484 -20 1262 -20ZM469 130Q541 130 620 167T749 258V495H521Q404 493 334 438T264 300Q264 223 317 177T469
+130ZM1218 950Q1103 950 1029 865T937 640H1475V671Q1475 803 1408 876T1218 950Z" />
+<glyph unicode="&#xe7;" horiz-adv-x="1072" d="M574 131Q673 131 747 191T829 341H1004Q999 248 940 164T783 30T574 -20Q353 -20 223 127T92 531V562Q92 720 150 843T316 1034T573 1102Q755 1102 875 993T1004 710H829Q821 815 750 882T573 950Q432 950 355
+849T277 555V520Q277 333 354 232T574 131ZM604 -9L592 -61Q745 -88 745 -234Q745 -331 665 -387T442 -444L435 -337Q514 -337 557 -311T601 -238Q601 -194 569 -173T439 -143L471 -9H604Z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378
+869T284 640H826V654Q818 795 750 872T566 950ZM671 1240H512L254 1534H477L671 1240Z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378
+869T284 640H826V654Q818 795 750 872T566 950ZM656 1534H880L612 1240H463L656 1534Z" />
+<glyph unicode="&#xea;" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378
+869T284 640H826V654Q818 795 750 872T566 950ZM868 1262V1252H715L565 1422L416 1252H263V1264L509 1536H621L868 1262Z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378
+869T284 640H826V654Q818 795 750 872T566 950ZM244 1371Q244 1416 271 1446T353 1477T435 1447T463 1371T435 1296T353 1266T272 1296T244 1371ZM674 1369Q674 1414 701 1445T783 1476T865 1445T893 1369T865 1294T783 1264T702 1294T674 1369Z" />
+<glyph unicode="&#xec;" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM615 1495H456L198 1789H421L615 1495Z" />
+<glyph unicode="&#xed;" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM343 1789H567L299 1495H150L343 1789Z" />
+<glyph unicode="&#xee;" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM556 1261V1251H403L253 1421L104 1251H-49V1263L197 1535H309L556 1261Z" />
+<glyph unicode="&#xef;" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM-68 1370Q-68 1415 -41 1445T41 1476T123 1446T151 1370T123 1295T41 1265T-40 1295T-68 1370ZM362 1368Q362 1413 389 1444T471 1475T553 1444T581 1368T553 1293T471 1263T390 1293T362 1368Z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1200" d="M820 1301Q1069 1037 1069 628V535Q1069 377 1011 251T844 52T602 -20Q467 -20 357 44T187 221T126 467Q126 614 182 730T341 912T574 977Q737 977 858 863Q810 1058 669 1199L451 1051L378 1150L570 1281Q438 1372
+255 1421L312 1580Q551 1526 726 1387L915 1516L988 1416L820 1301ZM884 635L882 691Q849 752 780 788T618 825Q473 825 392 730T311 467Q311 327 394 229T606 131Q731 131 807 244T884 541V635Z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1130" d="M315 1082L321 946Q445 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1082H315ZM927 1504Q927 1396 866 1329T712 1262Q671 1262 641 1272T563 1313T493 1350T443
+1357Q402 1357 373 1326T344 1245L220 1252Q220 1359 280 1429T434 1499Q469 1499 497 1489T573 1450T646 1412T703 1403Q746 1403 774 1437T803 1516L927 1504Z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729
+807 839T582 950Q445 950 361 841T277 529ZM681 1240H522L264 1534H487L681 1240Z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729
+807 839T582 950Q445 950 361 841T277 529ZM666 1534H890L622 1240H473L666 1534Z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729
+807 839T582 950Q445 950 361 841T277 529ZM878 1262V1252H725L575 1422L426 1252H273V1264L519 1536H631L878 1262Z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729
+807 839T582 950Q445 950 361 841T277 529ZM930 1504Q930 1396 869 1329T715 1262Q674 1262 644 1272T566 1313T496 1350T446 1357Q405 1357 376 1326T347 1245L223 1252Q223 1359 283 1429T437 1499Q472 1499 500 1489T576 1450T649 1412T706 1403Q749 1403 777
+1437T806 1516L930 1504Z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729
+807 839T582 950Q445 950 361 841T277 529ZM254 1371Q254 1416 281 1446T363 1477T445 1447T473 1371T445 1296T363 1266T282 1296T254 1371ZM684 1369Q684 1414 711 1445T793 1476T875 1445T903 1369T875 1294T793 1264T712 1294T684 1369Z" />
+<glyph unicode="&#xf7;" horiz-adv-x="1169" d="M1069 600H71V784H1069V600ZM461 1098Q461 1146 489 1178T575 1210T661 1178T691 1098Q691 1051 662 1020T575 989T490 1020T461 1098ZM461 281Q461 329 489 361T575 393T661 361T691 281Q691 235 662 204T575 172T490
+203T461 281Z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1160" d="M91 551Q91 710 152 836T326 1032T582 1102Q692 1102 786 1060L859 1208H983L881 1003Q1076 849 1076 529Q1076 371 1014 244T840 49T584 -20Q480 -20 394 15L320 -134H196L296 69Q91 218 91 551ZM276 529Q276 335
+373 224L716 918Q654 950 582 950Q444 950 360 841T276 529ZM890 551Q890 733 803 844L463 156Q518 131 584 131Q723 131 806 240T890 535V551Z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM673 1240H514L256 1534H479L673 1240Z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM658 1534H882L614 1240H465L658 1534Z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM870 1262V1252H717L567 1422L418 1252H265V1264L511 1536H623L870 1262Z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM246 1371Q246 1416 273 1446T355 1477T437 1447T465 1371T437 1296T355 1266T274 1296T246
+1371ZM676 1369Q676 1414 703 1445T785 1476T867 1445T895 1369T867 1294T785 1264T704 1294T676 1369Z" />
+<glyph unicode="&#xfd;" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271ZM599 1534H823L555 1240H406L599 1534Z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1180" d="M1063 529Q1063 282 950 131T644 -20Q447 -20 334 105V-416H149V1536H334V970Q447 1102 641 1102Q836 1102 949 955T1063 546V529ZM878 550Q878 733 800 839T586 945Q418 945 334 796V279Q417 131 588 131Q721 131
+799 236T878 550Z" />
+<glyph unicode="&#xff;" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271ZM187 1371Q187 1416 214 1446T296 1477T378 1447T406 1371T378 1296T296
+1266T215 1296T187 1371ZM617 1369Q617 1414 644 1445T726 1476T808 1445T836 1369T808 1294T726 1264T645 1294T617 1369Z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1344" d="M1421 651H419V802H1421V651Z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1599" d="M1737 651H401V802H1737V651Z" />
+<glyph unicode="&#x2018;" horiz-adv-x="409" d="M270 1555L376 1483Q283 1356 280 1209V1073H96V1189Q96 1291 144 1391T270 1555Z" />
+<glyph unicode="&#x2019;" horiz-adv-x="409" d="M153 1046L48 1118Q141 1248 144 1392V1536H327V1406Q326 1306 278 1207T153 1046Z" />
+<glyph unicode="&#x201a;" horiz-adv-x="407" d="M141 -283L36 -210Q127 -83 130 63V181H315V81Q315 -20 266 -121T141 -283Z" />
+<glyph unicode="&#x201c;" horiz-adv-x="724" d="M278 1555L384 1483Q291 1356 288 1209V1073H104V1189Q104 1291 152 1391T278 1555ZM593 1555L699 1483Q606 1356 603 1209V1073H419V1189Q419 1291 467 1391T593 1555Z" />
+<glyph unicode="&#x201d;" horiz-adv-x="731" d="M165 1046L60 1118Q153 1248 156 1392V1536H339V1406Q338 1306 290 1207T165 1046ZM472 1046L367 1118Q460 1248 463 1392V1536H646V1406Q645 1306 597 1207T472 1046Z" />
+<glyph unicode="&#x201e;" horiz-adv-x="705" d="M141 -301L36 -229Q127 -92 130 61V246H315V82Q315 -26 266 -131T141 -301ZM437 -301L332 -229Q423 -92 426 61V246H612V82Q612 -25 564 -129T437 -301Z" />
+<glyph unicode="&#x2022;" horiz-adv-x="690" d="M138 772Q138 859 193 915T341 971Q432 971 489 917T546 769V732Q546 645 491 590T342 535Q249 535 194 590T138 734V772Z" />
+<glyph unicode="&#x2039;" horiz-adv-x="614" d="M286 550L544 153H403L108 541V560L403 949H544L286 550Z" />
+<glyph unicode="&#x203a;" horiz-adv-x="614" d="M231 949L526 560V541L231 152H89L347 550L89 949H231Z" />
+</font>
+</defs>
+</svg>
diff --git a/src/docs/fonts/roboto-v15-latin-regular.ttf b/src/docs/fonts/roboto-v15-latin-regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..7b25f3ce940cbba3001420d38b7d0f12fb7f2142
GIT binary patch
diff --git a/src/docs/fonts/roboto-v15-latin-regular.woff b/src/docs/fonts/roboto-v15-latin-regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..941dfa4bae83483cf1784641063ce1deceda1406
GIT binary patch
diff --git a/src/docs/fonts/roboto-v15-latin-regular.woff2 b/src/docs/fonts/roboto-v15-latin-regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..120796bb71997275eafef44818771a32bd857e12
GIT binary patch
diff --git a/src/docs/graph/dependencies.svg b/src/docs/graph/dependencies.svg
new file mode 100644
index 0000000..127e1a0
--- /dev/null
+++ b/src/docs/graph/dependencies.svg
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: dependencies Pages: 1 -->
+<svg width="1257pt" height="366pt"
+ viewBox="0.00 0.00 1257.00 366.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 362)">
+<title>dependencies</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-362 1253,-362 1253,4 -4,4"/>
+<text text-anchor="start" x="603.5091" y="-42.4" font-family="sans-serif" font-weight="bold" font-size="14.00" fill="#000000">Legend</text>
+<polygon fill="#ffffb3" stroke="transparent" points="390.5,-10 390.5,-30 410.5,-30 410.5,-10 390.5,-10"/>
+<text text-anchor="start" x="414.129" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Declarations</text>
+<polygon fill="#8dd3c7" stroke="transparent" points="503.5,-10 503.5,-30 523.5,-30 523.5,-10 503.5,-10"/>
+<text text-anchor="start" x="527.2251" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Module</text>
+<polygon fill="#80b1d3" stroke="transparent" points="589.5,-10 589.5,-30 609.5,-30 609.5,-10 589.5,-10"/>
+<text text-anchor="start" x="613.2812" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Bootstrap</text>
+<polygon fill="#fdb462" stroke="transparent" points="686.5,-10 686.5,-30 706.5,-30 706.5,-10 686.5,-10"/>
+<text text-anchor="start" x="710.1732" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Providers</text>
+<polygon fill="#fb8072" stroke="transparent" points="782.5,-10 782.5,-30 802.5,-30 802.5,-10 782.5,-10"/>
+<text text-anchor="start" x="806.2258" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Exports</text>
+<g id="clust1" class="cluster">
+<title>cluster_AppModule</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="8,-146 8,-350 373,-350 373,-146 8,-146"/>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_AppModule_declarations</title>
+<polygon fill="none" stroke="#000000" points="16,-154 16,-206 138,-206 138,-154 16,-154"/>
+</g>
+<g id="clust4" class="cluster">
+<title>cluster_AppModule_imports</title>
+<polygon fill="none" stroke="#000000" points="146,-154 146,-206 365,-206 365,-154 146,-154"/>
+</g>
+<g id="clust6" class="cluster">
+<title>cluster_AppModule_bootstrap</title>
+<polygon fill="none" stroke="#000000" points="138,-290 138,-342 262,-342 262,-290 138,-290"/>
+</g>
+<g id="clust8" class="cluster">
+<title>cluster_LoginModule</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="381,-214 381,-282 1241,-282 1241,-214 381,-214"/>
+</g>
+<g id="clust9" class="cluster">
+<title>cluster_LoginModule_declarations</title>
+<polygon fill="none" stroke="#000000" points="821,-222 821,-274 1233,-274 1233,-222 821,-222"/>
+</g>
+<g id="clust14" class="cluster">
+<title>cluster_LoginModule_exports</title>
+<polygon fill="none" stroke="#000000" points="389,-222 389,-274 813,-274 813,-222 389,-222"/>
+</g>
+<g id="clust17" class="cluster">
+<title>cluster_PagesModule</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="135,-70 135,-138 265,-138 265,-70 135,-70"/>
+</g>
+<g id="clust19" class="cluster">
+<title>cluster_PagesModule_imports</title>
+<polygon fill="none" stroke="#000000" points="143,-78 143,-130 257,-130 257,-78 143,-78"/>
+</g>
+<!-- AppComponent -->
+<g id="node1" class="node">
+<title>AppComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="129.9399,-198 24.0601,-198 24.0601,-162 129.9399,-162 129.9399,-198"/>
+<text text-anchor="middle" x="77" y="-175.8" font-family="Times,serif" font-size="14.00" fill="#000000">AppComponent</text>
+</g>
+<!-- AppModule -->
+<g id="node2" class="node">
+<title>AppModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="241.6571,-266 238.6571,-270 217.6571,-270 214.6571,-266 158.3429,-266 158.3429,-230 241.6571,-230 241.6571,-266"/>
+<text text-anchor="middle" x="200" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">AppModule</text>
+</g>
+<!-- AppComponent&#45;&gt;AppModule -->
+<g id="edge1" class="edge">
+<title>AppComponent&#45;&gt;AppModule</title>
+<path fill="none" stroke="#000000" d="M77,-198.2228C77,-218.3652 77,-248 77,-248 77,-248 148.0144,-248 148.0144,-248"/>
+<polygon fill="#000000" stroke="#000000" points="148.0144,-251.5001 158.0144,-248 148.0144,-244.5001 148.0144,-251.5001"/>
+</g>
+<!-- AppComponent  -->
+<g id="node5" class="node">
+<title>AppComponent </title>
+<polygon fill="#80b1d3" stroke="#000000" points="254.439,-334 145.561,-334 145.561,-298 254.439,-298 254.439,-334"/>
+<text text-anchor="middle" x="200" y="-311.8" font-family="Times,serif" font-size="14.00" fill="#000000">AppComponent </text>
+</g>
+<!-- AppModule&#45;&gt;AppComponent  -->
+<g id="edge4" class="edge">
+<title>AppModule&#45;&gt;AppComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M200,-266.2228C200,-266.2228 200,-287.7269 200,-287.7269"/>
+<polygon fill="#000000" stroke="#000000" points="196.5001,-287.7269 200,-297.7269 203.5001,-287.727 196.5001,-287.7269"/>
+</g>
+<!-- LoginModule -->
+<g id="node3" class="node">
+<title>LoginModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="357.493,-198 354.493,-202 333.493,-202 330.493,-198 264.507,-198 264.507,-162 357.493,-162 357.493,-198"/>
+<text text-anchor="middle" x="311" y="-175.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginModule</text>
+</g>
+<!-- LoginModule&#45;&gt;AppModule -->
+<g id="edge2" class="edge">
+<title>LoginModule&#45;&gt;AppModule</title>
+<path fill="none" stroke="#000000" d="M295.5012,-198.2479C295.5012,-221.0179 295.5012,-257 295.5012,-257 295.5012,-257 251.8882,-257 251.8882,-257"/>
+<polygon fill="#000000" stroke="#000000" points="251.8882,-253.5001 241.8882,-257 251.8882,-260.5001 251.8882,-253.5001"/>
+</g>
+<!-- ForgotComponent  -->
+<g id="node9" class="node">
+<title>ForgotComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="655.1663,-266 532.8337,-266 532.8337,-230 655.1663,-230 655.1663,-266"/>
+<text text-anchor="middle" x="594" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">ForgotComponent </text>
+</g>
+<!-- LoginModule&#45;&gt;ForgotComponent  -->
+<g id="edge8" class="edge">
+<title>LoginModule&#45;&gt;ForgotComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M357.7353,-192C442.8305,-192 614.361,-192 614.361,-192 614.361,-192 614.361,-219.973 614.361,-219.973"/>
+<polygon fill="#000000" stroke="#000000" points="610.8611,-219.973 614.361,-229.973 617.8611,-219.973 610.8611,-219.973"/>
+</g>
+<!-- LoginComponent  -->
+<g id="node10" class="node">
+<title>LoginComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="515.2759,-266 396.7241,-266 396.7241,-230 515.2759,-230 515.2759,-266"/>
+<text text-anchor="middle" x="456" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginComponent </text>
+</g>
+<!-- LoginModule&#45;&gt;LoginComponent  -->
+<g id="edge9" class="edge">
+<title>LoginModule&#45;&gt;LoginComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M326.4988,-198.0225C326.4988,-215.3734 326.4988,-239 326.4988,-239 326.4988,-239 386.5557,-239 386.5557,-239"/>
+<polygon fill="#000000" stroke="#000000" points="386.5557,-242.5001 396.5557,-239 386.5557,-235.5001 386.5557,-242.5001"/>
+</g>
+<!-- RegisterComponent  -->
+<g id="node11" class="node">
+<title>RegisterComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="804.9855,-266 673.0145,-266 673.0145,-230 804.9855,-230 804.9855,-266"/>
+<text text-anchor="middle" x="739" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">RegisterComponent </text>
+</g>
+<!-- LoginModule&#45;&gt;RegisterComponent  -->
+<g id="edge10" class="edge">
+<title>LoginModule&#45;&gt;RegisterComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M357.8755,-186C473.1097,-186 760.9141,-186 760.9141,-186 760.9141,-186 760.9141,-219.7333 760.9141,-219.7333"/>
+<polygon fill="#000000" stroke="#000000" points="757.4142,-219.7333 760.9141,-229.7333 764.4142,-219.7333 757.4142,-219.7333"/>
+</g>
+<!-- PagesModule -->
+<g id="node4" class="node">
+<title>PagesModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="246.2064,-198 243.2064,-202 222.2064,-202 219.2064,-198 153.7936,-198 153.7936,-162 246.2064,-162 246.2064,-198"/>
+<text text-anchor="middle" x="200" y="-175.8" font-family="Times,serif" font-size="14.00" fill="#000000">PagesModule</text>
+</g>
+<!-- PagesModule&#45;&gt;AppModule -->
+<g id="edge3" class="edge">
+<title>PagesModule&#45;&gt;AppModule</title>
+<path fill="none" stroke="#000000" d="M179.0859,-198.2228C179.0859,-198.2228 179.0859,-219.7269 179.0859,-219.7269"/>
+<polygon fill="#000000" stroke="#000000" points="175.586,-219.7269 179.0859,-229.7269 182.586,-219.727 175.586,-219.7269"/>
+</g>
+<!-- PagesModule&#45;&gt;ForgotComponent  -->
+<g id="edge12" class="edge">
+<title>PagesModule&#45;&gt;ForgotComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M200,-198.1274C200,-208.7109 200,-220 200,-220 200,-220 573.639,-220 573.639,-220 573.639,-220 573.639,-220.9793 573.639,-220.9793"/>
+<polygon fill="#000000" stroke="#000000" points="570.1391,-219.793 573.639,-229.793 577.1391,-219.7931 570.1391,-219.793"/>
+</g>
+<!-- PagesModule&#45;&gt;LoginComponent  -->
+<g id="edge13" class="edge">
+<title>PagesModule&#45;&gt;LoginComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M246.2845,-180C253.9641,-180 259.4865,-180 259.4865,-180 259.4865,-180 259.4865,-248 259.4865,-248 259.4865,-248 386.773,-248 386.773,-248"/>
+<polygon fill="#000000" stroke="#000000" points="386.773,-251.5001 396.773,-248 386.7729,-244.5001 386.773,-251.5001"/>
+</g>
+<!-- PagesModule&#45;&gt;RegisterComponent  -->
+<g id="edge14" class="edge">
+<title>PagesModule&#45;&gt;RegisterComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M220.9141,-198.2015C220.9141,-204.028 220.9141,-209 220.9141,-209 220.9141,-209 717.0859,-209 717.0859,-209 717.0859,-209 717.0859,-219.8701 717.0859,-219.8701"/>
+<polygon fill="#000000" stroke="#000000" points="713.586,-219.8701 717.0859,-229.8701 720.586,-219.8701 713.586,-219.8701"/>
+</g>
+<!-- ForgotComponent -->
+<g id="node6" class="node">
+<title>ForgotComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="947.1667,-266 828.8333,-266 828.8333,-230 947.1667,-230 947.1667,-266"/>
+<text text-anchor="middle" x="888" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">ForgotComponent</text>
+</g>
+<!-- ForgotComponent&#45;&gt;LoginModule -->
+<g id="edge5" class="edge">
+<title>ForgotComponent&#45;&gt;LoginModule</title>
+<path fill="none" stroke="#000000" d="M888,-229.7772C888,-209.6348 888,-180 888,-180 888,-180 367.7296,-180 367.7296,-180"/>
+<polygon fill="#000000" stroke="#000000" points="367.7296,-176.5001 357.7296,-180 367.7295,-183.5001 367.7296,-176.5001"/>
+</g>
+<!-- LoginComponent -->
+<g id="node7" class="node">
+<title>LoginComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="1225.2758,-266 1110.7242,-266 1110.7242,-230 1225.2758,-230 1225.2758,-266"/>
+<text text-anchor="middle" x="1168" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginComponent</text>
+</g>
+<!-- LoginComponent&#45;&gt;LoginModule -->
+<g id="edge6" class="edge">
+<title>LoginComponent&#45;&gt;LoginModule</title>
+<path fill="none" stroke="#000000" d="M1168,-229.8468C1168,-206.2434 1168,-168 1168,-168 1168,-168 367.6846,-168 367.6846,-168"/>
+<polygon fill="#000000" stroke="#000000" points="367.6847,-164.5001 357.6846,-168 367.6846,-171.5001 367.6847,-164.5001"/>
+</g>
+<!-- RegisterComponent -->
+<g id="node8" class="node">
+<title>RegisterComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="1092.9846,-266 965.0154,-266 965.0154,-230 1092.9846,-230 1092.9846,-266"/>
+<text text-anchor="middle" x="1029" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">RegisterComponent</text>
+</g>
+<!-- RegisterComponent&#45;&gt;LoginModule -->
+<g id="edge7" class="edge">
+<title>RegisterComponent&#45;&gt;LoginModule</title>
+<path fill="none" stroke="#000000" d="M1029,-229.7079C1029,-207.7943 1029,-174 1029,-174 1029,-174 367.5568,-174 367.5568,-174"/>
+<polygon fill="#000000" stroke="#000000" points="367.5568,-170.5001 357.5568,-174 367.5567,-177.5001 367.5568,-170.5001"/>
+</g>
+<!-- SharedModule -->
+<g id="node12" class="node">
+<title>SharedModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="249.4231,-122 246.4231,-126 225.4231,-126 222.4231,-122 150.5769,-122 150.5769,-86 249.4231,-86 249.4231,-122"/>
+<text text-anchor="middle" x="200" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">SharedModule</text>
+</g>
+<!-- SharedModule&#45;&gt;PagesModule -->
+<g id="edge11" class="edge">
+<title>SharedModule&#45;&gt;PagesModule</title>
+<path fill="none" stroke="#000000" d="M200,-122.0109C200,-122.0109 200,-151.855 200,-151.855"/>
+<polygon fill="#000000" stroke="#000000" points="196.5001,-151.8549 200,-161.855 203.5001,-151.855 196.5001,-151.8549"/>
+</g>
+</g>
+</svg>
diff --git a/src/docs/images/compodoc-vectorise-inverted.svg b/src/docs/images/compodoc-vectorise-inverted.svg
new file mode 100644
index 0000000..d1479a5
--- /dev/null
+++ b/src/docs/images/compodoc-vectorise-inverted.svg
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="542.98999"
+   height="542.98999"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="compodoc.svg"
+   inkscape:export-filename="/home/SII/vogloblinsky/Bureau/compodoc.png"
+   inkscape:export-xdpi="72"
+   inkscape:export-ydpi="72">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="394.86152"
+     inkscape:cy="152.29997"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1887"
+     inkscape:window-height="1056"
+     inkscape:window-x="1953"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-109.30421,14.576914)">
+    <g
+       id="g3075"
+       transform="matrix(-0.34202014,0.93969262,-0.93969262,-0.34202014,789.34114,36.353292)">
+      <path
+         id="path254"
+         style="fill:#f03949;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 126.98485,359.06758 340,0 0,-65 -340,0 0,65 z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path256"
+         style="fill:#f78f22;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 306.35985,326.56758 c 0,-13.46125 -10.9125,-24.37375 -24.37375,-24.37375 -13.46125,0 -24.37375,10.9125 -24.37375,24.37375 0,13.46125 10.9125,24.37375 24.37375,24.37375 13.46125,0 24.37375,-10.9125 24.37375,-24.37375"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path266"
+         style="fill:#1a3a5c;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 173.23485,359.06758 28.75,0 0,-65 -28.75,0 0,65 z"
+         inkscape:connector-curvature="0" />
+      <path
+         sodipodi:nodetypes="ccccccccccccccccccsccccc"
+         id="path268"
+         style="fill:#e73440;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 466.98485,326.56758 -27.5,0 0,-32.5 27.5,0 0,32.5 m -41.25,0 -38.78935,0.25254 -1.26269,-32.24746 62.02286,1.01015 -2.77792,31.23731 m -57.9429,-0.25254 -10,0 0,-32.5 10,0 0,32.5 m -23.75,0 -56.875,0 0,0 c 0,-13.46125 -10.9125,-24.37375 -24.37375,-24.37375 -13.46125,0 -24.37375,10.9125 -24.37375,24.37375 l -55.6275,0 0,-32.5 176.40229,0.25254 1.01015,32.5"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path258"
+         style="fill:#3f1928;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 383.23485,359.06758 13.75,0 0,-65 -13.75,0 0,65 z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path260"
+         style="fill:#3f1928;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 405.73485,359.06758 13.75,0 0,-65 -13.75,0 0,65 z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path278"
+         style="fill:#e73440;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 173.23485,326.56758 -7.5,0 0,-32.5 7.5,0 0,32.5 m -21.25,0 -25,0 0,-32.5 25,0 0,32.5"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path280"
+         style="fill:#e73440;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 151.98485,326.56758 13.75,0 0,-32.5 -13.75,0 0,32.5 z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path282"
+         style="fill:#183452;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 173.23485,326.56758 28.75,0 0,-32.5 -28.75,0 0,32.5 z"
+         inkscape:connector-curvature="0" />
+    </g>
+    <g
+       id="g3914"
+       transform="translate(16.162441,0.605492)">
+      <rect
+         transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
+         style="fill:#5cc0ae;fill-opacity:1"
+         y="209.84224"
+         x="-77.023102"
+         height="44.285713"
+         width="180"
+         id="rect3090" />
+      <rect
+         transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)"
+         style="fill:#f1c40f;fill-opacity:1"
+         y="33.689053"
+         x="209.69711"
+         height="44.285713"
+         width="180"
+         id="rect3090-7-2" />
+    </g>
+    <g
+       id="g3919"
+       transform="translate(-2.0203046,-106.78207)">
+      <path
+         inkscape:connector-curvature="0"
+         id="rect3090-7-2-4"
+         d="m 623.00576,279.17227 -127.28125,127.28125 31.3125,31.3125 127.28125,-127.28125 -31.3125,-31.3125 z"
+         style="fill:#f03949;fill-opacity:1" />
+      <rect
+         transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)"
+         style="fill:#3498db;fill-opacity:1"
+         y="-242.99538"
+         x="502.17584"
+         height="44.285713"
+         width="180"
+         id="rect3090-7" />
+    </g>
+    <flowRoot
+       xml:space="preserve"
+       id="flowRoot3935"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
+       transform="translate(109.30421,32.871674)"><flowRegion
+         id="flowRegion3937"><rect
+           id="rect3939"
+           width="355.5737"
+           height="240.41631"
+           x="331.33005"
+           y="610.32037" /></flowRegion><flowPara
+         id="flowPara3941" /></flowRoot>    <g
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
+       id="text3943-1-6-0">
+      <path
+         d="m 212.84736,436.93307 c -0.33003,0.42004 -0.66003,0.75004 -0.99,0.99 -0.30003,0.24004 -0.75003,0.36004 -1.35,0.36 -0.57003,4e-5 -1.12503,-0.16496 -1.665,-0.495 -0.54003,-0.35996 -1.18503,-0.74996 -1.935,-1.17 -0.75003,-0.44996 -1.65003,-0.83996 -2.7,-1.17 -1.02003,-0.35996 -2.29502,-0.53996 -3.825,-0.54 -1.95002,4e-5 -3.66002,0.36004 -5.13,1.08 -1.47002,0.69004 -2.70001,1.69504 -3.69,3.015 -0.96001,1.32004 -1.68001,2.92504 -2.16,4.815 -0.48001,1.86003 -0.72001,3.97503 -0.72,6.345 -10e-6,2.46002 0.25499,4.65002 0.765,6.57 0.53999,1.92002 1.30499,3.54002 2.295,4.86 0.98999,1.29001 2.18998,2.28001 3.6,2.97 1.40998,0.66001 2.99998,0.99001 4.77,0.99 1.76998,1e-5 3.19497,-0.20999 4.275,-0.63 1.10997,-0.44999 2.03997,-0.92999 2.79,-1.44 0.74997,-0.53999 1.39497,-1.01999 1.935,-1.44 0.56997,-0.44998 1.19997,-0.67498 1.89,-0.675 0.89997,2e-5 1.57497,0.34502 2.025,1.035 l 3.195,4.05 c -1.23004,1.44001 -2.56504,2.65501 -4.005,3.645 -1.44003,0.96001 -2.94003,1.74001 -4.5,2.34 -1.53003,0.57 -3.12003,0.975 -4.77,1.215 -1.62002,0.24 -3.24002,0.36 -4.86,0.36 -2.85002,0 -5.53501,-0.525 -8.055,-1.575 -2.52001,-1.07999 -4.72501,-2.63999 -6.615,-4.68 -1.89,-2.03999 -3.39,-4.52999 -4.5,-7.47 -1.08,-2.96998 -1.62,-6.34498 -1.62,-10.125 0,-3.38997 0.48,-6.52497 1.44,-9.405 0.99,-2.90996 2.43,-5.41496 4.32,-7.515 1.88999,-2.12995 4.22999,-3.79495 7.02,-4.995 2.78999,-1.19995 5.99998,-1.79995 9.63,-1.8 3.44998,5e-5 6.46497,0.55505 9.045,1.665 2.60997,1.11005 4.94996,2.70005 7.02,4.77 l -2.925,4.05"
+         style="font-size:90px;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Bold"
+         id="path3007" />
+      <path
+         d="m 242.74143,426.44807 c 3.41997,5e-5 6.52496,0.55505 9.315,1.665 2.81996,1.11005 5.21996,2.68505 7.2,4.725 2.00995,2.04004 3.55495,4.53004 4.635,7.47 1.07995,2.94003 1.61995,6.22503 1.62,9.855 -5e-5,3.66002 -0.54005,6.96002 -1.62,9.9 -1.08005,2.94001 -2.62505,5.44501 -4.635,7.515 -1.98004,2.07001 -4.38004,3.66001 -7.2,4.77 -2.79004,1.11 -5.89503,1.665 -9.315,1.665 -3.45003,0 -6.58502,-0.555 -9.405,-1.665 -2.82002,-1.10999 -5.23501,-2.69999 -7.245,-4.77 -1.98001,-2.06999 -3.52501,-4.57499 -4.635,-7.515 -1.08001,-2.93998 -1.62001,-6.23998 -1.62,-9.9 -1e-5,-3.62997 0.53999,-6.91497 1.62,-9.855 1.10999,-2.93996 2.65499,-5.42996 4.635,-7.47 2.00999,-2.03995 4.42498,-3.61495 7.245,-4.725 2.81998,-1.10995 5.95497,-1.66495 9.405,-1.665 m 0,39.015 c 3.83997,10e-6 6.67496,-1.28999 8.505,-3.87 1.85996,-2.57998 2.78996,-6.35998 2.79,-11.34 -4e-5,-4.97997 -0.93004,-8.77496 -2.79,-11.385 -1.83004,-2.60996 -4.66503,-3.91496 -8.505,-3.915 -3.90003,4e-5 -6.79502,1.32004 -8.685,3.96 -1.86002,2.61004 -2.79002,6.39003 -2.79,11.34 -2e-5,4.95002 0.92998,8.73002 2.79,11.34 1.88998,2.58001 4.78497,3.87001 8.685,3.87"
+         style="font-size:90px;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Bold"
+         id="path3009" />
+      <path
+         d="m 273.99111,473.33807 0,-46.17 6.795,0 c 1.43999,5e-5 2.38499,0.67505 2.835,2.025 l 0.72,3.42 c 0.80999,-0.89995 1.64999,-1.72495 2.52,-2.475 0.89998,-0.74995 1.84498,-1.39495 2.835,-1.935 1.01998,-0.53995 2.09998,-0.95995 3.24,-1.26 1.16998,-0.32995 2.44498,-0.49495 3.825,-0.495 2.90997,5e-5 5.29497,0.79505 7.155,2.385 1.88997,1.56005 3.29997,3.64504 4.23,6.255 0.71996,-1.52996 1.61996,-2.83496 2.7,-3.915 1.07996,-1.10995 2.26496,-2.00995 3.555,-2.7 1.28996,-0.68995 2.65496,-1.19995 4.095,-1.53 1.46995,-0.32995 2.93995,-0.49495 4.41,-0.495 2.54995,5e-5 4.81494,0.39005 6.795,1.17 1.97994,0.78005 3.64494,1.92005 4.995,3.42 1.34994,1.50004 2.36994,3.33004 3.06,5.49 0.71993,2.16004 1.07993,4.63504 1.08,7.425 l 0,29.385 -11.115,0 0,-29.385 c -6e-5,-2.93996 -0.64505,-5.14496 -1.935,-6.615 -1.29005,-1.49996 -3.18005,-2.24996 -5.67,-2.25 -1.14005,4e-5 -2.20505,0.19504 -3.195,0.585 -0.96004,0.39004 -1.81504,0.96004 -2.565,1.71 -0.72004,0.72004 -1.29004,1.63504 -1.71,2.745 -0.42004,1.11004 -0.63004,2.38503 -0.63,3.825 l 0,29.385 -11.16,0 0,-29.385 c -3e-5,-3.08996 -0.63003,-5.33996 -1.89,-6.75 -1.23003,-1.40996 -3.04502,-2.11496 -5.445,-2.115 -1.62002,4e-5 -3.13502,0.40504 -4.545,1.215 -1.38002,0.78004 -2.67001,1.86004 -3.87,3.24 l 0,33.795 -11.115,0"
+         style="font-size:90px;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Bold"
+         id="path3011" />
+      <path
+         d="m 349.40127,488.41307 0,-61.245 6.795,0 c 1.43999,5e-5 2.38499,0.67505 2.835,2.025 l 0.9,4.275 c 1.85998,-2.12995 3.98998,-3.85495 6.39,-5.175 2.42998,-1.31995 5.26497,-1.97995 8.505,-1.98 2.51997,5e-5 4.81496,0.52505 6.885,1.575 2.09996,1.05005 3.89996,2.58005 5.4,4.59 1.52996,1.98004 2.69995,4.44004 3.51,7.38 0.83995,2.91003 1.25995,6.25503 1.26,10.035 -5e-5,3.45002 -0.46505,6.64502 -1.395,9.585 -0.93005,2.94001 -2.26504,5.49001 -4.005,7.65 -1.71004,2.16001 -3.79504,3.85501 -6.255,5.085 -2.43003,1.2 -5.16003,1.8 -8.19,1.8 -2.61003,0 -4.83002,-0.39 -6.66,-1.17 -1.80002,-0.80999 -3.42002,-1.91999 -4.86,-3.33 l 0,18.9 -11.115,0 m 21.6,-53.325 c -2.31002,4e-5 -4.29002,0.49504 -5.94,1.485 -1.62002,0.96004 -3.13502,2.32504 -4.545,4.095 l 0,20.7 c 1.25998,1.56001 2.62498,2.65501 4.095,3.285 1.49998,0.60001 3.11998,0.90001 4.86,0.9 1.67997,1e-5 3.19497,-0.31499 4.545,-0.945 1.34997,-0.62999 2.48997,-1.58999 3.42,-2.88 0.95997,-1.28998 1.69496,-2.90998 2.205,-4.86 0.50996,-1.97998 0.76496,-4.30498 0.765,-6.975 -4e-5,-2.69997 -0.22504,-4.97997 -0.675,-6.84 -0.42004,-1.88996 -1.03503,-3.41996 -1.845,-4.59 -0.81003,-1.16996 -1.80003,-2.02496 -2.97,-2.565 -1.14003,-0.53996 -2.44503,-0.80996 -3.915,-0.81"
+         style="font-size:90px;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Bold"
+         id="path3013" />
+      <path
+         d="m 420.98361,426.44807 c 3.41997,5e-5 6.52497,0.55505 9.315,1.665 2.81997,1.11005 5.21996,2.68505 7.2,4.725 2.00996,2.04004 3.55496,4.53004 4.635,7.47 1.07996,2.94003 1.61996,6.22503 1.62,9.855 -4e-5,3.66002 -0.54004,6.96002 -1.62,9.9 -1.08004,2.94001 -2.62504,5.44501 -4.635,7.515 -1.98004,2.07001 -4.38003,3.66001 -7.2,4.77 -2.79003,1.11 -5.89503,1.665 -9.315,1.665 -3.45002,0 -6.58502,-0.555 -9.405,-1.665 -2.82001,-1.10999 -5.23501,-2.69999 -7.245,-4.77 -1.98,-2.06999 -3.525,-4.57499 -4.635,-7.515 -1.08,-2.93998 -1.62,-6.23998 -1.62,-9.9 0,-3.62997 0.54,-6.91497 1.62,-9.855 1.11,-2.93996 2.655,-5.42996 4.635,-7.47 2.00999,-2.03995 4.42499,-3.61495 7.245,-4.725 2.81998,-1.10995 5.95498,-1.66495 9.405,-1.665 m 0,39.015 c 3.83997,10e-6 6.67497,-1.28999 8.505,-3.87 1.85997,-2.57998 2.78997,-6.35998 2.79,-11.34 -3e-5,-4.97997 -0.93003,-8.77496 -2.79,-11.385 -1.83003,-2.60996 -4.66503,-3.91496 -8.505,-3.915 -3.90002,4e-5 -6.79502,1.32004 -8.685,3.96 -1.86001,2.61004 -2.79001,6.39003 -2.79,11.34 -10e-6,4.95002 0.92999,8.73002 2.79,11.34 1.88998,2.58001 4.78498,3.87001 8.685,3.87"
+         style="font-size:90px;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Bold"
+         id="path3015" />
+    </g>
+    <g
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
+       id="text3947-4-8-1">
+      <path
+         d="m 486.71076,472.6759 c -0.78004,0 -1.23004,-0.39 -1.35,-1.17 l -0.45,-7.065 c -1.98004,2.70001 -4.29003,4.84501 -6.93,6.435 -2.64003,1.59 -5.61003,2.385 -8.91,2.385 -5.52002,0 -9.81001,-1.905 -12.87,-5.715 -3.06001,-3.80999 -4.59001,-9.52498 -4.59,-17.145 -1e-5,-3.26997 0.41999,-6.31497 1.26,-9.135 0.86999,-2.84996 2.12999,-5.30996 3.78,-7.38 1.64999,-2.09996 3.67499,-3.74995 6.075,-4.95 2.42998,-1.19995 5.21998,-1.79995 8.37,-1.8 3.02997,5e-5 5.65497,0.57005 7.875,1.71 2.21996,1.11005 4.15496,2.74504 5.805,4.905 l 0,-26.55 4.275,0 0,65.475 -2.34,0 m -16.425,-2.88 c 2.93997,10e-6 5.60997,-0.76499 8.01,-2.295 2.42997,-1.52999 4.58996,-3.67499 6.48,-6.435 l 0,-23.49 c -1.71004,-2.57996 -3.61504,-4.39496 -5.715,-5.445 -2.07003,-1.07996 -4.44003,-1.61995 -7.11,-1.62 -2.64002,5e-5 -4.95002,0.48005 -6.93,1.44 -1.98002,0.96004 -3.64502,2.32504 -4.995,4.095 -1.32001,1.74004 -2.32501,3.84004 -3.015,6.3 -0.66001,2.43003 -0.99001,5.11503 -0.99,8.055 -10e-6,6.66002 1.21499,11.56501 3.645,14.715 2.45998,3.12001 5.99998,4.68001 10.62,4.68"
+         style="font-size:90px;font-variant:normal;font-weight:300;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Light"
+         id="path3018" />
+      <path
+         d="m 521.52107,427.1809 c 3.20997,5e-5 6.07497,0.55505 8.595,1.665 2.54997,1.08005 4.69496,2.62504 6.435,4.635 1.73996,2.01004 3.05996,4.44004 3.96,7.29 0.92996,2.82003 1.39496,5.98503 1.395,9.495 -4e-5,3.51002 -0.46504,6.67502 -1.395,9.495 -0.90004,2.82001 -2.22004,5.23501 -3.96,7.245 -1.74004,2.01001 -3.88503,3.55501 -6.435,4.635 -2.52003,1.08 -5.38503,1.62 -8.595,1.62 -3.21002,0 -6.09002,-0.54 -8.64,-1.62 -2.52001,-1.07999 -4.66501,-2.62499 -6.435,-4.635 -1.74001,-2.00999 -3.07501,-4.42499 -4.005,-7.245 -0.9,-2.81998 -1.35,-5.98498 -1.35,-9.495 0,-3.50997 0.45,-6.67497 1.35,-9.495 0.92999,-2.84996 2.26499,-5.27996 4.005,-7.29 1.76999,-2.00996 3.91499,-3.55495 6.435,-4.635 2.54998,-1.10995 5.42998,-1.66495 8.64,-1.665 m 0,42.705 c 2.66997,1e-5 4.99497,-0.44999 6.975,-1.35 2.00997,-0.92999 3.67497,-2.24999 4.995,-3.96 1.34996,-1.70999 2.35496,-3.76498 3.015,-6.165 0.65996,-2.42998 0.98996,-5.14498 0.99,-8.145 -4e-5,-2.96997 -0.33004,-5.66997 -0.99,-8.1 -0.66004,-2.42996 -1.66504,-4.49996 -3.015,-6.21 -1.32003,-1.73996 -2.98503,-3.07496 -4.995,-4.005 -1.98003,-0.92996 -4.30503,-1.39495 -6.975,-1.395 -2.67002,5e-5 -5.01002,0.46504 -7.02,1.395 -1.98001,0.93004 -3.64501,2.26504 -4.995,4.005 -1.32001,1.71004 -2.32501,3.78004 -3.015,6.21 -0.66001,2.43003 -0.99001,5.13003 -0.99,8.1 -1e-5,3.00002 0.32999,5.71502 0.99,8.145 0.68999,2.40002 1.69499,4.45501 3.015,6.165 1.34999,1.71001 3.01499,3.03001 4.995,3.96 2.00998,0.90001 4.34998,1.35001 7.02,1.35"
+         style="font-size:90px;font-variant:normal;font-weight:300;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Light"
+         id="path3020" />
+      <path
+         d="m 584.16951,433.8859 c -0.15004,0.15004 -0.30004,0.28504 -0.45,0.405 -0.12004,0.09 -0.30004,0.13504 -0.54,0.135 -0.30004,4e-5 -0.70504,-0.19496 -1.215,-0.585 -0.51004,-0.41996 -1.20003,-0.86996 -2.07,-1.35 -0.87003,-0.47996 -1.96503,-0.91496 -3.285,-1.305 -1.29003,-0.41995 -2.86503,-0.62995 -4.725,-0.63 -2.58002,5e-5 -4.87502,0.46504 -6.885,1.395 -1.98002,0.90004 -3.66002,2.20504 -5.04,3.915 -1.38001,1.71004 -2.43001,3.78004 -3.15,6.21 -0.69001,2.43003 -1.03501,5.16003 -1.035,8.19 -10e-6,3.15002 0.35999,5.94002 1.08,8.37 0.74999,2.43001 1.79999,4.48501 3.15,6.165 1.34998,1.65001 2.98498,2.91001 4.905,3.78 1.91998,0.87001 4.04998,1.30501 6.39,1.305 2.15997,1e-5 3.95997,-0.25499 5.4,-0.765 1.46997,-0.50999 2.66997,-1.06499 3.6,-1.665 0.95996,-0.59999 1.70996,-1.15499 2.25,-1.665 0.53996,-0.50999 0.98996,-0.76499 1.35,-0.765 0.35996,1e-5 0.65996,0.15001 0.9,0.45 l 1.125,1.44 c -0.69004,0.90001 -1.56004,1.74001 -2.61,2.52 -1.05004,0.78001 -2.23504,1.45501 -3.555,2.025 -1.32003,0.57 -2.76003,1.005 -4.32,1.305 -1.53003,0.33 -3.13503,0.495 -4.815,0.495 -2.85002,0 -5.46002,-0.51 -7.83,-1.53 -2.34001,-1.04999 -4.36501,-2.54999 -6.075,-4.5 -1.68001,-1.97999 -3.00001,-4.39499 -3.96,-7.245 -0.93001,-2.84998 -1.39501,-6.08998 -1.395,-9.72 -10e-6,-3.41997 0.44999,-6.53997 1.35,-9.36 0.89999,-2.81996 2.21999,-5.24996 3.96,-7.29 1.73999,-2.03996 3.85499,-3.61495 6.345,-4.725 2.51998,-1.13995 5.39998,-1.70995 8.64,-1.71 2.90997,5e-5 5.48997,0.46505 7.74,1.395 2.24996,0.93005 4.21496,2.19005 5.895,3.78 l -1.125,1.53"
+         style="font-size:90px;font-variant:normal;font-weight:300;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Light"
+         id="path3022" />
+    </g>
+  </g>
+</svg>
diff --git a/src/docs/images/compodoc-vectorise.svg b/src/docs/images/compodoc-vectorise.svg
new file mode 100644
index 0000000..5e21f1e
--- /dev/null
+++ b/src/docs/images/compodoc-vectorise.svg
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="542.98999"
+   height="542.98999"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="compodoc.svg"
+   inkscape:export-filename="/home/SII/vogloblinsky/Bureau/compodoc.png"
+   inkscape:export-xdpi="72"
+   inkscape:export-ydpi="72">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="394.86152"
+     inkscape:cy="152.29997"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1887"
+     inkscape:window-height="1056"
+     inkscape:window-x="1953"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-109.30421,14.576914)">
+    <g
+       id="g3075"
+       transform="matrix(-0.34202014,0.93969262,-0.93969262,-0.34202014,789.34114,36.353292)">
+      <path
+         id="path254"
+         style="fill:#f03949;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 126.98485,359.06758 340,0 0,-65 -340,0 0,65 z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path256"
+         style="fill:#f78f22;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 306.35985,326.56758 c 0,-13.46125 -10.9125,-24.37375 -24.37375,-24.37375 -13.46125,0 -24.37375,10.9125 -24.37375,24.37375 0,13.46125 10.9125,24.37375 24.37375,24.37375 13.46125,0 24.37375,-10.9125 24.37375,-24.37375"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path266"
+         style="fill:#1a3a5c;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 173.23485,359.06758 28.75,0 0,-65 -28.75,0 0,65 z"
+         inkscape:connector-curvature="0" />
+      <path
+         sodipodi:nodetypes="ccccccccccccccccccsccccc"
+         id="path268"
+         style="fill:#e73440;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 466.98485,326.56758 -27.5,0 0,-32.5 27.5,0 0,32.5 m -41.25,0 -38.78935,0.25254 -1.26269,-32.24746 62.02286,1.01015 -2.77792,31.23731 m -57.9429,-0.25254 -10,0 0,-32.5 10,0 0,32.5 m -23.75,0 -56.875,0 0,0 c 0,-13.46125 -10.9125,-24.37375 -24.37375,-24.37375 -13.46125,0 -24.37375,10.9125 -24.37375,24.37375 l -55.6275,0 0,-32.5 176.40229,0.25254 1.01015,32.5"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path258"
+         style="fill:#3f1928;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 383.23485,359.06758 13.75,0 0,-65 -13.75,0 0,65 z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path260"
+         style="fill:#3f1928;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 405.73485,359.06758 13.75,0 0,-65 -13.75,0 0,65 z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path278"
+         style="fill:#e73440;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 173.23485,326.56758 -7.5,0 0,-32.5 7.5,0 0,32.5 m -21.25,0 -25,0 0,-32.5 25,0 0,32.5"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path280"
+         style="fill:#e73440;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 151.98485,326.56758 13.75,0 0,-32.5 -13.75,0 0,32.5 z"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path282"
+         style="fill:#183452;fill-opacity:1;fill-rule:nonzero;stroke:none"
+         d="m 173.23485,326.56758 28.75,0 0,-32.5 -28.75,0 0,32.5 z"
+         inkscape:connector-curvature="0" />
+    </g>
+    <g
+       id="g3914"
+       transform="translate(16.162441,0.605492)">
+      <rect
+         transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
+         style="fill:#5cc0ae;fill-opacity:1"
+         y="209.84224"
+         x="-77.023102"
+         height="44.285713"
+         width="180"
+         id="rect3090" />
+      <rect
+         transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)"
+         style="fill:#f1c40f;fill-opacity:1"
+         y="33.689053"
+         x="209.69711"
+         height="44.285713"
+         width="180"
+         id="rect3090-7-2" />
+    </g>
+    <g
+       id="g3919"
+       transform="translate(-2.0203046,-106.78207)">
+      <path
+         inkscape:connector-curvature="0"
+         id="rect3090-7-2-4"
+         d="m 623.00576,279.17227 -127.28125,127.28125 31.3125,31.3125 127.28125,-127.28125 -31.3125,-31.3125 z"
+         style="fill:#f03949;fill-opacity:1" />
+      <rect
+         transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)"
+         style="fill:#3498db;fill-opacity:1"
+         y="-242.99538"
+         x="502.17584"
+         height="44.285713"
+         width="180"
+         id="rect3090-7" />
+    </g>
+    <flowRoot
+       xml:space="preserve"
+       id="flowRoot3935"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       transform="translate(109.30421,32.871674)"><flowRegion
+         id="flowRegion3937"><rect
+           id="rect3939"
+           width="355.5737"
+           height="240.41631"
+           x="331.33005"
+           y="610.32037" /></flowRegion><flowPara
+         id="flowPara3941" /></flowRoot>    <g
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       id="text3943-1-6-0">
+      <path
+         d="m 212.84736,436.93307 c -0.33003,0.42004 -0.66003,0.75004 -0.99,0.99 -0.30003,0.24004 -0.75003,0.36004 -1.35,0.36 -0.57003,4e-5 -1.12503,-0.16496 -1.665,-0.495 -0.54003,-0.35996 -1.18503,-0.74996 -1.935,-1.17 -0.75003,-0.44996 -1.65003,-0.83996 -2.7,-1.17 -1.02003,-0.35996 -2.29502,-0.53996 -3.825,-0.54 -1.95002,4e-5 -3.66002,0.36004 -5.13,1.08 -1.47002,0.69004 -2.70001,1.69504 -3.69,3.015 -0.96001,1.32004 -1.68001,2.92504 -2.16,4.815 -0.48001,1.86003 -0.72001,3.97503 -0.72,6.345 -10e-6,2.46002 0.25499,4.65002 0.765,6.57 0.53999,1.92002 1.30499,3.54002 2.295,4.86 0.98999,1.29001 2.18998,2.28001 3.6,2.97 1.40998,0.66001 2.99998,0.99001 4.77,0.99 1.76998,1e-5 3.19497,-0.20999 4.275,-0.63 1.10997,-0.44999 2.03997,-0.92999 2.79,-1.44 0.74997,-0.53999 1.39497,-1.01999 1.935,-1.44 0.56997,-0.44998 1.19997,-0.67498 1.89,-0.675 0.89997,2e-5 1.57497,0.34502 2.025,1.035 l 3.195,4.05 c -1.23004,1.44001 -2.56504,2.65501 -4.005,3.645 -1.44003,0.96001 -2.94003,1.74001 -4.5,2.34 -1.53003,0.57 -3.12003,0.975 -4.77,1.215 -1.62002,0.24 -3.24002,0.36 -4.86,0.36 -2.85002,0 -5.53501,-0.525 -8.055,-1.575 -2.52001,-1.07999 -4.72501,-2.63999 -6.615,-4.68 -1.89,-2.03999 -3.39,-4.52999 -4.5,-7.47 -1.08,-2.96998 -1.62,-6.34498 -1.62,-10.125 0,-3.38997 0.48,-6.52497 1.44,-9.405 0.99,-2.90996 2.43,-5.41496 4.32,-7.515 1.88999,-2.12995 4.22999,-3.79495 7.02,-4.995 2.78999,-1.19995 5.99998,-1.79995 9.63,-1.8 3.44998,5e-5 6.46497,0.55505 9.045,1.665 2.60997,1.11005 4.94996,2.70005 7.02,4.77 l -2.925,4.05"
+         style="font-size:90px;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Bold"
+         id="path3007" />
+      <path
+         d="m 242.74143,426.44807 c 3.41997,5e-5 6.52496,0.55505 9.315,1.665 2.81996,1.11005 5.21996,2.68505 7.2,4.725 2.00995,2.04004 3.55495,4.53004 4.635,7.47 1.07995,2.94003 1.61995,6.22503 1.62,9.855 -5e-5,3.66002 -0.54005,6.96002 -1.62,9.9 -1.08005,2.94001 -2.62505,5.44501 -4.635,7.515 -1.98004,2.07001 -4.38004,3.66001 -7.2,4.77 -2.79004,1.11 -5.89503,1.665 -9.315,1.665 -3.45003,0 -6.58502,-0.555 -9.405,-1.665 -2.82002,-1.10999 -5.23501,-2.69999 -7.245,-4.77 -1.98001,-2.06999 -3.52501,-4.57499 -4.635,-7.515 -1.08001,-2.93998 -1.62001,-6.23998 -1.62,-9.9 -1e-5,-3.62997 0.53999,-6.91497 1.62,-9.855 1.10999,-2.93996 2.65499,-5.42996 4.635,-7.47 2.00999,-2.03995 4.42498,-3.61495 7.245,-4.725 2.81998,-1.10995 5.95497,-1.66495 9.405,-1.665 m 0,39.015 c 3.83997,10e-6 6.67496,-1.28999 8.505,-3.87 1.85996,-2.57998 2.78996,-6.35998 2.79,-11.34 -4e-5,-4.97997 -0.93004,-8.77496 -2.79,-11.385 -1.83004,-2.60996 -4.66503,-3.91496 -8.505,-3.915 -3.90003,4e-5 -6.79502,1.32004 -8.685,3.96 -1.86002,2.61004 -2.79002,6.39003 -2.79,11.34 -2e-5,4.95002 0.92998,8.73002 2.79,11.34 1.88998,2.58001 4.78497,3.87001 8.685,3.87"
+         style="font-size:90px;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Bold"
+         id="path3009" />
+      <path
+         d="m 273.99111,473.33807 0,-46.17 6.795,0 c 1.43999,5e-5 2.38499,0.67505 2.835,2.025 l 0.72,3.42 c 0.80999,-0.89995 1.64999,-1.72495 2.52,-2.475 0.89998,-0.74995 1.84498,-1.39495 2.835,-1.935 1.01998,-0.53995 2.09998,-0.95995 3.24,-1.26 1.16998,-0.32995 2.44498,-0.49495 3.825,-0.495 2.90997,5e-5 5.29497,0.79505 7.155,2.385 1.88997,1.56005 3.29997,3.64504 4.23,6.255 0.71996,-1.52996 1.61996,-2.83496 2.7,-3.915 1.07996,-1.10995 2.26496,-2.00995 3.555,-2.7 1.28996,-0.68995 2.65496,-1.19995 4.095,-1.53 1.46995,-0.32995 2.93995,-0.49495 4.41,-0.495 2.54995,5e-5 4.81494,0.39005 6.795,1.17 1.97994,0.78005 3.64494,1.92005 4.995,3.42 1.34994,1.50004 2.36994,3.33004 3.06,5.49 0.71993,2.16004 1.07993,4.63504 1.08,7.425 l 0,29.385 -11.115,0 0,-29.385 c -6e-5,-2.93996 -0.64505,-5.14496 -1.935,-6.615 -1.29005,-1.49996 -3.18005,-2.24996 -5.67,-2.25 -1.14005,4e-5 -2.20505,0.19504 -3.195,0.585 -0.96004,0.39004 -1.81504,0.96004 -2.565,1.71 -0.72004,0.72004 -1.29004,1.63504 -1.71,2.745 -0.42004,1.11004 -0.63004,2.38503 -0.63,3.825 l 0,29.385 -11.16,0 0,-29.385 c -3e-5,-3.08996 -0.63003,-5.33996 -1.89,-6.75 -1.23003,-1.40996 -3.04502,-2.11496 -5.445,-2.115 -1.62002,4e-5 -3.13502,0.40504 -4.545,1.215 -1.38002,0.78004 -2.67001,1.86004 -3.87,3.24 l 0,33.795 -11.115,0"
+         style="font-size:90px;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Bold"
+         id="path3011" />
+      <path
+         d="m 349.40127,488.41307 0,-61.245 6.795,0 c 1.43999,5e-5 2.38499,0.67505 2.835,2.025 l 0.9,4.275 c 1.85998,-2.12995 3.98998,-3.85495 6.39,-5.175 2.42998,-1.31995 5.26497,-1.97995 8.505,-1.98 2.51997,5e-5 4.81496,0.52505 6.885,1.575 2.09996,1.05005 3.89996,2.58005 5.4,4.59 1.52996,1.98004 2.69995,4.44004 3.51,7.38 0.83995,2.91003 1.25995,6.25503 1.26,10.035 -5e-5,3.45002 -0.46505,6.64502 -1.395,9.585 -0.93005,2.94001 -2.26504,5.49001 -4.005,7.65 -1.71004,2.16001 -3.79504,3.85501 -6.255,5.085 -2.43003,1.2 -5.16003,1.8 -8.19,1.8 -2.61003,0 -4.83002,-0.39 -6.66,-1.17 -1.80002,-0.80999 -3.42002,-1.91999 -4.86,-3.33 l 0,18.9 -11.115,0 m 21.6,-53.325 c -2.31002,4e-5 -4.29002,0.49504 -5.94,1.485 -1.62002,0.96004 -3.13502,2.32504 -4.545,4.095 l 0,20.7 c 1.25998,1.56001 2.62498,2.65501 4.095,3.285 1.49998,0.60001 3.11998,0.90001 4.86,0.9 1.67997,1e-5 3.19497,-0.31499 4.545,-0.945 1.34997,-0.62999 2.48997,-1.58999 3.42,-2.88 0.95997,-1.28998 1.69496,-2.90998 2.205,-4.86 0.50996,-1.97998 0.76496,-4.30498 0.765,-6.975 -4e-5,-2.69997 -0.22504,-4.97997 -0.675,-6.84 -0.42004,-1.88996 -1.03503,-3.41996 -1.845,-4.59 -0.81003,-1.16996 -1.80003,-2.02496 -2.97,-2.565 -1.14003,-0.53996 -2.44503,-0.80996 -3.915,-0.81"
+         style="font-size:90px;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Bold"
+         id="path3013" />
+      <path
+         d="m 420.98361,426.44807 c 3.41997,5e-5 6.52497,0.55505 9.315,1.665 2.81997,1.11005 5.21996,2.68505 7.2,4.725 2.00996,2.04004 3.55496,4.53004 4.635,7.47 1.07996,2.94003 1.61996,6.22503 1.62,9.855 -4e-5,3.66002 -0.54004,6.96002 -1.62,9.9 -1.08004,2.94001 -2.62504,5.44501 -4.635,7.515 -1.98004,2.07001 -4.38003,3.66001 -7.2,4.77 -2.79003,1.11 -5.89503,1.665 -9.315,1.665 -3.45002,0 -6.58502,-0.555 -9.405,-1.665 -2.82001,-1.10999 -5.23501,-2.69999 -7.245,-4.77 -1.98,-2.06999 -3.525,-4.57499 -4.635,-7.515 -1.08,-2.93998 -1.62,-6.23998 -1.62,-9.9 0,-3.62997 0.54,-6.91497 1.62,-9.855 1.11,-2.93996 2.655,-5.42996 4.635,-7.47 2.00999,-2.03995 4.42499,-3.61495 7.245,-4.725 2.81998,-1.10995 5.95498,-1.66495 9.405,-1.665 m 0,39.015 c 3.83997,10e-6 6.67497,-1.28999 8.505,-3.87 1.85997,-2.57998 2.78997,-6.35998 2.79,-11.34 -3e-5,-4.97997 -0.93003,-8.77496 -2.79,-11.385 -1.83003,-2.60996 -4.66503,-3.91496 -8.505,-3.915 -3.90002,4e-5 -6.79502,1.32004 -8.685,3.96 -1.86001,2.61004 -2.79001,6.39003 -2.79,11.34 -10e-6,4.95002 0.92999,8.73002 2.79,11.34 1.88998,2.58001 4.78498,3.87001 8.685,3.87"
+         style="font-size:90px;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Bold"
+         id="path3015" />
+    </g>
+    <g
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       id="text3947-4-8-1">
+      <path
+         d="m 486.71076,472.6759 c -0.78004,0 -1.23004,-0.39 -1.35,-1.17 l -0.45,-7.065 c -1.98004,2.70001 -4.29003,4.84501 -6.93,6.435 -2.64003,1.59 -5.61003,2.385 -8.91,2.385 -5.52002,0 -9.81001,-1.905 -12.87,-5.715 -3.06001,-3.80999 -4.59001,-9.52498 -4.59,-17.145 -1e-5,-3.26997 0.41999,-6.31497 1.26,-9.135 0.86999,-2.84996 2.12999,-5.30996 3.78,-7.38 1.64999,-2.09996 3.67499,-3.74995 6.075,-4.95 2.42998,-1.19995 5.21998,-1.79995 8.37,-1.8 3.02997,5e-5 5.65497,0.57005 7.875,1.71 2.21996,1.11005 4.15496,2.74504 5.805,4.905 l 0,-26.55 4.275,0 0,65.475 -2.34,0 m -16.425,-2.88 c 2.93997,10e-6 5.60997,-0.76499 8.01,-2.295 2.42997,-1.52999 4.58996,-3.67499 6.48,-6.435 l 0,-23.49 c -1.71004,-2.57996 -3.61504,-4.39496 -5.715,-5.445 -2.07003,-1.07996 -4.44003,-1.61995 -7.11,-1.62 -2.64002,5e-5 -4.95002,0.48005 -6.93,1.44 -1.98002,0.96004 -3.64502,2.32504 -4.995,4.095 -1.32001,1.74004 -2.32501,3.84004 -3.015,6.3 -0.66001,2.43003 -0.99001,5.11503 -0.99,8.055 -10e-6,6.66002 1.21499,11.56501 3.645,14.715 2.45998,3.12001 5.99998,4.68001 10.62,4.68"
+         style="font-size:90px;font-variant:normal;font-weight:300;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Light"
+         id="path3018" />
+      <path
+         d="m 521.52107,427.1809 c 3.20997,5e-5 6.07497,0.55505 8.595,1.665 2.54997,1.08005 4.69496,2.62504 6.435,4.635 1.73996,2.01004 3.05996,4.44004 3.96,7.29 0.92996,2.82003 1.39496,5.98503 1.395,9.495 -4e-5,3.51002 -0.46504,6.67502 -1.395,9.495 -0.90004,2.82001 -2.22004,5.23501 -3.96,7.245 -1.74004,2.01001 -3.88503,3.55501 -6.435,4.635 -2.52003,1.08 -5.38503,1.62 -8.595,1.62 -3.21002,0 -6.09002,-0.54 -8.64,-1.62 -2.52001,-1.07999 -4.66501,-2.62499 -6.435,-4.635 -1.74001,-2.00999 -3.07501,-4.42499 -4.005,-7.245 -0.9,-2.81998 -1.35,-5.98498 -1.35,-9.495 0,-3.50997 0.45,-6.67497 1.35,-9.495 0.92999,-2.84996 2.26499,-5.27996 4.005,-7.29 1.76999,-2.00996 3.91499,-3.55495 6.435,-4.635 2.54998,-1.10995 5.42998,-1.66495 8.64,-1.665 m 0,42.705 c 2.66997,1e-5 4.99497,-0.44999 6.975,-1.35 2.00997,-0.92999 3.67497,-2.24999 4.995,-3.96 1.34996,-1.70999 2.35496,-3.76498 3.015,-6.165 0.65996,-2.42998 0.98996,-5.14498 0.99,-8.145 -4e-5,-2.96997 -0.33004,-5.66997 -0.99,-8.1 -0.66004,-2.42996 -1.66504,-4.49996 -3.015,-6.21 -1.32003,-1.73996 -2.98503,-3.07496 -4.995,-4.005 -1.98003,-0.92996 -4.30503,-1.39495 -6.975,-1.395 -2.67002,5e-5 -5.01002,0.46504 -7.02,1.395 -1.98001,0.93004 -3.64501,2.26504 -4.995,4.005 -1.32001,1.71004 -2.32501,3.78004 -3.015,6.21 -0.66001,2.43003 -0.99001,5.13003 -0.99,8.1 -1e-5,3.00002 0.32999,5.71502 0.99,8.145 0.68999,2.40002 1.69499,4.45501 3.015,6.165 1.34999,1.71001 3.01499,3.03001 4.995,3.96 2.00998,0.90001 4.34998,1.35001 7.02,1.35"
+         style="font-size:90px;font-variant:normal;font-weight:300;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Light"
+         id="path3020" />
+      <path
+         d="m 584.16951,433.8859 c -0.15004,0.15004 -0.30004,0.28504 -0.45,0.405 -0.12004,0.09 -0.30004,0.13504 -0.54,0.135 -0.30004,4e-5 -0.70504,-0.19496 -1.215,-0.585 -0.51004,-0.41996 -1.20003,-0.86996 -2.07,-1.35 -0.87003,-0.47996 -1.96503,-0.91496 -3.285,-1.305 -1.29003,-0.41995 -2.86503,-0.62995 -4.725,-0.63 -2.58002,5e-5 -4.87502,0.46504 -6.885,1.395 -1.98002,0.90004 -3.66002,2.20504 -5.04,3.915 -1.38001,1.71004 -2.43001,3.78004 -3.15,6.21 -0.69001,2.43003 -1.03501,5.16003 -1.035,8.19 -10e-6,3.15002 0.35999,5.94002 1.08,8.37 0.74999,2.43001 1.79999,4.48501 3.15,6.165 1.34998,1.65001 2.98498,2.91001 4.905,3.78 1.91998,0.87001 4.04998,1.30501 6.39,1.305 2.15997,1e-5 3.95997,-0.25499 5.4,-0.765 1.46997,-0.50999 2.66997,-1.06499 3.6,-1.665 0.95996,-0.59999 1.70996,-1.15499 2.25,-1.665 0.53996,-0.50999 0.98996,-0.76499 1.35,-0.765 0.35996,1e-5 0.65996,0.15001 0.9,0.45 l 1.125,1.44 c -0.69004,0.90001 -1.56004,1.74001 -2.61,2.52 -1.05004,0.78001 -2.23504,1.45501 -3.555,2.025 -1.32003,0.57 -2.76003,1.005 -4.32,1.305 -1.53003,0.33 -3.13503,0.495 -4.815,0.495 -2.85002,0 -5.46002,-0.51 -7.83,-1.53 -2.34001,-1.04999 -4.36501,-2.54999 -6.075,-4.5 -1.68001,-1.97999 -3.00001,-4.39499 -3.96,-7.245 -0.93001,-2.84998 -1.39501,-6.08998 -1.395,-9.72 -10e-6,-3.41997 0.44999,-6.53997 1.35,-9.36 0.89999,-2.81996 2.21999,-5.24996 3.96,-7.29 1.73999,-2.03996 3.85499,-3.61495 6.345,-4.725 2.51998,-1.13995 5.39998,-1.70995 8.64,-1.71 2.90997,5e-5 5.48997,0.46505 7.74,1.395 2.24996,0.93005 4.21496,2.19005 5.895,3.78 l -1.125,1.53"
+         style="font-size:90px;font-variant:normal;font-weight:300;font-stretch:normal;font-family:Lato;-inkscape-font-specification:Lato Light"
+         id="path3022" />
+    </g>
+  </g>
+</svg>
diff --git a/src/docs/images/coverage-badge-documentation.svg b/src/docs/images/coverage-badge-documentation.svg
new file mode 100644
index 0000000..17ff78f
--- /dev/null
+++ b/src/docs/images/coverage-badge-documentation.svg
@@ -0,0 +1,9 @@
+<svg width="135" height="20" xmlns="http://www.w3.org/2000/svg">
+    <g>
+        <rect id="svg_1" height="20" width="130" y="0" x="0" stroke-width="1.5" stroke="#5d5d5d" fill="#5d5d5d" rx="7" ry="7"/>
+        <rect id="svg_2" height="20" width="40" y="0" x="92" stroke-width="1.5" stroke="#d8604b" fill="#d8604b" rx="7" ry="7"/>
+        <rect id="svg_3" height="20" width="22" y="0" x="92" stroke-width="1.5" stroke="#d8604b" fill="#d8604b"/>
+        <text xml:space="preserve" text-anchor="start" font-family="Helvetica, Arial, sans-serif" font-size="12" id="svg_4" y="14" x="6" stroke-width="0" stroke="#5d5d5d" fill="#ffffff">documentation</text>
+        <text xml:space="preserve" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="12" id="svg_5" y="14" x="112" stroke-width="0" stroke="#5d5d5d" fill="#ffffff" style="text-anchor: middle">2%</text>
+    </g>
+</svg>
diff --git a/src/docs/images/favicon.ico b/src/docs/images/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..4144ee4613af4c20b9775c0923f0216e19b63cf9
GIT binary patch
diff --git a/src/docs/index.html b/src/docs/index.html
new file mode 100644
index 0000000..8d211a8
--- /dev/null
+++ b/src/docs/index.html
@@ -0,0 +1,114 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="./images/favicon.ico">
+	      <link rel="stylesheet" href="./styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="./" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content getting-started">
+                   <div class="content-data">
+
+<h1 id="starterbootstrapadminangular6">StarterBootstrapAdminAngular6</h1>
+<p>This project was generated with <a href="https://github.com/angular/angular-cli">Angular CLI</a> version 6.0.8.</p>
+<h2 id="development-server">Development server</h2>
+<p>Run <code>ng serve</code> for a dev server. Navigate to <code>http://localhost:4200/</code>. The app will automatically reload if you change any of the source files.</p>
+<h2 id="code-scaffolding">Code scaffolding</h2>
+<p>Run <code>ng generate component component-name</code> to generate a new component. You can also use <code>ng generate directive|pipe|service|class|guard|interface|enum|module</code>.</p>
+<h2 id="build">Build</h2>
+<p>Run <code>ng build</code> to build the project. The build artifacts will be stored in the <code>dist/</code> directory. Use the <code>--prod</code> flag for a production build.</p>
+<h2 id="running-unit-tests">Running unit tests</h2>
+<p>Run <code>ng test</code> to execute the unit tests via <a href="https://karma-runner.github.io">Karma</a>.</p>
+<h2 id="running-end-to-end-tests">Running end-to-end tests</h2>
+<p>Run <code>ng e2e</code> to execute the end-to-end tests via <a href="http://www.protractortest.org/">Protractor</a>.</p>
+<h2 id="further-help">Further help</h2>
+<p>To get more help on the Angular CLI use <code>ng help</code> or go check out the <a href="https://github.com/angular/angular-cli/blob/master/README.md">Angular CLI README</a>.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 0;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'getting-started';
+            var COMPODOC_CURRENT_PAGE_URL = 'index.html';
+       </script>
+
+       <script src="./js/libs/custom-elements.min.js"></script>
+       <script src="./js/libs/lit-html.js"></script>
+       <script src="./js/menu-wc.js"></script>
+
+       <script src="./js/libs/bootstrap-native.js"></script>
+
+       <script src="./js/libs/es6-shim.min.js"></script>
+       <script src="./js/libs/EventDispatcher.js"></script>
+       <script src="./js/libs/promise.min.js"></script>
+       <script src="./js/libs/zepto.min.js"></script>
+
+       <script src="./js/compodoc.js"></script>
+
+       <script src="./js/tabs.js"></script>
+       <script src="./js/menu.js"></script>
+       <script src="./js/libs/clipboard.min.js"></script>
+       <script src="./js/libs/prism.js"></script>
+       <script src="./js/sourceCode.js"></script>
+          <script src="./js/search/search.js"></script>
+          <script src="./js/search/lunr.min.js"></script>
+          <script src="./js/search/search-lunr.js"></script>
+          <script src="./js/search/search_index.js"></script>
+       <script src="./js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/injectables/AlertService.html b/src/docs/injectables/AlertService.html
new file mode 100644
index 0000000..bf716af
--- /dev/null
+++ b/src/docs/injectables/AlertService.html
@@ -0,0 +1,462 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content injectable">
+                   <div class="content-data">
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Injectables</li>
+  <li>AlertService</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/services/alert.service.ts</code>
+        </p>
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#closeAlert">closeAlert</a>
+                            </li>
+                            <li>
+                                <a href="#confirm">confirm</a>
+                            </li>
+                            <li>
+                                <a href="#loadData">loadData</a>
+                            </li>
+                            <li>
+                                <a href="#successData">successData</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor()</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/services/alert.service.ts:8</a></div>
+                            </td>
+                        </tr>
+
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="closeAlert"></a>
+                        <span class="name">
+                            <b>
+                            closeAlert
+                            </b>
+                            <a href="#closeAlert"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>closeAlert()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="32" class="link-to-prism">src/app/services/alert.service.ts:32</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="confirm"></a>
+                        <span class="name">
+                            <b>
+                            confirm
+                            </b>
+                            <a href="#confirm"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>confirm(data: <a href="../interfaces/Confirm.html">Confirm</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="36" class="link-to-prism">src/app/services/alert.service.ts:36</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>data</td>
+                                                        <td>
+                                                                    <code><a href="../interfaces/Confirm.html" target="_self" >Confirm</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="loadData"></a>
+                        <span class="name">
+                            <b>
+                            loadData
+                            </b>
+                            <a href="#loadData"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>loadData(title: , html: )</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="15" class="link-to-prism">src/app/services/alert.service.ts:15</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>title</td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                                <tr>
+                                                        <td>html</td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="successData"></a>
+                        <span class="name">
+                            <b>
+                            successData
+                            </b>
+                            <a href="#successData"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>successData()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/services/alert.service.ts:11</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Injectable } from &#x27;@angular/core&#x27;;
+import swal from &#x27;sweetalert2&#x27;;
+import { Confirm } from &#x27;../interfaces/confirm.interface&#x27;;
+
+@Injectable({
+  providedIn: &#x27;root&#x27;
+})
+export class AlertService {
+  constructor() {}
+
+  successData() {
+    swal(&#x27;Good job!&#x27;, &#x27;You clicked the button!&#x27;, &#x27;success&#x27;);
+  }
+
+  loadData(title, html) {
+    swal({
+      title: title,
+      html: html,
+      onOpen: () &#x3D;&gt; {
+        swal.showLoading();
+      }
+    }).then(result &#x3D;&gt; {
+      if (
+        // Read more about handling dismissals
+        result.dismiss &#x3D;&#x3D;&#x3D; swal.DismissReason.timer
+      ) {
+        console.log(&#x27;I was closed by the timer&#x27;);
+      }
+    });
+  }
+
+  closeAlert() {
+    swal.close();
+  }
+
+  confirm(data: Confirm) {
+    return swal({
+      title: data.title,
+      text: data.text,
+      type: data.type,
+      showCancelButton: true,
+      confirmButtonColor: &#x27;#3085d6&#x27;,
+      cancelButtonColor: &#x27;#d33&#x27;,
+      confirmButtonText: &#x27;Yes, close session!&#x27;
+    });
+  }
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'injectable';
+            var COMPODOC_CURRENT_PAGE_URL = 'AlertService.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/injectables/CircuitsService.html b/src/docs/injectables/CircuitsService.html
new file mode 100644
index 0000000..63b1007
--- /dev/null
+++ b/src/docs/injectables/CircuitsService.html
@@ -0,0 +1,347 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content injectable">
+                   <div class="content-data">
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Injectables</li>
+  <li>CircuitsService</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/services/api/circuits.service.ts</code>
+        </p>
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#listByYear">listByYear</a>
+                            </li>
+                            <li>
+                                <a href="#loadListFromLocal">loadListFromLocal</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(request: <a href="../injectables/RequestService.html">RequestService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/services/api/circuits.service.ts:9</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>request</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/RequestService.html" target="_self" >RequestService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="listByYear"></a>
+                        <span class="name">
+                            <b>
+                            listByYear
+                            </b>
+                            <a href="#listByYear"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>listByYear(year: )</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/services/api/circuits.service.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>year</td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="loadListFromLocal"></a>
+                        <span class="name">
+                            <b>
+                            loadListFromLocal
+                            </b>
+                            <a href="#loadListFromLocal"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>loadListFromLocal()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="19" class="link-to-prism">src/app/services/api/circuits.service.ts:19</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Injectable } from &#x27;@angular/core&#x27;;
+import { CIRCUITS_URLS } from &#x27;../../constants/urls&#x27;;
+import { map } from &#x27;rxjs/internal/operators/map&#x27;;
+import { RequestService } from &#x27;./request.service&#x27;;
+
+@Injectable({
+  providedIn: &#x27;root&#x27;
+})
+export class CircuitsService {
+  constructor(private request: RequestService) {}
+
+  listByYear(year) {
+    console.log(year + CIRCUITS_URLS.SELECT);
+    return this.request
+      .getQuery(year + CIRCUITS_URLS.SELECT)
+      .pipe(map(data &#x3D;&gt; data[&#x27;MRData&#x27;].CircuitTable.Circuits));
+  }
+
+  loadListFromLocal() {
+    return this.request
+      .getJSON(&#x27;./../../../assets/data/api/circuits2018.json&#x27;)
+      .pipe(map(data &#x3D;&gt; data[&#x27;MRData&#x27;].CircuitTable.Circuits));
+  }
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'injectable';
+            var COMPODOC_CURRENT_PAGE_URL = 'CircuitsService.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/injectables/CurrentService.html b/src/docs/injectables/CurrentService.html
new file mode 100644
index 0000000..97307ea
--- /dev/null
+++ b/src/docs/injectables/CurrentService.html
@@ -0,0 +1,172 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content injectable">
+                   <div class="content-data">
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Injectables</li>
+  <li>CurrentService</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/services/api/current.service.ts</code>
+        </p>
+
+
+
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor()</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="6" class="link-to-prism">src/app/services/api/current.service.ts:6</a></div>
+                            </td>
+                        </tr>
+
+            </tbody>
+        </table>
+</section>
+
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Injectable } from &#x27;@angular/core&#x27;;
+
+@Injectable({
+  providedIn: &#x27;root&#x27;
+})
+export class CurrentService {
+  constructor() {}
+
+  // Race results
+  // http://ergast.com/api/f1/2018/driverStandings.json
+
+  // Results of select race
+  // http://ergast.com/api/f1/2018/1/driverStandings.json
+
+  // Constructor
+  // http://ergast.com/api/f1/2008/constructorStandings.json
+  // http://ergast.com/api/f1/2008/5/constructorStandings.json
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'injectable';
+            var COMPODOC_CURRENT_PAGE_URL = 'CurrentService.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/injectables/DriversService.html b/src/docs/injectables/DriversService.html
new file mode 100644
index 0000000..059b1d4
--- /dev/null
+++ b/src/docs/injectables/DriversService.html
@@ -0,0 +1,348 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content injectable">
+                   <div class="content-data">
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Injectables</li>
+  <li>DriversService</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/services/api/drivers.service.ts</code>
+        </p>
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#listByYear">listByYear</a>
+                            </li>
+                            <li>
+                                <a href="#loadListFromLocal">loadListFromLocal</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(request: <a href="../injectables/RequestService.html">RequestService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/services/api/drivers.service.ts:9</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>request</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/RequestService.html" target="_self" >RequestService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="listByYear"></a>
+                        <span class="name">
+                            <b>
+                            listByYear
+                            </b>
+                            <a href="#listByYear"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>listByYear(year: )</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="15" class="link-to-prism">src/app/services/api/drivers.service.ts:15</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>year</td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="loadListFromLocal"></a>
+                        <span class="name">
+                            <b>
+                            loadListFromLocal
+                            </b>
+                            <a href="#loadListFromLocal"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>loadListFromLocal()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="21" class="link-to-prism">src/app/services/api/drivers.service.ts:21</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Injectable } from &#x27;@angular/core&#x27;;
+import { DRIVERS_URLS } from &#x27;../../constants/urls&#x27;;
+import { RequestService } from &#x27;./request.service&#x27;;
+import { map } from &#x27;rxjs/internal/operators/map&#x27;;
+
+@Injectable({
+  providedIn: &#x27;root&#x27;
+})
+export class DriversService {
+  constructor(private request: RequestService) {}
+
+  // https://ergast.com/api/f1/2008/drivers/&lt;driver-id&gt;/results.json
+  // https://ergast.com/api/f1/2008/drivers/&lt;driver-id&gt;/results/&lt;number-race&gt;.json
+
+  listByYear(year) {
+    console.log(year + DRIVERS_URLS.ALL_DRIVERS_SELECT);
+    return this.request.getQuery(year + DRIVERS_URLS.ALL_DRIVERS_SELECT)
+      .pipe(map(data &#x3D;&gt; data[&#x27;MRData&#x27;].DriverTable.Drivers));
+  }
+
+  loadListFromLocal() {
+    return this.request.getJSON(&#x27;./../../../assets/data/api/drivers2018.json&#x27;)
+      .pipe(map(data &#x3D;&gt; data[&#x27;MRData&#x27;].DriverTable.Drivers));
+  }
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'injectable';
+            var COMPODOC_CURRENT_PAGE_URL = 'DriversService.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/injectables/LocalStorageService.html b/src/docs/injectables/LocalStorageService.html
new file mode 100644
index 0000000..7ec1e1d
--- /dev/null
+++ b/src/docs/injectables/LocalStorageService.html
@@ -0,0 +1,605 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content injectable">
+                   <div class="content-data">
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Injectables</li>
+  <li>LocalStorageService</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/services/local-storage.service.ts</code>
+        </p>
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#USER_CREDENTIALS">USER_CREDENTIALS</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#clearSelectData">clearSelectData</a>
+                            </li>
+                            <li>
+                                <a href="#getNameLastName">getNameLastName</a>
+                            </li>
+                            <li>
+                                <a href="#saveDataInLocal">saveDataInLocal</a>
+                            </li>
+                            <li>
+                                <a href="#saveUserCredentials">saveUserCredentials</a>
+                            </li>
+                            <li>
+                                <a href="#takeUserLoginData">takeUserLoginData</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor()</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="7" class="link-to-prism">src/app/services/local-storage.service.ts:7</a></div>
+                            </td>
+                        </tr>
+
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="clearSelectData"></a>
+                        <span class="name">
+                            <b>
+                            clearSelectData
+                            </b>
+                            <a href="#clearSelectData"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>clearSelectData(itemParam: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="29" class="link-to-prism">src/app/services/local-storage.service.ts:29</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>itemParam</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="getNameLastName"></a>
+                        <span class="name">
+                            <b>
+                            getNameLastName
+                            </b>
+                            <a href="#getNameLastName"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>getNameLastName()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/services/local-storage.service.ts:13</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="saveDataInLocal"></a>
+                        <span class="name">
+                            <b>
+                            saveDataInLocal
+                            </b>
+                            <a href="#saveDataInLocal"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>saveDataInLocal(itemParam: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, value: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>, json: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank">boolean</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="22" class="link-to-prism">src/app/services/local-storage.service.ts:22</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                                    <td>Default value</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>itemParam</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                        </td>
+
+                                                </tr>
+                                                <tr>
+                                                        <td>value</td>
+                                                        <td>
+                                                                    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                        </td>
+
+                                                </tr>
+                                                <tr>
+                                                        <td>json</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                                <code>false</code>
+                                                        </td>
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="saveUserCredentials"></a>
+                        <span class="name">
+                            <b>
+                            saveUserCredentials
+                            </b>
+                            <a href="#saveUserCredentials"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>saveUserCredentials(login: <a href="../interfaces/User.html">User</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/services/local-storage.service.ts:9</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>login</td>
+                                                        <td>
+                                                                    <code><a href="../interfaces/User.html" target="_self" >User</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="takeUserLoginData"></a>
+                        <span class="name">
+                            <b>
+                            takeUserLoginData
+                            </b>
+                            <a href="#takeUserLoginData"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>takeUserLoginData()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="18" class="link-to-prism">src/app/services/local-storage.service.ts:18</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="USER_CREDENTIALS"></a>
+                        <span class="name">
+                            <b>
+                            USER_CREDENTIALS
+                            </b>
+                            <a href="#USER_CREDENTIALS"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>USER_CREDENTIALS:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>&#x27;user_credentials&#x27;</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="7" class="link-to-prism">src/app/services/local-storage.service.ts:7</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Injectable } from &#x27;@angular/core&#x27;;
+
+@Injectable({
+    providedIn: &#x27;root&#x27;
+})
+export class LocalStorageService {
+    USER_CREDENTIALS &#x3D; &#x27;user_credentials&#x27;;
+    constructor() { }
+    saveUserCredentials(login: User) {
+        this.saveDataInLocal( this.USER_CREDENTIALS, login, true);
+    }
+
+    getNameLastName() {
+        const loginData &#x3D; this.takeUserLoginData();
+        return &#x60;${loginData.name} ${loginData.lastname}&#x60;;
+    }
+
+    takeUserLoginData() {
+        return JSON.parse(localStorage.getItem(this.USER_CREDENTIALS));
+    }
+
+    saveDataInLocal(itemParam: string, value: any, json: boolean &#x3D; false ) {
+        if (!json) {
+            localStorage.setItem(itemParam, value);
+        }
+        localStorage.setItem(itemParam, JSON.stringify(value));
+    }
+
+    clearSelectData(itemParam: string) {
+        localStorage.removeItem(itemParam);
+    }
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'injectable';
+            var COMPODOC_CURRENT_PAGE_URL = 'LocalStorageService.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/injectables/RacesService.html b/src/docs/injectables/RacesService.html
new file mode 100644
index 0000000..839eac6
--- /dev/null
+++ b/src/docs/injectables/RacesService.html
@@ -0,0 +1,356 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content injectable">
+                   <div class="content-data">
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Injectables</li>
+  <li>RacesService</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/services/api/races.service.ts</code>
+        </p>
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#listByYear">listByYear</a>
+                            </li>
+                            <li>
+                                <a href="#loadListFromLocal">loadListFromLocal</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(request: <a href="../injectables/RequestService.html">RequestService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/services/api/races.service.ts:9</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>request</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/RequestService.html" target="_self" >RequestService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="listByYear"></a>
+                        <span class="name">
+                            <b>
+                            listByYear
+                            </b>
+                            <a href="#listByYear"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>listByYear(year: )</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="21" class="link-to-prism">src/app/services/api/races.service.ts:21</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>year</td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="loadListFromLocal"></a>
+                        <span class="name">
+                            <b>
+                            loadListFromLocal
+                            </b>
+                            <a href="#loadListFromLocal"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>loadListFromLocal()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="28" class="link-to-prism">src/app/services/api/races.service.ts:28</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Injectable } from &#x27;@angular/core&#x27;;
+import { RACES_URLS } from &#x27;../../constants/urls&#x27;;
+import { RequestService } from &#x27;./request.service&#x27;;
+import { map } from &#x27;rxjs/internal/operators/map&#x27;;
+
+@Injectable({
+  providedIn: &#x27;root&#x27;
+})
+export class RacesService {
+  constructor(private request: RequestService) {}
+
+  // Race list of select season
+  // https://ergast.com/api/f1/&lt;year&gt;.json
+
+  // Select race info in select year
+  // https://ergast.com/api/f1/&lt;year&gt;/&lt;number-race&gt;.json
+
+  // ranking result of select race
+  // https://ergast.com/api/f1/&lt;year&gt;/&lt;number-race&gt;/results.json
+
+  listByYear(year) {
+    console.log(year + RACES_URLS.ALL_RACES_SELECT);
+    return this.request
+      .getQuery(year + RACES_URLS.ALL_RACES_SELECT)
+      .pipe(map(data &#x3D;&gt; data[&#x27;MRData&#x27;].RaceTable.Races));
+  }
+
+  loadListFromLocal() {
+    return this.request
+      .getJSON(&#x27;./../../../assets/data/api/races2018.json&#x27;)
+      .pipe(map(data &#x3D;&gt; data[&#x27;MRData&#x27;].RaceTable.Races));
+  }
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'injectable';
+            var COMPODOC_CURRENT_PAGE_URL = 'RacesService.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/injectables/RequestService.html b/src/docs/injectables/RequestService.html
new file mode 100644
index 0000000..943d068
--- /dev/null
+++ b/src/docs/injectables/RequestService.html
@@ -0,0 +1,582 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content injectable">
+                   <div class="content-data">
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Injectables</li>
+  <li>RequestService</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/services/api/request.service.ts</code>
+        </p>
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#API_URL">API_URL</a>
+                            </li>
+                            <li>
+                                <a href="#httpOptions">httpOptions</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                    <span class="modifier">Public</span>
+                                <a href="#getJSON">getJSON</a>
+                            </li>
+                            <li>
+                                <a href="#getQuery">getQuery</a>
+                            </li>
+                            <li>
+                                <a href="#postQuery">postQuery</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(_http: <a href="https://angular.io/api/common/http/HttpClient" target="_blank">HttpClient</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="17" class="link-to-prism">src/app/services/api/request.service.ts:17</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>_http</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="https://angular.io/api/common/http/HttpClient" target="_blank" >HttpClient</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="getJSON"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Public</span>
+                            getJSON
+                            </b>
+                            <a href="#getJSON"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                            <span class="modifier-icon icon ion-ios-reset"></span>
+                        <code>getJSON(path: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="35" class="link-to-prism">src/app/services/api/request.service.ts:35</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>path</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code>Observable&lt;any&gt;</code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="getQuery"></a>
+                        <span class="name">
+                            <b>
+                            getQuery
+                            </b>
+                            <a href="#getQuery"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>getQuery(query: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank">String</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="20" class="link-to-prism">src/app/services/api/request.service.ts:20</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>query</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="postQuery"></a>
+                        <span class="name">
+                            <b>
+                            postQuery
+                            </b>
+                            <a href="#postQuery"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>postQuery(resourceUrl: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, data: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="24" class="link-to-prism">src/app/services/api/request.service.ts:24</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>resourceUrl</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                                <tr>
+                                                        <td>data</td>
+                                                        <td>
+                                                                    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="API_URL"></a>
+                        <span class="name">
+                            <b>
+                            API_URL
+                            </b>
+                            <a href="#API_URL"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>API_URL:     <code></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>URL_LOCALHOST</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/services/api/request.service.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="httpOptions"></a>
+                        <span class="name">
+                            <b>
+                            httpOptions
+                            </b>
+                            <a href="#httpOptions"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>httpOptions:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>{
+    headers: new HttpHeaders({
+      &#x27;Content-Type&#x27;: &#x27;application/json&#x27;
+    })
+  }</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/services/api/request.service.ts:13</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Injectable } from &#x27;@angular/core&#x27;;
+import { URL_LOCALHOST } from &#x27;../../constants/urls&#x27;;
+import { HttpHeaders, HttpClient } from &#x27;@angular/common/http&#x27;;
+import { map } from &#x27;rxjs/internal/operators/map&#x27;;
+import { Observable } from &#x27;rxjs&#x27;;
+
+
+@Injectable({
+  providedIn: &#x27;root&#x27;
+})
+export class RequestService {
+  API_URL &#x3D; URL_LOCALHOST;
+  httpOptions &#x3D; {
+    headers: new HttpHeaders({
+      &#x27;Content-Type&#x27;: &#x27;application/json&#x27;
+    })
+  };
+  constructor(private _http: HttpClient) {}
+
+  getQuery(query: String) {
+    return this._http.get(&#x60;${this.API_URL}${query}&#x60;);
+  }
+
+  postQuery(resourceUrl: string, data: any) {
+    return this._http
+      .post(this.API_URL + resourceUrl, data, this.httpOptions)
+      .pipe(
+        map((res: any) &#x3D;&gt; {
+          console.log(res);
+          return res;
+        })
+      );
+  }
+
+  public getJSON(path: string): Observable&lt;any&gt; {
+    return this._http.get(path);
+  }
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'injectable';
+            var COMPODOC_CURRENT_PAGE_URL = 'RequestService.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/injectables/SeasonsService.html b/src/docs/injectables/SeasonsService.html
new file mode 100644
index 0000000..7869bf9
--- /dev/null
+++ b/src/docs/injectables/SeasonsService.html
@@ -0,0 +1,320 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content injectable">
+                   <div class="content-data">
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Injectables</li>
+  <li>SeasonsService</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/services/api/seasons.service.ts</code>
+        </p>
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#list">list</a>
+                            </li>
+                            <li>
+                                <a href="#loadListFromLocal">loadListFromLocal</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor(request: <a href="../injectables/RequestService.html">RequestService</a>)</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/services/api/seasons.service.ts:9</a></div>
+                            </td>
+                        </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                            <div>
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>request</td>
+                                                  
+                                                        <td>
+                                                                    <code><a href="../injectables/RequestService.html" target="_self" >RequestService</a></code>
+                                                        </td>
+                                                  
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="list"></a>
+                        <span class="name">
+                            <b>
+                            list
+                            </b>
+                            <a href="#list"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>list()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/services/api/seasons.service.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="loadListFromLocal"></a>
+                        <span class="name">
+                            <b>
+                            loadListFromLocal
+                            </b>
+                            <a href="#loadListFromLocal"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>loadListFromLocal()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="19" class="link-to-prism">src/app/services/api/seasons.service.ts:19</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Injectable } from &#x27;@angular/core&#x27;;
+import { SEASONS_URLS } from &#x27;../../constants/urls&#x27;;
+import { RequestService } from &#x27;./request.service&#x27;;
+import { map } from &#x27;rxjs/internal/operators/map&#x27;;
+
+@Injectable({
+  providedIn: &#x27;root&#x27;
+})
+export class SeasonsService {
+  constructor(private request: RequestService) {}
+
+  list() {
+    console.log(SEASONS_URLS.ALL_SEASONS_URL);
+    return this.request
+      .getQuery(SEASONS_URLS.ALL_SEASONS_URL)
+      .pipe(map(data &#x3D;&gt; data[&#x27;MRData&#x27;].SeasonTable.Seasons));
+  }
+
+  loadListFromLocal() {
+    return this.request
+      .getJSON(&#x27;./../../../assets/data/api/seasons.json&#x27;)
+      .pipe(map(data &#x3D;&gt; data[&#x27;MRData&#x27;].SeasonTable.Seasons));
+  }
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'injectable';
+            var COMPODOC_CURRENT_PAGE_URL = 'SeasonsService.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/injectables/SettingsService.html b/src/docs/injectables/SettingsService.html
new file mode 100644
index 0000000..7e9d4e4
--- /dev/null
+++ b/src/docs/injectables/SettingsService.html
@@ -0,0 +1,163 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content injectable">
+                   <div class="content-data">
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Injectables</li>
+  <li>SettingsService</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/services/settings.service.ts</code>
+        </p>
+
+
+
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor()</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="6" class="link-to-prism">src/app/services/settings.service.ts:6</a></div>
+                            </td>
+                        </tr>
+
+            </tbody>
+        </table>
+</section>
+
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Injectable } from &#x27;@angular/core&#x27;;
+
+@Injectable({
+  providedIn: &#x27;root&#x27;
+})
+export class SettingsService {
+
+  constructor() { }
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'injectable';
+            var COMPODOC_CURRENT_PAGE_URL = 'SettingsService.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/injectables/SharedService.html b/src/docs/injectables/SharedService.html
new file mode 100644
index 0000000..c749f36
--- /dev/null
+++ b/src/docs/injectables/SharedService.html
@@ -0,0 +1,328 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content injectable">
+                   <div class="content-data">
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Injectables</li>
+  <li>SharedService</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/services/shared.service.ts</code>
+        </p>
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                    <span class="modifier">Private</span>
+                                <a href="#selectPage">selectPage</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Methods</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#setSelectPage">setSelectPage</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+            <section>
+    <h3 id="constructor">Constructor</h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+<code>constructor()</code>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <div class="io-line">Defined in <a href="" data-line="7" class="link-to-prism">src/app/services/shared.service.ts:7</a></div>
+                            </td>
+                        </tr>
+
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="setSelectPage"></a>
+                        <span class="name">
+                            <b>
+                            setSelectPage
+                            </b>
+                            <a href="#setSelectPage"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>setSelectPage(page: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="13" class="link-to-prism">src/app/services/shared.service.ts:13</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>page</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="selectPage"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Private</span>
+                            selectPage
+                            </b>
+                            <a href="#selectPage"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <span class="modifier-icon icon ion-ios-reset"></span><code>selectPage:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="7" class="link-to-prism">src/app/services/shared.service.ts:7</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Injectable, Output, EventEmitter } from &#x27;@angular/core&#x27;;
+
+@Injectable({
+  providedIn: &#x27;root&#x27;
+})
+export class SharedService {
+  private selectPage: string;
+  constructor() {}
+
+  @Output()
+  change: EventEmitter&lt;string&gt; &#x3D; new EventEmitter();
+
+  setSelectPage(page: string) {
+    this.change.emit(page);
+  }
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'injectable';
+            var COMPODOC_CURRENT_PAGE_URL = 'SharedService.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/injectables/SidebarService.html b/src/docs/injectables/SidebarService.html
new file mode 100644
index 0000000..46c9834
--- /dev/null
+++ b/src/docs/injectables/SidebarService.html
@@ -0,0 +1,288 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content injectable">
+                   <div class="content-data">
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Injectables</li>
+  <li>SidebarService</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/services/sidebar.service.ts</code>
+        </p>
+
+
+
+            <section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <h6><b>Properties</b></h6>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <ul class="index-list">
+                            <li>
+                                <a href="#menu">menu</a>
+                            </li>
+                        </ul>
+                    </td>
+                </tr>
+
+
+
+
+
+
+        </tbody>
+    </table>
+</section>
+
+
+
+            <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="menu"></a>
+                        <span class="name">
+                            <b>
+                            menu
+                            </b>
+                            <a href="#menu"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>menu:     <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[
+    {
+      title: &#x27;Current Year&#x27;,
+      icon: &#x27;fas fa-tachometer-alt&#x27;,
+      route: &#x27;/dashboard&#x27;
+    },
+    {
+      title: &#x27;Seasons&#x27;,
+      icon: &#x27;fas fa-award&#x27;,
+      route: &#x27;/seasons&#x27;
+    },
+    {
+      title: &#x27;Charts&#x27;,
+      icon: &#x27;fas fa-chart-line&#x27;,
+      route: &#x27;/charts&#x27;
+    },
+    {
+      title: &#x27;Drivers&#x27;,
+      icon: &#x27;fas fa-car&#x27;,
+      route: &#x27;/drivers&#x27;
+    },
+    {
+      title: &#x27;Circuits&#x27;,
+      icon: &#x27;fas fa-road&#x27;,
+      route: &#x27;/circuits&#x27;
+    },
+    {
+      title: &#x27;Races&#x27;,
+      icon: &#x27;fas fa-flag-checkered&#x27;,
+      route: &#x27;/races&#x27;
+    },
+    {
+      title: &#x27;Settings&#x27;,
+      icon: &#x27;fas fa-wrench&#x27;,
+      route: &#x27;/settings&#x27;
+    }
+  ]</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="7" class="link-to-prism">src/app/services/sidebar.service.ts:7</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Injectable } from &#x27;@angular/core&#x27;;
+
+@Injectable({
+  providedIn: &#x27;root&#x27;
+})
+export class SidebarService {
+  menu: any &#x3D; [
+    {
+      title: &#x27;Current Year&#x27;,
+      icon: &#x27;fas fa-tachometer-alt&#x27;,
+      route: &#x27;/dashboard&#x27;
+    },
+    {
+      title: &#x27;Seasons&#x27;,
+      icon: &#x27;fas fa-award&#x27;,
+      route: &#x27;/seasons&#x27;
+    },
+    {
+      title: &#x27;Charts&#x27;,
+      icon: &#x27;fas fa-chart-line&#x27;,
+      route: &#x27;/charts&#x27;
+    },
+    {
+      title: &#x27;Drivers&#x27;,
+      icon: &#x27;fas fa-car&#x27;,
+      route: &#x27;/drivers&#x27;
+    },
+    {
+      title: &#x27;Circuits&#x27;,
+      icon: &#x27;fas fa-road&#x27;,
+      route: &#x27;/circuits&#x27;
+    },
+    {
+      title: &#x27;Races&#x27;,
+      icon: &#x27;fas fa-flag-checkered&#x27;,
+      route: &#x27;/races&#x27;
+    },
+    {
+      title: &#x27;Settings&#x27;,
+      icon: &#x27;fas fa-wrench&#x27;,
+      route: &#x27;/settings&#x27;
+    }
+  ];
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'injectable';
+            var COMPODOC_CURRENT_PAGE_URL = 'SidebarService.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/interfaces/Circuit.html b/src/docs/interfaces/Circuit.html
new file mode 100644
index 0000000..c6e7217
--- /dev/null
+++ b/src/docs/interfaces/Circuit.html
@@ -0,0 +1,291 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content interface">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Interfaces</li>
+  <li>Circuit</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/interfaces/circuit.interface.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3 id="index">Index</h3>
+            <table class="table table-sm table-bordered index-table">
+                <tbody>
+                    <tr>
+                        <td class="col-md-4">
+                            <h6><b>Properties</b></h6>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <ul class="index-list">
+                                <li>
+                                        <a href="#circuitId">circuitId</a>
+                                </li>
+                                <li>
+                                        <a href="#circuitName">circuitName</a>
+                                </li>
+                                <li>
+                                        <a href="#Location">Location</a>
+                                </li>
+                                <li>
+                                        <a href="#url">url</a>
+                                </li>
+                            </ul>
+                        </td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+
+
+            <section>
+                <h3 id="inputs">Properties</h3>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="circuitId"></a>
+                                        <span class="name"><b>circuitId</b><a href="#circuitId"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>circuitId:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="circuitName"></a>
+                                        <span class="name"><b>circuitName</b><a href="#circuitName"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>circuitName:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="Location"></a>
+                                        <span class="name"><b>Location</b><a href="#Location"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>Location:     <code><a href="../interfaces/Location.html" target="_self" >Location</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="../interfaces/Location.html" target="_self" >Location</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="url"></a>
+                                        <span class="name"><b>url</b><a href="#url"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>url:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+            </section>
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Location } from &#x27;./location.interface&#x27;;
+
+export interface Circuit {
+  circuitId: string;
+  url: string;
+  circuitName: string;
+  Location: Location;
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'interface';
+            var COMPODOC_CURRENT_PAGE_URL = 'Circuit.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/interfaces/Confirm.html b/src/docs/interfaces/Confirm.html
new file mode 100644
index 0000000..80f35aa
--- /dev/null
+++ b/src/docs/interfaces/Confirm.html
@@ -0,0 +1,390 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content interface">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Interfaces</li>
+  <li>Confirm</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/interfaces/confirm.interface.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3 id="index">Index</h3>
+            <table class="table table-sm table-bordered index-table">
+                <tbody>
+                    <tr>
+                        <td class="col-md-4">
+                            <h6><b>Properties</b></h6>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <ul class="index-list">
+                                <li>
+                                        <a href="#cancelButtonColor">cancelButtonColor</a>
+                                </li>
+                                <li>
+                                        <a href="#confirmButtonColor">confirmButtonColor</a>
+                                </li>
+                                <li>
+                                        <a href="#confirmButtonText">confirmButtonText</a>
+                                </li>
+                                <li>
+                                        <a href="#showCancelButton">showCancelButton</a>
+                                </li>
+                                <li>
+                                        <a href="#text">text</a>
+                                </li>
+                                <li>
+                                        <a href="#title">title</a>
+                                </li>
+                                <li>
+                                        <a href="#type">type</a>
+                                </li>
+                            </ul>
+                        </td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+
+
+            <section>
+                <h3 id="inputs">Properties</h3>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="cancelButtonColor"></a>
+                                        <span class="name"><b>cancelButtonColor</b><a href="#cancelButtonColor"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>cancelButtonColor:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="confirmButtonColor"></a>
+                                        <span class="name"><b>confirmButtonColor</b><a href="#confirmButtonColor"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>confirmButtonColor:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="confirmButtonText"></a>
+                                        <span class="name"><b>confirmButtonText</b><a href="#confirmButtonText"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>confirmButtonText:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="showCancelButton"></a>
+                                        <span class="name"><b>showCancelButton</b><a href="#showCancelButton"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>showCancelButton:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean" target="_blank" >Boolean</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean" target="_blank" >Boolean</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="text"></a>
+                                        <span class="name"><b>text</b><a href="#text"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>text:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="title"></a>
+                                        <span class="name"><b>title</b><a href="#title"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>title:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="type"></a>
+                                        <span class="name"><b>type</b><a href="#type"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>type:     <code>SweetAlertType</code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code>SweetAlertType</code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+            </section>
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { SweetAlertType } from &#x27;sweetalert2&#x27;;
+
+export interface Confirm {
+  title: string;
+  text: string;
+  type: SweetAlertType;
+  showCancelButton: Boolean;
+  confirmButtonColor: string;
+  cancelButtonColor: string;
+  confirmButtonText: string;
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'interface';
+            var COMPODOC_CURRENT_PAGE_URL = 'Confirm.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/interfaces/Constructor.html b/src/docs/interfaces/Constructor.html
new file mode 100644
index 0000000..0f22551
--- /dev/null
+++ b/src/docs/interfaces/Constructor.html
@@ -0,0 +1,289 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content interface">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Interfaces</li>
+  <li>Constructor</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/interfaces/constructor.interface.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3 id="index">Index</h3>
+            <table class="table table-sm table-bordered index-table">
+                <tbody>
+                    <tr>
+                        <td class="col-md-4">
+                            <h6><b>Properties</b></h6>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <ul class="index-list">
+                                <li>
+                                        <a href="#constructorId">constructorId</a>
+                                </li>
+                                <li>
+                                        <a href="#name">name</a>
+                                </li>
+                                <li>
+                                        <a href="#nationality">nationality</a>
+                                </li>
+                                <li>
+                                        <a href="#url">url</a>
+                                </li>
+                            </ul>
+                        </td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+
+
+            <section>
+                <h3 id="inputs">Properties</h3>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="constructorId"></a>
+                                        <span class="name"><b>constructorId</b><a href="#constructorId"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>constructorId:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="name"></a>
+                                        <span class="name"><b>name</b><a href="#name"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>name:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="nationality"></a>
+                                        <span class="name"><b>nationality</b><a href="#nationality"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>nationality:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="url"></a>
+                                        <span class="name"><b>url</b><a href="#url"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>url:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+            </section>
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">export interface Constructor {
+    constructorId: string;
+    url: string;
+    name: string;
+    nationality: string;
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'interface';
+            var COMPODOC_CURRENT_PAGE_URL = 'Constructor.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/interfaces/Driver.html b/src/docs/interfaces/Driver.html
new file mode 100644
index 0000000..d3b223d
--- /dev/null
+++ b/src/docs/interfaces/Driver.html
@@ -0,0 +1,355 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content interface">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Interfaces</li>
+  <li>Driver</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/interfaces/driver.interface.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3 id="index">Index</h3>
+            <table class="table table-sm table-bordered index-table">
+                <tbody>
+                    <tr>
+                        <td class="col-md-4">
+                            <h6><b>Properties</b></h6>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <ul class="index-list">
+                                <li>
+                                        <a href="#dateOfBirth">dateOfBirth</a>
+                                </li>
+                                <li>
+                                        <a href="#driverId">driverId</a>
+                                </li>
+                                <li>
+                                        <a href="#familyName">familyName</a>
+                                </li>
+                                <li>
+                                        <a href="#givenName">givenName</a>
+                                </li>
+                                <li>
+                                        <a href="#nationality">nationality</a>
+                                </li>
+                                <li>
+                                        <a href="#url">url</a>
+                                </li>
+                            </ul>
+                        </td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+
+
+            <section>
+                <h3 id="inputs">Properties</h3>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="dateOfBirth"></a>
+                                        <span class="name"><b>dateOfBirth</b><a href="#dateOfBirth"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>dateOfBirth:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="driverId"></a>
+                                        <span class="name"><b>driverId</b><a href="#driverId"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>driverId:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="familyName"></a>
+                                        <span class="name"><b>familyName</b><a href="#familyName"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>familyName:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="givenName"></a>
+                                        <span class="name"><b>givenName</b><a href="#givenName"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>givenName:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="nationality"></a>
+                                        <span class="name"><b>nationality</b><a href="#nationality"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>nationality:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="url"></a>
+                                        <span class="name"><b>url</b><a href="#url"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>url:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+            </section>
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">export interface Driver {
+    driverId: string;
+    url: string;
+    givenName: string;
+    familyName: string;
+    dateOfBirth: string;
+    nationality: string;
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'interface';
+            var COMPODOC_CURRENT_PAGE_URL = 'Driver.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/interfaces/Location.html b/src/docs/interfaces/Location.html
new file mode 100644
index 0000000..924427f
--- /dev/null
+++ b/src/docs/interfaces/Location.html
@@ -0,0 +1,289 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content interface">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Interfaces</li>
+  <li>Location</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/interfaces/location.interface.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3 id="index">Index</h3>
+            <table class="table table-sm table-bordered index-table">
+                <tbody>
+                    <tr>
+                        <td class="col-md-4">
+                            <h6><b>Properties</b></h6>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <ul class="index-list">
+                                <li>
+                                        <a href="#country">country</a>
+                                </li>
+                                <li>
+                                        <a href="#lat">lat</a>
+                                </li>
+                                <li>
+                                        <a href="#locality">locality</a>
+                                </li>
+                                <li>
+                                        <a href="#long">long</a>
+                                </li>
+                            </ul>
+                        </td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+
+
+            <section>
+                <h3 id="inputs">Properties</h3>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="country"></a>
+                                        <span class="name"><b>country</b><a href="#country"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>country:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="lat"></a>
+                                        <span class="name"><b>lat</b><a href="#lat"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>lat:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="locality"></a>
+                                        <span class="name"><b>locality</b><a href="#locality"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>locality:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="long"></a>
+                                        <span class="name"><b>long</b><a href="#long"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>long:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+            </section>
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">export interface Location {
+    lat: string;
+    long: string;
+    locality: string;
+    country: string;
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'interface';
+            var COMPODOC_CURRENT_PAGE_URL = 'Location.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/interfaces/Login.html b/src/docs/interfaces/Login.html
new file mode 100644
index 0000000..5f766bd
--- /dev/null
+++ b/src/docs/interfaces/Login.html
@@ -0,0 +1,289 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content interface">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Interfaces</li>
+  <li>Login</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/login/login-form/login.interface.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3 id="index">Index</h3>
+            <table class="table table-sm table-bordered index-table">
+                <tbody>
+                    <tr>
+                        <td class="col-md-4">
+                            <h6><b>Properties</b></h6>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <ul class="index-list">
+                                <li>
+                                        <a href="#_failure_path">_failure_path</a>
+                                </li>
+                                <li>
+                                        <a href="#_password">_password</a>
+                                </li>
+                                <li>
+                                        <a href="#_target_path">_target_path</a>
+                                </li>
+                                <li>
+                                        <a href="#_username">_username</a>
+                                </li>
+                            </ul>
+                        </td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+
+
+            <section>
+                <h3 id="inputs">Properties</h3>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="_failure_path"></a>
+                                        <span class="name"><b>_failure_path</b><a href="#_failure_path"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>_failure_path:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="_password"></a>
+                                        <span class="name"><b>_password</b><a href="#_password"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>_password:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="_target_path"></a>
+                                        <span class="name"><b>_target_path</b><a href="#_target_path"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>_target_path:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="_username"></a>
+                                        <span class="name"><b>_username</b><a href="#_username"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>_username:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+            </section>
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">interface Login {
+    _username: String;
+    _password: String;
+    _target_path: String;
+    _failure_path: String;
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'interface';
+            var COMPODOC_CURRENT_PAGE_URL = 'Login.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/interfaces/MarkerIF.html b/src/docs/interfaces/MarkerIF.html
new file mode 100644
index 0000000..1357d84
--- /dev/null
+++ b/src/docs/interfaces/MarkerIF.html
@@ -0,0 +1,398 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content interface">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Interfaces</li>
+  <li>MarkerIF</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/interfaces/marker.interface.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3 id="index">Index</h3>
+            <table class="table table-sm table-bordered index-table">
+                <tbody>
+                    <tr>
+                        <td class="col-md-4">
+                            <h6><b>Properties</b></h6>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <ul class="index-list">
+                                <li>
+                                            <span class="modifier">Optional</span>
+                                        <a href="#color">color</a>
+                                </li>
+                                <li>
+                                            <span class="modifier">Optional</span>
+                                        <a href="#label">label</a>
+                                </li>
+                                <li>
+                                        <a href="#lat">lat</a>
+                                </li>
+                                <li>
+                                        <a href="#lng">lng</a>
+                                </li>
+                                <li>
+                                        <a href="#locality">locality</a>
+                                </li>
+                                <li>
+                                        <a href="#name">name</a>
+                                </li>
+                            </ul>
+                        </td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+
+
+            <section>
+                <h3 id="inputs">Properties</h3>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="color"></a>
+                                        <span class="name"><b>color</b><a href="#color"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>color:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Optional</i>
+                                        </td>
+                                    </tr>
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="label"></a>
+                                        <span class="name"><b>label</b><a href="#label"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>label:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Optional</i>
+                                        </td>
+                                    </tr>
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="lat"></a>
+                                        <span class="name"><b>lat</b><a href="#lat"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>lat:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                            <tr>
+                                <td class="col-md-4">
+                                    <div class="io-description"><p>Marker location.
+lat: Latitude / lng: Longitude</p>
+</div>
+                                </td>
+                            </tr>
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="lng"></a>
+                                        <span class="name"><b>lng</b><a href="#lng"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>lng:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="locality"></a>
+                                        <span class="name"><b>locality</b><a href="#locality"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>locality:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                            <tr>
+                                <td class="col-md-4">
+                                    <div class="io-description"><p>Locality to celebrate Grand Prix. For example: Barcelona (Spain)</p>
+</div>
+                                </td>
+                            </tr>
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="name"></a>
+                                        <span class="name"><b>name</b><a href="#name"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>name:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                            <tr>
+                                <td class="col-md-4">
+                                    <div class="io-description"><p>Marker name</p>
+</div>
+                                </td>
+                            </tr>
+                        </tbody>
+                    </table>
+            </section>
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">export interface MarkerIF {
+    /**
+     * Marker name
+     */
+    name: string;
+
+    /**
+     * Marker location.
+     * lat: Latitude / lng: Longitude
+     */
+    lat: number;
+    lng: number;
+
+    /**
+     * Locality to celebrate Grand Prix. For example: Barcelona (Spain)
+     */
+    locality: string;
+    color?: string;
+    label?: string;
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'interface';
+            var COMPODOC_CURRENT_PAGE_URL = 'MarkerIF.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/interfaces/Race.html b/src/docs/interfaces/Race.html
new file mode 100644
index 0000000..716046a
--- /dev/null
+++ b/src/docs/interfaces/Race.html
@@ -0,0 +1,390 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content interface">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Interfaces</li>
+  <li>Race</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/interfaces/race.interface.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3 id="index">Index</h3>
+            <table class="table table-sm table-bordered index-table">
+                <tbody>
+                    <tr>
+                        <td class="col-md-4">
+                            <h6><b>Properties</b></h6>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <ul class="index-list">
+                                <li>
+                                        <a href="#Circuit">Circuit</a>
+                                </li>
+                                <li>
+                                        <a href="#date">date</a>
+                                </li>
+                                <li>
+                                        <a href="#raceName">raceName</a>
+                                </li>
+                                <li>
+                                        <a href="#round">round</a>
+                                </li>
+                                <li>
+                                        <a href="#season">season</a>
+                                </li>
+                                <li>
+                                        <a href="#time">time</a>
+                                </li>
+                                <li>
+                                        <a href="#url">url</a>
+                                </li>
+                            </ul>
+                        </td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+
+
+            <section>
+                <h3 id="inputs">Properties</h3>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="Circuit"></a>
+                                        <span class="name"><b>Circuit</b><a href="#Circuit"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>Circuit:     <code><a href="../interfaces/Circuit.html" target="_self" >Circuit</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="../interfaces/Circuit.html" target="_self" >Circuit</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="date"></a>
+                                        <span class="name"><b>date</b><a href="#date"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>date:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="raceName"></a>
+                                        <span class="name"><b>raceName</b><a href="#raceName"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>raceName:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="round"></a>
+                                        <span class="name"><b>round</b><a href="#round"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>round:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="season"></a>
+                                        <span class="name"><b>season</b><a href="#season"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>season:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="time"></a>
+                                        <span class="name"><b>time</b><a href="#time"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>time:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="url"></a>
+                                        <span class="name"><b>url</b><a href="#url"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>url:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+            </section>
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Circuit } from &#x27;./circuit.interface&#x27;;
+
+export interface Race {
+    season: string;
+    round: string;
+    url: string;
+    raceName: string;
+    Circuit: Circuit;
+    date: string;
+    time: string;
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'interface';
+            var COMPODOC_CURRENT_PAGE_URL = 'Race.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/interfaces/Season.html b/src/docs/interfaces/Season.html
new file mode 100644
index 0000000..2635623
--- /dev/null
+++ b/src/docs/interfaces/Season.html
@@ -0,0 +1,223 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content interface">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Interfaces</li>
+  <li>Season</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/interfaces/seasons.interface.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3 id="index">Index</h3>
+            <table class="table table-sm table-bordered index-table">
+                <tbody>
+                    <tr>
+                        <td class="col-md-4">
+                            <h6><b>Properties</b></h6>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <ul class="index-list">
+                                <li>
+                                        <a href="#season">season</a>
+                                </li>
+                                <li>
+                                        <a href="#url">url</a>
+                                </li>
+                            </ul>
+                        </td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+
+
+            <section>
+                <h3 id="inputs">Properties</h3>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="season"></a>
+                                        <span class="name"><b>season</b><a href="#season"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>season:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="url"></a>
+                                        <span class="name"><b>url</b><a href="#url"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>url:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+            </section>
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">export interface Season {
+    url: string;
+    season: string;
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'interface';
+            var COMPODOC_CURRENT_PAGE_URL = 'Season.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/interfaces/User.html b/src/docs/interfaces/User.html
new file mode 100644
index 0000000..c935d14
--- /dev/null
+++ b/src/docs/interfaces/User.html
@@ -0,0 +1,388 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content interface">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Interfaces</li>
+  <li>User</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/interfaces/user.interface.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3 id="index">Index</h3>
+            <table class="table table-sm table-bordered index-table">
+                <tbody>
+                    <tr>
+                        <td class="col-md-4">
+                            <h6><b>Properties</b></h6>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <ul class="index-list">
+                                <li>
+                                        <a href="#email">email</a>
+                                </li>
+                                <li>
+                                        <a href="#id">id</a>
+                                </li>
+                                <li>
+                                        <a href="#lastname">lastname</a>
+                                </li>
+                                <li>
+                                        <a href="#name">name</a>
+                                </li>
+                                <li>
+                                        <a href="#role">role</a>
+                                </li>
+                                <li>
+                                        <a href="#token">token</a>
+                                </li>
+                                <li>
+                                        <a href="#username">username</a>
+                                </li>
+                            </ul>
+                        </td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+
+
+            <section>
+                <h3 id="inputs">Properties</h3>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="email"></a>
+                                        <span class="name"><b>email</b><a href="#email"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>email:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="id"></a>
+                                        <span class="name"><b>id</b><a href="#id"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>id:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="lastname"></a>
+                                        <span class="name"><b>lastname</b><a href="#lastname"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>lastname:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="name"></a>
+                                        <span class="name"><b>name</b><a href="#name"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>name:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="role"></a>
+                                        <span class="name"><b>role</b><a href="#role"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>role:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="token"></a>
+                                        <span class="name"><b>token</b><a href="#token"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>token:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+                    <table class="table table-sm table-bordered">
+                        <tbody>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <a name="username"></a>
+                                        <span class="name"><b>username</b><a href="#username"><span class="icon ion-ios-link"></span></a></span>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td class="col-md-4">
+                                        <code>username:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+</code>
+                                    </td>
+                                </tr>
+
+
+                                    <tr>
+                                        <td class="col-md-4">
+                                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" target="_blank" >String</a></code>
+
+                                        </td>
+                                    </tr>
+
+
+
+
+
+                        </tbody>
+                    </table>
+            </section>
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">interface User {
+    email: String;
+    id: number;
+    lastname: String;
+    name: String;
+    role: String;
+    token: String;
+    username: String;
+}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'interface';
+            var COMPODOC_CURRENT_PAGE_URL = 'User.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/js/compodoc.js b/src/docs/js/compodoc.js
new file mode 100644
index 0000000..8cc41d3
--- /dev/null
+++ b/src/docs/js/compodoc.js
@@ -0,0 +1,14 @@
+var compodoc = {
+    EVENTS: {
+        READY: 'compodoc.ready',
+        SEARCH_READY: 'compodoc.search.ready'
+    }
+};
+
+Object.assign( compodoc, EventDispatcher.prototype );
+
+document.addEventListener('DOMContentLoaded', function() {
+    compodoc.dispatchEvent({
+        type: compodoc.EVENTS.READY
+    });
+});
diff --git a/src/docs/js/lazy-load-graphs.js b/src/docs/js/lazy-load-graphs.js
new file mode 100644
index 0000000..73865b6
--- /dev/null
+++ b/src/docs/js/lazy-load-graphs.js
@@ -0,0 +1,44 @@
+document.addEventListener('DOMContentLoaded', () => {
+    var lazyGraphs = [].slice.call(document.querySelectorAll('[lazy]'));
+    var active = false;
+
+    var lazyLoad = () => {
+        if (active === false) {
+            active = true;
+
+            setTimeout(() => {
+                lazyGraphs.forEach(lazyGraph => {
+                    if (
+                        lazyGraph.getBoundingClientRect().top <= window.innerHeight &&
+                        lazyGraph.getBoundingClientRect().bottom >= 0 &&
+                        getComputedStyle(lazyGraph).display !== 'none'
+                    ) {
+                        lazyGraph.data = lazyGraph.getAttribute('lazy');
+                        lazyGraph.removeAttribute('lazy');
+
+                        lazyGraphs = lazyGraphs.filter(image => image !== lazyGraph);
+
+                        if (lazyGraphs.length === 0) {
+                            document.removeEventListener('scroll', lazyLoad);
+                            window.removeEventListener('resize', lazyLoad);
+                            window.removeEventListener('orientationchange', lazyLoad);
+                        }
+                    }
+                });
+
+                active = false;
+            }, 200);
+        }
+    };
+
+    // initial load
+    lazyLoad();
+
+    var container = document.querySelector('.container-fluid.modules');
+    if (container) {
+        container.addEventListener('scroll', lazyLoad);
+        window.addEventListener('resize', lazyLoad);
+        window.addEventListener('orientationchange', lazyLoad);
+    }
+
+});
diff --git a/src/docs/js/libs/EventDispatcher.js b/src/docs/js/libs/EventDispatcher.js
new file mode 100644
index 0000000..f112877
--- /dev/null
+++ b/src/docs/js/libs/EventDispatcher.js
@@ -0,0 +1,5 @@
+/**
+ * @author mrdoob / http://mrdoob.com/
+ */
+
+var EventDispatcher=function(){};Object.assign(EventDispatcher.prototype,{addEventListener:function(i,t){void 0===this._listeners&&(this._listeners={});var e=this._listeners;void 0===e[i]&&(e[i]=[]),-1===e[i].indexOf(t)&&e[i].push(t)},hasEventListener:function(i,t){if(void 0===this._listeners)return!1;var e=this._listeners;return void 0!==e[i]&&-1!==e[i].indexOf(t)},removeEventListener:function(i,t){if(void 0!==this._listeners){var e=this._listeners[i];if(void 0!==e){var s=e.indexOf(t);-1!==s&&e.splice(s,1)}}},dispatchEvent:function(i){if(void 0!==this._listeners){var t=this._listeners[i.type];if(void 0!==t){i.target=this;var e=[],s=0,n=t.length;for(s=0;s<n;s++)e[s]=t[s];for(s=0;s<n;s++)e[s].call(this,i)}}}});
\ No newline at end of file
diff --git a/src/docs/js/libs/bootstrap-native.js b/src/docs/js/libs/bootstrap-native.js
new file mode 100644
index 0000000..717cd6e
--- /dev/null
+++ b/src/docs/js/libs/bootstrap-native.js
@@ -0,0 +1,2 @@
+// Native Javascript for Bootstrap 3 v1.1.0 | © dnp_theme | MIT-License
+!function(t,e){if("function"==typeof define&&define.amd)define([],e);else if("object"==typeof module&&module.exports)module.exports=e();else{var o=e();t.Affix=o.Affix,t.Alert=o.Alert,t.Button=o.Button,t.Carousel=o.Carousel,t.Collapse=o.Collapse,t.Dropdown=o.Dropdown,t.Modal=o.Modal,t.Popover=o.Popover,t.ScrollSpy=o.ScrollSpy,t.Tab=o.Tab,t.Tooltip=o.Tooltip}}(this,function(){for(var t=function(t,e){t.classList?t.classList.add(e):(t.className+=" "+e,t.offsetWidth)},e=function(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(e,"").replace(/^\s+|\s+$/g,"")},o=null!=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})").exec(navigator.userAgent)&&parseFloat(RegExp.$1),n=function(t,e){for(var o=e.charAt(0);t&&t!==document;t=t.parentNode){if("."===o&&void 0!==document.querySelector(e))return t;if("#"===o&&t.id===e.substr(1))return t}return!1},i=(document,function(i,a){a=a||{},this.btn="object"==typeof i?i:document.querySelector(i),this.accordion=null,this.collapse=null,this.duration=300,this.options={},this.options.duration=o&&o<10?0:a.duration||this.duration;var r=this,s=function(t){var e=t&&(t.currentStyle||window.getComputedStyle(t)),o=/px/.test(e.borderTopWidth)?Math.round(e.borderTopWidth.replace("px","")):0,n=/px/.test(e.marginTop)?Math.round(e.marginTop.replace("px","")):0,i=/px/.test(e.marginBottom)?Math.round(e.marginBottom.replace("px","")):0,a=/em/.test(e.marginTop)?Math.round(e.marginTop.replace("em","")*parseInt(e.fontSize)):0,r=/em/.test(e.marginBottom)?Math.round(e.marginBottom.replace("em","")*parseInt(e.fontSize)):0;return t.clientHeight+parseInt(o)+parseInt(n)+parseInt(i)+parseInt(a)+parseInt(r)};this.toggle=function(t){t.preventDefault(),/\bin/.test(r.collapse.className)?r.close():r.open()},this.close=function(){this._close(this.collapse),t(this.btn,"collapsed")},this.open=function(){if(this._open(this.collapse),e(this.btn,"collapsed"),null!==this.accordion){var t=this.accordion.querySelectorAll(".collapse.in"),o=t.length,n=0;for(n;n<o;n++)t[n]!==this.collapse&&this._close(t[n])}},this._open=function(o){this.removeEvent(),t(o,"in"),o.setAttribute("aria-expanded","true"),t(o,"collapsing"),setTimeout(function(){o.style.height=r.getMaxHeight(o)+"px",o.style.overflowY="hidden"},0),setTimeout(function(){o.style.height="",o.style.overflowY="",e(o,"collapsing"),r.addEvent()},this.options.duration)},this._close=function(o){this.removeEvent(),o.setAttribute("aria-expanded","false"),o.style.height=this.getMaxHeight(o)+"px",setTimeout(function(){o.style.height="0px",o.style.overflowY="hidden",t(o,"collapsing")},0),setTimeout(function(){e(o,"collapsing"),e(o,"in"),o.style.overflowY="",o.style.height="",r.addEvent()},this.options.duration)},this.getMaxHeight=function(t){for(var e=0,o=0,n=t.children.length;o<n;o++)e+=s(t.children[o]);return e},this.removeEvent=function(){this.btn.removeEventListener("click",this.toggle,!1)},this.addEvent=function(){this.btn.addEventListener("click",this.toggle,!1)},this.getTarget=function(){var t=this.btn,e=t.href&&t.getAttribute("href").replace("#",""),o=t.getAttribute("data-target")&&t.getAttribute("data-target"),n=e||o&&/#/.test(o)&&o.replace("#",""),i=o&&"."===o.charAt(0)&&o;return n&&document.getElementById(n)||i&&document.querySelector(i)},this.addEvent(),this.collapse=this.getTarget(),this.accordion=this.btn.getAttribute("data-parent")&&n(this.btn,this.btn.getAttribute("data-parent"))}),a=document.querySelectorAll('[data-toggle="collapse"]'),r=0,s=a.length;r<s;r++){var l=a[r];(g={}).duration=l.getAttribute("data-duration"),new i(l,g)}for(var c=function(n,i){i=i||{},this.tab="object"==typeof n?n:document.querySelector(n),this.tabs=this.tab.parentNode.parentNode,this.dropdown=this.tabs.querySelector(".dropdown"),/\bdropdown-menu/.test(this.tabs.className)&&(this.dropdown=this.tabs.parentNode,this.tabs=this.tabs.parentNode.parentNode),this.options=i,this.duration=150,this.options.duration=o&&o<10?0:i.duration||this.duration;var a=this;this.handle=function(o){(o=o||window.e).preventDefault();var n=o.target,i=document.getElementById("c-"+n.getAttribute("href").replace("#","")),r=a.getActiveTab(),s=a.getActiveContent();/\bactive/.test(n.parentNode.className)||(e(r,"active"),t(n.parentNode,"active"),a.dropdown&&(/\bdropdown-menu/.test(a.tab.parentNode.parentNode.className)?/\bactive/.test(a.dropdown.className)||t(a.dropdown,"active"):/\bactive/.test(a.dropdown.className)&&e(a.dropdown,"active")),e(s,"in"),setTimeout(function(){e(s,"active"),t(i,"active")},a.options.duration),setTimeout(function(){t(i,"in")},2*a.options.duration))},this.getActiveTab=function(){var t=this.tabs.querySelectorAll(".active");return 1!==t.length||/\bdropdown/.test(t[0].className)?t.length>1?t[t.length-1]:void 0:t[0]},this.getActiveContent=function(){var t=this.getActiveTab().getElementsByTagName("A")[0].getAttribute("href").replace("#","");return t&&document.getElementById("c-"+t)},this.tab.addEventListener("click",this.handle,!1)},d=document.querySelectorAll("[data-toggle='tab'], [data-toggle='pill']"),u=0,h=d.length;u<h;u++){var p=d[u],g={};g.duration=p.getAttribute("data-duration")&&p.getAttribute("data-duration")||!1,new c(p,g)}return{Tab:c,Collapse:i}});
\ No newline at end of file
diff --git a/src/docs/js/libs/clipboard.min.js b/src/docs/js/libs/clipboard.min.js
new file mode 100644
index 0000000..b00ee51
--- /dev/null
+++ b/src/docs/js/libs/clipboard.min.js
@@ -0,0 +1,7 @@
+/*!
+ * clipboard.js v2.0.0
+ * https://zenorocha.github.io/clipboard.js
+ * 
+ * Licensed MIT © Zeno Rocha
+ */
+!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=3)}([function(t,e,n){var o,r,i;!function(a,c){r=[t,n(7)],o=c,void 0!==(i="function"==typeof o?o.apply(e,r):o)&&(t.exports=i)}(0,function(t,e){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=function(t){return t&&t.__esModule?t:{default:t}}(e),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),a=function(){function t(e){n(this,t),this.resolveOptions(e),this.initSelection()}return i(t,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,o.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,o.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=a})},function(t,e,n){function o(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument must be a String");if(!c.fn(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return r(t,e,n);if(c.nodeList(t))return i(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function r(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function i(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return u(document.body,t,e,n)}var c=n(6),u=n(5);t.exports=o},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function o(){r.off(t,o),e.apply(n,arguments)}var r=this;return o._=e,this.on(t,o,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;for(o;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,a=o.length;i<a;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=n},function(t,e,n){var o,r,i;!function(a,c){r=[t,n(0),n(2),n(1)],o=c,void 0!==(i="function"==typeof o?o.apply(e,r):o)&&(t.exports=i)}(0,function(t,e,n,o){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function c(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var l=r(e),s=r(n),f=r(o),d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),p=function(t){function e(t,n){i(this,e);var o=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.resolveOptions(n),o.listenClick(t),o}return c(e,t),h(e,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===d(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,f.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new l.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return u("action",t)}},{key:"defaultTarget",value:function(t){var e=u("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return u("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),e}(s.default);t.exports=p})},function(t,e){function n(t,e){for(;t&&t.nodeType!==o;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}var o=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}t.exports=n},function(t,e,n){function o(t,e,n,o,r){var a=i.apply(this,arguments);return t.addEventListener(n,a,r),{destroy:function(){t.removeEventListener(n,a,r)}}}function r(t,e,n,r,i){return"function"==typeof t.addEventListener?o.apply(null,arguments):"function"==typeof n?o.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return o(t,e,n,r,i)}))}function i(t,e,n,o){return function(n){n.delegateTarget=a(n.target,e),n.delegateTarget&&o.call(t,n)}}var a=n(4);t.exports=r},function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var n=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return"string"==typeof t||t instanceof String},e.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e){function n(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}t.exports=n}])});
\ No newline at end of file
diff --git a/src/docs/js/libs/custom-elements.min.js b/src/docs/js/libs/custom-elements.min.js
new file mode 100644
index 0000000..9b64a23
--- /dev/null
+++ b/src/docs/js/libs/custom-elements.min.js
@@ -0,0 +1,38 @@
+(function(){
+  'use strict';var h=new function(){};var aa=new Set("annotation-xml color-profile font-face font-face-src font-face-uri font-face-format font-face-name missing-glyph".split(" "));function m(b){var a=aa.has(b);b=/^[a-z][.0-9_a-z]*-[\-.0-9_a-z]*$/.test(b);return!a&&b}function n(b){var a=b.isConnected;if(void 0!==a)return a;for(;b&&!(b.__CE_isImportDocument||b instanceof Document);)b=b.parentNode||(window.ShadowRoot&&b instanceof ShadowRoot?b.host:void 0);return!(!b||!(b.__CE_isImportDocument||b instanceof Document))}
+  function p(b,a){for(;a&&a!==b&&!a.nextSibling;)a=a.parentNode;return a&&a!==b?a.nextSibling:null}
+  function t(b,a,c){c=c?c:new Set;for(var d=b;d;){if(d.nodeType===Node.ELEMENT_NODE){var e=d;a(e);var f=e.localName;if("link"===f&&"import"===e.getAttribute("rel")){d=e.import;if(d instanceof Node&&!c.has(d))for(c.add(d),d=d.firstChild;d;d=d.nextSibling)t(d,a,c);d=p(b,e);continue}else if("template"===f){d=p(b,e);continue}if(e=e.__CE_shadowRoot)for(e=e.firstChild;e;e=e.nextSibling)t(e,a,c)}d=d.firstChild?d.firstChild:p(b,d)}}function u(b,a,c){b[a]=c};function v(){this.a=new Map;this.s=new Map;this.f=[];this.b=!1}function ba(b,a,c){b.a.set(a,c);b.s.set(c.constructor,c)}function w(b,a){b.b=!0;b.f.push(a)}function x(b,a){b.b&&t(a,function(a){return y(b,a)})}function y(b,a){if(b.b&&!a.__CE_patched){a.__CE_patched=!0;for(var c=0;c<b.f.length;c++)b.f[c](a)}}function z(b,a){var c=[];t(a,function(b){return c.push(b)});for(a=0;a<c.length;a++){var d=c[a];1===d.__CE_state?b.connectedCallback(d):A(b,d)}}
+  function B(b,a){var c=[];t(a,function(b){return c.push(b)});for(a=0;a<c.length;a++){var d=c[a];1===d.__CE_state&&b.disconnectedCallback(d)}}
+  function C(b,a,c){c=c?c:{};var d=c.w||new Set,e=c.i||function(a){return A(b,a)},f=[];t(a,function(a){if("link"===a.localName&&"import"===a.getAttribute("rel")){var c=a.import;c instanceof Node&&(c.__CE_isImportDocument=!0,c.__CE_hasRegistry=!0);c&&"complete"===c.readyState?c.__CE_documentLoadHandled=!0:a.addEventListener("load",function(){var c=a.import;if(!c.__CE_documentLoadHandled){c.__CE_documentLoadHandled=!0;var f=new Set(d);f.delete(c);C(b,c,{w:f,i:e})}})}else f.push(a)},d);if(b.b)for(a=0;a<
+  f.length;a++)y(b,f[a]);for(a=0;a<f.length;a++)e(f[a])}
+  function A(b,a){if(void 0===a.__CE_state){var c=a.ownerDocument;if(c.defaultView||c.__CE_isImportDocument&&c.__CE_hasRegistry)if(c=b.a.get(a.localName)){c.constructionStack.push(a);var d=c.constructor;try{try{if(new d!==a)throw Error("The custom element constructor did not produce the element being upgraded.");}finally{c.constructionStack.pop()}}catch(r){throw a.__CE_state=2,r;}a.__CE_state=1;a.__CE_definition=c;if(c.attributeChangedCallback)for(c=c.observedAttributes,d=0;d<c.length;d++){var e=c[d],
+  f=a.getAttribute(e);null!==f&&b.attributeChangedCallback(a,e,null,f,null)}n(a)&&b.connectedCallback(a)}}}v.prototype.connectedCallback=function(b){var a=b.__CE_definition;a.connectedCallback&&a.connectedCallback.call(b)};v.prototype.disconnectedCallback=function(b){var a=b.__CE_definition;a.disconnectedCallback&&a.disconnectedCallback.call(b)};
+  v.prototype.attributeChangedCallback=function(b,a,c,d,e){var f=b.__CE_definition;f.attributeChangedCallback&&-1<f.observedAttributes.indexOf(a)&&f.attributeChangedCallback.call(b,a,c,d,e)};function D(b,a){this.c=b;this.a=a;this.b=void 0;C(this.c,this.a);"loading"===this.a.readyState&&(this.b=new MutationObserver(this.f.bind(this)),this.b.observe(this.a,{childList:!0,subtree:!0}))}function E(b){b.b&&b.b.disconnect()}D.prototype.f=function(b){var a=this.a.readyState;"interactive"!==a&&"complete"!==a||E(this);for(a=0;a<b.length;a++)for(var c=b[a].addedNodes,d=0;d<c.length;d++)C(this.c,c[d])};function ca(){var b=this;this.b=this.a=void 0;this.f=new Promise(function(a){b.b=a;b.a&&a(b.a)})}function F(b){if(b.a)throw Error("Already resolved.");b.a=void 0;b.b&&b.b(void 0)};function G(b){this.j=!1;this.c=b;this.o=new Map;this.l=function(b){return b()};this.g=!1;this.m=[];this.u=new D(b,document)}
+  G.prototype.define=function(b,a){var c=this;if(!(a instanceof Function))throw new TypeError("Custom element constructors must be functions.");if(!m(b))throw new SyntaxError("The element name '"+b+"' is not valid.");if(this.c.a.get(b))throw Error("A custom element with name '"+b+"' has already been defined.");if(this.j)throw Error("A custom element is already being defined.");this.j=!0;var d,e,f,r,k;try{var g=function(b){var a=l[b];if(void 0!==a&&!(a instanceof Function))throw Error("The '"+b+"' callback must be a function.");
+  return a},l=a.prototype;if(!(l instanceof Object))throw new TypeError("The custom element constructor's prototype is not an object.");d=g("connectedCallback");e=g("disconnectedCallback");f=g("adoptedCallback");r=g("attributeChangedCallback");k=a.observedAttributes||[]}catch(q){return}finally{this.j=!1}a={localName:b,constructor:a,connectedCallback:d,disconnectedCallback:e,adoptedCallback:f,attributeChangedCallback:r,observedAttributes:k,constructionStack:[]};ba(this.c,b,a);this.m.push(a);this.g||
+  (this.g=!0,this.l(function(){return da(c)}))};G.prototype.i=function(b){C(this.c,b)};function da(b){if(!1!==b.g){b.g=!1;for(var a=b.m,c=[],d=new Map,e=0;e<a.length;e++)d.set(a[e].localName,[]);C(b.c,document,{i:function(a){if(void 0===a.__CE_state){var e=a.localName,f=d.get(e);f?f.push(a):b.c.a.get(e)&&c.push(a)}}});for(e=0;e<c.length;e++)A(b.c,c[e]);for(;0<a.length;){for(var f=a.shift(),e=f.localName,f=d.get(f.localName),r=0;r<f.length;r++)A(b.c,f[r]);(e=b.o.get(e))&&F(e)}}}
+  G.prototype.get=function(b){if(b=this.c.a.get(b))return b.constructor};G.prototype.whenDefined=function(b){if(!m(b))return Promise.reject(new SyntaxError("'"+b+"' is not a valid custom element name."));var a=this.o.get(b);if(a)return a.f;a=new ca;this.o.set(b,a);this.c.a.get(b)&&!this.m.some(function(a){return a.localName===b})&&F(a);return a.f};G.prototype.v=function(b){E(this.u);var a=this.l;this.l=function(c){return b(function(){return a(c)})}};window.CustomElementRegistry=G;
+  G.prototype.define=G.prototype.define;G.prototype.upgrade=G.prototype.i;G.prototype.get=G.prototype.get;G.prototype.whenDefined=G.prototype.whenDefined;G.prototype.polyfillWrapFlushCallback=G.prototype.v;var H=window.Document.prototype.createElement,I=window.Document.prototype.createElementNS,ea=window.Document.prototype.importNode,fa=window.Document.prototype.prepend,ga=window.Document.prototype.append,ha=window.DocumentFragment.prototype.prepend,ia=window.DocumentFragment.prototype.append,J=window.Node.prototype.cloneNode,K=window.Node.prototype.appendChild,L=window.Node.prototype.insertBefore,M=window.Node.prototype.removeChild,N=window.Node.prototype.replaceChild,O=Object.getOwnPropertyDescriptor(window.Node.prototype,
+  "textContent"),P=window.Element.prototype.attachShadow,Q=Object.getOwnPropertyDescriptor(window.Element.prototype,"innerHTML"),R=window.Element.prototype.getAttribute,S=window.Element.prototype.setAttribute,T=window.Element.prototype.removeAttribute,U=window.Element.prototype.getAttributeNS,ja=window.Element.prototype.setAttributeNS,ka=window.Element.prototype.removeAttributeNS,la=window.Element.prototype.insertAdjacentElement,ma=window.Element.prototype.insertAdjacentHTML,na=window.Element.prototype.prepend,
+  oa=window.Element.prototype.append,V=window.Element.prototype.before,pa=window.Element.prototype.after,qa=window.Element.prototype.replaceWith,ra=window.Element.prototype.remove,sa=window.HTMLElement,W=Object.getOwnPropertyDescriptor(window.HTMLElement.prototype,"innerHTML"),ta=window.HTMLElement.prototype.insertAdjacentElement,ua=window.HTMLElement.prototype.insertAdjacentHTML;function va(){var b=X;window.HTMLElement=function(){function a(){var a=this.constructor,d=b.s.get(a);if(!d)throw Error("The custom element being constructed was not registered with `customElements`.");var e=d.constructionStack;if(!e.length)return e=H.call(document,d.localName),Object.setPrototypeOf(e,a.prototype),e.__CE_state=1,e.__CE_definition=d,y(b,e),e;var d=e.length-1,f=e[d];if(f===h)throw Error("The HTMLElement constructor was either called reentrantly for this constructor or called multiple times.");
+  e[d]=h;Object.setPrototypeOf(f,a.prototype);y(b,f);return f}a.prototype=sa.prototype;return a}()};function Y(b,a,c){function d(a){return function(c){for(var e=[],d=0;d<arguments.length;++d)e[d-0]=arguments[d];for(var d=[],f=[],l=0;l<e.length;l++){var q=e[l];q instanceof Element&&n(q)&&f.push(q);if(q instanceof DocumentFragment)for(q=q.firstChild;q;q=q.nextSibling)d.push(q);else d.push(q)}a.apply(this,e);for(e=0;e<f.length;e++)B(b,f[e]);if(n(this))for(e=0;e<d.length;e++)f=d[e],f instanceof Element&&z(b,f)}}c.h&&(a.prepend=d(c.h));c.append&&(a.append=d(c.append))};function wa(){var b=X;u(Document.prototype,"createElement",function(a){if(this.__CE_hasRegistry){var c=b.a.get(a);if(c)return new c.constructor}a=H.call(this,a);y(b,a);return a});u(Document.prototype,"importNode",function(a,c){a=ea.call(this,a,c);this.__CE_hasRegistry?C(b,a):x(b,a);return a});u(Document.prototype,"createElementNS",function(a,c){if(this.__CE_hasRegistry&&(null===a||"http://www.w3.org/1999/xhtml"===a)){var d=b.a.get(c);if(d)return new d.constructor}a=I.call(this,a,c);y(b,a);return a});
+  Y(b,Document.prototype,{h:fa,append:ga})};function xa(){var b=X;function a(a,d){Object.defineProperty(a,"textContent",{enumerable:d.enumerable,configurable:!0,get:d.get,set:function(a){if(this.nodeType===Node.TEXT_NODE)d.set.call(this,a);else{var e=void 0;if(this.firstChild){var c=this.childNodes,k=c.length;if(0<k&&n(this))for(var e=Array(k),g=0;g<k;g++)e[g]=c[g]}d.set.call(this,a);if(e)for(a=0;a<e.length;a++)B(b,e[a])}}})}u(Node.prototype,"insertBefore",function(a,d){if(a instanceof DocumentFragment){var e=Array.prototype.slice.apply(a.childNodes);
+  a=L.call(this,a,d);if(n(this))for(d=0;d<e.length;d++)z(b,e[d]);return a}e=n(a);d=L.call(this,a,d);e&&B(b,a);n(this)&&z(b,a);return d});u(Node.prototype,"appendChild",function(a){if(a instanceof DocumentFragment){var c=Array.prototype.slice.apply(a.childNodes);a=K.call(this,a);if(n(this))for(var e=0;e<c.length;e++)z(b,c[e]);return a}c=n(a);e=K.call(this,a);c&&B(b,a);n(this)&&z(b,a);return e});u(Node.prototype,"cloneNode",function(a){a=J.call(this,a);this.ownerDocument.__CE_hasRegistry?C(b,a):x(b,a);
+  return a});u(Node.prototype,"removeChild",function(a){var c=n(a),e=M.call(this,a);c&&B(b,a);return e});u(Node.prototype,"replaceChild",function(a,d){if(a instanceof DocumentFragment){var e=Array.prototype.slice.apply(a.childNodes);a=N.call(this,a,d);if(n(this))for(B(b,d),d=0;d<e.length;d++)z(b,e[d]);return a}var e=n(a),f=N.call(this,a,d),c=n(this);c&&B(b,d);e&&B(b,a);c&&z(b,a);return f});O&&O.get?a(Node.prototype,O):w(b,function(b){a(b,{enumerable:!0,configurable:!0,get:function(){for(var a=[],b=
+  0;b<this.childNodes.length;b++)a.push(this.childNodes[b].textContent);return a.join("")},set:function(a){for(;this.firstChild;)M.call(this,this.firstChild);K.call(this,document.createTextNode(a))}})})};function ya(b){var a=Element.prototype;function c(a){return function(e){for(var c=[],d=0;d<arguments.length;++d)c[d-0]=arguments[d];for(var d=[],k=[],g=0;g<c.length;g++){var l=c[g];l instanceof Element&&n(l)&&k.push(l);if(l instanceof DocumentFragment)for(l=l.firstChild;l;l=l.nextSibling)d.push(l);else d.push(l)}a.apply(this,c);for(c=0;c<k.length;c++)B(b,k[c]);if(n(this))for(c=0;c<d.length;c++)k=d[c],k instanceof Element&&z(b,k)}}V&&(a.before=c(V));V&&(a.after=c(pa));qa&&u(a,"replaceWith",function(a){for(var e=
+  [],c=0;c<arguments.length;++c)e[c-0]=arguments[c];for(var c=[],d=[],k=0;k<e.length;k++){var g=e[k];g instanceof Element&&n(g)&&d.push(g);if(g instanceof DocumentFragment)for(g=g.firstChild;g;g=g.nextSibling)c.push(g);else c.push(g)}k=n(this);qa.apply(this,e);for(e=0;e<d.length;e++)B(b,d[e]);if(k)for(B(b,this),e=0;e<c.length;e++)d=c[e],d instanceof Element&&z(b,d)});ra&&u(a,"remove",function(){var a=n(this);ra.call(this);a&&B(b,this)})};function za(){var b=X;function a(a,c){Object.defineProperty(a,"innerHTML",{enumerable:c.enumerable,configurable:!0,get:c.get,set:function(a){var e=this,d=void 0;n(this)&&(d=[],t(this,function(a){a!==e&&d.push(a)}));c.set.call(this,a);if(d)for(var f=0;f<d.length;f++){var r=d[f];1===r.__CE_state&&b.disconnectedCallback(r)}this.ownerDocument.__CE_hasRegistry?C(b,this):x(b,this);return a}})}function c(a,c){u(a,"insertAdjacentElement",function(a,e){var d=n(e);a=c.call(this,a,e);d&&B(b,e);n(a)&&z(b,e);
+  return a})}function d(a,c){function e(a,e){for(var c=[];a!==e;a=a.nextSibling)c.push(a);for(e=0;e<c.length;e++)C(b,c[e])}u(a,"insertAdjacentHTML",function(a,b){a=a.toLowerCase();if("beforebegin"===a){var d=this.previousSibling;c.call(this,a,b);e(d||this.parentNode.firstChild,this)}else if("afterbegin"===a)d=this.firstChild,c.call(this,a,b),e(this.firstChild,d);else if("beforeend"===a)d=this.lastChild,c.call(this,a,b),e(d||this.firstChild,null);else if("afterend"===a)d=this.nextSibling,c.call(this,
+  a,b),e(this.nextSibling,d);else throw new SyntaxError("The value provided ("+String(a)+") is not one of 'beforebegin', 'afterbegin', 'beforeend', or 'afterend'.");})}P&&u(Element.prototype,"attachShadow",function(a){return this.__CE_shadowRoot=a=P.call(this,a)});Q&&Q.get?a(Element.prototype,Q):W&&W.get?a(HTMLElement.prototype,W):w(b,function(b){a(b,{enumerable:!0,configurable:!0,get:function(){return J.call(this,!0).innerHTML},set:function(a){var b="template"===this.localName,e=b?this.content:this,
+  c=I.call(document,this.namespaceURI,this.localName);for(c.innerHTML=a;0<e.childNodes.length;)M.call(e,e.childNodes[0]);for(a=b?c.content:c;0<a.childNodes.length;)K.call(e,a.childNodes[0])}})});u(Element.prototype,"setAttribute",function(a,c){if(1!==this.__CE_state)return S.call(this,a,c);var e=R.call(this,a);S.call(this,a,c);c=R.call(this,a);b.attributeChangedCallback(this,a,e,c,null)});u(Element.prototype,"setAttributeNS",function(a,c,d){if(1!==this.__CE_state)return ja.call(this,a,c,d);var e=U.call(this,
+  a,c);ja.call(this,a,c,d);d=U.call(this,a,c);b.attributeChangedCallback(this,c,e,d,a)});u(Element.prototype,"removeAttribute",function(a){if(1!==this.__CE_state)return T.call(this,a);var c=R.call(this,a);T.call(this,a);null!==c&&b.attributeChangedCallback(this,a,c,null,null)});u(Element.prototype,"removeAttributeNS",function(a,c){if(1!==this.__CE_state)return ka.call(this,a,c);var d=U.call(this,a,c);ka.call(this,a,c);var e=U.call(this,a,c);d!==e&&b.attributeChangedCallback(this,c,d,e,a)});ta?c(HTMLElement.prototype,
+  ta):la?c(Element.prototype,la):console.warn("Custom Elements: `Element#insertAdjacentElement` was not patched.");ua?d(HTMLElement.prototype,ua):ma?d(Element.prototype,ma):console.warn("Custom Elements: `Element#insertAdjacentHTML` was not patched.");Y(b,Element.prototype,{h:na,append:oa});ya(b)};/*
+  
+   Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
+   This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+   The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+   The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+   Code distributed by Google as part of the polymer project is also
+   subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+  */
+  var Z=window.customElements;if(!Z||Z.forcePolyfill||"function"!=typeof Z.define||"function"!=typeof Z.get){var X=new v;va();wa();Y(X,DocumentFragment.prototype,{h:ha,append:ia});xa();za();document.__CE_hasRegistry=!0;var customElements=new G(X);Object.defineProperty(window,"customElements",{configurable:!0,enumerable:!0,value:customElements})};
+  }).call(self);
diff --git a/src/docs/js/libs/d3.v3.min.js b/src/docs/js/libs/d3.v3.min.js
new file mode 100644
index 0000000..dbe5850
--- /dev/null
+++ b/src/docs/js/libs/d3.v3.min.js
@@ -0,0 +1,2 @@
+// From d3-flextree
+!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return n<t?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);r<i;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);r<i;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===ho||n[0]===po?po+n:n}function s(n){return(n+="")[0]===po?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function d(){var n=0;for(var t in this._)++n;return n}function v(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function x(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function M(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=go.length;e<r;++e){var i=go[e]+t;if(i in n)return i}}function _(){}function b(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++i<u;)(t=r[i].on)&&t.apply(this,arguments);return n}var e=[],r=new c;return t.on=function(t,i){var u,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,u=e.indexOf(o)).concat(e.slice(u+1)),r.remove(t)),i&&e.push(r.set(t,{on:i})),n)},t}function S(){to.event.preventDefault()}function k(){for(var n,t=to.event;n=t.sourceEvent;)t=n;return t}function N(n){for(var t=new b,e=0,r=arguments.length;++e<r;)t[arguments[e]]=w(t);return t.of=function(e,r){return function(i){try{var u=i.sourceEvent=to.event;i.target=n,to.event=i,t[i.type].apply(e,r)}finally{to.event=u}}},t}function E(n){return yo(n,_o),n}function A(n){return"function"==typeof n?n:function(){return mo(n,this)}}function C(n){return"function"==typeof n?n:function(){return xo(n,this)}}function z(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function i(){this.setAttribute(n,t)}function u(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=to.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?u:i}function L(n){return n.trim().replace(/\s+/g," ")}function q(n){return new RegExp("(?:^|\\s+)"+to.requote(n)+"(?:\\s+|$)","g")}function T(n){return(n+"").trim().split(/^|\s+/)}function R(n,t){function e(){for(var e=-1;++e<i;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<i;)n[e](this,r)}var i=(n=T(n).map(D)).length;return"function"==typeof t?r:e}function D(n){var t=q(n);return function(e,r){if(i=e.classList)return r?i.add(n):i.remove(n);var i=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(i)||e.setAttribute("class",L(i+" "+n))):e.setAttribute("class",L(i.replace(t," ")))}}function P(n,t,e){function r(){this.style.removeProperty(n)}function i(){this.style.setProperty(n,t,e)}function u(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?u:i}function j(n,t){function e(){delete this[n]}function r(){this[n]=t}function i(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?i:r}function U(n){function t(){var t=this.ownerDocument,e=this.namespaceURI;return e===bo&&t.documentElement.namespaceURI===bo?t.createElement(n):t.createElementNS(e,n)}function e(){return this.ownerDocument.createElementNS(n.space,n.local)}return"function"==typeof n?n:(n=to.ns.qualify(n)).local?e:t}function F(){var n=this.parentNode;n&&n.removeChild(this)}function H(n){return{__data__:n}}function O(n){return function(){return Mo(this,n)}}function Y(n){return arguments.length||(n=e),function(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}}function I(n,t){for(var e=0,r=n.length;e<r;e++)for(var i,u=n[e],o=0,a=u.length;o<a;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return yo(n,So),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t<l;);return o}}function X(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function i(){var i=l(t,ro(arguments));r.call(this),this.addEventListener(n,this[o]=i,i.$=e),i._=t}function u(){var t,e=new RegExp("^__on([^.]+)"+to.requote(n)+"$");for(var r in this)if(t=r.match(e)){var i=this[r];this.removeEventListener(t[1],i,i.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),l=$;a>0&&(n=n.slice(0,a));var c=ko.get(n);return c&&(n=c,l=B),a?t?i:r:t?_:u}function $(n,t){return function(e){var r=to.event;to.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{to.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Eo,i="click"+r,u=to.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==No&&(No=!("onselectstart"in e)&&M(e.style,"userSelect")),No){var o=n(e).style,a=o[No];o[No]="none"}return function(n){if(u.on(r,null),No&&(o[No]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(Ao<0){var u=t(n);if(u.scrollX||u.scrollY){var o=(r=to.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important"))[0][0].getScreenCTM();Ao=!(o.f||o.e),r.remove()}}return Ao?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return to.event.changedTouches[0].identifier}function K(n){return n>0?1:n<0?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:n<-1?Lo:Math.acos(n)}function tn(n){return n>1?Ro:n<-1?-Ro:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):bn(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:n<0&&(n+=360),n<60?u+(o-u)*n/60:n<180?o:n<240?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:t<0?0:t>1?1:t,e=e<0?0:e>1?1:e,o=e<=.5?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=to.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Do)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=dn(i)*Zo,r=dn(r)*Vo,u=dn(u)*Xo,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Po,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function dn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function vn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(n<=.00304?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):bn(""+n,mn,cn):new mn(n,t,e)}function xn(n){return new mn(n>>16,n>>8&255,255&n)}function Mn(n){return xn(n)+""}function _n(n){return n<16?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function bn(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=Wo.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o|=o>>4,a=240&u,a|=a>>4,l=15&u,l|=l<<4):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=l<.5?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(t<e?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&l<1?0:r),new ln(r,i,l)}function Sn(n,t,e){var r=vn((.4124564*(n=kn(n))+.3575761*(t=kn(t))+.1804375*(e=kn(e)))/Zo),i=vn((.2126729*n+.7151522*t+.072175*e)/Vo);return hn(116*i-16,500*(r-i),200*(i-vn((.0193339*n+.119192*t+.9503041*e)/Xo)))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&t<300||304===t){try{n=e.call(u,l)}catch(n){return void o.error.call(u,n)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=to.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=to.event;to.event=n;try{o.progress.call(u,l)}finally{to.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(ro(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},to.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;r<2&&(t=0),r<3&&(e=Date.now());var i={c:n,t:e+t,n:null};return Go?Go.n=i:Jo=i,Go=i,Ko||(Qo=clearTimeout(Qo),Ko=1,na(Tn)),i}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(Qo),Qo=setTimeout(Tn,t)),Ko=0):(Ko=1,na(Tn))}function Rn(){for(var n=Date.now(),t=Jo;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=Jo,e=1/0;t;)t.c?(t.t<e&&(e=t.t),t=(n=t).n):t=n?n.n=t.n:Jo=t.n;return Go=n,e}function Pn(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function jn(n,t){var e=Math.pow(10,3*so(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Un(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ea.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,d="",v="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,v="%",p="f";break;case"p":g=100,v="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(d="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(d=i[0],v=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=ra.get(p)||Fn;var x=c&&s;return function(n){var e=v;if(y&&n%1)return"";var i=n<0||0===n&&1/n<0?(n=-n,"-"):"-"===a?"":a;if(g<0){var l=to.formatPrefix(n,h);n=l.scale(n),e=l.symbol+v}else n*=g;var M,_,b=(n=p(n,h)).lastIndexOf(".");if(b<0){var w=m?n.lastIndexOf("e"):-1;w<0?(M=n,_=""):(M=n.substring(0,w),_=n.substring(w))}else M=n.substring(0,b),_=t+n.substring(b+1);!c&&s&&(M=u(M,1/0));var S=d.length+M.length+_.length+(x?0:i.length),k=S<f?new Array(S=f-S+1).join(r):"";return x&&(M=u(k+M,k.length?f-_.length:1/0)),i+=d,n=M+_,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(x?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return t-e<r-t?e:r}function i(e){return t(e=n(new ua(e-1)),1),e}function u(n,e){return t(n=new ua(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;o<r;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;o<r;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{ua=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{ua=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=Yn(n);return l.floor=l,l.round=Yn(r),l.ceil=Yn(i),l.offset=Yn(u),l.range=a,n}function Yn(n){return function(t,e){try{ua=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{ua=Date}}}function In(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++a<r;)37===n.charCodeAt(a)&&(o.push(n.slice(l,a)),null!=(i=aa[e=n.charAt(++a)])&&(e=n.charAt(++a)),(u=A[e])&&(e=u(t,null==i?"e"===e?" ":"0":i)),o.push(e),l=a+1);return o.push(n.slice(l,a)),o.join("")}var r=n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null};if(e(r,n,t,0)!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var i=null!=r.Z&&ua!==Hn,u=new(i?Hn:ua);return"j"in r?u.setFullYear(r.y,0,r.j):"W"in r||"U"in r?("w"in r||(r.w="W"in r?1:0),u.setFullYear(r.y,0,1),u.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(u.getDay()+5)%7:r.w+7*r.U-(u.getDay()+6)%7)):u.setFullYear(r.y,r.m,r.d),u.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),i?u._:u},t.toString=function(){return n},t}function e(n,t,e,r){for(var i,u,o,a=0,l=t.length,c=e.length;a<l;){if(r>=c)return-1;if(37===(i=t.charCodeAt(a++))){if(o=t.charAt(a++),!(u=C[o in aa?t.charAt(a++):o])||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){b.lastIndex=0;var r=b.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){M.lastIndex=0;var r=M.exec(t.slice(e));return r?(n.w=_.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=x.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,d=n.days,v=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{var t=new(ua=Hn);return t._=n,r(t)}finally{ua=Date}}var r=t(n);return e.parse=function(n){try{ua=Hn;var t=r.parse(n);return t&&t._}finally{ua=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var x=to.map(),M=Vn(d),_=Xn(d),b=Vn(v),w=Xn(v),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){x.set(n.toLowerCase(),t)});var A={a:function(n){return v[n.getDay()]},A:function(n){return d[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ia.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ia.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ia.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=n<0?"-":"",i=(r?-n:n)+"",u=i.length;return r+(u<e?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(to.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function $n(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Bn(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e));return r?(n.U=+r[0],e+r[0].length):-1}function Wn(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e));return r?(n.W=+r[0],e+r[0].length):-1}function Jn(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Gn(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.y=Qn(+r[0]),e+r[0].length):-1}function Kn(n,t,e){return/^[+-]\d{4}$/.test(t=t.slice(e,e+5))?(n.Z=-t,e+5):-1}function Qn(n){return n+(n>68?1900:2e3)}function nt(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=so(t)/60|0,i=so(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){ca.lastIndex=0;var r=ca.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var e=0,r=n[e];!r[1](t);)r=n[++e];return r[0](t)}}function ft(){}function st(n,t,e){var r=e.s=n+t,i=r-n,u=r-i;e.t=n-u+(t-i)}function ht(n,t){n&&pa.hasOwnProperty(n.type)&&pa[n.type](n,t)}function pt(n,t,e){var r,i=-1,u=n.length-e;for(t.lineStart();++i<u;)r=n[i],t.point(r[0],r[1],r[2]);t.lineEnd()}function gt(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)pt(n[e],t,1);t.polygonEnd()}function dt(){function n(n,t){t=t*Do/2+Lo/4;var e=(n*=Do)-r,o=e>=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);da.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;va.point=function(o,a){va.point=n,r=(t=o)*Do,i=Math.cos(a=(e=a)*Do/2+Lo/4),u=Math.sin(a)},va.lineEnd=function(){n(t,e)}}function vt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function xt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function Mt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function _t(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function bt(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return so(n[0]-t[0])<Co&&so(n[1]-t[1])<Co}function St(n,t){n*=Do;var e=Math.cos(t*=Do);kt(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function kt(n,t,e){xa+=(n-xa)/++ya,Ma+=(t-Ma)/ya,_a+=(e-_a)/ya}function Nt(){function n(n,i){n*=Do;var u=Math.cos(i*=Do),o=u*Math.cos(n),a=u*Math.sin(n),l=Math.sin(i),c=Math.atan2(Math.sqrt((c=e*l-r*a)*c+(c=r*o-t*l)*c+(c=t*a-e*o)*c),t*o+e*a+r*l);ma+=c,ba+=c*(t+(t=o)),wa+=c*(e+(e=a)),Sa+=c*(r+(r=l)),kt(t,e,r)}var t,e,r;Aa.point=function(i,u){i*=Do;var o=Math.cos(u*=Do);t=o*Math.cos(i),e=o*Math.sin(i),r=Math.sin(u),Aa.point=n,kt(t,e,r)}}function Et(){Aa.point=St}function At(){function n(n,t){n*=Do;var e=Math.cos(t*=Do),o=e*Math.cos(n),a=e*Math.sin(n),l=Math.sin(t),c=i*l-u*a,f=u*o-r*l,s=r*a-i*o,h=Math.sqrt(c*c+f*f+s*s),p=r*o+i*a+u*l,g=h&&-nn(p)/h,d=Math.atan2(h,p);ka+=g*c,Na+=g*f,Ea+=g*s,ma+=d,ba+=d*(r+(r=o)),wa+=d*(i+(i=a)),Sa+=d*(u+(u=l)),kt(r,i,u)}var t,e,r,i,u;Aa.point=function(o,a){t=o,e=a,Aa.point=n,o*=Do;var l=Math.cos(a*=Do);r=l*Math.cos(o),i=l*Math.sin(o),u=Math.sin(a),kt(r,i,u)},Aa.lineEnd=function(){n(t,e),Aa.lineEnd=Et,Aa.point=St}}function Ct(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return(e=t.invert(e,r))&&n.invert(e[0],e[1])}),e}function zt(){return!0}function Lt(n,t,e,r,i){var u=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(wt(e,r)){i.lineStart();for(var a=0;a<t;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),c=new Tt(r,null,l=new Tt(r,n,null,!1),!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;a<c;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;a<c;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g)for(a=(f=p.p.z).length-1;a>=0;--a)i.point((s=f[a])[0],s[1]);else r(p.x,p.p.x,-1,i);p=p.p}f=(p=p.o).z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r<t;)i.n=e=n[r],e.p=i,i=e;i.n=e=n[0],e.p=i}}function Tt(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Rt(n,t,e,r){return function(i,u){function o(t,e){var r=i(t,e);n(t=r[0],e=r[1])&&u.point(t,e)}function a(n,t){var e=i(n,t);v.point(e[0],e[1])}function l(){m.point=a,v.lineStart()}function c(){m.point=o,v.lineEnd()}function f(n,t){d.push([n,t]);var e=i(n,t);M.point(e[0],e[1])}function s(){M.lineStart(),d=[]}function h(){f(d[0][0],d[0][1]),M.lineEnd();var n,t=M.clean(),e=x.buffer(),r=e.length;if(d.pop(),g.push(d),d=null,r)if(1&t){var i,o=-1;if((r=(n=e[0]).length-1)>0){for(_||(u.polygonStart(),_=!0),u.lineStart();++o<r;)u.point((i=n[o])[0],i[1]);u.lineEnd()}}else r>1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,d,v=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=to.merge(p);var n=Ot(y,g);p.length?(_||(u.polygonStart(),_=!0),Lt(p,jt,n,e,u)):n&&(_||(u.polygonStart(),_=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),_&&(u.polygonEnd(),_=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},x=Pt(),M=t(x),_=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:_,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function jt(n,t){return((n=n.x)[0]<0?n[1]-Ro-Co:Ro-n[1])-((t=t.x)[0]<0?t[1]-Ro-Co:Ro-t[1])}function Ut(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Lo:-Lo,l=so(u-e);so(l-Lo)<Co?(n.point(e,r=(r+o)/2>0?Ro:-Ro),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Lo&&(so(e-i)<Co&&(e-=i*Co),so(u-a)<Co&&(u-=a*Co),r=Ft(e,r,u,o),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=u,r=o),i=a},lineEnd:function(){n.lineEnd(),e=r=NaN},clean:function(){return 2-t}}}function Ft(n,t,e,r){var i,u,o=Math.sin(n-e);return so(o)>Co?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Ro,r.point(-Lo,i),r.point(0,i),r.point(Lo,i),r.point(Lo,0),r.point(Lo,-i),r.point(0,-i),r.point(-Lo,-i),r.point(-Lo,0),r.point(-Lo,i);else if(so(n[0]-t[0])>Co){var u=n[0]<t[0]?Lo:-Lo;i=e*u/2,r.point(-u,i),r.point(0,i),r.point(u,i)}else r.point(t[0],t[1])}function Ot(n,t){var e=n[0],r=n[1],i=[Math.sin(e),-Math.cos(e),0],u=0,o=0;da.reset();for(var a=0,l=t.length;a<l;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Lo/4,g=Math.sin(p),d=Math.cos(p),v=1;;){v===f&&(v=0);var y=(n=c[v])[0],m=n[1]/2+Lo/4,x=Math.sin(m),M=Math.cos(m),_=y-h,b=_>=0?1:-1,w=b*_,S=w>Lo,k=g*x;if(da.add(Math.atan2(k*b*Math.sin(w),d*M+k*Math.cos(w))),u+=S?_+b*qo:_,S^h>=e^y>=e){var N=mt(vt(s),vt(n));_t(N);var E=mt(i,N);_t(E);var A=(S^_>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^_>=0?1:-1)}if(!v++)break;h=y,g=x,d=M,s=n}}return(u<-Co||u<Co&&da<-Co)^1&o}function Yt(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],d=t(s,h),v=o?d?0:i(s,h):d?i(s+(s<0?Lo:-Lo),h):0;if(!e&&(c=l=d)&&n.lineStart(),d!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Co,g[1]+=Co,d=t(g[0],g[1]))),d!==l)f=0,d?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^d){var y;v&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!d||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=d,u=v},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=[1,0,0],i=mt(vt(n),vt(t)),o=yt(i,i),a=i[0],l=o-a*a;if(!l)return!e&&n;var c=u*o/l,f=-u*a/l,s=mt(r,i),h=Mt(r,c);xt(h,Mt(i,f));var p=s,g=yt(h,p),d=yt(p,p),v=g*g-d*(yt(h,h)-1);if(!(v<0)){var y=Math.sqrt(v),m=Mt(p,(-g-y)/d);if(xt(m,h),m=bt(m),!e)return m;var x,M=n[0],_=t[0],b=n[1],w=t[1];_<M&&(x=M,M=_,_=x);var S=_-M,k=so(S-Lo)<Co,N=k||S<Co;if(!k&&w<b&&(x=b,b=w,w=x),N?k?b+w>0^m[1]<(so(m[0]-M)<Co?b:w):b<=m[1]&&m[1]<=w:S>Lo^(M<=m[0]&&m[0]<=_)){var E=Mt(p,(-g+y)/d);return xt(E,h),[m,bt(E)]}}}function i(t,e){var r=o?n:Lo-n,i=0;return t<-r?i|=1:t>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=so(u)>Co;return Rt(t,e,de(n,6*Do),o?[0,-n]:[-Lo,n-Lo])}function It(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=0,s=1,h=a.x-l,p=a.y-c;if(u=n-l,h||!(u>0)){if(u/=h,h<0){if(u<f)return;u<s&&(s=u)}else if(h>0){if(u>s)return;u>f&&(f=u)}if(u=e-l,h||!(u<0)){if(u/=h,h<0){if(u>s)return;u>f&&(f=u)}else if(h>0){if(u<f)return;u<s&&(s=u)}if(u=t-c,p||!(u>0)){if(u/=p,p<0){if(u<f)return;u<s&&(s=u)}else if(p>0){if(u>s)return;u>f&&(f=u)}if(u=r-c,p||!(u<0)){if(u/=p,p<0){if(u>s)return;u>f&&(f=u)}else if(p>0){if(u<f)return;u<s&&(s=u)}return f>0&&(i.a={x:l+f*h,y:c+f*p}),s<1&&(i.b={x:l+s*h,y:c+s*p}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return so(r[0]-n)<Co?i>0?0:3:so(r[0]-e)<Co?i>0?2:1:so(r[1]-t)<Co?i>0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=v.length,r=n[1],i=0;i<e;++i)for(var u,o=1,a=v[i],l=a.length,c=a[0];o<l;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0)do{c.point(0===f||3===f?n:e,f>1?r:t)}while((f=(f+l+4)%4)!==s);else c.point(a[0],a[1])}function f(i,u){return n<=i&&i<=e&&t<=u&&u<=r}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,v&&v.push(y=[]),S=!0,w=!1,_=b=NaN}function p(){d&&(g(m,x),M&&w&&E.rejoin(),d.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){var e=f(n=Math.max(-za,Math.min(za,n)),t=Math.max(-za,Math.min(za,t)));if(v&&y.push([n,t]),S)m=n,x=t,M=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:_,y:b},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}_=n,b=t,w=e}var d,v,y,m,x,M,_,b,w,S,k,N=a,E=Pt(),A=It(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,d=[],v=[],k=!0},polygonEnd:function(){a=N,d=to.merge(d);var t=l([n,r]),e=k&&t,i=d.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(d,u,t,c,a),a.polygonEnd()),d=v=y=null}};return C}}function Vt(n){var t=0,e=Lo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Lo/180,e=n[1]*Lo/180):[t/Lo*180,e/Lo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){qa+=i*n-r*t,r=n,i=t}var t,e,r,i;ja.point=function(u,o){ja.point=n,t=r=u,e=i=o},ja.lineEnd=function(){n(t,e)}}function Bt(n,t){n<Ta&&(Ta=n),n>Da&&(Da=n),t<Ra&&(Ra=t),t>Pa&&(Pa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){xa+=n,Ma+=t,++_a}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);ba+=o*(t+n)/2,wa+=o*(e+r)/2,Sa+=o,Gt(t=n,e=r)}var t,e;Fa.point=function(r,i){Fa.point=n,Gt(t=r,e=i)}}function Qt(){Fa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);ba+=o*(r+n)/2,wa+=o*(i+t)/2,Sa+=o,ka+=(o=i*n-r*t)*(r+n),Na+=o*(i+t),Ea+=3*o,Gt(r=n,i=t)}var t,e,r,i;Fa.point=function(u,o){Fa.point=n,Gt(t=r=u,e=i=o)},Fa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,qo)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:_};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){x=NaN,S.point=u,t.lineStart()}function u(e,r){var u=vt([e,r]),o=n(e,r);i(x,M,m,_,b,w,x=o[0],M=o[1],m=e,_=u[0],b=u[1],w=u[2],a,t),t.point(x,M)}function o(){S.point=e,t.lineEnd()}function l(){r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=x,g=M,d=_,v=b,y=w,S.point=u}function f(){i(x,M,m,_,b,w,p,g,s,d,v,y,a,t),S.lineEnd=o,o()}var s,h,p,g,d,v,y,m,x,M,_,b,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,d,v,y){var m=f-t,x=s-e,M=m*m+x*x;if(M>4*u&&v--){var _=a+p,b=l+g,w=c+d,S=Math.sqrt(_*_+b*b+w*w),k=Math.asin(w/=S),N=so(so(w)-1)<Co||so(r-h)<Co?(r+h)/2:Math.atan2(b,_),E=n(N,k),A=E[0],C=E[1],z=A-t,L=C-e,q=x*z-m*L;(q*q/M>u||so((m*z+x*L)/M-.5)>.3||a*p+l*g+c*d<o)&&(i(t,e,r,a,l,c,A,C,N,_/=S,b/=S,w,v,y),y.point(A,C),i(A,C,N,_,b,w,f,s,h,p,g,d,v,y))}}var u=.5,o=Math.cos(30*Do),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Po,e*Po])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Do,n[1]*Do),[n[0]*h+l,c-n[1]*h]}function e(n){return(n=a.invert((n[0]-l)/h,(c-n[1])/h))&&[n[0]*Po,n[1]*Po]}function r(){a=Ct(o=se(y,x,M),u);var n=u(d,v);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,d=0,v=0,y=0,x=0,M=0,_=Ca,b=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(_(o,s(b(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(_=null==n?(w=n,Ca):Yt((w=+n)*Do),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,b=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(d=n[0]%360*Do,v=n[1]%360*Do,r()):[d*Po,v*Po]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Do,x=n[1]%360*Do,M=n.length>2?n[2]%360*Do:0,r()):[y*Po,x*Po,M*Po]},to.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Do,e*Do)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Lo?n-qo:n<-Lo?n+qo:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Lo?t-qo:t<-Lo?t+qo:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function de(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=ve(e,i),u=ve(e,u),(o>0?i<u:i>u)&&(i+=o*qo)):(i=n+o*qo,u=n-.5*l);for(var c,f=i;o>0?f>u:f<u;f-=l)a.point((c=bt([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function ve(n,t){var e=vt(t);e[0]-=n,_t(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Co)%(2*Math.PI)}function ye(n,t,e){var r=to.range(n,t-Co,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=to.range(n,t-Co,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function xe(n){return n.source}function Me(n){return n.target}function _e(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Po,Math.atan2(o,Math.sqrt(r*r+i*i))*Po]}:function(){return[n*Po,t*Po]};return g.distance=h,g}function be(){function n(n,i){var u=Math.sin(i*=Do),o=Math.cos(i),a=so((n*=Do)-t),l=Math.cos(a);Ha+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Oa.point=function(i,u){t=i*Do,e=Math.sin(u*=Do),r=Math.cos(u),Oa.point=n},Oa.lineEnd=function(){Oa.point=Oa.lineEnd=_}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?t<-Ro+Co&&(t=-Ro+Co):t>Ro-Co&&(t=Ro-Co);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Lo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Ro]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return so(i)<Co?ce:(e.invert=function(n,t){var e=u-t;return[Math.atan2(n,e)/i,u-K(i)*Math.sqrt(n*n+e*e)]},e)}function Ne(n,t){return[n,Math.log(Math.tan(Lo/4+t/2))]}function Ee(n){var t,e=oe(n),r=e.scale,i=e.translate,u=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=i.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=u.apply(e,arguments);if(o===e){if(t=null==n){var a=Lo*r(),l=i();u([[l[0]-a,l[1]-a],[l[0]+a,l[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function Ae(n,t){return[Math.log(Math.tan(Lo/4+t/2)),-n]}function Ce(n){return n[0]}function ze(n){return n[1]}function Le(n){for(var t=n.length,e=[0,1],r=2,i=2;i<t;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function je(n){var t=Qa.pop()||new Pe;return t.site=n,t}function Ue(n){Be(n),Ja.remove(n),Qa.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];Ue(n);for(var l=u;l.circle&&so(e-l.circle.x)<Co&&so(r-l.circle.cy)<Co;)u=l.P,a.unshift(l),Ue(l),l=u;a.unshift(l),Be(l);for(var c=o;c.circle&&so(e-c.circle.x)<Co&&so(r-c.circle.cy)<Co;)o=c.N,a.push(c),Ue(c),c=o;a.push(c),Be(c);var f,s=a.length;for(f=1;f<s;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],(c=a[s-1]).edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=Ja._;a;)if((r=Oe(a,o)-u)>Co)a=a.L;else{if(!((i=u-Ye(a,o))>Co)){r>-Co?(t=a.P,e=a):i>-Co?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=je(n);if(Ja.insert(t,l),t||e){if(t===e)return Be(t),e=je(t.site),Ja.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(e){Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,d=g.x-f,v=g.y-s,y=2*(h*v-p*d),m=h*h+p*p,x=d*d+v*v,M={x:(v*m-p*x)/y+f,y:(h*x-d*m)/y+s};nr(e.edge,c,g,M),l.edge=Ke(c,n,null,M),e.edge=Ke(n,g,null,M),$e(t),$e(e)}else l.edge=Ke(t.site,l.site)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-1/0;var a=(e=o.site).x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ye(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ie(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],d=Wa,v=d.length;v--;)if((u=d[v])&&u.prepare())for(l=(a=u.edges).length,o=0;o<l;)r=(f=a[o].end()).x,i=f.y,t=(c=a[++o%l].start()).x,e=c.y,(so(r-t)>Co||so(i-e)>Co)&&(a.splice(o,0,new tr(Qe(u.site,f,so(r-s)<Co&&g-i>Co?{x:s,y:so(t-s)<Co?e:g}:so(i-g)<Co&&h-r>Co?{x:so(e-g)<Co?t:h,y:g}:so(r-h)<Co&&i-p>Co?{x:h,y:so(t-h)<Co?e:p}:so(i-p)<Co&&r-s>Co?{x:so(e-p)<Co?t:s,y:p}:null),u.site,null)),++l)}function Ve(n,t){return t.angle-n.angle}function Xe(){rr(this),this.x=this.y=this.arc=this.site=this.cy=null}function $e(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,i=n.site,u=e.site;if(r!==u){var o=i.x,a=i.y,l=r.x-o,c=r.y-a,f=u.x-o,s=2*(l*(v=u.y-a)-c*f);if(!(s>=-zo)){var h=l*l+c*c,p=f*f+v*v,g=(v*h-c*p)/s,d=(l*p-f*h)/s,v=d+a,y=nl.pop()||new Xe;y.arc=n,y.site=i,y.x=g+o,y.y=v+Math.sqrt(g*g+d*d),y.cy=v,n.circle=y;for(var m=null,x=Ka._;x;)if(y.y<x.y||y.y===x.y&&y.x<=x.x){if(!x.L){m=x.P;break}x=x.L}else{if(!x.R){m=x;break}x=x.R}Ka.insert(m,y),m||(Ga=y)}}}}function Be(n){var t=n.circle;t&&(t.P||(Ga=t.N),Ka.remove(t),nl.push(t),rr(t),n.circle=null)}function We(n){for(var t,e=Ba,r=It(n[0][0],n[0][1],n[1][0],n[1][1]),i=e.length;i--;)(!Je(t=e[i],n)||!r(t)||so(t.a.x-t.b.x)<Co&&so(t.a.y-t.b.y)<Co)&&(t.a=t.b=null,e.splice(i,1))}function Je(n,t){var e=n.b;if(e)return!0;var r,i,u=n.a,o=t[0][0],a=t[1][0],l=t[0][1],c=t[1][1],f=n.l,s=n.r,h=f.x,p=f.y,g=s.x,d=s.y,v=(h+g)/2,y=(p+d)/2;if(d===p){if(v<o||v>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:v,y:l};e={x:v,y:c}}else{if(u){if(u.y<l)return}else u={x:v,y:c};e={x:v,y:l}}}else if(r=(h-g)/(d-p),i=y-r*v,r<-1||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.y<l)return}else u={x:(c-i)/r,y:c};e={x:(l-i)/r,y:l}}else if(p<d){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.x<o)return}else u={x:a,y:r*a+i};e={x:o,y:r*o+i}}return n.a=u,n.b=e,!0}function Ge(n,t){this.l=n,this.r=t,this.a=this.b=null}function Ke(n,t,e,r){var i=new Ge(n,t);return Ba.push(i),e&&nr(i,n,t,e),r&&nr(i,t,n,r),Wa[n.i].edges.push(new tr(i,n,t)),Wa[t.i].edges.push(new tr(i,t,n)),i}function Qe(n,t,e){var r=new Ge(n,null);return r.a=t,r.b=e,Ba.push(r),r}function nr(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function tr(n,t,e){var r=n.a,i=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(i.x-r.x,r.y-i.y):Math.atan2(r.x-i.x,i.y-r.y)}function er(){this._=null}function rr(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function ir(n,t){var e=t,r=t.R,i=e.U;i?i.L===e?i.L=r:i.R=r:n._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function ur(n,t){var e=t,r=t.L,i=e.U;i?i.L===e?i.L=r:i.R=r:n._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function or(n){for(;n.L;)n=n.L;return n}function ar(n,t){var e,r,i,u=n.sort(lr).pop();for(Ba=[],Wa=new Array(n.length),Ja=new er,Ka=new er;;)if(i=Ga,u&&(!i||u.y<i.y||u.y===i.y&&u.x<i.x))u.x===e&&u.y===r||(Wa[u.i]=new Ie(u),He(u),e=u.x,r=u.y),u=n.pop();else{if(!i)break;Fe(i.arc)}t&&(We(t),Ze(t));var o={cells:Wa,edges:Ba};return Ja=Ka=Ba=Wa=null,o}function lr(n,t){return t.y-n.y||t.x-n.x}function cr(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function fr(n){return n.x}function sr(n){return n.y}function hr(n,t,e,r,i,u){if(!n(t,e,r,i,u)){var o=.5*(e+i),a=.5*(r+u),l=t.nodes;l[0]&&hr(n,l[0],e,r,o,a),l[1]&&hr(n,l[1],o,r,i,a),l[2]&&hr(n,l[2],e,a,o,u),l[3]&&hr(n,l[3],o,a,i,u)}}function pr(n,t,e,r,i,u,o){var a,l=1/0;return function n(c,f,s,h,p){if(!(f>u||s>o||h<r||p<i)){if(g=c.point){var g,d=t-c.x,v=e-c.y,y=d*d+v*v;if(y<l){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var x=c.nodes,M=.5*(f+h),_=.5*(s+p),b=(e>=_)<<1|t>=M,w=b+4;b<w;++b)if(c=x[3&b])switch(3&b){case 0:n(c,f,s,M,_);break;case 1:n(c,M,s,h,_);break;case 2:n(c,f,_,M,p);break;case 3:n(c,M,_,h,p)}}}(n,r,i,u,o),a}function gr(n,t){n=to.rgb(n),t=to.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+_n(Math.round(e+u*n))+_n(Math.round(r+o*n))+_n(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function vr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function yr(n,t){var e,r,i,u=el.lastIndex=rl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=el.exec(n))&&(r=rl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:vr(e,r)})),u=rl.lastIndex;return u<t.length&&(i=t.slice(u),a[o]?a[o]+=i:a[++o]=i),a.length<2?l[0]?(t=l[0].x,function(n){return t(n)+""}):function(){return t}:(t=l.length,function(n){for(var e,r=0;r<t;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function mr(n,t){for(var e,r=to.interpolators.length;--r>=0&&!(e=to.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;e<a;++e)r.push(mr(n[e],t[e]));for(;e<u;++e)i[e]=n[e];for(;e<o;++e)i[e]=t[e];return function(n){for(e=0;e<a;++e)i[e]=r[e](n);return i}}function Mr(n){return function(t){return t<=0?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function br(n){return function(t){return.5*(t<.5?n(2*t):2-n(2-2*t))}}function wr(n){return n*n}function Sr(n){return n*n*n}function kr(n){if(n<=0)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(n<.5?e:3*(n-t)+e-.75)}function Nr(n){return function(t){return Math.pow(t,n)}}function Er(n){return 1-Math.cos(n*Ro)}function Ar(n){return Math.pow(2,10*(n-1))}function Cr(n){return 1-Math.sqrt(1-n*n)}function zr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/qo*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*qo/t)}}function Lr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function qr(n){return n<1/2.75?7.5625*n*n:n<2/2.75?7.5625*(n-=1.5/2.75)*n+.75:n<2.5/2.75?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Tr(n,t){n=to.hcl(n),t=to.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:u<-180&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Rr(n,t){n=to.hsl(n),t=to.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:u<-180&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=to.lab(n),t=to.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Fr(t),i=Ur(t,e),u=Fr(Hr(e,t,-i))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,i*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Po,this.translate=[n.e,n.f],this.scale=[r,u],this.skew=u?Math.atan2(i,u)*Po:0}function Ur(n,t){return n[0]*t[0]+n[1]*t[1]}function Fr(n){var t=Math.sqrt(Ur(n,n));return t&&(n[0]/=t,n[1]/=t),t}function Hr(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Or(n){return n.length?n.pop()+",":""}function Yr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push("translate(",null,",",null,")");r.push({i:i-4,x:vr(n[0],t[0])},{i:i-2,x:vr(n[1],t[1])})}else(t[0]||t[1])&&e.push("translate("+t+")")}function Ir(n,t,e,r){n!==t?(n-t>180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Or(e)+"rotate(",null,")")-2,x:vr(n,t)})):t&&e.push(Or(e)+"rotate("+t+")")}function Zr(n,t,e,r){n!==t?r.push({i:e.push(Or(e)+"skewX(",null,")")-2,x:vr(n,t)}):t&&e.push(Or(e)+"skewX("+t+")")}function Vr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Or(e)+"scale(",null,",",null,")");r.push({i:i-4,x:vr(n[0],t[0])},{i:i-2,x:vr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Or(e)+"scale("+t+")")}function Xr(n,t){var e=[],r=[];return n=to.transform(n),t=to.transform(t),Yr(n.translate,t.translate,e,r),Ir(n.rotate,t.rotate,e,r),Zr(n.skew,t.skew,e,r),Vr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i<u;)e[(t=r[i]).i]=t.x(n);return e.join("")}}function $r(n,t){return t=(t-=n=+n)||1/t,function(e){return(e-n)/t}}function Br(n,t){return t=(t-=n=+n)||1/t,function(e){return Math.max(0,Math.min(1,(e-n)/t))}}function Wr(n){for(var t=n.source,e=n.target,r=Gr(t,e),i=[t];t!==r;)t=t.parent,i.push(t);for(var u=i.length;e!==r;)i.splice(u,0,e),e=e.parent;return i}function Jr(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Gr(n,t){if(n===t)return n;for(var e=Jr(n),r=Jr(t),i=e.pop(),u=r.pop(),o=null;i===u;)o=i,i=e.pop(),u=r.pop();return o}function Kr(n){n.fixed|=2}function Qr(n){n.fixed&=-7}function ni(n){n.fixed|=4,n.px=n.x,n.py=n.y}function ti(n){n.fixed&=-5}function ei(n,t,e){var r=0,i=0;if(n.charge=0,!n.leaf)for(var u,o=n.nodes,a=o.length,l=-1;++l<a;)null!=(u=o[l])&&(ei(u,t,e),n.charge+=u.charge,r+=u.charge*u.cx,i+=u.charge*u.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var c=t*e[n.point.index];n.charge+=n.pointCharge=c,r+=c*n.point.x,i+=c*n.point.y}n.cx=r/n.charge,n.cy=i/n.charge}function ri(n,t){return to.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=ci,n}function ii(n,t){for(var e=[n];null!=(n=e.pop());)if(t(n),(i=n.children)&&(r=i.length))for(var r,i;--r>=0;)e.push(i[r])}function ui(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++o<i;)e.push(u[o]);for(;null!=(n=r.pop());)t(n)}function oi(n){return n.children}function ai(n){return n.value}function li(n,t){return t.value-n.value}function ci(n){return to.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function fi(n){return n.x}function si(n){return n.y}function hi(n,t,e){n.y0=t,n.y=e}function pi(n){return to.range(n.length)}function gi(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function di(n){for(var t,e=1,r=0,i=n[0][1],u=n.length;e<u;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function vi(n){return n.reduce(yi,0)}function yi(n,t){return n+t[1]}function mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function Mi(n){return[to.min(n),to.max(n)]}function _i(n,t){return n.value-t.value}function bi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function wi(n,t){n._pack_next=t,t._pack_prev=n}function Si(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function ki(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-1/0,h=1/0,p=-1/0;if(e.forEach(Ni),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(Ci(r,i,u=e[2]),t(u),bi(r,u),r._pack_prev=u,bi(u,i),i=r._pack_next,o=3;o<c;o++){Ci(r,i,u=e[o]);var g=0,d=1,v=1;for(a=i._pack_next;a!==i;a=a._pack_next,d++)if(Si(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!Si(l,u);l=l._pack_prev,v++);g?(d<v||d==v&&i.r<r.r?wi(r,i=a):wi(r=l,i),o--):(bi(r,u),i=u,t(u))}var y=(f+s)/2,m=(h+p)/2,x=0;for(o=0;o<c;o++)(u=e[o]).x-=y,u.y-=m,x=Math.max(x,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=x,e.forEach(Ei)}}function Ni(n){n._pack_next=n._pack_prev=n}function Ei(n){delete n._pack_next,delete n._pack_prev}function Ai(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u<o;)Ai(i[u],t,e,r)}function Ci(n,t,e){var r=n.r+e.r,i=t.x-n.x,u=t.y-n.y;if(r&&(i||u)){var o=t.r+e.r,a=i*i+u*u,l=.5+((r*=r)-(o*=o))/(2*a),c=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+l*i+c*u,e.y=n.y+l*u-c*i}else e.x=n.x+r,e.y=n.y}function zi(n,t){return n.parent==t.parent?1:2}function Li(n){return 1+to.max(n,function(n){return n.y})}function qi(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Ti(n){var t=n.children;return t&&t.length?Ti(t[0]):n}function Ri(n){var t,e=n.children;return e&&(t=e.length)?Ri(e[t-1]):n}function Di(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Pi(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return i<0&&(e+=i/2,i=0),u<0&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function ji(n){var t=n[0],e=n[n.length-1];return t<e?[t,e]:[e,t]}function Ui(n){return n.rangeExtent?n.rangeExtent():ji(n.range())}function Fi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Hi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return o<u&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function Oi(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:gl}function Yi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)i.push(e(n[o-1],n[o])),u.push(r(t[o-1],t[o]));return function(t){var e=to.bisect(n,t,1,a)-1;return u[e](i[e](t))}}function Ii(n,t,e,r){function i(){var i=Math.min(n.length,t.length)>2?Yi:Fi,l=r?Br:$r;return o=i(n,t,l,e),a=i(t,n,l,mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Pr)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return $i(n,t)},u.tickFormat=function(t,e){return Bi(n,t,e)},u.nice=function(t){return Vi(n,t),i()},u.copy=function(){return Ii(n,t,e,r)},i()}function Zi(n,t){return to.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Vi(n,t){return Hi(n,Oi(Xi(n,t)[2])),Hi(n,Oi(Xi(n,t)[2])),n}function Xi(n,t){null==t&&(t=10);var e=ji(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return u<=.15?i*=10:u<=.35?i*=5:u<=.75&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function $i(n,t){return to.range.apply(to,Xi(n,t))}function Bi(n,t,e){var r=Xi(n,t);if(e){var i=ea.exec(e);if(i.shift(),"s"===i[8]){var u=to.formatPrefix(Math.max(so(r[0]),so(r[1])));return i[7]||(i[7]="."+Wi(u.scale(r[2]))),i[8]="f",e=to.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+Ji(i[8],r)),e=i.join("")}else e=",."+Wi(r[2])+"f";return to.format(e)}function Wi(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Ji(n,t){var e=Wi(t[2]);return n in dl?Math.abs(e-Wi(Math.max(so(t[0]),so(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Gi(n,t,e,r){function i(n){return(e?Math.log(n<0?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Hi(r.map(i),e?Math:yl);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=ji(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;c<f;c++)for(h=1;h<s;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++<f;)for(var h=s-1;h>0;h--)o.push(u(c)*h);for(c=0;o[c]<a;c++);for(f=o.length;o[f-1]>l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return vl;arguments.length<2?e=vl:"function"!=typeof e&&(e=to.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return o*t<t-.5&&(o*=t),o<=r?e(n):""}},o.copy=function(){return Gi(n.copy(),t,e,r)},Zi(o,n)}function Ki(n,t,e){function r(t){return n(i(t))}var i=Qi(t),u=Qi(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return $i(e,n)},r.tickFormat=function(n,t){return Bi(e,n,t)},r.nice=function(n){return r.domain(Vi(e,n))},r.exponent=function(o){return arguments.length?(i=Qi(t=o),u=Qi(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return Ki(n.copy(),t,e)},Zi(r,n)}function Qi(n){return function(t){return t<0?-Math.pow(-t,n):Math.pow(t,n)}}function nu(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return to.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++o<a;)i.has(u=r[o])||i.set(u,n.push(u));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(u=n,o=0,t={t:"range",a:arguments},e):u},e.rangePoints=function(i,a){arguments.length<2&&(a=0);var l=i[0],c=i[1],f=n.length<2?(l=(l+c)/2,0):(c-l)/(n.length-1+a);return u=r(l+f*a/2,f),o=0,t={t:"rangePoints",a:arguments},e},e.rangeRoundPoints=function(i,a){arguments.length<2&&(a=0);var l=i[0],c=i[1],f=n.length<2?(l=c=Math.round((l+c)/2),0):(c-l)/(n.length-1+a)|0;return u=r(l+Math.round(f*a/2+(c-l-(n.length-1+a)*f)/2),f),o=0,t={t:"rangeRoundPoints",a:arguments},e},e.rangeBands=function(i,a,l){arguments.length<2&&(a=0),arguments.length<3&&(l=a);var c=i[1]<i[0],f=i[c-0],s=(i[1-c]-f)/(n.length-a+2*l);return u=r(f+s*l,s),c&&u.reverse(),o=s*(1-a),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(i,a,l){arguments.length<2&&(a=0),arguments.length<3&&(l=a);var c=i[1]<i[0],f=i[c-0],s=i[1-c],h=Math.floor((s-f)/(n.length-a+2*l));return u=r(f+Math.round((s-f-(n.length-a)*h)/2),h),c&&u.reverse(),o=Math.round(h*(1-a)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return o},e.rangeExtent=function(){return ji(t.a[0])},e.copy=function(){return nu(n,t)},e.domain(n)}function tu(n,t){function u(){var e=0,r=t.length;for(a=[];++e<r;)a[e-1]=to.quantile(n,e/r);return o}function o(n){if(!isNaN(n=+n))return t[to.bisect(a,n)]}var a;return o.domain=function(t){return arguments.length?(n=t.map(r).filter(i).sort(e),u()):n},o.range=function(n){return arguments.length?(t=n,u()):t},o.quantiles=function(){return a},o.invertExtent=function(e){return e=t.indexOf(e),e<0?[NaN,NaN]:[e>0?a[e-1]:n[0],e<a.length?a[e]:n[n.length-1]]},o.copy=function(){return tu(n,t)},u()}function eu(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(u*(t-n))))]}function i(){return u=e.length/(t-n),o=e.length-1,r}var u,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],i()):[n,t]},r.range=function(n){return arguments.length?(e=n,i()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=t<0?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return eu(n,t,e)},i()}function ru(n,t){function e(e){if(e<=e)return t[to.bisect(n,e)]}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return ru(n,t)},e}function iu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return $i(n,t)},t.tickFormat=function(t,e){return Bi(n,t,e)},t.copy=function(){return iu(n)},t}function uu(){return 0}function ou(n){return n.innerRadius}function au(n){return n.outerRadius}function lu(n){return n.startAngle}function cu(n){return n.endAngle}function fu(n){return n&&n.padAngle}function su(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function hu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,d=(s+p)/2,v=h-f,y=p-s,m=v*v+y*y,x=e-r,M=f*p-h*s,_=(y<0?-1:1)*Math.sqrt(Math.max(0,x*x*m-M*M)),b=(M*y-v*_)/m,w=(-M*v-y*_)/m,S=(M*y+v*_)/m,k=(-M*v+y*_)/m,N=b-g,E=w-d,A=S-g,C=k-d;return N*N+E*E>A*A+C*C&&(b=S,w=k),[[b-l,w-c],[b*e/x,w*e/x]]}function pu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s<h;)i.call(this,l=t[s],s)?f.push([+p.call(this,l,s),+g.call(this,l,s)]):f.length&&(o(),f=[]);return f.length&&o(),c.length?c.join(""):null}var e=Ce,r=ze,i=zt,u=gu,o=u.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(i=n,t):i},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?u=n:(u=wl.get(n)||gu).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function gu(n){return n.length>1?n.join("L"):n+"Z"}function du(n){return n.join("L")+"Z"}function vu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t<e;)i.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&i.push("H",r[0]),i.join("")}function yu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t<e;)i.push("V",(r=n[t])[1],"H",r[0]);return i.join("")}function mu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t<e;)i.push("H",(r=n[t])[0],"V",r[1]);return i.join("")}function xu(n,t){return n.length<4?gu(n):n[1]+bu(n.slice(1,-1),wu(n,t))}function Mu(n,t){return n.length<3?du(n):n[0]+bu((n.push(n[0]),n),wu([n[n.length-2]].concat(n,[n[1]]),t))}function _u(n,t){return n.length<3?gu(n):n[0]+bu(n,wu(n,t))}function bu(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return gu(n);var e=n.length!=t.length,r="",i=n[0],u=n[1],o=t[0],a=o,l=1;if(e&&(r+="Q"+(u[0]-2*o[0]/3)+","+(u[1]-2*o[1]/3)+","+u[0]+","+u[1],i=n[1],l=2),t.length>1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c<t.length;c++,l++)u=n[l],a=t[c],r+="S"+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1]}if(e){var f=n[l];r+="Q"+(u[0]+2*a[0]/3)+","+(u[1]+2*a[1]/3)+","+f[0]+","+f[1]}return r}function wu(n,t){for(var e,r=[],i=(1-t)/2,u=n[0],o=n[1],a=1,l=n.length;++a<l;)e=u,u=o,o=n[a],r.push([i*(o[0]-e[0]),i*(o[1]-e[1])]);return r}function Su(n){if(n.length<3)return gu(n);var t=1,e=n.length,r=n[0],i=r[0],u=r[1],o=[i,i,i,(r=n[1])[0]],a=[u,u,u,r[1]],l=[i,",",u,"L",Au(Nl,o),",",Au(Nl,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),Cu(l,o,a);return n.pop(),l.push("L",r),l.join("")}function ku(n){if(n.length<4)return gu(n);for(var t,e=[],r=-1,i=n.length,u=[0],o=[0];++r<3;)t=n[r],u.push(t[0]),o.push(t[1]);for(e.push(Au(Nl,u)+","+Au(Nl,o)),--r;++r<i;)t=n[r],u.shift(),u.push(t[0]),o.shift(),o.push(t[1]),Cu(e,u,o);return e.join("")}function Nu(n){for(var t,e,r=-1,i=n.length,u=i+4,o=[],a=[];++r<4;)e=n[r%i],o.push(e[0]),a.push(e[1]);for(t=[Au(Nl,o),",",Au(Nl,a)],--r;++r<u;)e=n[r%i],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),Cu(t,o,a);return t.join("")}function Eu(n,t){var e=n.length-1;if(e)for(var r,i,u=n[0][0],o=n[0][1],a=n[e][0]-u,l=n[e][1]-o,c=-1;++c<=e;)i=c/e,(r=n[c])[0]=t*r[0]+(1-t)*(u+i*a),r[1]=t*r[1]+(1-t)*(o+i*l);return Su(n)}function Au(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function Cu(n,t,e){n.push("C",Au(Sl,t),",",Au(Sl,e),",",Au(kl,t),",",Au(kl,e),",",Au(Nl,t),",",Au(Nl,e))}function zu(n,t){return(t[1]-n[1])/(t[0]-n[0])}function Lu(n){for(var t=0,e=n.length-1,r=[],i=n[0],u=n[1],o=r[0]=zu(i,u);++t<e;)r[t]=(o+(o=zu(i=u,u=n[t+1])))/2;return r[t]=o,r}function qu(n){for(var t,e,r,i,u=[],o=Lu(n),a=-1,l=n.length-1;++a<l;)t=zu(n[a],n[a+1]),so(t)<Co?o[a]=o[a+1]=0:(i=(e=o[a]/t)*e+(r=o[a+1]/t)*r)>9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r);for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Tu(n){return n.length<3?gu(n):n[0]+bu(n,qu(n))}function Ru(n){for(var t,e,r,i=-1,u=n.length;++i<u;)e=(t=n[i])[0],r=t[1]-Ro,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function Du(n){function t(t){function l(){d.push("M",a(n(y),s),f,c(n(v.reverse()),s),"Z")}for(var h,p,g,d=[],v=[],y=[],m=-1,x=t.length,M=En(e),_=En(i),b=e===r?function(){return p}:En(r),w=i===u?function(){return g}:En(u);++m<x;)o.call(this,h=t[m],m)?(v.push([p=+M.call(this,h,m),g=+_.call(this,h,m)]),y.push([+b.call(this,h,m),+w.call(this,h,m)])):v.length&&(l(),v=[],y=[]);return v.length&&l(),d.length?d.join(""):null}var e=Ce,r=Ce,i=0,u=ze,o=zt,a=gu,l=a.key,c=a,f="L",s=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(i=u=n,t):u},t.y0=function(n){return arguments.length?(i=n,t):i},t.y1=function(n){return arguments.length?(u=n,t):u},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(l="function"==typeof n?a=n:(a=wl.get(n)||gu).key,c=a.reverse||a,f=a.closed?"M":"L",t):l},t.tension=function(n){return arguments.length?(s=n,t):s},t}function Pu(n){return n.radius}function ju(n){return[n.x,n.y]}function Uu(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]-Ro;return[e*Math.cos(r),e*Math.sin(r)]}}function Fu(){return 64}function Hu(){return"circle"}function Ou(n){var t=Math.sqrt(n/Lo);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Yu(n){return function(){var t,e,r;(t=this[n])&&(r=t[e=t.active])&&(r.timer.c=null,r.timer.t=NaN,--t.count?delete t[e]:delete this[n],t.active+=.5,r.event&&r.event.interrupt.call(this,this.__data__,r.index))}}function Iu(n,t,e){return yo(n,Tl),n.namespace=t,n.id=e,n}function Zu(n,t,e,r){var i=n.id,u=n.namespace;return I(n,"function"==typeof e?function(n,o,a){n[u][i].tween.set(t,r(e.call(n,n.__data__,o,a)))}:(e=r(e),function(n){n[u][i].tween.set(t,e)}))}function Vu(n){return null==n&&(n=""),function(){this.textContent=n}}function Xu(n){return null==n?"__transition__":"__transition_"+n+"__"}function $u(n,t,e,r,i){function u(n){var t=d.delay;if(f.t=t+l,t<=n)return o(n-t);f.c=o}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(+o<r){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,d.event&&d.event.start.call(n,n.__data__,t),p=[],d.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=d.ease,s=d.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);if(u>=1)return d.event&&d.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),d=g[r];d||(l=i.time,f=qn(u,0,l),d=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function Bu(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function Wu(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function Ju(n){return n.toISOString()}function Gu(n,t,e){function r(t){return n(t)}function i(n,e){var r=(n[1]-n[0])/e,i=to.bisect(Yl,r);return i==Yl.length?[t.year,Xi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[r/Yl[i-1]<Yl[i]/r?i-1:i]:[Vl,Xi(n,e)[2]]}return r.invert=function(t){return Ku(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(Ku)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,Ku(+e+1),t).length}var u=r.domain(),o=ji(u),a=null==n?i(o,10):"number"==typeof n&&i(o,n);return a&&(n=a[0],t=a[1]),r.domain(Hi(u,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=Ku(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Ku(+t+1);return t}}:n))},r.ticks=function(n,t){var e=ji(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],Ku(+e[1]+1),t<1?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Gu(n.copy(),t,e)},Zi(r,n)}function Ku(n){return new Date(n)}function Qu(n){return JSON.parse(n.responseText)}function no(n){var t=io.createRange();return t.selectNode(io.body),t.createContextualFragment(n.responseText)}var to={version:"3.5.17"},eo=[].slice,ro=function(n){return eo.call(n)},io=this.document;if(io)try{ro(io.documentElement.childNodes)[0].nodeType}catch(n){ro=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),io)try{io.createElement("DIV").style.setProperty("opacity",0,"")}catch(n){var uo=this.Element.prototype,oo=uo.setAttribute,ao=uo.setAttributeNS,lo=this.CSSStyleDeclaration.prototype,co=lo.setProperty;uo.setAttribute=function(n,t){oo.call(this,n,t+"")},uo.setAttributeNS=function(n,t,e){ao.call(this,n,t,e+"")},lo.setProperty=function(n,t,e){co.call(this,n,t+"",e)}}to.ascending=e,to.descending=function(n,t){return t<n?-1:t>n?1:t>=n?0:NaN},to.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i<u;)if(null!=(r=n[i])&&r>=r){e=r;break}for(;++i<u;)null!=(r=n[i])&&e>r&&(e=r)}else{for(;++i<u;)if(null!=(r=t.call(n,n[i],i))&&r>=r){e=r;break}for(;++i<u;)null!=(r=t.call(n,n[i],i))&&e>r&&(e=r)}return e},to.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i<u;)if(null!=(r=n[i])&&r>=r){e=r;break}for(;++i<u;)null!=(r=n[i])&&r>e&&(e=r)}else{for(;++i<u;)if(null!=(r=t.call(n,n[i],i))&&r>=r){e=r;break}for(;++i<u;)null!=(r=t.call(n,n[i],i))&&r>e&&(e=r)}return e},to.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u<o;)if(null!=(r=n[u])&&r>=r){e=i=r;break}for(;++u<o;)null!=(r=n[u])&&(e>r&&(e=r),i<r&&(i=r))}else{for(;++u<o;)if(null!=(r=t.call(n,n[u],u))&&r>=r){e=i=r;break}for(;++u<o;)null!=(r=t.call(n,n[u],u))&&(e>r&&(e=r),i<r&&(i=r))}return[e,i]},to.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o<u;)i(e=+n[o])&&(r+=e);else for(;++o<u;)i(e=+t.call(n,n[o],o))&&(r+=e);return r},to.mean=function(n,t){var e,u=0,o=n.length,a=-1,l=o;if(1===arguments.length)for(;++a<o;)i(e=r(n[a]))?u+=e:--l;else for(;++a<o;)i(e=r(t.call(n,n[a],a)))?u+=e:--l;if(l)return u/l},to.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),i=+n[r-1],u=e-r;return u?i+u*(n[r]-i):i},to.median=function(n,t){var u,o=[],a=n.length,l=-1;if(1===arguments.length)for(;++l<a;)i(u=r(n[l]))&&o.push(u);else for(;++l<a;)i(u=r(t.call(n,n[l],l)))&&o.push(u);if(o.length)return to.quantile(o.sort(e),.5)},to.variance=function(n,t){var e,u,o=n.length,a=0,l=0,c=-1,f=0;if(1===arguments.length)for(;++c<o;)i(e=r(n[c]))&&(l+=(u=e-a)*(e-(a+=u/++f)));else for(;++c<o;)i(e=r(t.call(n,n[c],c)))&&(l+=(u=e-a)*(e-(a+=u/++f)));if(f>1)return l/(f-1)},to.deviation=function(){var n=to.variance.apply(this,arguments);return n?Math.sqrt(n):n};var fo=u(e);to.bisectLeft=fo.left,to.bisect=to.bisectRight=fo.right,to.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},to.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,u<2&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},to.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},to.pairs=function(n){for(var t=0,e=n.length-1,r=n[0],i=new Array(e<0?0:e);t<e;)i[t]=[r,r=n[++t]];return i},to.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=to.min(n,o),r=new Array(e);++t<e;)for(var i,u=-1,a=r[t]=new Array(i);++u<i;)a[u]=n[u][t];return r},to.zip=function(){return to.transpose(arguments)},to.keys=function(n){var t=[];for(var e in n)t.push(e);return t},to.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},to.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},to.merge=function(n){for(var t,e,r,i=n.length,u=-1,o=0;++u<i;)o+=n[u].length;for(e=new Array(o);--i>=0;)for(t=(r=n[i]).length;--t>=0;)e[--o]=r[t];return e};var so=Math.abs;to.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e==1/0)throw new Error("infinite range");var r,i=[],u=a(so(e)),o=-1;if(n*=u,t*=u,(e*=u)<0)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)<t;)i.push(r/u);return i},to.map=function(n,t){var e=new c;if(n instanceof c)n.forEach(function(n,t){e.set(n,t)});else if(Array.isArray(n)){var r,i=-1,u=n.length;if(1===arguments.length)for(;++i<u;)e.set(i,n[i]);else for(;++i<u;)e.set(t.call(n,r=n[i],i),r)}else for(var o in n)e.set(o,n[o]);return e};var ho="__proto__",po="\0";l(c,{has:h,get:function(n){return this._[f(n)]},set:function(n,t){return this._[f(n)]=t},remove:p,keys:g,values:function(){var n=[];for(var t in this._)n.push(this._[t]);return n},entries:function(){var n=[];for(var t in this._)n.push({key:s(t),value:this._[t]});return n},size:d,empty:v,forEach:function(n){for(var t in this._)n.call(this,s(t),this._[t])}}),to.nest=function(){function n(t,o,a){if(a>=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,d=u[a++],v=new c;++p<g;)(h=v.get(l=d(f=o[p])))?h.push(f):v.set(l,[f]);return t?(f=t(),s=function(e,r){f.set(e,n(t,r,a))}):(f={},s=function(e,r){f[e]=n(t,r,a)}),v.forEach(s),f}function t(n,e){if(e>=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(to.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},to.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;e<r;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:d,empty:v,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),to.behavior={},to.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r<i;)n[e=arguments[r]]=x(n,t,t[e]);return n};var go=["webkit","ms","moz","Moz","o","O"];to.dispatch=function(){for(var n=new b,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=w(n);return n},b.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},to.event=null,to.requote=function(n){return n.replace(vo,"\\$&")};var vo=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,yo={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},mo=function(n,t){return t.querySelector(n)},xo=function(n,t){return t.querySelectorAll(n)},Mo=function(n,t){var e=n.matches||n[M(n,"matchesSelector")];return(Mo=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(mo=function(n,t){return Sizzle(n,t)[0]||null},xo=Sizzle,Mo=Sizzle.matchesSelector),to.selection=function(){return to.select(io.documentElement)};var _o=to.selection.prototype=[];_o.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o<a;){u.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var l=-1,c=r.length;++l<c;)(i=r[l])?(t.push(e=n.call(i,i.__data__,l,o)),e&&"__data__"in i&&(e.__data__=i.__data__)):t.push(null)}return E(u)},_o.selectAll=function(n){var t,e,r=[];n=C(n);for(var i=-1,u=this.length;++i<u;)for(var o=this[i],a=-1,l=o.length;++a<l;)(e=o[a])&&(r.push(t=ro(n.call(e,e.__data__,a,i))),t.parentNode=e);return E(r)};var bo="http://www.w3.org/1999/xhtml",wo={svg:"http://www.w3.org/2000/svg",xhtml:bo,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};to.ns={prefix:wo,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),wo.hasOwnProperty(e)?{space:wo[e],local:n}:n}},_o.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=to.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},_o.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++i<r;)if(!t.contains(n[i]))return!1}else for(t=e.getAttribute("class");++i<r;)if(!q(n[i]).test(t))return!1;return!0}for(t in n)this.each(R(t,n[t]));return this}return this.each(R(n,t))},_o.style=function(n,e,r){var i=arguments.length;if(i<3){if("string"!=typeof n){i<2&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(i<2){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},_o.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(j(t,n[t]));return this}return this.each(j(n,t))},_o.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},_o.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},_o.append=function(n){return n=U(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},_o.insert=function(n,t){return n=U(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},_o.remove=function(){return this.each(F)},_o.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),d=new Array(o);if(t){var v,y=new c,m=new Array(o);for(r=-1;++r<o;)(i=n[r])&&(y.has(v=t.call(i,i.__data__,r))?d[r]=i:y.set(v,i),m[r]=v);for(r=-1;++r<s;)(i=y.get(v=t.call(e,u=e[r],r)))?!0!==i&&(p[r]=i,i.__data__=u):g[r]=H(u),y.set(v,!0);for(r=-1;++r<o;)r in m&&!0!==y.get(m[r])&&(d[r]=n[r])}else{for(r=-1;++r<h;)i=n[r],u=e[r],i?(i.__data__=u,p[r]=i):g[r]=H(u);for(;r<s;++r)g[r]=H(e[r]);for(;r<o;++r)d[r]=n[r]}g.update=p,g.parentNode=p.parentNode=d.parentNode=n.parentNode,a.push(g),l.push(p),f.push(d)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++u<o;)(i=r[u])&&(n[u]=i.__data__);return n}var a=Z([]),l=E([]),f=E([]);if("function"==typeof n)for(;++u<o;)e(r=this[u],n.call(r,r.parentNode.__data__,u));else for(;++u<o;)e(r=this[u],n);return l.enter=function(){return a},l.exit=function(){return f},l},_o.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},_o.filter=function(n){var t,e,r,i=[];"function"!=typeof n&&(n=O(n));for(var u=0,o=this.length;u<o;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;a<l;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},_o.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],i=r.length-1,u=r[i];--i>=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},_o.sort=function(n){n=Y.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},_o.each=function(n){return I(this,function(t,e,r){n.call(t,t.__data__,e,r)})},_o.call=function(n){var t=ro(arguments);return n.apply(t[0]=this,t),this},_o.empty=function(){return!this.node()},_o.node=function(){for(var n=0,t=this.length;n<t;n++)for(var e=this[n],r=0,i=e.length;r<i;r++){var u=e[r];if(u)return u}return null},_o.size=function(){var n=0;return I(this,function(){++n}),n};var So=[];to.selection.enter=Z,to.selection.enter.prototype=So,So.append=_o.append,So.empty=_o.empty,So.node=_o.node,So.call=_o.call,So.size=_o.size,So.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++a<l;){r=(i=this[a]).update,o.push(t=[]),t.parentNode=i.parentNode;for(var c=-1,f=i.length;++c<f;)(u=i[c])?(t.push(r[c]=e=n.call(i.parentNode,u.__data__,c,a)),e.__data__=u.__data__):t.push(null)}return E(o)},So.insert=function(n,t){return arguments.length<2&&(t=V(this)),_o.insert.call(this,n,t)},to.select=function(t){var e;return"string"==typeof t?(e=[mo(t,io)]).parentNode=io.documentElement:(e=[t]).parentNode=n(t),E([e])},to.selectAll=function(n){var t;return"string"==typeof n?(t=ro(xo(n,io))).parentNode=io.documentElement:(t=ro(n)).parentNode=null,E([t])},_o.on=function(n,t,e){var r=arguments.length;if(r<3){if("string"!=typeof n){r<2&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(r<2)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var ko=to.map({mouseenter:"mouseover",mouseleave:"mouseout"});io&&ko.forEach(function(n){"on"+n in io&&ko.remove(n)});var No,Eo=0;to.mouse=function(n){return J(n,k())};var Ao=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;to.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;i<u;++i)if((r=t[i]).identifier===e)return J(n,r)},to.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,d);r&&(n=r[0]-x[0],e=r[1]-x[1],g|=n|e,x=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,d)&&(y.on(u+v,null).on(o+v,null),m(g),p({type:"dragend"}))}var c,f=this,s=to.event.target.correspondingElement||to.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,d=n(),v=".drag"+(null==d?"":"-"+d),y=to.select(e(s)).on(u+v,a).on(o+v,l),m=W(s),x=t(h,d);i?(c=i.apply(f,arguments),c=[c.x-x[0],c.y-x[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(_,to.mouse,t,"mousemove","mouseup"),o=e(G,to.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},to.rebind(n,r,"on")},to.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?ro(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Co=1e-6,zo=Co*Co,Lo=Math.PI,qo=2*Lo,To=qo-Co,Ro=Lo/2,Do=Lo/180,Po=180/Lo,jo=Math.SQRT2;to.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(h<zo)r=Math.log(c/o)/jo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(jo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+4*h)/(2*o*2*p),d=(c*c-o*o-4*h)/(2*c*2*p),v=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(d*d+1)-d);r=(y-v)/jo,e=function(n){var t=n*r,e=rn(v),a=o/(2*p)*(e*un(jo*t+v)-en(v));return[i+a*f,u+a*s,o*e/rn(jo*t+v)]}}return e.duration=1e3*r,e},to.behavior.zoom=function(){function n(n){n.on(L,s).on(Fo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(v=e,r),t=to.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){_&&_.domain(M.range().map(function(n){return(n-k.x)/k.k}).map(M.invert)),w&&w.domain(b.range().map(function(n){return(n-k.y)/k.k}).map(b.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),v=null)}function s(){function n(){a=1,u(to.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=to.select(t(i)).on(q,n).on(T,r),h=e(to.mouse(i)),p=W(i);ql.call(i),l(o)}function h(){function n(){var n=to.touches(g);return p=k.k,n.forEach(function(n){n.identifier in v&&(v[n.identifier]=e(n))}),n}function t(){var t=to.event.target;to.select(t).on(M,r).on(_,a),b.push(t);for(var e=to.event.changedTouches,i=0,u=e.length;i<u;++i)v[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(c-x<500){f=l[0];o(g,f,v[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}x=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=to.touches(g);ql.call(g);for(var a=0,l=o.length;a<l;++a,r=null)if(e=o[a],r=v[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}x=null,u(n,t),c(d)}function a(){if(to.event.touches.length){for(var t=to.event.changedTouches,e=0,r=t.length;e<r;++e)delete v[t[e].identifier];for(var i in v)return void n()}to.selectAll(b).on(m,null),w.on(L,s).on(R,h),N(),f(d)}var p,g=this,d=D.of(g,arguments),v={},y=0,m=".zoom-"+to.event.changedTouches[0].identifier,M="touchmove"+m,_="touchend"+m,b=[],w=to.select(g),N=W(g);t(),l(d),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(ql.call(this),d=e(v=y||to.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Uo())*k.k),u(v,d),c(n)}function g(){var n=to.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),to.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var d,v,y,m,x,M,_,b,w,k={x:0,y:0,k:1},E=[960,500],A=Ho,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Fo||(Fo="onwheel"in io?(Uo=function(){return-to.event.deltaY*(to.event.deltaMode?120:1)},"wheel"):"onmousewheel"in io?(Uo=function(){return to.event.wheelDelta},"mousewheel"):(Uo=function(){return-to.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;zl?to.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=v?v[0]:e/2,u=v?v[1]:r/2,o=to.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Ho:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(_=t,M=t.copy(),k={x:0,y:0,k:1},n):_},n.y=function(t){return arguments.length?(w=t,b=t.copy(),k={x:0,y:0,k:1},n):w},to.rebind(n,D,"on")};var Uo,Fo,Ho=[0,1/0];to.color=an,an.prototype.toString=function(){return this.rgb()+""},to.hsl=ln;var Oo=ln.prototype=new an;Oo.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Oo.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Oo.rgb=function(){return cn(this.h,this.s,this.l)},to.hcl=fn;var Yo=fn.prototype=new an;Yo.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Io*(arguments.length?n:1)))},Yo.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Io*(arguments.length?n:1)))},Yo.rgb=function(){return sn(this.h,this.c,this.l).rgb()},to.lab=hn;var Io=18,Zo=.95047,Vo=1,Xo=1.08883,$o=hn.prototype=new an;$o.brighter=function(n){return new hn(Math.min(100,this.l+Io*(arguments.length?n:1)),this.a,this.b)},$o.darker=function(n){return new hn(Math.max(0,this.l-Io*(arguments.length?n:1)),this.a,this.b)},$o.rgb=function(){return pn(this.l,this.a,this.b)},to.rgb=mn;var Bo=mn.prototype=new an;Bo.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&t<i&&(t=i),e&&e<i&&(e=i),r&&r<i&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},Bo.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},Bo.hsl=function(){return wn(this.r,this.g,this.b)},Bo.toString=function(){return"#"+_n(this.r)+_n(this.g)+_n(this.b)};var Wo=to.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Wo.forEach(function(n,t){Wo.set(n,xn(t))}),to.functor=En,to.xhr=An(m),to.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++<c;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}return f=e+2,13===(r=n.charCodeAt(e+1))?(i=!0,10===n.charCodeAt(e+2)&&++f):10===r&&(i=!0),n.slice(t+1,e).replace(/""/g,'"')}for(;f<c;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},to.csv=to.dsv(",","text/csv"),to.tsv=to.dsv("\t","text/tab-separated-values");var Jo,Go,Ko,Qo,na=this[M(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};to.timer=function(){qn.apply(this,arguments)},to.timer.flush=function(){Rn(),Dn()},to.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var ta=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"].map(jn);to.formatPrefix=function(n,t){var e=0;return(n=+n)&&(n<0&&(n*=-1),t&&(n=to.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),ta[8+e/3]};var ea=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,ra=to.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=to.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ia=to.time={},ua=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){oa.setUTCDate.apply(this._,arguments)},setDay:function(){oa.setUTCDay.apply(this._,arguments)},setFullYear:function(){oa.setUTCFullYear.apply(this._,arguments)},setHours:function(){oa.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){oa.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){oa.setUTCMinutes.apply(this._,arguments)},setMonth:function(){oa.setUTCMonth.apply(this._,arguments)},setSeconds:function(){oa.setUTCSeconds.apply(this._,arguments)},setTime:function(){oa.setTime.apply(this._,arguments)}};var oa=Date.prototype;ia.year=On(function(n){return(n=ia.day(n)).setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ia.years=ia.year.range,ia.years.utc=ia.year.utc.range,ia.day=On(function(n){var t=new ua(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ia.days=ia.day.range,ia.days.utc=ia.day.utc.range,ia.dayOfYear=function(n){var t=ia.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ia[n]=On(function(n){return(n=ia.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ia.year(n).getDay();return Math.floor((ia.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ia[n+"s"]=e.range,ia[n+"s"].utc=e.utc.range,ia[n+"OfYear"]=function(n){var e=ia.year(n).getDay();return Math.floor((ia.dayOfYear(n)+(e+t)%7)/7)}}),ia.week=ia.sunday,ia.weeks=ia.sunday.range,ia.weeks.utc=ia.sunday.utc.range,ia.weekOfYear=ia.sundayOfYear;var aa={"-":"",_:" ",0:"0"},la=/^\s*\d+/,ca=/^%/;to.locale=function(n){return{numberFormat:Un(n),timeFormat:In(n)}};var fa=to.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});to.format=fa.numberFormat,to.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,sa),st(sa.s,this.s,this),this.s?this.t+=sa.t:this.s=sa.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var sa=new ft;to.geo.stream=function(n,t){n&&ha.hasOwnProperty(n.type)?ha[n.type](n,t):ht(n,t)};var ha={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++r<i;)ht(e[r].geometry,t)}},pa={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){pt(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)pt(e[r],t,0)},Polygon:function(n,t){gt(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)gt(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,i=e.length;++r<i;)ht(e[r],t)}};to.geo.area=function(n){return ga=0,to.geo.stream(n,va),ga};var ga,da=new ft,va={sphere:function(){ga+=4*Lo},point:_,lineStart:_,lineEnd:_,polygonStart:function(){da.reset(),va.lineStart=dt},polygonEnd:function(){var n=2*da;ga+=n<0?4*Lo+n:n,va.lineStart=va.lineEnd=va.point=_}};to.geo.bounds=function(){function n(n,t){x.push(M=[f=n,h=n]),t<s&&(s=t),t>p&&(p=t)}function t(t,e){var r=vt([t*Do,e*Do]);if(y){var i=mt(y,r),u=mt([i[1],-i[0],0],i);_t(u),u=bt(u);var o=t-g,l=o>0?1:-1,c=u[0]*Po*l,d=so(o)>180;if(d^(l*g<c&&c<l*t))(v=u[1]*Po)>p&&(p=v);else if(c=(c+360)%360-180,d^(l*g<c&&c<l*t)){var v=-u[1]*Po;v<s&&(s=v)}else e<s&&(s=e),e>p&&(p=e);d?t<g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(t<f&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){_.point=t}function r(){M[0]=f,M[1]=h,_.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=so(r)>180?r+(r>0?360:-360):r}else d=n,v=e;va.point(n,e),t(n,e)}function u(){va.lineStart()}function o(){i(d,v),va.lineEnd(),so(m)>Co&&(f=-(h=180)),M[0]=f,M[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var f,s,h,p,g,d,v,y,m,x,M,_={point:n,lineStart:e,lineEnd:r,polygonStart:function(){_.point=i,_.lineStart=u,_.lineEnd=o,m=0,va.polygonStart()},polygonEnd:function(){va.polygonEnd(),_.point=n,_.lineStart=e,_.lineEnd=r,da<0?(f=-(h=180),s=-(p=90)):m>Co?p=90:m<-Co&&(s=-90),M[0]=f,M[1]=h}};return function(n){p=h=-(f=s=1/0),x=[],to.geo.stream(n,_);var t=x.length;if(t){x.sort(l);for(var e=1,r=[g=x[0]];e<t;++e)c((u=x[e])[0],g)||c(u[1],g)?(a(g[0],u[1])>a(g[0],g[1])&&(g[1]=u[1]),a(u[0],g[1])>a(g[0],g[1])&&(g[0]=u[0])):r.push(g=u);for(var i,u,o=-1/0,e=0,g=r[t=r.length-1];e<=t;g=u,++e)u=r[e],(i=a(g[1],u[0]))>o&&(o=i,f=u[0],h=g[1])}return x=M=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),to.geo.centroid=function(n){ya=ma=xa=Ma=_a=ba=wa=Sa=ka=Na=Ea=0,to.geo.stream(n,Aa);var t=ka,e=Na,r=Ea,i=t*t+e*e+r*r;return i<zo&&(t=ba,e=wa,r=Sa,ma<Co&&(t=xa,e=Ma,r=_a),(i=t*t+e*e+r*r)<zo)?[NaN,NaN]:[Math.atan2(e,t)*Po,tn(r/Math.sqrt(i))*Po]};var ya,ma,xa,Ma,_a,ba,wa,Sa,ka,Na,Ea,Aa={sphere:_,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){Aa.lineStart=At},polygonEnd:function(){Aa.lineStart=Nt}},Ca=Rt(zt,Ut,Ht,[-Lo,-Lo/2]),za=1e9;to.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(to.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,to.geo.albers=function(){return to.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},to.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=to.geo.albers(),o=to.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=to.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?o:i>=.166&&i<.234&&r>=-.214&&r<-.115?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Co,s+.12*c+Co],[f-.214*c-Co,s+.234*c-Co]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Co,s+.166*c+Co],[f-.115*c-Co,s+.234*c-Co]]).stream(l).point,n},n.scale(1070)};var La,qa,Ta,Ra,Da,Pa,ja={point:_,lineStart:_,lineEnd:_,polygonStart:function(){qa=0,ja.lineStart=$t},polygonEnd:function(){ja.lineStart=ja.lineEnd=ja.point=_,La+=so(qa/2)}},Ua={point:Bt,lineStart:_,lineEnd:_,polygonStart:_,polygonEnd:_},Fa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Fa.lineStart=ne},polygonEnd:function(){Fa.point=Gt,Fa.lineStart=Kt,Fa.lineEnd=Qt}};to.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),to.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return La=0,to.geo.stream(n,i(ja)),La},n.centroid=function(n){return xa=Ma=_a=ba=wa=Sa=ka=Na=Ea=0,to.geo.stream(n,i(Fa)),Ea?[ka/Ea,Na/Ea]:Sa?[ba/Sa,wa/Sa]:_a?[xa/_a,Ma/_a]:[NaN,NaN]},n.bounds=function(n){return Da=Pa=-(Ta=Ra=1/0),to.geo.stream(n,i(Ua)),[[Ta,Ra],[Da,Pa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(to.geo.albersUsa()).context(null)},to.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},to.geo.projection=oe,to.geo.projectionMutator=ae,(to.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,to.geo.rotation=function(n){function t(t){return t=n(t[0]*Do,t[1]*Do),t[0]*=Po,t[1]*=Po,t}return n=se(n[0]%360*Do,n[1]*Do,n.length>2?n[2]*Do:0),t.invert=function(t){return t=n.invert(t[0]*Do,t[1]*Do),t[0]*=Po,t[1]*=Po,t},t},fe.invert=ce,to.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Do,-n[1]*Do,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Po,n[1]*=Po}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=de((t=+r)*Do,i*Do),n):t},n.precision=function(r){return arguments.length?(e=de(t*Do,(i=+r)*Do),n):i},n.angle(90)},to.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Do,i=n[1]*Do,u=t[1]*Do,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},to.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return to.range(Math.ceil(u/v)*v,i,v).map(h).concat(to.range(Math.ceil(c/y)*y,l,y).map(p)).concat(to.range(Math.ceil(r/g)*g,e,g).filter(function(n){return so(n%v)>Co}).map(f)).concat(to.range(Math.ceil(a/d)*d,o,d).filter(function(n){return so(n%y)>Co}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,d=g,v=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(v=+t[0],y=+t[1],n):[v,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],d=+t[1],n):[g,d]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Co],[180,90-Co]]).minorExtent([[-180,-80-Co],[180,80+Co]])},to.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=xe,i=Me;return n.distance=function(){return to.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},to.geo.interpolate=function(n,t){return _e(n[0]*Do,n[1]*Do,t[0]*Do,t[1]*Do)},to.geo.length=function(n){return Ha=0,to.geo.stream(n,Oa),Ha};var Ha,Oa={sphere:_,point:_,lineStart:be,lineEnd:_,polygonStart:_,polygonEnd:_},Ya=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(to.geo.azimuthalEqualArea=function(){return oe(Ya)}).raw=Ya;var Ia=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(to.geo.azimuthalEquidistant=function(){return oe(Ia)}).raw=Ia,(to.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(to.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var Za=we(function(n){return 1/n},Math.atan);(to.geo.gnomonic=function(){return oe(Za)}).raw=Za,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Ro]},(to.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var Va=we(function(){return 1},Math.asin);(to.geo.orthographic=function(){return oe(Va)}).raw=Va;var Xa=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(to.geo.stereographic=function(){return oe(Xa)}).raw=Xa,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Ro]},(to.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,to.geom={},to.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;t<o;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;t<o;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t<f.length-h;++t)p.push(n[a[f[t]][2]]);return p}var e=Ce,r=ze;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},to.geom.polygon=function(n){return yo(n,$a),n};var $a=to.geom.polygon.prototype=[];$a.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],i=0;++t<e;)n=r,r=this[t],i+=n[1]*r[0]-n[0]*r[1];return.5*i},$a.centroid=function(n){var t,e,r=-1,i=this.length,u=0,o=0,a=this[i-1];for(arguments.length||(n=-1/(6*this.area()));++r<i;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],u+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[u*n,o*n]},$a.clip=function(n){for(var t,e,r,i,u,o,a=De(n),l=-1,c=this.length-De(this),f=this[c-1];++l<c;){for(t=n.slice(),n.length=0,i=this[l],u=t[(r=t.length-a)-1],e=-1;++e<r;)Te(o=t[e],f,i)?(Te(u,f,i)||n.push(Re(u,o,f,i)),n.push(o)):Te(u,f,i)&&n.push(Re(u,o,f,i)),u=o;a&&n.push(n[0]),f=i}return n};var Ba,Wa,Ja,Ga,Ka,Qa=[],nl=[];Ie.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)(n=t[e].edge).b&&n.a||t.splice(e,1);return t.sort(Ve),t.length},tr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},er.prototype={insert:function(n,t){var e,r,i;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=or(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)e===(r=e.U).L?(i=r.R)&&i.C?(e.C=i.C=!1,r.C=!0,n=r):(n===e.R&&(ir(this,e),e=(n=e).U),e.C=!1,r.C=!0,ur(this,r)):(i=r.L)&&i.C?(e.C=i.C=!1,r.C=!0,n=r):(n===e.L&&(ur(this,e),e=(n=e).U),e.C=!1,r.C=!0,ir(this,r)),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,i=n.U,u=n.L,o=n.R;if(e=u?o?or(o):u:o,i?i.L===n?i.L=e:i.R=e:this._=e,u&&o?(r=e.C,e.C=n.C,e.L=u,u.U=e,e!==o?(i=e.U,e.U=n.U,n=e.R,i.L=n,e.R=o,o.U=e):(e.U=i,i=e,n=e.R)):(r=n.C,n=e),n&&(n.U=i),!r)if(n&&n.C)n.C=!1;else{do{if(n===this._)break;if(n===i.L){if((t=i.R).C&&(t.C=!1,i.C=!0,ir(this,i),t=i.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,ur(this,t),t=i.R),t.C=i.C,i.C=t.R.C=!1,ir(this,i),n=this._;break}}else if((t=i.L).C&&(t.C=!1,i.C=!0,ur(this,i),t=i.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,ir(this,t),t=i.L),t.C=i.C,i.C=t.L.C=!1,ur(this,i),n=this._;break}t.C=!0,n=i,i=i.U}while(!n.C);n&&(n.C=!1)}}},to.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],i=a[0][1],u=a[1][0],o=a[1][1];return ar(e(n),a).cells.forEach(function(e,a){var l=e.edges,c=e.site;(t[a]=l.length?l.map(function(n){var t=n.start();return[t.x,t.y]}):c.x>=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[]).point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Co)*Co,y:Math.round(o(n,t)/Co)*Co,i:t}})}var r=Ce,i=ze,u=r,o=i,a=tl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u=e.site,o=e.edges.sort(Ve),a=-1,l=o.length,c=o[l-1].edge,f=c.l===u?c.r:c.l;++a<l;)c,i=f,f=(c=o[a].edge).l===u?c.r:c.l,r<i.i&&r<f.i&&cr(u,i,f)<0&&t.push([n[r],n[i.i],n[f.i]])}),t},t.x=function(n){return arguments.length?(u=En(r=n),t):r},t.y=function(n){return arguments.length?(o=En(i=n),t):i},t.clipExtent=function(n){return arguments.length?(a=null==n?tl:n,t):a===tl?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===tl?null:a&&a[1]},t)};var tl=[[-1e6,-1e6],[1e6,1e6]];to.geom.delaunay=function(n){return to.geom.voronoi().triangles(n)},to.geom.quadtree=function(n,t,e,r,i){function u(n){function u(n,t,e,r,i,u,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var l=n.x,f=n.y;if(null!=l)if(so(l-e)+so(f-r)<.01)c(n,t,e,r,i,u,o,a);else{var s=n.point;n.x=n.y=n.point=null,c(n,s,l,f,i,u,o,a),c(n,t,e,r,i,u,o,a)}else n.x=e,n.y=r,n.point=t}else c(n,t,e,r,i,u,o,a)}function c(n,t,e,r,i,o,a,l){var c=.5*(i+a),f=.5*(o+l),s=e>=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]={leaf:!0,nodes:[],point:null,x:null,y:null}),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,d,v,y,m,x=En(a),M=En(l);if(null!=t)d=t,v=e,y=r,m=i;else if(y=m=-(d=v=1/0),s=[],h=[],g=n.length,o)for(p=0;p<g;++p)(f=n[p]).x<d&&(d=f.x),f.y<v&&(v=f.y),f.x>y&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;p<g;++p){var _=+x(f=n[p],p),b=+M(f,p);_<d&&(d=_),b<v&&(v=b),_>y&&(y=_),b>m&&(m=b),s.push(_),h.push(b)}var w=y-d,S=m-v;w>S?m=v+w:y=d+S;var k={leaf:!0,nodes:[],point:null,x:null,y:null};if(k.add=function(n){u(k,n,+x(n,++p),+M(n,p),d,v,y,m)},k.visit=function(n){hr(n,k,d,v,y,m)},k.find=function(n){return pr(k,n[0],n[1],d,v,y,m)},p=-1,null==t){for(;++p<g;)u(k,n[p],s[p],h[p],d,v,y,m);--p}else n.forEach(k.add);return s=h=n=f=null,k}var o,a=Ce,l=ze;return(o=arguments.length)?(a=fr,l=sr,3===o&&(i=e,r=t,e=t=0),u(n)):(u.x=function(n){return arguments.length?(a=n,u):a},u.y=function(n){return arguments.length?(l=n,u):l},u.extent=function(n){return arguments.length?(null==n?t=e=r=i=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],i=+n[1][1]),u):null==t?null:[[t,e],[r,i]]},u.size=function(n){return arguments.length?(null==n?t=e=r=i=null:(t=e=0,r=+n[0],i=+n[1]),u):null==t?null:[r-t,i-e]},u)},to.interpolateRgb=gr,to.interpolateObject=dr,to.interpolateNumber=vr,to.interpolateString=yr;var el=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,rl=new RegExp(el.source,"g");to.interpolate=mr,to.interpolators=[function(n,t){var e=typeof t;return("string"===e?Wo.has(t.toLowerCase())||/^(#|rgb\(|hsl\()/i.test(t)?gr:yr:t instanceof an?gr:Array.isArray(t)?xr:"object"===e&&isNaN(t)?dr:vr)(n,t)}],to.interpolateArray=xr;var il=function(){return m},ul=to.map({linear:il,poly:Nr,quad:function(){return wr},cubic:function(){return Sr},sin:function(){return Er},exp:function(){return Ar},circle:function(){return Cr},elastic:zr,back:Lr,bounce:function(){return qr}}),ol=to.map({in:m,out:_r,"in-out":br,"out-in":function(n){return br(_r(n))}});to.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=ul.get(e)||il,r=ol.get(r)||m,Mr(r(e.apply(null,eo.call(arguments,1))))},to.interpolateHcl=Tr,to.interpolateHsl=Rr,to.interpolateLab=Dr,to.interpolateRound=Pr,to.transform=function(n){var t=io.createElementNS(to.ns.prefix.svg,"g");return(to.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:al)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var al={a:1,b:0,c:0,d:1,e:0,f:0};to.interpolateTransform=Xr,to.layout={},to.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(Wr(n[e]));return t}},to.layout.chord=function(){function n(){var n,c,s,h,p,g={},d=[],v=to.range(u),y=[];for(e=[],r=[],n=0,h=-1;++h<u;){for(c=0,p=-1;++p<u;)c+=i[h][p];d.push(c),y.push(to.range(u)),n+=c}for(o&&v.sort(function(n,t){return o(d[n],d[t])}),a&&y.forEach(function(n,t){n.sort(function(n,e){return a(i[t][n],i[t][e])})}),n=(qo-f*u)/n,c=0,h=-1;++h<u;){for(s=c,p=-1;++p<u;){var m=v[h],x=y[m][p],M=i[m][x],_=c,b=c+=M*n;g[m+"-"+x]={index:m,subindex:x,startAngle:_,endAngle:b,value:M}}r[m]={index:m,startAngle:s,endAngle:c,value:d[m]},c+=f}for(h=-1;++h<u;)for(p=h-1;++p<u;){var w=g[h+"-"+p],S=g[p+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}l&&t()}function t(){e.sort(function(n,t){return l((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,i,u,o,a,l,c={},f=0;return c.matrix=function(n){return arguments.length?(u=(i=n)&&i.length,e=r=null,c):i},c.padding=function(n){return arguments.length?(f=n,e=r=null,c):f},c.sortGroups=function(n){return arguments.length?(o=n,e=r=null,c):o},c.sortSubgroups=function(n){return arguments.length?(a=n,e=null,c):a},c.sortChords=function(n){return arguments.length?(l=n,e&&t(),c):l},c.chords=function(){return e||n(),e},c.groups=function(){return r||n(),r},c},to.layout.force=function(){function n(n){return function(t,e,r,i){if(t.point!==n){var u=t.cx-n.x,o=t.cy-n.y,a=i-e,l=u*u+o*o;if(a*a/y<l){if(l<d){c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&l<d){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=to.event.x,n.py=to.event.y,l.resume()}var e,r,i,u,o,a,l={},c=to.dispatch("start","tick","end"),f=[1,1],s=.9,h=ll,p=cl,g=-30,d=fl,v=.1,y=.64,x=[],M=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,d,y,m,_,b=x.length,w=M.length;for(r=0;r<w;++r)h=(l=M[r]).source,(d=(m=(p=l.target).x-h.x)*m+(_=p.y-h.y)*_)&&(m*=d=i*o[r]*((d=Math.sqrt(d))-u[r])/d,_*=d,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=_*y,h.x+=m*(y=1-y),h.y+=_*y);if((y=i*v)&&(m=f[0]/2,_=f[1]/2,r=-1,y))for(;++r<b;)(l=x[r]).x+=(m-l.x)*y,l.y+=(_-l.y)*y;if(g)for(ei(t=to.geom.quadtree(x),i,a),r=-1;++r<b;)(l=x[r]).fixed||t.visit(n(l));for(r=-1;++r<b;)(l=x[r]).fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(x=n,l):x},l.links=function(n){return arguments.length?(M=n,l):M},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(d=n*n,l):Math.sqrt(d)},l.gravity=function(n){return arguments.length?(v=+n,l):v},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;l<i;++l)e[l]=[];for(l=0;l<c;++l){var u=M[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++l<f;)if(!isNaN(o=a[l][n]))return o;return Math.random()*r}var t,e,r,i=x.length,c=M.length,s=f[0],d=f[1];for(t=0;t<i;++t)(r=x[t]).index=t,r.weight=0;for(t=0;t<c;++t)"number"==typeof(r=M[t]).source&&(r.source=x[r.source]),"number"==typeof r.target&&(r.target=x[r.target]),++r.source.weight,++r.target.weight;for(t=0;t<i;++t)r=x[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",d)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;t<c;++t)u[t]=+h.call(this,M[t],t);else for(t=0;t<c;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;t<c;++t)o[t]=+p.call(this,M[t],t);else for(t=0;t<c;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;t<i;++t)a[t]=+g.call(this,x[t],t);else for(t=0;t<i;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){if(r||(r=to.behavior.drag().origin(m).on("dragstart.force",Kr).on("drag.force",t).on("dragend.force",Qr)),!arguments.length)return r;this.on("mouseover.force",ni).on("mouseout.force",ti).call(r)},to.rebind(l,c,"on")};var ll=20,cl=1,fl=1/0;to.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return ui(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=li,e=oi,r=ai;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ii(t,function(n){n.children&&(n.value=0)}),ui(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},to.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++c<o;)n(a=u[c],e,l=a.value*r,i),e+=l}}function t(n){var e=n.children,r=0;if(e&&(i=e.length))for(var i,u=-1;++u<i;)r=Math.max(r,t(e[u]));return 1+r}function e(e,u){var o=r.call(this,e,u);return n(o[0],0,i[0],i[1]/t(o[0])),o}var r=to.layout.hierarchy(),i=[1,1];return e.size=function(n){return arguments.length?(i=n,e):i},ri(e,r)},to.layout.pie=function(){function n(o){var a,l=o.length,c=o.map(function(e,r){return+t.call(n,e,r)}),f=+("function"==typeof r?r.apply(this,arguments):r),s=("function"==typeof i?i.apply(this,arguments):i)-f,h=Math.min(Math.abs(s)/l,+("function"==typeof u?u.apply(this,arguments):u)),p=h*(s<0?-1:1),g=to.sum(c),d=g?(s-l*p)/g:0,v=to.range(l),y=[];return null!=e&&v.sort(e===sl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),v.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*d+p,padAngle:h}}),y}var t=Number,e=sl,r=0,i=qo,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var sl={};to.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=to.permute(c,s),f=to.permute(f,s);var h,p,g,d,v=r.call(n,f,l),y=c[0].length;for(g=0;g<y;++g)for(i.call(n,c[0][g],d=v[g],f[0][g][1]),p=1;p<h;++p)i.call(n,c[p][g],d+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=pi,r=gi,i=hi,u=fi,o=si;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:hl.get(t)||pi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:pl.get(t)||gi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var hl=to.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(vi),o=to.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;t<r;++t)e=o[t],a<l?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return to.range(n.length).reverse()},default:pi}),pl=to.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;e<u;++e){for(t=0,r=0;t<i;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;e<u;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;e<h;++e){for(t=0,i=0;t<f;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];t<f;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);r<t;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,l<c&&(c=l)}for(e=0;e<h;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;e<u;++e){for(t=0,r=0;t<i;t++)r+=n[t][e][1];if(r)for(t=0;t<i;t++)n[t][e][1]/=r;else for(t=0;t<i;t++)n[t][e][1]=o}for(e=0;e<u;++e)a[e]=0;return a},zero:gi});to.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u<p;)(o=l[u]=[]).dx=s[u+1]-(o.x=s[u]),o.y=0;if(p>0)for(u=-1;++u<h;)(a=c[u])>=f[0]&&a<=f[1]&&((o=l[to.bisect(s,a,1,p)-1]).y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=Mi,i=mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},to.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,ui(a,function(n){n.r=+f(n.value)}),ui(a,ki),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;ui(a,function(n){n.r+=s}),ui(a,ki),ui(a,function(n){n.r-=s})}return Ai(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=to.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ri(n,e)},to.layout.tree=function(){function n(n,r){var u=M.call(this,n,r),o=t(u[0]);return N=o,e(o,0),i(o),g(o,0),m(o),u}function t(n){var e={t:n,prelim:0,mod:0,shift:0,change:0,msel:0,mser:0};if(n.x=0,n.y=0,w)e.x_size=1,e.y_size=1;else if("object"==typeof S)e.x_size=S[0],e.y_size=S[1];else{var r=S(n);e.x_size=r[0],e.y_size=r[1]}k&&(n.x_size=e.x_size,n.y_size=e.y_size);for(var i=[],u=n.children?n.children.length:0,o=0;o<u;++o)i.push(t(n.children[o]));return e.children=i,e.num_children=u,e}function e(n,t){n.t.y=t,n.t.depth=0,r(n)}function r(n){var t,e=n.t.y+n.y_size,i=n.t.depth+1;for(t=0;t<n.children.length;++t){var u=n.children[t];u.t.y=e,u.t.parent=n.t,u.t.depth=i,r(n.children[t])}}function i(n){if(0!=n.num_children){i(n.children[0]);for(var t=y(f(n.children[0].el),0,null),e=1;e<n.num_children;++e){i(n.children[e]);var r=f(n.children[e].er);o(n,e,t),t=y(r,e,t)}p(n),u(n)}else u(n)}function u(n){0==n.num_children?(n.el=n,n.er=n,n.msel=n.mser=0):(n.el=n.children[0].el,n.msel=n.children[0].msel,n.er=n.children[n.num_children-1].er,n.mser=n.children[n.num_children-1].mser)}function o(n,t,e){for(var r=n.children[t-1],i=r.mod,u=n.children[t],o=u.mod;null!=r&&null!=u;){f(r)>e.lowY&&(e=e.nxt);var p=i+r.prelim-(o+u.prelim);null!=_?p+=_(r.t,u.t)*N.x_size:null!=b&&(p+=r.x_size/2+u.x_size/2+b(r.t,u.t)),p>0?(o+=p,a(n,t,e.index,p)):1===t&&0===o&&0===r.num_children&&u.num_children>1&&p<0&&(o+=p,a(n,t,e.index,p));var g=f(r),d=f(u);g<=d&&null!=(r=c(r))&&(i+=r.mod),g>=d&&null!=(u=l(u))&&(o+=u.mod)}null==r&&null!=u?s(n,t,u,o):null!=r&&null==u&&h(n,t,r,i)}function a(n,t,e,r){n.children[t].mod+=r,n.children[t].msel+=r,n.children[t].mser+=r,d(n,t,e,r)}function l(n){return 0==n.num_children?n.tl:n.children[0]}function c(n){return 0==n.num_children?n.tr:n.children[n.num_children-1]}function f(n){return n.t.y+n.y_size}function s(n,t,e,r){var i=n.children[0].el;i.tl=e;var u=r-e.mod-n.children[0].msel;i.mod+=u,i.prelim-=u,n.children[0].el=n.children[t].el,n.children[0].msel=n.children[t].msel}function h(n,t,e,r){var i=n.children[t].er;i.tr=e;var u=r-e.mod-n.children[t].mser;i.mod+=u,i.prelim-=u,n.children[t].er=n.children[t-1].er,n.children[t].mser=n.children[t-1].mser}function p(n){n.prelim=(n.children[0].prelim+n.children[0].mod-n.children[0].x_size/2+n.children[n.num_children-1].mod+n.children[n.num_children-1].prelim+n.children[n.num_children-1].x_size/2)/2}function g(n,t){t+=n.mod,n.t.x=n.prelim+t,v(n);for(var e=0;e<n.num_children;e++)g(n.children[e],t)}function d(n,t,e,r){if(e!=t-1){var i=t-e;n.children[e+1].shift+=r/i,n.children[t].shift-=r/i,n.children[t].change-=r-r/i}}function v(n){for(var t=0,e=0,r=0;r<n.num_children;r++)e+=(t+=n.children[r].shift)+n.children[r].change,n.children[r].mod+=e}function y(n,t,e){for(;null!=e&&n>=e.lowY;)e=e.nxt;return{lowY:n,index:t,nxt:e}}function m(n){if(null!=w){for(var t,e=n,r=n,i=n,u=[n];t=u.pop();)(f=t.t).x<e.t.x&&(e=t),f.x>r.t.x&&(r=t),f.depth>i.t.depth&&(i=t),t.children&&(u=u.concat(t.children));var o=null==_?.5:_(e.t,r.t)/2,a=o-e.t.x,l=w[0]/(r.t.x+o+a),c=w[1]/(i.t.depth>0?i.t.depth:1);for(u=[n];t=u.pop();){var f=t.t;f.x=(f.x+a)*l,f.y=f.depth*c,k&&(f.x_size*=l,f.y_size*=c),t.children&&(u=u.concat(t.children))}}else x(n,-n.t.x)}function x(n,t){n.t.x+=t;for(var e=0;e<n.num_children;++e)x(n.children[e],t)}var M=to.layout.hierarchy().sort(null).value(null),_=zi,b=null,w=[1,1],S=null,k=!1,N=null;return n.separation=function(t){return arguments.length?(_=t,b=null,n):_},n.spacing=function(t){return arguments.length?(b=t,_=null,n):b},n.size=function(t){return arguments.length?(w=t,S=null,n):w},n.nodeSize=function(t){return arguments.length?(S=t,w=null,n):S},n.setNodeSizes=function(t){return arguments.length?(k=t,n):k},n.rootXSize=function(){return N?N.x_size:null},ri(n,M)},to.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;ui(l,function(n){var t=n.children;t&&t.length?(n.x=qi(t),n.y=Li(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Ti(l),s=Ri(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return ui(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=to.layout.hierarchy().sort(null).value(null),e=zi,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ri(n,t)},to.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++i<u;)r=(e=n[i]).value*(t<0?0:t),e.area=isNaN(r)||r<=0?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,d="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,d))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,d,c,!1),d=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,d,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(e<u&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0;if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++u<o;)(i=n[u]).x=a,i.y=c,i.dy=f,a+=i.dx=Math.min(e.x+e.dx-a,f?l(i.area/f):0);i.z=!0,i.dx+=e.x+e.dx-a,e.y+=f,e.dy-=f}else{for((r||f>e.dx)&&(f=e.dx);++u<o;)(i=n[u]).x=a,i.y=c,i.dx=f,c+=i.dy=Math.min(e.y+e.dy-c,f?l(i.area/f):0);i.z=!1,i.dy+=e.y+e.dy-c,e.x+=f,e.dx-=f}}function u(r){var i=o||a(r),u=i[0];return u.x=u.y=0,u.value?(u.dx=c[0],u.dy=c[1]):u.dx=u.dy=0,o&&a.revalue(u),n([u],u.dx*u.dy/u.value),(o?e:t)(u),h&&(o=i),i}var o,a=to.layout.hierarchy(),l=Math.round,c=[1,1],f=null,s=Di,h=!1,p="squarify",g=.5*(1+Math.sqrt(5));return u.size=function(n){return arguments.length?(c=n,u):c},u.padding=function(n){function t(t){var e=n.call(u,t,t.depth);return null==e?Di(t):Pi(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return Pi(t,n)}if(!arguments.length)return f;var r;return s=null==(f=n)?Di:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,u},u.round=function(n){return arguments.length?(l=n?Math.round:Number,u):l!=Number},u.sticky=function(n){return arguments.length?(h=n,o=null,u):h},u.ratio=function(n){return arguments.length?(g=n,u):g},u.mode=function(n){return arguments.length?(p=n+"",u):p},ri(u,a)},to.random={normal:function(n,t){var e=arguments.length;return e<2&&(t=1),e<1&&(n=0),function(){var e,r,i;do{i=(e=2*Math.random()-1)*e+(r=2*Math.random()-1)*r}while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=to.random.normal.apply(to,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=to.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;e<n;e++)t+=Math.random();return t}}},to.scale={};var gl={floor:m,ceil:m};to.scale.linear=function(){return Ii([0,1],[0,1],mr,!1)};var dl={s:1,g:1,p:1,r:1,e:1};to.scale.log=function(){return Gi(to.scale.linear().domain([0,1]),10,!0,[1,10])};var vl=to.format(".0e"),yl={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};to.scale.pow=function(){return Ki(to.scale.linear(),1,[0,1])},to.scale.sqrt=function(){return to.scale.pow().exponent(.5)},to.scale.ordinal=function(){return nu([],{t:"range",a:[[]]})},to.scale.category10=function(){return to.scale.ordinal().range(ml)},to.scale.category20=function(){return to.scale.ordinal().range(xl)},to.scale.category20b=function(){return to.scale.ordinal().range(Ml)},to.scale.category20c=function(){return to.scale.ordinal().range(_l)};var ml=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(Mn),xl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(Mn),Ml=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(Mn),_l=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(Mn);to.scale.quantile=function(){return tu([],[])},to.scale.quantize=function(){return eu(0,1,[0,1])},to.scale.threshold=function(){return ru([.5],[0,1])},to.scale.identity=function(){return iu([0,1])},to.svg={},to.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Ro,s=a.apply(this,arguments)-Ro,h=Math.abs(s-f),p=f>s?0:1;if(c<n&&(g=c,c=n,n=g),h>=To)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,d,v,y,m,x,M,_,b,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(v=u===bl?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(v/c*Math.sin(y))),n&&(N=tn(v/n*Math.sin(y)))),c){m=c*Math.cos(f+E),x=c*Math.sin(f+E),M=c*Math.cos(s-E),_=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Lo?0:1;if(E&&su(m,x,M,_)===p^C){var z=(f+s)/2;m=c*Math.cos(z),x=c*Math.sin(z),M=_=null}}else m=x=0;if(n){b=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Lo?0:1;if(N&&su(b,w,S,k)===1-p^L){var q=(f+s)/2;b=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else b=w=0;if(h>Co&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){d=n<c^p?0:1;var T=g,R=g;if(h<Lo){var D=null==S?[b,w]:null==M?[m,x]:Re([m,x],[S,k],[M,_],[b,w]),P=m-D[0],j=x-D[1],U=M-D[0],F=_-D[1],H=1/Math.sin(Math.acos((P*U+j*F)/(Math.sqrt(P*P+j*j)*Math.sqrt(U*U+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=M){var Y=hu(null==S?[b,w]:[S,k],[m,x],c,T,p),I=hu([M,_],[b,w],c,T,p);g===T?A.push("M",Y[0],"A",T,",",T," 0 0,",d," ",Y[1],"A",c,",",c," 0 ",1-p^su(Y[1][0],Y[1][1],I[1][0],I[1][1]),",",p," ",I[1],"A",T,",",T," 0 0,",d," ",I[0]):A.push("M",Y[0],"A",T,",",T," 0 1,",d," ",I[0])}else A.push("M",m,",",x);if(null!=S){var Z=hu([m,x],[S,k],n,-R,p),V=hu([b,w],null==M?[m,x]:[M,_],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",d," ",V[1],"A",n,",",n," 0 ",p^su(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",d," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",d," ",Z[0])}else A.push("L",b,",",w)}else A.push("M",m,",",x),null!=M&&A.push("A",c,",",c," 0 ",C,",",p," ",M,",",_),A.push("L",b,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=ou,r=au,i=uu,u=bl,o=lu,a=cu,l=fu;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==bl?bl:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Ro;return[Math.cos(t)*n,Math.sin(t)*n]},n};var bl="auto";to.svg.line=function(){return pu(m)};var wl=to.map({linear:gu,"linear-closed":du,step:vu,"step-before":yu,"step-after":mu,basis:Su,"basis-open":ku,"basis-closed":Nu,bundle:Eu,cardinal:_u,"cardinal-open":xu,"cardinal-closed":Mu,monotone:Tu});wl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Sl=[0,2/3,1/3,0],kl=[0,1/3,2/3,0],Nl=[0,1/6,2/3,1/6];to.svg.line.radial=function(){var n=pu(Ru);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},yu.reverse=mu,mu.reverse=yu,to.svg.area=function(){return Du(m)},to.svg.area.radial=function(){var n=Du(Ru);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},to.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Ro,f=c.call(n,i,r)-Ro;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Lo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=xe,o=Me,a=Pu,l=lu,c=cu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},to.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return"M"+(l=l.map(r))[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=xe,e=Me,r=ju;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},to.svg.diagonal.radial=function(){var n=to.svg.diagonal(),t=ju,e=n.projection;return n.projection=function(n){return arguments.length?e(Uu(t=n)):t},n},to.svg.symbol=function(){function n(n,r){return(El.get(t.call(this,n,r))||Ou)(e.call(this,n,r))}var t=Hu,e=Fu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var El=to.map({circle:Ou,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Cl)),e=t*Cl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/Al),e=t*Al/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/Al),e=t*Al/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});to.svg.symbolTypes=El.keys();var Al=Math.sqrt(3),Cl=Math.tan(30*Do);_o.transition=function(n){for(var t,e,r=zl||++Rl,i=Xu(n),u=[],o=Ll||{time:Date.now(),ease:kr,delay:0,duration:250},a=-1,l=this.length;++a<l;){u.push(t=[]);for(var c=this[a],f=-1,s=c.length;++f<s;)(e=c[f])&&$u(e,f,i,r,o),t.push(e)}return Iu(u,i,r)},_o.interrupt=function(n){return this.each(null==n?ql:Yu(Xu(n)))};var zl,Ll,ql=Yu(Xu()),Tl=[],Rl=0;Tl.call=_o.call,Tl.empty=_o.empty,Tl.node=_o.node,Tl.size=_o.size,to.transition=function(n,t){return n&&n.transition?zl?n.transition(t):n:to.selection().transition(n)},to.transition.prototype=Tl,Tl.select=function(n){var t,e,r,i=this.id,u=this.namespace,o=[];n=A(n);for(var a=-1,l=this.length;++a<l;){o.push(t=[]);for(var c=this[a],f=-1,s=c.length;++f<s;)(r=c[f])&&(e=n.call(r,r.__data__,f,a))?("__data__"in r&&(e.__data__=r.__data__),$u(e,f,u,i,r[u][i]),t.push(e)):t.push(null)}return Iu(o,u,i)},Tl.selectAll=function(n){var t,e,r,i,u,o=this.id,a=this.namespace,l=[];n=C(n);for(var c=-1,f=this.length;++c<f;)for(var s=this[c],h=-1,p=s.length;++h<p;)if(r=s[h]){u=r[a][o],e=n.call(r,r.__data__,h,c),l.push(t=[]);for(var g=-1,d=e.length;++g<d;)(i=e[g])&&$u(i,g,a,o,u),t.push(i)}return Iu(l,a,o)},Tl.filter=function(n){var t,e,r,i=[];"function"!=typeof n&&(n=O(n));for(var u=0,o=this.length;u<o;u++){i.push(t=[]);for(var a=0,l=(e=this[u]).length;a<l;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Iu(i,this.namespace,this.id)},Tl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):I(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Tl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Xr:mr,a=to.ns.qualify(n);return Zu(this,"attr."+n,t,a.local?u:i)},Tl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=to.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Tl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(o<3){if("string"!=typeof n){o<2&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Zu(this,"style."+n,e,u)},Tl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Tl.text=function(n){return Zu(this,"text",n,Vu)},Tl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Tl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=to.ease.apply(to,arguments)),I(this,function(r){r[e][t].ease=n}))},Tl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:I(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Tl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:I(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Tl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ll,u=zl;try{zl=e,I(this,function(t,i,u){Ll=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ll=i,zl=u}}else I(this,function(i){var u=i[r][e];(u.event||(u.event=to.dispatch("start","end","interrupt"))).on(n,t)});return this},Tl.transition=function(){for(var n,t,e,r,i=this.id,u=++Rl,o=this.namespace,a=[],l=0,c=this.length;l<c;l++){a.push(n=[]);for(var f=0,s=(t=this[l]).length;f<s;f++)(e=t[f])&&$u(e,f,o,u,{time:(r=e[o][i]).time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration}),n.push(e)}return Iu(a,o,u)},to.svg.axis=function(){function n(n){n.each(function(){var n,c=to.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),d=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Co),v=to.transition(g.exit()).style("opacity",Co).remove(),y=to.transition(g.order()).style("opacity",1),x=Math.max(i,0)+o,M=Ui(s),_=c.selectAll(".domain").data([0]),b=(_.enter().append("path").attr("class","domain"),to.transition(_));d.append("line"),d.append("text");var w,S,k,N,E=d.select("line"),A=y.select("line"),C=g.select("text").text(p),z=d.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=Bu,w="x",k="y",S="x2",N="y2",C.attr("dy",q<0?"0em":".71em").style("text-anchor","middle"),b.attr("d","M"+M[0]+","+q*u+"V0H"+M[1]+"V"+q*u)):(n=Wu,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",q<0?"end":"start"),b.attr("d","M"+q*u+","+M[0]+"H0V"+M[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*x),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*x),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:v.call(n,s,f);d.call(n,f,s),y.call(n,s,s)})}var t,e=to.scale.linear(),r=Dl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Pl?t+"":Dl,n):r},n.ticks=function(){return arguments.length?(a=ro(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Dl="bottom",Pl={top:1,right:1,bottom:1,left:1};to.svg.brush=function(){function n(t){t.each(function(){var t=to.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(d,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return jl[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=to.transition(t),h=to.transition(o);c&&(l=Ui(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Ui(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==to.event.keyCode&&(C||(x=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function d(){32==to.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function v(){var n=to.mouse(_),t=!1;M&&(n[0]+=M[0],n[1]+=M[1]),C||(to.event.altKey?(x||(x=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]<x[0])],L[1]=h[+(n[1]<x[1])]):x=null),E&&y(n,c,0)&&(r(k),t=!0),A&&y(n,f,1)&&(i(k),t=!0),t&&(e(k),w({type:"brush",mode:C?"move":"resize"}))}function y(n,t,e){var r,i,u=Ui(t),l=u[0],c=u[1],f=L[e],d=e?h:s,v=d[1]-d[0];if(C&&(l-=f,c-=v+f),r=(e?g:p)?Math.max(l,Math.min(c,n[e])):n[e],C?i=(r+=f)+v:(x&&(f=Math.max(l,Math.min(c,2*x[e]-r))),f<r?(i=r,r=f):i=f),d[0]!=r||d[1]!=i)return e?a=null:o=null,d[0]=r,d[1]=i,!0}function m(){v(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),to.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var x,M,_=this,b=to.select(to.event.target),w=l.of(_,arguments),k=to.select(_),N=b.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=b.classed("extent"),z=W(_),L=to.mouse(_),q=to.select(t(_)).on("keydown.brush",u).on("keyup.brush",d);if(to.event.changedTouches?q.on("touchmove.brush",v).on("touchend.brush",m):q.on("mousemove.brush",v).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);M=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else to.event.altKey&&(x=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),to.select("body").style("cursor",b.style("cursor")),w({type:"brushstart"}),v()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,d=Ul[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,zl?to.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,d=Ul[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,d=Ul[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),r<e&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),u<i&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),r<e&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),u<i&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},to.rebind(n,l,"on")};var jl={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ul=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Fl=ia.format=fa.timeFormat,Hl=Fl.utc,Ol=Hl("%Y-%m-%dT%H:%M:%S.%LZ");Fl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Ju:Ol,Ju.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Ju.toString=Ol.toString,ia.second=On(function(n){return new ua(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ia.seconds=ia.second.range,ia.seconds.utc=ia.second.utc.range,ia.minute=On(function(n){return new ua(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ia.minutes=ia.minute.range,ia.minutes.utc=ia.minute.utc.range,ia.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new ua(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ia.hours=ia.hour.range,ia.hours.utc=ia.hour.utc.range,ia.month=On(function(n){return(n=ia.day(n)).setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ia.months=ia.month.range,ia.months.utc=ia.month.utc.range;var Yl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Il=[[ia.second,1],[ia.second,5],[ia.second,15],[ia.second,30],[ia.minute,1],[ia.minute,5],[ia.minute,15],[ia.minute,30],[ia.hour,1],[ia.hour,3],[ia.hour,6],[ia.hour,12],[ia.day,1],[ia.day,2],[ia.week,1],[ia.month,1],[ia.month,3],[ia.year,1]],Zl=Fl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),Vl={range:function(n,t,e){return to.range(Math.ceil(n/e)*e,+t,e).map(Ku)},floor:m,ceil:m};Il.year=ia.year,ia.scale=function(){return Gu(to.scale.linear(),Il,Zl)};var Xl=Il.map(function(n){return[n[0].utc,n[1]]}),$l=Hl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);Xl.year=ia.year.utc,ia.scale.utc=function(){return Gu(to.scale.linear(),Xl,$l)},to.text=An(function(n){return n.responseText}),to.json=function(n,t){return Cn(n,"application/json",Qu,t)},to.html=function(n,t){return console.log("d3.html"),Cn(n,"text/html",no,t)},to.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=to,define(to)):"object"==typeof module&&module.exports?module.exports=to:this.d3=to}();
diff --git a/src/docs/js/libs/deep-iterator.js b/src/docs/js/libs/deep-iterator.js
new file mode 100644
index 0000000..63e4261
--- /dev/null
+++ b/src/docs/js/libs/deep-iterator.js
@@ -0,0 +1,2 @@
+!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.deepIterator=e()}}(function(){return function e(t,r,n){function o(a,u){if(!r[a]){if(!t[a]){var c="function"==typeof require&&require;if(!u&&c)return c(a,!0);if(i)return i(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var f=r[a]={exports:{}};t[a][0].call(f.exports,function(e){var r=t[a][1][e];return o(r?r:e)},f,f.exports,e,t,r,n)}return r[a].exports}for(var i="function"==typeof require&&require,a=0;a<n.length;a++)o(n[a]);return o}({1:[function(e,t,r){function n(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function i(e){if(l===setTimeout)return setTimeout(e,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(e,0);try{return l(e,0)}catch(t){try{return l.call(null,e,0)}catch(t){return l.call(this,e,0)}}}function a(e){if(p===clearTimeout)return clearTimeout(e);if((p===o||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(e);try{return p(e)}catch(t){try{return p.call(null,e)}catch(t){return p.call(this,e)}}}function u(){h&&_&&(h=!1,_.length?b=_.concat(b):y=-1,b.length&&c())}function c(){if(!h){var e=i(u);h=!0;for(var t=b.length;t;){for(_=b,b=[];++y<t;)_&&_[y].run();y=-1,t=b.length}_=null,h=!1,a(e)}}function s(e,t){this.fun=e,this.array=t}function f(){}var l,p,d=t.exports={};!function(){try{l="function"==typeof setTimeout?setTimeout:n}catch(e){l=n}try{p="function"==typeof clearTimeout?clearTimeout:o}catch(e){p=o}}();var _,b=[],h=!1,y=-1;d.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];b.push(new s(e,t)),1!==b.length||h||i(c)},s.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=f,d.addListener=f,d.once=f,d.off=f,d.removeListener=f,d.removeAllListeners=f,d.emit=f,d.binding=function(e){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(e){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},{}],2:[function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function o(e){return e&&e.__esModule?e:{default:e}}function i(e){var t,r,n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return u.default.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:if(t={onlyLeaves:!1,circularReference:"leaf",search:"dfsPreOrder",iterateOverObject:!0,skipIteration:function(){return!1}},void 0!==o.onlyLeaves&&(t.onlyLeaves=o.onlyLeaves),void 0!==o.circularReference&&(t.circularReference=o.circularReference),void 0!==o.iterateOverObject&&(t.iterateOverObject=o.iterateOverObject),void 0!==o.skipIteration&&(t.skipIteration=o.skipIteration),void 0===o.search){i.next=9;break}if(o.search in s){i.next=8;break}throw new Error("The search algorithm "+o.search+" is incorrect.");case 8:t.search=o.search;case 9:return r=new l.default(e,t),n=(0,d.default)(t.circularReference),i.delegateYield(s[t.search](r,t.onlyLeaves,n),"t0",12);case 12:case"end":return i.stop()}},_[0],this)}Object.defineProperty(r,"__esModule",{value:!0});var a=e("babel-runtime/regenerator"),u=o(a);r.default=i;var c=e("./search"),s=n(c),f=e("./root-node"),l=o(f),p=e("./seen"),d=o(p),_=[i].map(u.default.mark)},{"./root-node":5,"./search":6,"./seen":7,"babel-runtime/regenerator":115}],3:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function o(e){var t;return l.default.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:r.t0=l.default.keys(e);case 1:if((r.t1=r.t0()).done){r.next=7;break}return t=r.t1.value,r.next=5,[t,e[t]];case 5:r.next=1;break;case 7:case"end":return r.stop()}},p[0],this)}function i(e){var t;return l.default.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:t=0;case 1:if(!(t<e.length)){r.next=7;break}return r.next=4,[t,e[t]];case 4:t++,r.next=1;break;case 7:case"end":return r.stop()}},p[1],this)}function a(e){var t,r,n,o,i,a;return l.default.wrap(function(u){for(;;)switch(u.prev=u.next){case 0:t=!0,r=!1,n=void 0,u.prev=3,o=(0,s.default)(e);case 5:if(t=(i=o.next()).done){u.next=12;break}return a=i.value,u.next=9,[void 0,a];case 9:t=!0,u.next=5;break;case 12:u.next=18;break;case 14:u.prev=14,u.t0=u.catch(3),r=!0,n=u.t0;case 18:u.prev=18,u.prev=19,!t&&o.return&&o.return();case 21:if(u.prev=21,!r){u.next=24;break}throw n;case 24:return u.finish(21);case 25:return u.finish(18);case 26:case"end":return u.stop()}},p[2],this,[[3,14,18,26],[19,,21,25]])}function u(e){var t,r,n,o,i,a;return l.default.wrap(function(u){for(;;)switch(u.prev=u.next){case 0:t=!0,r=!1,n=void 0,u.prev=3,o=(0,s.default)(e);case 5:if(t=(i=o.next()).done){u.next=12;break}return a=i.value,u.next=9,a;case 9:t=!0,u.next=5;break;case 12:u.next=18;break;case 14:u.prev=14,u.t0=u.catch(3),r=!0,n=u.t0;case 18:u.prev=18,u.prev=19,!t&&o.return&&o.return();case 21:if(u.prev=21,!r){u.next=24;break}throw n;case 24:return u.finish(21);case 25:return u.finish(18);case 26:case"end":return u.stop()}},p[3],this,[[3,14,18,26],[19,,21,25]])}Object.defineProperty(r,"__esModule",{value:!0}),r.LEAF=void 0;var c=e("babel-runtime/core-js/get-iterator"),s=n(c),f=e("babel-runtime/regenerator"),l=n(f);r.objectIterator=o,r.arrayIterator=i,r.genericIterator=a,r.mapIterator=u;var p=[o,i,a,u].map(l.default.mark);r.LEAF=null},{"babel-runtime/core-js/get-iterator":11,"babel-runtime/regenerator":115}],4:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(r,"__esModule",{value:!0});var o=e("babel-runtime/helpers/toConsumableArray"),i=n(o),a=e("babel-runtime/helpers/classCallCheck"),u=n(a),c=e("babel-runtime/helpers/createClass"),s=n(c),f=e("./generators"),l=e("./tag"),p=function(){function e(t,r,n,o){(0,u.default)(this,e),this._value=r,this._key=t,this._parent=n.value,this._parentNode=n,this._selectGenerator=n._selectGenerator,this._tag=(0,l.getTag)(r),this._generator=this._selectGenerator.getGenerator(this._tag),this._isCircular=o,this._isLeaf=this._generator===f.LEAF||this._isCircular,!this._isLeaf&&this._selectGenerator.skipIteration(this)&&(this._isLeaf=!0,this._generator=f.LEAF)}return(0,s.default)(e,[{key:"createIterator",value:function(){if(this._generator===f.LEAF)throw new Error("createIterator called on a non iterable node.");return this._generator(this.value)}},{key:"isCircular",value:function(){return this._isCircular}},{key:"isLeaf",value:function(){return this._isLeaf}},{key:"isNull",value:function(){return"Null"===this.type}},{key:"isUndefined",value:function(){return"Undefined"===this.type}},{key:"isBoolean",value:function(){return"Boolean"===this.type}},{key:"isNumber",value:function(){return"Number"===this.type}},{key:"isString",value:function(){return"String"===this.type}},{key:"isSymbol",value:function(){return"Symbol"===this.type}},{key:"isDate",value:function(){return"Date"===this.type}},{key:"isRegExp",value:function(){return"RegExp"===this.type}},{key:"isFunction",value:function(){return"Function"===this.type}},{key:"isGeneratorFunction",value:function(){return"GeneratorFunction"===this.type}},{key:"isPromise",value:function(){return"Promise"===this.type}},{key:"isArray",value:function(){return"Array"===this.type}},{key:"isSet",value:function(){return"Set"===this.type}},{key:"isMap",value:function(){return"Map"===this.type}},{key:"isUserDefinedIterable",value:function(){return"UserDefinedIterable"===this.type}},{key:"isNonIterableObject",value:function(){return"NonIterableObject"===this.type}},{key:"value",get:function(){return this._value}},{key:"key",get:function(){return this._key}},{key:"parent",get:function(){return this._parent}},{key:"parentNode",get:function(){return this._parentNode}},{key:"path",get:function(){return[].concat((0,i.default)(this.parentNode.path),[this.key])}},{key:"type",get:function(){return void 0===this._type&&(this._type=(0,l.getTypeFromTag)(this._tag)),this._type}}]),e}();r.default=p},{"./generators":3,"./tag":9,"babel-runtime/helpers/classCallCheck":19,"babel-runtime/helpers/createClass":20,"babel-runtime/helpers/toConsumableArray":24}],5:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(r,"__esModule",{value:!0});var o=e("babel-runtime/core-js/object/get-prototype-of"),i=n(o),a=e("babel-runtime/helpers/classCallCheck"),u=n(a),c=e("babel-runtime/helpers/createClass"),s=n(c),f=e("babel-runtime/helpers/possibleConstructorReturn"),l=n(f),p=e("babel-runtime/helpers/inherits"),d=n(p),_=e("./node"),b=n(_),h=e("./select-generator"),y=n(h),v=function(e){function t(e,r){(0,u.default)(this,t);var n={_selectGenerator:new y.default(r)};return(0,l.default)(this,(t.__proto__||(0,i.default)(t)).call(this,void 0,e,n,!1))}return(0,d.default)(t,e),(0,s.default)(t,[{key:"parentNode",get:function(){}},{key:"path",get:function(){return[]}}]),t}(b.default);r.default=v},{"./node":4,"./select-generator":8,"babel-runtime/core-js/object/get-prototype-of":15,"babel-runtime/helpers/classCallCheck":19,"babel-runtime/helpers/createClass":20,"babel-runtime/helpers/inherits":21,"babel-runtime/helpers/possibleConstructorReturn":22}],6:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function o(e,t,r){var n,i,a,u,s,l,d,h,y;return c.default.wrap(function(c){for(;;)switch(c.prev=c.next){case 0:if(!e.isLeaf()){c.next=4;break}return c.next=3,e;case 3:return c.abrupt("return");case 4:if(t){c.next=7;break}return c.next=7,e;case 7:n=r.add(e.value),i=!0,a=!1,u=void 0,c.prev=11,s=(0,p.default)(e.createIterator());case 13:if(i=(l=s.next()).done){c.next=19;break}return d=(0,f.default)(l.value,2),h=d[0],y=d[1],c.delegateYield(o(new _.default(h,y,e,n.has(y)),t,n),"t0",16);case 16:i=!0,c.next=13;break;case 19:c.next=25;break;case 21:c.prev=21,c.t1=c.catch(11),a=!0,u=c.t1;case 25:c.prev=25,c.prev=26,!i&&s.return&&s.return();case 28:if(c.prev=28,!a){c.next=31;break}throw u;case 31:return c.finish(28);case 32:return c.finish(25);case 33:case"end":return c.stop()}},b[0],this,[[11,21,25,33],[26,,28,32]])}function i(e,t,r){var n,o,a,u,s,l,d,h,y;return c.default.wrap(function(c){for(;;)switch(c.prev=c.next){case 0:if(!e.isLeaf()){c.next=4;break}return c.next=3,e;case 3:return c.abrupt("return");case 4:n=r.add(e.value),o=!0,a=!1,u=void 0,c.prev=8,s=(0,p.default)(e.createIterator());case 10:if(o=(l=s.next()).done){c.next=16;break}return d=(0,f.default)(l.value,2),h=d[0],y=d[1],c.delegateYield(i(new _.default(h,y,e,n.has(y)),t,n),"t0",13);case 13:o=!0,c.next=10;break;case 16:c.next=22;break;case 18:c.prev=18,c.t1=c.catch(8),a=!0,u=c.t1;case 22:c.prev=22,c.prev=23,!o&&s.return&&s.return();case 25:if(c.prev=25,!a){c.next=28;break}throw u;case 28:return c.finish(25);case 29:return c.finish(22);case 30:if(t){c.next=33;break}return c.next=33,e;case 33:case"end":return c.stop()}},b[1],this,[[8,18,22,30],[23,,25,29]])}function a(e,t,r){var n,o,i,a,u,s,l,d,h,y,v,m;return c.default.wrap(function(c){for(;;)switch(c.prev=c.next){case 0:n=[{node:e,seen:r}],o=0;case 2:if(!(o<n.length)){c.next=35;break}if(i=n[o].node,!i.isLeaf()){c.next=9;break}return c.next=7,i;case 7:c.next=32;break;case 9:if(t){c.next=12;break}return c.next=12,i;case 12:for(a=n[o].seen.add(i.value),u=!0,s=!1,l=void 0,c.prev=16,d=(0,p.default)(i.createIterator());!(u=(h=d.next()).done);u=!0)y=(0,f.default)(h.value,2),v=y[0],m=y[1],n.push({node:new _.default(v,m,i,a.has(m)),seen:a});c.next=24;break;case 20:c.prev=20,c.t0=c.catch(16),s=!0,l=c.t0;case 24:c.prev=24,c.prev=25,!u&&d.return&&d.return();case 27:if(c.prev=27,!s){c.next=30;break}throw l;case 30:return c.finish(27);case 31:return c.finish(24);case 32:o++,c.next=2;break;case 35:case"end":return c.stop()}},b[2],this,[[16,20,24,32],[25,,27,31]])}Object.defineProperty(r,"__esModule",{value:!0});var u=e("babel-runtime/regenerator"),c=n(u),s=e("babel-runtime/helpers/slicedToArray"),f=n(s),l=e("babel-runtime/core-js/get-iterator"),p=n(l);r.dfsPreOrder=o,r.dfsPostOrder=i,r.bfs=a;var d=e("./node"),_=n(d),b=[o,i,a].map(c.default.mark)},{"./node":4,"babel-runtime/core-js/get-iterator":11,"babel-runtime/helpers/slicedToArray":23,"babel-runtime/regenerator":115}],7:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function o(e){switch(e){case"leaf":return new p([]);case"throw":return new d([]);case"noCheck":return new l}throw new Error("Incorrect value "+e+" for circularReference option.")}Object.defineProperty(r,"__esModule",{value:!0});var i=e("babel-runtime/helpers/toConsumableArray"),a=n(i),u=e("babel-runtime/helpers/classCallCheck"),c=n(u),s=e("babel-runtime/helpers/createClass"),f=n(s);r.default=o;var l=function(){function e(){(0,c.default)(this,e)}return(0,f.default)(e,[{key:"add",value:function(){return this}},{key:"has",value:function(){return!1}}]),e}(),p=function(){function e(t){(0,c.default)(this,e),this._arr=t}return(0,f.default)(e,[{key:"add",value:function(t){return new e([].concat((0,a.default)(this._arr),[t]))}},{key:"has",value:function(e){return this._arr.includes(e)}}]),e}(),d=function(){function e(t){(0,c.default)(this,e),this._arr=t}return(0,f.default)(e,[{key:"add",value:function(t){return new e([].concat((0,a.default)(this._arr),[t]))}},{key:"has",value:function(e){if(this._arr.includes(e))throw new Error("Circular reference : "+e);return!1}}]),e}()},{"babel-runtime/helpers/classCallCheck":19,"babel-runtime/helpers/createClass":20,"babel-runtime/helpers/toConsumableArray":24}],8:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(r,"__esModule",{value:!0});var o=e("babel-runtime/helpers/classCallCheck"),i=n(o),a=e("babel-runtime/helpers/createClass"),u=n(a),c=e("./tag"),s=(e("./generators"),function(){function e(t){(0,i.default)(this,e),this.skipIteration=t.skipIteration,this.tagMap=(0,c.getTagMap)(t)}return(0,u.default)(e,[{key:"getGenerator",value:function(e){return this.tagMap[e]}}]),e}());r.default=s},{"./generators":3,"./tag":9,"babel-runtime/helpers/classCallCheck":19,"babel-runtime/helpers/createClass":20}],9:[function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function o(e){return e&&e.__esModule?e:{default:e}}function i(e){return e.slice(_,e.length-1)}function a(e){var t=Object.prototype.toString.call(e);return t in b?t:"function"==typeof e[l.default]?"[object UserDefinedIterable]":"[object NonIterableObject]"}function u(e){var t=(0,s.default)(b);return e.iterateOverObject||(t["[object NonIterableObject]"]=d.LEAF),t}Object.defineProperty(r,"__esModule",{value:!0});var c=e("babel-runtime/core-js/object/create"),s=o(c),f=e("babel-runtime/core-js/symbol/iterator"),l=o(f);r.getTypeFromTag=i,r.getTag=a,r.getTagMap=u;var p=e("./generators"),d=n(p),_=8,b={"[object Null]":d.LEAF,"[object Undefined]":d.LEAF,"[object Boolean]":d.LEAF,"[object Number]":d.LEAF,"[object String]":d.LEAF,"[object Symbol]":d.LEAF,"[object Date]":d.LEAF,"[object RegExp]":d.LEAF,"[object Function]":d.LEAF,"[object GeneratorFunction]":d.LEAF,"[object Promise]":d.LEAF,"[object Array]":d.arrayIterator,"[object Set]":d.genericIterator,"[object Map]":d.mapIterator,"[object UserDefinedIterable]":d.genericIterator,"[object NonIterableObject]":d.objectIterator}},{"./generators":3,"babel-runtime/core-js/object/create":13,"babel-runtime/core-js/symbol/iterator":18}],10:[function(e,t,r){t.exports={default:e("core-js/library/fn/array/from"),__esModule:!0}},{"core-js/library/fn/array/from":26}],11:[function(e,t,r){t.exports={default:e("core-js/library/fn/get-iterator"),__esModule:!0}},{"core-js/library/fn/get-iterator":27}],12:[function(e,t,r){t.exports={default:e("core-js/library/fn/is-iterable"),__esModule:!0}},{"core-js/library/fn/is-iterable":28}],13:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/create"),__esModule:!0}},{"core-js/library/fn/object/create":29}],14:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/define-property"),__esModule:!0}},{"core-js/library/fn/object/define-property":30}],15:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/get-prototype-of"),__esModule:!0}},{"core-js/library/fn/object/get-prototype-of":31}],16:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/set-prototype-of"),__esModule:!0}},{"core-js/library/fn/object/set-prototype-of":32}],17:[function(e,t,r){t.exports={default:e("core-js/library/fn/symbol"),__esModule:!0}},{"core-js/library/fn/symbol":33}],18:[function(e,t,r){t.exports={default:e("core-js/library/fn/symbol/iterator"),__esModule:!0}},{"core-js/library/fn/symbol/iterator":34}],19:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},{}],20:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var o=e("../core-js/object/define-property"),i=n(o);r.default=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),(0,i.default)(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}()},{"../core-js/object/define-property":14}],21:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var o=e("../core-js/object/set-prototype-of"),i=n(o),a=e("../core-js/object/create"),u=n(a),c=e("../helpers/typeof"),s=n(c);r.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof t?"undefined":(0,s.default)(t)));e.prototype=(0,u.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(i.default?(0,i.default)(e,t):e.__proto__=t)}},{"../core-js/object/create":13,"../core-js/object/set-prototype-of":16,"../helpers/typeof":25}],22:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var o=e("../helpers/typeof"),i=n(o);r.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==("undefined"==typeof t?"undefined":(0,i.default)(t))&&"function"!=typeof t?e:t}},{"../helpers/typeof":25}],23:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var o=e("../core-js/is-iterable"),i=n(o),a=e("../core-js/get-iterator"),u=n(a);r.default=function(){function e(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var a,c=(0,u.default)(e);!(n=(a=c.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&c.return&&c.return()}finally{if(o)throw i}}return r}return function(t,r){if(Array.isArray(t))return t;if((0,i.default)(Object(t)))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},{"../core-js/get-iterator":11,"../core-js/is-iterable":12}],24:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var o=e("../core-js/array/from"),i=n(o);r.default=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return(0,i.default)(e)}},{"../core-js/array/from":10}],25:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var o=e("../core-js/symbol/iterator"),i=n(o),a=e("../core-js/symbol"),u=n(a),c="function"==typeof u.default&&"symbol"==typeof i.default?function(e){return typeof e}:function(e){return e&&"function"==typeof u.default&&e.constructor===u.default&&e!==u.default.prototype?"symbol":typeof e};r.default="function"==typeof u.default&&"symbol"===c(i.default)?function(e){return"undefined"==typeof e?"undefined":c(e)}:function(e){return e&&"function"==typeof u.default&&e.constructor===u.default&&e!==u.default.prototype?"symbol":"undefined"==typeof e?"undefined":c(e)}},{"../core-js/symbol":17,"../core-js/symbol/iterator":18}],26:[function(e,t,r){e("../../modules/es6.string.iterator"),e("../../modules/es6.array.from"),t.exports=e("../../modules/_core").Array.from},{"../../modules/_core":41,"../../modules/es6.array.from":101,"../../modules/es6.string.iterator":108}],27:[function(e,t,r){e("../modules/web.dom.iterable"),e("../modules/es6.string.iterator"),t.exports=e("../modules/core.get-iterator")},{"../modules/core.get-iterator":99,"../modules/es6.string.iterator":108,"../modules/web.dom.iterable":112}],28:[function(e,t,r){e("../modules/web.dom.iterable"),e("../modules/es6.string.iterator"),t.exports=e("../modules/core.is-iterable")},{"../modules/core.is-iterable":100,"../modules/es6.string.iterator":108,"../modules/web.dom.iterable":112}],29:[function(e,t,r){e("../../modules/es6.object.create");var n=e("../../modules/_core").Object;t.exports=function(e,t){return n.create(e,t)}},{"../../modules/_core":41,"../../modules/es6.object.create":103}],30:[function(e,t,r){e("../../modules/es6.object.define-property");var n=e("../../modules/_core").Object;t.exports=function(e,t,r){return n.defineProperty(e,t,r)}},{"../../modules/_core":41,"../../modules/es6.object.define-property":104}],31:[function(e,t,r){e("../../modules/es6.object.get-prototype-of"),t.exports=e("../../modules/_core").Object.getPrototypeOf},{"../../modules/_core":41,"../../modules/es6.object.get-prototype-of":105}],32:[function(e,t,r){e("../../modules/es6.object.set-prototype-of"),t.exports=e("../../modules/_core").Object.setPrototypeOf},{"../../modules/_core":41,"../../modules/es6.object.set-prototype-of":106}],33:[function(e,t,r){e("../../modules/es6.symbol"),e("../../modules/es6.object.to-string"),e("../../modules/es7.symbol.async-iterator"),e("../../modules/es7.symbol.observable"),t.exports=e("../../modules/_core").Symbol},{"../../modules/_core":41,"../../modules/es6.object.to-string":107,"../../modules/es6.symbol":109,"../../modules/es7.symbol.async-iterator":110,"../../modules/es7.symbol.observable":111}],34:[function(e,t,r){e("../../modules/es6.string.iterator"),e("../../modules/web.dom.iterable"),t.exports=e("../../modules/_wks-ext").f("iterator")},{"../../modules/_wks-ext":96,"../../modules/es6.string.iterator":108,"../../modules/web.dom.iterable":112}],35:[function(e,t,r){t.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},{}],36:[function(e,t,r){t.exports=function(){}},{}],37:[function(e,t,r){var n=e("./_is-object");t.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},{"./_is-object":59}],38:[function(e,t,r){var n=e("./_to-iobject"),o=e("./_to-length"),i=e("./_to-index");t.exports=function(e){return function(t,r,a){var u,c=n(t),s=o(c.length),f=i(a,s);if(e&&r!=r){for(;s>f;)if(u=c[f++],u!=u)return!0}else for(;s>f;f++)if((e||f in c)&&c[f]===r)return e||f||0;return!e&&-1}}},{"./_to-index":88,"./_to-iobject":90,"./_to-length":91}],39:[function(e,t,r){var n=e("./_cof"),o=e("./_wks")("toStringTag"),i="Arguments"==n(function(){return arguments}()),a=function(e,t){try{return e[t]}catch(e){}};t.exports=function(e){var t,r,u;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=a(t=Object(e),o))?r:i?n(t):"Object"==(u=n(t))&&"function"==typeof t.callee?"Arguments":u}},{"./_cof":40,"./_wks":97}],40:[function(e,t,r){var n={}.toString;t.exports=function(e){return n.call(e).slice(8,-1)}},{}],41:[function(e,t,r){var n=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},{}],42:[function(e,t,r){"use strict";var n=e("./_object-dp"),o=e("./_property-desc");t.exports=function(e,t,r){t in e?n.f(e,t,o(0,r)):e[t]=r}},{"./_object-dp":70,"./_property-desc":81}],43:[function(e,t,r){var n=e("./_a-function");t.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,o){return e.call(t,r,n,o)}}return function(){return e.apply(t,arguments)}}},{"./_a-function":35}],44:[function(e,t,r){t.exports=function(e){if(void 0==e)throw TypeError("Can't call method on  "+e);return e}},{}],45:[function(e,t,r){t.exports=!e("./_fails")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{"./_fails":50}],46:[function(e,t,r){var n=e("./_is-object"),o=e("./_global").document,i=n(o)&&n(o.createElement);t.exports=function(e){return i?o.createElement(e):{}}},{"./_global":51,"./_is-object":59}],47:[function(e,t,r){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],48:[function(e,t,r){var n=e("./_object-keys"),o=e("./_object-gops"),i=e("./_object-pie");t.exports=function(e){var t=n(e),r=o.f;if(r)for(var a,u=r(e),c=i.f,s=0;u.length>s;)c.call(e,a=u[s++])&&t.push(a);return t}},{"./_object-gops":75,"./_object-keys":78,"./_object-pie":79}],49:[function(e,t,r){var n=e("./_global"),o=e("./_core"),i=e("./_ctx"),a=e("./_hide"),u="prototype",c=function(e,t,r){var s,f,l,p=e&c.F,d=e&c.G,_=e&c.S,b=e&c.P,h=e&c.B,y=e&c.W,v=d?o:o[t]||(o[t]={}),m=v[u],g=d?n:_?n[t]:(n[t]||{})[u];d&&(r=t);for(s in r)f=!p&&g&&void 0!==g[s],f&&s in v||(l=f?g[s]:r[s],v[s]=d&&"function"!=typeof g[s]?r[s]:h&&f?i(l,n):y&&g[s]==l?function(e){var t=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return t[u]=e[u],t}(l):b&&"function"==typeof l?i(Function.call,l):l,b&&((v.virtual||(v.virtual={}))[s]=l,e&c.R&&m&&!m[s]&&a(m,s,l)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},{"./_core":41,"./_ctx":43,"./_global":51,"./_hide":53}],50:[function(e,t,r){t.exports=function(e){try{return!!e()}catch(e){return!0}}},{}],51:[function(e,t,r){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},{}],52:[function(e,t,r){var n={}.hasOwnProperty;t.exports=function(e,t){return n.call(e,t)}},{}],53:[function(e,t,r){var n=e("./_object-dp"),o=e("./_property-desc");t.exports=e("./_descriptors")?function(e,t,r){return n.f(e,t,o(1,r))}:function(e,t,r){return e[t]=r,e}},{"./_descriptors":45,"./_object-dp":70,"./_property-desc":81}],54:[function(e,t,r){t.exports=e("./_global").document&&document.documentElement},{"./_global":51}],55:[function(e,t,r){t.exports=!e("./_descriptors")&&!e("./_fails")(function(){return 7!=Object.defineProperty(e("./_dom-create")("div"),"a",{get:function(){return 7}}).a})},{"./_descriptors":45,"./_dom-create":46,"./_fails":50}],56:[function(e,t,r){var n=e("./_cof");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},{"./_cof":40}],57:[function(e,t,r){var n=e("./_iterators"),o=e("./_wks")("iterator"),i=Array.prototype;t.exports=function(e){return void 0!==e&&(n.Array===e||i[o]===e)}},{"./_iterators":65,"./_wks":97}],58:[function(e,t,r){var n=e("./_cof");t.exports=Array.isArray||function(e){return"Array"==n(e)}},{"./_cof":40}],59:[function(e,t,r){t.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},{}],60:[function(e,t,r){var n=e("./_an-object");t.exports=function(e,t,r,o){try{return o?t(n(r)[0],r[1]):t(r)}catch(t){var i=e.return;throw void 0!==i&&n(i.call(e)),t}}},{"./_an-object":37}],61:[function(e,t,r){"use strict";var n=e("./_object-create"),o=e("./_property-desc"),i=e("./_set-to-string-tag"),a={};e("./_hide")(a,e("./_wks")("iterator"),function(){return this}),t.exports=function(e,t,r){e.prototype=n(a,{next:o(1,r)}),i(e,t+" Iterator")}},{"./_hide":53,"./_object-create":69,"./_property-desc":81,"./_set-to-string-tag":84,"./_wks":97}],62:[function(e,t,r){"use strict";var n=e("./_library"),o=e("./_export"),i=e("./_redefine"),a=e("./_hide"),u=e("./_has"),c=e("./_iterators"),s=e("./_iter-create"),f=e("./_set-to-string-tag"),l=e("./_object-gpo"),p=e("./_wks")("iterator"),d=!([].keys&&"next"in[].keys()),_="@@iterator",b="keys",h="values",y=function(){return this};t.exports=function(e,t,r,v,m,g,j){s(r,t,v);var w,x,k,O=function(e){if(!d&&e in M)return M[e];switch(e){case b:return function(){return new r(this,e)};case h:return function(){return new r(this,e)}}return function(){return new r(this,e)}},E=t+" Iterator",S=m==h,L=!1,M=e.prototype,A=M[p]||M[_]||m&&M[m],P=A||O(m),T=m?S?O("entries"):P:void 0,F="Array"==t?M.entries||A:A;if(F&&(k=l(F.call(new e)),k!==Object.prototype&&(f(k,E,!0),n||u(k,p)||a(k,p,y))),S&&A&&A.name!==h&&(L=!0,P=function(){return A.call(this)}),n&&!j||!d&&!L&&M[p]||a(M,p,P),c[t]=P,c[E]=y,m)if(w={values:S?P:O(h),keys:g?P:O(b),entries:T},j)for(x in w)x in M||i(M,x,w[x]);else o(o.P+o.F*(d||L),t,w);return w}},{"./_export":49,"./_has":52,"./_hide":53,"./_iter-create":61,"./_iterators":65,"./_library":67,"./_object-gpo":76,"./_redefine":82,"./_set-to-string-tag":84,"./_wks":97}],63:[function(e,t,r){var n=e("./_wks")("iterator"),o=!1;try{var i=[7][n]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(e){}t.exports=function(e,t){if(!t&&!o)return!1;var r=!1;try{var i=[7],a=i[n]();a.next=function(){return{done:r=!0}},i[n]=function(){return a},e(i)}catch(e){}return r}},{"./_wks":97}],64:[function(e,t,r){t.exports=function(e,t){return{value:t,done:!!e}}},{}],65:[function(e,t,r){t.exports={}},{}],66:[function(e,t,r){var n=e("./_object-keys"),o=e("./_to-iobject");t.exports=function(e,t){for(var r,i=o(e),a=n(i),u=a.length,c=0;u>c;)if(i[r=a[c++]]===t)return r}},{"./_object-keys":78,"./_to-iobject":90}],67:[function(e,t,r){t.exports=!0},{}],68:[function(e,t,r){var n=e("./_uid")("meta"),o=e("./_is-object"),i=e("./_has"),a=e("./_object-dp").f,u=0,c=Object.isExtensible||function(){return!0},s=!e("./_fails")(function(){return c(Object.preventExtensions({}))}),f=function(e){a(e,n,{value:{i:"O"+ ++u,w:{}}})},l=function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,n)){if(!c(e))return"F";if(!t)return"E";f(e)}return e[n].i},p=function(e,t){if(!i(e,n)){if(!c(e))return!0;if(!t)return!1;f(e)}return e[n].w},d=function(e){return s&&_.NEED&&c(e)&&!i(e,n)&&f(e),e},_=t.exports={KEY:n,NEED:!1,fastKey:l,getWeak:p,onFreeze:d}},{"./_fails":50,"./_has":52,"./_is-object":59,"./_object-dp":70,"./_uid":94}],69:[function(e,t,r){var n=e("./_an-object"),o=e("./_object-dps"),i=e("./_enum-bug-keys"),a=e("./_shared-key")("IE_PROTO"),u=function(){},c="prototype",s=function(){var t,r=e("./_dom-create")("iframe"),n=i.length,o="<",a=">";for(r.style.display="none",e("./_html").appendChild(r),r.src="javascript:",t=r.contentWindow.document,t.open(),t.write(o+"script"+a+"document.F=Object"+o+"/script"+a),t.close(),s=t.F;n--;)delete s[c][i[n]];return s()};t.exports=Object.create||function(e,t){var r;return null!==e?(u[c]=n(e),r=new u,u[c]=null,r[a]=e):r=s(),void 0===t?r:o(r,t)}},{"./_an-object":37,"./_dom-create":46,"./_enum-bug-keys":47,"./_html":54,"./_object-dps":71,"./_shared-key":85}],70:[function(e,t,r){var n=e("./_an-object"),o=e("./_ie8-dom-define"),i=e("./_to-primitive"),a=Object.defineProperty;r.f=e("./_descriptors")?Object.defineProperty:function(e,t,r){if(n(e),t=i(t,!0),n(r),o)try{return a(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},{"./_an-object":37,"./_descriptors":45,"./_ie8-dom-define":55,"./_to-primitive":93}],71:[function(e,t,r){var n=e("./_object-dp"),o=e("./_an-object"),i=e("./_object-keys");t.exports=e("./_descriptors")?Object.defineProperties:function(e,t){o(e);for(var r,a=i(t),u=a.length,c=0;u>c;)n.f(e,r=a[c++],t[r]);return e}},{"./_an-object":37,"./_descriptors":45,"./_object-dp":70,"./_object-keys":78}],72:[function(e,t,r){
+var n=e("./_object-pie"),o=e("./_property-desc"),i=e("./_to-iobject"),a=e("./_to-primitive"),u=e("./_has"),c=e("./_ie8-dom-define"),s=Object.getOwnPropertyDescriptor;r.f=e("./_descriptors")?s:function(e,t){if(e=i(e),t=a(t,!0),c)try{return s(e,t)}catch(e){}if(u(e,t))return o(!n.f.call(e,t),e[t])}},{"./_descriptors":45,"./_has":52,"./_ie8-dom-define":55,"./_object-pie":79,"./_property-desc":81,"./_to-iobject":90,"./_to-primitive":93}],73:[function(e,t,r){var n=e("./_to-iobject"),o=e("./_object-gopn").f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(e){try{return o(e)}catch(e){return a.slice()}};t.exports.f=function(e){return a&&"[object Window]"==i.call(e)?u(e):o(n(e))}},{"./_object-gopn":74,"./_to-iobject":90}],74:[function(e,t,r){var n=e("./_object-keys-internal"),o=e("./_enum-bug-keys").concat("length","prototype");r.f=Object.getOwnPropertyNames||function(e){return n(e,o)}},{"./_enum-bug-keys":47,"./_object-keys-internal":77}],75:[function(e,t,r){r.f=Object.getOwnPropertySymbols},{}],76:[function(e,t,r){var n=e("./_has"),o=e("./_to-object"),i=e("./_shared-key")("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(e){return e=o(e),n(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},{"./_has":52,"./_shared-key":85,"./_to-object":92}],77:[function(e,t,r){var n=e("./_has"),o=e("./_to-iobject"),i=e("./_array-includes")(!1),a=e("./_shared-key")("IE_PROTO");t.exports=function(e,t){var r,u=o(e),c=0,s=[];for(r in u)r!=a&&n(u,r)&&s.push(r);for(;t.length>c;)n(u,r=t[c++])&&(~i(s,r)||s.push(r));return s}},{"./_array-includes":38,"./_has":52,"./_shared-key":85,"./_to-iobject":90}],78:[function(e,t,r){var n=e("./_object-keys-internal"),o=e("./_enum-bug-keys");t.exports=Object.keys||function(e){return n(e,o)}},{"./_enum-bug-keys":47,"./_object-keys-internal":77}],79:[function(e,t,r){r.f={}.propertyIsEnumerable},{}],80:[function(e,t,r){var n=e("./_export"),o=e("./_core"),i=e("./_fails");t.exports=function(e,t){var r=(o.Object||{})[e]||Object[e],a={};a[e]=t(r),n(n.S+n.F*i(function(){r(1)}),"Object",a)}},{"./_core":41,"./_export":49,"./_fails":50}],81:[function(e,t,r){t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},{}],82:[function(e,t,r){t.exports=e("./_hide")},{"./_hide":53}],83:[function(e,t,r){var n=e("./_is-object"),o=e("./_an-object"),i=function(e,t){if(o(e),!n(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,r,n){try{n=e("./_ctx")(Function.call,e("./_object-gopd").f(Object.prototype,"__proto__").set,2),n(t,[]),r=!(t instanceof Array)}catch(e){r=!0}return function(e,t){return i(e,t),r?e.__proto__=t:n(e,t),e}}({},!1):void 0),check:i}},{"./_an-object":37,"./_ctx":43,"./_is-object":59,"./_object-gopd":72}],84:[function(e,t,r){var n=e("./_object-dp").f,o=e("./_has"),i=e("./_wks")("toStringTag");t.exports=function(e,t,r){e&&!o(e=r?e:e.prototype,i)&&n(e,i,{configurable:!0,value:t})}},{"./_has":52,"./_object-dp":70,"./_wks":97}],85:[function(e,t,r){var n=e("./_shared")("keys"),o=e("./_uid");t.exports=function(e){return n[e]||(n[e]=o(e))}},{"./_shared":86,"./_uid":94}],86:[function(e,t,r){var n=e("./_global"),o="__core-js_shared__",i=n[o]||(n[o]={});t.exports=function(e){return i[e]||(i[e]={})}},{"./_global":51}],87:[function(e,t,r){var n=e("./_to-integer"),o=e("./_defined");t.exports=function(e){return function(t,r){var i,a,u=String(o(t)),c=n(r),s=u.length;return c<0||c>=s?e?"":void 0:(i=u.charCodeAt(c),i<55296||i>56319||c+1===s||(a=u.charCodeAt(c+1))<56320||a>57343?e?u.charAt(c):i:e?u.slice(c,c+2):(i-55296<<10)+(a-56320)+65536)}}},{"./_defined":44,"./_to-integer":89}],88:[function(e,t,r){var n=e("./_to-integer"),o=Math.max,i=Math.min;t.exports=function(e,t){return e=n(e),e<0?o(e+t,0):i(e,t)}},{"./_to-integer":89}],89:[function(e,t,r){var n=Math.ceil,o=Math.floor;t.exports=function(e){return isNaN(e=+e)?0:(e>0?o:n)(e)}},{}],90:[function(e,t,r){var n=e("./_iobject"),o=e("./_defined");t.exports=function(e){return n(o(e))}},{"./_defined":44,"./_iobject":56}],91:[function(e,t,r){var n=e("./_to-integer"),o=Math.min;t.exports=function(e){return e>0?o(n(e),9007199254740991):0}},{"./_to-integer":89}],92:[function(e,t,r){var n=e("./_defined");t.exports=function(e){return Object(n(e))}},{"./_defined":44}],93:[function(e,t,r){var n=e("./_is-object");t.exports=function(e,t){if(!n(e))return e;var r,o;if(t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;if("function"==typeof(r=e.valueOf)&&!n(o=r.call(e)))return o;if(!t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},{"./_is-object":59}],94:[function(e,t,r){var n=0,o=Math.random();t.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+o).toString(36))}},{}],95:[function(e,t,r){var n=e("./_global"),o=e("./_core"),i=e("./_library"),a=e("./_wks-ext"),u=e("./_object-dp").f;t.exports=function(e){var t=o.Symbol||(o.Symbol=i?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||u(t,e,{value:a.f(e)})}},{"./_core":41,"./_global":51,"./_library":67,"./_object-dp":70,"./_wks-ext":96}],96:[function(e,t,r){r.f=e("./_wks")},{"./_wks":97}],97:[function(e,t,r){var n=e("./_shared")("wks"),o=e("./_uid"),i=e("./_global").Symbol,a="function"==typeof i,u=t.exports=function(e){return n[e]||(n[e]=a&&i[e]||(a?i:o)("Symbol."+e))};u.store=n},{"./_global":51,"./_shared":86,"./_uid":94}],98:[function(e,t,r){var n=e("./_classof"),o=e("./_wks")("iterator"),i=e("./_iterators");t.exports=e("./_core").getIteratorMethod=function(e){if(void 0!=e)return e[o]||e["@@iterator"]||i[n(e)]}},{"./_classof":39,"./_core":41,"./_iterators":65,"./_wks":97}],99:[function(e,t,r){var n=e("./_an-object"),o=e("./core.get-iterator-method");t.exports=e("./_core").getIterator=function(e){var t=o(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return n(t.call(e))}},{"./_an-object":37,"./_core":41,"./core.get-iterator-method":98}],100:[function(e,t,r){var n=e("./_classof"),o=e("./_wks")("iterator"),i=e("./_iterators");t.exports=e("./_core").isIterable=function(e){var t=Object(e);return void 0!==t[o]||"@@iterator"in t||i.hasOwnProperty(n(t))}},{"./_classof":39,"./_core":41,"./_iterators":65,"./_wks":97}],101:[function(e,t,r){"use strict";var n=e("./_ctx"),o=e("./_export"),i=e("./_to-object"),a=e("./_iter-call"),u=e("./_is-array-iter"),c=e("./_to-length"),s=e("./_create-property"),f=e("./core.get-iterator-method");o(o.S+o.F*!e("./_iter-detect")(function(e){Array.from(e)}),"Array",{from:function(e){var t,r,o,l,p=i(e),d="function"==typeof this?this:Array,_=arguments.length,b=_>1?arguments[1]:void 0,h=void 0!==b,y=0,v=f(p);if(h&&(b=n(b,_>2?arguments[2]:void 0,2)),void 0==v||d==Array&&u(v))for(t=c(p.length),r=new d(t);t>y;y++)s(r,y,h?b(p[y],y):p[y]);else for(l=v.call(p),r=new d;!(o=l.next()).done;y++)s(r,y,h?a(l,b,[o.value,y],!0):o.value);return r.length=y,r}})},{"./_create-property":42,"./_ctx":43,"./_export":49,"./_is-array-iter":57,"./_iter-call":60,"./_iter-detect":63,"./_to-length":91,"./_to-object":92,"./core.get-iterator-method":98}],102:[function(e,t,r){"use strict";var n=e("./_add-to-unscopables"),o=e("./_iter-step"),i=e("./_iterators"),a=e("./_to-iobject");t.exports=e("./_iter-define")(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,r=this._i++;return!e||r>=e.length?(this._t=void 0,o(1)):"keys"==t?o(0,r):"values"==t?o(0,e[r]):o(0,[r,e[r]])},"values"),i.Arguments=i.Array,n("keys"),n("values"),n("entries")},{"./_add-to-unscopables":36,"./_iter-define":62,"./_iter-step":64,"./_iterators":65,"./_to-iobject":90}],103:[function(e,t,r){var n=e("./_export");n(n.S,"Object",{create:e("./_object-create")})},{"./_export":49,"./_object-create":69}],104:[function(e,t,r){var n=e("./_export");n(n.S+n.F*!e("./_descriptors"),"Object",{defineProperty:e("./_object-dp").f})},{"./_descriptors":45,"./_export":49,"./_object-dp":70}],105:[function(e,t,r){var n=e("./_to-object"),o=e("./_object-gpo");e("./_object-sap")("getPrototypeOf",function(){return function(e){return o(n(e))}})},{"./_object-gpo":76,"./_object-sap":80,"./_to-object":92}],106:[function(e,t,r){var n=e("./_export");n(n.S,"Object",{setPrototypeOf:e("./_set-proto").set})},{"./_export":49,"./_set-proto":83}],107:[function(e,t,r){},{}],108:[function(e,t,r){"use strict";var n=e("./_string-at")(!0);e("./_iter-define")(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,r=this._i;return r>=t.length?{value:void 0,done:!0}:(e=n(t,r),this._i+=e.length,{value:e,done:!1})})},{"./_iter-define":62,"./_string-at":87}],109:[function(e,t,r){"use strict";var n=e("./_global"),o=e("./_has"),i=e("./_descriptors"),a=e("./_export"),u=e("./_redefine"),c=e("./_meta").KEY,s=e("./_fails"),f=e("./_shared"),l=e("./_set-to-string-tag"),p=e("./_uid"),d=e("./_wks"),_=e("./_wks-ext"),b=e("./_wks-define"),h=e("./_keyof"),y=e("./_enum-keys"),v=e("./_is-array"),m=e("./_an-object"),g=e("./_to-iobject"),j=e("./_to-primitive"),w=e("./_property-desc"),x=e("./_object-create"),k=e("./_object-gopn-ext"),O=e("./_object-gopd"),E=e("./_object-dp"),S=e("./_object-keys"),L=O.f,M=E.f,A=k.f,P=n.Symbol,T=n.JSON,F=T&&T.stringify,I="prototype",C=d("_hidden"),N=d("toPrimitive"),R={}.propertyIsEnumerable,G=f("symbol-registry"),D=f("symbols"),U=f("op-symbols"),Y=Object[I],W="function"==typeof P,B=n.QObject,q=!B||!B[I]||!B[I].findChild,J=i&&s(function(){return 7!=x(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a})?function(e,t,r){var n=L(Y,t);n&&delete Y[t],M(e,t,r),n&&e!==Y&&M(Y,t,n)}:M,K=function(e){var t=D[e]=x(P[I]);return t._k=e,t},z=W&&"symbol"==typeof P.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof P},Q=function(e,t,r){return e===Y&&Q(U,t,r),m(e),t=j(t,!0),m(r),o(D,t)?(r.enumerable?(o(e,C)&&e[C][t]&&(e[C][t]=!1),r=x(r,{enumerable:w(0,!1)})):(o(e,C)||M(e,C,w(1,{})),e[C][t]=!0),J(e,t,r)):M(e,t,r)},H=function(e,t){m(e);for(var r,n=y(t=g(t)),o=0,i=n.length;i>o;)Q(e,r=n[o++],t[r]);return e},V=function(e,t){return void 0===t?x(e):H(x(e),t)},X=function(e){var t=R.call(this,e=j(e,!0));return!(this===Y&&o(D,e)&&!o(U,e))&&(!(t||!o(this,e)||!o(D,e)||o(this,C)&&this[C][e])||t)},Z=function(e,t){if(e=g(e),t=j(t,!0),e!==Y||!o(D,t)||o(U,t)){var r=L(e,t);return!r||!o(D,t)||o(e,C)&&e[C][t]||(r.enumerable=!0),r}},$=function(e){for(var t,r=A(g(e)),n=[],i=0;r.length>i;)o(D,t=r[i++])||t==C||t==c||n.push(t);return n},ee=function(e){for(var t,r=e===Y,n=A(r?U:g(e)),i=[],a=0;n.length>a;)!o(D,t=n[a++])||r&&!o(Y,t)||i.push(D[t]);return i};W||(P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var e=p(arguments.length>0?arguments[0]:void 0),t=function(r){this===Y&&t.call(U,r),o(this,C)&&o(this[C],e)&&(this[C][e]=!1),J(this,e,w(1,r))};return i&&q&&J(Y,e,{configurable:!0,set:t}),K(e)},u(P[I],"toString",function(){return this._k}),O.f=Z,E.f=Q,e("./_object-gopn").f=k.f=$,e("./_object-pie").f=X,e("./_object-gops").f=ee,i&&!e("./_library")&&u(Y,"propertyIsEnumerable",X,!0),_.f=function(e){return K(d(e))}),a(a.G+a.W+a.F*!W,{Symbol:P});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),re=0;te.length>re;)d(te[re++]);for(var te=S(d.store),re=0;te.length>re;)b(te[re++]);a(a.S+a.F*!W,"Symbol",{for:function(e){return o(G,e+="")?G[e]:G[e]=P(e)},keyFor:function(e){if(z(e))return h(G,e);throw TypeError(e+" is not a symbol!")},useSetter:function(){q=!0},useSimple:function(){q=!1}}),a(a.S+a.F*!W,"Object",{create:V,defineProperty:Q,defineProperties:H,getOwnPropertyDescriptor:Z,getOwnPropertyNames:$,getOwnPropertySymbols:ee}),T&&a(a.S+a.F*(!W||s(function(){var e=P();return"[null]"!=F([e])||"{}"!=F({a:e})||"{}"!=F(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!z(e)){for(var t,r,n=[e],o=1;arguments.length>o;)n.push(arguments[o++]);return t=n[1],"function"==typeof t&&(r=t),!r&&v(t)||(t=function(e,t){if(r&&(t=r.call(this,e,t)),!z(t))return t}),n[1]=t,F.apply(T,n)}}}),P[I][N]||e("./_hide")(P[I],N,P[I].valueOf),l(P,"Symbol"),l(Math,"Math",!0),l(n.JSON,"JSON",!0)},{"./_an-object":37,"./_descriptors":45,"./_enum-keys":48,"./_export":49,"./_fails":50,"./_global":51,"./_has":52,"./_hide":53,"./_is-array":58,"./_keyof":66,"./_library":67,"./_meta":68,"./_object-create":69,"./_object-dp":70,"./_object-gopd":72,"./_object-gopn":74,"./_object-gopn-ext":73,"./_object-gops":75,"./_object-keys":78,"./_object-pie":79,"./_property-desc":81,"./_redefine":82,"./_set-to-string-tag":84,"./_shared":86,"./_to-iobject":90,"./_to-primitive":93,"./_uid":94,"./_wks":97,"./_wks-define":95,"./_wks-ext":96}],110:[function(e,t,r){e("./_wks-define")("asyncIterator")},{"./_wks-define":95}],111:[function(e,t,r){e("./_wks-define")("observable")},{"./_wks-define":95}],112:[function(e,t,r){e("./es6.array.iterator");for(var n=e("./_global"),o=e("./_hide"),i=e("./_iterators"),a=e("./_wks")("toStringTag"),u=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],c=0;c<5;c++){var s=u[c],f=n[s],l=f&&f.prototype;l&&!l[a]&&o(l,a,s),i[s]=i.Array}},{"./_global":51,"./_hide":53,"./_iterators":65,"./_wks":97,"./es6.array.iterator":102}],113:[function(e,t,r){(function(r){var n="object"==typeof r?r:"object"==typeof window?window:"object"==typeof self?self:this,o=n.regeneratorRuntime&&Object.getOwnPropertyNames(n).indexOf("regeneratorRuntime")>=0,i=o&&n.regeneratorRuntime;if(n.regeneratorRuntime=void 0,t.exports=e("./runtime"),o)n.regeneratorRuntime=i;else try{delete n.regeneratorRuntime}catch(e){n.regeneratorRuntime=void 0}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./runtime":114}],114:[function(e,t,r){(function(e,r){!function(r){"use strict";function n(e,t,r,n){var o=t&&t.prototype instanceof i?t:i,a=Object.create(o.prototype),u=new _(n||[]);return a._invoke=f(e,r,u),a}function o(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}function i(){}function a(){}function u(){}function c(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function s(t){function r(e,n,i,a){var u=o(t[e],t,n);if("throw"!==u.type){var c=u.arg,s=c.value;return s&&"object"==typeof s&&m.call(s,"__await")?Promise.resolve(s.__await).then(function(e){r("next",e,i,a)},function(e){r("throw",e,i,a)}):Promise.resolve(s).then(function(e){c.value=e,i(c)},a)}a(u.arg)}function n(e,t){function n(){return new Promise(function(n,o){r(e,t,n,o)})}return i=i?i.then(n,n):n()}"object"==typeof e&&e.domain&&(r=e.domain.bind(r));var i;this._invoke=n}function f(e,t,r){var n=O;return function(i,a){if(n===S)throw new Error("Generator is already running");if(n===L){if("throw"===i)throw a;return h()}for(r.method=i,r.arg=a;;){var u=r.delegate;if(u){var c=l(u,r);if(c){if(c===M)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===O)throw n=L,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=S;var s=o(e,t,r);if("normal"===s.type){if(n=r.done?L:E,s.arg===M)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n=L,r.method="throw",r.arg=s.arg)}}}function l(e,t){var r=e.iterator[t.method];if(r===y){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=y,l(e,t),"throw"===t.method))return M;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return M}var n=o(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,M;var i=n.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=y),t.delegate=null,M):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,M)}function p(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function d(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function _(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(p,this),this.reset(!0)}function b(e){if(e){var t=e[j];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,n=function t(){for(;++r<e.length;)if(m.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=y,t.done=!0,t};return n.next=n}}return{next:h}}function h(){return{value:y,done:!0}}var y,v=Object.prototype,m=v.hasOwnProperty,g="function"==typeof Symbol?Symbol:{},j=g.iterator||"@@iterator",w=g.toStringTag||"@@toStringTag",x="object"==typeof t,k=r.regeneratorRuntime;if(k)return void(x&&(t.exports=k));k=r.regeneratorRuntime=x?t.exports:{},k.wrap=n;var O="suspendedStart",E="suspendedYield",S="executing",L="completed",M={},A={};A[j]=function(){return this};var P=Object.getPrototypeOf,T=P&&P(P(b([])));T&&T!==v&&m.call(T,j)&&(A=T);var F=u.prototype=i.prototype=Object.create(A);a.prototype=F.constructor=u,u.constructor=a,u[w]=a.displayName="GeneratorFunction",k.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===a||"GeneratorFunction"===(t.displayName||t.name))},k.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,w in e||(e[w]="GeneratorFunction")),e.prototype=Object.create(F),e},k.awrap=function(e){return{__await:e}},c(s.prototype),k.AsyncIterator=s,k.async=function(e,t,r,o){var i=new s(n(e,t,r,o));return k.isGeneratorFunction(t)?i:i.next().then(function(e){return e.done?e.value:i.next()})},c(F),F[w]="Generator",F.toString=function(){return"[object Generator]"},k.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},k.values=b,_.prototype={constructor:_,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=y,this.done=!1,this.delegate=null,this.method="next",this.arg=y,this.tryEntries.forEach(d),!e)for(var t in this)"t"===t.charAt(0)&&m.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=y)},stop:function(){this.done=!0;var e=this.tryEntries[0],t=e.completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){function t(t,n){return i.type="throw",i.arg=e,r.next=t,n&&(r.method="next",r.arg=y),!!n}if(this.done)throw e;for(var r=this,n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n],i=o.completion;if("root"===o.tryLoc)return t("end");if(o.tryLoc<=this.prev){var a=m.call(o,"catchLoc"),u=m.call(o,"finallyLoc");if(a&&u){if(this.prev<o.catchLoc)return t(o.catchLoc,!0);if(this.prev<o.finallyLoc)return t(o.finallyLoc)}else if(a){if(this.prev<o.catchLoc)return t(o.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return t(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&m.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,M):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),M},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),d(r),M}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;d(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:b(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=y),M}}}("object"==typeof r?r:"object"==typeof window?window:"object"==typeof self?self:this)}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:1}],115:[function(e,t,r){t.exports=e("regenerator-runtime")},{"regenerator-runtime":113}]},{},[2])(2)});
diff --git a/src/docs/js/libs/es6-shim.min.js b/src/docs/js/libs/es6-shim.min.js
new file mode 100644
index 0000000..1c2d15c
--- /dev/null
+++ b/src/docs/js/libs/es6-shim.min.js
@@ -0,0 +1,11 @@
+/*!
+  * https://github.com/paulmillr/es6-shim
+  * @license es6-shim Copyright 2013-2016 by Paul Miller (http://paulmillr.com)
+  *   and contributors,  MIT License
+  * es6-shim: v0.35.1
+  * see https://github.com/paulmillr/es6-shim/blob/0.35.1/LICENSE
+  * Details and documentation:
+  * https://github.com/paulmillr/es6-shim/
+  */
+(function(e,t){if(typeof define==="function"&&define.amd){define(t)}else if(typeof exports==="object"){module.exports=t()}else{e.returnExports=t()}})(this,function(){"use strict";var e=Function.call.bind(Function.apply);var t=Function.call.bind(Function.call);var r=Array.isArray;var n=Object.keys;var o=function notThunker(t){return function notThunk(){return!e(t,this,arguments)}};var i=function(e){try{e();return false}catch(t){return true}};var a=function valueOrFalseIfThrows(e){try{return e()}catch(t){return false}};var u=o(i);var f=function(){return!i(function(){Object.defineProperty({},"x",{get:function(){}})})};var s=!!Object.defineProperty&&f();var c=function foo(){}.name==="foo";var l=Function.call.bind(Array.prototype.forEach);var p=Function.call.bind(Array.prototype.reduce);var v=Function.call.bind(Array.prototype.filter);var y=Function.call.bind(Array.prototype.some);var h=function(e,t,r,n){if(!n&&t in e){return}if(s){Object.defineProperty(e,t,{configurable:true,enumerable:false,writable:true,value:r})}else{e[t]=r}};var b=function(e,t,r){l(n(t),function(n){var o=t[n];h(e,n,o,!!r)})};var g=Function.call.bind(Object.prototype.toString);var d=typeof/abc/==="function"?function IsCallableSlow(e){return typeof e==="function"&&g(e)==="[object Function]"}:function IsCallableFast(e){return typeof e==="function"};var O={getter:function(e,t,r){if(!s){throw new TypeError("getters require true ES5 support")}Object.defineProperty(e,t,{configurable:true,enumerable:false,get:r})},proxy:function(e,t,r){if(!s){throw new TypeError("getters require true ES5 support")}var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,{configurable:n.configurable,enumerable:n.enumerable,get:function getKey(){return e[t]},set:function setKey(r){e[t]=r}})},redefine:function(e,t,r){if(s){var n=Object.getOwnPropertyDescriptor(e,t);n.value=r;Object.defineProperty(e,t,n)}else{e[t]=r}},defineByDescriptor:function(e,t,r){if(s){Object.defineProperty(e,t,r)}else if("value"in r){e[t]=r.value}},preserveToString:function(e,t){if(t&&d(t.toString)){h(e,"toString",t.toString.bind(t),true)}}};var m=Object.create||function(e,t){var r=function Prototype(){};r.prototype=e;var o=new r;if(typeof t!=="undefined"){n(t).forEach(function(e){O.defineByDescriptor(o,e,t[e])})}return o};var w=function(e,t){if(!Object.setPrototypeOf){return false}return a(function(){var r=function Subclass(t){var r=new e(t);Object.setPrototypeOf(r,Subclass.prototype);return r};Object.setPrototypeOf(r,e);r.prototype=m(e.prototype,{constructor:{value:r}});return t(r)})};var j=function(){if(typeof self!=="undefined"){return self}if(typeof window!=="undefined"){return window}if(typeof global!=="undefined"){return global}throw new Error("unable to locate global object")};var S=j();var T=S.isFinite;var I=Function.call.bind(String.prototype.indexOf);var E=Function.apply.bind(Array.prototype.indexOf);var P=Function.call.bind(Array.prototype.concat);var C=Function.call.bind(String.prototype.slice);var M=Function.call.bind(Array.prototype.push);var x=Function.apply.bind(Array.prototype.push);var N=Function.call.bind(Array.prototype.shift);var A=Math.max;var R=Math.min;var _=Math.floor;var k=Math.abs;var F=Math.exp;var L=Math.log;var D=Math.sqrt;var z=Function.call.bind(Object.prototype.hasOwnProperty);var q;var W=function(){};var G=S.Symbol||{};var H=G.species||"@@species";var V=Number.isNaN||function isNaN(e){return e!==e};var B=Number.isFinite||function isFinite(e){return typeof e==="number"&&T(e)};var $=d(Math.sign)?Math.sign:function sign(e){var t=Number(e);if(t===0){return t}if(V(t)){return t}return t<0?-1:1};var U=function isArguments(e){return g(e)==="[object Arguments]"};var J=function isArguments(e){return e!==null&&typeof e==="object"&&typeof e.length==="number"&&e.length>=0&&g(e)!=="[object Array]"&&g(e.callee)==="[object Function]"};var X=U(arguments)?U:J;var K={primitive:function(e){return e===null||typeof e!=="function"&&typeof e!=="object"},string:function(e){return g(e)==="[object String]"},regex:function(e){return g(e)==="[object RegExp]"},symbol:function(e){return typeof S.Symbol==="function"&&typeof e==="symbol"}};var Z=function overrideNative(e,t,r){var n=e[t];h(e,t,r,true);O.preserveToString(e[t],n)};var Y=typeof G==="function"&&typeof G["for"]==="function"&&K.symbol(G());var Q=K.symbol(G.iterator)?G.iterator:"_es6-shim iterator_";if(S.Set&&typeof(new S.Set)["@@iterator"]==="function"){Q="@@iterator"}if(!S.Reflect){h(S,"Reflect",{},true)}var ee=S.Reflect;var te=String;var re={Call:function Call(t,r){var n=arguments.length>2?arguments[2]:[];if(!re.IsCallable(t)){throw new TypeError(t+" is not a function")}return e(t,r,n)},RequireObjectCoercible:function(e,t){if(e==null){throw new TypeError(t||"Cannot call method on "+e)}return e},TypeIsObject:function(e){if(e===void 0||e===null||e===true||e===false){return false}return typeof e==="function"||typeof e==="object"},ToObject:function(e,t){return Object(re.RequireObjectCoercible(e,t))},IsCallable:d,IsConstructor:function(e){return re.IsCallable(e)},ToInt32:function(e){return re.ToNumber(e)>>0},ToUint32:function(e){return re.ToNumber(e)>>>0},ToNumber:function(e){if(g(e)==="[object Symbol]"){throw new TypeError("Cannot convert a Symbol value to a number")}return+e},ToInteger:function(e){var t=re.ToNumber(e);if(V(t)){return 0}if(t===0||!B(t)){return t}return(t>0?1:-1)*_(k(t))},ToLength:function(e){var t=re.ToInteger(e);if(t<=0){return 0}if(t>Number.MAX_SAFE_INTEGER){return Number.MAX_SAFE_INTEGER}return t},SameValue:function(e,t){if(e===t){if(e===0){return 1/e===1/t}return true}return V(e)&&V(t)},SameValueZero:function(e,t){return e===t||V(e)&&V(t)},IsIterable:function(e){return re.TypeIsObject(e)&&(typeof e[Q]!=="undefined"||X(e))},GetIterator:function(e){if(X(e)){return new q(e,"value")}var t=re.GetMethod(e,Q);if(!re.IsCallable(t)){throw new TypeError("value is not an iterable")}var r=re.Call(t,e);if(!re.TypeIsObject(r)){throw new TypeError("bad iterator")}return r},GetMethod:function(e,t){var r=re.ToObject(e)[t];if(r===void 0||r===null){return void 0}if(!re.IsCallable(r)){throw new TypeError("Method not callable: "+t)}return r},IteratorComplete:function(e){return!!e.done},IteratorClose:function(e,t){var r=re.GetMethod(e,"return");if(r===void 0){return}var n,o;try{n=re.Call(r,e)}catch(i){o=i}if(t){return}if(o){throw o}if(!re.TypeIsObject(n)){throw new TypeError("Iterator's return method returned a non-object.")}},IteratorNext:function(e){var t=arguments.length>1?e.next(arguments[1]):e.next();if(!re.TypeIsObject(t)){throw new TypeError("bad iterator")}return t},IteratorStep:function(e){var t=re.IteratorNext(e);var r=re.IteratorComplete(t);return r?false:t},Construct:function(e,t,r,n){var o=typeof r==="undefined"?e:r;if(!n&&ee.construct){return ee.construct(e,t,o)}var i=o.prototype;if(!re.TypeIsObject(i)){i=Object.prototype}var a=m(i);var u=re.Call(e,a,t);return re.TypeIsObject(u)?u:a},SpeciesConstructor:function(e,t){var r=e.constructor;if(r===void 0){return t}if(!re.TypeIsObject(r)){throw new TypeError("Bad constructor")}var n=r[H];if(n===void 0||n===null){return t}if(!re.IsConstructor(n)){throw new TypeError("Bad @@species")}return n},CreateHTML:function(e,t,r,n){var o=re.ToString(e);var i="<"+t;if(r!==""){var a=re.ToString(n);var u=a.replace(/"/g,"&quot;");i+=" "+r+'="'+u+'"'}var f=i+">";var s=f+o;return s+"</"+t+">"},IsRegExp:function IsRegExp(e){if(!re.TypeIsObject(e)){return false}var t=e[G.match];if(typeof t!=="undefined"){return!!t}return K.regex(e)},ToString:function ToString(e){return te(e)}};if(s&&Y){var ne=function defineWellKnownSymbol(e){if(K.symbol(G[e])){return G[e]}var t=G["for"]("Symbol."+e);Object.defineProperty(G,e,{configurable:false,enumerable:false,writable:false,value:t});return t};if(!K.symbol(G.search)){var oe=ne("search");var ie=String.prototype.search;h(RegExp.prototype,oe,function search(e){return re.Call(ie,e,[this])});var ae=function search(e){var t=re.RequireObjectCoercible(this);if(e!==null&&typeof e!=="undefined"){var r=re.GetMethod(e,oe);if(typeof r!=="undefined"){return re.Call(r,e,[t])}}return re.Call(ie,t,[re.ToString(e)])};Z(String.prototype,"search",ae)}if(!K.symbol(G.replace)){var ue=ne("replace");var fe=String.prototype.replace;h(RegExp.prototype,ue,function replace(e,t){return re.Call(fe,e,[this,t])});var se=function replace(e,t){var r=re.RequireObjectCoercible(this);if(e!==null&&typeof e!=="undefined"){var n=re.GetMethod(e,ue);if(typeof n!=="undefined"){return re.Call(n,e,[r,t])}}return re.Call(fe,r,[re.ToString(e),t])};Z(String.prototype,"replace",se)}if(!K.symbol(G.split)){var ce=ne("split");var le=String.prototype.split;h(RegExp.prototype,ce,function split(e,t){return re.Call(le,e,[this,t])});var pe=function split(e,t){var r=re.RequireObjectCoercible(this);if(e!==null&&typeof e!=="undefined"){var n=re.GetMethod(e,ce);if(typeof n!=="undefined"){return re.Call(n,e,[r,t])}}return re.Call(le,r,[re.ToString(e),t])};Z(String.prototype,"split",pe)}var ve=K.symbol(G.match);var ye=ve&&function(){var e={};e[G.match]=function(){return 42};return"a".match(e)!==42}();if(!ve||ye){var he=ne("match");var be=String.prototype.match;h(RegExp.prototype,he,function match(e){return re.Call(be,e,[this])});var ge=function match(e){var t=re.RequireObjectCoercible(this);if(e!==null&&typeof e!=="undefined"){var r=re.GetMethod(e,he);if(typeof r!=="undefined"){return re.Call(r,e,[t])}}return re.Call(be,t,[re.ToString(e)])};Z(String.prototype,"match",ge)}}var de=function wrapConstructor(e,t,r){O.preserveToString(t,e);if(Object.setPrototypeOf){Object.setPrototypeOf(e,t)}if(s){l(Object.getOwnPropertyNames(e),function(n){if(n in W||r[n]){return}O.proxy(e,n,t)})}else{l(Object.keys(e),function(n){if(n in W||r[n]){return}t[n]=e[n]})}t.prototype=e.prototype;O.redefine(e.prototype,"constructor",t)};var Oe=function(){return this};var me=function(e){if(s&&!z(e,H)){O.getter(e,H,Oe)}};var we=function(e,t){var r=t||function iterator(){return this};h(e,Q,r);if(!e[Q]&&K.symbol(Q)){e[Q]=r}};var je=function createDataProperty(e,t,r){if(s){Object.defineProperty(e,t,{configurable:true,enumerable:true,writable:true,value:r})}else{e[t]=r}};var Se=function createDataPropertyOrThrow(e,t,r){je(e,t,r);if(!re.SameValue(e[t],r)){throw new TypeError("property is nonconfigurable")}};var Te=function(e,t,r,n){if(!re.TypeIsObject(e)){throw new TypeError("Constructor requires `new`: "+t.name)}var o=t.prototype;if(!re.TypeIsObject(o)){o=r}var i=m(o);for(var a in n){if(z(n,a)){var u=n[a];h(i,a,u,true)}}return i};if(String.fromCodePoint&&String.fromCodePoint.length!==1){var Ie=String.fromCodePoint;Z(String,"fromCodePoint",function fromCodePoint(e){return re.Call(Ie,this,arguments)})}var Ee={fromCodePoint:function fromCodePoint(e){var t=[];var r;for(var n=0,o=arguments.length;n<o;n++){r=Number(arguments[n]);if(!re.SameValue(r,re.ToInteger(r))||r<0||r>1114111){throw new RangeError("Invalid code point "+r)}if(r<65536){M(t,String.fromCharCode(r))}else{r-=65536;M(t,String.fromCharCode((r>>10)+55296));M(t,String.fromCharCode(r%1024+56320))}}return t.join("")},raw:function raw(e){var t=re.ToObject(e,"bad callSite");var r=re.ToObject(t.raw,"bad raw value");var n=r.length;var o=re.ToLength(n);if(o<=0){return""}var i=[];var a=0;var u,f,s,c;while(a<o){u=re.ToString(a);s=re.ToString(r[u]);M(i,s);if(a+1>=o){break}f=a+1<arguments.length?arguments[a+1]:"";c=re.ToString(f);M(i,c);a+=1}return i.join("")}};if(String.raw&&String.raw({raw:{0:"x",1:"y",length:2}})!=="xy"){Z(String,"raw",Ee.raw)}b(String,Ee);var Pe=function repeat(e,t){if(t<1){return""}if(t%2){return repeat(e,t-1)+e}var r=repeat(e,t/2);return r+r};var Ce=Infinity;var Me={repeat:function repeat(e){var t=re.ToString(re.RequireObjectCoercible(this));var r=re.ToInteger(e);if(r<0||r>=Ce){throw new RangeError("repeat count must be less than infinity and not overflow maximum string size")}return Pe(t,r)},startsWith:function startsWith(e){var t=re.ToString(re.RequireObjectCoercible(this));if(re.IsRegExp(e)){throw new TypeError('Cannot call method "startsWith" with a regex')}var r=re.ToString(e);var n;if(arguments.length>1){n=arguments[1]}var o=A(re.ToInteger(n),0);return C(t,o,o+r.length)===r},endsWith:function endsWith(e){var t=re.ToString(re.RequireObjectCoercible(this));if(re.IsRegExp(e)){throw new TypeError('Cannot call method "endsWith" with a regex')}var r=re.ToString(e);var n=t.length;var o;if(arguments.length>1){o=arguments[1]}var i=typeof o==="undefined"?n:re.ToInteger(o);var a=R(A(i,0),n);return C(t,a-r.length,a)===r},includes:function includes(e){if(re.IsRegExp(e)){throw new TypeError('"includes" does not accept a RegExp')}var t=re.ToString(e);var r;if(arguments.length>1){r=arguments[1]}return I(this,t,r)!==-1},codePointAt:function codePointAt(e){var t=re.ToString(re.RequireObjectCoercible(this));var r=re.ToInteger(e);var n=t.length;if(r>=0&&r<n){var o=t.charCodeAt(r);var i=r+1===n;if(o<55296||o>56319||i){return o}var a=t.charCodeAt(r+1);if(a<56320||a>57343){return o}return(o-55296)*1024+(a-56320)+65536}}};if(String.prototype.includes&&"a".includes("a",Infinity)!==false){Z(String.prototype,"includes",Me.includes)}if(String.prototype.startsWith&&String.prototype.endsWith){var xe=i(function(){"/a/".startsWith(/a/)});var Ne=a(function(){return"abc".startsWith("a",Infinity)===false});if(!xe||!Ne){Z(String.prototype,"startsWith",Me.startsWith);Z(String.prototype,"endsWith",Me.endsWith)}}if(Y){var Ae=a(function(){var e=/a/;e[G.match]=false;return"/a/".startsWith(e)});if(!Ae){Z(String.prototype,"startsWith",Me.startsWith)}var Re=a(function(){var e=/a/;e[G.match]=false;return"/a/".endsWith(e)});if(!Re){Z(String.prototype,"endsWith",Me.endsWith)}var _e=a(function(){var e=/a/;e[G.match]=false;return"/a/".includes(e)});if(!_e){Z(String.prototype,"includes",Me.includes)}}b(String.prototype,Me);var ke=["	\n\x0B\f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003","\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028","\u2029\ufeff"].join("");var Fe=new RegExp("(^["+ke+"]+)|(["+ke+"]+$)","g");var Le=function trim(){return re.ToString(re.RequireObjectCoercible(this)).replace(Fe,"")};var De=["\x85","\u200b","\ufffe"].join("");var ze=new RegExp("["+De+"]","g");var qe=/^[\-+]0x[0-9a-f]+$/i;var We=De.trim().length!==De.length;h(String.prototype,"trim",Le,We);var Ge=function(e){return{value:e,done:arguments.length===0}};var He=function(e){re.RequireObjectCoercible(e);this._s=re.ToString(e);this._i=0};He.prototype.next=function(){var e=this._s;var t=this._i;if(typeof e==="undefined"||t>=e.length){this._s=void 0;return Ge()}var r=e.charCodeAt(t);var n,o;if(r<55296||r>56319||t+1===e.length){o=1}else{n=e.charCodeAt(t+1);o=n<56320||n>57343?1:2}this._i=t+o;return Ge(e.substr(t,o))};we(He.prototype);we(String.prototype,function(){return new He(this)});var Ve={from:function from(e){var r=this;var n;if(arguments.length>1){n=arguments[1]}var o,i;if(typeof n==="undefined"){o=false}else{if(!re.IsCallable(n)){throw new TypeError("Array.from: when provided, the second argument must be a function")}if(arguments.length>2){i=arguments[2]}o=true}var a=typeof(X(e)||re.GetMethod(e,Q))!=="undefined";var u,f,s;if(a){f=re.IsConstructor(r)?Object(new r):[];var c=re.GetIterator(e);var l,p;s=0;while(true){l=re.IteratorStep(c);if(l===false){break}p=l.value;try{if(o){p=typeof i==="undefined"?n(p,s):t(n,i,p,s)}f[s]=p}catch(v){re.IteratorClose(c,true);throw v}s+=1}u=s}else{var y=re.ToObject(e);u=re.ToLength(y.length);f=re.IsConstructor(r)?Object(new r(u)):new Array(u);var h;for(s=0;s<u;++s){h=y[s];if(o){h=typeof i==="undefined"?n(h,s):t(n,i,h,s)}Se(f,s,h)}}f.length=u;return f},of:function of(){var e=arguments.length;var t=this;var n=r(t)||!re.IsCallable(t)?new Array(e):re.Construct(t,[e]);for(var o=0;o<e;++o){Se(n,o,arguments[o])}n.length=e;return n}};b(Array,Ve);me(Array);q=function(e,t){this.i=0;this.array=e;this.kind=t};b(q.prototype,{next:function(){var e=this.i;var t=this.array;if(!(this instanceof q)){throw new TypeError("Not an ArrayIterator")}if(typeof t!=="undefined"){var r=re.ToLength(t.length);for(;e<r;e++){var n=this.kind;var o;if(n==="key"){o=e}else if(n==="value"){o=t[e]}else if(n==="entry"){o=[e,t[e]]}this.i=e+1;return Ge(o)}}this.array=void 0;return Ge()}});we(q.prototype);var Be=Array.of===Ve.of||function(){var e=function Foo(e){this.length=e};e.prototype=[];var t=Array.of.apply(e,[1,2]);return t instanceof e&&t.length===2}();if(!Be){Z(Array,"of",Ve.of)}var $e={copyWithin:function copyWithin(e,t){var r=re.ToObject(this);var n=re.ToLength(r.length);var o=re.ToInteger(e);var i=re.ToInteger(t);var a=o<0?A(n+o,0):R(o,n);var u=i<0?A(n+i,0):R(i,n);var f;if(arguments.length>2){f=arguments[2]}var s=typeof f==="undefined"?n:re.ToInteger(f);var c=s<0?A(n+s,0):R(s,n);var l=R(c-u,n-a);var p=1;if(u<a&&a<u+l){p=-1;u+=l-1;a+=l-1}while(l>0){if(u in r){r[a]=r[u]}else{delete r[a]}u+=p;a+=p;l-=1}return r},fill:function fill(e){var t;if(arguments.length>1){t=arguments[1]}var r;if(arguments.length>2){r=arguments[2]}var n=re.ToObject(this);var o=re.ToLength(n.length);t=re.ToInteger(typeof t==="undefined"?0:t);r=re.ToInteger(typeof r==="undefined"?o:r);var i=t<0?A(o+t,0):R(t,o);var a=r<0?o+r:r;for(var u=i;u<o&&u<a;++u){n[u]=e}return n},find:function find(e){var r=re.ToObject(this);var n=re.ToLength(r.length);if(!re.IsCallable(e)){throw new TypeError("Array#find: predicate must be a function")}var o=arguments.length>1?arguments[1]:null;for(var i=0,a;i<n;i++){a=r[i];if(o){if(t(e,o,a,i,r)){return a}}else if(e(a,i,r)){return a}}},findIndex:function findIndex(e){var r=re.ToObject(this);var n=re.ToLength(r.length);if(!re.IsCallable(e)){throw new TypeError("Array#findIndex: predicate must be a function")}var o=arguments.length>1?arguments[1]:null;for(var i=0;i<n;i++){if(o){if(t(e,o,r[i],i,r)){return i}}else if(e(r[i],i,r)){return i}}return-1},keys:function keys(){return new q(this,"key")},values:function values(){return new q(this,"value")},entries:function entries(){return new q(this,"entry")}};if(Array.prototype.keys&&!re.IsCallable([1].keys().next)){delete Array.prototype.keys}if(Array.prototype.entries&&!re.IsCallable([1].entries().next)){delete Array.prototype.entries}if(Array.prototype.keys&&Array.prototype.entries&&!Array.prototype.values&&Array.prototype[Q]){b(Array.prototype,{values:Array.prototype[Q]});if(K.symbol(G.unscopables)){Array.prototype[G.unscopables].values=true}}if(c&&Array.prototype.values&&Array.prototype.values.name!=="values"){var Ue=Array.prototype.values;Z(Array.prototype,"values",function values(){return re.Call(Ue,this,arguments)});h(Array.prototype,Q,Array.prototype.values,true)}b(Array.prototype,$e);if(1/[true].indexOf(true,-0)<0){h(Array.prototype,"indexOf",function indexOf(e){var t=E(this,arguments);if(t===0&&1/t<0){return 0}return t},true)}we(Array.prototype,function(){return this.values()});if(Object.getPrototypeOf){we(Object.getPrototypeOf([].values()))}var Je=function(){return a(function(){return Array.from({length:-1}).length===0})}();var Xe=function(){var e=Array.from([0].entries());return e.length===1&&r(e[0])&&e[0][0]===0&&e[0][1]===0}();if(!Je||!Xe){Z(Array,"from",Ve.from)}var Ke=function(){return a(function(){return Array.from([0],void 0)})}();if(!Ke){var Ze=Array.from;Z(Array,"from",function from(e){if(arguments.length>1&&typeof arguments[1]!=="undefined"){return re.Call(Ze,this,arguments)}else{return t(Ze,this,e)}})}var Ye=-(Math.pow(2,32)-1);var Qe=function(e,r){var n={length:Ye};n[r?(n.length>>>0)-1:0]=true;return a(function(){t(e,n,function(){throw new RangeError("should not reach here")},[]);return true})};if(!Qe(Array.prototype.forEach)){var et=Array.prototype.forEach;Z(Array.prototype,"forEach",function forEach(e){return re.Call(et,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.map)){var tt=Array.prototype.map;Z(Array.prototype,"map",function map(e){return re.Call(tt,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.filter)){var rt=Array.prototype.filter;Z(Array.prototype,"filter",function filter(e){return re.Call(rt,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.some)){var nt=Array.prototype.some;Z(Array.prototype,"some",function some(e){return re.Call(nt,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.every)){var ot=Array.prototype.every;Z(Array.prototype,"every",function every(e){return re.Call(ot,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.reduce)){var it=Array.prototype.reduce;Z(Array.prototype,"reduce",function reduce(e){return re.Call(it,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.reduceRight,true)){var at=Array.prototype.reduceRight;Z(Array.prototype,"reduceRight",function reduceRight(e){return re.Call(at,this.length>=0?this:[],arguments)},true)}var ut=Number("0o10")!==8;var ft=Number("0b10")!==2;var st=y(De,function(e){return Number(e+0+e)===0});if(ut||ft||st){var ct=Number;var lt=/^0b[01]+$/i;var pt=/^0o[0-7]+$/i;var vt=lt.test.bind(lt);var yt=pt.test.bind(pt);var ht=function(e){var t;if(typeof e.valueOf==="function"){t=e.valueOf();if(K.primitive(t)){return t}}if(typeof e.toString==="function"){t=e.toString();if(K.primitive(t)){return t}}throw new TypeError("No default value")};var bt=ze.test.bind(ze);var gt=qe.test.bind(qe);var dt=function(){var e=function Number(t){var r;if(arguments.length>0){r=K.primitive(t)?t:ht(t,"number")}else{r=0}if(typeof r==="string"){r=re.Call(Le,r);if(vt(r)){r=parseInt(C(r,2),2)}else if(yt(r)){r=parseInt(C(r,2),8)}else if(bt(r)||gt(r)){r=NaN}}var n=this;var o=a(function(){ct.prototype.valueOf.call(n);return true});if(n instanceof e&&!o){return new ct(r)}return ct(r)};return e}();de(ct,dt,{});b(dt,{NaN:ct.NaN,MAX_VALUE:ct.MAX_VALUE,MIN_VALUE:ct.MIN_VALUE,NEGATIVE_INFINITY:ct.NEGATIVE_INFINITY,POSITIVE_INFINITY:ct.POSITIVE_INFINITY});Number=dt;O.redefine(S,"Number",dt)}var Ot=Math.pow(2,53)-1;b(Number,{MAX_SAFE_INTEGER:Ot,MIN_SAFE_INTEGER:-Ot,EPSILON:2.220446049250313e-16,parseInt:S.parseInt,parseFloat:S.parseFloat,isFinite:B,isInteger:function isInteger(e){return B(e)&&re.ToInteger(e)===e},isSafeInteger:function isSafeInteger(e){return Number.isInteger(e)&&k(e)<=Number.MAX_SAFE_INTEGER},isNaN:V});h(Number,"parseInt",S.parseInt,Number.parseInt!==S.parseInt);if(![,1].find(function(e,t){return t===0})){Z(Array.prototype,"find",$e.find)}if([,1].findIndex(function(e,t){return t===0})!==0){Z(Array.prototype,"findIndex",$e.findIndex)}var mt=Function.bind.call(Function.bind,Object.prototype.propertyIsEnumerable);var wt=function ensureEnumerable(e,t){if(s&&mt(e,t)){Object.defineProperty(e,t,{enumerable:false})}};var jt=function sliceArgs(){var e=Number(this);var t=arguments.length;var r=t-e;var n=new Array(r<0?0:r);for(var o=e;o<t;++o){n[o-e]=arguments[o]}return n};var St=function assignTo(e){return function assignToSource(t,r){t[r]=e[r];return t}};var Tt=function(e,t){var r=n(Object(t));var o;if(re.IsCallable(Object.getOwnPropertySymbols)){o=v(Object.getOwnPropertySymbols(Object(t)),mt(t))}return p(P(r,o||[]),St(t),e)};var It={assign:function(e,t){var r=re.ToObject(e,"Cannot convert undefined or null to object");return p(re.Call(jt,1,arguments),Tt,r)},is:function is(e,t){return re.SameValue(e,t)}};var Et=Object.assign&&Object.preventExtensions&&function(){var e=Object.preventExtensions({1:2});try{Object.assign(e,"xy")}catch(t){return e[1]==="y"}}();if(Et){Z(Object,"assign",It.assign)}b(Object,It);if(s){var Pt={setPrototypeOf:function(e,r){var n;var o=function(e,t){if(!re.TypeIsObject(e)){throw new TypeError("cannot set prototype on a non-object")}if(!(t===null||re.TypeIsObject(t))){throw new TypeError("can only set prototype to an object or null"+t)}};var i=function(e,r){o(e,r);t(n,e,r);return e};try{n=e.getOwnPropertyDescriptor(e.prototype,r).set;t(n,{},null)}catch(a){if(e.prototype!=={}[r]){return}n=function(e){this[r]=e};i.polyfill=i(i({},null),e.prototype)instanceof e}return i}(Object,"__proto__")};b(Object,Pt)}if(Object.setPrototypeOf&&Object.getPrototypeOf&&Object.getPrototypeOf(Object.setPrototypeOf({},null))!==null&&Object.getPrototypeOf(Object.create(null))===null){(function(){var e=Object.create(null);var t=Object.getPrototypeOf;var r=Object.setPrototypeOf;Object.getPrototypeOf=function(r){var n=t(r);return n===e?null:n};Object.setPrototypeOf=function(t,n){var o=n===null?e:n;return r(t,o)};Object.setPrototypeOf.polyfill=false})()}var Ct=!i(function(){Object.keys("foo")});if(!Ct){var Mt=Object.keys;Z(Object,"keys",function keys(e){return Mt(re.ToObject(e))});n=Object.keys}var xt=i(function(){Object.keys(/a/g)});if(xt){var Nt=Object.keys;Z(Object,"keys",function keys(e){if(K.regex(e)){var t=[];for(var r in e){if(z(e,r)){M(t,r)}}return t}return Nt(e)});n=Object.keys}if(Object.getOwnPropertyNames){var At=!i(function(){Object.getOwnPropertyNames("foo")});if(!At){var Rt=typeof window==="object"?Object.getOwnPropertyNames(window):[];var _t=Object.getOwnPropertyNames;Z(Object,"getOwnPropertyNames",function getOwnPropertyNames(e){var t=re.ToObject(e);if(g(t)==="[object Window]"){try{return _t(t)}catch(r){return P([],Rt)}}return _t(t)})}}if(Object.getOwnPropertyDescriptor){var kt=!i(function(){Object.getOwnPropertyDescriptor("foo","bar")});if(!kt){var Ft=Object.getOwnPropertyDescriptor;Z(Object,"getOwnPropertyDescriptor",function getOwnPropertyDescriptor(e,t){return Ft(re.ToObject(e),t)})}}if(Object.seal){var Lt=!i(function(){Object.seal("foo")});if(!Lt){var Dt=Object.seal;Z(Object,"seal",function seal(e){if(!re.TypeIsObject(e)){return e}return Dt(e)})}}if(Object.isSealed){var zt=!i(function(){Object.isSealed("foo")});if(!zt){var qt=Object.isSealed;Z(Object,"isSealed",function isSealed(e){if(!re.TypeIsObject(e)){return true}return qt(e)})}}if(Object.freeze){var Wt=!i(function(){Object.freeze("foo")});if(!Wt){var Gt=Object.freeze;Z(Object,"freeze",function freeze(e){if(!re.TypeIsObject(e)){return e}return Gt(e)})}}if(Object.isFrozen){var Ht=!i(function(){Object.isFrozen("foo")});if(!Ht){var Vt=Object.isFrozen;Z(Object,"isFrozen",function isFrozen(e){if(!re.TypeIsObject(e)){return true}return Vt(e)})}}if(Object.preventExtensions){var Bt=!i(function(){Object.preventExtensions("foo")});if(!Bt){var $t=Object.preventExtensions;Z(Object,"preventExtensions",function preventExtensions(e){if(!re.TypeIsObject(e)){return e}return $t(e)})}}if(Object.isExtensible){var Ut=!i(function(){Object.isExtensible("foo")});if(!Ut){var Jt=Object.isExtensible;Z(Object,"isExtensible",function isExtensible(e){if(!re.TypeIsObject(e)){return false}return Jt(e)})}}if(Object.getPrototypeOf){var Xt=!i(function(){Object.getPrototypeOf("foo")});if(!Xt){var Kt=Object.getPrototypeOf;Z(Object,"getPrototypeOf",function getPrototypeOf(e){return Kt(re.ToObject(e))})}}var Zt=s&&function(){var e=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags");return e&&re.IsCallable(e.get)}();if(s&&!Zt){var Yt=function flags(){if(!re.TypeIsObject(this)){throw new TypeError("Method called on incompatible type: must be an object.")}var e="";if(this.global){e+="g"}if(this.ignoreCase){e+="i"}if(this.multiline){e+="m"}if(this.unicode){e+="u"}if(this.sticky){e+="y"}return e};O.getter(RegExp.prototype,"flags",Yt)}var Qt=s&&a(function(){return String(new RegExp(/a/g,"i"))==="/a/i"});var er=Y&&s&&function(){var e=/./;e[G.match]=false;return RegExp(e)===e}();var tr=a(function(){return RegExp.prototype.toString.call({source:"abc"})==="/abc/"});var rr=tr&&a(function(){return RegExp.prototype.toString.call({source:"a",flags:"b"})==="/a/b"});if(!tr||!rr){var nr=RegExp.prototype.toString;h(RegExp.prototype,"toString",function toString(){var e=re.RequireObjectCoercible(this);if(K.regex(e)){return t(nr,e)}var r=te(e.source);var n=te(e.flags);return"/"+r+"/"+n},true);O.preserveToString(RegExp.prototype.toString,nr)}if(s&&(!Qt||er)){var or=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags").get;var ir=Object.getOwnPropertyDescriptor(RegExp.prototype,"source")||{};var ar=function(){return this.source};var ur=re.IsCallable(ir.get)?ir.get:ar;var fr=RegExp;var sr=function(){return function RegExp(e,t){var r=re.IsRegExp(e);var n=this instanceof RegExp;if(!n&&r&&typeof t==="undefined"&&e.constructor===RegExp){return e}var o=e;var i=t;if(K.regex(e)){o=re.Call(ur,e);i=typeof t==="undefined"?re.Call(or,e):t;return new RegExp(o,i)}else if(r){o=e.source;i=typeof t==="undefined"?e.flags:t}return new fr(e,t)}}();de(fr,sr,{$input:true});RegExp=sr;O.redefine(S,"RegExp",sr)}if(s){var cr={input:"$_",lastMatch:"$&",lastParen:"$+",leftContext:"$`",rightContext:"$'"};l(n(cr),function(e){if(e in RegExp&&!(cr[e]in RegExp)){O.getter(RegExp,cr[e],function get(){return RegExp[e]})}})}me(RegExp);var lr=1/Number.EPSILON;var pr=function roundTiesToEven(e){return e+lr-lr};var vr=Math.pow(2,-23);var yr=Math.pow(2,127)*(2-vr);var hr=Math.pow(2,-126);var br=Math.E;var gr=Math.LOG2E;var dr=Math.LOG10E;var Or=Number.prototype.clz;delete Number.prototype.clz;var mr={acosh:function acosh(e){var t=Number(e);if(V(t)||e<1){return NaN}if(t===1){return 0}if(t===Infinity){return t}return L(t/br+D(t+1)*D(t-1)/br)+1},asinh:function asinh(e){var t=Number(e);if(t===0||!T(t)){return t}return t<0?-asinh(-t):L(t+D(t*t+1))},atanh:function atanh(e){var t=Number(e);if(V(t)||t<-1||t>1){return NaN}if(t===-1){return-Infinity}if(t===1){return Infinity}if(t===0){return t}return.5*L((1+t)/(1-t))},cbrt:function cbrt(e){var t=Number(e);if(t===0){return t}var r=t<0;var n;if(r){t=-t}if(t===Infinity){n=Infinity}else{n=F(L(t)/3);n=(t/(n*n)+2*n)/3}return r?-n:n},clz32:function clz32(e){var t=Number(e);var r=re.ToUint32(t);if(r===0){return 32}return Or?re.Call(Or,r):31-_(L(r+.5)*gr)},cosh:function cosh(e){var t=Number(e);if(t===0){return 1}if(V(t)){return NaN}if(!T(t)){return Infinity}if(t<0){t=-t}if(t>21){return F(t)/2}return(F(t)+F(-t))/2},expm1:function expm1(e){var t=Number(e);if(t===-Infinity){return-1}if(!T(t)||t===0){return t}if(k(t)>.5){return F(t)-1}var r=t;var n=0;var o=1;while(n+r!==n){n+=r;o+=1;r*=t/o}return n},hypot:function hypot(e,t){var r=0;var n=0;for(var o=0;o<arguments.length;++o){var i=k(Number(arguments[o]));if(n<i){r*=n/i*(n/i);r+=1;n=i}else{r+=i>0?i/n*(i/n):i}}return n===Infinity?Infinity:n*D(r)},log2:function log2(e){return L(e)*gr},log10:function log10(e){return L(e)*dr},log1p:function log1p(e){var t=Number(e);if(t<-1||V(t)){return NaN}if(t===0||t===Infinity){return t}if(t===-1){return-Infinity}return 1+t-1===0?t:t*(L(1+t)/(1+t-1))},sign:$,sinh:function sinh(e){var t=Number(e);if(!T(t)||t===0){return t}if(k(t)<1){return(Math.expm1(t)-Math.expm1(-t))/2}return(F(t-1)-F(-t-1))*br/2},tanh:function tanh(e){var t=Number(e);if(V(t)||t===0){return t}if(t>=20){return 1}if(t<=-20){return-1}return(Math.expm1(t)-Math.expm1(-t))/(F(t)+F(-t))},trunc:function trunc(e){var t=Number(e);return t<0?-_(-t):_(t)},imul:function imul(e,t){var r=re.ToUint32(e);var n=re.ToUint32(t);var o=r>>>16&65535;var i=r&65535;var a=n>>>16&65535;var u=n&65535;return i*u+(o*u+i*a<<16>>>0)|0},fround:function fround(e){var t=Number(e);if(t===0||t===Infinity||t===-Infinity||V(t)){return t}var r=$(t);var n=k(t);if(n<hr){return r*pr(n/hr/vr)*hr*vr}var o=(1+vr/Number.EPSILON)*n;var i=o-(o-n);if(i>yr||V(i)){return r*Infinity}return r*i}};b(Math,mr);h(Math,"log1p",mr.log1p,Math.log1p(-1e-17)!==-1e-17);h(Math,"asinh",mr.asinh,Math.asinh(-1e7)!==-Math.asinh(1e7));h(Math,"tanh",mr.tanh,Math.tanh(-2e-17)!==-2e-17);h(Math,"acosh",mr.acosh,Math.acosh(Number.MAX_VALUE)===Infinity);h(Math,"cbrt",mr.cbrt,Math.abs(1-Math.cbrt(1e-300)/1e-100)/Number.EPSILON>8);h(Math,"sinh",mr.sinh,Math.sinh(-2e-17)!==-2e-17);var wr=Math.expm1(10);h(Math,"expm1",mr.expm1,wr>22025.465794806718||wr<22025.465794806718);var jr=Math.round;var Sr=Math.round(.5-Number.EPSILON/4)===0&&Math.round(-.5+Number.EPSILON/3.99)===1;var Tr=lr+1;var Ir=2*lr-1;var Er=[Tr,Ir].every(function(e){return Math.round(e)===e});h(Math,"round",function round(e){var t=_(e);var r=t===-1?-0:t+1;return e-t<.5?t:r},!Sr||!Er);O.preserveToString(Math.round,jr);var Pr=Math.imul;if(Math.imul(4294967295,5)!==-5){Math.imul=mr.imul;O.preserveToString(Math.imul,Pr)}if(Math.imul.length!==2){Z(Math,"imul",function imul(e,t){return re.Call(Pr,Math,arguments);
+})}var Cr=function(){var e=S.setTimeout;if(typeof e!=="function"&&typeof e!=="object"){return}re.IsPromise=function(e){if(!re.TypeIsObject(e)){return false}if(typeof e._promise==="undefined"){return false}return true};var r=function(e){if(!re.IsConstructor(e)){throw new TypeError("Bad promise constructor")}var t=this;var r=function(e,r){if(t.resolve!==void 0||t.reject!==void 0){throw new TypeError("Bad Promise implementation!")}t.resolve=e;t.reject=r};t.resolve=void 0;t.reject=void 0;t.promise=new e(r);if(!(re.IsCallable(t.resolve)&&re.IsCallable(t.reject))){throw new TypeError("Bad promise constructor")}};var n;if(typeof window!=="undefined"&&re.IsCallable(window.postMessage)){n=function(){var e=[];var t="zero-timeout-message";var r=function(r){M(e,r);window.postMessage(t,"*")};var n=function(r){if(r.source===window&&r.data===t){r.stopPropagation();if(e.length===0){return}var n=N(e);n()}};window.addEventListener("message",n,true);return r}}var o=function(){var e=S.Promise;var t=e&&e.resolve&&e.resolve();return t&&function(e){return t.then(e)}};var i=re.IsCallable(S.setImmediate)?S.setImmediate:typeof process==="object"&&process.nextTick?process.nextTick:o()||(re.IsCallable(n)?n():function(t){e(t,0)});var a=function(e){return e};var u=function(e){throw e};var f=0;var s=1;var c=2;var l=0;var p=1;var v=2;var y={};var h=function(e,t,r){i(function(){g(e,t,r)})};var g=function(e,t,r){var n,o;if(t===y){return e(r)}try{n=e(r);o=t.resolve}catch(i){n=i;o=t.reject}o(n)};var d=function(e,t){var r=e._promise;var n=r.reactionLength;if(n>0){h(r.fulfillReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o<n;o++,i+=3){h(r[i+l],r[i+v],t);e[i+l]=void 0;e[i+p]=void 0;e[i+v]=void 0}}}r.result=t;r.state=s;r.reactionLength=0};var O=function(e,t){var r=e._promise;var n=r.reactionLength;if(n>0){h(r.rejectReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o<n;o++,i+=3){h(r[i+p],r[i+v],t);e[i+l]=void 0;e[i+p]=void 0;e[i+v]=void 0}}}r.result=t;r.state=c;r.reactionLength=0};var m=function(e){var t=false;var r=function(r){var n;if(t){return}t=true;if(r===e){return O(e,new TypeError("Self resolution"))}if(!re.TypeIsObject(r)){return d(e,r)}try{n=r.then}catch(o){return O(e,o)}if(!re.IsCallable(n)){return d(e,r)}i(function(){j(e,r,n)})};var n=function(r){if(t){return}t=true;return O(e,r)};return{resolve:r,reject:n}};var w=function(e,r,n,o){if(e===I){t(e,r,n,o,y)}else{t(e,r,n,o)}};var j=function(e,t,r){var n=m(e);var o=n.resolve;var i=n.reject;try{w(r,t,o,i)}catch(a){i(a)}};var T,I;var E=function(){var e=function Promise(t){if(!(this instanceof e)){throw new TypeError('Constructor Promise requires "new"')}if(this&&this._promise){throw new TypeError("Bad construction")}if(!re.IsCallable(t)){throw new TypeError("not a valid resolver")}var r=Te(this,e,T,{_promise:{result:void 0,state:f,reactionLength:0,fulfillReactionHandler0:void 0,rejectReactionHandler0:void 0,reactionCapability0:void 0}});var n=m(r);var o=n.reject;try{t(n.resolve,o)}catch(i){o(i)}return r};return e}();T=E.prototype;var P=function(e,t,r,n){var o=false;return function(i){if(o){return}o=true;t[e]=i;if(--n.count===0){var a=r.resolve;a(t)}}};var C=function(e,t,r){var n=e.iterator;var o=[];var i={count:1};var a,u;var f=0;while(true){try{a=re.IteratorStep(n);if(a===false){e.done=true;break}u=a.value}catch(s){e.done=true;throw s}o[f]=void 0;var c=t.resolve(u);var l=P(f,o,r,i);i.count+=1;w(c.then,c,l,r.reject);f+=1}if(--i.count===0){var p=r.resolve;p(o)}return r.promise};var x=function(e,t,r){var n=e.iterator;var o,i,a;while(true){try{o=re.IteratorStep(n);if(o===false){e.done=true;break}i=o.value}catch(u){e.done=true;throw u}a=t.resolve(i);w(a.then,a,r.resolve,r.reject)}return r.promise};b(E,{all:function all(e){var t=this;if(!re.TypeIsObject(t)){throw new TypeError("Promise is not object")}var n=new r(t);var o,i;try{o=re.GetIterator(e);i={iterator:o,done:false};return C(i,t,n)}catch(a){var u=a;if(i&&!i.done){try{re.IteratorClose(o,true)}catch(f){u=f}}var s=n.reject;s(u);return n.promise}},race:function race(e){var t=this;if(!re.TypeIsObject(t)){throw new TypeError("Promise is not object")}var n=new r(t);var o,i;try{o=re.GetIterator(e);i={iterator:o,done:false};return x(i,t,n)}catch(a){var u=a;if(i&&!i.done){try{re.IteratorClose(o,true)}catch(f){u=f}}var s=n.reject;s(u);return n.promise}},reject:function reject(e){var t=this;if(!re.TypeIsObject(t)){throw new TypeError("Bad promise constructor")}var n=new r(t);var o=n.reject;o(e);return n.promise},resolve:function resolve(e){var t=this;if(!re.TypeIsObject(t)){throw new TypeError("Bad promise constructor")}if(re.IsPromise(e)){var n=e.constructor;if(n===t){return e}}var o=new r(t);var i=o.resolve;i(e);return o.promise}});b(T,{"catch":function(e){return this.then(null,e)},then:function then(e,t){var n=this;if(!re.IsPromise(n)){throw new TypeError("not a promise")}var o=re.SpeciesConstructor(n,E);var i;var b=arguments.length>2&&arguments[2]===y;if(b&&o===E){i=y}else{i=new r(o)}var g=re.IsCallable(e)?e:a;var d=re.IsCallable(t)?t:u;var O=n._promise;var m;if(O.state===f){if(O.reactionLength===0){O.fulfillReactionHandler0=g;O.rejectReactionHandler0=d;O.reactionCapability0=i}else{var w=3*(O.reactionLength-1);O[w+l]=g;O[w+p]=d;O[w+v]=i}O.reactionLength+=1}else if(O.state===s){m=O.result;h(g,i,m)}else if(O.state===c){m=O.result;h(d,i,m)}else{throw new TypeError("unexpected Promise state")}return i.promise}});y=new r(E);I=T.then;return E}();if(S.Promise){delete S.Promise.accept;delete S.Promise.defer;delete S.Promise.prototype.chain}if(typeof Cr==="function"){b(S,{Promise:Cr});var Mr=w(S.Promise,function(e){return e.resolve(42).then(function(){})instanceof e});var xr=!i(function(){S.Promise.reject(42).then(null,5).then(null,W)});var Nr=i(function(){S.Promise.call(3,W)});var Ar=function(e){var t=e.resolve(5);t.constructor={};var r=e.resolve(t);try{r.then(null,W).then(null,W)}catch(n){return true}return t===r}(S.Promise);var Rr=s&&function(){var e=0;var t=Object.defineProperty({},"then",{get:function(){e+=1}});Promise.resolve(t);return e===1}();var _r=function BadResolverPromise(e){var t=new Promise(e);e(3,function(){});this.then=t.then;this.constructor=BadResolverPromise};_r.prototype=Promise.prototype;_r.all=Promise.all;var kr=a(function(){return!!_r.all([1,2])});if(!Mr||!xr||!Nr||Ar||!Rr||kr){Promise=Cr;Z(S,"Promise",Cr)}if(Promise.all.length!==1){var Fr=Promise.all;Z(Promise,"all",function all(e){return re.Call(Fr,this,arguments)})}if(Promise.race.length!==1){var Lr=Promise.race;Z(Promise,"race",function race(e){return re.Call(Lr,this,arguments)})}if(Promise.resolve.length!==1){var Dr=Promise.resolve;Z(Promise,"resolve",function resolve(e){return re.Call(Dr,this,arguments)})}if(Promise.reject.length!==1){var zr=Promise.reject;Z(Promise,"reject",function reject(e){return re.Call(zr,this,arguments)})}wt(Promise,"all");wt(Promise,"race");wt(Promise,"resolve");wt(Promise,"reject");me(Promise)}var qr=function(e){var t=n(p(e,function(e,t){e[t]=true;return e},{}));return e.join(":")===t.join(":")};var Wr=qr(["z","a","bb"]);var Gr=qr(["z",1,"a","3",2]);if(s){var Hr=function fastkey(e){if(!Wr){return null}if(typeof e==="undefined"||e===null){return"^"+re.ToString(e)}else if(typeof e==="string"){return"$"+e}else if(typeof e==="number"){if(!Gr){return"n"+e}return e}else if(typeof e==="boolean"){return"b"+e}return null};var Vr=function emptyObject(){return Object.create?Object.create(null):{}};var Br=function addIterableToMap(e,n,o){if(r(o)||K.string(o)){l(o,function(e){if(!re.TypeIsObject(e)){throw new TypeError("Iterator value "+e+" is not an entry object")}n.set(e[0],e[1])})}else if(o instanceof e){t(e.prototype.forEach,o,function(e,t){n.set(t,e)})}else{var i,a;if(o!==null&&typeof o!=="undefined"){a=n.set;if(!re.IsCallable(a)){throw new TypeError("bad map")}i=re.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=re.IteratorStep(i);if(u===false){break}var f=u.value;try{if(!re.TypeIsObject(f)){throw new TypeError("Iterator value "+f+" is not an entry object")}t(a,n,f[0],f[1])}catch(s){re.IteratorClose(i,true);throw s}}}}};var $r=function addIterableToSet(e,n,o){if(r(o)||K.string(o)){l(o,function(e){n.add(e)})}else if(o instanceof e){t(e.prototype.forEach,o,function(e){n.add(e)})}else{var i,a;if(o!==null&&typeof o!=="undefined"){a=n.add;if(!re.IsCallable(a)){throw new TypeError("bad set")}i=re.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=re.IteratorStep(i);if(u===false){break}var f=u.value;try{t(a,n,f)}catch(s){re.IteratorClose(i,true);throw s}}}}};var Ur={Map:function(){var e={};var r=function MapEntry(e,t){this.key=e;this.value=t;this.next=null;this.prev=null};r.prototype.isRemoved=function isRemoved(){return this.key===e};var n=function isMap(e){return!!e._es6map};var o=function requireMapSlot(e,t){if(!re.TypeIsObject(e)||!n(e)){throw new TypeError("Method Map.prototype."+t+" called on incompatible receiver "+re.ToString(e))}};var i=function MapIterator(e,t){o(e,"[[MapIterator]]");this.head=e._head;this.i=this.head;this.kind=t};i.prototype={next:function next(){var e=this.i;var t=this.kind;var r=this.head;if(typeof this.i==="undefined"){return Ge()}while(e.isRemoved()&&e!==r){e=e.prev}var n;while(e.next!==r){e=e.next;if(!e.isRemoved()){if(t==="key"){n=e.key}else if(t==="value"){n=e.value}else{n=[e.key,e.value]}this.i=e;return Ge(n)}}this.i=void 0;return Ge()}};we(i.prototype);var a;var u=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}if(this&&this._es6map){throw new TypeError("Bad construction")}var e=Te(this,Map,a,{_es6map:true,_head:null,_storage:Vr(),_size:0});var t=new r(null,null);t.next=t.prev=t;e._head=t;if(arguments.length>0){Br(Map,e,arguments[0])}return e};a=u.prototype;O.getter(a,"size",function(){if(typeof this._size==="undefined"){throw new TypeError("size method called on incompatible Map")}return this._size});b(a,{get:function get(e){o(this,"get");var t=Hr(e);if(t!==null){var r=this._storage[t];if(r){return r.value}else{return}}var n=this._head;var i=n;while((i=i.next)!==n){if(re.SameValueZero(i.key,e)){return i.value}}},has:function has(e){o(this,"has");var t=Hr(e);if(t!==null){return typeof this._storage[t]!=="undefined"}var r=this._head;var n=r;while((n=n.next)!==r){if(re.SameValueZero(n.key,e)){return true}}return false},set:function set(e,t){o(this,"set");var n=this._head;var i=n;var a;var u=Hr(e);if(u!==null){if(typeof this._storage[u]!=="undefined"){this._storage[u].value=t;return this}else{a=this._storage[u]=new r(e,t);i=n.prev}}while((i=i.next)!==n){if(re.SameValueZero(i.key,e)){i.value=t;return this}}a=a||new r(e,t);if(re.SameValue(-0,e)){a.key=+0}a.next=this._head;a.prev=this._head.prev;a.prev.next=a;a.next.prev=a;this._size+=1;return this},"delete":function(t){o(this,"delete");var r=this._head;var n=r;var i=Hr(t);if(i!==null){if(typeof this._storage[i]==="undefined"){return false}n=this._storage[i].prev;delete this._storage[i]}while((n=n.next)!==r){if(re.SameValueZero(n.key,t)){n.key=n.value=e;n.prev.next=n.next;n.next.prev=n.prev;this._size-=1;return true}}return false},clear:function clear(){o(this,"clear");this._size=0;this._storage=Vr();var t=this._head;var r=t;var n=r.next;while((r=n)!==t){r.key=r.value=e;n=r.next;r.next=r.prev=t}t.next=t.prev=t},keys:function keys(){o(this,"keys");return new i(this,"key")},values:function values(){o(this,"values");return new i(this,"value")},entries:function entries(){o(this,"entries");return new i(this,"key+value")},forEach:function forEach(e){o(this,"forEach");var r=arguments.length>1?arguments[1]:null;var n=this.entries();for(var i=n.next();!i.done;i=n.next()){if(r){t(e,r,i.value[1],i.value[0],this)}else{e(i.value[1],i.value[0],this)}}}});we(a,a.entries);return u}(),Set:function(){var e=function isSet(e){return e._es6set&&typeof e._storage!=="undefined"};var r=function requireSetSlot(t,r){if(!re.TypeIsObject(t)||!e(t)){throw new TypeError("Set.prototype."+r+" called on incompatible receiver "+re.ToString(t))}};var o;var i=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}if(this&&this._es6set){throw new TypeError("Bad construction")}var e=Te(this,Set,o,{_es6set:true,"[[SetData]]":null,_storage:Vr()});if(!e._es6set){throw new TypeError("bad set")}if(arguments.length>0){$r(Set,e,arguments[0])}return e};o=i.prototype;var a=function(e){var t=e;if(t==="^null"){return null}else if(t==="^undefined"){return void 0}else{var r=t.charAt(0);if(r==="$"){return C(t,1)}else if(r==="n"){return+C(t,1)}else if(r==="b"){return t==="btrue"}}return+t};var u=function ensureMap(e){if(!e["[[SetData]]"]){var t=e["[[SetData]]"]=new Ur.Map;l(n(e._storage),function(e){var r=a(e);t.set(r,r)});e["[[SetData]]"]=t}e._storage=null};O.getter(i.prototype,"size",function(){r(this,"size");if(this._storage){return n(this._storage).length}u(this);return this["[[SetData]]"].size});b(i.prototype,{has:function has(e){r(this,"has");var t;if(this._storage&&(t=Hr(e))!==null){return!!this._storage[t]}u(this);return this["[[SetData]]"].has(e)},add:function add(e){r(this,"add");var t;if(this._storage&&(t=Hr(e))!==null){this._storage[t]=true;return this}u(this);this["[[SetData]]"].set(e,e);return this},"delete":function(e){r(this,"delete");var t;if(this._storage&&(t=Hr(e))!==null){var n=z(this._storage,t);return delete this._storage[t]&&n}u(this);return this["[[SetData]]"]["delete"](e)},clear:function clear(){r(this,"clear");if(this._storage){this._storage=Vr()}if(this["[[SetData]]"]){this["[[SetData]]"].clear()}},values:function values(){r(this,"values");u(this);return this["[[SetData]]"].values()},entries:function entries(){r(this,"entries");u(this);return this["[[SetData]]"].entries()},forEach:function forEach(e){r(this,"forEach");var n=arguments.length>1?arguments[1]:null;var o=this;u(o);this["[[SetData]]"].forEach(function(r,i){if(n){t(e,n,i,i,o)}else{e(i,i,o)}})}});h(i.prototype,"keys",i.prototype.values,true);we(i.prototype,i.prototype.values);return i}()};if(S.Map||S.Set){var Jr=a(function(){return new Map([[1,2]]).get(1)===2});if(!Jr){var Xr=S.Map;S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new Xr;if(arguments.length>0){Br(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,S.Map.prototype);return e};S.Map.prototype=m(Xr.prototype);h(S.Map.prototype,"constructor",S.Map,true);O.preserveToString(S.Map,Xr)}var Kr=new Map;var Zr=function(){var e=new Map([[1,0],[2,0],[3,0],[4,0]]);e.set(-0,e);return e.get(0)===e&&e.get(-0)===e&&e.has(0)&&e.has(-0)}();var Yr=Kr.set(1,2)===Kr;if(!Zr||!Yr){var Qr=Map.prototype.set;Z(Map.prototype,"set",function set(e,r){t(Qr,this,e===0?0:e,r);return this})}if(!Zr){var en=Map.prototype.get;var tn=Map.prototype.has;b(Map.prototype,{get:function get(e){return t(en,this,e===0?0:e)},has:function has(e){return t(tn,this,e===0?0:e)}},true);O.preserveToString(Map.prototype.get,en);O.preserveToString(Map.prototype.has,tn)}var rn=new Set;var nn=function(e){e["delete"](0);e.add(-0);return!e.has(0)}(rn);var on=rn.add(1)===rn;if(!nn||!on){var an=Set.prototype.add;Set.prototype.add=function add(e){t(an,this,e===0?0:e);return this};O.preserveToString(Set.prototype.add,an)}if(!nn){var un=Set.prototype.has;Set.prototype.has=function has(e){return t(un,this,e===0?0:e)};O.preserveToString(Set.prototype.has,un);var fn=Set.prototype["delete"];Set.prototype["delete"]=function SetDelete(e){return t(fn,this,e===0?0:e)};O.preserveToString(Set.prototype["delete"],fn)}var sn=w(S.Map,function(e){var t=new e([]);t.set(42,42);return t instanceof e});var cn=Object.setPrototypeOf&&!sn;var ln=function(){try{return!(S.Map()instanceof S.Map)}catch(e){return e instanceof TypeError}}();if(S.Map.length!==0||cn||!ln){var pn=S.Map;S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new pn;if(arguments.length>0){Br(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Map.prototype);return e};S.Map.prototype=pn.prototype;h(S.Map.prototype,"constructor",S.Map,true);O.preserveToString(S.Map,pn)}var vn=w(S.Set,function(e){var t=new e([]);t.add(42,42);return t instanceof e});var yn=Object.setPrototypeOf&&!vn;var hn=function(){try{return!(S.Set()instanceof S.Set)}catch(e){return e instanceof TypeError}}();if(S.Set.length!==0||yn||!hn){var bn=S.Set;S.Set=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}var e=new bn;if(arguments.length>0){$r(Set,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Set.prototype);return e};S.Set.prototype=bn.prototype;h(S.Set.prototype,"constructor",S.Set,true);O.preserveToString(S.Set,bn)}var gn=new S.Map;var dn=!a(function(){return gn.keys().next().done});if(typeof S.Map.prototype.clear!=="function"||(new S.Set).size!==0||gn.size!==0||typeof S.Map.prototype.keys!=="function"||typeof S.Set.prototype.keys!=="function"||typeof S.Map.prototype.forEach!=="function"||typeof S.Set.prototype.forEach!=="function"||u(S.Map)||u(S.Set)||typeof gn.keys().next!=="function"||dn||!sn){b(S,{Map:Ur.Map,Set:Ur.Set},true)}if(S.Set.prototype.keys!==S.Set.prototype.values){h(S.Set.prototype,"keys",S.Set.prototype.values,true)}we(Object.getPrototypeOf((new S.Map).keys()));we(Object.getPrototypeOf((new S.Set).keys()));if(c&&S.Set.prototype.has.name!=="has"){var On=S.Set.prototype.has;Z(S.Set.prototype,"has",function has(e){return t(On,this,e)})}}b(S,Ur);me(S.Map);me(S.Set)}var mn=function throwUnlessTargetIsObject(e){if(!re.TypeIsObject(e)){throw new TypeError("target must be an object")}};var wn={apply:function apply(){return re.Call(re.Call,null,arguments)},construct:function construct(e,t){if(!re.IsConstructor(e)){throw new TypeError("First argument must be a constructor.")}var r=arguments.length>2?arguments[2]:e;if(!re.IsConstructor(r)){throw new TypeError("new.target must be a constructor.")}return re.Construct(e,t,r,"internal")},deleteProperty:function deleteProperty(e,t){mn(e);if(s){var r=Object.getOwnPropertyDescriptor(e,t);if(r&&!r.configurable){return false}}return delete e[t]},has:function has(e,t){mn(e);return t in e}};if(Object.getOwnPropertyNames){Object.assign(wn,{ownKeys:function ownKeys(e){mn(e);var t=Object.getOwnPropertyNames(e);if(re.IsCallable(Object.getOwnPropertySymbols)){x(t,Object.getOwnPropertySymbols(e))}return t}})}var jn=function ConvertExceptionToBoolean(e){return!i(e)};if(Object.preventExtensions){Object.assign(wn,{isExtensible:function isExtensible(e){mn(e);return Object.isExtensible(e)},preventExtensions:function preventExtensions(e){mn(e);return jn(function(){Object.preventExtensions(e)})}})}if(s){var Sn=function get(e,t,r){var n=Object.getOwnPropertyDescriptor(e,t);if(!n){var o=Object.getPrototypeOf(e);if(o===null){return void 0}return Sn(o,t,r)}if("value"in n){return n.value}if(n.get){return re.Call(n.get,r)}return void 0};var Tn=function set(e,r,n,o){var i=Object.getOwnPropertyDescriptor(e,r);if(!i){var a=Object.getPrototypeOf(e);if(a!==null){return Tn(a,r,n,o)}i={value:void 0,writable:true,enumerable:true,configurable:true}}if("value"in i){if(!i.writable){return false}if(!re.TypeIsObject(o)){return false}var u=Object.getOwnPropertyDescriptor(o,r);if(u){return ee.defineProperty(o,r,{value:n})}else{return ee.defineProperty(o,r,{value:n,writable:true,enumerable:true,configurable:true})}}if(i.set){t(i.set,o,n);return true}return false};Object.assign(wn,{defineProperty:function defineProperty(e,t,r){mn(e);return jn(function(){Object.defineProperty(e,t,r)})},getOwnPropertyDescriptor:function getOwnPropertyDescriptor(e,t){mn(e);return Object.getOwnPropertyDescriptor(e,t)},get:function get(e,t){mn(e);var r=arguments.length>2?arguments[2]:e;return Sn(e,t,r)},set:function set(e,t,r){mn(e);var n=arguments.length>3?arguments[3]:e;return Tn(e,t,r,n)}})}if(Object.getPrototypeOf){var In=Object.getPrototypeOf;wn.getPrototypeOf=function getPrototypeOf(e){mn(e);return In(e)}}if(Object.setPrototypeOf&&wn.getPrototypeOf){var En=function(e,t){var r=t;while(r){if(e===r){return true}r=wn.getPrototypeOf(r)}return false};Object.assign(wn,{setPrototypeOf:function setPrototypeOf(e,t){mn(e);if(t!==null&&!re.TypeIsObject(t)){throw new TypeError("proto must be an object or null")}if(t===ee.getPrototypeOf(e)){return true}if(ee.isExtensible&&!ee.isExtensible(e)){return false}if(En(e,t)){return false}Object.setPrototypeOf(e,t);return true}})}var Pn=function(e,t){if(!re.IsCallable(S.Reflect[e])){h(S.Reflect,e,t)}else{var r=a(function(){S.Reflect[e](1);S.Reflect[e](NaN);S.Reflect[e](true);return true});if(r){Z(S.Reflect,e,t)}}};Object.keys(wn).forEach(function(e){Pn(e,wn[e])});var Cn=S.Reflect.getPrototypeOf;if(c&&Cn&&Cn.name!=="getPrototypeOf"){Z(S.Reflect,"getPrototypeOf",function getPrototypeOf(e){return t(Cn,S.Reflect,e)})}if(S.Reflect.setPrototypeOf){if(a(function(){S.Reflect.setPrototypeOf(1,{});return true})){Z(S.Reflect,"setPrototypeOf",wn.setPrototypeOf)}}if(S.Reflect.defineProperty){if(!a(function(){var e=!S.Reflect.defineProperty(1,"test",{value:1});var t=typeof Object.preventExtensions!=="function"||!S.Reflect.defineProperty(Object.preventExtensions({}),"test",{});return e&&t})){Z(S.Reflect,"defineProperty",wn.defineProperty)}}if(S.Reflect.construct){if(!a(function(){var e=function F(){};return S.Reflect.construct(function(){},[],e)instanceof e})){Z(S.Reflect,"construct",wn.construct)}}if(String(new Date(NaN))!=="Invalid Date"){var Mn=Date.prototype.toString;var xn=function toString(){var e=+this;if(e!==e){return"Invalid Date"}return re.Call(Mn,this)};Z(Date.prototype,"toString",xn)}var Nn={anchor:function anchor(e){return re.CreateHTML(this,"a","name",e)},big:function big(){return re.CreateHTML(this,"big","","")},blink:function blink(){return re.CreateHTML(this,"blink","","")},bold:function bold(){return re.CreateHTML(this,"b","","")},fixed:function fixed(){return re.CreateHTML(this,"tt","","")},fontcolor:function fontcolor(e){return re.CreateHTML(this,"font","color",e)},fontsize:function fontsize(e){return re.CreateHTML(this,"font","size",e)},italics:function italics(){return re.CreateHTML(this,"i","","")},link:function link(e){return re.CreateHTML(this,"a","href",e)},small:function small(){return re.CreateHTML(this,"small","","")},strike:function strike(){return re.CreateHTML(this,"strike","","")},sub:function sub(){return re.CreateHTML(this,"sub","","")},sup:function sub(){return re.CreateHTML(this,"sup","","")}};l(Object.keys(Nn),function(e){var r=String.prototype[e];var n=false;if(re.IsCallable(r)){var o=t(r,"",' " ');var i=P([],o.match(/"/g)).length;n=o!==o.toLowerCase()||i>2}else{n=true}if(n){Z(String.prototype,e,Nn[e])}});var An=function(){if(!Y){return false}var e=typeof JSON==="object"&&typeof JSON.stringify==="function"?JSON.stringify:null;if(!e){return false}if(typeof e(G())!=="undefined"){return true}if(e([G()])!=="[null]"){return true}var t={a:G()};t[G()]=true;if(e(t)!=="{}"){return true}return false}();var Rn=a(function(){if(!Y){return true}return JSON.stringify(Object(G()))==="{}"&&JSON.stringify([Object(G())])==="[{}]"});if(An||!Rn){var _n=JSON.stringify;Z(JSON,"stringify",function stringify(e){if(typeof e==="symbol"){return}var n;if(arguments.length>1){n=arguments[1]}var o=[e];if(!r(n)){var i=re.IsCallable(n)?n:null;var a=function(e,r){var n=i?t(i,this,e,r):r;if(typeof n!=="symbol"){if(K.symbol(n)){return St({})(n)}else{return n}}};o.push(a)}else{o.push(n)}if(arguments.length>2){o.push(arguments[2])}return _n.apply(this,o)})}return S});
\ No newline at end of file
diff --git a/src/docs/js/libs/htmlparser.js b/src/docs/js/libs/htmlparser.js
new file mode 100644
index 0000000..522b39c
--- /dev/null
+++ b/src/docs/js/libs/htmlparser.js
@@ -0,0 +1,23 @@
+/***********************************************
+Copyright 2010 - 2012 Chris Winberry <chris@winberry.net>. All rights reserved.
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to
+deal in the Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+IN THE SOFTWARE.
+***********************************************/
+/* v2.0.0 */
+
+!function(){function t(t,e){var a=function(){};a.prototype=e.prototype,t.super_=e,t.prototype=new a,t.prototype.constructor=t}function e(t,e){this._options=e||{},this._validateBuilder(t);this._builder=t,this.reset()}function a(t,e){this.reset(),this._options=e||{},void 0===this._options.ignoreWhitespace&&(this._options.ignoreWhitespace=!1),void 0===this._options.includeLocation&&(this._options.includeLocation=!1),void 0===this._options.verbose&&(this._options.verbose=!0),void 0===this._options.enforceEmptyTags&&(this._options.enforceEmptyTags=!0),void 0===this._options.caseSensitiveTags&&(this._options.caseSensitiveTags=!1),void 0===this._options.caseSensitiveAttr&&(this._options.caseSensitiveAttr=!1),"function"==typeof t&&(this._callback=t)}function n(t){n.super_.call(this,t,{ignoreWhitespace:!0,verbose:!1,enforceEmptyTags:!1,caseSensitiveTags:!0})}var i;if("undefined"!=typeof module&&void 0!==module.exports)i=module.exports;else{if(i={},this.Tautologistics||(this.Tautologistics={}),this.Tautologistics.NodeHtmlParser)return;this.Tautologistics.NodeHtmlParser=i}var s={Text:"text",Tag:"tag",Attr:"attr",CData:"cdata",Doctype:"doctype",Comment:"comment"};"undefined"!=typeof module&&void 0!==module.exports&&(t(e,require("stream")),e.prototype.writable=!0,e.prototype.write=function(t){t instanceof Buffer&&(t=t.toString()),this.parseChunk(t)},e.prototype.end=function(t){arguments.length&&this.write(t),this.writable=!1,this.done()},e.prototype.destroy=function(){this.writable=!1}),e.prototype.reset=function(){this._state={mode:s.Text,pos:0,data:null,pendingText:null,pendingWrite:null,lastTag:null,isScript:!1,needData:!1,output:[],done:!1},this._builder.reset()},e.prototype.parseChunk=function(t){for(this._state.needData=!1,this._state.data=null!==this._state.data?this._state.data.substr(this.pos)+t:t;this._state.pos<this._state.data.length&&!this._state.needData;)this._parse(this._state)},e.prototype.parseComplete=function(t){this.reset(),this.parseChunk(t),this.done()},e.prototype.done=function(){this._state.done=!0,this._parse(this._state),this._flushWrite(),this._builder.done()},e.prototype._validateBuilder=function(t){if("object"!=typeof t)throw new Error("Builder is not an object");if("function"!=typeof t.reset)throw new Error("Builder method 'reset' is invalid");if("function"!=typeof t.done)throw new Error("Builder method 'done' is invalid");if("function"!=typeof t.write)throw new Error("Builder method 'write' is invalid");if("function"!=typeof t.error)throw new Error("Builder method 'error' is invalid")},e.prototype._parse=function(){switch(this._state.mode){case s.Text:return this._parseText(this._state);case s.Tag:return this._parseTag(this._state);case s.Attr:return this._parseAttr(this._state);case s.CData:return this._parseCData(this._state);case s.Doctype:return this._parseDoctype(this._state);case s.Comment:return this._parseComment(this._state)}},e.prototype._writePending=function(t){this._state.pendingWrite||(this._state.pendingWrite=[]),this._state.pendingWrite.push(t)},e.prototype._flushWrite=function(){if(this._state.pendingWrite){for(var t=0,e=this._state.pendingWrite.length;t<e;t++){var a=this._state.pendingWrite[t];this._builder.write(a)}this._state.pendingWrite=null}},e.prototype._write=function(t){this._flushWrite(),this._builder.write(t)},e._re_parseText_scriptClose=/<\s*\/\s*script/gi,e.prototype._parseText=function(){var t,a=this._state;a.isScript?(e._re_parseText_scriptClose.lastIndex=a.pos,t=(t=e._re_parseText_scriptClose.exec(a.data))?t.index:-1):t=a.data.indexOf("<",a.pos);var n=-1===t?a.data.substring(a.pos,a.data.length):a.data.substring(a.pos,t);if(t<0&&a.done&&(t=a.data.length),t<0){if(a.isScript)return void(a.needData=!0);a.pendingText||(a.pendingText=[]),a.pendingText.push(a.data.substring(a.pos,a.data.length)),a.pos=a.data.length}else a.pendingText?(a.pendingText.push(a.data.substring(a.pos,t)),n=a.pendingText.join(""),a.pendingText=null):n=a.data.substring(a.pos,t),""!==n&&this._write({type:s.Text,data:n}),a.pos=t+1,a.mode=s.Tag},e.re_parseTag=/\s*(\/?)\s*([^\s>\/]+)(\s*)\??(>?)/g,e.prototype._parseTag=function(){var t=this._state;e.re_parseTag.lastIndex=t.pos;var a=e.re_parseTag.exec(t.data);if(a){if(!a[1]&&"!--"===a[2].substr(0,3))return t.mode=s.Comment,void(t.pos+=3);if(!a[1]&&"![CDATA["===a[2].substr(0,8))return t.mode=s.CData,void(t.pos+=8);if(!a[1]&&"!DOCTYPE"===a[2].substr(0,8))return t.mode=s.Doctype,void(t.pos+=8);if(!t.done&&t.pos+a[0].length===t.data.length)return void(t.needData=!0);var n;">"===a[4]?(t.mode=s.Text,n=a[0].substr(0,a[0].length-1)):(t.mode=s.Attr,n=a[0]),t.pos+=a[0].length;var i={type:s.Tag,name:a[1]+a[2],raw:n};t.mode===s.Attr&&(t.lastTag=i),"script"===i.name.toLowerCase()?t.isScript=!0:"/script"===i.name.toLowerCase()&&(t.isScript=!1),t.mode===s.Attr?this._writePending(i):this._write(i)}else t.needData=!0},e.re_parseAttr_findName=/\s*([^=<>\s'"\/]+)\s*/g,e.prototype._parseAttr_findName=function(){e.re_parseAttr_findName.lastIndex=this._state.pos;var t=e.re_parseAttr_findName.exec(this._state.data);return t?this._state.pos+t[0].length!==e.re_parseAttr_findName.lastIndex?null:{match:t[0],name:t[1]}:null},e.re_parseAttr_findValue=/\s*=\s*(?:'([^']*)'|"([^"]*)"|([^'"\s\/>]+))\s*/g,e.re_parseAttr_findValue_last=/\s*=\s*['"]?(.*)$/g,e.prototype._parseAttr_findValue=function(){var t=this._state;e.re_parseAttr_findValue.lastIndex=t.pos;var a=e.re_parseAttr_findValue.exec(t.data);return a?t.pos+a[0].length!==e.re_parseAttr_findValue.lastIndex?null:{match:a[0],value:a[1]||a[2]||a[3]}:t.done?(e.re_parseAttr_findValue_last.lastIndex=t.pos,a=e.re_parseAttr_findValue_last.exec(t.data),a?{match:a[0],value:""!==a[1]?a[1]:null}:null):null},e.re_parseAttr_splitValue=/\s*=\s*['"]?/g,e.re_parseAttr_selfClose=/(\s*\/\s*)(>?)/g,e.prototype._parseAttr=function(){var t=this._state,a=this._parseAttr_findName(t);if(a&&"?"!==a.name){if(!t.done&&t.pos+a.match.length===t.data.length)return t.needData=!0,null;t.pos+=a.match.length;var n=this._parseAttr_findValue(t);t.data.indexOf(" ",t.pos);if(n){if(!t.done&&t.pos+n.match.length===t.data.length)return t.needData=!0,void(t.pos-=a.match.length);t.pos+=n.match.length}else if(t.data.indexOf(" ",t.pos-1))n={match:"",value:a.name};else{if(e.re_parseAttr_splitValue.lastIndex=t.pos,e.re_parseAttr_splitValue.exec(t.data))return t.needData=!0,void(t.pos-=a.match.length);n={match:"",value:null}}t.lastTag.raw+=a.match+n.match,this._writePending({type:s.Attr,name:a.name,data:n.value})}else{e.re_parseAttr_selfClose.lastIndex=t.pos;var i=e.re_parseAttr_selfClose.exec(t.data);if(i&&i.index===t.pos){if(!t.done&&!i[2]&&t.pos+i[0].length===t.data.length)return void(t.needData=!0);t.lastTag.raw+=i[1],this._write({type:s.Tag,name:"/"+t.lastTag.name,raw:null}),t.pos+=i[1].length}var r=t.data.indexOf(">",t.pos);if(r<0){if(t.done)return t.lastTag.raw+=t.data.substr(t.pos),void(t.pos=t.data.length);t.needData=!0}else t.pos=r+1,t.mode=s.Text}},e.re_parseCData_findEnding=/\]{1,2}$/,e.prototype._parseCData=function(){var t=this._state,a=t.data.indexOf("]]>",t.pos);if(a<0&&t.done&&(a=t.data.length),a<0){if(e.re_parseCData_findEnding.lastIndex=t.pos,e.re_parseCData_findEnding.exec(t.data))return void(t.needData=!0);t.pendingText||(t.pendingText=[]),t.pendingText.push(t.data.substr(t.pos,t.data.length)),t.pos=t.data.length,t.needData=!0}else{var n;t.pendingText?(t.pendingText.push(t.data.substring(t.pos,a)),n=t.pendingText.join(""),t.pendingText=null):n=t.data.substring(t.pos,a),this._write({type:s.CData,data:n}),t.mode=s.Text,t.pos=a+3}},e.prototype._parseDoctype=function(){var t=this._state,a=t.data.indexOf(">",t.pos);if(a<0&&t.done&&(a=t.data.length),a<0)e.re_parseCData_findEnding.lastIndex=t.pos,t.pendingText||(t.pendingText=[]),t.pendingText.push(t.data.substr(t.pos,t.data.length)),t.pos=t.data.length,t.needData=!0;else{var n;t.pendingText?(t.pendingText.push(t.data.substring(t.pos,a)),n=t.pendingText.join(""),t.pendingText=null):n=t.data.substring(t.pos,a),this._write({type:s.Doctype,data:n}),t.mode=s.Text,t.pos=a+1}},e.re_parseComment_findEnding=/\-{1,2}$/,e.prototype._parseComment=function(){var t=this._state,a=t.data.indexOf("--\x3e",t.pos);if(a<0&&t.done&&(a=t.data.length),a<0){if(e.re_parseComment_findEnding.lastIndex=t.pos,e.re_parseComment_findEnding.exec(t.data))return void(t.needData=!0);t.pendingText||(t.pendingText=[]),t.pendingText.push(t.data.substr(t.pos,t.data.length)),t.pos=t.data.length,t.needData=!0}else{var n;t.pendingText?(t.pendingText.push(t.data.substring(t.pos,a)),n=t.pendingText.join(""),t.pendingText=null):n=t.data.substring(t.pos,a),this._write({type:s.Comment,data:n}),t.mode=s.Text,t.pos=a+3}},a._emptyTags={area:1,base:1,basefont:1,br:1,col:1,frame:1,hr:1,img:1,input:1,isindex:1,link:1,meta:1,param:1,embed:1,"?xml":1},a.reWhitespace=/^\s*$/,a.prototype.dom=null,a.prototype.reset=function(){this.dom=[],this._done=!1,this._tagStack=[],this._lastTag=null,this._tagStack.last=function(){return this.length?this[this.length-1]:null},this._line=1,this._col=1},a.prototype.done=function(){this._done=!0,this.handleCallback(null)},a.prototype.error=function(t){this.handleCallback(t)},a.prototype.handleCallback=function(t){if("function"==typeof this._callback)this._callback(t,this.dom);else if(t)throw t},a.prototype.isEmptyTag=function(t){var e=t.name.toLowerCase();return"?"==e.charAt(0)||("/"==e.charAt(0)&&(e=e.substring(1)),this._options.enforceEmptyTags&&!!a._emptyTags[e])},a.prototype._getLocation=function(){return{line:this._line,col:this._col}},a.prototype._updateLocation=function(t){var e=t.type===s.Tag?t.raw:t.data;if(null!==e){var a=e.split("\n");this._line+=a.length-1,a.length>1&&(this._col=1),this._col+=a[a.length-1].length,t.type===s.Tag?this._col+=2:t.type===s.Comment?this._col+=7:t.type===s.CData&&(this._col+=12)}},a.prototype._copyElement=function(t){var e={type:t.type};if(this._options.verbose&&void 0!==t.raw&&(e.raw=t.raw),void 0!==t.name)switch(t.type){case s.Tag:e.name=this._options.caseSensitiveTags?t.name:t.name.toLowerCase();break;case s.Attr:e.name=this._options.caseSensitiveAttr?t.name:t.name.toLowerCase();break;default:e.name=this._options.caseSensitiveTags?t.name:t.name.toLowerCase()}return void 0!==t.data&&(e.data=t.data),t.location&&(e.location={line:t.location.line,col:t.location.col}),e},a.prototype.write=function(t){if(this._done&&this.handleCallback(new Error("Writing to the builder after done() called is not allowed without a reset()")),this._options.includeLocation&&t.type!==s.Attr&&(t.location=this._getLocation(),this._updateLocation(t)),t.type!==s.Text||!this._options.ignoreWhitespace||!a.reWhitespace.test(t.data)){var e,n;if(this._tagStack.last())if(t.type===s.Tag)if("/"==t.name.charAt(0)){var i=this._options.caseSensitiveTags?t.name.substring(1):t.name.substring(1).toLowerCase();if(!this.isEmptyTag(t)){for(var r=this._tagStack.length-1;r>-1&&this._tagStack[r--].name!=i;);if(r>-1||this._tagStack[0].name==i)for(;r<this._tagStack.length-1;)this._tagStack.pop()}}else e=this._tagStack.last(),t.type===s.Attr?(e.attributes||(e.attributes={}),e.attributes[this._options.caseSensitiveAttr?t.name:t.name.toLowerCase()]=t.data):(n=this._copyElement(t),e.children||(e.children=[]),e.children.push(n),this.isEmptyTag(n)||this._tagStack.push(n),t.type===s.Tag&&(this._lastTag=n));else e=this._tagStack.last(),t.type===s.Attr?(e.attributes||(e.attributes={}),e.attributes[this._options.caseSensitiveAttr?t.name:t.name.toLowerCase()]=t.data):(e.children||(e.children=[]),e.children.push(this._copyElement(t)));else t.type===s.Tag?"/"!=t.name.charAt(0)&&(n=this._copyElement(t),this.dom.push(n),this.isEmptyTag(n)||this._tagStack.push(n),this._lastTag=n):t.type===s.Attr&&this._lastTag?(this._lastTag.attributes||(this._lastTag.attributes={}),this._lastTag.attributes[this._options.caseSensitiveAttr?t.name:t.name.toLowerCase()]=t.data):this.dom.push(this._copyElement(t))}},a.prototype._options=null,a.prototype._callback=null,a.prototype._done=!1,a.prototype._tagStack=null,t(n,a),n.prototype.done=function(){var t,e={},a=r.getElementsByTagName(function(t){return"rss"==t||"feed"==t},this.dom,!1);if(a.length&&(t=a[0]),t){if("rss"==t.name){e.type="rss",t=t.children[0],e.id="";try{e.title=r.getElementsByTagName("title",t.children,!1)[0].children[0].data}catch(t){}try{e.link=r.getElementsByTagName("link",t.children,!1)[0].children[0].data}catch(t){}try{e.description=r.getElementsByTagName("description",t.children,!1)[0].children[0].data}catch(t){}try{e.updated=new Date(r.getElementsByTagName("lastBuildDate",t.children,!1)[0].children[0].data)}catch(t){}try{e.author=r.getElementsByTagName("managingEditor",t.children,!1)[0].children[0].data}catch(t){}e.items=[],r.getElementsByTagName("item",t.children).forEach(function(t,a,n){var i={};try{i.id=r.getElementsByTagName("guid",t.children,!1)[0].children[0].data}catch(t){}try{i.title=r.getElementsByTagName("title",t.children,!1)[0].children[0].data}catch(t){}try{i.link=r.getElementsByTagName("link",t.children,!1)[0].children[0].data}catch(t){}try{i.description=r.getElementsByTagName("description",t.children,!1)[0].children[0].data}catch(t){}try{i.pubDate=new Date(r.getElementsByTagName("pubDate",t.children,!1)[0].children[0].data)}catch(t){}e.items.push(i)})}else{e.type="atom";try{e.id=r.getElementsByTagName("id",t.children,!1)[0].children[0].data}catch(t){}try{e.title=r.getElementsByTagName("title",t.children,!1)[0].children[0].data}catch(t){}try{e.link=r.getElementsByTagName("link",t.children,!1)[0].attributes.href}catch(t){}try{e.description=r.getElementsByTagName("subtitle",t.children,!1)[0].children[0].data}catch(t){}try{e.updated=new Date(r.getElementsByTagName("updated",t.children,!1)[0].children[0].data)}catch(t){}try{e.author=r.getElementsByTagName("email",t.children,!0)[0].children[0].data}catch(t){}e.items=[],r.getElementsByTagName("entry",t.children).forEach(function(t,a,n){var i={};try{i.id=r.getElementsByTagName("id",t.children,!1)[0].children[0].data}catch(t){}try{i.title=r.getElementsByTagName("title",t.children,!1)[0].children[0].data}catch(t){}try{i.link=r.getElementsByTagName("link",t.children,!1)[0].attributes.href}catch(t){}try{i.description=r.getElementsByTagName("summary",t.children,!1)[0].children[0].data}catch(t){}try{i.pubDate=new Date(r.getElementsByTagName("updated",t.children,!1)[0].children[0].data)}catch(t){}e.items.push(i)})}this.dom=e}n.super_.prototype.done.call(this)};var r={testElement:function(t,e){if(!e)return!1;for(var a in t)if(t.hasOwnProperty(a))if("tag_name"==a){if(e.type!==s.Tag)return!1;if(!t.tag_name(e.name))return!1}else if("tag_type"==a){if(!t.tag_type(e.type))return!1}else if("tag_contains"==a){if(e.type!==s.Text&&e.type!==s.Comment&&e.type!==s.CData)return!1;if(!t.tag_contains(e.data))return!1}else if(!e.attributes||!t[a](e.attributes[a]))return!1;return!0},getElements:function(t,e,a,n){if(a=void 0===a||null===a||!!a,n=isNaN(parseInt(n))?-1:parseInt(n),!e)return[];var i,s=[];for(var o in t)"function"!=typeof t[o]&&(t[o]=function(t){return function(e){return e==t}}(t[o]));if(r.testElement(t,e)&&s.push(e),n>=0&&s.length>=n)return s;if(a&&e.children)i=e.children;else{if(!(e instanceof Array))return s;i=e}for(var d=0;d<i.length&&(s=s.concat(r.getElements(t,i[d],a,n)),!(n>=0&&s.length>=n));d++);return s},getElementById:function(t,e,a){var n=r.getElements({id:t},e,a,1);return n.length?n[0]:null},getElementsByTagName:function(t,e,a,n){return r.getElements({tag_name:t},e,a,n)},getElementsByTagType:function(t,e,a,n){return r.getElements({tag_type:t},e,a,n)}};i.Parser=e,i.HtmlBuilder=a,i.RssBuilder=n,i.ElementType=s,i.DomUtils=r}();
diff --git a/src/docs/js/libs/innersvg.js b/src/docs/js/libs/innersvg.js
new file mode 100644
index 0000000..b1099de
--- /dev/null
+++ b/src/docs/js/libs/innersvg.js
@@ -0,0 +1,9 @@
+/**
+ * innerHTML property for SVGElement
+ * Copyright(c) 2010, Jeff Schiller
+ *
+ * Licensed under the Apache License, Version 2
+ *
+ * Minor modifications by Chris Price to only polyfill when required.
+ */
+!function(e){if(e&&!("innerHTML"in e.prototype)){var t=function(e,r){var i=e.nodeType;if(3==i)r.push(e.textContent.replace(/&/,"&amp;").replace(/</,"&lt;").replace(">","&gt;"));else if(1==i){if(r.push("<",e.tagName),e.hasAttributes())for(var n=e.attributes,s=0,o=n.length;s<o;++s){var a=n.item(s);r.push(" ",a.name,"='",a.value,"'")}if(e.hasChildNodes()){r.push(">");for(var h=e.childNodes,s=0,o=h.length;s<o;++s)t(h.item(s),r);r.push("</",e.tagName,">")}else r.push("/>")}else{if(8!=i)throw"Error serializing XML. Unhandled node of type: "+i;r.push("\x3c!--",e.nodeValue,"--\x3e")}};Object.defineProperty(e.prototype,"innerHTML",{get:function(){for(var e=[],r=this.firstChild;r;)t(r,e),r=r.nextSibling;return e.join("")},set:function(e){for(;this.firstChild;)this.removeChild(this.firstChild);try{var t=new DOMParser;t.async=!1,sXML="<svg xmlns='http://www.w3.org/2000/svg'>"+e+"</svg>";for(var r=t.parseFromString(sXML,"text/xml").documentElement.firstChild;r;)this.appendChild(this.ownerDocument.importNode(r,!0)),r=r.nextSibling}catch(e){throw new Error("Error parsing XML string")}}})}}((0,eval)("this").SVGElement);
\ No newline at end of file
diff --git a/src/docs/js/libs/lit-html.js b/src/docs/js/libs/lit-html.js
new file mode 100644
index 0000000..0829381
--- /dev/null
+++ b/src/docs/js/libs/lit-html.js
@@ -0,0 +1,2 @@
+// lit-html v0.10.0 | © Polymer team
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.lithtml={})}(this,function(e){"use strict";var t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n=function e(t,n,r){null===t&&(t=Function.prototype);var i=Object.getOwnPropertyDescriptor(t,n);if(void 0===i){var o=Object.getPrototypeOf(t);return null===o?void 0:e(o,n,r)}if("value"in i)return i.value;var a=i.get;return void 0!==a?a.call(r):void 0},r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=new Map,a=function(){function e(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:x;i(this,e),this.strings=t,this.values=n,this.type=r,this.partCallback=o}return r(e,[{key:"getHTML",value:function(){for(var e,t,n=this.strings.length-1,r="",i=!0,o=0;o<n;o++){var a=this.strings[o];r+=a;var s=(void 0,void 0,t=(e=a).lastIndexOf(">"),e.indexOf("<",t+1)>-1?e.length:t);r+=(i=s>-1?s<a.length:i)?c:u}return r+=this.strings[n]}},{key:"getTemplateElement",value:function(){var e=document.createElement("template");return e.innerHTML=this.getHTML(),e}}]),e}(),s=function(e){function t(){return i(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,a),r(t,[{key:"getHTML",value:function(){return"<svg>"+n(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"getHTML",this).call(this)+"</svg>"}},{key:"getTemplateElement",value:function(){var e=n(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"getTemplateElement",this).call(this),r=e.content,i=r.firstChild;return r.removeChild(i),T(r,i.firstChild),e}}]),t}();function l(e){var t=o.get(e.type);void 0===t&&(t=new Map,o.set(e.type,t));var n=t.get(e.strings);return void 0===n&&(n=new v(e,e.getTemplateElement()),t.set(e.strings,n)),n}var u="{{lit-"+String(Math.random()).slice(2)+"}}",c="\x3c!--"+u+"--\x3e",h=new RegExp(u+"|"+c),f=/[ \x09\x0a\x0c\x0d]([^\0-\x1F\x7F-\x9F \x09\x0a\x0c\x0d"'>=/]+)[ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*)$/;var p=function e(t,n,r,o,a){i(this,e),this.type=t,this.index=n,this.name=r,this.rawName=o,this.strings=a},v=function e(t,n){i(this,e),this.parts=[],this.element=n;for(var r=this.element.content,o=document.createTreeWalker(r,133,null,!1),a=-1,s=0,l=[],c=void 0,v=void 0;o.nextNode();){a++,c=v;var d=v=o.currentNode;if(1===d.nodeType){if(!d.hasAttributes())continue;for(var y=d.attributes,m=0,_=0;_<y.length;_++)y[_].value.indexOf(u)>=0&&m++;for(;m-- >0;){var g=t.strings[s],b=f.exec(g)[1],x=y.getNamedItem(b),N=x.value.split(h);this.parts.push(new p("attribute",a,x.name,b,N)),d.removeAttribute(x.name),s+=N.length-1}}else if(3===d.nodeType){var T=d.nodeValue;if(T.indexOf(u)<0)continue;var w=d.parentNode,V=T.split(h),k=V.length-1;s+=k;for(var O=0;O<k;O++)w.insertBefore(""===V[O]?document.createComment(""):document.createTextNode(V[O]),d),this.parts.push(new p("node",a++));w.insertBefore(""===V[k]?document.createComment(""):document.createTextNode(V[k]),d),l.push(d)}else if(8===d.nodeType&&d.nodeValue===u){var S=d.parentNode,C=d.previousSibling;null===C||C!==c||C.nodeType!==Node.TEXT_NODE?S.insertBefore(document.createComment(""),d):a--,this.parts.push(new p("node",a++)),l.push(d),null===d.nextSibling?S.insertBefore(document.createComment(""),d):a--,v=c,s++}}var P=!0,j=!1,A=void 0;try{for(var E,M=l[Symbol.iterator]();!(P=(E=M.next()).done);P=!0){var I=E.value;I.parentNode.removeChild(I)}}catch(e){j=!0,A=e}finally{try{!P&&M.return&&M.return()}finally{if(j)throw A}}},d=function(e,t){return y(t)?(t=t(e),m):null===t?void 0:t},y=function(e){return"function"==typeof e&&!0===e.__litDirective},m={},_=function(e){return null===e||!("object"===(void 0===e?"undefined":t(e))||"function"==typeof e)},g=function(){function e(t,n,r,o){i(this,e),this.instance=t,this.element=n,this.name=r,this.strings=o,this.size=o.length-1,this._previousValues=[]}return r(e,[{key:"_interpolate",value:function(e,t){for(var n=this.strings,r=n.length-1,i="",o=0;o<r;o++){i+=n[o];var a=d(this,e[t+o]);if(a&&a!==m&&(Array.isArray(a)||"string"!=typeof a&&a[Symbol.iterator])){var s=!0,l=!1,u=void 0;try{for(var c,h=a[Symbol.iterator]();!(s=(c=h.next()).done);s=!0){i+=c.value}}catch(e){l=!0,u=e}finally{try{!s&&h.return&&h.return()}finally{if(l)throw u}}}else i+=a}return i+n[r]}},{key:"_equalToPreviousValues",value:function(e,t){for(var n=t;n<t+this.size;n++)if(this._previousValues[n]!==e[n]||!_(e[n]))return!1;return!0}},{key:"setValue",value:function(e,t){if(!this._equalToPreviousValues(e,t)){var n=this.strings,r=void 0;2===n.length&&""===n[0]&&""===n[1]?(r=d(this,e[t]),Array.isArray(r)&&(r=r.join(""))):r=this._interpolate(e,t),r!==m&&this.element.setAttribute(this.name,r),this._previousValues=e}}}]),e}(),b=function(){function e(t,n,r){i(this,e),this.instance=t,this.startNode=n,this.endNode=r,this._previousValue=void 0}return r(e,[{key:"setValue",value:function(e){if((e=d(this,e))!==m)if(_(e)){if(e===this._previousValue)return;this._setText(e)}else e instanceof a?this._setTemplateResult(e):Array.isArray(e)||e[Symbol.iterator]?this._setIterable(e):e instanceof Node?this._setNode(e):void 0!==e.then?this._setPromise(e):this._setText(e)}},{key:"_insert",value:function(e){this.endNode.parentNode.insertBefore(e,this.endNode)}},{key:"_setNode",value:function(e){this._previousValue!==e&&(this.clear(),this._insert(e),this._previousValue=e)}},{key:"_setText",value:function(e){var t=this.startNode.nextSibling;e=void 0===e?"":e,t===this.endNode.previousSibling&&t.nodeType===Node.TEXT_NODE?t.textContent=e:this._setNode(document.createTextNode(e)),this._previousValue=e}},{key:"_setTemplateResult",value:function(e){var t=this.instance._getTemplate(e),n=void 0;this._previousValue&&this._previousValue.template===t?n=this._previousValue:(n=new N(t,this.instance._partCallback,this.instance._getTemplate),this._setNode(n._clone()),this._previousValue=n),n.update(e.values)}},{key:"_setIterable",value:function(t){Array.isArray(this._previousValue)||(this.clear(),this._previousValue=[]);var n=this._previousValue,r=0,i=!0,o=!1,a=void 0;try{for(var s,l=t[Symbol.iterator]();!(i=(s=l.next()).done);i=!0){var u=s.value,c=n[r];if(void 0===c){var h=this.startNode;if(r>0)h=n[r-1].endNode=document.createTextNode(""),this._insert(h);c=new e(this.instance,h,this.endNode),n.push(c)}c.setValue(u),r++}}catch(e){o=!0,a=e}finally{try{!i&&l.return&&l.return()}finally{if(o)throw a}}if(0===r)this.clear(),this._previousValue=void 0;else if(r<n.length){var f=n[r-1];n.length=r,this.clear(f.endNode.previousSibling),f.endNode=this.endNode}}},{key:"_setPromise",value:function(e){var t=this;this._previousValue=e,e.then(function(n){t._previousValue===e&&t.setValue(n)})}},{key:"clear",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.startNode;w(this.startNode.parentNode,e.nextSibling,this.endNode)}}]),e}(),x=function(e,t,n){if("attribute"===t.type)return new g(e,n,t.name,t.strings);if("node"===t.type)return new b(e,n,n.nextSibling);throw new Error("Unknown part type "+t.type)},N=function(){function e(t,n,r){i(this,e),this._parts=[],this.template=t,this._partCallback=n,this._getTemplate=r}return r(e,[{key:"update",value:function(e){var t=0,n=!0,r=!1,i=void 0;try{for(var o,a=this._parts[Symbol.iterator]();!(n=(o=a.next()).done);n=!0){var s=o.value;void 0===s.size?(s.setValue(e[t]),t++):(s.setValue(e,t),t+=s.size)}}catch(e){r=!0,i=e}finally{try{!n&&a.return&&a.return()}finally{if(r)throw i}}}},{key:"_clone",value:function(){var e=document.importNode(this.template.element.content,!0),t=this.template.parts;if(t.length>0)for(var n=document.createTreeWalker(e,133,null,!1),r=-1,i=0;i<t.length;i++){for(var o=t[i];r<o.index;)r++,n.nextNode();this._parts.push(this._partCallback(this,o,n.currentNode))}return e}}]),e}(),T=function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=t;i!==n;){var o=i.nextSibling;e.insertBefore(i,r),i=o}},w=function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=t;r!==n;){var i=r.nextSibling;e.removeChild(r),r=i}};e.templateCaches=o,e.html=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return new a(e,n,"html")},e.svg=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return new s(e,n,"svg")},e.TemplateResult=a,e.SVGTemplateResult=s,e.defaultTemplateFactory=l,e.render=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:l,r=n(e),i=t.__templateInstance;if(void 0===i||i.template!==r||i._partCallback!==e.partCallback){i=new N(r,e.partCallback,n),t.__templateInstance=i;var o=i._clone();i.update(e.values),w(t,t.firstChild),t.appendChild(o)}else i.update(e.values)},e.TemplatePart=p,e.Template=v,e.getValue=d,e.directive=function(e){return e.__litDirective=!0,e},e.directiveValue=m,e.AttributePart=g,e.NodePart=b,e.defaultPartCallback=x,e.TemplateInstance=N,e.reparentNodes=T,e.removeNodes=w,Object.defineProperty(e,"__esModule",{value:!0})});
\ No newline at end of file
diff --git a/src/docs/js/libs/prism.js b/src/docs/js/libs/prism.js
new file mode 100644
index 0000000..1756bcc
--- /dev/null
+++ b/src/docs/js/libs/prism.js
@@ -0,0 +1,14 @@
+/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript+json+markdown+scss+typescript&plugins=line-highlight+line-numbers+toolbar+copy-to-clipboard */
+var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\blang(?:uage)?-([\w-]+)\b/i,t=0,n=_self.Prism={manual:_self.Prism&&_self.Prism.manual,disableWorkerMessageHandler:_self.Prism&&_self.Prism.disableWorkerMessageHandler,util:{encode:function(e){return e instanceof r?new r(e.type,n.util.encode(e.content),e.alias):"Array"===n.util.type(e)?e.map(n.util.encode):e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function(e,t){var r=n.util.type(e);switch(t=t||{},r){case"Object":if(t[n.util.objId(e)])return t[n.util.objId(e)];var a={};t[n.util.objId(e)]=a;for(var l in e)e.hasOwnProperty(l)&&(a[l]=n.util.clone(e[l],t));return a;case"Array":if(t[n.util.objId(e)])return t[n.util.objId(e)];var a=[];return t[n.util.objId(e)]=a,e.forEach(function(e,r){a[r]=n.util.clone(e,t)}),a}return e}},languages:{extend:function(e,t){var r=n.util.clone(n.languages[e]);for(var a in t)r[a]=t[a];return r},insertBefore:function(e,t,r,a){a=a||n.languages;var l=a[e];if(2==arguments.length){r=arguments[1];for(var i in r)r.hasOwnProperty(i)&&(l[i]=r[i]);return l}var o={};for(var s in l)if(l.hasOwnProperty(s)){if(s==t)for(var i in r)r.hasOwnProperty(i)&&(o[i]=r[i]);o[s]=l[s]}return n.languages.DFS(n.languages,function(t,n){n===a[e]&&t!=e&&(this[t]=o)}),a[e]=o},DFS:function(e,t,r,a){a=a||{};for(var l in e)e.hasOwnProperty(l)&&(t.call(e,l,e[l],r||l),"Object"!==n.util.type(e[l])||a[n.util.objId(e[l])]?"Array"!==n.util.type(e[l])||a[n.util.objId(e[l])]||(a[n.util.objId(e[l])]=!0,n.languages.DFS(e[l],t,l,a)):(a[n.util.objId(e[l])]=!0,n.languages.DFS(e[l],t,null,a)))}},plugins:{},highlightAll:function(e,t){n.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,r){var a={callback:r,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};n.hooks.run("before-highlightall",a);for(var l,i=a.elements||e.querySelectorAll(a.selector),o=0;l=i[o++];)n.highlightElement(l,t===!0,a.callback)},highlightElement:function(t,r,a){for(var l,i,o=t;o&&!e.test(o.className);)o=o.parentNode;o&&(l=(o.className.match(e)||[,""])[1].toLowerCase(),i=n.languages[l]),t.className=t.className.replace(e,"").replace(/\s+/g," ")+" language-"+l,t.parentNode&&(o=t.parentNode,/pre/i.test(o.nodeName)&&(o.className=o.className.replace(e,"").replace(/\s+/g," ")+" language-"+l));var s=t.textContent,u={element:t,language:l,grammar:i,code:s};if(n.hooks.run("before-sanity-check",u),!u.code||!u.grammar)return u.code&&(n.hooks.run("before-highlight",u),u.element.textContent=u.code,n.hooks.run("after-highlight",u)),n.hooks.run("complete",u),void 0;if(n.hooks.run("before-highlight",u),r&&_self.Worker){var g=new Worker(n.filename);g.onmessage=function(e){u.highlightedCode=e.data,n.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,a&&a.call(u.element),n.hooks.run("after-highlight",u),n.hooks.run("complete",u)},g.postMessage(JSON.stringify({language:u.language,code:u.code,immediateClose:!0}))}else u.highlightedCode=n.highlight(u.code,u.grammar,u.language),n.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,a&&a.call(t),n.hooks.run("after-highlight",u),n.hooks.run("complete",u)},highlight:function(e,t,a){var l={code:e,grammar:t,language:a};return n.hooks.run("before-tokenize",l),l.tokens=n.tokenize(l.code,l.grammar),n.hooks.run("after-tokenize",l),r.stringify(n.util.encode(l.tokens),l.language)},matchGrammar:function(e,t,r,a,l,i,o){var s=n.Token;for(var u in r)if(r.hasOwnProperty(u)&&r[u]){if(u==o)return;var g=r[u];g="Array"===n.util.type(g)?g:[g];for(var c=0;c<g.length;++c){var h=g[c],f=h.inside,d=!!h.lookbehind,m=!!h.greedy,p=0,y=h.alias;if(m&&!h.pattern.global){var v=h.pattern.toString().match(/[imuy]*$/)[0];h.pattern=RegExp(h.pattern.source,v+"g")}h=h.pattern||h;for(var b=a,k=l;b<t.length;k+=t[b].length,++b){var w=t[b];if(t.length>e.length)return;if(!(w instanceof s)){if(m&&b!=t.length-1){h.lastIndex=k;var _=h.exec(e);if(!_)break;for(var j=_.index+(d?_[1].length:0),P=_.index+_[0].length,A=b,x=k,O=t.length;O>A&&(P>x||!t[A].type&&!t[A-1].greedy);++A)x+=t[A].length,j>=x&&(++b,k=x);if(t[b]instanceof s)continue;I=A-b,w=e.slice(k,x),_.index-=k}else{h.lastIndex=0;var _=h.exec(w),I=1}if(_){d&&(p=_[1]?_[1].length:0);var j=_.index+p,_=_[0].slice(p),P=j+_.length,N=w.slice(0,j),S=w.slice(P),C=[b,I];N&&(++b,k+=N.length,C.push(N));var E=new s(u,f?n.tokenize(_,f):_,y,_,m);if(C.push(E),S&&C.push(S),Array.prototype.splice.apply(t,C),1!=I&&n.matchGrammar(e,t,r,b,k,!0,u),i)break}else if(i)break}}}}},tokenize:function(e,t){var r=[e],a=t.rest;if(a){for(var l in a)t[l]=a[l];delete t.rest}return n.matchGrammar(e,r,t,0,0,!1),r},hooks:{all:{},add:function(e,t){var r=n.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){var r=n.hooks.all[e];if(r&&r.length)for(var a,l=0;a=r[l++];)a(t)}}},r=n.Token=function(e,t,n,r,a){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length,this.greedy=!!a};if(r.stringify=function(e,t,a){if("string"==typeof e)return e;if("Array"===n.util.type(e))return e.map(function(n){return r.stringify(n,t,e)}).join("");var l={type:e.type,content:r.stringify(e.content,t,a),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:a};if(e.alias){var i="Array"===n.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(l.classes,i)}n.hooks.run("wrap",l);var o=Object.keys(l.attributes).map(function(e){return e+'="'+(l.attributes[e]||"").replace(/"/g,"&quot;")+'"'}).join(" ");return"<"+l.tag+' class="'+l.classes.join(" ")+'"'+(o?" "+o:"")+">"+l.content+"</"+l.tag+">"},!_self.document)return _self.addEventListener?(n.disableWorkerMessageHandler||_self.addEventListener("message",function(e){var t=JSON.parse(e.data),r=t.language,a=t.code,l=t.immediateClose;_self.postMessage(n.highlight(a,n.languages[r],r)),l&&_self.close()},!1),_self.Prism):_self.Prism;var a=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return a&&(n.filename=a.src,n.manual||a.hasAttribute("data-manual")||("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(n.highlightAll):window.setTimeout(n.highlightAll,16):document.addEventListener("DOMContentLoaded",n.highlightAll))),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism);
+Prism.languages.markup={comment:/<!--[\s\S]*?-->/,prolog:/<\?[\s\S]+?\?>/,doctype:/<!DOCTYPE[\s\S]+?>/i,cdata:/<!\[CDATA\[[\s\S]*?]]>/i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&amp;/,"&"))}),Prism.languages.xml=Prism.languages.markup,Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup;
+Prism.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^{}\s][^{};]*?(?=\s*\{)/,string:{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.languages.css,Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/(<style[\s\S]*?>)[\s\S]*?(?=<\/style>)/i,lookbehind:!0,inside:Prism.languages.css,alias:"language-css",greedy:!0}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:Prism.languages.css}},alias:"language-css"}},Prism.languages.markup.tag));
+Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(?:true|false)\b/,"function":/[a-z0-9_]+(?=\()/i,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/};
+Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,"function":/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^\/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,alias:"function"},constant:/\b[A-Z][A-Z\d_]*\b/}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\${[^}]+}/,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}}}),Prism.languages.javascript["template-string"].inside.interpolation.inside.rest=Prism.languages.javascript,Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/(<script[\s\S]*?>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:Prism.languages.javascript,alias:"language-javascript",greedy:!0}}),Prism.languages.js=Prism.languages.javascript;
+Prism.languages.json={property:/"(?:\\.|[^\\"\r\n])*"(?=\s*:)/i,string:{pattern:/"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,greedy:!0},number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,punctuation:/[{}[\]);,]/,operator:/:/g,"boolean":/\b(?:true|false)\b/i,"null":/\bnull\b/i},Prism.languages.jsonp=Prism.languages.json;
+Prism.languages.markdown=Prism.languages.extend("markup",{}),Prism.languages.insertBefore("markdown","prolog",{blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},code:[{pattern:/^(?: {4}|\t).+/m,alias:"keyword"},{pattern:/``.+?``|`[^`\n]+`/,alias:"keyword"}],title:[{pattern:/\w+.*(?:\r?\n|\r)(?:==+|--+)/,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#+.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:/(^|[^\\])(\*\*|__)(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,lookbehind:!0,inside:{punctuation:/^\*\*|^__|\*\*$|__$/}},italic:{pattern:/(^|[^\\])([*_])(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,lookbehind:!0,inside:{punctuation:/^[*_]|[*_]$/}},url:{pattern:/!?\[[^\]]+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[[^\]\n]*\])/,inside:{variable:{pattern:/(!?\[)[^\]]+(?=\]$)/,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\])*"(?=\)$)/}}}}),Prism.languages.markdown.bold.inside.url=Prism.languages.markdown.url,Prism.languages.markdown.italic.inside.url=Prism.languages.markdown.url,Prism.languages.markdown.bold.inside.italic=Prism.languages.markdown.italic,Prism.languages.markdown.italic.inside.bold=Prism.languages.markdown.bold;
+Prism.languages.typescript=Prism.languages.extend("javascript",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield|module|declare|constructor|namespace|abstract|require|type)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console)\b/}),Prism.languages.ts=Prism.languages.typescript;
+Prism.languages.scss=Prism.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-]+(?:\([^()]+\)|[^(])*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)*url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()]|&|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}]+[:{][^}]+))/m,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),Prism.languages.insertBefore("scss","atrule",{keyword:[/@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i,{pattern:/( +)(?:from|through)(?= )/,lookbehind:!0}]}),Prism.languages.scss.property={pattern:/(?:[\w-]|\$[-\w]+|#\{\$[-\w]+\})+(?=\s*:)/i,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}},Prism.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),Prism.languages.insertBefore("scss","function",{placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},"boolean":/\b(?:true|false)\b/,"null":/\bnull\b/,operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,lookbehind:!0}}),Prism.languages.scss.atrule.inside.rest=Prism.languages.scss;
+!function(){function e(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function t(e,t){return t=" "+t+" ",(" "+e.className+" ").replace(/[\n\t]/g," ").indexOf(t)>-1}function n(e,n,i){n="string"==typeof n?n:e.getAttribute("data-line");for(var o,l=n.replace(/\s+/g,"").split(","),a=+e.getAttribute("data-line-offset")||0,s=r()?parseInt:parseFloat,d=s(getComputedStyle(e).lineHeight),u=t(e,"line-numbers"),c=0;o=l[c++];){var p=o.split("-"),m=+p[0],f=+p[1]||m,h=e.querySelector('.line-highlight[data-range="'+o+'"]')||document.createElement("div");if(h.setAttribute("aria-hidden","true"),h.setAttribute("data-range",o),h.className=(i||"")+" line-highlight",u&&Prism.plugins.lineNumbers){var g=Prism.plugins.lineNumbers.getLine(e,m),y=Prism.plugins.lineNumbers.getLine(e,f);g&&(h.style.top=g.offsetTop+"px"),y&&(h.style.height=y.offsetTop-g.offsetTop+y.offsetHeight+"px")}else h.setAttribute("data-start",m),f>m&&h.setAttribute("data-end",f),h.style.top=(m-a-1)*d+"px",h.textContent=new Array(f-m+2).join(" \n");u?e.appendChild(h):(e.querySelector("code")||e).appendChild(h)}}function i(){var t=location.hash.slice(1);e(".temporary.line-highlight").forEach(function(e){e.parentNode.removeChild(e)});var i=(t.match(/\.([\d,-]+)$/)||[,""])[1];if(i&&!document.getElementById(t)){var r=t.slice(0,t.lastIndexOf(".")),o=document.getElementById(r);o&&(o.hasAttribute("data-line")||o.setAttribute("data-line",""),n(o,i,"temporary "),document.querySelector(".temporary.line-highlight").scrollIntoView())}}if("undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector){var r=function(){var e;return function(){if("undefined"==typeof e){var t=document.createElement("div");t.style.fontSize="13px",t.style.lineHeight="1.5",t.style.padding=0,t.style.border=0,t.innerHTML="&nbsp;<br />&nbsp;",document.body.appendChild(t),e=38===t.offsetHeight,document.body.removeChild(t)}return e}}(),o=0;Prism.hooks.add("before-sanity-check",function(t){var n=t.element.parentNode,i=n&&n.getAttribute("data-line");if(n&&i&&/pre/i.test(n.nodeName)){var r=0;e(".line-highlight",n).forEach(function(e){r+=e.textContent.length,e.parentNode.removeChild(e)}),r&&/^( \n)+$/.test(t.code.slice(-r))&&(t.code=t.code.slice(0,-r))}}),Prism.hooks.add("complete",function l(e){var r=e.element.parentNode,a=r&&r.getAttribute("data-line");if(r&&a&&/pre/i.test(r.nodeName)){clearTimeout(o);var s=Prism.plugins.lineNumbers,d=e.plugins&&e.plugins.lineNumbers;t(r,"line-numbers")&&s&&!d?Prism.hooks.add("line-numbers",l):(n(r,a),o=setTimeout(i,1))}}),window.addEventListener("hashchange",i),window.addEventListener("resize",function(){var e=document.querySelectorAll("pre[data-line]");Array.prototype.forEach.call(e,function(e){n(e)})})}}();
+!function(){if("undefined"!=typeof self&&self.Prism&&self.document){var e="line-numbers",t=/\n(?!$)/g,n=function(e){var n=r(e),s=n["white-space"];if("pre-wrap"===s||"pre-line"===s){var l=e.querySelector("code"),i=e.querySelector(".line-numbers-rows"),a=e.querySelector(".line-numbers-sizer"),o=l.textContent.split(t);a||(a=document.createElement("span"),a.className="line-numbers-sizer",l.appendChild(a)),a.style.display="block",o.forEach(function(e,t){a.textContent=e||"\n";var n=a.getBoundingClientRect().height;i.children[t].style.height=n+"px"}),a.textContent="",a.style.display="none"}},r=function(e){return e?window.getComputedStyle?getComputedStyle(e):e.currentStyle||null:null};window.addEventListener("resize",function(){Array.prototype.forEach.call(document.querySelectorAll("pre."+e),n)}),Prism.hooks.add("complete",function(e){if(e.code){var r=e.element.parentNode,s=/\s*\bline-numbers\b\s*/;if(r&&/pre/i.test(r.nodeName)&&(s.test(r.className)||s.test(e.element.className))&&!e.element.querySelector(".line-numbers-rows")){s.test(e.element.className)&&(e.element.className=e.element.className.replace(s," ")),s.test(r.className)||(r.className+=" line-numbers");var l,i=e.code.match(t),a=i?i.length+1:1,o=new Array(a+1);o=o.join("<span></span>"),l=document.createElement("span"),l.setAttribute("aria-hidden","true"),l.className="line-numbers-rows",l.innerHTML=o,r.hasAttribute("data-start")&&(r.style.counterReset="linenumber "+(parseInt(r.getAttribute("data-start"),10)-1)),e.element.appendChild(l),n(r),Prism.hooks.run("line-numbers",e)}}}),Prism.hooks.add("line-numbers",function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}),Prism.plugins.lineNumbers={getLine:function(t,n){if("PRE"===t.tagName&&t.classList.contains(e)){var r=t.querySelector(".line-numbers-rows"),s=parseInt(t.getAttribute("data-start"),10)||1,l=s+(r.children.length-1);s>n&&(n=s),n>l&&(n=l);var i=n-s;return r.children[i]}}}}}();
+!function(){if("undefined"!=typeof self&&self.Prism&&self.document){var t=[],e={},n=function(){};Prism.plugins.toolbar={};var a=Prism.plugins.toolbar.registerButton=function(n,a){var o;o="function"==typeof a?a:function(t){var e;return"function"==typeof a.onClick?(e=document.createElement("button"),e.type="button",e.addEventListener("click",function(){a.onClick.call(this,t)})):"string"==typeof a.url?(e=document.createElement("a"),e.href=a.url):e=document.createElement("span"),e.textContent=a.text,e},t.push(e[n]=o)},o=Prism.plugins.toolbar.hook=function(a){var o=a.element.parentNode;if(o&&/pre/i.test(o.nodeName)&&!o.parentNode.classList.contains("code-toolbar")){var r=document.createElement("div");r.classList.add("code-toolbar"),o.parentNode.insertBefore(r,o),r.appendChild(o);var i=document.createElement("div");i.classList.add("toolbar"),document.body.hasAttribute("data-toolbar-order")&&(t=document.body.getAttribute("data-toolbar-order").split(",").map(function(t){return e[t]||n})),t.forEach(function(t){var e=t(a);if(e){var n=document.createElement("div");n.classList.add("toolbar-item"),n.appendChild(e),i.appendChild(n)}}),r.appendChild(i)}};a("label",function(t){var e=t.element.parentNode;if(e&&/pre/i.test(e.nodeName)&&e.hasAttribute("data-label")){var n,a,o=e.getAttribute("data-label");try{a=document.querySelector("template#"+o)}catch(r){}return a?n=a.content:(e.hasAttribute("data-url")?(n=document.createElement("a"),n.href=e.getAttribute("data-url")):n=document.createElement("span"),n.textContent=o),n}}),Prism.hooks.add("complete",o)}}();
+!function(){if("undefined"!=typeof self&&self.Prism&&self.document){if(!Prism.plugins.toolbar)return console.warn("Copy to Clipboard plugin loaded before Toolbar plugin."),void 0;var o=window.ClipboardJS||void 0;o||"function"!=typeof require||(o=require("clipboard"));var e=[];if(!o){var t=document.createElement("script"),n=document.querySelector("head");t.onload=function(){if(o=window.ClipboardJS)for(;e.length;)e.pop()()},t.src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js",n.appendChild(t)}Prism.plugins.toolbar.registerButton("copy-to-clipboard",function(t){function n(){var e=new o(i,{text:function(){return t.code}});e.on("success",function(){i.textContent="Copied!",r()}),e.on("error",function(){i.textContent="Press Ctrl+C to copy",r()})}function r(){setTimeout(function(){i.textContent="Copy"},5e3)}var i=document.createElement("a");return i.textContent="Copy",o?n():e.push(n),i})}}();
\ No newline at end of file
diff --git a/src/docs/js/libs/promise.min.js b/src/docs/js/libs/promise.min.js
new file mode 100644
index 0000000..59d3fee
--- /dev/null
+++ b/src/docs/js/libs/promise.min.js
@@ -0,0 +1,6 @@
+/*
+ *  Copyright 2012-2013 (c) Pierre Duquesne <stackp@online.fr>
+ *  Licensed under the New BSD License.
+ *  https://github.com/stackp/promisejs
+ */
+(function(a){function b(){this._callbacks=[];}b.prototype.then=function(a,c){var d;if(this._isdone)d=a.apply(c,this.result);else{d=new b();this._callbacks.push(function(){var b=a.apply(c,arguments);if(b&&typeof b.then==='function')b.then(d.done,d);});}return d;};b.prototype.done=function(){this.result=arguments;this._isdone=true;for(var a=0;a<this._callbacks.length;a++)this._callbacks[a].apply(null,arguments);this._callbacks=[];};function c(a){var c=new b();var d=[];if(!a||!a.length){c.done(d);return c;}var e=0;var f=a.length;function g(a){return function(){e+=1;d[a]=Array.prototype.slice.call(arguments);if(e===f)c.done(d);};}for(var h=0;h<f;h++)a[h].then(g(h));return c;}function d(a,c){var e=new b();if(a.length===0)e.done.apply(e,c);else a[0].apply(null,c).then(function(){a.splice(0,1);d(a,arguments).then(function(){e.done.apply(e,arguments);});});return e;}function e(a){var b="";if(typeof a==="string")b=a;else{var c=encodeURIComponent;var d=[];for(var e in a)if(a.hasOwnProperty(e))d.push(c(e)+'='+c(a[e]));b=d.join('&');}return b;}function f(){var a;if(window.XMLHttpRequest)a=new XMLHttpRequest();else if(window.ActiveXObject)try{a=new ActiveXObject("Msxml2.XMLHTTP");}catch(b){a=new ActiveXObject("Microsoft.XMLHTTP");}return a;}function g(a,c,d,g){var h=new b();var j,k;d=d||{};g=g||{};try{j=f();}catch(l){h.done(i.ENOXHR,"");return h;}k=e(d);if(a==='GET'&&k){c+='?'+k;k=null;}j.open(a,c);var m='application/x-www-form-urlencoded';for(var n in g)if(g.hasOwnProperty(n))if(n.toLowerCase()==='content-type')m=g[n];else j.setRequestHeader(n,g[n]);j.setRequestHeader('Content-type',m);function o(){j.abort();h.done(i.ETIMEOUT,"",j);}var p=i.ajaxTimeout;if(p)var q=setTimeout(o,p);j.onreadystatechange=function(){if(p)clearTimeout(q);if(j.readyState===4){var a=(!j.status||(j.status<200||j.status>=300)&&j.status!==304);h.done(a,j.responseText,j);}};j.send(k);return h;}function h(a){return function(b,c,d){return g(a,b,c,d);};}var i={Promise:b,join:c,chain:d,ajax:g,get:h('GET'),post:h('POST'),put:h('PUT'),del:h('DELETE'),ENOXHR:1,ETIMEOUT:2,ajaxTimeout:0};if(typeof define==='function'&&define.amd)define(function(){return i;});else a.promise=i;})(this);
\ No newline at end of file
diff --git a/src/docs/js/libs/svg-pan-zoom.min.js b/src/docs/js/libs/svg-pan-zoom.min.js
new file mode 100644
index 0000000..6156a99
--- /dev/null
+++ b/src/docs/js/libs/svg-pan-zoom.min.js
@@ -0,0 +1,3 @@
+// svg-pan-zoom v3.5.2
+// https://github.com/ariutta/svg-pan-zoom
+!function t(e,o,n){function i(r,a){if(!o[r]){if(!e[r]){var l="function"==typeof require&&require;if(!a&&l)return l(r,!0);if(s)return s(r,!0);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}var h=o[r]={exports:{}};e[r][0].call(h.exports,function(t){var o=e[r][1][t];return i(o?o:t)},h,h.exports,t,e,o,n)}return o[r].exports}for(var s="function"==typeof require&&require,r=0;r<n.length;r++)i(n[r]);return i}({1:[function(t,e,o){var n=t("./svg-pan-zoom.js");!function(t,o){"function"==typeof define&&define.amd?define("svg-pan-zoom",function(){return n}):"undefined"!=typeof e&&e.exports&&(e.exports=n,t.svgPanZoom=n)}(window,document)},{"./svg-pan-zoom.js":4}],2:[function(t,e,o){var n=t("./svg-utilities");e.exports={enable:function(t){var e=t.svg.querySelector("defs");e||(e=document.createElementNS(n.svgNS,"defs"),t.svg.appendChild(e));var o=e.querySelector("style#svg-pan-zoom-controls-styles");if(!o){var i=document.createElementNS(n.svgNS,"style");i.setAttribute("id","svg-pan-zoom-controls-styles"),i.setAttribute("type","text/css"),i.textContent=".svg-pan-zoom-control { cursor: pointer; fill: black; fill-opacity: 0.333; } .svg-pan-zoom-control:hover { fill-opacity: 0.8; } .svg-pan-zoom-control-background { fill: white; fill-opacity: 0.5; } .svg-pan-zoom-control-background { fill-opacity: 0.8; }",e.appendChild(i)}var s=document.createElementNS(n.svgNS,"g");s.setAttribute("id","svg-pan-zoom-controls"),s.setAttribute("transform","translate("+(t.width-70)+" "+(t.height-76)+") scale(0.75)"),s.setAttribute("class","svg-pan-zoom-control"),s.appendChild(this._createZoomIn(t)),s.appendChild(this._createZoomReset(t)),s.appendChild(this._createZoomOut(t)),t.svg.appendChild(s),t.controlIcons=s},_createZoomIn:function(t){var e=document.createElementNS(n.svgNS,"g");e.setAttribute("id","svg-pan-zoom-zoom-in"),e.setAttribute("transform","translate(30.5 5) scale(0.015)"),e.setAttribute("class","svg-pan-zoom-control"),e.addEventListener("click",function(){t.getPublicInstance().zoomIn()},!1),e.addEventListener("touchstart",function(){t.getPublicInstance().zoomIn()},!1);var o=document.createElementNS(n.svgNS,"rect");o.setAttribute("x","0"),o.setAttribute("y","0"),o.setAttribute("width","1500"),o.setAttribute("height","1400"),o.setAttribute("class","svg-pan-zoom-control-background"),e.appendChild(o);var i=document.createElementNS(n.svgNS,"path");return i.setAttribute("d","M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z"),i.setAttribute("class","svg-pan-zoom-control-element"),e.appendChild(i),e},_createZoomReset:function(t){var e=document.createElementNS(n.svgNS,"g");e.setAttribute("id","svg-pan-zoom-reset-pan-zoom"),e.setAttribute("transform","translate(5 35) scale(0.4)"),e.setAttribute("class","svg-pan-zoom-control"),e.addEventListener("click",function(){t.getPublicInstance().reset()},!1),e.addEventListener("touchstart",function(){t.getPublicInstance().reset()},!1);var o=document.createElementNS(n.svgNS,"rect");o.setAttribute("x","2"),o.setAttribute("y","2"),o.setAttribute("width","182"),o.setAttribute("height","58"),o.setAttribute("class","svg-pan-zoom-control-background"),e.appendChild(o);var i=document.createElementNS(n.svgNS,"path");i.setAttribute("d","M33.051,20.632c-0.742-0.406-1.854-0.609-3.338-0.609h-7.969v9.281h7.769c1.543,0,2.701-0.188,3.473-0.562c1.365-0.656,2.048-1.953,2.048-3.891C35.032,22.757,34.372,21.351,33.051,20.632z"),i.setAttribute("class","svg-pan-zoom-control-element"),e.appendChild(i);var s=document.createElementNS(n.svgNS,"path");return s.setAttribute("d","M170.231,0.5H15.847C7.102,0.5,0.5,5.708,0.5,11.84v38.861C0.5,56.833,7.102,61.5,15.847,61.5h154.384c8.745,0,15.269-4.667,15.269-10.798V11.84C185.5,5.708,178.976,0.5,170.231,0.5z M42.837,48.569h-7.969c-0.219-0.766-0.375-1.383-0.469-1.852c-0.188-0.969-0.289-1.961-0.305-2.977l-0.047-3.211c-0.03-2.203-0.41-3.672-1.142-4.406c-0.732-0.734-2.103-1.102-4.113-1.102h-7.05v13.547h-7.055V14.022h16.524c2.361,0.047,4.178,0.344,5.45,0.891c1.272,0.547,2.351,1.352,3.234,2.414c0.731,0.875,1.31,1.844,1.737,2.906s0.64,2.273,0.64,3.633c0,1.641-0.414,3.254-1.242,4.84s-2.195,2.707-4.102,3.363c1.594,0.641,2.723,1.551,3.387,2.73s0.996,2.98,0.996,5.402v2.32c0,1.578,0.063,2.648,0.19,3.211c0.19,0.891,0.635,1.547,1.333,1.969V48.569z M75.579,48.569h-26.18V14.022h25.336v6.117H56.454v7.336h16.781v6H56.454v8.883h19.125V48.569z M104.497,46.331c-2.44,2.086-5.887,3.129-10.34,3.129c-4.548,0-8.125-1.027-10.731-3.082s-3.909-4.879-3.909-8.473h6.891c0.224,1.578,0.662,2.758,1.316,3.539c1.196,1.422,3.246,2.133,6.15,2.133c1.739,0,3.151-0.188,4.236-0.562c2.058-0.719,3.087-2.055,3.087-4.008c0-1.141-0.504-2.023-1.512-2.648c-1.008-0.609-2.607-1.148-4.796-1.617l-3.74-0.82c-3.676-0.812-6.201-1.695-7.576-2.648c-2.328-1.594-3.492-4.086-3.492-7.477c0-3.094,1.139-5.664,3.417-7.711s5.623-3.07,10.036-3.07c3.685,0,6.829,0.965,9.431,2.895c2.602,1.93,3.966,4.73,4.093,8.402h-6.938c-0.128-2.078-1.057-3.555-2.787-4.43c-1.154-0.578-2.587-0.867-4.301-0.867c-1.907,0-3.428,0.375-4.565,1.125c-1.138,0.75-1.706,1.797-1.706,3.141c0,1.234,0.561,2.156,1.682,2.766c0.721,0.406,2.25,0.883,4.589,1.43l6.063,1.43c2.657,0.625,4.648,1.461,5.975,2.508c2.059,1.625,3.089,3.977,3.089,7.055C108.157,41.624,106.937,44.245,104.497,46.331z M139.61,48.569h-26.18V14.022h25.336v6.117h-18.281v7.336h16.781v6h-16.781v8.883h19.125V48.569z M170.337,20.14h-10.336v28.43h-7.266V20.14h-10.383v-6.117h27.984V20.14z"),s.setAttribute("class","svg-pan-zoom-control-element"),e.appendChild(s),e},_createZoomOut:function(t){var e=document.createElementNS(n.svgNS,"g");e.setAttribute("id","svg-pan-zoom-zoom-out"),e.setAttribute("transform","translate(30.5 70) scale(0.015)"),e.setAttribute("class","svg-pan-zoom-control"),e.addEventListener("click",function(){t.getPublicInstance().zoomOut()},!1),e.addEventListener("touchstart",function(){t.getPublicInstance().zoomOut()},!1);var o=document.createElementNS(n.svgNS,"rect");o.setAttribute("x","0"),o.setAttribute("y","0"),o.setAttribute("width","1500"),o.setAttribute("height","1400"),o.setAttribute("class","svg-pan-zoom-control-background"),e.appendChild(o);var i=document.createElementNS(n.svgNS,"path");return i.setAttribute("d","M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z"),i.setAttribute("class","svg-pan-zoom-control-element"),e.appendChild(i),e},disable:function(t){t.controlIcons&&(t.controlIcons.parentNode.removeChild(t.controlIcons),t.controlIcons=null)}}},{"./svg-utilities":5}],3:[function(t,e,o){var n=t("./svg-utilities"),i=t("./utilities"),s=function(t,e){this.init(t,e)};s.prototype.init=function(t,e){this.viewport=t,this.options=e,this.originalState={zoom:1,x:0,y:0},this.activeState={zoom:1,x:0,y:0},this.updateCTMCached=i.proxy(this.updateCTM,this),this.requestAnimationFrame=i.createRequestAnimationFrame(this.options.refreshRate),this.viewBox={x:0,y:0,width:0,height:0},this.cacheViewBox();var o=this.processCTM();this.setCTM(o),this.updateCTM()},s.prototype.cacheViewBox=function(){var t=this.options.svg.getAttribute("viewBox");if(t){var e=t.split(/[\s\,]/).filter(function(t){return t}).map(parseFloat);this.viewBox.x=e[0],this.viewBox.y=e[1],this.viewBox.width=e[2],this.viewBox.height=e[3];var o=Math.min(this.options.width/this.viewBox.width,this.options.height/this.viewBox.height);this.activeState.zoom=o,this.activeState.x=(this.options.width-this.viewBox.width*o)/2,this.activeState.y=(this.options.height-this.viewBox.height*o)/2,this.updateCTMOnNextFrame(),this.options.svg.removeAttribute("viewBox")}else this.simpleViewBoxCache()},s.prototype.simpleViewBoxCache=function(){var t=this.viewport.getBBox();this.viewBox.x=t.x,this.viewBox.y=t.y,this.viewBox.width=t.width,this.viewBox.height=t.height},s.prototype.getViewBox=function(){return i.extend({},this.viewBox)},s.prototype.processCTM=function(){var t=this.getCTM();if(this.options.fit||this.options.contain){var e;e=this.options.fit?Math.min(this.options.width/this.viewBox.width,this.options.height/this.viewBox.height):Math.max(this.options.width/this.viewBox.width,this.options.height/this.viewBox.height),t.a=e,t.d=e,t.e=-this.viewBox.x*e,t.f=-this.viewBox.y*e}if(this.options.center){var o=.5*(this.options.width-(this.viewBox.width+2*this.viewBox.x)*t.a),n=.5*(this.options.height-(this.viewBox.height+2*this.viewBox.y)*t.a);t.e=o,t.f=n}return this.originalState.zoom=t.a,this.originalState.x=t.e,this.originalState.y=t.f,t},s.prototype.getOriginalState=function(){return i.extend({},this.originalState)},s.prototype.getState=function(){return i.extend({},this.activeState)},s.prototype.getZoom=function(){return this.activeState.zoom},s.prototype.getRelativeZoom=function(){return this.activeState.zoom/this.originalState.zoom},s.prototype.computeRelativeZoom=function(t){return t/this.originalState.zoom},s.prototype.getPan=function(){return{x:this.activeState.x,y:this.activeState.y}},s.prototype.getCTM=function(){var t=this.options.svg.createSVGMatrix();return t.a=this.activeState.zoom,t.b=0,t.c=0,t.d=this.activeState.zoom,t.e=this.activeState.x,t.f=this.activeState.y,t},s.prototype.setCTM=function(t){var e=this.isZoomDifferent(t),o=this.isPanDifferent(t);if(e||o){if(e&&(this.options.beforeZoom(this.getRelativeZoom(),this.computeRelativeZoom(t.a))===!1?(t.a=t.d=this.activeState.zoom,e=!1):(this.updateCache(t),this.options.onZoom(this.getRelativeZoom()))),o){var n=this.options.beforePan(this.getPan(),{x:t.e,y:t.f}),s=!1,r=!1;n===!1?(t.e=this.getPan().x,t.f=this.getPan().y,s=r=!0):i.isObject(n)&&(n.x===!1?(t.e=this.getPan().x,s=!0):i.isNumber(n.x)&&(t.e=n.x),n.y===!1?(t.f=this.getPan().y,r=!0):i.isNumber(n.y)&&(t.f=n.y)),s&&r||!this.isPanDifferent(t)?o=!1:(this.updateCache(t),this.options.onPan(this.getPan()))}(e||o)&&this.updateCTMOnNextFrame()}},s.prototype.isZoomDifferent=function(t){return this.activeState.zoom!==t.a},s.prototype.isPanDifferent=function(t){return this.activeState.x!==t.e||this.activeState.y!==t.f},s.prototype.updateCache=function(t){this.activeState.zoom=t.a,this.activeState.x=t.e,this.activeState.y=t.f},s.prototype.pendingUpdate=!1,s.prototype.updateCTMOnNextFrame=function(){this.pendingUpdate||(this.pendingUpdate=!0,this.requestAnimationFrame.call(window,this.updateCTMCached))},s.prototype.updateCTM=function(){var t=this.getCTM();n.setCTM(this.viewport,t,this.defs),this.pendingUpdate=!1,this.options.onUpdatedCTM&&this.options.onUpdatedCTM(t)},e.exports=function(t,e){return new s(t,e)}},{"./svg-utilities":5,"./utilities":7}],4:[function(t,e,o){var n=t("./uniwheel"),i=t("./control-icons"),s=t("./utilities"),r=t("./svg-utilities"),a=t("./shadow-viewport"),l=function(t,e){this.init(t,e)},u={viewportSelector:".svg-pan-zoom_viewport",panEnabled:!0,controlIconsEnabled:!1,zoomEnabled:!0,dblClickZoomEnabled:!0,mouseWheelZoomEnabled:!0,preventMouseEventsDefault:!0,zoomScaleSensitivity:.1,minZoom:.5,maxZoom:10,fit:!0,contain:!1,center:!0,refreshRate:"auto",beforeZoom:null,onZoom:null,beforePan:null,onPan:null,customEventsHandler:null,eventsListenerElement:null,onUpdatedCTM:null};l.prototype.init=function(t,e){var o=this;this.svg=t,this.defs=t.querySelector("defs"),r.setupSvgAttributes(this.svg),this.options=s.extend(s.extend({},u),e),this.state="none";var n=r.getBoundingClientRectNormalized(t);this.width=n.width,this.height=n.height,this.viewport=a(r.getOrCreateViewport(this.svg,this.options.viewportSelector),{svg:this.svg,width:this.width,height:this.height,fit:this.options.fit,contain:this.options.contain,center:this.options.center,refreshRate:this.options.refreshRate,beforeZoom:function(t,e){if(o.viewport&&o.options.beforeZoom)return o.options.beforeZoom(t,e)},onZoom:function(t){if(o.viewport&&o.options.onZoom)return o.options.onZoom(t)},beforePan:function(t,e){if(o.viewport&&o.options.beforePan)return o.options.beforePan(t,e)},onPan:function(t){if(o.viewport&&o.options.onPan)return o.options.onPan(t)},onUpdatedCTM:function(t){if(o.viewport&&o.options.onUpdatedCTM)return o.options.onUpdatedCTM(t)}});var l=this.getPublicInstance();l.setBeforeZoom(this.options.beforeZoom),l.setOnZoom(this.options.onZoom),l.setBeforePan(this.options.beforePan),l.setOnPan(this.options.onPan),l.setOnUpdatedCTM(this.options.onUpdatedCTM),this.options.controlIconsEnabled&&i.enable(this),this.lastMouseWheelEventTime=Date.now(),this.setupHandlers()},l.prototype.setupHandlers=function(){var t=this,e=null;if(this.eventListeners={mousedown:function(o){var n=t.handleMouseDown(o,e);return e=o,n},touchstart:function(o){var n=t.handleMouseDown(o,e);return e=o,n},mouseup:function(e){return t.handleMouseUp(e)},touchend:function(e){return t.handleMouseUp(e)},mousemove:function(e){return t.handleMouseMove(e)},touchmove:function(e){return t.handleMouseMove(e)},mouseleave:function(e){return t.handleMouseUp(e)},touchleave:function(e){return t.handleMouseUp(e)},touchcancel:function(e){return t.handleMouseUp(e)}},null!=this.options.customEventsHandler){this.options.customEventsHandler.init({svgElement:this.svg,eventsListenerElement:this.options.eventsListenerElement,instance:this.getPublicInstance()});var o=this.options.customEventsHandler.haltEventListeners;if(o&&o.length)for(var n=o.length-1;n>=0;n--)this.eventListeners.hasOwnProperty(o[n])&&delete this.eventListeners[o[n]]}for(var i in this.eventListeners)(this.options.eventsListenerElement||this.svg).addEventListener(i,this.eventListeners[i],!1);this.options.mouseWheelZoomEnabled&&(this.options.mouseWheelZoomEnabled=!1,this.enableMouseWheelZoom())},l.prototype.enableMouseWheelZoom=function(){if(!this.options.mouseWheelZoomEnabled){var t=this;this.wheelListener=function(e){return t.handleMouseWheel(e)},n.on(this.options.eventsListenerElement||this.svg,this.wheelListener,!1),this.options.mouseWheelZoomEnabled=!0}},l.prototype.disableMouseWheelZoom=function(){this.options.mouseWheelZoomEnabled&&(n.off(this.options.eventsListenerElement||this.svg,this.wheelListener,!1),this.options.mouseWheelZoomEnabled=!1)},l.prototype.handleMouseWheel=function(t){if(this.options.zoomEnabled&&"none"===this.state){this.options.preventMouseEventsDefault&&(t.preventDefault?t.preventDefault():t.returnValue=!1);var e=t.deltaY||1,o=Date.now()-this.lastMouseWheelEventTime,n=3+Math.max(0,30-o);this.lastMouseWheelEventTime=Date.now(),"deltaMode"in t&&0===t.deltaMode&&t.wheelDelta&&(e=0===t.deltaY?0:Math.abs(t.wheelDelta)/t.deltaY),e=-.3<e&&e<.3?e:(e>0?1:-1)*Math.log(Math.abs(e)+10)/n;var i=this.svg.getScreenCTM().inverse(),s=r.getEventPoint(t,this.svg).matrixTransform(i),a=Math.pow(1+this.options.zoomScaleSensitivity,-1*e);this.zoomAtPoint(a,s)}},l.prototype.zoomAtPoint=function(t,e,o){var n=this.viewport.getOriginalState();o?(t=Math.max(this.options.minZoom*n.zoom,Math.min(this.options.maxZoom*n.zoom,t)),t/=this.getZoom()):this.getZoom()*t<this.options.minZoom*n.zoom?t=this.options.minZoom*n.zoom/this.getZoom():this.getZoom()*t>this.options.maxZoom*n.zoom&&(t=this.options.maxZoom*n.zoom/this.getZoom());var i=this.viewport.getCTM(),s=e.matrixTransform(i.inverse()),r=this.svg.createSVGMatrix().translate(s.x,s.y).scale(t).translate(-s.x,-s.y),a=i.multiply(r);a.a!==i.a&&this.viewport.setCTM(a)},l.prototype.zoom=function(t,e){this.zoomAtPoint(t,r.getSvgCenterPoint(this.svg,this.width,this.height),e)},l.prototype.publicZoom=function(t,e){e&&(t=this.computeFromRelativeZoom(t)),this.zoom(t,e)},l.prototype.publicZoomAtPoint=function(t,e,o){if(o&&(t=this.computeFromRelativeZoom(t)),"SVGPoint"!==s.getType(e)){if(!("x"in e&&"y"in e))throw new Error("Given point is invalid");e=r.createSVGPoint(this.svg,e.x,e.y)}this.zoomAtPoint(t,e,o)},l.prototype.getZoom=function(){return this.viewport.getZoom()},l.prototype.getRelativeZoom=function(){return this.viewport.getRelativeZoom()},l.prototype.computeFromRelativeZoom=function(t){return t*this.viewport.getOriginalState().zoom},l.prototype.resetZoom=function(){var t=this.viewport.getOriginalState();this.zoom(t.zoom,!0)},l.prototype.resetPan=function(){this.pan(this.viewport.getOriginalState())},l.prototype.reset=function(){this.resetZoom(),this.resetPan()},l.prototype.handleDblClick=function(t){if(this.options.preventMouseEventsDefault&&(t.preventDefault?t.preventDefault():t.returnValue=!1),this.options.controlIconsEnabled){var e=t.target.getAttribute("class")||"";if(e.indexOf("svg-pan-zoom-control")>-1)return!1}var o;o=t.shiftKey?1/(2*(1+this.options.zoomScaleSensitivity)):2*(1+this.options.zoomScaleSensitivity);var n=r.getEventPoint(t,this.svg).matrixTransform(this.svg.getScreenCTM().inverse());this.zoomAtPoint(o,n)},l.prototype.handleMouseDown=function(t,e){this.options.preventMouseEventsDefault&&(t.preventDefault?t.preventDefault():t.returnValue=!1),s.mouseAndTouchNormalize(t,this.svg),this.options.dblClickZoomEnabled&&s.isDblClick(t,e)?this.handleDblClick(t):(this.state="pan",this.firstEventCTM=this.viewport.getCTM(),this.stateOrigin=r.getEventPoint(t,this.svg).matrixTransform(this.firstEventCTM.inverse()))},l.prototype.handleMouseMove=function(t){if(this.options.preventMouseEventsDefault&&(t.preventDefault?t.preventDefault():t.returnValue=!1),"pan"===this.state&&this.options.panEnabled){var e=r.getEventPoint(t,this.svg).matrixTransform(this.firstEventCTM.inverse()),o=this.firstEventCTM.translate(e.x-this.stateOrigin.x,e.y-this.stateOrigin.y);this.viewport.setCTM(o)}},l.prototype.handleMouseUp=function(t){this.options.preventMouseEventsDefault&&(t.preventDefault?t.preventDefault():t.returnValue=!1),"pan"===this.state&&(this.state="none")},l.prototype.fit=function(){var t=this.viewport.getViewBox(),e=Math.min(this.width/t.width,this.height/t.height);this.zoom(e,!0)},l.prototype.contain=function(){var t=this.viewport.getViewBox(),e=Math.max(this.width/t.width,this.height/t.height);this.zoom(e,!0)},l.prototype.center=function(){var t=this.viewport.getViewBox(),e=.5*(this.width-(t.width+2*t.x)*this.getZoom()),o=.5*(this.height-(t.height+2*t.y)*this.getZoom());this.getPublicInstance().pan({x:e,y:o})},l.prototype.updateBBox=function(){this.viewport.simpleViewBoxCache()},l.prototype.pan=function(t){var e=this.viewport.getCTM();e.e=t.x,e.f=t.y,this.viewport.setCTM(e)},l.prototype.panBy=function(t){var e=this.viewport.getCTM();e.e+=t.x,e.f+=t.y,this.viewport.setCTM(e)},l.prototype.getPan=function(){var t=this.viewport.getState();return{x:t.x,y:t.y}},l.prototype.resize=function(){var t=r.getBoundingClientRectNormalized(this.svg);this.width=t.width,this.height=t.height;var e=this.viewport;e.options.width=this.width,e.options.height=this.height,e.processCTM(),this.options.controlIconsEnabled&&(this.getPublicInstance().disableControlIcons(),this.getPublicInstance().enableControlIcons())},l.prototype.destroy=function(){var t=this;this.beforeZoom=null,this.onZoom=null,this.beforePan=null,this.onPan=null,this.onUpdatedCTM=null,null!=this.options.customEventsHandler&&this.options.customEventsHandler.destroy({svgElement:this.svg,eventsListenerElement:this.options.eventsListenerElement,instance:this.getPublicInstance()});for(var e in this.eventListeners)(this.options.eventsListenerElement||this.svg).removeEventListener(e,this.eventListeners[e],!1);this.disableMouseWheelZoom(),this.getPublicInstance().disableControlIcons(),this.reset(),h=h.filter(function(e){return e.svg!==t.svg}),delete this.options,delete this.viewport,delete this.publicInstance,delete this.pi,this.getPublicInstance=function(){return null}},l.prototype.getPublicInstance=function(){var t=this;return this.publicInstance||(this.publicInstance=this.pi={enablePan:function(){return t.options.panEnabled=!0,t.pi},disablePan:function(){return t.options.panEnabled=!1,t.pi},isPanEnabled:function(){return!!t.options.panEnabled},pan:function(e){return t.pan(e),t.pi},panBy:function(e){return t.panBy(e),t.pi},getPan:function(){return t.getPan()},setBeforePan:function(e){return t.options.beforePan=null===e?null:s.proxy(e,t.publicInstance),t.pi},setOnPan:function(e){return t.options.onPan=null===e?null:s.proxy(e,t.publicInstance),t.pi},enableZoom:function(){return t.options.zoomEnabled=!0,t.pi},disableZoom:function(){return t.options.zoomEnabled=!1,t.pi},isZoomEnabled:function(){return!!t.options.zoomEnabled},enableControlIcons:function(){return t.options.controlIconsEnabled||(t.options.controlIconsEnabled=!0,i.enable(t)),t.pi},disableControlIcons:function(){return t.options.controlIconsEnabled&&(t.options.controlIconsEnabled=!1,i.disable(t)),t.pi},isControlIconsEnabled:function(){return!!t.options.controlIconsEnabled},enableDblClickZoom:function(){return t.options.dblClickZoomEnabled=!0,t.pi},disableDblClickZoom:function(){return t.options.dblClickZoomEnabled=!1,t.pi},isDblClickZoomEnabled:function(){return!!t.options.dblClickZoomEnabled},enableMouseWheelZoom:function(){return t.enableMouseWheelZoom(),t.pi},disableMouseWheelZoom:function(){return t.disableMouseWheelZoom(),t.pi},isMouseWheelZoomEnabled:function(){return!!t.options.mouseWheelZoomEnabled},setZoomScaleSensitivity:function(e){return t.options.zoomScaleSensitivity=e,t.pi},setMinZoom:function(e){return t.options.minZoom=e,t.pi},setMaxZoom:function(e){return t.options.maxZoom=e,t.pi},setBeforeZoom:function(e){return t.options.beforeZoom=null===e?null:s.proxy(e,t.publicInstance),t.pi},setOnZoom:function(e){return t.options.onZoom=null===e?null:s.proxy(e,t.publicInstance),t.pi},zoom:function(e){return t.publicZoom(e,!0),t.pi},zoomBy:function(e){return t.publicZoom(e,!1),t.pi},zoomAtPoint:function(e,o){return t.publicZoomAtPoint(e,o,!0),t.pi},zoomAtPointBy:function(e,o){return t.publicZoomAtPoint(e,o,!1),t.pi},zoomIn:function(){return this.zoomBy(1+t.options.zoomScaleSensitivity),t.pi},zoomOut:function(){return this.zoomBy(1/(1+t.options.zoomScaleSensitivity)),t.pi},getZoom:function(){return t.getRelativeZoom()},setOnUpdatedCTM:function(e){return t.options.onUpdatedCTM=null===e?null:s.proxy(e,t.publicInstance),t.pi},resetZoom:function(){return t.resetZoom(),t.pi},resetPan:function(){return t.resetPan(),t.pi},reset:function(){return t.reset(),t.pi},fit:function(){return t.fit(),t.pi},contain:function(){return t.contain(),t.pi},center:function(){return t.center(),t.pi},updateBBox:function(){return t.updateBBox(),t.pi},resize:function(){return t.resize(),t.pi},getSizes:function(){return{width:t.width,height:t.height,realZoom:t.getZoom(),viewBox:t.viewport.getViewBox()}},destroy:function(){return t.destroy(),t.pi}}),this.publicInstance};var h=[],c=function(t,e){var o=s.getSvg(t);if(null===o)return null;for(var n=h.length-1;n>=0;n--)if(h[n].svg===o)return h[n].instance.getPublicInstance();return h.push({svg:o,instance:new l(o,e)}),h[h.length-1].instance.getPublicInstance()};e.exports=c},{"./control-icons":2,"./shadow-viewport":3,"./svg-utilities":5,"./uniwheel":6,"./utilities":7}],5:[function(t,e,o){var n=t("./utilities"),i="unknown";document.documentMode&&(i="ie"),e.exports={svgNS:"http://www.w3.org/2000/svg",xmlNS:"http://www.w3.org/XML/1998/namespace",xmlnsNS:"http://www.w3.org/2000/xmlns/",xlinkNS:"http://www.w3.org/1999/xlink",evNS:"http://www.w3.org/2001/xml-events",getBoundingClientRectNormalized:function(t){if(t.clientWidth&&t.clientHeight)return{width:t.clientWidth,height:t.clientHeight};if(t.getBoundingClientRect())return t.getBoundingClientRect();throw new Error("Cannot get BoundingClientRect for SVG.")},getOrCreateViewport:function(t,e){var o=null;if(o=n.isElement(e)?e:t.querySelector(e),!o){var i=Array.prototype.slice.call(t.childNodes||t.children).filter(function(t){return"defs"!==t.nodeName&&"#text"!==t.nodeName});1===i.length&&"g"===i[0].nodeName&&null===i[0].getAttribute("transform")&&(o=i[0])}if(!o){var s="viewport-"+(new Date).toISOString().replace(/\D/g,"");o=document.createElementNS(this.svgNS,"g"),o.setAttribute("id",s);var r=t.childNodes||t.children;if(r&&r.length>0)for(var a=r.length;a>0;a--)"defs"!==r[r.length-a].nodeName&&o.appendChild(r[r.length-a]);t.appendChild(o)}var l=[];return o.getAttribute("class")&&(l=o.getAttribute("class").split(" ")),~l.indexOf("svg-pan-zoom_viewport")||(l.push("svg-pan-zoom_viewport"),o.setAttribute("class",l.join(" "))),o},setupSvgAttributes:function(t){if(t.setAttribute("xmlns",this.svgNS),t.setAttributeNS(this.xmlnsNS,"xmlns:xlink",this.xlinkNS),t.setAttributeNS(this.xmlnsNS,"xmlns:ev",this.evNS),null!==t.parentNode){var e=t.getAttribute("style")||"";e.toLowerCase().indexOf("overflow")===-1&&t.setAttribute("style","overflow: hidden; "+e)}},internetExplorerRedisplayInterval:300,refreshDefsGlobal:n.throttle(function(){for(var t=document.querySelectorAll("defs"),e=t.length,o=0;o<e;o++){var n=t[o];n.parentNode.insertBefore(n,n)}},this.internetExplorerRedisplayInterval),setCTM:function(t,e,o){var n=this,s="matrix("+e.a+","+e.b+","+e.c+","+e.d+","+e.e+","+e.f+")";t.setAttributeNS(null,"transform",s),"transform"in t.style?t.style.transform=s:"-ms-transform"in t.style?t.style["-ms-transform"]=s:"-webkit-transform"in t.style&&(t.style["-webkit-transform"]=s),"ie"===i&&o&&(o.parentNode.insertBefore(o,o),window.setTimeout(function(){n.refreshDefsGlobal()},n.internetExplorerRedisplayInterval))},getEventPoint:function(t,e){var o=e.createSVGPoint();return n.mouseAndTouchNormalize(t,e),o.x=t.clientX,o.y=t.clientY,o},getSvgCenterPoint:function(t,e,o){return this.createSVGPoint(t,e/2,o/2)},createSVGPoint:function(t,e,o){var n=t.createSVGPoint();return n.x=e,n.y=o,n}}},{"./utilities":7}],6:[function(t,e,o){e.exports=function(){function t(t,e,o){var n=function(t){!t&&(t=window.event);var o={originalEvent:t,target:t.target||t.srcElement,type:"wheel",deltaMode:"MozMousePixelScroll"==t.type?0:1,deltaX:0,delatZ:0,preventDefault:function(){t.preventDefault?t.preventDefault():t.returnValue=!1}};return"mousewheel"==u?(o.deltaY=-.025*t.wheelDelta,t.wheelDeltaX&&(o.deltaX=-.025*t.wheelDeltaX)):o.deltaY=t.detail,e(o)};return c.push({element:t,fn:n,capture:o}),n}function e(t,e){for(var o=0;o<c.length;o++)if(c[o].element===t&&c[o].capture===e)return c[o].fn;return function(){}}function o(t,e){for(var o=0;o<c.length;o++)if(c[o].element===t&&c[o].capture===e)return c.splice(o,1)}function n(e,o,n,i){var s;s="wheel"===u?n:t(e,n,i),e[a](h+o,s,i||!1)}function i(t,n,i,s){var r;r="wheel"===u?i:e(t,s),t[l](h+n,r,s||!1),o(t,s)}function s(t,e,o){n(t,u,e,o),"DOMMouseScroll"==u&&n(t,"MozMousePixelScroll",e,o)}function r(t,e,o){i(t,u,e,o),"DOMMouseScroll"==u&&i(t,"MozMousePixelScroll",e,o)}var a,l,u,h="",c=[];return window.addEventListener?(a="addEventListener",l="removeEventListener"):(a="attachEvent",l="detachEvent",h="on"),u="onwheel"in document.createElement("div")?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll",{on:s,off:r}}()},{}],7:[function(t,e,o){function n(t){return function(e){window.setTimeout(e,t)}}e.exports={extend:function(t,e){t=t||{};for(var o in e)this.isObject(e[o])?t[o]=this.extend(t[o],e[o]):t[o]=e[o];return t},isElement:function(t){return t instanceof HTMLElement||t instanceof SVGElement||t instanceof SVGSVGElement||t&&"object"==typeof t&&null!==t&&1===t.nodeType&&"string"==typeof t.nodeName},isObject:function(t){return"[object Object]"===Object.prototype.toString.call(t)},isNumber:function(t){return!isNaN(parseFloat(t))&&isFinite(t)},getSvg:function(t){var e,o;if(this.isElement(t))e=t;else{if(!("string"==typeof t||t instanceof String))throw new Error("Provided selector is not an HTML object nor String");if(e=document.querySelector(t),!e)throw new Error("Provided selector did not find any elements. Selector: "+t)}if("svg"===e.tagName.toLowerCase())o=e;else if("object"===e.tagName.toLowerCase())o=e.contentDocument.documentElement;else{if("embed"!==e.tagName.toLowerCase())throw"img"===e.tagName.toLowerCase()?new Error('Cannot script an SVG in an "img" element. Please use an "object" element or an in-line SVG.'):new Error("Cannot get SVG.");o=e.getSVGDocument().documentElement}return o},proxy:function(t,e){return function(){return t.apply(e,arguments)}},getType:function(t){return Object.prototype.toString.apply(t).replace(/^\[object\s/,"").replace(/\]$/,"")},mouseAndTouchNormalize:function(t,e){if(void 0===t.clientX||null===t.clientX)if(t.clientX=0,t.clientY=0,void 0!==t.touches&&t.touches.length){if(void 0!==t.touches[0].clientX)t.clientX=t.touches[0].clientX,t.clientY=t.touches[0].clientY;else if(void 0!==t.touches[0].pageX){var o=e.getBoundingClientRect();t.clientX=t.touches[0].pageX-o.left,t.clientY=t.touches[0].pageY-o.top}}else void 0!==t.originalEvent&&void 0!==t.originalEvent.clientX&&(t.clientX=t.originalEvent.clientX,t.clientY=t.originalEvent.clientY)},isDblClick:function(t,e){if(2===t.detail)return!0;if(void 0!==e&&null!==e){var o=t.timeStamp-e.timeStamp,n=Math.sqrt(Math.pow(t.clientX-e.clientX,2)+Math.pow(t.clientY-e.clientY,2));return o<250&&n<10}return!1},now:Date.now||function(){return(new Date).getTime()},throttle:function(t,e,o){var n,i,s,r=this,a=null,l=0;o||(o={});var u=function(){l=o.leading===!1?0:r.now(),a=null,s=t.apply(n,i),a||(n=i=null)};return function(){var h=r.now();l||o.leading!==!1||(l=h);var c=e-(h-l);return n=this,i=arguments,c<=0||c>e?(clearTimeout(a),a=null,l=h,s=t.apply(n,i),a||(n=i=null)):a||o.trailing===!1||(a=setTimeout(u,c)),s}},createRequestAnimationFrame:function(t){var e=null;return"auto"!==t&&t<60&&t>1&&(e=Math.floor(1e3/t)),null===e?window.requestAnimationFrame||n(33):n(e)}}},{}]},{},[1]);
diff --git a/src/docs/js/libs/tablesort.min.js b/src/docs/js/libs/tablesort.min.js
new file mode 100644
index 0000000..2931090
--- /dev/null
+++ b/src/docs/js/libs/tablesort.min.js
@@ -0,0 +1,5 @@
+/*!
+ * tablesort v5.0.2 (2017-11-12)
+ * http://tristen.ca/tablesort/demo/
+ * Copyright (c) 2017 ; Licensed MIT
+*/!function(){function a(b,c){if(!(this instanceof a))return new a(b,c);if(!b||"TABLE"!==b.tagName)throw new Error("Element must be a table");this.init(b,c||{})}var b=[],c=function(a){var b;return window.CustomEvent&&"function"==typeof window.CustomEvent?b=new CustomEvent(a):(b=document.createEvent("CustomEvent"),b.initCustomEvent(a,!1,!1,void 0)),b},d=function(a){return a.getAttribute("data-sort")||a.textContent||a.innerText||""},e=function(a,b){return a=a.trim().toLowerCase(),b=b.trim().toLowerCase(),a===b?0:a<b?1:-1},f=function(a,b){return function(c,d){var e=a(c.td,d.td);return 0===e?b?d.index-c.index:c.index-d.index:e}};a.extend=function(a,c,d){if("function"!=typeof c||"function"!=typeof d)throw new Error("Pattern and sort must be a function");b.push({name:a,pattern:c,sort:d})},a.prototype={init:function(a,b){var c,d,e,f,g=this;if(g.table=a,g.thead=!1,g.options=b,a.rows&&a.rows.length>0)if(a.tHead&&a.tHead.rows.length>0){for(e=0;e<a.tHead.rows.length;e++)if("thead"===a.tHead.rows[e].getAttribute("data-sort-method")){c=a.tHead.rows[e];break}c||(c=a.tHead.rows[a.tHead.rows.length-1]),g.thead=!0}else c=a.rows[0];if(c){var h=function(){g.current&&g.current!==this&&g.current.removeAttribute("aria-sort"),g.current=this,g.sortTable(this)};for(e=0;e<c.cells.length;e++)f=c.cells[e],f.setAttribute("role","columnheader"),"none"!==f.getAttribute("data-sort-method")&&(f.tabindex=0,f.addEventListener("click",h,!1),null!==f.getAttribute("data-sort-default")&&(d=f));d&&(g.current=d,g.sortTable(d))}},sortTable:function(a,g){var h=this,i=a.cellIndex,j=e,k="",l=[],m=h.thead?0:1,n=a.getAttribute("data-sort-method"),o=a.getAttribute("aria-sort");if(h.table.dispatchEvent(c("beforeSort")),g||(o="ascending"===o?"descending":"descending"===o?"ascending":h.options.descending?"descending":"ascending",a.setAttribute("aria-sort",o)),!(h.table.rows.length<2)){if(!n){for(;l.length<3&&m<h.table.tBodies[0].rows.length;)k=d(h.table.tBodies[0].rows[m].cells[i]),k=k.trim(),k.length>0&&l.push(k),m++;if(!l)return}for(m=0;m<b.length;m++)if(k=b[m],n){if(k.name===n){j=k.sort;break}}else if(l.every(k.pattern)){j=k.sort;break}for(h.col=i,m=0;m<h.table.tBodies.length;m++){var p,q=[],r={},s=0,t=0;if(!(h.table.tBodies[m].rows.length<2)){for(p=0;p<h.table.tBodies[m].rows.length;p++)k=h.table.tBodies[m].rows[p],"none"===k.getAttribute("data-sort-method")?r[s]=k:q.push({tr:k,td:d(k.cells[h.col]),index:s}),s++;for("descending"===o?q.sort(f(j,!0)):(q.sort(f(j,!1)),q.reverse()),p=0;p<s;p++)r[p]?(k=r[p],t++):k=q[p-t].tr,h.table.tBodies[m].appendChild(k)}}h.table.dispatchEvent(c("afterSort"))}},refresh:function(){void 0!==this.current&&this.sortTable(this.current,!0)}},"undefined"!=typeof module&&module.exports?module.exports=a:window.Tablesort=a}();
\ No newline at end of file
diff --git a/src/docs/js/libs/tablesort.number.min.js b/src/docs/js/libs/tablesort.number.min.js
new file mode 100644
index 0000000..c5e2540
--- /dev/null
+++ b/src/docs/js/libs/tablesort.number.min.js
@@ -0,0 +1,5 @@
+/*!
+ * tablesort v5.0.2 (2017-11-12)
+ * http://tristen.ca/tablesort/demo/
+ * Copyright (c) 2017 ; Licensed MIT
+*/!function(){var a=function(a){return a.replace(/[^\-?0-9.]/g,"")},b=function(a,b){return a=parseFloat(a),b=parseFloat(b),a=isNaN(a)?0:a,b=isNaN(b)?0:b,a-b};Tablesort.extend("number",function(a){return a.match(/^[-+]?[£\x24Û¢´€]?\d+\s*([,\.]\d{0,2})/)||a.match(/^[-+]?\d+\s*([,\.]\d{0,2})?[£\x24Û¢´€]/)||a.match(/^[-+]?(\d)*-?([,\.]){0,1}-?(\d)+([E,e][\-+][\d]+)?%?$/)},function(c,d){return c=a(c),d=a(d),b(c,d)})}();
\ No newline at end of file
diff --git a/src/docs/js/libs/vis.min.js b/src/docs/js/libs/vis.min.js
new file mode 100644
index 0000000..c5cce13
--- /dev/null
+++ b/src/docs/js/libs/vis.min.js
@@ -0,0 +1,46 @@
+/**
+ * vis.js
+ * https://github.com/almende/vis
+ *
+ * A dynamic, browser-based visualization library.
+ *
+ * @version 4.20.1-SNAPSHOT
+ * @date    2017-10-12
+ *
+ * @license
+ * Copyright (C) 2011-2017 Almende B.V, http://almende.com
+ *
+ * Vis.js is dual licensed under both
+ *
+ * * The Apache 2.0 License
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * and
+ *
+ * * The MIT License
+ *   http://opensource.org/licenses/MIT
+ *
+ * Vis.js may be distributed under either license.
+ */
+"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(o){if(i[o])return i[o].exports;var n=i[o]={i:o,l:!1,exports:{}};return t[o].call(n.exports,n,n.exports,e),n.l=!0,n.exports}var i={};return e.m=t,e.c=i,e.d=function(t,i,o){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,"a",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=123)}([function(t,e,i){e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,i){e.__esModule=!0;var o=i(169),n=function(t){return t&&t.__esModule?t:{default:t}}(o);e.default=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),(0,n.default)(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}()},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e,i,o){var n=!1;!0===o&&(n=null===e[i]&&void 0!==t[i]),n?delete t[i]:t[i]=e[i]}var s=i(77),r=o(s),a=i(29),h=o(a),d=i(8),l=o(d),u=i(6),c=o(u),p=i(9),f=i(157);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.recursiveDOMDelete=function(t){if(t)for(;!0===t.hasChildNodes();)e.recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},e.giveRange=function(t,e,i,o){if(e==t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){if(m.exec(t))return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return f.v4()},e.assignAllKeys=function(t,e){for(var i in t)t.hasOwnProperty(i)&&"object"!==(0,c.default)(t[i])&&(t[i]=e)},e.fillIfDefined=function(t,i){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];for(var s in t)void 0!==i[s]&&(null===i[s]||"object"!==(0,c.default)(i[s])?n(t,i,s,o):"object"===(0,c.default)(t[s])&&e.fillIfDefined(t[s],i[s],o))},e.extend=function(t,e){for(var i=1;i<arguments.length;i++){var o=arguments[i];for(var n in o)o.hasOwnProperty(n)&&(t[n]=o[n])}return t},e.selectiveExtend=function(t,e,i){if(!Array.isArray(t))throw new Error("Array with property names expected as first argument");for(var o=2;o<arguments.length;o++)for(var n=arguments[o],s=0;s<t.length;s++){var r=t[s];n&&n.hasOwnProperty(r)&&(e[r]=n[r])}return e},e.selectiveDeepExtend=function(t,i,o){var s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var r=0;r<t.length;r++){var a=t[r];if(o.hasOwnProperty(a))if(o[a]&&o[a].constructor===Object)void 0===i[a]&&(i[a]={}),i[a].constructor===Object?e.deepExtend(i[a],o[a],!1,s):n(i,o,a,s);else{if(Array.isArray(o[a]))throw new TypeError("Arrays are not supported by deepExtend");n(i,o,a,s)}}return i},e.selectiveNotDeepExtend=function(t,i,o){var s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var r in o)if(o.hasOwnProperty(r)&&-1===t.indexOf(r))if(o[r]&&o[r].constructor===Object)void 0===i[r]&&(i[r]={}),i[r].constructor===Object?e.deepExtend(i[r],o[r]):n(i,o,r,s);else if(Array.isArray(o[r])){i[r]=[];for(var a=0;a<o[r].length;a++)i[r].push(o[r][a])}else n(i,o,r,s);return i},e.deepExtend=function(t,i){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(var r in i)if(i.hasOwnProperty(r)||!0===o)if(i[r]&&i[r].constructor===Object)void 0===t[r]&&(t[r]={}),t[r].constructor===Object?e.deepExtend(t[r],i[r],o):n(t,i,r,s);else if(Array.isArray(i[r])){t[r]=[];for(var a=0;a<i[r].length;a++)t[r].push(i[r][a])}else n(t,i,r,s);return t},e.equalArray=function(t,e){if(t.length!=e.length)return!1;for(var i=0,o=t.length;i<o;i++)if(t[i]!=e[i])return!1;return!0},e.convert=function(t,i){var o;if(void 0!==t){if(null===t)return null;if(!i)return t;if("string"!=typeof i&&!(i instanceof String))throw new Error("Type must be a string");switch(i){case"boolean":case"Boolean":return Boolean(t);case"number":case"Number":return e.isString(t)&&!isNaN(Date.parse(t))?p(t).valueOf():Number(t.valueOf());case"string":case"String":return String(t);case"Date":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return new Date(t.valueOf());if(p.isMoment(t))return new Date(t.valueOf());if(e.isString(t))return o=m.exec(t),o?new Date(Number(o[1])):p(new Date(t)).toDate();throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"Moment":if(e.isNumber(t))return p(t);if(t instanceof Date)return p(t.valueOf());if(p.isMoment(t))return p(t);if(e.isString(t))return o=m.exec(t),p(o?Number(o[1]):t);throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"ISODate":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(p.isMoment(t))return t.toDate().toISOString();if(e.isString(t))return o=m.exec(t),o?new Date(Number(o[1])).toISOString():p(t).format();throw new Error("Cannot convert object of type "+e.getType(t)+" to type ISODate");case"ASPDate":if(e.isNumber(t))return"/Date("+t+")/";if(t instanceof Date)return"/Date("+t.valueOf()+")/";if(e.isString(t)){o=m.exec(t);return"/Date("+(o?new Date(Number(o[1])).valueOf():new Date(t).valueOf())+")/"}throw new Error("Cannot convert object of type "+e.getType(t)+" to type ASPDate");default:throw new Error('Unknown type "'+i+'"')}}};var m=/^\/?Date\((\-?\d+)/i;e.getType=function(t){var e=void 0===t?"undefined":(0,c.default)(t);return"object"==e?null===t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":Array.isArray(t)?"Array":t instanceof Date?"Date":"Object":"number"==e?"Number":"boolean"==e?"Boolean":"string"==e?"String":void 0===e?"undefined":e},e.copyAndExtendArray=function(t,e){for(var i=[],o=0;o<t.length;o++)i.push(t[o]);return i.push(e),i},e.copyArray=function(t){for(var e=[],i=0;i<t.length;i++)e.push(t[i]);return e},e.getAbsoluteLeft=function(t){return t.getBoundingClientRect().left},e.getAbsoluteRight=function(t){return t.getBoundingClientRect().right},e.getAbsoluteTop=function(t){return t.getBoundingClientRect().top},e.addClassName=function(t,e){var i=t.className.split(" "),o=e.split(" ");i=i.concat(o.filter(function(t){return i.indexOf(t)<0})),t.className=i.join(" ")},e.removeClassName=function(t,e){var i=t.className.split(" "),o=e.split(" ");i=i.filter(function(t){return o.indexOf(t)<0}),t.className=i.join(" ")},e.forEach=function(t,e){var i,o;if(Array.isArray(t))for(i=0,o=t.length;i<o;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},e.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.updateProperty=function(t,e,i){return t[e]!==i&&(t[e]=i,!0)},e.throttle=function(t){var e=!1;return function(){e||(e=!0,requestAnimationFrame(function(){e=!1,t()}))}},e.addEventListener=function(t,e,i,o){t.addEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){var o;return-1!=t.indexOf("rgba")?t:-1!=t.indexOf("rgb")?(o=t.substr(t.indexOf("(")+1).replace(")","").split(","),"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"):(o=e.hexToRGB(t),null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")")},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(!0===e.isString(t)){if(!0===e.isValidRGB(t)){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(!0===e.isValidHex(t)){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t;return{h:60*((t==o?3:i==o?1:5)-s/(n-o))/360,s:(n-o)/n,v:n}};var v={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return(0,l.default)(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=v.split(t.style.cssText),n=v.split(i),s=e.extend(o,n);t.style.cssText=v.join(s)},e.removeCssText=function(t,e){var i=v.split(t.style.cssText),o=v.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=v.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)},e.isValidRGB=function(t){return t=t.replace(" ",""),/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t)},e.isValidRGBA=function(t){return t=t.replace(" ",""),/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t)},e.selectiveBridgeObject=function(t,i){if(null!==i&&"object"===(void 0===i?"undefined":(0,c.default)(i))){for(var o=(0,h.default)(i),n=0;n<t.length;n++)i.hasOwnProperty(t[n])&&"object"==(0,c.default)(i[t[n]])&&(o[t[n]]=e.bridgeObject(i[t[n]]));return o}return null},e.bridgeObject=function(t){if(null!==t&&"object"===(void 0===t?"undefined":(0,c.default)(t))){var i=(0,h.default)(t);if(t instanceof Element)i=t;else{i=(0,h.default)(t);for(var o in t)t.hasOwnProperty(o)&&"object"==(0,c.default)(t[o])&&(i[o]=e.bridgeObject(t[o]))}return i}return null},e.insertSort=function(t,e){for(var i=0;i<t.length;i++){for(var o=t[i],n=i;n>0&&e(o,t[n-1])<0;n--)t[n]=t[n-1];t[n]=o}return t},e.mergeOptions=function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=function(t){return null!==t&&void 0!==t},s=function(t){return null!==t&&"object"===(void 0===t?"undefined":(0,c.default)(t))};if(!s(t))throw new Error("Parameter mergeTarget must be an object");if(!s(e))throw new Error("Parameter options must be an object");if(!n(i))throw new Error("Parameter option must have a value");if(!s(o))throw new Error("Parameter globalOptions must be an object");var r=e[i],a=s(o)&&!function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}(o),d=a?o[i]:void 0,l=d?d.enabled:void 0;if(void 0!==r){if("boolean"==typeof r)return s(t[i])||(t[i]={}),void(t[i].enabled=r);if(null===r&&!s(t[i])){if(!n(d))return;t[i]=(0,h.default)(d)}if(s(r)){var u=!0;void 0!==r.enabled?u=r.enabled:void 0!==l&&(u=d.enabled),function(t,e,i){s(t[i])||(t[i]={});var o=e[i],n=t[i];for(var r in o)o.hasOwnProperty(r)&&(n[r]=o[r])}(t,e,i),t[i].enabled=u}}},e.binarySearchCustom=function(t,e,i,o){for(var n=0,s=0,r=t.length-1;s<=r&&n<1e4;){var a=Math.floor((s+r)/2),h=t[a],d=void 0===o?h[i]:h[i][o],l=e(d);if(0==l)return a;-1==l?s=a+1:r=a-1,n++}return-1},e.binarySearchValue=function(t,e,i,o,n){var s,r,a,h,d=0,l=0,u=t.length-1;for(n=void 0!=n?n:function(t,e){return t==e?0:t<e?-1:1};l<=u&&d<1e4;){if(h=Math.floor(.5*(u+l)),s=t[Math.max(0,h-1)][i],r=t[h][i],a=t[Math.min(t.length-1,h+1)][i],0==n(r,e))return h;if(n(s,e)<0&&n(r,e)>0)return"before"==o?Math.max(0,h-1):h;if(n(r,e)<0&&n(a,e)>0)return"before"==o?h:Math.min(t.length-1,h+1);n(r,e)<0?l=h+1:u=h-1,d++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:(4-2*t)*t-1},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow="scroll";var o=t.offsetWidth;return i==o&&(o=e.clientWidth),document.body.removeChild(e),i-o},e.topMost=function(t,e){var i=void 0;Array.isArray(e)||(e=[e]);var o=!0,n=!1,s=void 0;try{for(var a,h=(0,r.default)(t);!(o=(a=h.next()).done);o=!0){var d=a.value;if(d){i=d[e[0]];for(var l=1;l<e.length;l++)i&&(i=i[e[l]]);if(void 0!==i)break}}}catch(t){n=!0,s=t}finally{try{!o&&h.return&&h.return()}finally{if(n)throw s}}return i}},function(t,e,i){t.exports={default:i(194),__esModule:!0}},function(t,e,i){e.__esModule=!0;var o=i(6),n=function(t){return t&&t.__esModule?t:{default:t}}(o);e.default=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":(0,n.default)(e))&&"function"!=typeof e?t:e}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var n=i(196),s=o(n),r=i(29),a=o(r),h=i(6),d=o(h);e.default=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":(0,d.default)(e)));t.prototype=(0,a.default)(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(s.default?(0,s.default)(t,e):t.__proto__=e)}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var n=i(142),s=o(n),r=i(144),a=o(r),h="function"==typeof a.default&&"symbol"==typeof s.default?function(t){return typeof t}:function(t){return t&&"function"==typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":typeof t};e.default="function"==typeof a.default&&"symbol"===h(s.default)?function(t){return void 0===t?"undefined":h(t)}:function(t){return t&&"function"==typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":void 0===t?"undefined":h(t)}},function(t,e){var i=t.exports={version:"2.5.1"};"number"==typeof __e&&(__e=i)},function(t,e,i){t.exports={default:i(140),__esModule:!0}},function(t,e,i){t.exports="undefined"!=typeof window&&window.moment||i(154)},function(t,e,i){function o(){var t=function(){};return{on:t,off:t,destroy:t,emit:t,get:function(e){return{set:t}}}}if("undefined"!=typeof window){var n=i(175),s=window.Hammer||i(176);t.exports=n(s,{preventDefault:"mouse"})}else t.exports=function(){return o()}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=(0,l.default)(this._options.type),o=0,n=i.length;o<n;o++){var s=i[o],r=this._options.type[s];this._type[s]="Date"==r||"ISODate"==r||"ASPDate"==r?"Date":r}this._subscribers={},t&&this.add(t),this.setOptions(e)}var s=i(19),r=o(s),a=i(6),h=o(a),d=i(8),l=o(d),u=i(2),c=i(43);n.prototype.setOptions=function(t){t&&void 0!==t.queue&&(!1===t.queue?this._queue&&(this._queue.destroy(),delete this._queue):(this._queue||(this._queue=c.extend(this,{replace:["add","update","remove"]})),"object"===(0,h.default)(t.queue)&&this._queue.setOptions(t.queue)))},n.prototype.on=function(t,e){var i=this._subscribers[t];i||(i=[],this._subscribers[t]=i),i.push({callback:e})},n.prototype.off=function(t,e){var i=this._subscribers[t];i&&(this._subscribers[t]=i.filter(function(t){return t.callback!=e}))},n.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var o=[];t in this._subscribers&&(o=o.concat(this._subscribers[t])),"*"in this._subscribers&&(o=o.concat(this._subscribers["*"]));for(var n=0,s=o.length;n<s;n++){var r=o[n];r.callback&&r.callback(t,e,i||null)}},n.prototype.add=function(t,e){var i,o=[],n=this;if(Array.isArray(t))for(var s=0,r=t.length;s<r;s++)i=n._addItem(t[s]),o.push(i);else{if(!t||"object"!==(void 0===t?"undefined":(0,h.default)(t)))throw new Error("Unknown dataType");i=n._addItem(t),o.push(i)}return o.length&&this._trigger("add",{items:o},e),o},n.prototype.update=function(t,e){var i=[],o=[],n=[],s=[],r=this,a=r._fieldId,d=function(t){var e=t[a];if(r._data[e]){var h=u.extend({},r._data[e]);e=r._updateItem(t),o.push(e),s.push(t),n.push(h)}else e=r._addItem(t),i.push(e)};if(Array.isArray(t))for(var l=0,c=t.length;l<c;l++)t[l]&&"object"===(0,h.default)(t[l])?d(t[l]):console.warn("Ignoring input item, which is not an object at index "+l);else{if(!t||"object"!==(void 0===t?"undefined":(0,h.default)(t)))throw new Error("Unknown dataType");d(t)}if(i.length&&this._trigger("add",{items:i},e),o.length){var p={items:o,oldData:n,data:s};this._trigger("update",p,e)}return i.concat(o)},n.prototype.get=function(t){var e,i,o,n=this,s=u.getType(arguments[0]);"String"==s||"Number"==s?(e=arguments[0],o=arguments[1]):"Array"==s?(i=arguments[0],o=arguments[1]):o=arguments[0];var r;if(o&&o.returnType){r=-1==["Array","Object"].indexOf(o.returnType)?"Array":o.returnType}else r="Array";var a,h,d,c,p,f=o&&o.type||this._options.type,m=o&&o.filter,v=[];if(void 0!=e)(a=n._getItem(e,f))&&m&&!m(a)&&(a=null);else if(void 0!=i)for(c=0,p=i.length;c<p;c++)a=n._getItem(i[c],f),m&&!m(a)||v.push(a);else for(h=(0,l.default)(this._data),c=0,p=h.length;c<p;c++)d=h[c],a=n._getItem(d,f),m&&!m(a)||v.push(a);if(o&&o.order&&void 0==e&&this._sort(v,o.order),o&&o.fields){var g=o.fields;if(void 0!=e)a=this._filterFields(a,g);else for(c=0,p=v.length;c<p;c++)v[c]=this._filterFields(v[c],g)}if("Object"==r){var y,b={};for(c=0,p=v.length;c<p;c++)y=v[c],b[y.id]=y;return b}return void 0!=e?a:v},n.prototype.getIds=function(t){var e,i,o,n,s,r=this._data,a=t&&t.filter,h=t&&t.order,d=t&&t.type||this._options.type,u=(0,l.default)(r),c=[];if(a)if(h){for(s=[],e=0,i=u.length;e<i;e++)o=u[e],n=this._getItem(o,d),a(n)&&s.push(n);for(this._sort(s,h),e=0,i=s.length;e<i;e++)c.push(s[e][this._fieldId])}else for(e=0,i=u.length;e<i;e++)o=u[e],n=this._getItem(o,d),a(n)&&c.push(n[this._fieldId]);else if(h){for(s=[],e=0,i=u.length;e<i;e++)o=u[e],s.push(r[o]);for(this._sort(s,h),e=0,i=s.length;e<i;e++)c.push(s[e][this._fieldId])}else for(e=0,i=u.length;e<i;e++)o=u[e],n=r[o],c.push(n[this._fieldId]);return c},n.prototype.getDataSet=function(){return this},n.prototype.forEach=function(t,e){var i,o,n,s,r=e&&e.filter,a=e&&e.type||this._options.type,h=this._data,d=(0,l.default)(h);if(e&&e.order){var u=this.get(e);for(i=0,o=u.length;i<o;i++)n=u[i],s=n[this._fieldId],t(n,s)}else for(i=0,o=d.length;i<o;i++)s=d[i],n=this._getItem(s,a),r&&!r(n)||t(n,s)},n.prototype.map=function(t,e){var i,o,n,s,r=e&&e.filter,a=e&&e.type||this._options.type,h=[],d=this._data,u=(0,l.default)(d);for(i=0,o=u.length;i<o;i++)n=u[i],s=this._getItem(n,a),r&&!r(s)||h.push(t(s,n));return e&&e.order&&this._sort(h,e.order),h},n.prototype._filterFields=function(t,e){if(!t)return t;var i,o,n={},s=(0,l.default)(t),r=s.length;if(Array.isArray(e))for(i=0;i<r;i++)o=s[i],-1!=e.indexOf(o)&&(n[o]=t[o]);else for(i=0;i<r;i++)o=s[i],e.hasOwnProperty(o)&&(n[e[o]]=t[o]);return n},n.prototype._sort=function(t,e){if(u.isString(e)){var i=e;t.sort(function(t,e){var o=t[i],n=e[i];return o>n?1:o<n?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},n.prototype.remove=function(t,e){var i,o,n,s,r=[],a=[],h=[];for(h=Array.isArray(t)?t:[t],i=0,o=h.length;i<o;i++)(s=this._remove(h[i]))&&void 0!=(n=s[this._fieldId])&&(r.push(n),a.push(s));return r.length&&this._trigger("remove",{items:r,oldData:a},e),r},n.prototype._remove=function(t){var e,i;return u.isNumber(t)||u.isString(t)?i=t:t&&"object"===(void 0===t?"undefined":(0,h.default)(t))&&(i=t[this._fieldId]),void 0!==i&&this._data[i]?(e=this._data[i],delete this._data[i],this.length--,e):null},n.prototype.clear=function(t){var e,i,o=(0,l.default)(this._data),n=[];for(e=0,i=o.length;e<i;e++)n.push(this._data[o[e]]);return this._data={},this.length=0,this._trigger("remove",{items:o,oldData:n},t),o},n.prototype.max=function(t){var e,i,o=this._data,n=(0,l.default)(o),s=null,r=null;for(e=0,i=n.length;e<i;e++){var a=n[e],h=o[a],d=h[t];null!=d&&(!s||d>r)&&(s=h,r=d)}return s},n.prototype.min=function(t){var e,i,o=this._data,n=(0,l.default)(o),s=null,r=null;for(e=0,i=n.length;e<i;e++){var a=n[e],h=o[a],d=h[t];null!=d&&(!s||d<r)&&(s=h,r=d)}return s},n.prototype.distinct=function(t){var e,i,o,n=this._data,s=(0,l.default)(n),r=[],a=this._options.type&&this._options.type[t]||null,h=0;for(e=0,o=s.length;e<o;e++){var d=s[e],c=n[d],p=c[t],f=!1;for(i=0;i<h;i++)if(r[i]==p){f=!0;break}f||void 0===p||(r[h]=p,h++)}if(a)for(e=0,o=r.length;e<o;e++)r[e]=u.convert(r[e],a);return r},n.prototype._addItem=function(t){var e=t[this._fieldId];if(void 0!=e){if(this._data[e])throw new Error("Cannot add item: item with id "+e+" already exists")}else e=u.randomUUID(),t[this._fieldId]=e;var i,o,n={},s=(0,l.default)(t);for(i=0,o=s.length;i<o;i++){var r=s[i],a=this._type[r];n[r]=u.convert(t[r],a)}return this._data[e]=n,this.length++,e},n.prototype._getItem=function(t,e){var i,o,n,s,r=this._data[t];if(!r)return null;var a={},h=(0,l.default)(r);if(e)for(n=0,s=h.length;n<s;n++)i=h[n],o=r[i],a[i]=u.convert(o,e[i]);else for(n=0,s=h.length;n<s;n++)i=h[n],o=r[i],a[i]=o;return a[this._fieldId]||(a[this._fieldId]=r.id),a},n.prototype._updateItem=function(t){var e=t[this._fieldId];if(void 0==e)throw new Error("Cannot update item: item has no id (item: "+(0,r.default)(t)+")");var i=this._data[e];if(!i)throw new Error("Cannot update item: no item with id "+e+" found");for(var o=(0,l.default)(t),n=0,s=o.length;n<s;n++){var a=o[n],h=this._type[a];i[a]=u.convert(t[a],h)}return e},t.exports=n},function(t,e,i){function o(t,e){this._data=null,this._ids={},this.length=0,this._options=e||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}var n=i(8),s=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(2),a=i(11);o.prototype.setData=function(t){var e,i,o,n,s;if(this._data){for(this._data.off&&this._data.off("*",this.listener),e=this._data.getIds({filter:this._options&&this._options.filter}),s=[],o=0,n=e.length;o<n;o++)s.push(this._data._data[e[o]]);this._ids={},this.length=0,this._trigger("remove",{items:e,oldData:s})}if(this._data=t,this._data){for(this._fieldId=this._options.fieldId||this._data&&this._data.options&&this._data.options.fieldId||"id",e=this._data.getIds({filter:this._options&&this._options.filter}),o=0,n=e.length;o<n;o++)i=e[o],this._ids[i]=!0;this.length=e.length,this._trigger("add",{items:e}),this._data.on&&this._data.on("*",this.listener)}},o.prototype.refresh=function(){var t,e,i,o=this._data.getIds({filter:this._options&&this._options.filter}),n=(0,s.default)(this._ids),r={},a=[],h=[],d=[];for(e=0,i=o.length;e<i;e++)t=o[e],r[t]=!0,this._ids[t]||(a.push(t),this._ids[t]=!0);for(e=0,i=n.length;e<i;e++)t=n[e],r[t]||(h.push(t),d.push(this._data._data[t]),delete this._ids[t]);this.length+=a.length-h.length,a.length&&this._trigger("add",{items:a}),h.length&&this._trigger("remove",{items:h,oldData:d})},o.prototype.get=function(t){var e,i,o,n=this,s=r.getType(arguments[0]);"String"==s||"Number"==s||"Array"==s?(e=arguments[0],i=arguments[1],o=arguments[2]):(i=arguments[0],o=arguments[1]);var a=r.extend({},this._options,i);this._options.filter&&i&&i.filter&&(a.filter=function(t){return n._options.filter(t)&&i.filter(t)});var h=[];return void 0!=e&&h.push(e),h.push(a),h.push(o),this._data&&this._data.get.apply(this._data,h)},o.prototype.getIds=function(t){var e;if(this._data){var i,o=this._options.filter;i=t&&t.filter?o?function(e){return o(e)&&t.filter(e)}:t.filter:o,e=this._data.getIds({filter:i,order:t&&t.order})}else e=[];return e},o.prototype.map=function(t,e){var i=[];if(this._data){var o,n=this._options.filter;o=e&&e.filter?n?function(t){return n(t)&&e.filter(t)}:e.filter:n,i=this._data.map(t,{filter:o,order:e&&e.order})}else i=[];return i},o.prototype.getDataSet=function(){for(var t=this;t instanceof o;)t=t._data;return t||null},o.prototype._onEvent=function(t,e,i){var o,n,s,r,a=e&&e.items,h=[],d=[],l=[],u=[],c=[],p=[];if(a&&this._data){switch(t){case"add":for(o=0,n=a.length;o<n;o++)s=a[o],(r=this.get(s))&&(this._ids[s]=!0,h.push(s));break;case"update":for(o=0,n=a.length;o<n;o++)s=a[o],r=this.get(s),r?this._ids[s]?(d.push(s),c.push(e.data[o]),u.push(e.oldData[o])):(this._ids[s]=!0,h.push(s)):this._ids[s]&&(delete this._ids[s],l.push(s),p.push(e.oldData[o]));break;case"remove":for(o=0,n=a.length;o<n;o++)s=a[o],this._ids[s]&&(delete this._ids[s],l.push(s),p.push(e.oldData[o]))}this.length+=h.length-l.length,h.length&&this._trigger("add",{items:h},i),d.length&&this._trigger("update",{items:d,oldData:u,data:c},i),l.length&&this._trigger("remove",{items:l,oldData:p},i)}},o.prototype.on=a.prototype.on,o.prototype.off=a.prototype.off,o.prototype._trigger=a.prototype._trigger,o.prototype.subscribe=o.prototype.on,o.prototype.unsubscribe=o.prototype.off,t.exports=o},function(t,e,i){var o=i(57)("wks"),n=i(40),s=i(18).Symbol,r="function"==typeof s;(t.exports=function(t){return o[t]||(o[t]=r&&s[t]||(r?s:n)("Symbol."+t))}).store=o},function(t,e,i){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i<t[e].redundant.length;i++)t[e].redundant[i].parentNode.removeChild(t[e].redundant[i]);t[e].redundant=[]}},e.resetElements=function(t){e.prepareElements(t),e.cleanupElements(t),e.prepareElements(t)},e.getSVGElement=function(t,e,i){var o;return e.hasOwnProperty(t)?e[t].redundant.length>0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;if("circle"==o.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){n<0&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.printStyle=void 0;var n=i(19),s=o(n),r=i(6),a=o(r),h=i(8),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=!1,v=void 0,g="background: #FFeeee; color: #dd0000",y=function(){function t(){(0,u.default)(this,t)}return(0,p.default)(t,null,[{key:"validate",value:function(e,i,o){m=!1,v=i;var n=i;return void 0!==o&&(n=i[o]),t.parse(e,n,[]),m}},{key:"parse",value:function(e,i,o){for(var n in e)e.hasOwnProperty(n)&&t.check(n,e,i,o)}},{key:"check",value:function(e,i,o,n){if(void 0===o[e]&&void 0===o.__any__)return void t.getSuggestion(e,o,n);var s=e,r=!0;void 0===o[e]&&void 0!==o.__any__&&(s="__any__",r="object"===t.getType(i[e]));var a=o[s];r&&void 0!==a.__type__&&(a=a.__type__),t.checkFields(e,i,o,s,a,n)}},{key:"checkFields",value:function(e,i,o,n,s,r){var a=function(i){console.log("%c"+i+t.printLocation(r,e),g)},h=t.getType(i[e]),l=s[h];void 0!==l?"array"===t.getType(l)&&-1===l.indexOf(i[e])?(a('Invalid option detected in "'+e+'". Allowed values are:'+t.print(l)+' not "'+i[e]+'". '),m=!0):"object"===h&&"__any__"!==n&&(r=f.copyAndExtendArray(r,e),t.parse(i[e],o[n],r)):void 0===s.any&&(a('Invalid type received for "'+e+'". Expected: '+t.print((0,d.default)(s))+". Received ["+h+'] "'+i[e]+'"'),m=!0)}},{key:"getType",value:function(t){var e=void 0===t?"undefined":(0,a.default)(t);return"object"===e?null===t?"null":t instanceof Boolean?"boolean":t instanceof Number?"number":t instanceof String?"string":Array.isArray(t)?"array":t instanceof Date?"date":void 0!==t.nodeType?"dom":!0===t._isAMomentObject?"moment":"object":"number"===e?"number":"boolean"===e?"boolean":"string"===e?"string":void 0===e?"undefined":e}},{key:"getSuggestion",value:function(e,i,o){var n=t.findInOptions(e,i,o,!1),s=t.findInOptions(e,v,[],!0),r=void 0
+;r=void 0!==n.indexMatch?" in "+t.printLocation(n.path,e,"")+'Perhaps it was incomplete? Did you mean: "'+n.indexMatch+'"?\n\n':s.distance<=4&&n.distance>s.distance?" in "+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""):n.distance<=8?'. Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e):". Did you mean one of these: "+t.print((0,d.default)(i))+t.printLocation(o,e),console.log('%cUnknown option detected: "'+e+'"'+r,g),m=!0}},{key:"findInOptions",value:function(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=1e9,r="",a=[],h=e.toLowerCase(),d=void 0;for(var l in i){var u=void 0;if(void 0!==i[l].__type__&&!0===n){var c=t.findInOptions(e,i[l],f.copyAndExtendArray(o,l));s>c.distance&&(r=c.closestMatch,a=c.path,s=c.distance,d=c.indexMatch)}else-1!==l.toLowerCase().indexOf(h)&&(d=l),u=t.levenshteinDistance(e,l),s>u&&(r=l,a=f.copyArray(o),s=u)}return{closestMatch:r,path:a,distance:s,indexMatch:d}}},{key:"printLocation",value:function(t,e){for(var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Problem value found at: \n",o="\n\n"+i+"options = {\n",n=0;n<t.length;n++){for(var s=0;s<n+1;s++)o+="  ";o+=t[n]+": {\n"}for(var r=0;r<t.length+1;r++)o+="  ";o+=e+"\n";for(var a=0;a<t.length+1;a++){for(var h=0;h<t.length-a;h++)o+="  ";o+="}\n"}return o+"\n\n"}},{key:"print",value:function(t){return(0,s.default)(t).replace(/(\")|(\[)|(\])|(,"__type__")/g,"").replace(/(\,)/g,", ")}},{key:"levenshteinDistance",value:function(t,e){if(0===t.length)return e.length;if(0===e.length)return t.length;var i,o=[];for(i=0;i<=e.length;i++)o[i]=[i];var n;for(n=0;n<=t.length;n++)o[0][n]=n;for(i=1;i<=e.length;i++)for(n=1;n<=t.length;n++)e.charAt(i-1)==t.charAt(n-1)?o[i][n]=o[i-1][n-1]:o[i][n]=Math.min(o[i-1][n-1]+1,Math.min(o[i][n-1]+1,o[i-1][n]+1));return o[e.length][t.length]}}]),t}();e.default=y,e.printStyle=g},function(t,e,i){function o(t,e){this.options=null,this.props=null}var n=i(2);o.prototype.setOptions=function(t){t&&n.extend(this.options,t)},o.prototype.redraw=function(){return!1},o.prototype.destroy=function(){},o.prototype._isResized=function(){var t=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;return this.props._previousWidth=this.props.width,this.props._previousHeight=this.props.height,t},t.exports=o},function(t,e,i){var o=i(18),n=i(7),s=i(80),r=i(26),a=function(t,e,i){var h,d,l,u=t&a.F,c=t&a.G,p=t&a.S,f=t&a.P,m=t&a.B,v=t&a.W,g=c?n:n[e]||(n[e]={}),y=g.prototype,b=c?o:p?o[e]:(o[e]||{}).prototype;c&&(i=e);for(h in i)(d=!u&&b&&void 0!==b[h])&&h in g||(l=d?b[h]:i[h],g[h]=c&&"function"!=typeof b[h]?i[h]:m&&d?s(l,o):v&&b[h]==l?function(t){var e=function(e,i,o){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,i)}return new t(e,i,o)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(l):f&&"function"==typeof l?s(Function.call,l):l,f&&((g.virtual||(g.virtual={}))[h]=l,t&a.R&&y&&!y[h]&&r(y,h,l)))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},function(t,e){var i=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=i)},function(t,e,i){t.exports={default:i(160),__esModule:!0}},function(t,e,i){var o=i(27),n=i(81),s=i(53),r=Object.defineProperty;e.f=i(21)?Object.defineProperty:function(t,e,i){if(o(t),e=s(e,!0),o(i),n)try{return r(t,e,i)}catch(t){}if("get"in i||"set"in i)throw TypeError("Accessors not supported!");return"value"in i&&(t[e]=i.value),t}},function(t,e,i){t.exports=!i(28)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){var i={}.hasOwnProperty;t.exports=function(t,e){return i.call(t,e)}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(6),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=function(){function t(e,i,o){(0,a.default)(this,t),this.body=i,this.labelModule=o,this.setOptions(e),this.top=void 0,this.left=void 0,this.height=void 0,this.width=void 0,this.radius=void 0,this.margin=void 0,this.refreshNeeded=!0,this.boundingBox={top:0,left:0,right:0,bottom:0}}return(0,d.default)(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"_setMargins",value:function(t){this.margin={},this.options.margin&&("object"==(0,s.default)(this.options.margin)?(this.margin.top=this.options.margin.top,this.margin.right=this.options.margin.right,this.margin.bottom=this.options.margin.bottom,this.margin.left=this.options.margin.left):(this.margin.top=this.options.margin,this.margin.right=this.options.margin,this.margin.bottom=this.options.margin,this.margin.left=this.options.margin)),t.adjustSizes(this.margin)}},{key:"_distanceToBorder",value:function(t,e){var i=this.options.borderWidth;return this.resize(t),Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i}},{key:"enableShadow",value:function(t,e){e.shadow&&(t.shadowColor=e.shadowColor,t.shadowBlur=e.shadowSize,t.shadowOffsetX=e.shadowX,t.shadowOffsetY=e.shadowY)}},{key:"disableShadow",value:function(t,e){e.shadow&&(t.shadowColor="rgba(0,0,0,0)",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}},{key:"enableBorderDashes",value:function(t,e){if(!1!==e.borderDashes)if(void 0!==t.setLineDash){var i=e.borderDashes;!0===i&&(i=[5,15]),t.setLineDash(i)}else console.warn("setLineDash is not supported in this browser. The dashed borders cannot be used."),this.options.shapeProperties.borderDashes=!1,e.borderDashes=!1}},{key:"disableBorderDashes",value:function(t,e){!1!==e.borderDashes&&(void 0!==t.setLineDash?t.setLineDash([0]):(console.warn("setLineDash is not supported in this browser. The dashed borders cannot be used."),this.options.shapeProperties.borderDashes=!1,e.borderDashes=!1))}},{key:"needsRefresh",value:function(t,e){return!0===this.refreshNeeded?(this.refreshNeeded=!1,!0):void 0===this.width||this.labelModule.differentState(t,e)}},{key:"initContextForDraw",value:function(t,e){var i=e.borderWidth/this.body.view.scale;t.lineWidth=Math.min(this.width,i),t.strokeStyle=e.borderColor,t.fillStyle=e.color}},{key:"performStroke",value:function(t,e){var i=e.borderWidth/this.body.view.scale;t.save(),i>0&&(this.enableBorderDashes(t,e),t.stroke(),this.disableBorderDashes(t,e)),t.restore()}},{key:"performFill",value:function(t,e){this.enableShadow(t,e),t.fill(),this.disableShadow(t,e),this.performStroke(t,e)}},{key:"_addBoundingBoxMargin",value:function(t){this.boundingBox.left-=t,this.boundingBox.top-=t,this.boundingBox.bottom+=t,this.boundingBox.right+=t}},{key:"_updateBoundingBox",value:function(t,e,i,o,n){void 0!==i&&this.resize(i,o,n),this.left=t-this.width/2,this.top=e-this.height/2,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}},{key:"updateBoundingBox",value:function(t,e,i,o,n){this._updateBoundingBox(t,e,i,o,n)}},{key:"getDimensionsFromLabel",value:function(t,e,i){this.textSize=this.labelModule.getTextSize(t,e,i);var o=this.textSize.width,n=this.textSize.height;return 0===o&&(o=14,n=14),{width:o,height:n}}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{size:this.options.size};if(this.needsRefresh(e,i)){this.labelModule.getTextSize(t,e,i);var n=2*o.size;this.width=n,this.height=n,this.radius=.5*this.width}}},{key:"_drawShape",value:function(t,e,i,o,n,s,r,a){if(this.resize(t,s,r,a),this.left=o-this.width/2,this.top=n-this.height/2,this.initContextForDraw(t,a),t[e](o,n,a.size),this.performFill(t,a),void 0!==this.options.label){this.labelModule.calculateLabelSize(t,s,r,o,n,"hanging");var h=n+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(t,o,h,s,r,"hanging")}this.updateBoundingBox(o,n)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height))}}]),e}(m.default);e.default=v},function(t,e,i){var o=i(78),n=i(51);t.exports=function(t){return o(n(t))}},function(t,e,i){var o=i(20),n=i(39);t.exports=i(21)?function(t,e,i){return o.f(t,e,n(1,i))}:function(t,e,i){return t[e]=i,t}},function(t,e,i){var o=i(32);t.exports=function(t){if(!o(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,i){t.exports={default:i(138),__esModule:!0}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var n=i(188),s=o(n),r=i(77),a=o(r);e.default=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,h=(0,a.default)(t);!(o=(r=h.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(t){n=!0,s=t}finally{try{!o&&h.return&&h.return()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if((0,s.default)(Object(e)))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(t,e){t.exports={}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,i){var o=i(84),n=i(58);t.exports=Object.keys||function(t){return o(t,n)}},function(t,e,i){function o(t,e,i){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0,this.z=void 0!==i?i:0}o.subtract=function(t,e){var i=new o;return i.x=t.x-e.x,i.y=t.y-e.y,i.z=t.z-e.z,i},o.add=function(t,e){var i=new o;return i.x=t.x+e.x,i.y=t.y+e.y,i.z=t.z+e.z,i},o.avg=function(t,e){return new o((t.x+e.x)/2,(t.y+e.y)/2,(t.z+e.z)/2)},o.crossProduct=function(t,e){var i=new o;return i.x=t.y*e.z-t.z*e.y,i.y=t.z*e.x-t.x*e.z,i.z=t.x*e.y-t.y*e.x,i},o.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},t.exports=o},function(t,e,i){var o,n,s;!function(i,r){n=[],o=r,void 0!==(s="function"==typeof o?o.apply(e,n):o)&&(t.exports=s)}(0,function(){function t(t){var e,i=t&&t.preventDefault||!1,o=t&&t.container||window,n={},s={keydown:{},keyup:{}},r={};for(e=97;e<=122;e++)r[String.fromCharCode(e)]={code:e-97+65,shift:!1};for(e=65;e<=90;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;e<=9;e++)r[""+e]={code:48+e,shift:!1};for(e=1;e<=12;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;e<=9;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r.delete={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==s[e][t.keyCode]){for(var o=s[e][t.keyCode],n=0;n<o.length;n++)void 0===o[n].shift?o[n].fn(t):1==o[n].shift&&1==t.shiftKey?o[n].fn(t):0==o[n].shift&&0==t.shiftKey&&o[n].fn(t);1==i&&t.preventDefault()}};return n.bind=function(t,e,i){if(void 0===i&&(i="keydown"),void 0===r[t])throw new Error("unsupported key: "+t);void 0===s[i][r[t].code]&&(s[i][r[t].code]=[]),s[i][r[t].code].push({fn:e,shift:r[t].shift})},n.bindAll=function(t,e){void 0===e&&(e="keydown");for(var i in r)r.hasOwnProperty(i)&&n.bind(i,t,e)},n.getKey=function(t){for(var e in r)if(r.hasOwnProperty(e)){if(1==t.shiftKey&&1==r[e].shift&&t.keyCode==r[e].code)return e;if(0==t.shiftKey&&0==r[e].shift&&t.keyCode==r[e].code)return e;if(t.keyCode==r[e].code&&"shift"==e)return e}return"unknown key, currently not supported"},n.unbind=function(t,e,i){if(void 0===i&&(i="keydown"),void 0===r[t])throw new Error("unsupported key: "+t);if(void 0!==e){var o=[],n=s[i][r[t].code];if(void 0!==n)for(var a=0;a<n.length;a++)n[a].fn==e&&n[a].shift==r[t].shift||o.push(s[i][r[t].code][a]);s[i][r[t].code]=o}else s[i][r[t].code]=[]},n.reset=function(){s={keydown:{},keyup:{}}},n.destroy=function(){s={keydown:{},keyup:{}},o.removeEventListener("keydown",a,!0),o.removeEventListener("keyup",h,!0)},o.addEventListener("keydown",a,!0),o.addEventListener("keyup",h,!0),n}return t})},function(t,e,i){e.convertHiddenOptions=function(t,i,o){if(o&&!Array.isArray(o))return e.convertHiddenOptions(t,i,[o]);if(i.hiddenDates=[],o&&1==Array.isArray(o)){for(var n=0;n<o.length;n++)if(void 0===o[n].repeat){var s={};s.start=t(o[n].start).toDate().valueOf(),s.end=t(o[n].end).toDate().valueOf(),i.hiddenDates.push(s)}i.hiddenDates.sort(function(t,e){return t.start-e.start})}},e.updateHiddenDates=function(t,i,o){if(o&&!Array.isArray(o))return e.updateHiddenDates(t,i,[o]);if(o&&void 0!==i.domProps.centerContainer.width){e.convertHiddenOptions(t,i,o);for(var n=t(i.range.start),s=t(i.range.end),r=i.range.end-i.range.start,a=r/i.domProps.centerContainer.width,h=0;h<o.length;h++)if(void 0!==o[h].repeat){var d=t(o[h].start),l=t(o[h].end);if("Invalid Date"==d._d)throw new Error("Supplied start date is not valid: "+o[h].start);if("Invalid Date"==l._d)throw new Error("Supplied end date is not valid: "+o[h].end);var u=l-d;if(u>=4*a){var c=0,p=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(c=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-c,"days"),p.add(1,"weeks");break;case"weekly":var f=l.diff(d,"days"),m=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(m),l.day(m),l.add(f,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),p.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(c=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(c,"months"),p.add(1,"months");break;case"yearly":d.year()!=l.year()&&(c=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(c,"years"),p.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;d<p;)switch(i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()}),o[h].repeat){case"daily":d.add(1,"days"),l.add(1,"days");break;case"weekly":d.add(1,"weeks"),l.add(1,"weeks");break;case"monthly":d.add(1,"months"),l.add(1,"months");break;case"yearly":d.add(1,"y"),l.add(1,"y");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()})}}e.removeDuplicates(i);var v=e.isHidden(i.range.start,i.hiddenDates),g=e.isHidden(i.range.end,i.hiddenDates),y=i.range.start,b=i.range.end;1==v.hidden&&(y=1==i.range.startToFront?v.startDate-1:v.endDate+1),1==g.hidden&&(b=1==i.range.endToFront?g.startDate-1:g.endDate+1),1!=v.hidden&&1!=g.hidden||i.range._applyRange(y,b)}},e.removeDuplicates=function(t){for(var e=t.hiddenDates,i=[],o=0;o<e.length;o++)for(var n=0;n<e.length;n++)o!=n&&1!=e[n].remove&&1!=e[o].remove&&(e[n].start>=e[o].start&&e[n].end<=e[o].end?e[n].remove=!0:e[n].start>=e[o].start&&e[n].start<=e[o].end?(e[o].end=e[n].end,e[n].remove=!0):e[n].end>=e[o].start&&e[n].end<=e[o].end&&(e[o].start=e[n].start,e[n].remove=!0));for(o=0;o<e.length;o++)!0!==e[o].remove&&i.push(e[o]);t.hiddenDates=i,t.hiddenDates.sort(function(t,e){return t.start-e.start})},e.printDates=function(t){for(var e=0;e<t.length;e++)console.log(e,new Date(t[e].start),new Date(t[e].end),t[e].start,t[e].end,t[e].remove)},e.stepOverHiddenDates=function(t,e,i){for(var o=!1,n=e.current.valueOf(),s=0;s<e.hiddenDates.length;s++){var r=e.hiddenDates[s].start,a=e.hiddenDates[s].end;if(n>=r&&n<a){o=!0;break}}if(1==o&&n<e._end.valueOf()&&n!=i){var h=t(i),d=t(a);h.year()!=d.year()?e.switchedYear=!0:h.month()!=d.month()?e.switchedMonth=!0:h.dayOfYear()!=d.dayOfYear()&&(e.switchedDay=!0),e.current=d}},e.toScreen=function(t,i,o){var n;if(0==t.body.hiddenDates.length)return n=t.range.conversion(o),(i.valueOf()-n.offset)*n.scale;var s=e.isHidden(i,t.body.hiddenDates);1==s.hidden&&(i=s.startDate);var r=e.getHiddenDurationBetween(t.body.hiddenDates,t.range.start,t.range.end);if(i<t.range.start){n=t.range.conversion(o,r);var a=e.getHiddenDurationBeforeStart(t.body.hiddenDates,i,n.offset);return i=t.options.moment(i).toDate().valueOf(),i+=a,-(n.offset-i.valueOf())*n.scale}if(i>t.range.end){var h={start:t.range.start,end:i};return i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,h,i),n=t.range.conversion(o,r),(i.valueOf()-n.offset)*n.scale}return i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,t.range,i),n=t.range.conversion(o,r),(i.valueOf()-n.offset)*n.scale},e.toTime=function(t,i,o){if(0==t.body.hiddenDates.length){var n=t.range.conversion(o);return new Date(i/n.scale+n.offset)}var s=e.getHiddenDurationBetween(t.body.hiddenDates,t.range.start,t.range.end),r=t.range.end-t.range.start-s,a=r*i/o,h=e.getAccumulatedHiddenDuration(t.body.hiddenDates,t.range,a);return new Date(h+a+t.range.start)},e.getHiddenDurationBetween=function(t,e,i){for(var o=0,n=0;n<t.length;n++){var s=t[n].start,r=t[n].end;s>=e&&r<i&&(o+=r-s)}return o},e.getHiddenDurationBeforeStart=function(t,e,i){for(var o=0,n=0;n<t.length;n++){var s=t[n].start,r=t[n].end;s>=e&&r<=i&&(o+=r-s)}return o},e.correctTimeForHidden=function(t,i,o,n){return n=t(n).toDate().valueOf(),n-=e.getHiddenDurationBefore(t,i,o,n)},e.getHiddenDurationBefore=function(t,e,i,o){var n=0;o=t(o).toDate().valueOf();for(var s=0;s<e.length;s++){var r=e[s].start,a=e[s].end;r>=i.start&&a<i.end&&o>=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r<t.length;r++){var a=t[r].start,h=t[r].end;if(a>=e.start&&h<e.end){if(n+=a-s,s=h,n>=i)break;o+=h-a}}return o},e.snapAwayFromHidden=function(t,i,o,n){var s=e.isHidden(i,t);return 1==s.hidden?o<0?1==n?s.startDate-(s.endDate-i)-1:s.startDate-1:1==n?s.endDate+(i-s.startDate)+1:s.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i<e.length;i++){var o=e[i].start,n=e[i].end;if(t>=o&&t<n)return{hidden:!0,startDate:o,endDate:n}}return{hidden:!1,startDate:o,endDate:n}}},function(t,e,i){e.onTouch=function(t,e){e.inputHandler=function(t){t.isFirst&&e(t)},t.on("hammer.input",e.inputHandler)},e.onRelease=function(t,e){return e.inputHandler=function(t){t.isFinal&&e(t)},t.on("hammer.input",e.inputHandler)},e.offTouch=function(t,e){t.off("hammer.input",e.inputHandler)},e.offRelease=e.offTouch,e.disablePreventDefaultVertically=function(t){return t.getTouchAction=function(){return["pan-y"]},t}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e,i){this.id=null,this.parent=null,this.data=t,this.dom=null,this.conversion=e||{},this.options=i||{},this.selected=!1,this.displayed=!1,this.groupShowing=!0,this.dirty=!0,this.top=null,this.right=null,this.left=null,this.width=null,this.height=null,this.editable=null,this._updateEditStatus()}var s=i(6),r=o(s),a=i(8),h=o(a),d=i(10),l=i(2),u=i(9);n.prototype.stack=!0,n.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},n.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},n.prototype.setData=function(t){void 0!=t.group&&this.data.group!=t.group&&null!=this.parent&&this.parent.itemSet._moveToGroup(this,t.group),this.parent&&(this.parent.stackDirty=!0),void 0!=t.subgroup&&this.data.subgroup!=t.subgroup&&null!=this.parent&&this.parent.changeSubgroup(this,this.data.subgroup,t.subgroup),this.data=t,this._updateEditStatus(),this.dirty=!0,this.displayed&&this.redraw()},n.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},n.prototype.isVisible=function(t){return!1},n.prototype.show=function(){return!1},n.prototype.hide=function(){return!1},n.prototype.redraw=function(){},n.prototype.repositionX=function(){},n.prototype.repositionY=function(){},n.prototype._repaintDragCenter=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragCenter){var t=this,e=document.createElement("div");e.className="vis-drag-center",e.dragCenterItem=this;var i=new d(e);i.on("tap",function(e){t.parent.itemSet.body.emitter.emit("click",{event:e,item:t.id})}),i.on("doubletap",function(e){e.stopPropagation(),t.parent.itemSet._onUpdateItem(t),t.parent.itemSet.body.emitter.emit("doubleClick",{event:e,item:t.id})}),this.dom.box?this.dom.dragLeft?this.dom.box.insertBefore(e,this.dom.dragLeft):this.dom.box.appendChild(e):this.dom.point&&this.dom.point.appendChild(e),this.dom.dragCenter=e}else!this.selected&&this.dom.dragCenter&&(this.dom.dragCenter.parentNode&&this.dom.dragCenter.parentNode.removeChild(this.dom.dragCenter),this.dom.dragCenter=null)},n.prototype._repaintDeleteButton=function(t){var e=(this.options.editable.overrideItems||null==this.editable)&&this.options.editable.remove||!this.options.editable.overrideItems&&null!=this.editable&&this.editable.remove;if(this.selected&&e&&!this.dom.deleteButton){var i=this,o=document.createElement("div");this.options.rtl?o.className="vis-delete-rtl":o.className="vis-delete",o.title="Delete this item",new d(o).on("tap",function(t){t.stopPropagation(),i.parent.removeFromDataSet(i)}),t.appendChild(o),this.dom.deleteButton=o}else!this.selected&&this.dom.deleteButton&&(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null)},n.prototype._repaintOnItemUpdateTimeTooltip=function(t){if(this.options.tooltipOnItemUpdateTime){var e=(this.options.editable.updateTime||!0===this.data.editable)&&!1!==this.data.editable;if(this.selected&&e&&!this.dom.onItemUpdateTimeTooltip){var i=document.createElement("div");i.className="vis-onUpdateTime-tooltip",t.appendChild(i),this.dom.onItemUpdateTimeTooltip=i}else!this.selected&&this.dom.onItemUpdateTimeTooltip&&(this.dom.onItemUpdateTimeTooltip.parentNode&&this.dom.onItemUpdateTimeTooltip.parentNode.removeChild(this.dom.onItemUpdateTimeTooltip),this.dom.onItemUpdateTimeTooltip=null);if(this.dom.onItemUpdateTimeTooltip){this.dom.onItemUpdateTimeTooltip.style.visibility=this.parent.itemSet.touchParams.itemIsDragging?"visible":"hidden",this.options.rtl?this.dom.onItemUpdateTimeTooltip.style.right=this.dom.content.style.right:this.dom.onItemUpdateTimeTooltip.style.left=this.dom.content.style.left;var o,n=this.parent.itemSet.body.domProps.scrollTop;o="top"==this.options.orientation.item?this.top:this.parent.height-this.top-this.height;o+this.parent.top-50<-n?(this.dom.onItemUpdateTimeTooltip.style.bottom="",this.dom.onItemUpdateTimeTooltip.style.top=this.height+2+"px"):(this.dom.onItemUpdateTimeTooltip.style.top="",this.dom.onItemUpdateTimeTooltip.style.bottom=this.height+2+"px");var s,r;this.options.tooltipOnItemUpdateTime&&this.options.tooltipOnItemUpdateTime.template?(r=this.options.tooltipOnItemUpdateTime.template.bind(this),s=r(this.data)):(s="start: "+u(this.data.start).format("MM/DD/YYYY hh:mm"),this.data.end&&(s+="<br> end: "+u(this.data.end).format("MM/DD/YYYY hh:mm"))),this.dom.onItemUpdateTimeTooltip.innerHTML=s}}},n.prototype._updateContents=function(t){var e,i,o,n,s=this.parent.itemSet.itemsData.get(this.id),r=this.dom.box||this.dom.point,a=r.getElementsByClassName("vis-item-visible-frame")[0];if(this.options.visibleFrameTemplate?(n=this.options.visibleFrameTemplate.bind(this),o=n(s,r)):o="",a)if(o instanceof Object&&!(o instanceof Element))n(s,a);else if(this._contentToString(this.itemVisibleFrameContent)!==this._contentToString(o)){if(o instanceof Element)a.innerHTML="",a.appendChild(o);else if(void 0!=o)a.innerHTML=o;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.itemVisibleFrameContent=o}if(this.options.template?(i=this.options.template.bind(this),e=i(s,t,this.data)):e=this.data.content,e instanceof Object&&!(e instanceof Element))i(s,t);else if(this._contentToString(this.content)!==this._contentToString(e)){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}},n.prototype._updateDataAttributes=function(t){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=(0,h.default)(this.data)}for(var i=0;i<e.length;i++){var o=e[i],n=this.data[o];null!=n?t.setAttribute("data-"+o,n):t.removeAttribute("data-"+o)}}},n.prototype._updateStyle=function(t){this.style&&(l.removeCssText(t,this.style),this.style=null),this.data.style&&(l.addCssText(t,this.data.style),this.style=this.data.style)},n.prototype._contentToString=function(t){return"string"==typeof t?t:t&&"outerHTML"in t?t.outerHTML:t},n.prototype._updateEditStatus=function(){this.options&&("boolean"==typeof this.options.editable?this.editable={updateTime:this.options.editable,updateGroup:this.options.editable,remove:this.options.editable}:"object"===(0,r.default)(this.options.editable)&&(this.editable={},l.selectiveExtend(["updateTime","updateGroup","remove"],this.editable,this.options.editable))),this.options&&this.options.editable&&!0===this.options.editable.overrideItems||this.data&&("boolean"==typeof this.data.editable?this.editable={updateTime:this.data.editable,updateGroup:this.data.editable,remove:this.data.editable}:"object"===(0,r.default)(this.data.editable)&&(this.editable={},l.selectiveExtend(["updateTime","updateGroup","remove"],this.editable,this.data.editable)))},n.prototype.getWidthLeft=function(){return 0},n.prototype.getWidthRight=function(){return 0},n.prototype.getTitle=function(){return this.data.title},t.exports=n},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var i=0,o=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++i+o).toString(36))}},function(t,e,i){var o=i(51);t.exports=function(t){return Object(o(t))}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,i){function o(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}o.prototype.setOptions=function(t){t&&void 0!==t.delay&&(this.delay=t.delay),t&&void 0!==t.max&&(this.max=t.max),this._flushIfNeeded()},o.extend=function(t,e){var i=new o(e);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){i.flush()};var n=[{name:"flush",original:void 0}];if(e&&e.replace)for(var s=0;s<e.replace.length;s++){var r=e.replace[s];n.push({name:r,original:t[r]}),i.replace(t,r)}return i._extended={object:t,methods:n},i},o.prototype.destroy=function(){if(this.flush(),this._extended){for(var t=this._extended.object,e=this._extended.methods,i=0;i<e.length;i++){var o=e[i];o.original?t[o.name]=o.original:delete t[o.name]}this._extended=null}},o.prototype.replace=function(t,e){var i=this,o=t[e];if(!o)throw new Error("Method "+e+" undefined");t[e]=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];i.queue({args:t,fn:o,context:this})}},o.prototype.queue=function(t){"function"==typeof t?this._queue.push({fn:t}):this._queue.push(t),this._flushIfNeeded()},o.prototype._flushIfNeeded=function(){if(this._queue.length>this.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},o.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=o},function(t,e){function i(t){if(t)return o(t)}function o(t){for(var e in i.prototype)t[e]=i.prototype[e];return t}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},i.prototype.once=function(t,e){function i(){o.off(t,i),e.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var o,n=0;n<i.length;n++)if((o=i[n])===e||o.fn===e){i.splice(n,1);break}return this},i.prototype.emit=function(t){this._callbacks=this._callbacks||{};var e=[].slice.call(arguments,1),i=this._callbacks[t];if(i){i=i.slice(0);for(var o=0,n=i.length;o<n;++o)i[o].apply(this,e)}return this},i.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},i.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e,i){function o(t,e){this.dom={foreground:null,lines:[],majorTexts:[],minorTexts:[],redundant:{lines:[],majorTexts:[],minorTexts:[]}},this.props={range:{start:0,end:0,minimumStep:0},lineTop:0},this.defaultOptions={orientation:{axis:"bottom"},showMinorLabels:!0,showMajorLabels:!0,maxMinorChars:7,format:h.FORMAT,moment:l,timeAxis:null},this.options=r.extend({},this.defaultOptions),this.body=t,this._create(),this.setOptions(e)}var n=i(6),s=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(2),a=i(16),h=i(66),d=i(36),l=i(9);o.prototype=new a,o.prototype.setOptions=function(t){t&&(r.selectiveExtend(["showMinorLabels","showMajorLabels","maxMinorChars","hiddenDates","timeAxis","moment","rtl"],this.options,t),r.selectiveDeepExtend(["format"],this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.axis=t.orientation:"object"===(0,s.default)(t.orientation)&&"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis)),"locale"in t&&("function"==typeof l.locale?l.locale(t.locale):l.lang(t.locale)))},o.prototype._create=function(){this.dom.foreground=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.foreground.className="vis-time-axis vis-foreground",this.dom.background.className="vis-time-axis vis-background"},o.prototype.destroy=function(){this.dom.foreground.parentNode&&this.dom.foreground.parentNode.removeChild(this.dom.foreground),this.dom.background.parentNode&&this.dom.background.parentNode.removeChild(this.dom.background),this.body=null},o.prototype.redraw=function(){var t=this.props,e=this.dom.foreground,i=this.dom.background,o="top"==this.options.orientation.axis?this.body.dom.top:this.body.dom.bottom,n=e.parentNode!==o;this._calculateCharSize()
+;var s=this.options.showMinorLabels&&"none"!==this.options.orientation.axis,r=this.options.showMajorLabels&&"none"!==this.options.orientation.axis;t.minorLabelHeight=s?t.minorCharHeight:0,t.majorLabelHeight=r?t.majorCharHeight:0,t.height=t.minorLabelHeight+t.majorLabelHeight,t.width=e.offsetWidth,t.minorLineHeight=this.body.domProps.root.height-t.majorLabelHeight-("top"==this.options.orientation.axis?this.body.domProps.bottom.height:this.body.domProps.top.height),t.minorLineWidth=1,t.majorLineHeight=t.minorLineHeight+t.majorLabelHeight,t.majorLineWidth=1;var a=e.nextSibling,h=i.nextSibling;return e.parentNode&&e.parentNode.removeChild(e),i.parentNode&&i.parentNode.removeChild(i),e.style.height=this.props.height+"px",this._repaintLabels(),a?o.insertBefore(e,a):o.appendChild(e),h?this.body.dom.backgroundVertical.insertBefore(i,h):this.body.dom.backgroundVertical.appendChild(i),this._isResized()||n},o.prototype._repaintLabels=function(){var t=this.options.orientation.axis,e=r.convert(this.body.range.start,"Number"),i=r.convert(this.body.range.end,"Number"),o=this.body.util.toTime((this.props.minorCharWidth||10)*this.options.maxMinorChars).valueOf(),n=o-d.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this.body.range,o);n-=this.body.util.toTime(0).valueOf();var s=new h(new Date(e),new Date(i),n,this.body.hiddenDates,this.options);s.setMoment(this.options.moment),this.options.format&&s.setFormat(this.options.format),this.options.timeAxis&&s.setScale(this.options.timeAxis),this.step=s;var a=this.dom;a.redundant.lines=a.lines,a.redundant.majorTexts=a.majorTexts,a.redundant.minorTexts=a.minorTexts,a.lines=[],a.majorTexts=[],a.minorTexts=[];var l,c,p,f,m,v,g,y,b,_=0,w=void 0,x=0;for(s.start(),l=s.getCurrent(),p=this.body.util.toScreen(l);s.hasNext()&&x<1e3;){switch(x++,f=s.isMajor(),b=s.getClassName(),y=s.getLabelMinor(),l,c=p,s.next(),l=s.getCurrent(),s.isMajor(),p=this.body.util.toScreen(l),v=_,_=p-c,s.scale){case"week":m=!0;break;default:m=_>=.4*v}if(this.options.showMinorLabels&&m){var k=this._repaintMinorText(c,y,t,b);k.style.width=_+"px"}f&&this.options.showMajorLabels?(c>0&&(void 0==w&&(w=c),k=this._repaintMajorText(c,s.getLabelMajor(),t,b)),g=this._repaintMajorLine(c,_,t,b)):m?g=this._repaintMinorLine(c,_,t,b):g&&(g.style.width=parseInt(g.style.width)+_+"px")}if(1e3!==x||u||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to 1000 lines."),u=!0),this.options.showMajorLabels){var S=this.body.util.toTime(0),D=s.getLabelMajor(S),M=D.length*(this.props.majorCharWidth||10)+10;(void 0==w||M<w)&&this._repaintMajorText(0,D,t,b)}r.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},o.prototype._repaintMinorText=function(t,e,i,o){var n=this.dom.redundant.minorTexts.shift();if(!n){var s=document.createTextNode("");n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}return this.dom.minorTexts.push(n),n.innerHTML=e,n.style.top="top"==i?this.props.majorLabelHeight+"px":"0",this.options.rtl?(n.style.left="",n.style.right=t+"px"):n.style.left=t+"px",n.className="vis-text vis-minor "+o,n},o.prototype._repaintMajorText=function(t,e,i,o){var n=this.dom.redundant.majorTexts.shift();if(!n){var s=document.createElement("div");n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}return n.childNodes[0].innerHTML=e,n.className="vis-text vis-major "+o,n.style.top="top"==i?"0":this.props.minorLabelHeight+"px",this.options.rtl?(n.style.left="",n.style.right=t+"px"):n.style.left=t+"px",this.dom.majorTexts.push(n),n},o.prototype._repaintMinorLine=function(t,e,i,o){var n=this.dom.redundant.lines.shift();n||(n=document.createElement("div"),this.dom.background.appendChild(n)),this.dom.lines.push(n);var s=this.props;return n.style.top="top"==i?s.majorLabelHeight+"px":this.body.domProps.top.height+"px",n.style.height=s.minorLineHeight+"px",this.options.rtl?(n.style.left="",n.style.right=t-s.minorLineWidth/2+"px",n.className="vis-grid vis-vertical-rtl vis-minor "+o):(n.style.left=t-s.minorLineWidth/2+"px",n.className="vis-grid vis-vertical vis-minor "+o),n.style.width=e+"px",n},o.prototype._repaintMajorLine=function(t,e,i,o){var n=this.dom.redundant.lines.shift();n||(n=document.createElement("div"),this.dom.background.appendChild(n)),this.dom.lines.push(n);var s=this.props;return n.style.top="top"==i?"0":this.body.domProps.top.height+"px",this.options.rtl?(n.style.left="",n.style.right=t-s.majorLineWidth/2+"px",n.className="vis-grid vis-vertical-rtl vis-major "+o):(n.style.left=t-s.majorLineWidth/2+"px",n.className="vis-grid vis-vertical vis-major "+o),n.style.height=s.majorLineHeight+"px",n.style.width=e+"px",n},o.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="vis-text vis-minor vis-measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="vis-text vis-major vis-measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth};var u=!1;t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={moment:a,locales:h,locale:"en",id:void 0,title:void 0},this.options=s.extend({},this.defaultOptions),e&&e.time?this.customTime=e.time:this.customTime=new Date,this.eventParams={},this.setOptions(e),this._create()}var n=i(10),s=i(2),r=i(16),a=i(9),h=i(98);o.prototype=new r,o.prototype.setOptions=function(t){t&&s.selectiveExtend(["moment","locale","locales","id"],this.options,t)},o.prototype._create=function(){function t(t){this.body.range._onMouseWheel(t)}var e=document.createElement("div");e["custom-time"]=this,e.className="vis-custom-time "+(this.options.id||""),e.style.position="absolute",e.style.top="0px",e.style.height="100%",this.bar=e;var i=document.createElement("div");i.style.position="relative",i.style.top="0px",i.style.left="-10px",i.style.height="100%",i.style.width="20px",i.addEventListener?(i.addEventListener("mousewheel",t.bind(this),!1),i.addEventListener("DOMMouseScroll",t.bind(this),!1)):i.attachEvent("onmousewheel",t.bind(this)),e.appendChild(i),this.hammer=new n(i),this.hammer.on("panstart",this._onDragStart.bind(this)),this.hammer.on("panmove",this._onDrag.bind(this)),this.hammer.on("panend",this._onDragEnd.bind(this)),this.hammer.get("pan").set({threshold:5,direction:n.DIRECTION_HORIZONTAL})},o.prototype.destroy=function(){this.hide(),this.hammer.destroy(),this.hammer=null,this.body=null},o.prototype.redraw=function(){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar));var e=this.body.util.toScreen(this.customTime),i=this.options.locales[this.options.locale];i||(this.warned||(console.log("WARNING: options.locales['"+this.options.locale+"'] not found. See http://visjs.org/docs/timeline/#Localization"),this.warned=!0),i=this.options.locales.en);var o=this.options.title;return void 0===o?(o=i.time+": "+this.options.moment(this.customTime).format("dddd, MMMM Do YYYY, H:mm:ss"),o=o.charAt(0).toUpperCase()+o.substring(1)):"function"==typeof o&&(o=o.call(this.customTime)),this.bar.style.left=e+"px",this.bar.title=o,!1},o.prototype.hide=function(){this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar)},o.prototype.setCustomTime=function(t){this.customTime=s.convert(t,"Date"),this.redraw()},o.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())},o.prototype.setCustomTitle=function(t){this.options.title=t},o.prototype._onDragStart=function(t){this.eventParams.dragging=!0,this.eventParams.customTime=this.customTime,t.stopPropagation()},o.prototype._onDrag=function(t){if(this.eventParams.dragging){var e=this.body.util.toScreen(this.eventParams.customTime)+t.deltaX,i=this.body.util.toTime(e);this.setCustomTime(i),this.body.emitter.emit("timechange",{id:this.options.id,time:new Date(this.customTime.valueOf()),event:t}),t.stopPropagation()}},o.prototype._onDragEnd=function(t){this.eventParams.dragging&&(this.body.emitter.emit("timechanged",{id:this.options.id,time:new Date(this.customTime.valueOf()),event:t}),t.stopPropagation())},o.customTimeFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("custom-time"))return e["custom-time"];e=e.parentNode}return null},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(117).default,l=i(48).default,u=i(193).default,c=i(200).default,p=i(201).default,f=i(202).default,m=i(203).default,v=i(204).default,g=i(205).default,y=i(206).default,b=i(207).default,_=i(208).default,w=i(209).default,x=i(210).default,k=i(211).default,S=i(212).default,D=i(213).default,M=i(15),C=M.printStyle,O=function(){function t(e,i,o,n,r,a){(0,s.default)(this,t),this.options=h.bridgeObject(r),this.globalOptions=r,this.defaultOptions=a,this.body=i,this.edges=[],this.id=void 0,this.imagelist=o,this.grouplist=n,this.x=void 0,this.y=void 0,this.baseSize=this.options.size,this.baseFontSize=this.options.font.size,this.predefinedPosition=!1,this.selected=!1,this.hover=!1,this.labelModule=new d(this.body,this.options,!1),this.setOptions(e)}return(0,a.default)(t,[{key:"attachEdge",value:function(t){-1===this.edges.indexOf(t)&&this.edges.push(t)}},{key:"detachEdge",value:function(t){var e=this.edges.indexOf(t);-1!=e&&this.edges.splice(e,1)}},{key:"setOptions",value:function(e){var i=this.options.shape;if(e){if(void 0!==e.id&&(this.id=e.id),void 0===this.id)throw new Error("Node must have an id");t.checkMass(e,this.id),void 0!==e.x&&(null===e.x?(this.x=void 0,this.predefinedPosition=!1):(this.x=parseInt(e.x),this.predefinedPosition=!0)),void 0!==e.y&&(null===e.y?(this.y=void 0,this.predefinedPosition=!1):(this.y=parseInt(e.y),this.predefinedPosition=!0)),void 0!==e.size&&(this.baseSize=e.size),void 0!==e.value&&(e.value=parseFloat(e.value)),t.parseOptions(this.options,e,!0,this.globalOptions,this.grouplist);var o=[e,this.options,this.defaultOptions];return this.chooser=l.choosify("node",o),this._load_images(),this.updateLabelModule(e),this.updateShape(i),void 0!==e.hidden||void 0!==e.physics}}},{key:"_load_images",value:function(){if("circularImage"===this.options.shape||"image"===this.options.shape){if(void 0===this.options.image)throw new Error("Option image must be defined for node type '"+this.options.shape+"'");if(void 0===this.imagelist)throw new Error("Internal Error: No images provided");if("string"==typeof this.options.image)this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage,this.id);else{if(void 0===this.options.image.unselected)throw new Error("No unselected image provided");this.imageObj=this.imagelist.load(this.options.image.unselected,this.options.brokenImage,this.id),void 0!==this.options.image.selected?this.imageObjAlt=this.imagelist.load(this.options.image.selected,this.options.brokenImage,this.id):this.imageObjAlt=void 0}}}},{key:"getFormattingValues",value:function(){var t={color:this.options.color.background,borderWidth:this.options.borderWidth,borderColor:this.options.color.border,size:this.options.size,borderDashes:this.options.shapeProperties.borderDashes,borderRadius:this.options.shapeProperties.borderRadius,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y};return this.selected||this.hover?!0===this.chooser?this.selected?(t.borderWidth*=2,t.color=this.options.color.highlight.background,t.borderColor=this.options.color.highlight.border,t.shadow=this.options.shadow.enabled):this.hover&&(t.color=this.options.color.hover.background,t.borderColor=this.options.color.hover.border,t.shadow=this.options.shadow.enabled):"function"==typeof this.chooser&&(this.chooser(t,this.options.id,this.selected,this.hover),!1===t.shadow&&(t.shadowColor===this.options.shadow.color&&t.shadowSize===this.options.shadow.size&&t.shadowX===this.options.shadow.x&&t.shadowY===this.options.shadow.y||(t.shadow=!0))):t.shadow=this.options.shadow.enabled,t}},{key:"updateLabelModule",value:function(e){void 0!==this.options.label&&null!==this.options.label||(this.options.label=""),t.updateGroupOptions(this.options,e,this.grouplist);var i=this.grouplist.get(this.options.group,!1),o=[e,this.options,i,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,o),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}},{key:"updateShape",value:function(t){if(t===this.options.shape&&this.shape)this.shape.setOptions(this.options,this.imageObj,this.imageObjAlt);else switch(this.options.shape){case"box":this.shape=new u(this.options,this.body,this.labelModule);break;case"circle":this.shape=new c(this.options,this.body,this.labelModule);break;case"circularImage":this.shape=new p(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case"database":this.shape=new f(this.options,this.body,this.labelModule);break;case"diamond":this.shape=new m(this.options,this.body,this.labelModule);break;case"dot":this.shape=new v(this.options,this.body,this.labelModule);break;case"ellipse":this.shape=new g(this.options,this.body,this.labelModule);break;case"icon":this.shape=new y(this.options,this.body,this.labelModule);break;case"image":this.shape=new b(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case"square":this.shape=new _(this.options,this.body,this.labelModule);break;case"hexagon":this.shape=new w(this.options,this.body,this.labelModule);break;case"star":this.shape=new x(this.options,this.body,this.labelModule);break;case"text":this.shape=new k(this.options,this.body,this.labelModule);break;case"triangle":this.shape=new S(this.options,this.body,this.labelModule);break;case"triangleDown":this.shape=new D(this.options,this.body,this.labelModule);break;default:this.shape=new g(this.options,this.body,this.labelModule)}this.needsRefresh()}},{key:"select",value:function(){this.selected=!0,this.needsRefresh()}},{key:"unselect",value:function(){this.selected=!1,this.needsRefresh()}},{key:"needsRefresh",value:function(){this.shape.refreshNeeded=!0}},{key:"getTitle",value:function(){return this.options.title}},{key:"distanceToBorder",value:function(t,e){return this.shape.distanceToBorder(t,e)}},{key:"isFixed",value:function(){return this.options.fixed.x&&this.options.fixed.y}},{key:"isSelected",value:function(){return this.selected}},{key:"getValue",value:function(){return this.options.value}},{key:"getLabelSize",value:function(){return this.labelModule.size()}},{key:"setValueRange",value:function(t,e,i){if(void 0!==this.options.value){var o=this.options.scaling.customScalingFunction(t,e,i,this.options.value),n=this.options.scaling.max-this.options.scaling.min;if(!0===this.options.scaling.label.enabled){var s=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*s}this.options.size=this.options.scaling.min+o*n}else this.options.size=this.baseSize,this.options.font.size=this.baseFontSize;this.updateLabelModule()}},{key:"draw",value:function(t){var e=this.getFormattingValues();this.shape.draw(t,this.x,this.y,this.selected,this.hover,e)}},{key:"updateBoundingBox",value:function(t){this.shape.updateBoundingBox(this.x,this.y,t)}},{key:"resize",value:function(t){var e=this.getFormattingValues();this.shape.resize(t,this.selected,this.hover,e)}},{key:"getItemsOnPoint",value:function(t){var e=[];return this.labelModule.visible()&&l.pointInRect(this.labelModule.getSize(),t)&&e.push({nodeId:this.id,labelId:0}),l.pointInRect(this.shape.boundingBox,t)&&e.push({nodeId:this.id}),e}},{key:"isOverlappingWith",value:function(t){return this.shape.left<t.right&&this.shape.left+this.shape.width>t.left&&this.shape.top<t.bottom&&this.shape.top+this.shape.height>t.top}},{key:"isBoundingBoxOverlappingWith",value:function(t){return this.shape.boundingBox.left<t.right&&this.shape.boundingBox.right>t.left&&this.shape.boundingBox.top<t.bottom&&this.shape.boundingBox.bottom>t.top}}],[{key:"updateGroupOptions",value:function(t,e,i){if(void 0!==i){var o=t.group;if(void 0!==e&&void 0!==e.group&&o!==e.group)throw new Error("updateGroupOptions: group values in options don't match.");if("number"==typeof o||"string"==typeof o&&""!=o){var n=i.get(o);h.selectiveNotDeepExtend(["font"],t,n),t.color=h.parseColor(t.color)}}}},{key:"parseOptions",value:function(e,i){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=arguments[4],r=["color","fixed","shadow"];if(h.selectiveNotDeepExtend(r,e,i,o),t.checkMass(i),h.mergeOptions(e,i,"shadow",n),void 0!==i.color&&null!==i.color){var a=h.parseColor(i.color);h.fillIfDefined(e.color,a)}else!0===o&&null===i.color&&(e.color=h.bridgeObject(n.color));void 0!==i.fixed&&null!==i.fixed&&("boolean"==typeof i.fixed?(e.fixed.x=i.fixed,e.fixed.y=i.fixed):(void 0!==i.fixed.x&&"boolean"==typeof i.fixed.x&&(e.fixed.x=i.fixed.x),void 0!==i.fixed.y&&"boolean"==typeof i.fixed.y&&(e.fixed.y=i.fixed.y))),!0===o&&null===i.font&&(e.font=h.bridgeObject(n.font)),t.updateGroupOptions(e,i,s),void 0!==i.scaling&&h.mergeOptions(e.scaling,i.scaling,"label",n.scaling)}},{key:"checkMass",value:function(t,e){if(void 0!==t.mass&&t.mass<=0){var i="";void 0!==e&&(i=" in node id: "+e),console.log("%cNegative or zero mass disallowed"+i+", setting mass to 1.",C),t.mass=1}}}]),t}();e.default=O},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(6),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(2),u=function(){function t(){(0,a.default)(this,t)}return(0,d.default)(t,null,[{key:"choosify",value:function(t,e){var i=["node","edge","label"],o=!0,n=l.topMost(e,"chosen");if("boolean"==typeof n)o=n;else if("object"===(void 0===n?"undefined":(0,s.default)(n))){if(-1===i.indexOf(t))throw new Error("choosify: subOption '"+t+"' should be one of '"+i.join("', '")+"'");var r=l.topMost(e,["chosen",t]);"boolean"!=typeof r&&"function"!=typeof r||(o=r)}return o}},{key:"pointInRect",value:function(t,e,i){if(t.width<=0||t.height<=0)return!1;if(void 0!==i){var o={x:e.x-i.x,y:e.y-i.y};if(0!==i.angle){var n=-i.angle;e={x:Math.cos(n)*o.x-Math.sin(n)*o.y,y:Math.sin(n)*o.x+Math.cos(n)*o.y}}else e=o}var s=t.x+t.width,r=t.y+t.width;return t.left<e.x&&s>e.x&&t.top<e.y&&r>e.y}},{key:"isValidLabel",value:function(t){return"string"==typeof t&&""!==t}}]),t}();e.default=u},function(t,e,i){i(125);for(var o=i(18),n=i(26),s=i(31),r=i(13)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),h=0;h<a.length;h++){var d=a[h],l=o[d],u=l&&l.prototype;u&&!u[r]&&n(u,r,d),s[d]=s.Array}},function(t,e){var i={}.toString;t.exports=function(t){return i.call(t).slice(8,-1)}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on  "+t);return t}},function(t,e){t.exports=!0},function(t,e,i){var o=i(32);t.exports=function(t,e){if(!o(t))return t;var i,n;if(e&&"function"==typeof(i=t.toString)&&!o(n=i.call(t)))return n;if("function"==typeof(i=t.valueOf)&&!o(n=i.call(t)))return n;if(!e&&"function"==typeof(i=t.toString)&&!o(n=i.call(t)))return n;throw TypeError("Can't convert object to primitive value")}},function(t,e,i){var o=i(27),n=i(130),s=i(58),r=i(56)("IE_PROTO"),a=function(){},h=function(){var t,e=i(82)("iframe"),o=s.length;for(e.style.display="none",i(134).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("<script>document.F=Object<\/script>"),t.close(),h=t.F;o--;)delete h.prototype[s[o]];return h()};t.exports=Object.create||function(t,e){var i;return null!==t?(a.prototype=o(t),i=new a,a.prototype=null,i[r]=t):i=h(),void 0===e?i:n(i,e)}},function(t,e){var i=Math.ceil,o=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?o:i)(t)}},function(t,e,i){var o=i(57)("keys"),n=i(40);t.exports=function(t){return o[t]||(o[t]=n(t))}},function(t,e,i){var o=i(18),n=o["__core-js_shared__"]||(o["__core-js_shared__"]={});t.exports=function(t){return n[t]||(n[t]={})}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,i){var o=i(20).f,n=i(22),s=i(13)("toStringTag");t.exports=function(t,e,i){t&&!n(t=i?t:t.prototype,s)&&o(t,s,{configurable:!0,value:e})}},function(t,e,i){var o=i(135)(!0);i(79)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,i=this._i;return i>=e.length?{value:void 0,done:!0}:(t=o(e,i),this._i+=t.length,{value:t,done:!1})})},function(t,e,i){e.f=i(13)},function(t,e,i){var o=i(18),n=i(7),s=i(52),r=i(61),a=i(20).f;t.exports=function(t){var e=n.Symbol||(n.Symbol=s?{}:o.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:r.f(t)})}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){var i=p().hours(0).minutes(0).seconds(0).milliseconds(0),o=i.clone().add(-3,"days").valueOf(),n=i.clone().add(3,"days").valueOf();this.millisecondsPerPixelCache=void 0,void 0===e?(this.start=o,this.end=n):(this.start=e.start||o,this.end=e.end||n),this.rolling=!1,this.body=t,this.deltaDifference=0,this.scaleOffset=0,this.startToFront=!1,this.endToFront=!0,this.defaultOptions={rtl:!1,start:null,end:null,moment:p,direction:"horizontal",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:31536e10,rollingMode:{follow:!1,offset:.5}},this.options=c.extend({},this.defaultOptions),this.props={touch:{}},this.animationTimer=null,this.body.emitter.on("panstart",this._onDragStart.bind(this)),this.body.emitter.on("panmove",this._onDrag.bind(this)),this.body.emitter.on("panend",this._onDragEnd.bind(this)),this.body.emitter.on("mousewheel",this._onMouseWheel.bind(this)),this.body.emitter.on("touch",this._onTouch.bind(this)),this.body.emitter.on("pinch",this._onPinch.bind(this)),this.body.dom.rollingModeBtn.addEventListener("click",this.startRolling.bind(this)),this.setOptions(e)}function s(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError('Unknown direction "'+t+'". Choose "horizontal" or "vertical".')}var r=i(8),a=o(r),h=i(19),d=o(h),l=i(6),u=o(l),c=i(2),p=i(9),f=i(16),m=i(36);n.prototype=new f,n.prototype.setOptions=function(t){if(t){var e=["animation","direction","min","max","zoomMin","zoomMax","moveable","zoomable","moment","activate","hiddenDates","zoomKey","rtl","showCurrentTime","rollingMode","horizontalScroll"];c.selectiveExtend(e,this.options,t),t.rollingMode&&t.rollingMode.follow&&this.startRolling(),("start"in t||"end"in t)&&this.setRange(t.start,t.end)}},n.prototype.startRolling=function(){function t(){e.stopRolling(),e.rolling=!0;var i=e.end-e.start,o=c.convert(new Date,"Date").valueOf(),n=o-i*e.options.rollingMode.offset,s=o+i*(1-e.options.rollingMode.offset),r={animation:!1};e.setRange(n,s,r),i=1/e.conversion(e.body.domProps.center.width).scale/10,i<30&&(i=30),i>1e3&&(i=1e3),e.body.dom.rollingModeBtn.style.visibility="hidden",e.currentTimeTimer=setTimeout(t,i)}var e=this;t()},n.prototype.stopRolling=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),this.rolling=!1,this.body.dom.rollingModeBtn.style.visibility="visible")},n.prototype.setRange=function(t,e,i,o,n){i||(i={}),!0!==i.byUser&&(i.byUser=!1);var s=this,r=void 0!=t?c.convert(t,"Date").valueOf():null,h=void 0!=e?c.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),this.millisecondsPerPixelCache=void 0,i.animation){var l=this.start,p=this.end,f="object"===(0,u.default)(i.animation)&&"duration"in i.animation?i.animation.duration:500,v="object"===(0,u.default)(i.animation)&&"easingFunction"in i.animation?i.animation.easingFunction:"easeInOutQuad",g=c.easingFunctions[v];if(!g)throw new Error("Unknown easing function "+(0,d.default)(v)+". Choose from: "+(0,a.default)(c.easingFunctions).join(", "));var y=(new Date).valueOf(),b=!1;return function t(){if(!s.props.touch.dragging){var e=(new Date).valueOf(),a=e-y,d=g(a/f),u=a>f,c=u||null===r?r:l+(r-l)*d,v=u||null===h?h:p+(h-p)*d;_=s._applyRange(c,v),m.updateHiddenDates(s.options.moment,s.body,s.options.hiddenDates),b=b||_;var w={start:new Date(s.start),end:new Date(s.end),byUser:i.byUser,event:i.event};if(n&&n(d,_,u),_&&s.body.emitter.emit("rangechange",w),u){if(b&&(s.body.emitter.emit("rangechanged",w),o))return o()}else s.animationTimer=setTimeout(t,20)}}()}var _=this._applyRange(r,h);if(m.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),_){var w={start:new Date(this.start),end:new Date(this.end),byUser:i.byUser,event:i.event};if(this.body.emitter.emit("rangechange",w),clearTimeout(s.timeoutID),s.timeoutID=setTimeout(function(){s.body.emitter.emit("rangechanged",w)},200),o)return o()}},n.prototype.getMillisecondsPerPixel=function(){return void 0===this.millisecondsPerPixelCache&&(this.millisecondsPerPixelCache=(this.end-this.start)/this.body.dom.center.clientWidth),this.millisecondsPerPixelCache},n.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},n.prototype._applyRange=function(t,e){var i,o=null!=t?c.convert(t,"Date").valueOf():this.start,n=null!=e?c.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?c.convert(this.options.max,"Date").valueOf():null,r=null!=this.options.min?c.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(n<o&&(n=o),null!==r&&o<r&&(i=r-o,o+=i,n+=i,null!=s&&n>s&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=r&&o<r&&(o=r)),null!==this.options.zoomMin){var a=parseFloat(this.options.zoomMin);if(a<0&&(a=0),n-o<a){this.end-this.start===a&&o>=this.start-.5&&n<=this.end?(o=this.start,n=this.end):(i=a-(n-o),o-=i/2,n+=i/2)}}if(null!==this.options.zoomMax){var h=parseFloat(this.options.zoomMax);h<0&&(h=0),n-o>h&&(this.end-this.start===h&&o<this.start&&n>this.end?(o=this.start,n=this.end):(i=n-o-h,o+=i/2,n-=i/2))}var d=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,d},n.prototype.getRange=function(){return{start:this.start,end:this.end}},n.prototype.conversion=function(t,e){return n.conversion(this.start,this.end,t,e)},n.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},n.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.stopRolling(),this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},n.prototype._onDrag=function(t){if(t&&this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;s(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start;o-=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var n,r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height;n=this.options.rtl?i/r*o:-i/r*o;var a=this.props.touch.start+n,h=this.props.touch.end+n,d=m.snapAwayFromHidden(this.body.hiddenDates,a,this.previousDelta-i,!0),l=m.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0);if(d!=a||l!=h)return this.deltaDifference+=i,this.props.touch.start=d,this.props.touch.end=l,void this._onDrag(t);this.previousDelta=i,this._applyRange(a,h);var u=new Date(this.start),c=new Date(this.end);this.body.emitter.emit("rangechange",{start:u,end:c,byUser:!0,event:t}),this.body.emitter.emit("panmove")}},n.prototype._onDragEnd=function(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0,event:t}))},n.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),!(this.options.zoomKey&&!t[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable)&&this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&e){var i;i=e<0?1-e/5:1/(1+e/5);var o;if(this.rolling)o=this.start+(this.end-this.start)*this.options.rollingMode.offset;else{var n=this.getPointer({x:t.clientX,y:t.clientY},this.body.dom.center);o=this._pointerToDate(n)}this.zoom(i,o,e,t),t.preventDefault()}},n.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0,c.preventDefault(t)},n.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){c.preventDefault(t),this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(t.center,this.body.dom.center)),this.stopRolling();var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=m.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),s=o-n,r=i-n+(this.props.touch.start-(i-n))*e,a=i+s+(this.props.touch.end-(i+s))*e;this.startToFront=1-e<=0,this.endToFront=e-1<=0;var h=m.snapAwayFromHidden(this.body.hiddenDates,r,1-e,!0),d=m.snapAwayFromHidden(this.body.hiddenDates,a,e-1,!0);h==r&&d==a||(this.props.touch.start=h,this.props.touch.end=d,this.scaleOffset=1-t.scale,r=h,a=d);var l={animation:!1,byUser:!0,event:t};this.setRange(r,a,l),this.startToFront=!1,this.endToFront=!0}},n.prototype._isInsideRange=function(t){var e,i=t.center?t.center.x:t.clientX;e=this.options.rtl?i-c.getAbsoluteLeft(this.body.dom.centerContainer):c.getAbsoluteRight(this.body.dom.centerContainer)-i;var o=this.body.util.toTime(e);return o>=this.start&&o<=this.end},n.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(s(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},n.prototype.getPointer=function(t,e){return this.options.rtl?{x:c.getAbsoluteRight(e)-t.x,y:t.y-c.getAbsoluteTop(e)}:{x:t.x-c.getAbsoluteLeft(e),y:t.y-c.getAbsoluteTop(e)}},n.prototype.zoom=function(t,e,i,o){null==e&&(e=(this.start+this.end)/2);var n=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),s=m.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,e),r=n-s,a=e-s+(this.start-(e-s))*t,h=e+r+(this.end-(e+r))*t;this.startToFront=!(i>0),this.endToFront=!(-i>0)
+;var d=m.snapAwayFromHidden(this.body.hiddenDates,a,i,!0),l=m.snapAwayFromHidden(this.body.hiddenDates,h,-i,!0);d==a&&l==h||(a=d,h=l);var u={animation:!1,byUser:!0,event:o};this.setRange(a,h,u),this.startToFront=!1,this.endToFront=!0},n.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},n.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i,s={animation:!1,byUser:!0,event:null};this.setRange(o,n,s)},t.exports=n},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(){}var s=i(19),r=o(s),a=i(6),h=o(a),d=i(44),l=i(10),u=i(37),c=i(2),p=i(45),f=i(97),m=i(36),v=i(46);d(n.prototype),n.prototype._create=function(t){function e(t){this.isActive()&&this.emit("mousewheel",t);var e=0,i=0;if("detail"in t&&(i=-1*t.detail),"wheelDelta"in t&&(i=t.wheelDelta),"wheelDeltaY"in t&&(i=t.wheelDeltaY),"wheelDeltaX"in t&&(e=-1*t.wheelDeltaX),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(e=-1*i,i=0),"deltaY"in t&&(i=-1*t.deltaY),"deltaX"in t&&(e=t.deltaX),this.options.zoomKey&&!t[this.options.zoomKey])if(t.preventDefault(),this.options.verticalScroll&&Math.abs(i)>=Math.abs(e)){var o=this.props.scrollTop,n=o+i;this.isActive()&&(this._setScrollTop(n),this._redraw(),this.emit("scroll",t))}else if(this.options.horizontalScroll){var s=Math.abs(e)>=Math.abs(i)?e:i,r=s/120*(this.range.end-this.range.start)/20,a=this.range.start+r,h=this.range.end+r,d={animation:!1,byUser:!0,event:t};this.range.setRange(a,h,d)}}function i(t){if(s.options.verticalScroll&&(t.preventDefault(),s.isActive())){var e=-t.target.scrollTop;s._setScrollTop(e),s._redraw(),s.emit("scrollSide",t)}}function o(t){if(t.preventDefault&&t.preventDefault(),!(!t.target.className.indexOf("vis")>-1||a))return t.dataTransfer.dropEffect="move",a=!0,!1}function n(t){t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation();try{var e=JSON.parse(t.dataTransfer.getData("text"));if(!e||!e.content)return}catch(t){return!1}return a=!1,t.center={x:t.clientX,y:t.clientY},"item"!==e.target?s.itemSet._onAddItem(t):s.itemSet._onDropObjectOnItem(t),s.emit("drop",s.getEventProperties(t)),!1}this.dom={},this.dom.container=t,this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.rollingModeBtn=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.rollingModeBtn.className="vis-rolling-mode-btn",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.rollingModeBtn),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.on("rangechange",function(){!0===this.initialDrawDone&&this._redraw()}.bind(this)),this.on("rangechanged",function(){this.initialRangeChangeDone||(this.initialRangeChangeDone=!0)}.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("panmove",this._onDrag.bind(this));var s=this;this._origRedraw=this._redraw.bind(this),this._redraw=c.throttle(this._origRedraw),this.on("_change",function(t){s.itemSet&&s.itemSet.initialItemSetDrawn&&t&&1==t.queue?s._redraw():s._origRedraw()}),this.hammer=new l(this.dom.root);var r=this.hammer.get("pinch").set({enable:!0});u.disablePreventDefaultVertically(r),this.hammer.get("pan").set({threshold:5,direction:l.DIRECTION_HORIZONTAL}),this.listeners={},["tap","doubletap","press","pinch","pan","panstart","panmove","panend"].forEach(function(t){var e=function(e){s.isActive()&&s.emit(t,e)};s.hammer.on(t,e),s.listeners[t]=e}),u.onTouch(this.hammer,function(t){s.emit("touch",t)}.bind(this)),u.onRelease(this.hammer,function(t){s.emit("release",t)}.bind(this)),this.dom.centerContainer.addEventListener?(this.dom.centerContainer.addEventListener("mousewheel",e.bind(this),!1),this.dom.centerContainer.addEventListener("DOMMouseScroll",e.bind(this),!1)):this.dom.centerContainer.attachEvent("onmousewheel",e.bind(this)),this.dom.left.parentNode.addEventListener("scroll",i.bind(this)),this.dom.right.parentNode.addEventListener("scroll",i.bind(this));var a=!1;if(this.dom.center.addEventListener("dragover",o.bind(this),!1),this.dom.center.addEventListener("drop",n.bind(this),!1),this.customTimes=[],this.touch={},this.redrawCount=0,this.initialDrawDone=!1,this.initialRangeChangeDone=!1,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},n.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","rtl","zoomKey","horizontalScroll","verticalScroll"];if(c.selectiveExtend(e,this.options,t),this.dom.rollingModeBtn.style.visibility="hidden",this.options.rtl&&(this.dom.container.style.direction="rtl",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical-rtl"),this.options.verticalScroll&&(this.options.rtl?this.dom.rightContainer.className="vis-panel vis-right vis-vertical-scroll":this.dom.leftContainer.className="vis-panel vis-left vis-vertical-scroll"),"object"!==(0,h.default)(this.options.orientation)&&(this.options.orientation={item:void 0,axis:void 0}),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"===(0,h.default)(t.orientation)&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){var i=this.timeAxis2=new p(this.body);i.setOptions=function(t){var e=t?c.extend({},t):{};e.orientation="top",p.prototype.setOptions.call(i,e)},this.components.push(i)}}else if(this.timeAxis2){var o=this.components.indexOf(this.timeAxis2);-1!==o&&this.components.splice(o,1),this.timeAxis2.destroy(),this.timeAxis2=null}if("function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&m.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new f(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);var n=c.deepExtend({},this.options);this.components.forEach(function(t){c.deepExtend(n,t.options)}),this.configurator.setModuleOptions({global:n})}this._redraw()},n.prototype.isActive=function(){return!this.activator||this.activator.active},n.prototype.destroy=function(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},n.prototype.setCustomTime=function(t,e){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));i.length>0&&i[0].setCustomTime(t)},n.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));return e[0].getCustomTime()},n.prototype.setCustomTimeTitle=function(t,e){var i=this.customTimes.filter(function(t){return t.options.id===e});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));if(i.length>0)return i[0].setCustomTitle(t)},n.prototype.getEventProperties=function(t){return{event:t}},n.prototype.addCustomTime=function(t,e){var i=void 0!==t?c.convert(t,"Date").valueOf():new Date;if(this.customTimes.some(function(t){return t.options.id===e}))throw new Error("A custom time with id "+(0,r.default)(e)+" already exists");var o=new v(this.body,c.extend({},this.options,{time:i,id:e}));return this.customTimes.push(o),this.components.push(o),this._redraw(),e},n.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},n.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},n.prototype.fit=function(t,e){var i=this.getDataRange();if(null!==i.min||null!==i.max){var o=i.max-i.min,n=new Date(i.min.valueOf()-.01*o),s=new Date(i.max.valueOf()+.01*o),r=!t||void 0===t.animation||t.animation;this.range.setRange(n,s,{animation:r},e)}},n.prototype.getDataRange=function(){throw new Error("Cannot invoke abstract method getDataRange")},n.prototype.setWindow=function(t,e,i,o){"function"==typeof arguments[2]&&(o=arguments[2],i={});var n,s;1==arguments.length?(s=arguments[0],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n})):2==arguments.length&&"function"==typeof arguments[1]?(s=arguments[0],o=arguments[1],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n},o)):(n=!i||void 0===i.animation||i.animation,this.range.setRange(t,e,{animation:n},o))},n.prototype.moveTo=function(t,e,i){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.range.end-this.range.start,n=c.convert(t,"Date").valueOf(),s=n-o/2,r=n+o/2,a=!e||void 0===e.animation||e.animation;this.range.setRange(s,r,{animation:a},i)},n.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},n.prototype.zoomIn=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=r/(1+t),h=(r-a)/2,d=n+h,l=s-h;this.setWindow(d,l,e,i)}},n.prototype.zoomOut=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=n-r*t/2,h=s+r*t/2;this.setWindow(a,h,e,i)}},n.prototype.redraw=function(){this._redraw()},n.prototype._redraw=function(){this.redrawCount++;var t=!1,e=this.options,i=this.props,o=this.dom;if(o&&o.container&&0!=o.root.offsetWidth){m.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),"top"==e.orientation?(c.addClassName(o.root,"vis-top"),c.removeClassName(o.root,"vis-bottom")):(c.removeClassName(o.root,"vis-top"),c.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=c.option.asSize(e.maxHeight,""),o.root.style.minHeight=c.option.asSize(e.minHeight,""),o.root.style.width=c.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top,i.borderRootHeight=o.root.offsetHeight-o.root.clientHeight,i.borderRootWidth=o.root.offsetWidth-o.root.clientWidth,0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(i.borderRootWidth=i.borderRootHeight),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var n=Math.max(i.left.height,i.center.height,i.right.height),s=i.top.height+n+i.bottom.height+i.borderRootHeight+i.border.top+i.border.bottom;o.root.style.height=c.option.asSize(e.height,s+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-i.borderRootHeight;var r=i.root.height-i.top.height-i.bottom.height-i.borderRootHeight;i.centerContainer.height=r,i.leftContainer.height=r,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-i.borderRootWidth,this.initialDrawDone||(i.scrollbarWidth=c.getScrollBarWidth()),e.verticalScroll?e.rtl?(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth+i.scrollbarWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth+i.scrollbarWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right),this._setDOM();var a=this._updateScrollTop();"top"!=e.orientation.item&&(a+=Math.max(i.centerContainer.height-i.center.height-i.border.top-i.border.bottom,0)),o.center.style.top=a+"px";var h=0==i.scrollTop?"hidden":"",d=i.scrollTop==i.scrollTopMin?"hidden":"";o.shadowTop.style.visibility=h,o.shadowBottom.style.visibility=d,o.shadowTopLeft.style.visibility=h,o.shadowBottomLeft.style.visibility=d,o.shadowTopRight.style.visibility=h,o.shadowBottomRight.style.visibility=d,e.verticalScroll&&(o.rightContainer.className="vis-panel vis-right vis-vertical-scroll",o.leftContainer.className="vis-panel vis-left vis-vertical-scroll",o.shadowTopRight.style.visibility="hidden",o.shadowBottomRight.style.visibility="hidden",o.shadowTopLeft.style.visibility="hidden",o.shadowBottomLeft.style.visibility="hidden",o.left.style.top="0px",o.right.style.top="0px"),(!e.verticalScroll||i.center.height<i.centerContainer.height)&&(o.left.style.top=a+"px",o.right.style.top=a+"px",o.rightContainer.className=o.rightContainer.className.replace(new RegExp("(?:^|\\s)vis-vertical-scroll(?:\\s|$)")," "),o.leftContainer.className=o.leftContainer.className.replace(new RegExp("(?:^|\\s)vis-vertical-scroll(?:\\s|$)")," "),i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right,this._setDOM());var u=i.center.height>i.centerContainer.height;this.hammer.get("pan").set({direction:u?l.DIRECTION_ALL:l.DIRECTION_HORIZONTAL}),this.components.forEach(function(e){t=e.redraw()||t});if(t){if(this.redrawCount<5)return void this.body.emitter.emit("_change");console.log("WARNING: infinite loop in redraw?")}else this.redrawCount=0;this.body.emitter.emit("changed")}},n.prototype._setDOM=function(){var t=this.props,e=this.dom;t.leftContainer.width=t.left.width,t.rightContainer.width=t.right.width;var i=t.root.width-t.left.width-t.right.width-t.borderRootWidth;t.center.width=i,t.centerContainer.width=i,t.top.width=i,t.bottom.width=i,e.background.style.height=t.background.height+"px",e.backgroundVertical.style.height=t.background.height+"px",e.backgroundHorizontal.style.height=t.centerContainer.height+"px",e.centerContainer.style.height=t.centerContainer.height+"px",e.leftContainer.style.height=t.leftContainer.height+"px",e.rightContainer.style.height=t.rightContainer.height+"px",e.background.style.width=t.background.width+"px",e.backgroundVertical.style.width=t.centerContainer.width+"px",e.backgroundHorizontal.style.width=t.background.width+"px",e.centerContainer.style.width=t.center.width+"px",e.top.style.width=t.top.width+"px",e.bottom.style.width=t.bottom.width+"px",e.background.style.left="0",e.background.style.top="0",e.backgroundVertical.style.left=t.left.width+t.border.left+"px",e.backgroundVertical.style.top="0",e.backgroundHorizontal.style.left="0",e.backgroundHorizontal.style.top=t.top.height+"px",e.centerContainer.style.left=t.left.width+"px",e.centerContainer.style.top=t.top.height+"px",e.leftContainer.style.left="0",e.leftContainer.style.top=t.top.height+"px",e.rightContainer.style.left=t.left.width+t.center.width+"px",e.rightContainer.style.top=t.top.height+"px",e.top.style.left=t.left.width+"px",e.top.style.top="0",e.bottom.style.left=t.left.width+"px",e.bottom.style.top=t.top.height+t.centerContainer.height+"px",e.center.style.left="0",e.left.style.left="0",e.right.style.left="0"},n.prototype.repaint=function(){throw new Error("Function repaint is deprecated. Use redraw instead.")},n.prototype.setCurrentTime=function(t){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");this.currentTime.setCurrentTime(t)},n.prototype.getCurrentTime=function(){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");return this.currentTime.getCurrentTime()},n.prototype._toTime=function(t){return m.toTime(this,t,this.props.center.width)},n.prototype._toGlobalTime=function(t){return m.toTime(this,t,this.props.root.width)},n.prototype._toScreen=function(t){return m.toScreen(this,t,this.props.center.width)},n.prototype._toGlobalScreen=function(t){return m.toScreen(this,t,this.props.root.width)},n.prototype._initAutoResize=function(){1==this.options.autoResize?this._startAutoResize():this._stopAutoResize()},n.prototype._startAutoResize=function(){var t=this;this._stopAutoResize(),this._onResize=function(){if(1!=t.options.autoResize)return void t._stopAutoResize();t.dom.root&&(t.dom.root.offsetWidth==t.props.lastWidth&&t.dom.root.offsetHeight==t.props.lastHeight||(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight,t.props.scrollbarWidth=c.getScrollBarWidth(),t.body.emitter.emit("_change")))},c.addEventListener(window,"resize",this._onResize),t.dom.root&&(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight),this.watchTimer=setInterval(this._onResize,1e3)},n.prototype._stopAutoResize=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0),this._onResize&&(c.removeEventListener(window,"resize",this._onResize),this._onResize=null)},n.prototype._onTouch=function(t){this.touch.allowDragging=!0,this.touch.initialScrollTop=this.props.scrollTop},n.prototype._onPinch=function(t){this.touch.allowDragging=!1},n.prototype._onDrag=function(t){if(t&&this.touch.allowDragging){var e=t.deltaY,i=this._getScrollTop(),o=this._setScrollTop(this.touch.initialScrollTop+e);this.options.verticalScroll&&(this.dom.left.parentNode.scrollTop=-this.props.scrollTop,this.dom.right.parentNode.scrollTop=-this.props.scrollTop),o!=i&&this.emit("verticalDrag")}},n.prototype._setScrollTop=function(t){return this.props.scrollTop=t,this._updateScrollTop(),this.props.scrollTop},n.prototype._updateScrollTop=function(){var t=Math.min(this.props.centerContainer.height-this.props.center.height,0);return t!=this.props.scrollTopMin&&("top"!=this.options.orientation.item&&(this.props.scrollTop+=t-this.props.scrollTopMin),this.props.scrollTopMin=t),this.props.scrollTop>0&&(this.props.scrollTop=0),this.props.scrollTop<t&&(this.props.scrollTop=t),this.options.verticalScroll&&(this.dom.left.parentNode.scrollTop=-this.props.scrollTop,this.dom.right.parentNode.scrollTop=-this.props.scrollTop),this.props.scrollTop},n.prototype._getScrollTop=function(){return this.props.scrollTop},n.prototype._createConfigurator=function(){throw new Error("Cannot invoke abstract method _createConfigurator")},t.exports=n},function(t,e,i){function o(t,e,i,s,r){this.moment=n,this.current=this.moment(),this._start=this.moment(),this._end=this.moment(),this.autoScale=!0,this.scale="day",this.step=1,this.setRange(t,e,i),this.switchedDay=!1,this.switchedMonth=!1,this.switchedYear=!1,Array.isArray(s)?this.hiddenDates=s:this.hiddenDates=void 0!=s?[s]:[],this.format=o.FORMAT,this.options=r||{}}var n=i(9),s=i(36),r=i(2);o.FORMAT={minorLabels:{millisecond:"SSS",second:"s",minute:"HH:mm",hour:"HH:mm",weekday:"ddd D",day:"D",week:"w",month:"MMM",year:"YYYY"},majorLabels:{millisecond:"HH:mm:ss",second:"D MMMM HH:mm",minute:"ddd D MMMM",hour:"ddd D MMMM",weekday:"MMMM YYYY",day:"MMMM YYYY",week:"MMMM YYYY",month:"YYYY",year:""}},o.prototype.setMoment=function(t){this.moment=t,this.current=this.moment(this.current.valueOf()),this._start=this.moment(this._start.valueOf()),this._end=this.moment(this._end.valueOf())},o.prototype.setFormat=function(t){var e=r.deepExtend({},o.FORMAT);this.format=r.deepExtend(e,t)},o.prototype.setRange=function(t,e,i){if(!(t instanceof Date&&e instanceof Date))throw"No legal start or end date in method setRange";this._start=void 0!=t?this.moment(t.valueOf()):new Date,this._end=void 0!=e?this.moment(e.valueOf()):new Date,this.autoScale&&this.setMinimumStep(i)},o.prototype.start=function(){this.current=this._start.clone(),this.roundToMinor()},o.prototype.roundToMinor=function(){switch("week"==this.scale&&this.current.weekday(0),this.scale){case"year":this.current.year(this.step*Math.floor(this.current.year()/this.step)),this.current.month(0);case"month":this.current.date(1);case"week":case"day":case"weekday":this.current.hours(0);case"hour":this.current.minutes(0);case"minute":this.current.seconds(0);case"second":this.current.milliseconds(0)}if(1!=this.step)switch(this.scale){case"millisecond":this.current.subtract(this.current.milliseconds()%this.step,"milliseconds");break;case"second":this.current.subtract(this.current.seconds()%this.step,"seconds");break;case"minute":this.current.subtract(this.current.minutes()%this.step,"minutes");break;case"hour":this.current.subtract(this.current.hours()%this.step,"hours");break;case"weekday":case"day":this.current.subtract((this.current.date()-1)%this.step,"day");break;case"week":this.current.subtract(this.current.week()%this.step,"week");break;case"month":this.current.subtract(this.current.month()%this.step,"month");break;case"year":this.current.subtract(this.current.year()%this.step,"year")}},o.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()},o.prototype.next=function(){var t=this.current.valueOf();switch(this.scale){case"millisecond":this.current.add(this.step,"millisecond");break;case"second":this.current.add(this.step,"second");break;case"minute":this.current.add(this.step,"minute");break;case"hour":this.current.add(this.step,"hour"),this.current.month()<6?this.current.subtract(this.current.hours()%this.step,"hour"):this.current.hours()%this.step!=0&&this.current.add(this.step-this.current.hours()%this.step,"hour");break;case"weekday":case"day":this.current.add(this.step,"day");break;case"week":if(0!==this.current.weekday())this.current.weekday(0),this.current.add(this.step,"week");else if(!1===this.options.showMajorLabels)this.current.add(this.step,"week");else{var e=this.current.clone();e.add(1,"week"),e.isSame(this.current,"month")?this.current.add(this.step,"week"):(this.current.add(this.step,"week"),this.current.date(1))}break;case"month":this.current.add(this.step,"month");break;case"year":this.current.add(this.step,"year")}if(1!=this.step)switch(this.scale){case"millisecond":this.current.milliseconds()>0&&this.current.milliseconds()<this.step&&this.current.milliseconds(0);break;case"second":this.current.seconds()>0&&this.current.seconds()<this.step&&this.current.seconds(0);break;case"minute":this.current.minutes()>0&&this.current.minutes()<this.step&&this.current.minutes(0);break;case"hour":this.current.hours()>0&&this.current.hours()<this.step&&this.current.hours(0);break;case"weekday":case"day":this.current.date()<this.step+1&&this.current.date(1);break;case"week":this.current.week()<this.step&&this.current.week(1);break;case"month":this.current.month()<this.step&&this.current.month(0)}this.current.valueOf()==t&&(this.current=this._end.clone()),this.switchedDay=!1,this.switchedMonth=!1,this.switchedYear=!1,s.stepOverHiddenDates(this.moment,this,t)},o.prototype.getCurrent=function(){return this.current},o.prototype.setScale=function(t){t&&"string"==typeof t.scale&&(this.scale=t.scale,this.step=t.step>0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){31104e9>t&&(this.scale="year",this.step=1e3),15552e9>t&&(this.scale="year",this.step=500),31104e8>t&&(this.scale="year",this.step=100),15552e8>t&&(this.scale="year",this.step=50),31104e7>t&&(this.scale="year",this.step=10),15552e7>t&&(this.scale="year",this.step=5),31104e6>t&&(this.scale="year",this.step=1),7776e6>t&&(this.scale="month",this.step=3),2592e6>t&&(this.scale="month",this.step=1),432e6>t&&(this.scale="day",this.step=5),1728e5>t&&(this.scale="day",this.step=2),864e5>t&&(this.scale="day",this.step=1),432e5>t&&(this.scale="weekday",this.step=1),144e5>t&&(this.scale="hour",this.step=4),36e5>t&&(this.scale="hour",this.step=1),9e5>t&&(this.scale="minute",this.step=15),6e5>t&&(this.scale="minute",this.step=10),3e5>t&&(this.scale="minute",this.step=5),6e4>t&&(this.scale="minute",this.step=1),15e3>t&&(this.scale="second",this.step=15),1e4>t&&(this.scale="second",this.step=10),5e3>t&&(this.scale="second",this.step=5),1e3>t&&(this.scale="second",this.step=1),200>t&&(this.scale="millisecond",this.step=200),100>t&&(this.scale="millisecond",this.step=100),50>t&&(this.scale="millisecond",this.step=50),10>t&&(this.scale="millisecond",this.step=10),5>t&&(this.scale="millisecond",this.step=5),1>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("week"==e)o.weekday()>2?(o.weekday(0),o.add(1,"week")):o.weekday(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.scale){case"year":case"month":case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.scale){case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":case"week":return 1==t.date();case"month":return 0==t.month();case"year":default:return!1}},o.prototype.getLabelMinor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.minorLabels)return this.format.minorLabels(t,this.scale,this.step);var e=this.format.minorLabels[this.scale];switch(this.scale){case"week":if(this.isMajor()&&0!==t.weekday())return"";default:return e&&e.length>0?this.moment(t).format(e):""}},o.prototype.getLabelMajor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.majorLabels)return this.format.majorLabels(t,this.scale,this.step);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/a%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(n().add(1,"day"),"day")?" vis-tomorrow":t.isSame(n().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}var n=this.moment,s=this.moment(this.current),r=s.locale?s.locale("en"):s.lang("en"),a=this.step,h=[];switch(this.scale){case"millisecond":h.push(e(r)),h.push(t(r.milliseconds()));break;case"second":h.push(e(r)),h.push(t(r.seconds()));break;case"minute":h.push(e(r)),h.push(t(r.minutes()));break;case"hour":h.push("vis-h"+r.hours()+(4==this.step?"-h"+(r.hours()+4):"")),h.push(e(r)),h.push(t(r.hours()));break;case"weekday":h.push("vis-"+r.format("dddd").toLowerCase()),h.push(e(r)),h.push(i(r)),h.push(t(r.date()));break;case"day":h.push("vis-day"+r.date()),h.push("vis-"+r.format("MMMM").toLowerCase()),h.push(e(r)),h.push(o(r)),h.push(this.step<=2?e(r):""),h.push(this.step<=2?"vis-"+r.format("dddd").toLowerCase():""),
+h.push(t(r.date()-1));break;case"week":h.push("vis-week"+r.format("w")),h.push(i(r)),h.push(t(r.week()));break;case"month":h.push("vis-"+r.format("MMMM").toLowerCase()),h.push(o(r)),h.push(t(r.month()));break;case"year":h.push("vis-year"+r.year()),h.push(function(t){return t.isSame(new Date,"year")?" vis-current-year":""}(r)),h.push(t(r.year()))}return h.filter(String).join(" ")},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={rtl:!1,showCurrentTime:!0,moment:r,locales:a,locale:"en"},this.options=n.extend({},this.defaultOptions),this.offset=0,this._create(),this.setOptions(e)}var n=i(2),s=i(16),r=i(9),a=i(98);o.prototype=new s,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-current-time",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},o.prototype.destroy=function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null},o.prototype.setOptions=function(t){t&&n.selectiveExtend(["rtl","showCurrentTime","moment","locale","locales"],this.options,t)},o.prototype.redraw=function(){if(this.options.showCurrentTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar),this.start());var e=this.options.moment((new Date).valueOf()+this.offset),i=this.body.util.toScreen(e),o=this.options.locales[this.options.locale];o||(this.warned||(console.log("WARNING: options.locales['"+this.options.locale+"'] not found. See http://visjs.org/docs/timeline/#Localization"),this.warned=!0),o=this.options.locales.en);var n=o.current+" "+o.time+": "+e.format("dddd, MMMM Do YYYY, H:mm:ss");n=n.charAt(0).toUpperCase()+n.substring(1),this.options.rtl?this.bar.style.right=i+"px":this.bar.style.left=i+"px",this.bar.title=n}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1},o.prototype.start=function(){function t(){e.stop();var i=e.body.range.conversion(e.body.domProps.center.width).scale,o=1/i/10;o<30&&(o=30),o>1e3&&(o=1e3),e.redraw(),e.body.emitter.emit("currentTimeTick"),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e,i){function o(t,e,i){if(this.groupId=t,this.subgroups={},this.subgroupStack={},this.subgroupStackAll=!1,this.doInnerStack=!1,this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.isVisible=null,this.stackDirty=!0,e&&e.nestedGroups&&(this.nestedGroups=e.nestedGroups,0==e.showNested?this.showNested=!1:this.showNested=!0),e&&e.subgroupStack)if("boolean"==typeof e.subgroupStack)this.doInnerStack=e.subgroupStack,this.subgroupStackAll=e.subgroupStack;else for(var o in e.subgroupStack)this.subgroupStack[o]=e.subgroupStack[o],this.doInnerStack=this.doInnerStack||e.subgroupStack[o];this.nestedInGroup=null,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.itemsInRange=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var n=this;this.itemSet.body.emitter.on("checkRangedItems",function(){n.checkRangedItems=!0}),this._create(),this.setData(e)}var n=i(8),s=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(2),a=i(100);o.prototype._create=function(){var t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;var e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="vis-group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.style.position="absolute",this.dom.marker.innerHTML="",this.dom.background.appendChild(this.dom.marker)},o.prototype.setData=function(t){var e,i;if(this.itemSet.options&&this.itemSet.options.groupTemplate?(i=this.itemSet.options.groupTemplate.bind(this),e=i(t,this.dom.inner)):e=t&&t.content,e instanceof Element){for(this.dom.inner.appendChild(e);this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else e instanceof Object?i(t,this.dom.inner):this.dom.inner.innerHTML=void 0!==e&&null!==e?e:this.groupId||"";if(this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?r.removeClassName(this.dom.inner,"vis-hidden"):r.addClassName(this.dom.inner,"vis-hidden"),t&&t.nestedGroups){this.nestedGroups&&this.nestedGroups==t.nestedGroups||(this.nestedGroups=t.nestedGroups),void 0===t.showNested&&void 0!==this.showNested||(0==t.showNested?this.showNested=!1:this.showNested=!0),r.addClassName(this.dom.label,"vis-nesting-group");var o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed";this.showNested?(r.removeClassName(this.dom.label,o),r.addClassName(this.dom.label,"expanded")):(r.removeClassName(this.dom.label,"expanded"),r.addClassName(this.dom.label,o))}else this.nestedGroups&&(this.nestedGroups=null,o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed",r.removeClassName(this.dom.label,o),r.removeClassName(this.dom.label,"expanded"),r.removeClassName(this.dom.label,"vis-nesting-group"));t&&t.nestedInGroup&&(r.addClassName(this.dom.label,"vis-nested-group"),this.itemSet.options&&this.itemSet.options.rtl?this.dom.inner.style.paddingRight="30px":this.dom.inner.style.paddingLeft="30px");var n=t&&t.className||null;n!=this.className&&(this.className&&(r.removeClassName(this.dom.label,this.className),r.removeClassName(this.dom.foreground,this.className),r.removeClassName(this.dom.background,this.className),r.removeClassName(this.dom.axis,this.className)),r.addClassName(this.dom.label,n),r.addClassName(this.dom.foreground,n),r.addClassName(this.dom.background,n),r.addClassName(this.dom.axis,n),this.className=n),this.style&&(r.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(r.addCssText(this.dom.label,t.style),this.style=t.style)},o.prototype.getLabelWidth=function(){return this.props.label.width},o.prototype._didMarkerHeightChange=function(){var t=this.dom.marker.clientHeight;if(t!=this.lastMarkerHeight){this.lastMarkerHeight=t;var e={},i=0;r.forEach(this.items,function(t,o){if(t.dirty=!0,t.displayed){e[o]=t.redraw(!0),i=e[o].length}});if(i>0)for(var o=0;o<i;o++)r.forEach(e,function(t){t[o]()});return!0}},o.prototype._calculateGroupSizeAndPosition=function(){var t=this.dom.foreground.offsetTop,e=this.dom.foreground.offsetLeft,i=this.dom.foreground.offsetWidth;this.top=t,this.right=e,this.width=i},o.prototype._redrawItems=function(t,e,i,o){if(t||this.stackDirty||this.isVisible&&!e){var n={},s=null;if("function"==typeof this.itemSet.options.order){var h=this,d={},l=0;if(r.forEach(this.items,function(t,e){t.displayed||(d[e]=t.redraw(!0),l=d[e].length,h.visibleItems.push(t))}),l>0)for(var u=0;u<l;u++)r.forEach(d,function(t){t[u]()});if(r.forEach(this.items,function(t){t.repositionX(!1)}),this.doInnerStack&&this.itemSet.options.stackSubgroups){for(s in this.subgroups)n[s]=this.subgroups[s].items.slice().sort(function(t,e){return h.itemSet.options.order(t.data,e.data)});a.stackSubgroupsWithInnerStack(n,i,this.subgroups)}else{var c=this.orderedItems.byStart.slice().sort(function(t,e){return h.itemSet.options.order(t.data,e.data)});a.stack(c,i,!0)}this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,o)}else if(this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,o),this.itemSet.options.stack)if(this.doInnerStack&&this.itemSet.options.stackSubgroups){for(s in this.subgroups)n[s]=this.subgroups[s].items;a.stackSubgroupsWithInnerStack(n,i,this.subgroups)}else a.stack(this.visibleItems,i,!0);else a.nostack(this.visibleItems,i,this.subgroups,this.itemSet.options.stackSubgroups);this.stackDirty=!1}},o.prototype._didResize=function(t,e){t=r.updateProperty(this,"height",e)||t;var i=this.dom.inner.clientWidth,o=this.dom.inner.clientHeight;return t=r.updateProperty(this.props.label,"width",i)||t,t=r.updateProperty(this.props.label,"height",o)||t},o.prototype._applyGroupHeight=function(t){this.dom.background.style.height=t+"px",this.dom.foreground.style.height=t+"px",this.dom.label.style.height=t+"px"},o.prototype._updateItemsVerticalPosition=function(t){for(var e=0,i=this.visibleItems.length;e<i;e++){var o=this.visibleItems[e];o.repositionY(t),this.isVisible||"__background__"==this.groupId||o.displayed&&o.hide()}},o.prototype.redraw=function(t,e,i,o){var n,s=!1,r=this.isVisible,a=[function(){i=this._didMarkerHeightChange.bind(this)}.bind(this),this._updateSubGroupHeights.bind(this,e),this._calculateGroupSizeAndPosition.bind(this),function(){this.isVisible=this._isGroupVisible.bind(this)(t,e)}.bind(this),function(){this._redrawItems.bind(this)(i,r,e,t)}.bind(this),this._updateSubgroupsSizes.bind(this),function(){n=this._calculateHeight.bind(this)(e)}.bind(this),this._calculateGroupSizeAndPosition.bind(this),function(){s=this._didResize.bind(this)(s,n)}.bind(this),function(){this._applyGroupHeight.bind(this)(n)}.bind(this),function(){this._updateItemsVerticalPosition.bind(this)(e)}.bind(this),function(){return!this.isVisible&&this.height&&(s=!1),s}];if(o)return a;var h;return a.forEach(function(t){h=t()}),h},o.prototype._updateSubGroupHeights=function(t){if((0,s.default)(this.subgroups).length>0){var e=this;this.resetSubgroups(),r.forEach(this.visibleItems,function(i){void 0!==i.data.subgroup&&(e.subgroups[i.data.subgroup].height=Math.max(e.subgroups[i.data.subgroup].height,i.height+t.item.vertical),e.subgroups[i.data.subgroup].visible=!0)})}},o.prototype._isGroupVisible=function(t,e){return this.top<=t.body.domProps.centerContainer.height-t.body.domProps.scrollTop+e.axis&&this.top+this.height+e.axis>=-t.body.domProps.scrollTop},o.prototype._calculateHeight=function(t){var e,i=this.visibleItems;if(i.length>0){var o=i[0].top,n=i[0].top+i[0].height;if(r.forEach(i,function(t){o=Math.min(o,t.top),n=Math.max(n,t.top+t.height)}),o>t.axis){var s=o-t.axis;n-=s,r.forEach(i,function(t){t.top-=s})}e=n+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),this.stackDirty=!0,void 0!==t.data.subgroup&&(this._addToSubgroup(t),this.orderSubgroups()),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},o.prototype._addToSubgroup=function(t,e){e=e||t.data.subgroup,void 0!=e&&void 0===this.subgroups[e]&&(this.subgroups[e]={height:0,top:0,start:t.data.start,end:t.data.end||t.data.start,visible:!1,index:this.subgroupIndex,items:[],stack:this.subgroupStackAll||this.subgroupStack[e]||!1},this.subgroupIndex++),new Date(t.data.start)<new Date(this.subgroups[e].start)&&(this.subgroups[e].start=t.data.start);var i=t.data.end||t.data.start;new Date(i)>new Date(this.subgroups[e].end)&&(this.subgroups[e].end=i),this.subgroups[e].items.push(t)},o.prototype._updateSubgroupsSizes=function(){var t=this;if(t.subgroups)for(var e in t.subgroups){var i=t.subgroups[e].items[0].data.end||t.subgroups[e].items[0].data.start,o=t.subgroups[e].items[0].data.start,n=i-1;t.subgroups[e].items.forEach(function(t){new Date(t.data.start)<new Date(o)&&(o=t.data.start);var e=t.data.end||t.data.start;new Date(e)>new Date(n)&&(n=e)}),t.subgroups[e].start=o,t.subgroups[e].end=new Date(n-1)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t,e=[];if("string"==typeof this.subgroupOrderer){for(t in this.subgroups)e.push({subgroup:t,sortField:this.subgroups[t].items[0].data[this.subgroupOrderer]});e.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(t in this.subgroups)e.push(this.subgroups[t].items[0].data);e.sort(this.subgroupOrderer)}if(e.length>0)for(var i=0;i<e.length;i++)this.subgroups[e[i].subgroup].index=i}},o.prototype.resetSubgroups=function(){for(var t in this.subgroups)this.subgroups.hasOwnProperty(t)&&(this.subgroups[t].visible=!1,this.subgroups[t].height=0)},o.prototype.remove=function(t){delete this.items[t.id],t.setParent(null),this.stackDirty=!0;var e=this.visibleItems.indexOf(t);-1!=e&&this.visibleItems.splice(e,1),void 0!==t.data.subgroup&&(this._removeFromSubgroup(t),this.orderSubgroups())},o.prototype._removeFromSubgroup=function(t,e){if(void 0!=(e=e||t.data.subgroup)){var i=this.subgroups[e];if(i){var o=i.items.indexOf(t);o>=0&&(i.items.splice(o,1),i.items.length?this._updateSubgroupsSizes():delete this.subgroups[e])}}},o.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},o.prototype.order=function(){for(var t=r.toArray(this.items),e=[],i=[],o=0;o<t.length;o++)void 0!==t[o].data.end&&i.push(t[o]),e.push(t[o]);this.orderedItems={byStart:e,byEnd:i},a.orderByStart(this.orderedItems.byStart),a.orderByEnd(this.orderedItems.byEnd)},o.prototype._updateItemsInRange=function(t,e,i){var o=[],n={},s=(i.end-i.start)/4,a=i.start-s,h=i.end+s,d=function(t){return t<a?-1:t<=h?0:1};if(e.length>0)for(var l=0;l<e.length;l++)this._checkIfVisibleWithReference(e[l],o,n,i);var u=r.binarySearchCustom(t.byStart,d,"data","start");if(this._traceVisible(u,t.byStart,o,n,function(t){return t.data.start<a||t.data.start>h}),1==this.checkRangedItems)for(this.checkRangedItems=!1,l=0;l<t.byEnd.length;l++)this._checkIfVisibleWithReference(t.byEnd[l],o,n,i);else{var c=r.binarySearchCustom(t.byEnd,d,"data","end");this._traceVisible(c,t.byEnd,o,n,function(t){return t.data.end<a||t.data.end>h})}var p={},f=0;for(l=0;l<o.length;l++){var m=o[l];if(!m.displayed){p[l]=m.redraw(!0),f=p[l].length}}if(f>0)for(var v=0;v<f;v++)r.forEach(p,function(t){t[v]()});for(l=0;l<o.length;l++)o[l].repositionX();return o},o.prototype._traceVisible=function(t,e,i,o,n){if(-1!=t){var s,r;for(s=t;s>=0&&(r=e[s],!n(r));s--)void 0===o[r.id]&&(o[r.id]=!0,i.push(r));for(s=t+1;s<e.length&&(r=e[s],!n(r));s++)void 0===o[r.id]&&(o[r.id]=!0,i.push(r))}},o.prototype._checkIfVisible=function(t,e,i){t.isVisible(i)?(t.displayed||t.show(),t.repositionX(),e.push(t)):t.displayed&&t.hide()},o.prototype._checkIfVisibleWithReference=function(t,e,i,o){t.isVisible(o)?void 0===i[t.id]&&(i[t.id]=!0,e.push(t)):t.displayed&&t.hide()},o.prototype.changeSubgroup=function(t,e,i){this._removeFromSubgroup(t,e),this._addToSubgroup(t,i),this.orderSubgroups()},t.exports=o},function(t,e,i){function o(t,e,i){r.call(this,t,e,i),this.width=0,this.height=0,this.top=0,this.left=0}var n=i(29),s=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(68);o.prototype=(0,s.default)(r.prototype),o.prototype.redraw=function(t,e,i){this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,t),this.width=this.dom.background.offsetWidth,this.dom.background.style.height="0";for(var o=0,n=this.visibleItems.length;o<n;o++){this.visibleItems[o].repositionY(e)}return!1},o.prototype.show=function(){this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background)},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={content:{width:0}},this.overflow=!1,this.options=i,t){if(void 0==t.start)throw new Error('Property "start" missing in item '+t.id);if(void 0==t.end)throw new Error('Property "end" missing in item '+t.id)}n.call(this,t,e,i)}var n=i(38);o.prototype=new n(null,null,null),o.prototype.baseClassName="vis-item vis-range",o.prototype.isVisible=function(t){return this.data.start<t.end&&this.data.end>t.start},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.visibleFrame=document.createElement("div"),this.dom.visibleFrame.className="vis-item-visible-frame",this.dom.box.appendChild(this.dom.visibleFrame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dom.box["timeline-item"]=this,this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){var t=this.parent.dom.foreground;if(!t)throw new Error("Cannot redraw item: parent has no foreground container element");t.appendChild(this.dom.box)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var t=this.editable.updateTime||this.editable.updateGroup,e=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(t?" vis-editable":" vis-readonly");this.dom.box.className=this.baseClassName+e,this.dom.content.style.maxWidth="none"}},o.prototype._getDomComponentsSizes=function(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.frame).overflow,{content:{width:this.dom.content.offsetWidth},box:{height:this.dom.box.offsetHeight}}},o.prototype._updateDomComponentsSizes=function(t){this.props.content.width=t.content.width,this.height=t.box.height,this.dom.content.style.maxWidth="",this.dirty=!1},o.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box),this._repaintDeleteButton(this.dom.box),this._repaintDragCenter(),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes.bind(this)())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end),r=void 0===this.data.align?this.options.align:this.data.align;!1===this.data.limitSize||void 0!==t&&!0!==t||(n<-o&&(n=-o),s>2*o&&(s=2*o));var a=Math.max(s-n+.5,1);switch(this.overflow?(this.options.rtl?this.right=n:this.left=n,this.width=a+this.props.content.width,i=this.props.content.width):(this.options.rtl?this.right=n:this.left=n,this.width=a,i=Math.min(s-n,this.props.content.width)),this.options.rtl?this.dom.box.style.right=this.right+"px":this.dom.box.style.left=this.left+"px",this.dom.box.style.width=a+"px",r){case"left":this.options.rtl?this.dom.content.style.right="0":this.dom.content.style.left="0";break;case"right":this.options.rtl?this.dom.content.style.right=Math.max(a-i,0)+"px":this.dom.content.style.left=Math.max(a-i,0)+"px";break;case"center":this.options.rtl?this.dom.content.style.right=Math.max((a-i)/2,0)+"px":this.dom.content.style.left=Math.max((a-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:n<0?-n:0,this.options.rtl?this.dom.content.style.right=e+"px":(this.dom.content.style.left=e+"px",this.dom.content.style.width="calc(100% - "+e+"px)")}},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box;e.style.top="top"==t?this.top+"px":this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragLeft||(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragRight||(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(19),s=o(n),r=i(6),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(2),p=i(179).default,f=function(){function t(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;(0,d.default)(this,t),this.parent=e,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},c.extend(this.options,this.defaultOptions),this.configureOptions=o,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new p(n),this.wrapper=void 0}return(0,u.default)(t,[{key:"setOptions",value:function(t){if(void 0!==t){this.popupHistory={},this._removePopup();var e=!0;"string"==typeof t?this.options.filter=t:t instanceof Array?this.options.filter=t.join():"object"===(void 0===t?"undefined":(0,a.default)(t))?(void 0!==t.container&&(this.options.container=t.container),void 0!==t.filter&&(this.options.filter=t.filter),void 0!==t.showButton&&(this.options.showButton=t.showButton),void 0!==t.enabled&&(e=t.enabled)):"boolean"==typeof t?(this.options.filter=!0,e=t):"function"==typeof t&&(this.options.filter=t,e=!0),!1===this.options.filter&&(e=!1),this.options.enabled=e}this._clean()}},{key:"setModuleOptions",value:function(t){this.moduleOptions=t,!0===this.options.enabled&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:"_create",value:function(){var t=this;this._clean(),this.changedOptions=[];var e=this.options.filter,i=0,o=!1;for(var n in this.configureOptions)this.configureOptions.hasOwnProperty(n)&&(this.allowCreation=!1,o=!1,"function"==typeof e?(o=e(n,[]),o=o||this._handleObject(this.configureOptions[n],[n],!0)):!0!==e&&-1===e.indexOf(n)||(o=!0),!1!==o&&(this.allowCreation=!0,i>0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);if(!0===this.options.showButton){var s=document.createElement("div");s.className="vis-configuration vis-config-button",s.innerHTML="generate options",s.onclick=function(){t._printOptions()},s.onmouseover=function(){s.className="vis-configuration vis-config-button hover"},s.onmouseout=function(){s.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(s)}this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t<this.domElements.length;t++)this.wrapper.appendChild(this.domElements[t]);this._showPopupIfNeeded()}},{key:"_clean",value:function(){for(var t=0;t<this.domElements.length;t++)this.wrapper.removeChild(this.domElements[t]);void 0!==this.wrapper&&(this.container.removeChild(this.wrapper),this.wrapper=void 0),this.domElements=[],this._removePopup()}},{key:"_getValue",value:function(t){for(var e=this.moduleOptions,i=0;i<t.length;i++){if(void 0===e[t[i]]){e=void 0;break}e=e[t[i]]}return e}},{key:"_makeItem",value:function(t){if(!0===this.allowCreation){var e=document.createElement("div");e.className="vis-configuration vis-config-item vis-config-s"+t.length;for(var i=arguments.length,o=Array(i>1?i-1:0),n=1;n<i;n++)o[n-1]=arguments[n];return o.forEach(function(t){e.appendChild(t)}),this.domElements.push(e),this.domElements.length}return 0}},{key:"_makeHeader",value:function(t){var e=document.createElement("div");e.className="vis-configuration vis-config-header",e.innerHTML=t,this._makeItem([],e)}},{key:"_makeLabel",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+e.length,o.innerHTML=!0===i?"<i><b>"+t+":</b></i>":t+":",o}},{key:"_makeDropdown",value:function(t,e,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==e&&-1!==t.indexOf(e)&&(n=t.indexOf(e));for(var s=0;s<t.length;s++){var r=document.createElement("option");r.value=t[s],s===n&&(r.selected="selected"),r.innerHTML=t[s],o.appendChild(r)}var a=this;o.onchange=function(){a._update(this.value,i)};var h=this._makeLabel(i[i.length-1],i);this._makeItem(i,h,o)}},{key:"_makeRange",value:function(t,e,i){var o=t[0],n=t[1],s=t[2],r=t[3],a=document.createElement("input");a.className="vis-configuration vis-config-range";try{a.type="range",a.min=n,a.max=s}catch(t){}a.step=r;var h="",d=0;if(void 0!==e){e<0&&1.2*e<n?(a.min=Math.ceil(1.2*e),d=a.min,h="range increased"):e/1.2<n&&(a.min=Math.ceil(e/1.2),d=a.min,h="range increased"),1.2*e>s&&1!==s&&(a.max=Math.ceil(1.2*e),d=a.max,h="range increased"),a.value=e}else a.value=o;var l=document.createElement("input");l.className="vis-configuration vis-config-rangeinput",l.value=a.value;var u=this;a.onchange=function(){l.value=this.value,u._update(Number(this.value),i)},a.oninput=function(){l.value=this.value};var c=this._makeLabel(i[i.length-1],i),p=this._makeItem(i,c,a,l);""!==h&&this.popupHistory[p]!==d&&(this.popupHistory[p]=d,this._setupPopup(h,p))}},{key:"_setupPopup",value:function(t,e){var i=this;if(!0===this.initialized&&!0===this.allowCreation&&this.popupCounter<this.popupLimit){var o=document.createElement("div");o.id="vis-configuration-popup",o.className="vis-configuration-popup",o.innerHTML=t,o.onclick=function(){i._removePopup()},this.popupCounter+=1,this.popupDiv={html:o,index:e}}}},{key:"_removePopup",value:function(){void 0!==this.popupDiv.html&&(this.popupDiv.html.parentNode.removeChild(this.popupDiv.html),clearTimeout(this.popupDiv.hideTimeout),clearTimeout(this.popupDiv.deleteTimeout),this.popupDiv={})}},{key:"_showPopupIfNeeded",value:function(){var t=this;if(void 0!==this.popupDiv.html){var e=this.domElements[this.popupDiv.index],i=e.getBoundingClientRect();this.popupDiv.html.style.left=i.left+"px",this.popupDiv.html.style.top=i.top-30+"px",document.body.appendChild(this.popupDiv.html),this.popupDiv.hideTimeout=setTimeout(function(){t.popupDiv.html.style.opacity=0},1500),this.popupDiv.deleteTimeout=setTimeout(function(){t._removePopup()},1800)}}},{key:"_makeCheckbox",value:function(t,e,i){var o=document.createElement("input");o.type="checkbox",o.className="vis-configuration vis-config-checkbox",o.checked=t,void 0!==e&&(o.checked=e,e!==t&&("object"===(void 0===t?"undefined":(0,a.default)(t))?e!==t.enabled&&this.changedOptions.push({path:i,value:e}):this.changedOptions.push({path:i,value:e})));var n=this;o.onchange=function(){n._update(this.checked,i)};var s=this._makeLabel(i[i.length-1],i);this._makeItem(i,s,o)}},{key:"_makeTextInput",value:function(t,e,i){var o=document.createElement("input");o.type="text",o.className="vis-configuration vis-config-text",o.value=e,e!==t&&this.changedOptions.push({path:i,value:e});var n=this;o.onchange=function(){n._update(this.value,i)};var s=this._makeLabel(i[i.length-1],i);this._makeItem(i,s,o)}},{key:"_makeColorField",value:function(t,e,i){var o=this,n=t[1],s=document.createElement("div");e=void 0===e?n:e,"none"!==e?(s.className="vis-configuration vis-config-colorBlock",s.style.backgroundColor=e):s.className="vis-configuration vis-config-colorBlock none",e=void 0===e?n:e,s.onclick=function(){o._showColorPicker(e,s,i)};var r=this._makeLabel(i[i.length-1],i);this._makeItem(i,r,s)}},{key:"_showColorPicker",value:function(t,e,i){var o=this;e.onclick=function(){},this.colorPicker.insertTo(e),this.colorPicker.show(),this.colorPicker.setColor(t),this.colorPicker.setUpdateCallback(function(t){var n="rgba("+t.r+","+t.g+","+t.b+","+t.a+")";e.style.backgroundColor=n,o._update(n,i)}),this.colorPicker.setCloseCallback(function(){e.onclick=function(){o._showColorPicker(t,e,i)}})}},{key:"_handleObject",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1,n=this.options.filter,s=!1;for(var r in t)if(t.hasOwnProperty(r)){o=!0;var a=t[r],h=c.copyAndExtendArray(e,r);if("function"==typeof n&&!1===(o=n(r,e))&&!(a instanceof Array)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,o=this._handleObject(a,h,!0),this.allowCreation=!1===i),!1!==o){s=!0;var d=this._getValue(h);if(a instanceof Array)this._handleArray(a,d,h);else if("string"==typeof a)this._makeTextInput(a,d,h);else if("boolean"==typeof a)this._makeCheckbox(a,d,h);else if(a instanceof Object){var l=!0;if(-1!==e.indexOf("physics")&&this.moduleOptions.physics.solver!==r&&(l=!1),!0===l)if(void 0!==a.enabled){var u=c.copyAndExtendArray(h,"enabled"),p=this._getValue(u);if(!0===p){var f=this._makeLabel(r,h,!0);this._makeItem(h,f),s=this._handleObject(a,h)||s}else this._makeCheckbox(a,p,h)}else{var m=this._makeLabel(r,h,!0);this._makeItem(h,m),s=this._handleObject(a,h)||s}}else console.error("dont know how to handle",a,r,h)}}return s}},{key:"_handleArray",value:function(t,e,i){"string"==typeof t[0]&&"color"===t[0]?(this._makeColorField(t,e,i),t[1]!==e&&this.changedOptions.push({path:i,value:e})):"string"==typeof t[0]?(this._makeDropdown(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:e})):"number"==typeof t[0]&&(this._makeRange(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:Number(e)}))}},{key:"_update",value:function(t,e){var i=this._constructOptions(t,e);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}},{key:"_constructOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i;t="true"===t||t,t="false"!==t&&t;for(var n=0;n<e.length;n++)"global"!==e[n]&&(void 0===o[e[n]]&&(o[e[n]]={}),n!==e.length-1?o=o[e[n]]:o[e[n]]=t);return i}},{key:"_printOptions",value:function(){var t=this.getOptions();this.optionsContainer.innerHTML="<pre>var options = "+(0,s.default)(t,null,2)+"</pre>"}},{key:"getOptions",value:function(){for(var t={},e=0;e<this.changedOptions.length;e++)this._constructOptions(this.changedOptions[e].value,this.changedOptions[e].path,t);return t}}]),t}();e.default=f},function(t,e,i){function o(t,e){}function n(t,e){return e=void 0===e?{}:e,{style:e.style||t.options.drawPoints.style,
+styles:e.styles||t.options.drawPoints.styles,size:e.size||t.options.drawPoints.size,className:e.className||t.className}}function s(t,e){var i=void 0;return t.options&&t.options.drawPoints&&t.options.drawPoints.onRender&&"function"==typeof t.options.drawPoints.onRender&&(i=t.options.drawPoints.onRender),e.group.options&&e.group.options.drawPoints&&e.group.options.drawPoints.onRender&&"function"==typeof e.group.options.drawPoints.onRender&&(i=e.group.options.drawPoints.onRender),i}var r=i(6),a=function(t){return t&&t.__esModule?t:{default:t}}(r),h=i(14);o.draw=function(t,e,i,o){o=o||0;for(var r=s(i,e),d=0;d<t.length;d++)if(r){var l=r(t[d],e);!0!==l&&"object"!==(void 0===l?"undefined":(0,a.default)(l))||h.drawPoint(t[d].screen_x+o,t[d].screen_y,n(e,l),i.svgElements,i.svg,t[d].label)}else h.drawPoint(t[d].screen_x+o,t[d].screen_y,n(e),i.svgElements,i.svg,t[d].label)},o.drawIcon=function(t,e,i,o,s,r){var a=.5*s,d=h.getSVGElement("rect",r.svgElements,r.svg);d.setAttributeNS(null,"x",e),d.setAttributeNS(null,"y",i-a),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",2*a),d.setAttributeNS(null,"class","vis-outline"),h.drawPoint(e+.5*o,i,n(t),r.svgElements,r.svg)},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n.labelOffset=0,n.selected=!1,n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"setOptions",value:function(t,e,i){this.options=t,void 0===e&&void 0===i||this.setImages(e,i)}},{key:"setImages",value:function(t,e){e&&this.selected?(this.imageObj=e,this.imageObjAlt=t):(this.imageObj=t,this.imageObjAlt=e)}},{key:"switchImages",value:function(t){var e=t&&!this.selected||!t&&this.selected;if(this.selected=t,void 0!==this.imageObjAlt&&e){var i=this.imageObj;this.imageObj=this.imageObjAlt,this.imageObjAlt=i}}},{key:"_resizeImage",value:function(){var t,e;if(!1===this.options.shapeProperties.useImageSize){var i=1,o=1;this.imageObj.width&&this.imageObj.height&&(this.imageObj.width>this.imageObj.height?i=this.imageObj.width/this.imageObj.height:o=this.imageObj.height/this.imageObj.width),t=2*this.options.size*i,e=2*this.options.size*o}else t=this.imageObj.width,e=this.imageObj.height;this.width=t,this.height=e,this.radius=.5*this.width}},{key:"_drawRawCircle",value:function(t,e,i,o){this.initContextForDraw(t,o),t.circle(e,i,o.size),this.performFill(t,o)}},{key:"_drawImageAtPosition",value:function(t,e){if(0!=this.imageObj.width){t.globalAlpha=1,this.enableShadow(t,e);var i=1;!0===this.options.shapeProperties.interpolation&&(i=this.imageObj.width/this.width/this.body.view.scale),this.imageObj.drawImageAtPosition(t,i,this.left,this.top,this.width,this.height),this.disableShadow(t,e)}}},{key:"_drawImageLabel",value:function(t,e,i,o,n){var s,r=0;if(void 0!==this.height){r=.5*this.height;var a=this.labelModule.getTextSize(t,o,n);a.lineCount>=1&&(r+=a.height/2)}s=i+r,this.options.label&&(this.labelOffset=r),this.labelModule.draw(t,e,s,o,n,"hanging")}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(19),s=o(n),r=i(6),a=o(r),h=i(29),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=i(117).default,v=i(48).default,g=i(215).default,y=i(217).default,b=i(218).default,_=i(219).default,w=function(){function t(e,i,o,n){if((0,u.default)(this,t),void 0===i)throw new Error("No body provided");this.options=f.bridgeObject(o),this.globalOptions=o,this.defaultOptions=n,this.body=i,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new m(this.body,this.options,!0),this.setOptions(e)}return(0,p.default)(t,[{key:"setOptions",value:function(e){if(e){t.parseOptions(this.options,e,!0,this.globalOptions),void 0!==e.id&&(this.id=e.id),void 0!==e.from&&(this.fromId=e.from),void 0!==e.to&&(this.toId=e.to),void 0!==e.title&&(this.title=e.title),void 0!==e.value&&(e.value=parseFloat(e.value));var i=[e,this.options,this.defaultOptions];this.chooser=v.choosify("edge",i),this.updateLabelModule(e);var o=this.updateEdgeType();return this._setInteractionWidths(),this.connect(),void 0===e.hidden&&void 0===e.physics||(o=!0),o}}},{key:"getFormattingValues",value:function(){var t=!0===this.options.arrows.to||!0===this.options.arrows.to.enabled,e=!0===this.options.arrows.from||!0===this.options.arrows.from.enabled,i=!0===this.options.arrows.middle||!0===this.options.arrows.middle.enabled,o=this.options.color.inherit,n={toArrow:t,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,middleArrow:i,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,fromArrow:e,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,arrowStrikethrough:this.options.arrowStrikethrough,color:o?void 0:this.options.color.color,inheritsColor:o,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width};if(this.selected||this.hover)if(!0===this.chooser){if(this.selected){var s=this.options.selectionWidth;"function"==typeof s?n.width=s(n.width):"number"==typeof s&&(n.width+=s),n.width=Math.max(n.width,.3/this.body.view.scale),n.color=this.options.color.highlight,n.shadow=this.options.shadow.enabled}else if(this.hover){var r=this.options.hoverWidth;"function"==typeof r?n.width=r(n.width):"number"==typeof r&&(n.width+=r),n.width=Math.max(n.width,.3/this.body.view.scale),n.color=this.options.color.hover,n.shadow=this.options.shadow.enabled}}else"function"==typeof this.chooser&&(this.chooser(n,this.options.id,this.selected,this.hover),void 0!==n.color&&(n.inheritsColor=!1),!1===n.shadow&&(n.shadowColor===this.options.shadow.color&&n.shadowSize===this.options.shadow.size&&n.shadowX===this.options.shadow.x&&n.shadowY===this.options.shadow.y||(n.shadow=!0)));else n.shadow=this.options.shadow.enabled,n.width=Math.max(n.width,.3/this.body.view.scale);return n}},{key:"updateLabelModule",value:function(t){var e=[t,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,e),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}},{key:"updateEdgeType",value:function(){var t=this.options.smooth,e=!1,i=!0;return void 0!==this.edgeType&&((this.edgeType instanceof y&&!0===t.enabled&&"dynamic"===t.type||this.edgeType instanceof g&&!0===t.enabled&&"cubicBezier"===t.type||this.edgeType instanceof b&&!0===t.enabled&&"dynamic"!==t.type&&"cubicBezier"!==t.type||this.edgeType instanceof _&&!1===t.type.enabled)&&(i=!1),!0===i&&(e=this.cleanup())),!0===i?!0===t.enabled?"dynamic"===t.type?(e=!0,this.edgeType=new y(this.options,this.body,this.labelModule)):"cubicBezier"===t.type?this.edgeType=new g(this.options,this.body,this.labelModule):this.edgeType=new b(this.options,this.body,this.labelModule):this.edgeType=new _(this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),e}},{key:"connect",value:function(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=void 0!==this.from&&void 0!==this.to,!0===this.connected?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}},{key:"disconnect",value:function(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}},{key:"getTitle",value:function(){return this.title}},{key:"isSelected",value:function(){return this.selected}},{key:"getValue",value:function(){return this.options.value}},{key:"setValueRange",value:function(t,e,i){if(void 0!==this.options.value){var o=this.options.scaling.customScalingFunction(t,e,i,this.options.value),n=this.options.scaling.max-this.options.scaling.min;if(!0===this.options.scaling.label.enabled){var s=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*s}this.options.width=this.options.scaling.min+o*n}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}},{key:"_setInteractionWidths",value:function(){"function"==typeof this.options.hoverWidth?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,"function"==typeof this.options.selectionWidth?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}},{key:"draw",value:function(t){var e=this.getFormattingValues();if(!e.hidden){var i=this.edgeType.getViaNode(),o={};this.edgeType.fromPoint=this.edgeType.from,this.edgeType.toPoint=this.edgeType.to,e.fromArrow&&(o.from=this.edgeType.getArrowData(t,"from",i,this.selected,this.hover,e),!1===e.arrowStrikethrough&&(this.edgeType.fromPoint=o.from.core)),e.toArrow&&(o.to=this.edgeType.getArrowData(t,"to",i,this.selected,this.hover,e),!1===e.arrowStrikethrough&&(this.edgeType.toPoint=o.to.core)),e.middleArrow&&(o.middle=this.edgeType.getArrowData(t,"middle",i,this.selected,this.hover,e)),this.edgeType.drawLine(t,e,this.selected,this.hover,i),this.drawArrows(t,o,e),this.drawLabel(t,i)}}},{key:"drawArrows",value:function(t,e,i){i.fromArrow&&this.edgeType.drawArrowHead(t,i,this.selected,this.hover,e.from),i.middleArrow&&this.edgeType.drawArrowHead(t,i,this.selected,this.hover,e.middle),i.toArrow&&this.edgeType.drawArrowHead(t,i,this.selected,this.hover,e.to)}},{key:"drawLabel",value:function(t,e){if(void 0!==this.options.label){var i=this.from,o=this.to;if(this.labelModule.differentState(this.selected,this.hover)&&this.labelModule.getTextSize(t,this.selected,this.hover),i.id!=o.id){this.labelModule.pointToSelf=!1;var n=this.edgeType.getPoint(.5,e);t.save();var s=this._getRotation(t);0!=s.angle&&(t.translate(s.x,s.y),t.rotate(s.angle)),this.labelModule.draw(t,n.x,n.y,this.selected,this.hover),t.restore()}else{this.labelModule.pointToSelf=!0;var r,a,h=this.options.selfReferenceSize;i.shape.width>i.shape.height?(r=i.x+.5*i.shape.width,a=i.y-h):(r=i.x+h,a=i.y-.5*i.shape.height),n=this._pointOnCircle(r,a,h,.125),this.labelModule.draw(t,n.x,n.y,this.selected,this.hover)}}}},{key:"getItemsOnPoint",value:function(t){var e=[];if(this.labelModule.visible()){var i=this._getRotation();v.pointInRect(this.labelModule.getSize(),t,i)&&e.push({edgeId:this.id,labelId:0})}var o={left:t.x,top:t.y};return this.isOverlappingWith(o)&&e.push({edgeId:this.id}),e}},{key:"isOverlappingWith",value:function(t){if(this.connected){var e=this.from.x,i=this.from.y,o=this.to.x,n=this.to.y,s=t.left,r=t.top;return this.edgeType.getDistanceToEdge(e,i,o,n,s,r)<10}return!1}},{key:"_getRotation",value:function(t){var e=this.edgeType.getViaNode(),i=this.edgeType.getPoint(.5,e);void 0!==t&&this.labelModule.calculateLabelSize(t,this.selected,this.hover,i.x,i.y);var o={x:i.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible())return o;if("horizontal"===this.options.font.align)return o;var n=this.from.y-this.to.y,s=this.from.x-this.to.x,r=Math.atan2(n,s);return(r<-1&&s<0||r>0&&s<0)&&(r+=Math.PI),o.angle=r,o}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"select",value:function(){this.selected=!0}},{key:"unselect",value:function(){this.selected=!1}},{key:"cleanup",value:function(){return this.edgeType.cleanup()}},{key:"remove",value:function(){this.cleanup(),this.disconnect(),delete this.body.edges[this.id]}},{key:"endPointsValid",value:function(){return void 0!==this.body.nodes[this.fromId]&&void 0!==this.body.nodes[this.toId]}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=["arrowStrikethrough","id","from","hidden","hoverWidth","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","to","title","value","width","font","chosen","widthConstraint"];if(f.selectiveDeepExtend(r,t,e,i),v.isValidLabel(e.label)?t.label=e.label:t.label=void 0,f.mergeOptions(t,e,"smooth",o),f.mergeOptions(t,e,"shadow",o),void 0!==e.dashes&&null!==e.dashes?t.dashes=e.dashes:!0===i&&null===e.dashes&&(t.dashes=(0,d.default)(o.dashes)),void 0!==e.scaling&&null!==e.scaling?(void 0!==e.scaling.min&&(t.scaling.min=e.scaling.min),void 0!==e.scaling.max&&(t.scaling.max=e.scaling.max),f.mergeOptions(t.scaling,e.scaling,"label",o.scaling)):!0===i&&null===e.scaling&&(t.scaling=(0,d.default)(o.scaling)),void 0!==e.arrows&&null!==e.arrows)if("string"==typeof e.arrows){var h=e.arrows.toLowerCase();t.arrows.to.enabled=-1!=h.indexOf("to"),t.arrows.middle.enabled=-1!=h.indexOf("middle"),t.arrows.from.enabled=-1!=h.indexOf("from")}else{if("object"!==(0,a.default)(e.arrows))throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+(0,s.default)(e.arrows));f.mergeOptions(t.arrows,e.arrows,"to",o.arrows),f.mergeOptions(t.arrows,e.arrows,"middle",o.arrows),f.mergeOptions(t.arrows,e.arrows,"from",o.arrows)}else!0===i&&null===e.arrows&&(t.arrows=(0,d.default)(o.arrows));if(void 0!==e.color&&null!==e.color){var l=e.color,u=t.color;if(n)f.deepExtend(u,o.color,!1,i);else for(var c in u)u.hasOwnProperty(c)&&delete u[c];if(f.isString(u))u.color=u,u.highlight=u,u.hover=u,u.inherit=!1,void 0===l.opacity&&(u.opacity=1);else{var p=!1;void 0!==l.color&&(u.color=l.color,p=!0),void 0!==l.highlight&&(u.highlight=l.highlight,p=!0),void 0!==l.hover&&(u.hover=l.hover,p=!0),void 0!==l.inherit&&(u.inherit=l.inherit),void 0!==l.opacity&&(u.opacity=Math.min(1,Math.max(0,l.opacity))),!0===p?u.inherit=!1:void 0===u.inherit&&(u.inherit="from")}}else!0===i&&null===e.color&&(t.color=f.bridgeObject(o.color));!0===i&&null===e.font&&(t.font=f.bridgeObject(o.font))}}]),t}();e.default=w},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(118),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_findBorderPositionBezier",value:function(t,e){var i,o,n,s,r,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._getViaCoordinates(),h=0,d=0,l=1,u=this.to,c=!1;for(t.id===this.from.id&&(u=this.from,c=!0);d<=l&&h<10;){var p=.5*(d+l);if(i=this.getPoint(p,a),o=Math.atan2(u.y-i.y,u.x-i.x),n=u.distanceToBorder(e,o),s=Math.sqrt(Math.pow(i.x-u.x,2)+Math.pow(i.y-u.y,2)),r=n-s,Math.abs(r)<.2)break;r<0?!1===c?d=p:l=p:!1===c?l=p:d=p,h++}return i.t=p,i}},{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r){var a=1e9,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0,p=t,f=e;for(d=1;d<10;d++)l=.1*d,u=Math.pow(1-l,2)*t+2*l*(1-l)*r.x+Math.pow(l,2)*i,c=Math.pow(1-l,2)*e+2*l*(1-l)*r.y+Math.pow(l,2)*o,d>0&&(h=this._getDistanceToLine(p,f,u,c,n,s),a=h<a?h:a),p=u,f=c;return a}},{key:"_bezierCurve",value:function(t,e,i,o){var n=void 0!==i&&void 0!==i.x,s=void 0!==o&&void 0!==o.x;t.beginPath(),t.moveTo(this.fromPoint.x,this.fromPoint.y),n&&s?t.bezierCurveTo(i.x,i.y,o.x,o.y,this.toPoint.x,this.toPoint.y):n?t.quadraticCurveTo(i.x,i.y,this.toPoint.x,this.toPoint.y):t.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(t,e),t.stroke(),this.disableShadow(t,e)}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=function(){function t(){(0,s.default)(this,t)}return(0,a.default)(t,null,[{key:"getRange",value:function(t){var e,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;a<i.length;a++)e=t[i[a]],s>e.shape.boundingBox.left&&(s=e.shape.boundingBox.left),r<e.shape.boundingBox.right&&(r=e.shape.boundingBox.right),o>e.shape.boundingBox.top&&(o=e.shape.boundingBox.top),n<e.shape.boundingBox.bottom&&(n=e.shape.boundingBox.bottom);return 1e9===s&&-1e9===r&&1e9===o&&-1e9===n&&(o=0,n=0,s=0,r=0),{minX:s,maxX:r,minY:o,maxY:n}}},{key:"getRangeCore",value:function(t){var e,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;a<i.length;a++)e=t[i[a]],s>e.x&&(s=e.x),r<e.x&&(r=e.x),o>e.y&&(o=e.y),n<e.y&&(n=e.y);return 1e9===s&&-1e9===r&&1e9===o&&-1e9===n&&(o=0,n=0,s=0,r=0),{minX:s,maxX:r,minY:o,maxY:n}}},{key:"findCenter",value:function(t){return{x:.5*(t.maxX+t.minX),y:.5*(t.maxY+t.minY)}}},{key:"cloneOptions",value:function(t,e){var i={};return void 0===e||"node"===e?(h.deepExtend(i,t.options,!0),i.x=t.x,i.y=t.y,i.amountOfConnections=t.edges.length):h.deepExtend(i,t.options,!0),i}}]),t}();e.default=d},function(t,e,i){t.exports={default:i(124),__esModule:!0}},function(t,e,i){var o=i(50);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==o(t)?t.split(""):Object(t)}},function(t,e,i){var o=i(52),n=i(17),s=i(83),r=i(26),a=i(22),h=i(31),d=i(129),l=i(59),u=i(85),c=i(13)("iterator"),p=!([].keys&&"next"in[].keys()),f=function(){return this};t.exports=function(t,e,i,m,v,g,y){d(i,e,m);var b,_,w,x=function(t){if(!p&&t in M)return M[t];switch(t){case"keys":case"values":return function(){return new i(this,t)}}return function(){return new i(this,t)}},k=e+" Iterator",S="values"==v,D=!1,M=t.prototype,C=M[c]||M["@@iterator"]||v&&M[v],O=C||x(v),E=v?S?x("entries"):O:void 0,T="Array"==e?M.entries||C:C;if(T&&(w=u(T.call(new t)))!==Object.prototype&&w.next&&(l(w,k,!0),o||a(w,c)||r(w,c,f)),S&&C&&"values"!==C.name&&(D=!0,O=function(){return C.call(this)}),o&&!y||!p&&!D&&M[c]||r(M,c,O),h[e]=O,h[k]=f,v)if(b={values:S?O:x("values"),keys:g?O:x("keys"),entries:E},y)for(_ in b)_ in M||s(M,_,b[_]);else n(n.P+n.F*(p||D),e,b);return b}},function(t,e,i){var o=i(128);t.exports=function(t,e,i){if(o(t),void 0===e)return t;switch(i){case 1:return function(i){return t.call(e,i)};case 2:return function(i,o){return t.call(e,i,o)};case 3:return function(i,o,n){return t.call(e,i,o,n)}}return function(){return t.apply(e,arguments)}}},function(t,e,i){t.exports=!i(21)&&!i(28)(function(){return 7!=Object.defineProperty(i(82)("div"),"a",{get:function(){return 7}}).a})},function(t,e,i){var o=i(32),n=i(18).document,s=o(n)&&o(n.createElement);t.exports=function(t){return s?n.createElement(t):{}}},function(t,e,i){t.exports=i(26)},function(t,e,i){var o=i(22),n=i(25),s=i(131)(!1),r=i(56)("IE_PROTO");t.exports=function(t,e){var i,a=n(t),h=0,d=[];for(i in a)i!=r&&o(a,i)&&d.push(i);for(;e.length>h;)o(a,i=e[h++])&&(~s(d,i)||d.push(i));return d}},function(t,e,i){var o=i(22),n=i(41),s=i(56)("IE_PROTO"),r=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=n(t),o(t,s)?t[s]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?r:null}},function(t,e,i){var o=i(50),n=i(13)("toStringTag"),s="Arguments"==o(function(){return arguments}()),r=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,i,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(i=r(e=Object(t),n))?i:s?o(e):"Object"==(a=o(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,i){var o=i(17),n=i(7),s=i(28);t.exports=function(t,e){var i=(n.Object||{})[t]||Object[t],r={};r[t]=e(i),o(o.S+o.F*s(function(){i(1)}),"Object",r)}},function(t,e,i){var o=i(84),n=i(58).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return o(t,n)}},function(t,e,i){var o=i(42),n=i(39),s=i(25),r=i(53),a=i(22),h=i(81),d=Object.getOwnPropertyDescriptor;e.f=i(21)?d:function(t,e){if(t=s(t),e=r(e,!0),h)try{return d(t,e)}catch(t){}if(a(t,e))return n(!o.f.call(t,e),t[e])}},function(t,e,i){t.exports={default:i(162),__esModule:!0}},function(t,e,i){function o(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0}t.exports=o},function(t,e,i){function o(t,e){if(void 0===t)throw new Error("No container element defined");if(this.container=t,this.visible=!e||void 0==e.visible||e.visible,this.visible){this.frame=document.createElement("DIV"),this.frame.style.width="100%",this.frame.style.position="relative",this.container.appendChild(this.frame),this.frame.prev=document.createElement("INPUT"),this.frame.prev.type="BUTTON",this.frame.prev.value="Prev",this.frame.appendChild(this.frame.prev),this.frame.play=document.createElement("INPUT"),this.frame.play.type="BUTTON",this.frame.play.value="Play",this.frame.appendChild(this.frame.play),this.frame.next=document.createElement("INPUT"),this.frame.next.type="BUTTON",this.frame.next.value="Next",this.frame.appendChild(this.frame.next),this.frame.bar=document.createElement("INPUT"),this.frame.bar.type="BUTTON",this.frame.bar.style.position="absolute",this.frame.bar.style.border="1px solid red",this.frame.bar.style.width="100px",this.frame.bar.style.height="6px",this.frame.bar.style.borderRadius="2px",this.frame.bar.style.MozBorderRadius="2px",this.frame.bar.style.border="1px solid #7F7F7F",this.frame.bar.style.backgroundColor="#E5E5E5",this.frame.appendChild(this.frame.bar),this.frame.slide=document.createElement("INPUT"),this.frame.slide.type="BUTTON",this.frame.slide.style.margin="0px",this.frame.slide.value=" ",this.frame.slide.style.position="relative",this.frame.slide.style.left="-100px",this.frame.appendChild(this.frame.slide);var i=this;this.frame.slide.onmousedown=function(t){i._onMouseDown(t)},this.frame.prev.onclick=function(t){i.prev(t)},this.frame.play.onclick=function(t){i.togglePlay(t)},this.frame.next.onclick=function(t){i.next(t)}}this.onChangeCallback=void 0,this.values=[],this.index=void 0,this.playTimeout=void 0,this.playInterval=1e3,this.playLoop=!0}var n=i(2);o.prototype.prev=function(){var t=this.getIndex();t>0&&(t--,this.setIndex(t))},o.prototype.next=function(){var t=this.getIndex();t<this.values.length-1&&(t++,this.setIndex(t))},o.prototype.playNext=function(){var t=new Date,e=this.getIndex();e<this.values.length-1?(e++,this.setIndex(e)):this.playLoop&&(e=0,this.setIndex(e));var i=new Date,o=i-t,n=Math.max(this.playInterval-o,0),s=this;this.playTimeout=setTimeout(function(){s.playNext()},n)},o.prototype.togglePlay=function(){void 0===this.playTimeout?this.play():this.stop()},o.prototype.play=function(){this.playTimeout||(this.playNext(),this.frame&&(this.frame.play.value="Stop"))},o.prototype.stop=function(){clearInterval(this.playTimeout),this.playTimeout=void 0,this.frame&&(this.frame.play.value="Play")},o.prototype.setOnChangeCallback=function(t){this.onChangeCallback=t},o.prototype.setPlayInterval=function(t){this.playInterval=t},o.prototype.getPlayInterval=function(){return this.playInterval},o.prototype.setPlayLoop=function(t){this.playLoop=t},o.prototype.onChange=function(){void 0!==this.onChangeCallback&&this.onChangeCallback()},o.prototype.redraw=function(){if(this.frame){this.frame.bar.style.top=this.frame.clientHeight/2-this.frame.bar.offsetHeight/2+"px",this.frame.bar.style.width=this.frame.clientWidth-this.frame.prev.clientWidth-this.frame.play.clientWidth-this.frame.next.clientWidth-30+"px";var t=this.indexToLeft(this.index);this.frame.slide.style.left=t+"px"}},o.prototype.setValues=function(t){this.values=t,this.values.length>0?this.setIndex(0):this.index=void 0},o.prototype.setIndex=function(t){if(!(t<this.values.length))throw new Error("Index out of range");this.index=t,this.redraw(),this.onChange()},o.prototype.getIndex=function(){return this.index},o.prototype.get=function(){return this.values[this.index]},o.prototype._onMouseDown=function(t){if(t.which?1===t.which:1===t.button){this.startClientX=t.clientX,this.startSlideX=parseFloat(this.frame.slide.style.left),this.frame.style.cursor="move";var e=this;this.onmousemove=function(t){e._onMouseMove(t)},this.onmouseup=function(t){e._onMouseUp(t)},n.addEventListener(document,"mousemove",this.onmousemove),n.addEventListener(document,"mouseup",this.onmouseup),n.preventDefault(t)}},o.prototype.leftToIndex=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t-3,o=Math.round(i/e*(this.values.length-1));return o<0&&(o=0),o>this.values.length-1&&(o=this.values.length-1),o},o.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;return t/(this.values.length-1)*e+3},o.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,o=this.leftToIndex(i);this.setIndex(o),n.preventDefault()},o.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",n.removeEventListener(document,"mousemove",this.onmousemove),n.removeEventListener(document,"mouseup",this.onmouseup),n.preventDefault()},t.exports=o},function(t,e,i){function o(t,e,i,o){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,o)}o.prototype.isNumeric=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.prototype.setRange=function(t,e,i,o){if(!this.isNumeric(t))throw new Error("Parameter 'start' is not numeric; value: "+t);if(!this.isNumeric(e))throw new Error("Parameter 'end' is not numeric; value: "+t);if(!this.isNumeric(i))throw new Error("Parameter 'step' is not numeric; value: "+t);this._start=t||0,this._end=e||0,this.setStep(i,o)},o.prototype.setStep=function(t,e){void 0===t||t<=0||(void 0!==e&&(this.prettyStep=e),!0===this.prettyStep?this._step=o.calculatePrettyStep(t):this._step=t)},o.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),o=2*Math.pow(10,Math.round(e(t/2))),n=5*Math.pow(10,Math.round(e(t/5))),s=i;return Math.abs(o-t)<=Math.abs(s-t)&&(s=o),Math.abs(n-t)<=Math.abs(s-t)&&(s=n),s<=0&&(s=1),s},o.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},o.prototype.getStep=function(){return this._step},o.prototype.start=function(t){void 0===t&&(t=!1),this._current=this._start-this._start%this._step,t&&this.getCurrent()<this._start&&this.next()},o.prototype.next=function(){this._current+=this._step},o.prototype.end=function(){return this._current>this._end},t.exports=o},function(t,e,i){function o(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}function n(t){return void 0===t||""===t||"string"!=typeof t?t:t.charAt(0).toUpperCase()+t.slice(1)}function s(t,e){return void 0===t||""===t?e:t+n(e)}function r(t,e,i,o){for(var n,r,a=0;a<i.length;++a)n=i[a],r=s(o,n),e[r]=t[n]}function a(t,e,i,o){for(var n,r,a=0;a<i.length;++a)n=i[a],void 0!==t[n]&&(r=s(o,n),e[r]=t[n])}function h(t,e){if(void 0===t||o(t))throw new Error("No DEFAULTS passed");if(void 0===e)throw new Error("No dst passed");C=t,r(t,e,D),r(t,e,M,"default"),l(t,e),e.margin=10,e.showGrayBottom=!1,e.showTooltip=!1,e.onclick_callback=null,e.eye=new x(0,0,-1)}function d(t,e){if(void 0!==t){if(void 0===e)throw new Error("No dst passed");if(void 0===C||o(C))throw new Error("DEFAULTS not set for module Settings");a(t,e,D),a(t,e,M,"default"),l(t,e)}}function l(t,e){void 0!==t.backgroundColor&&m(t.backgroundColor,e),v(t.dataColor,e),f(t.style,e),u(t.showLegend,e),g(t.cameraPosition,e),void 0!==t.tooltip&&(e.showTooltip=t.tooltip),void 0!=t.onclick&&(e.onclick_callback=t.onclick),void 0!==t.tooltipStyle&&_.selectiveDeepExtend(["tooltipStyle"],e,t)}function u(t,e){if(void 0===t){if(void 0===C.showLegend){var i=e.style===k.DOTCOLOR||e.style===k.DOTSIZE;e.showLegend=i}}else e.showLegend=t}function c(t){var e=S[t];return void 0===e?-1:e}function p(t){var e=!1;for(var i in k)if(k[i]===t){e=!0;break}return e}function f(t,e){if(void 0!==t){var i;if("string"==typeof t){if(-1===(i=c(t)))throw new Error("Style '"+t+"' is invalid")}else{if(!p(t))throw new Error("Style '"+t+"' is invalid");i=t}e.style=i}}function m(t,e){var i="white",o="gray",n=1;if("string"==typeof t)i=t,o="none",n=0;else{if("object"!==(void 0===t?"undefined":(0,b.default)(t)))throw new Error("Unsupported type of backgroundColor");void 0!==t.fill&&(i=t.fill),void 0!==t.stroke&&(o=t.stroke),void 0!==t.strokeWidth&&(n=t.strokeWidth)}e.frame.style.backgroundColor=i,e.frame.style.borderColor=o,e.frame.style.borderWidth=n+"px",e.frame.style.borderStyle="solid"}function v(t,e){void 0!==t&&(void 0===e.dataColor&&(e.dataColor={}),"string"==typeof t?(e.dataColor.fill=t,e.dataColor.stroke=t):(t.fill&&(e.dataColor.fill=t.fill),t.stroke&&(e.dataColor.stroke=t.stroke),void 0!==t.strokeWidth&&(e.dataColor.strokeWidth=t.strokeWidth)))}function g(t,e){var i=t;void 0!==i&&(void 0===e.camera&&(e.camera=new w),e.camera.setArmRotation(i.horizontal,i.vertical),e.camera.setArmLength(i.distance))}var y=i(6),b=function(t){return t&&t.__esModule?t:{default:t}}(y),_=i(2),w=i(95),x=i(34),k={BAR:0,BARCOLOR:1,BARSIZE:2,DOT:3,DOTLINE:4,DOTCOLOR:5,DOTSIZE:6,GRID:7,LINE:8,SURFACE:9},S={dot:k.DOT,"dot-line":k.DOTLINE,"dot-color":k.DOTCOLOR,"dot-size":k.DOTSIZE,line:k.LINE,grid:k.GRID,surface:k.SURFACE,bar:k.BAR,"bar-color":k.BARCOLOR,"bar-size":k.BARSIZE},D=["width","height","filterLabel","legendLabel","xLabel","yLabel","zLabel","xValueLabel","yValueLabel","zValueLabel","showXAxis","showYAxis","showZAxis","showGrid","showPerspective","showShadow","keepAspectRatio","verticalRatio","dotSizeRatio","dotSizeMinFraction","dotSizeMaxFraction","showAnimationControls","animationInterval","animationPreload","animationAutoStart","axisColor","gridColor","xCenter","yCenter"],M=["xBarWidth","yBarWidth","valueMin","valueMax","xMin","xMax","xStep","yMin","yMax","yStep","zMin","zMax","zStep"],C=void 0;t.exports.STYLE=k,t.exports.setDefaults=h,t.exports.setOptions=d,t.exports.setCameraPosition=g},function(t,e,i){function o(){this.armLocation=new r,this.armRotation={},this.armRotation.horizontal=0,this.armRotation.vertical=0,this.armLength=1.7,this.cameraOffset=new r,this.offsetMultiplier=.6,this.cameraLocation=new r,this.cameraRotation=new r(.5*Math.PI,0,0),this.calculateCameraOrientation()}var n=i(165),s=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(34);o.prototype.setOffset=function(t,e){var i=Math.abs,o=s.default,n=this.offsetMultiplier,r=this.armLength*n;i(t)>r&&(t=o(t)*r),i(e)>r&&(e=o(e)*r),this.cameraOffset.x=t,this.cameraOffset.y=e,this.calculateCameraOrientation()},o.prototype.getOffset=function(){return this.cameraOffset},o.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},o.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),void 0===t&&void 0===e||this.calculateCameraOrientation()},o.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},o.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.setOffset(this.cameraOffset.x,this.cameraOffset.y),this.calculateCameraOrientation())},
+o.prototype.getArmLength=function(){return this.armLength},o.prototype.getCameraLocation=function(){return this.cameraLocation},o.prototype.getCameraRotation=function(){return this.cameraRotation},o.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal;var t=this.cameraRotation.x,e=this.cameraRotation.z,i=this.cameraOffset.x,o=this.cameraOffset.y,n=Math.sin,s=Math.cos;this.cameraLocation.x=this.cameraLocation.x+i*s(e)+o*-n(e)*s(t),this.cameraLocation.y=this.cameraLocation.y+i*n(e)+o*s(e)*s(t),this.cameraLocation.z=this.cameraLocation.z+o*n(t)},t.exports=o},function(t,e,i){function o(t,e,i){this.dataGroup=t,this.column=e,this.graph=i,this.index=void 0,this.value=void 0,this.values=t.getDistinctValues(this.column),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,i.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var n=i(12);o.prototype.isLoaded=function(){return this.loaded},o.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},o.prototype.getLabel=function(){return this.graph.filterLabel},o.prototype.getColumn=function(){return this.column},o.prototype.getSelectedValue=function(){if(void 0!==this.index)return this.values[this.index]},o.prototype.getValues=function(){return this.values},o.prototype.getValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");return this.values[t]},o.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var i={};i.column=this.column,i.value=this.values[t];var o=new n(this.dataGroup.getDataSet(),{filter:function(t){return t[i.column]==i.value}}).get();e=this.dataGroup._getDataPoints(o),this.dataPoints[t]=e}return e},o.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},o.prototype.selectValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");this.index=t,this.value=this.values[t]},o.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t<this.values.length){void 0===e.progress&&(e.progress=document.createElement("DIV"),e.progress.style.position="absolute",e.progress.style.color="gray",e.appendChild(e.progress));var i=this.getLoadedProgress();e.progress.innerHTML="Loading animation... "+i+"%",e.progress.style.bottom="60px",e.progress.style.left="10px";var o=this;setTimeout(function(){o.loadInBackground(t+1)},10),this.loaded=!1}else this.loaded=!0,void 0!==e.progress&&(e.removeChild(e.progress),e.progress=void 0),this.onLoadCallback&&this.onLoadCallback()},t.exports=o},function(t,e,i){function o(t){this.active=!1,this.dom={container:t},this.dom.overlay=document.createElement("div"),this.dom.overlay.className="vis-overlay",this.dom.container.appendChild(this.dom.overlay),this.hammer=a(this.dom.overlay),this.hammer.on("tap",this._onTapOverlay.bind(this));var e=this;["tap","doubletap","press","pinch","pan","panstart","panmove","panend"].forEach(function(t){e.hammer.on(t,function(t){t.stopPropagation()})}),document&&document.body&&(this.onClick=function(i){n(i.target,t)||e.deactivate()},document.body.addEventListener("click",this.onClick)),void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=s(),this.escListener=this.deactivate.bind(this)}function n(t,e){for(;t;){if(t===e)return!0;t=t.parentNode}return!1}var s=i(35),r=i(44),a=i(10),h=i(2);r(o.prototype),o.current=null,o.prototype.destroy=function(){this.deactivate(),this.dom.overlay.parentNode.removeChild(this.dom.overlay),this.onClick&&document.body.removeEventListener("click",this.onClick),this.hammer.destroy(),this.hammer=null},o.prototype.activate=function(){o.current&&o.current.deactivate(),o.current=this,this.active=!0,this.dom.overlay.style.display="none",h.addClassName(this.dom.container,"vis-active"),this.emit("change"),this.emit("activate"),this.keycharm.bind("esc",this.escListener)},o.prototype.deactivate=function(){this.active=!1,this.dom.overlay.style.display="",h.removeClassName(this.dom.container,"vis-active"),this.keycharm.unbind("esc",this.escListener),this.emit("change"),this.emit("deactivate")},o.prototype._onTapOverlay=function(t){this.activate(),t.stopPropagation()},t.exports=o},function(t,e,i){e.en={current:"current",time:"time"},e.en_EN=e.en,e.en_US=e.en,e.it={current:"attuale",time:"tempo"},e.it_IT=e.it,e.it_CH=e.it,e.nl={current:"huidige",time:"tijd"},e.nl_NL=e.nl,e.nl_BE=e.nl,e.de={current:"Aktuelle",time:"Zeit"},e.de_DE=e.de,e.fr={current:"actuel",time:"heure"},e.fr_FR=e.fr,e.fr_CA=e.fr,e.fr_BE=e.fr,e.es={current:"corriente",time:"hora"},e.es_ES=e.es},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){this.body=t,this.defaultOptions={type:null,orientation:{item:"bottom"},align:"auto",stack:!0,stackSubgroups:!0,groupOrderSwap:function(t,e,i){var o=e.order;e.order=t.order,t.order=o},groupOrder:"order",selectable:!0,multiselect:!1,itemsAlwaysDraggable:{item:!1,range:!1},editable:{updateTime:!1,updateGroup:!1,add:!1,remove:!1,overrideItems:!1},groupEditable:{order:!1,add:!1,remove:!1},snap:p.snap,onDropObjectOnItem:function(t,e,i){i(e)},onAdd:function(t,e){e(t)},onUpdate:function(t,e){e(t)},onMove:function(t,e){e(t)},onRemove:function(t,e){e(t)},onMoving:function(t,e){e(t)},onAddGroup:function(t,e){e(t)},onMoveGroup:function(t,e){e(t)},onRemoveGroup:function(t,e){e(t)},margin:{item:{horizontal:10,vertical:10},axis:20},showTooltips:!0,tooltip:{followMouse:!1,overflowMethod:"flip"},tooltipOnItemUpdateTime:!1},this.options=l.extend({},this.defaultOptions),this.options.rtl=e.rtl,this.itemOptions={type:{start:"Date",end:"Date"}},this.conversion={toScreen:t.util.toScreen,toTime:t.util.toTime},this.dom={},this.props={},this.hammer=null;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,o){i._onAdd(e.items)},update:function(t,e,o){i._onUpdate(e.items)},remove:function(t,e,o){i._onRemove(e.items)}},this.groupListeners={add:function(t,e,o){if(i._onAddGroups(e.items),i.groupsData&&i.groupsData.length>0){var n=i.groupsData.getDataSet();n.get().forEach(function(t){if(t.nestedGroups){0!=t.showNested&&(t.showNested=!0);var e=[];t.nestedGroups.forEach(function(i){var o=n.get(i);o&&(o.nestedInGroup=t.id,0==t.showNested&&(o.visible=!1),e=e.concat(o))}),n.update(e,o)}})}},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.groups={},this.groupIds=[],this.selection=[],this.popup=null,this.touchParams={},this.groupTouchParams={},this._create(),this.setOptions(e)}var s=i(29),r=o(s),a=i(6),h=o(a),d=i(10),l=i(2),u=i(11),c=i(12),p=i(66),f=i(16),m=i(68),v=i(69),g=i(101),y=i(102),b=i(70),_=i(103),w=i(104).default,x="__ungrouped__",k="__background__";n.prototype=new f,n.types={background:_,box:g,range:b,point:y},n.prototype._create=function(){var t=document.createElement("div");t.className="vis-itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="vis-background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="vis-foreground",t.appendChild(i),this.dom.foreground=i;var o=document.createElement("div");o.className="vis-axis",this.dom.axis=o;var n=document.createElement("div");n.className="vis-labelset",this.dom.labelSet=n,this._updateUngrouped();var s=new v(k,null,this);s.show(),this.groups[k]=s,this.hammer=new d(this.body.dom.centerContainer),this.hammer.on("hammer.input",function(t){t.isFirst&&this._onTouch(t)}.bind(this)),this.hammer.on("panstart",this._onDragStart.bind(this)),this.hammer.on("panmove",this._onDrag.bind(this)),this.hammer.on("panend",this._onDragEnd.bind(this)),this.hammer.get("pan").set({threshold:5,direction:d.DIRECTION_HORIZONTAL}),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("press",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.options.rtl?this.groupHammer=new d(this.body.dom.rightContainer):this.groupHammer=new d(this.body.dom.leftContainer),this.groupHammer.on("tap",this._onGroupClick.bind(this)),this.groupHammer.on("panstart",this._onGroupDragStart.bind(this)),this.groupHammer.on("panmove",this._onGroupDrag.bind(this)),this.groupHammer.on("panend",this._onGroupDragEnd.bind(this)),this.groupHammer.get("pan").set({threshold:5,direction:d.DIRECTION_VERTICAL}),this.body.dom.centerContainer.addEventListener("mouseover",this._onMouseOver.bind(this)),this.body.dom.centerContainer.addEventListener("mouseout",this._onMouseOut.bind(this)),this.body.dom.centerContainer.addEventListener("mousemove",this._onMouseMove.bind(this)),this.body.dom.centerContainer.addEventListener("contextmenu",this._onDragEnd.bind(this)),this.body.dom.centerContainer.addEventListener("mousewheel",this._onMouseWheel.bind(this)),this.show()},n.prototype.setOptions=function(t){if(t){var e=["type","rtl","align","order","stack","stackSubgroups","selectable","multiselect","multiselectPerGroup","groupOrder","dataAttributes","template","groupTemplate","visibleFrameTemplate","hide","snap","groupOrderSwap","showTooltips","tooltip","tooltipOnItemUpdateTime"];l.selectiveExtend(e,this.options,t),"itemsAlwaysDraggable"in t&&("boolean"==typeof t.itemsAlwaysDraggable?(this.options.itemsAlwaysDraggable.item=t.itemsAlwaysDraggable,this.options.itemsAlwaysDraggable.range=!1):"object"===(0,h.default)(t.itemsAlwaysDraggable)&&(l.selectiveExtend(["item","range"],this.options.itemsAlwaysDraggable,t.itemsAlwaysDraggable),this.options.itemsAlwaysDraggable.item||(this.options.itemsAlwaysDraggable.range=!1))),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.item="top"===t.orientation?"top":"bottom":"object"===(0,h.default)(t.orientation)&&"item"in t.orientation&&(this.options.orientation.item=t.orientation.item)),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"===(0,h.default)(t.margin)&&(l.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"===(0,h.default)(t.margin.item)&&l.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable,this.options.editable.overrideItems=!1):"object"===(0,h.default)(t.editable)&&l.selectiveExtend(["updateTime","updateGroup","add","remove","overrideItems"],this.options.editable,t.editable)),"groupEditable"in t&&("boolean"==typeof t.groupEditable?(this.options.groupEditable.order=t.groupEditable,this.options.groupEditable.add=t.groupEditable,this.options.groupEditable.remove=t.groupEditable):"object"===(0,h.default)(t.groupEditable)&&l.selectiveExtend(["order","add","remove"],this.options.groupEditable,t.groupEditable));["onDropObjectOnItem","onAdd","onUpdate","onRemove","onMove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup"].forEach(function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this)),this.markDirty()}},n.prototype.markDirty=function(t){this.groupIds=[],t&&t.refreshItems&&l.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()})},n.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},n.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},n.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||(this.options.rtl?this.body.dom.right.appendChild(this.dom.labelSet):this.body.dom.left.appendChild(this.dom.labelSet))},n.prototype.setSelection=function(t){var e,i,o,n;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;e<i;e++)o=this.selection[e],(n=this.items[o])&&n.unselect();for(this.selection=[],e=0,i=t.length;e<i;e++)o=t[e],(n=this.items[o])&&(this.selection.push(o),n.select())},n.prototype.getSelection=function(){return this.selection.concat([])},n.prototype.getVisibleItems=function(){var t,e,i=this.body.range.getRange();this.options.rtl?(t=this.body.util.toScreen(i.start),e=this.body.util.toScreen(i.end)):(e=this.body.util.toScreen(i.start),t=this.body.util.toScreen(i.end));var o=[];for(var n in this.groups)if(this.groups.hasOwnProperty(n))for(var s=this.groups[n],r=s.isVisible?s.visibleItems:[],a=0;a<r.length;a++){var h=r[a];this.options.rtl?h.right<e&&h.right+h.width>t&&o.push(h.id):h.left<t&&h.left+h.width>e&&o.push(h.id)}return o},n.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;i<o;i++)if(e[i]==t){e.splice(i,1);break}},n.prototype.redraw=function(){var t=this.options.margin,e=this.body.range,i=l.option.asSize,o=this.options,n=o.orientation.item,s=!1,r=this.dom.frame;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top,this.options.rtl?this.props.right=this.body.domProps.right.width+this.body.domProps.border.right:this.props.left=this.body.domProps.left.width+this.body.domProps.border.left,r.className="vis-itemset",s=this._orderGroups()||s;var a=e.end-e.start,h=a!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth,d=e.start!=this.lastRangeStart,u=o.stack!=this.lastStack,c=o.stackSubgroups!=this.lastStackSubgroups,p=h||d||u||c;this.lastVisibleInterval=a,this.lastRangeStart=e.start,this.lastStack=o.stack,this.lastStackSubgroups=o.stackSubgroups,this.props.lastWidth=this.props.width;var f=this._firstGroup(),m={item:t.item,axis:t.axis},v={item:t.item,axis:t.item.vertical/2},g=0,y=t.axis+t.item.vertical;this.groups[k].redraw(e,v,p);var b={},_=0;if(l.forEach(this.groups,function(t,i){if(i!==k){var o=t==f?m:v;b[i]=t.redraw(e,o,p,!0),_=b[i].length}}),_>0){for(var w={},x=0;x<_;x++)l.forEach(b,function(t,e){w[e]=t[x]()});l.forEach(this.groups,function(t,e){if(e!==k){var i=w[e];s=i||s,g+=t.height}}),g=Math.max(g,y)}return g=Math.max(g,y),r.style.height=i(g),this.props.width=r.offsetWidth,this.props.height=g,this.dom.axis.style.top=i("top"==n?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.options.rtl?this.dom.axis.style.right="0":this.dom.axis.style.left="0",this.initialItemSetDrawn=!0,s=this._isResized()||s},n.prototype._firstGroup=function(){var t="top"==this.options.orientation.item?0:this.groupIds.length-1,e=this.groupIds[t];return this.groups[e]||this.groups[x]||null},n.prototype._updateUngrouped=function(){var t,e,i=this.groups[x];if(this.groupsData){if(i){i.hide(),delete this.groups[x];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)||t.hide()}}}else if(!i){i=new m(null,null,this),this.groups[x]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},n.prototype.getLabelSet=function(){return this.dom.labelSet},n.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof u||t instanceof c))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(l.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;l.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}this.body.emitter.emit("_change",{queue:!0})},n.prototype.getItems=function(){return this.itemsData},n.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(l.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof u||t instanceof c))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var o=this.groupsData;this.groupsData instanceof c&&(o=this.groupsData.getDataSet()),o.get().forEach(function(t){t.nestedGroups&&t.nestedGroups.forEach(function(e){var i=o.get(e);i.nestedInGroup=t.id,0==t.showNested&&(i.visible=!1),o.update(i)})});var n=this.id;l.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,n)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("_change",{queue:!0})},n.prototype.getGroups=function(){return this.groupsData},n.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},n.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},n.prototype._getGroupId=function(t){return"background"==this._getType(t)&&void 0==t.group?k:this.groupsData?t.group:x},n.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i,o=e.itemsData.get(t,e.itemOptions),s=e.items[t],r=o?e._getType(o):null,a=n.types[r];if(s&&(a&&s instanceof a?e._updateItem(s,o):(i=s.selected,e._removeItem(s),s=null)),!s&&o){if(!a)throw"rangeoverflow"==r?new TypeError('Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}'):new TypeError('Unknown item type "'+r+'"');s=new a(o,e.conversion,e.options),s.id=t,e._addItem(s),i&&(this.selection.push(t),s.select())}}.bind(this)),this._order(),this.body.emitter.emit("_change",{queue:!0})},n.prototype._onAdd=n.prototype._onUpdate,n.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var o=i.items[t];o&&(e++,i._removeItem(o))}),e&&(this._order(),this.body.emitter.emit("_change",{queue:!0}))},n.prototype._order=function(){l.forEach(this.groups,function(t){t.order()})},n.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},n.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),o=e.groups[t];if(o)o.setData(i);else{if(t==x||t==k)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=(0,r.default)(e.options);l.extend(n,{height:null}),o=new m(t,i,e),e.groups[t]=o;for(var s in e.items)if(e.items.hasOwnProperty(s)){var a=e.items[s];a.data.group==t&&o.add(a)}o.order(),o.show()}}),this.body.emitter.emit("_change",{queue:!0})},n.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("_change",{queue:!0})},n.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder});t=this._orderNestedGroups(t);var e=!l.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},n.prototype._orderNestedGroups=function(t){var e=[];return t.forEach(function(t){var i=this.groupsData.get(t);if(i.nestedInGroup||e.push(t),i.nestedGroups){var o=this.groupsData.get({filter:function(e){return e.nestedInGroup==t},order:this.options.groupOrder}),n=o.map(function(t){return t.id});e=e.concat(n)}},this),e},n.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i?i&&i.data&&i.data.showNested&&(t.groupShowing=!0):t.groupShowing=!1,i&&i.add(t)},n.prototype._updateItem=function(t,e){t.setData(e);var i=this._getGroupId(t.data),o=this.groups[i];o?o&&o.data&&o.data.showNested&&(t.groupShowing=!0):t.groupShowing=!1},n.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},n.prototype._constructByEndArray=function(t){for(var e=[],i=0;i<t.length;i++)t[i]instanceof b&&e.push(t[i]);return e},n.prototype._onTouch=function(t){this.touchParams.item=this.itemFromTarget(t),this.touchParams.dragLeftItem=t.target.dragLeftItem||!1,this.touchParams.dragRightItem=t.target.dragRightItem||!1,this.touchParams.itemProps=null},n.prototype._getGroupIndex=function(t){for(var e=0;e<this.groupIds.length;e++)if(t==this.groupIds[e])return e},n.prototype._onDragStart=function(t){if(!this.touchParams.itemIsDragging){var e,i=this.touchParams.item||null,o=this;if(i&&(i.selected||this.options.itemsAlwaysDraggable.item)){if(this.options.editable.overrideItems&&!this.options.editable.updateTime&&!this.options.editable.updateGroup)return;if(null!=i.editable&&!i.editable.updateTime&&!i.editable.updateGroup&&!this.options.editable.overrideItems)return;var n=this.touchParams.dragLeftItem,s=this.touchParams.dragRightItem;if(this.touchParams.itemIsDragging=!0,this.touchParams.selectedItem=i,n)e={item:n,initialX:t.center.x,dragLeft:!0,data:this._cloneItemData(i.data)},this.touchParams.itemProps=[e];else if(s)e={item:s,initialX:t.center.x,dragRight:!0,data:this._cloneItemData(i.data)},this.touchParams.itemProps=[e];else if(this.options.editable.add&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey))this._onDragStartAddItem(t);else{this.groupIds.length<1&&this.redraw();var r=this._getGroupIndex(i.data.group),a=this.options.itemsAlwaysDraggable.item&&!i.selected?[i.id]:this.getSelection();this.touchParams.itemProps=a.map(function(e){var i=o.items[e],n=o._getGroupIndex(i.data.group);return{item:i,initialX:t.center.x,groupOffset:r-n,data:this._cloneItemData(i.data)}}.bind(this))}t.stopPropagation()}else this.options.editable.add&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey)&&this._onDragStartAddItem(t)}},n.prototype._onDragStartAddItem=function(t){var e,i,o=this.options.snap||null;this.options.rtl?(e=l.getAbsoluteRight(this.dom.frame),i=e-t.center.x+10):(e=l.getAbsoluteLeft(this.dom.frame),i=t.center.x-e-10);var n=this.body.util.toTime(i),s=this.body.util.getScale(),r=this.body.util.getStep(),a=o?o(n,s,r):n,h=a,d={type:"range",start:a,end:h,content:"new item"},u=l.randomUUID();d[this.itemsData._fieldId]=u;var c=this.groupFromTarget(t);c&&(d.group=c.groupId);var p=new b(d,this.conversion,this.options);p.id=u,p.data=this._cloneItemData(d),this._addItem(p),this.touchParams.selectedItem=p;var f={item:p,initialX:t.center.x,data:p.data};this.options.rtl?f.dragLeft=!0:f.dragRight=!0,this.touchParams.itemProps=[f],t.stopPropagation()},n.prototype._onDrag=function(t){if(this.touchParams.itemProps){t.stopPropagation();var e,i=this,o=this.options.snap||null;e=this.options.rtl?this.body.dom.root.offsetLeft+this.body.domProps.right.width:this.body.dom.root.offsetLeft+this.body.domProps.left.width;var n=this.body.util.getScale(),s=this.body.util.getStep(),r=this.touchParams.selectedItem,a=(this.options.editable.overrideItems||null==r.editable)&&this.options.editable.updateGroup||!this.options.editable.overrideItems&&null!=r.editable&&r.editable.updateGroup,h=null;if(a&&r&&void 0!=r.data.group){var d=i.groupFromTarget(t);d&&(h=this._getGroupIndex(d.groupId))}this.touchParams.itemProps.forEach(function(d){var u,c,p,f,m,v=i.body.util.toTime(t.center.x-e),g=i.body.util.toTime(d.initialX-e);u=this.options.rtl?-(v-g):v-g;var y=this._cloneItemData(d.item.data);if(null==d.item.editable||d.item.editable.updateTime||d.item.editable.updateGroup||i.options.editable.overrideItems){if((this.options.editable.overrideItems||null==r.editable)&&this.options.editable.updateTime||!this.options.editable.overrideItems&&null!=r.editable&&r.editable.updateTime)if(d.dragLeft)this.options.rtl?void 0!=y.end&&(p=l.convert(d.data.end,"Date"),m=new Date(p.valueOf()+u),y.end=o?o(m,n,s):m):void 0!=y.start&&(c=l.convert(d.data.start,"Date"),f=new Date(c.valueOf()+u),y.start=o?o(f,n,s):f);else if(d.dragRight)this.options.rtl?void 0!=y.start&&(c=l.convert(d.data.start,"Date"),f=new Date(c.valueOf()+u),y.start=o?o(f,n,s):f):void 0!=y.end&&(p=l.convert(d.data.end,"Date"),m=new Date(p.valueOf()+u),y.end=o?o(m,n,s):m);else if(void 0!=y.start)if(c=l.convert(d.data.start,"Date").valueOf(),f=new Date(c+u),void 0!=y.end){p=l.convert(d.data.end,"Date");var b=p.valueOf()-c.valueOf();y.start=o?o(f,n,s):f,y.end=new Date(y.start.valueOf()+b)}else y.start=o?o(f,n,s):f;if(a&&!d.dragLeft&&!d.dragRight&&null!=h&&void 0!=y.group){var _=h-d.groupOffset;_=Math.max(0,_),_=Math.min(i.groupIds.length-1,_),y.group=i.groupIds[_]}y=this._cloneItemData(y),i.options.onMoving(y,function(t){t&&d.item.setData(this._cloneItemData(t,"Date"))}.bind(this))}}.bind(this)),this.body.emitter.emit("_change")}},n.prototype._moveToGroup=function(t,e){var i=this.groups[e];if(i&&i.groupId!=t.data.group){var o=t.parent;o.remove(t),o.order(),t.data.group=i.groupId,i.add(t),i.order()}},n.prototype._onDragEnd=function(t){if(this.touchParams.itemIsDragging=!1,this.touchParams.itemProps){t.stopPropagation();var e=this,i=this.itemsData.getDataSet(),o=this.touchParams.itemProps;this.touchParams.itemProps=null,o.forEach(function(t){var o=t.item.id;if(null!=e.itemsData.get(o,e.itemOptions)){var n=this._cloneItemData(t.item.data);e.options.onMove(n,function(n){n?(n[i._fieldId]=o,i.update(n)):(t.item.setData(t.data),e.body.emitter.emit("_change"))})}else e.options.onAdd(t.item.data,function(i){e._removeItem(t.item),i&&e.itemsData.getDataSet().add(i),e.body.emitter.emit("_change")})}.bind(this))}},n.prototype._onGroupClick=function(t){var e=this.groupFromTarget(t);if(e&&e.nestedGroups){var i=this.groupsData.getDataSet(),o=i.get(e.groupId);void 0==o.showNested&&(o.showNested=!0),o.showNested=!o.showNested;var n=i.get(e.nestedGroups).map(function(t){return t.visible=o.showNested,t});if(i.update(n.concat(o)),o.showNested)l.removeClassName(e.dom.label,"collapsed"),l.addClassName(e.dom.label,"expanded");else{l.removeClassName(e.dom.label,"expanded");var s=this.options.rtl?"collapsed-rtl":"collapsed";l.addClassName(e.dom.label,s)}}},n.prototype._onGroupDragStart=function(t){this.options.groupEditable.order&&(this.groupTouchParams.group=this.groupFromTarget(t),this.groupTouchParams.group&&(t.stopPropagation(),this.groupTouchParams.originalOrder=this.groupsData.getIds({order:this.options.groupOrder})))},n.prototype._onGroupDrag=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this.groupsData;this.groupsData instanceof c&&(e=this.groupsData.getDataSet());var i=this.groupFromTarget(t);if(i&&i.height!=this.groupTouchParams.group.height){var o=i.top<this.groupTouchParams.group.top,n=t.center?t.center.y:t.clientY,s=l.getAbsoluteTop(i.dom.foreground),r=this.groupTouchParams.group.height;if(o){if(s+r<n)return}else{if(s+i.height-r>n)return}}if(i&&i!=this.groupTouchParams.group){var a=e.get(i.groupId),h=e.get(this.groupTouchParams.group.groupId);h&&a&&(this.options.groupOrderSwap(h,a,e),e.update(h),e.update(a));var d=e.getIds({order:this.options.groupOrder});if(!l.equalArray(d,this.groupTouchParams.originalOrder))for(var u=this.groupTouchParams.originalOrder,p=this.groupTouchParams.group.groupId,f=Math.min(u.length,d.length),m=0,v=0,g=0;m<f;){for(;m+v<f&&m+g<f&&d[m+v]==u[m+g];)m++;if(m+v>=f)break;if(d[m+v]==p)v=1;else if(u[m+g]==p)g=1;else{var y=d.indexOf(u[m+g]),b=e.get(d[m+v]),_=e.get(u[m+g]);this.options.groupOrderSwap(b,_,e),e.update(b),e.update(_);var w=d[m+v];d[m+v]=u[m+g],d[y]=w,m++}}}}},n.prototype._onGroupDragEnd=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this,i=e.groupTouchParams.group.groupId,o=e.groupsData.getDataSet(),n=l.extend({},o.get(i));e.options.onMoveGroup(n,function(t){if(t)t[o._fieldId]=i,o.update(t);else{var n=o.getIds({order:e.options.groupOrder});if(!l.equalArray(n,e.groupTouchParams.originalOrder))for(var s=e.groupTouchParams.originalOrder,r=Math.min(s.length,n.length),a=0;a<r;){for(;a<r&&n[a]==s[a];)a++;if(a>=r)break;var h=n.indexOf(s[a]),d=o.get(n[a]),u=o.get(s[a]);e.options.groupOrderSwap(d,u,o),o.update(d),o.update(u);var c=n[a];n[a]=s[a],n[h]=c,a++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},n.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},n.prototype._onMouseOver=function(t){var e=this.itemFromTarget(t);if(e){if(e!==this.itemFromRelatedTarget(t)){var i=e.getTitle();if(this.options.showTooltips&&i){null==this.popup&&(this.popup=new w(this.body.dom.root,this.options.tooltip.overflowMethod||"flip")),this.popup.setText(i);var o=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(o)+o.offsetLeft,t.clientY-l.getAbsoluteTop(o)+o.offsetTop),this.popup.show()}else null!=this.popup&&this.popup.hide();this.body.emitter.emit("itemover",{item:e.id,event:t})}}},n.prototype._onMouseOut=function(t){var e=this.itemFromTarget(t);if(e){e!==this.itemFromRelatedTarget(t)&&(null!=this.popup&&this.popup.hide(),this.body.emitter.emit("itemout",{item:e.id,event:t}))}},n.prototype._onMouseMove=function(t){if(this.itemFromTarget(t)&&this.options.showTooltips&&this.options.tooltip.followMouse&&this.popup&&!this.popup.hidden){var e=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(e)+e.offsetLeft,t.clientY-l.getAbsoluteTop(e)+e.offsetTop),this.popup.show()}},n.prototype._onMouseWheel=function(t){this.touchParams.itemIsDragging&&this._onDragEnd(t)},n.prototype._onUpdateItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this;if(t){var i=e.itemsData.get(t.id);this.options.onUpdate(i,function(t){t&&e.itemsData.getDataSet().update(t)})}}},n.prototype._onDropObjectOnItem=function(t){var e=this.itemFromTarget(t),i=JSON.parse(t.dataTransfer.getData("text"));this.options.onDropObjectOnItem(i,e)},n.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e,i,o=this,n=this.options.snap||null;this.options.rtl?(e=l.getAbsoluteRight(this.dom.frame),i=e-t.center.x):(e=l.getAbsoluteLeft(this.dom.frame),i=t.center.x-e);var s,r,a=this.body.util.toTime(i),h=this.body.util.getScale(),d=this.body.util.getStep();"drop"==t.type?(r=JSON.parse(t.dataTransfer.getData("text")),r.content=r.content?r.content:"new item",r.start=r.start?r.start:n?n(a,h,d):a,r.type=r.type||"box",r[this.itemsData._fieldId]=r.id||l.randomUUID(),"range"!=r.type||r.end||(s=this.body.util.toTime(i+this.props.width/5),r.end=n?n(s,h,d):s)):(r={start:n?n(a,h,d):a,content:"new item"},r[this.itemsData._fieldId]=l.randomUUID(),"range"===this.options.type&&(s=this.body.util.toTime(i+this.props.width/5),r.end=n?n(s,h,d):s));var u=this.groupFromTarget(t);u&&(r.group=u.groupId),r=this._cloneItemData(r),this.options.onAdd(r,function(e){e&&(o.itemsData.getDataSet().add(e),"drop"==t.type&&o.setSelection([e.id]))})}},n.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){
+var i=this.options.multiselect?this.getSelection():[];if((t.srcEvent&&t.srcEvent.shiftKey||!1)&&this.options.multiselect){var o=this.itemsData.get(e.id).group,s=void 0;this.options.multiselectPerGroup&&i.length>0&&(s=this.itemsData.get(i[0]).group),this.options.multiselectPerGroup&&void 0!=s&&s!=o||i.push(e.id);var r=n._getItemRange(this.itemsData.get(i,this.itemOptions));if(!this.options.multiselectPerGroup||s==o){i=[];for(var a in this.items)if(this.items.hasOwnProperty(a)){var h=this.items[a],d=h.data.start,l=void 0!==h.data.end?h.data.end:d;!(d>=r.min&&l<=r.max)||this.options.multiselectPerGroup&&s!=this.itemsData.get(h.id).group||h instanceof _||i.push(h.id)}}}else{var u=i.indexOf(e.id);-1==u?i.push(e.id):i.splice(u,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},n._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.start<i)&&(i=t.start),void 0!=t.end?(null==e||t.end>e)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},n.prototype.itemFromElement=function(t){for(var e=t;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},n.prototype.itemFromTarget=function(t){return this.itemFromElement(t.target)},n.prototype.itemFromRelatedTarget=function(t){return this.itemFromElement(t.relatedTarget)},n.prototype.groupFromTarget=function(t){var e=t.center?t.center.y:t.clientY,i=this.groupIds;i.length<=0&&this.groupsData&&(i=this.groupsData.getIds({order:this.options.groupOrder}));for(var o=0;o<i.length;o++){var n=i[o],s=this.groups[n],r=s.dom.foreground,a=l.getAbsoluteTop(r);if(e>a&&e<a+r.offsetHeight)return s;if("top"===this.options.orientation.item){if(o===this.groupIds.length-1&&e>a)return s}else if(0===o&&e<a+r.offset)return s}return null},n.itemSetFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-itemset"))return e["timeline-itemset"];e=e.parentNode}return null},n.prototype._cloneItemData=function(t,e){var i=l.extend({},t);return e||(e=this.itemsData.getDataSet()._options.type),void 0!=i.start&&(i.start=l.convert(i.start,e&&e.start||"Date")),void 0!=i.end&&(i.end=l.convert(i.end,e&&e.end||"Date")),i},t.exports=n},function(t,e,i){e.orderByStart=function(t){t.sort(function(t,e){return t.data.start-e.data.start})},e.orderByEnd=function(t){t.sort(function(t,e){return("end"in t.data?t.data.end:t.data.start)-("end"in e.data?e.data.end:e.data.start)})},e.stack=function(t,i,o){if(o)for(var n=0;n<t.length;n++)t[n].top=null;for(var n=0;n<t.length;n++){var s=t[n];if(s.stack&&null===s.top){s.top=i.axis;do{for(var r=null,a=0,h=t.length;a<h;a++){var d=t[a];if(null!==d.top&&d!==s&&d.stack&&e.collision(s,d,i.item,d.options.rtl)){r=d;break}}null!=r&&(s.top=r.top+r.height+i.item.vertical)}while(r)}}},e.substack=function(t,i,o){for(var n=0;n<t.length;n++)t[n].top=null;var s=o.height;for(n=0;n<t.length;n++){var r=t[n];if(r.stack&&null===r.top){r.top=r.baseTop;do{for(var a=null,h=0,d=t.length;h<d;h++){var l=t[h];if(null!==l.top&&l!==r&&e.collision(r,l,i.item,l.options.rtl)){a=l;break}}null!=a&&(r.top=a.top+a.height+i.item.vertical),r.top+r.height>s&&(s=r.top+r.height)}while(a)}}o.height=s-o.top+.5*i.item.vertical},e.nostack=function(t,i,o,n){for(var s=0;s<t.length;s++)if(void 0==t[s].data.subgroup)t[s].top=i.item.vertical;else if(void 0!==t[s].data.subgroup&&n){var r=0;for(var a in o)o.hasOwnProperty(a)&&1==o[a].visible&&o[a].index<o[t[s].data.subgroup].index&&(r+=o[a].height,o[t[s].data.subgroup].top=r);t[s].top=r+.5*i.item.vertical}n||e.stackSubgroups(t,i,o)},e.stackSubgroups=function(t,i,o){for(var n in o)if(o.hasOwnProperty(n)){o[n].top=0;do{var s=null;for(var r in o)if(null!==o[r].top&&r!==n&&o[n].index>o[r].index&&e.collisionByTimes(o[n],o[r])){s=o[r];break}null!=s&&(o[n].top=s.top+s.height)}while(s)}for(var a=0;a<t.length;a++)void 0!==t[a].data.subgroup&&(t[a].top=o[t[a].data.subgroup].top+.5*i.item.vertical)},e.stackSubgroupsWithInnerStack=function(t,i,o){var n=!1,s=[];for(var r in o)o[r].hasOwnProperty("index")?s[o[r].index]=r:s.push(r);for(var a=0;a<s.length;a++)if(r=s[a],o.hasOwnProperty(r)){n=n||o[r].stack,o[r].top=0;for(var h in o)o[h].visible&&o[r].index>o[h].index&&(o[r].top+=o[h].height);for(var d=t[r],l=0;l<d.length;l++)void 0!==d[l].data.subgroup&&(d[l].top=o[d[l].data.subgroup].top+.5*i.item.vertical,o[r].stack&&(d[l].baseTop=d[l].top));n&&o[r].stack&&e.substack(t[r],i,o[r])}},e.collision=function(t,e,i,o){return o?t.right-i.horizontal+.001<e.right+e.width&&t.right+t.width+i.horizontal-.001>e.right&&t.top-i.vertical+.001<e.top+e.height&&t.top+t.height+i.vertical-.001>e.top:t.left-i.horizontal+.001<e.left+e.width&&t.left+t.width+i.horizontal-.001>e.left&&t.top-i.vertical+.001<e.top+e.height&&t.top+t.height+i.vertical-.001>e.top},e.collisionByTimes=function(t,e){return t.start<=e.start&&t.end>=e.start&&t.top<e.top+e.height&&t.top+t.height>e.top||e.start<=t.start&&e.end>=t.start&&e.top<t.top+t.height&&e.top+e.height>t.top}},function(t,e,i){function o(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},this.options=i,t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(38);o.prototype=new n(null,null,null),o.prototype.isVisible=function(t){var e=this.options.align,i=this.width*t.getMillisecondsPerPixel();return"right"==e?this.data.start.getTime()>t.start&&this.data.start.getTime()-i<t.end:"left"==e?this.data.start.getTime()+i>t.start&&this.data.start.getTime()<t.end:this.data.start.getTime()+i/2>t.start&&this.data.start.getTime()-i/2<t.end},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.box=document.createElement("DIV"),this.dom.content=document.createElement("DIV"),this.dom.content.className="vis-item-content",this.dom.box.appendChild(this.dom.content),this.dom.line=document.createElement("DIV"),this.dom.line.className="vis-line",this.dom.dot=document.createElement("DIV"),this.dom.dot.className="vis-dot",this.dom.box["timeline-item"]=this,this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){var t=this.parent.dom.foreground;if(!t)throw new Error("Cannot redraw item: parent has no foreground container element");t.appendChild(this.dom.box)}if(!this.dom.line.parentNode){var e=this.parent.dom.background;if(!e)throw new Error("Cannot redraw item: parent has no background container element");e.appendChild(this.dom.line)}if(!this.dom.dot.parentNode){var i=this.parent.dom.axis;if(!e)throw new Error("Cannot redraw item: parent has no axis container element");i.appendChild(this.dom.dot)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var t=this.editable.updateTime||this.editable.updateGroup,e=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(t?" vis-editable":" vis-readonly");this.dom.box.className="vis-item vis-box"+e,this.dom.line.className="vis-item vis-line"+e,this.dom.dot.className="vis-item vis-dot"+e}},o.prototype._getDomComponentsSizes=function(){return{previous:{right:this.dom.box.style.right,left:this.dom.box.style.left},dot:{height:this.dom.dot.offsetHeight,width:this.dom.dot.offsetWidth},line:{width:this.dom.line.offsetWidth},box:{width:this.dom.box.offsetWidth,height:this.dom.box.offsetHeight}}},o.prototype._updateDomComponentsSizes=function(t){this.options.rtl?this.dom.box.style.right="0px":this.dom.box.style.left="0px",this.props.dot.height=t.dot.height,this.props.dot.width=t.dot.width,this.props.line.width=t.line.width,this.width=t.box.width,this.height=t.box.height,this.options.rtl?this.dom.box.style.right=t.previous.right:this.dom.box.style.left=t.previous.left,this.dirty=!1},o.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box),this._repaintDragCenter(),this._repaintDeleteButton(this.dom.box)},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom;t.box.parentNode&&t.box.parentNode.removeChild(t.box),t.line.parentNode&&t.line.parentNode.removeChild(t.line),t.dot.parentNode&&t.dot.parentNode.removeChild(t.dot),this.displayed=!1}},o.prototype.repositionX=function(){var t=this.conversion.toScreen(this.data.start),e=this.options.align;"right"==e?this.options.rtl?(this.right=t-this.width,this.dom.box.style.right=this.right+"px",this.dom.line.style.right=t-this.props.line.width+"px",this.dom.dot.style.right=t-this.props.line.width/2-this.props.dot.width/2+"px"):(this.left=t-this.width,this.dom.box.style.left=this.left+"px",this.dom.line.style.left=t-this.props.line.width+"px",this.dom.dot.style.left=t-this.props.line.width/2-this.props.dot.width/2+"px"):"left"==e?this.options.rtl?(this.right=t,this.dom.box.style.right=this.right+"px",this.dom.line.style.right=t+"px",this.dom.dot.style.right=t+this.props.line.width/2-this.props.dot.width/2+"px"):(this.left=t,this.dom.box.style.left=this.left+"px",this.dom.line.style.left=t+"px",this.dom.dot.style.left=t+this.props.line.width/2-this.props.dot.width/2+"px"):this.options.rtl?(this.right=t-this.width/2,this.dom.box.style.right=this.right+"px",this.dom.line.style.right=t-this.props.line.width+"px",this.dom.dot.style.right=t-this.props.dot.width/2+"px"):(this.left=t-this.width/2,this.dom.box.style.left=this.left+"px",this.dom.line.style.left=t-this.props.line.width/2+"px",this.dom.dot.style.left=t-this.props.dot.width/2+"px")},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box,i=this.dom.line,o=this.dom.dot;if("top"==t)e.style.top=(this.top||0)+"px",i.style.top="0",i.style.height=this.parent.top+this.top+1+"px",i.style.bottom="";else{var n=this.parent.itemSet.props.height,s=n-this.parent.top-this.parent.height+this.top;e.style.top=(this.parent.height-this.top-this.height||0)+"px",i.style.top=n-s+"px",i.style.bottom="0"}o.style.top=-this.props.dot.height/2+"px"},o.prototype.getWidthLeft=function(){return this.width/2},o.prototype.getWidthRight=function(){return this.width/2},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={dot:{top:0,width:0,height:0},content:{height:0,marginLeft:0,marginRight:0}},this.options=i,t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(38);o.prototype=new n(null,null,null),o.prototype.isVisible=function(t){var e=this.width*t.getMillisecondsPerPixel();return this.data.start.getTime()+e>t.start&&this.data.start<t.end},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.point=document.createElement("div"),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.point.appendChild(this.dom.content),this.dom.dot=document.createElement("div"),this.dom.point.appendChild(this.dom.dot),this.dom.point["timeline-item"]=this,this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.point.parentNode){var t=this.parent.dom.foreground;if(!t)throw new Error("Cannot redraw item: parent has no foreground container element");t.appendChild(this.dom.point)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.point),this._updateStyle(this.dom.point);var t=this.editable.updateTime||this.editable.updateGroup,e=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(t?" vis-editable":" vis-readonly");this.dom.point.className="vis-item vis-point"+e,this.dom.dot.className="vis-item vis-dot"+e}},o.prototype._getDomComponentsSizes=function(){return{dot:{width:this.dom.dot.offsetWidth,height:this.dom.dot.offsetHeight},content:{width:this.dom.content.offsetWidth,height:this.dom.content.offsetHeight},point:{width:this.dom.point.offsetWidth,height:this.dom.point.offsetHeight}}},o.prototype._updateDomComponentsSizes=function(t){this.props.dot.width=t.dot.width,this.props.dot.height=t.dot.height,this.props.content.height=t.content.height,this.options.rtl?this.dom.content.style.marginRight=2*this.props.dot.width+"px":this.dom.content.style.marginLeft=2*this.props.dot.width+"px",this.width=t.point.width,this.height=t.point.height,this.dom.dot.style.top=(this.height-this.props.dot.height)/2+"px",this.options.rtl?this.dom.dot.style.right=this.props.dot.width/2+"px":this.dom.dot.style.left=this.props.dot.width/2+"px",this.dirty=!1},o.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.point),this._repaintDragCenter(),this._repaintDeleteButton(this.dom.point)},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){this.displayed&&(this.dom.point.parentNode&&this.dom.point.parentNode.removeChild(this.dom.point),this.displayed=!1)},o.prototype.repositionX=function(){var t=this.conversion.toScreen(this.data.start);this.options.rtl?(this.right=t-this.props.dot.width,this.dom.point.style.right=this.right+"px"):(this.left=t-this.props.dot.width,this.dom.point.style.left=this.left+"px")},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.point;e.style.top="top"==t?this.top+"px":this.parent.height-this.top-this.height+"px"},o.prototype.getWidthLeft=function(){return this.props.dot.width},o.prototype.getWidthRight=function(){return this.props.dot.width},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={content:{width:0}},this.overflow=!1,t){if(void 0==t.start)throw new Error('Property "start" missing in item '+t.id);if(void 0==t.end)throw new Error('Property "end" missing in item '+t.id)}n.call(this,t,e,i)}var n=i(38),s=i(69),r=i(70);o.prototype=new n(null,null,null),o.prototype.baseClassName="vis-item vis-background",o.prototype.stack=!1,o.prototype.isVisible=function(t){return this.data.start<t.end&&this.data.end>t.start},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){var t=this.parent.dom.background;if(!t)throw new Error("Cannot redraw item: parent has no background container element");t.appendChild(this.dom.box)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var t=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");this.dom.box.className=this.baseClassName+t}},o.prototype._getDomComponentsSizes=function(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.content).overflow,{content:{width:this.dom.content.offsetWidth}}},o.prototype._updateDomComponentsSizes=function(t){this.props.content.width=t.content.width,this.height=0,this.dirty=!1},o.prototype._repaintDomAdditionals=function(){},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes.bind(this)())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e,i=this.options.orientation.item;if(void 0!==this.data.subgroup){var o=this.data.subgroup;this.dom.box.style.height=this.parent.subgroups[o].height+"px",this.dom.box.style.top="top"==i?this.parent.top+this.parent.subgroups[o].top+"px":this.parent.top+this.parent.height-this.parent.subgroups[o].top-this.parent.subgroups[o].height+"px",this.dom.box.style.bottom=""}else this.parent instanceof s?(e=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.bottom="bottom"==i?"0":"",this.dom.box.style.top="top"==i?"0":""):(e=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=e+"px"},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(e,i){(0,s.default)(this,t),this.container=e,this.overflowMethod=i||"cap",this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement("div"),this.frame.className="vis-tooltip",this.container.appendChild(this.frame)}return(0,a.default)(t,[{key:"setPosition",value:function(t,e){this.x=parseInt(t),this.y=parseInt(e)}},{key:"setText",value:function(t){t instanceof Element?(this.frame.innerHTML="",this.frame.appendChild(t)):this.frame.innerHTML=t}},{key:"show",value:function(t){if(void 0===t&&(t=!0),!0===t){var e=this.frame.clientHeight,i=this.frame.clientWidth,o=this.frame.parentNode.clientHeight,n=this.frame.parentNode.clientWidth,s=0,r=0;if("flip"==this.overflowMethod){var a=!1,h=!0;this.y-e<this.padding&&(h=!1),this.x+i>n-this.padding&&(a=!0),s=a?this.x-i:this.x,r=h?this.y-e:this.y}else r=this.y-e,r+e+this.padding>o&&(r=o-e-this.padding),r<this.padding&&(r=this.padding),s=this.x,s+i+this.padding>n&&(s=n-i-this.padding),s<this.padding&&(s=this.padding);this.frame.style.left=s+"px",this.frame.style.top=r+"px",this.frame.style.visibility="visible",this.hidden=!1}else this.hide()}},{key:"hide",value:function(){this.hidden=!0,this.frame.style.left="0",this.frame.style.top="0",this.frame.style.visibility="hidden"}},{key:"destroy",value:function(){this.frame.parentNode.removeChild(this.frame)}}]),t}();e.default=h},function(t,e,i){Object.defineProperty(e,"__esModule",{value:!0});var o="string",n="boolean",s="number",r="object",a={configure:{enabled:{boolean:n},filter:{boolean:n,function:"function"},container:{dom:"dom"},__type__:{object:r,boolean:n,function:"function"}},align:{string:o},rtl:{boolean:n,undefined:"undefined"},rollingMode:{follow:{boolean:n},offset:{number:s,undefined:"undefined"},__type__:{object:r}},verticalScroll:{boolean:n,undefined:"undefined"},horizontalScroll:{boolean:n,undefined:"undefined"},autoResize:{boolean:n},throttleRedraw:{number:s},clickToUse:{boolean:n},dataAttributes:{string:o,array:"array"},editable:{add:{boolean:n,undefined:"undefined"},remove:{boolean:n,undefined:"undefined"},updateGroup:{boolean:n,undefined:"undefined"},updateTime:{boolean:n,undefined:"undefined"},overrideItems:{boolean:n,undefined:"undefined"},__type__:{boolean:n,object:r}},end:{number:s,date:"date",string:o,moment:"moment"},format:{minorLabels:{millisecond:{string:o,undefined:"undefined"},second:{string:o,undefined:"undefined"},minute:{string:o,undefined:"undefined"},hour:{string:o,undefined:"undefined"},weekday:{string:o,undefined:"undefined"},day:{string:o,undefined:"undefined"},week:{string:o,undefined:"undefined"},month:{string:o,undefined:"undefined"},year:{string:o,undefined:"undefined"},__type__:{object:r,function:"function"}},majorLabels:{millisecond:{string:o,undefined:"undefined"},second:{string:o,undefined:"undefined"},minute:{string:o,undefined:"undefined"},hour:{string:o,undefined:"undefined"},weekday:{string:o,undefined:"undefined"},day:{string:o,undefined:"undefined"},week:{string:o,undefined:"undefined"},month:{string:o,undefined:"undefined"},year:{string:o,undefined:"undefined"},__type__:{object:r,function:"function"}},__type__:{object:r}},moment:{function:"function"},groupOrder:{string:o,function:"function"},groupEditable:{add:{boolean:n,undefined:"undefined"},remove:{boolean:n,undefined:"undefined"},order:{boolean:n,undefined:"undefined"},__type__:{boolean:n,object:r}},groupOrderSwap:{function:"function"},height:{string:o,number:s},hiddenDates:{start:{date:"date",number:s,string:o,moment:"moment"},end:{date:"date",number:s,string:o,moment:"moment"},repeat:{string:o},__type__:{object:r,array:"array"}},itemsAlwaysDraggable:{item:{boolean:n,undefined:"undefined"},range:{boolean:n,undefined:"undefined"},__type__:{boolean:n,object:r}},limitSize:{boolean:n},locale:{string:o},locales:{__any__:{any:"any"},__type__:{object:r}},margin:{axis:{number:s},item:{horizontal:{number:s,undefined:"undefined"},vertical:{number:s,undefined:"undefined"},__type__:{object:r,number:s}},__type__:{object:r,number:s}},max:{date:"date",number:s,string:o,moment:"moment"},maxHeight:{number:s,string:o},maxMinorChars:{number:s},min:{date:"date",number:s,string:o,moment:"moment"},minHeight:{number:s,string:o},moveable:{boolean:n},multiselect:{boolean:n},multiselectPerGroup:{boolean:n},onAdd:{function:"function"},onDropObjectOnItem:{function:"function"},onUpdate:{function:"function"},onMove:{function:"function"},onMoving:{function:"function"},onRemove:{function:"function"},onAddGroup:{function:"function"},onMoveGroup:{function:"function"},onRemoveGroup:{function:"function"},onInitialDrawComplete:{function:"function"},order:{function:"function"},orientation:{axis:{string:o,undefined:"undefined"},item:{string:o,undefined:"undefined"},__type__:{string:o,object:r}},selectable:{boolean:n},showCurrentTime:{boolean:n},showMajorLabels:{boolean:n},showMinorLabels:{boolean:n},stack:{boolean:n},stackSubgroups:{boolean:n},snap:{function:"function",null:"null"},start:{date:"date",number:s,string:o,moment:"moment"},template:{function:"function"},groupTemplate:{function:"function"},visibleFrameTemplate:{string:o,function:"function"},showTooltips:{boolean:n},tooltip:{followMouse:{boolean:n},overflowMethod:{string:["cap","flip"]},__type__:{object:r}},tooltipOnItemUpdateTime:{template:{function:"function"},__type__:{boolean:n,object:r}},timeAxis:{scale:{string:o,undefined:"undefined"},step:{number:s,undefined:"undefined"},__type__:{object:r}},type:{string:o},width:{string:o,number:s},zoomable:{boolean:n},zoomKey:{string:["ctrlKey","altKey","metaKey",""]},zoomMax:{number:s},zoomMin:{number:s},__type__:{object:r}},h={global:{align:["center","left","right"],direction:!1,autoResize:!0,clickToUse:!1,editable:{add:!1,remove:!1,updateGroup:!1,updateTime:!1},end:"",format:{minorLabels:{millisecond:"SSS",second:"s",minute:"HH:mm",hour:"HH:mm",weekday:"ddd D",day:"D",week:"w",month:"MMM",year:"YYYY"},majorLabels:{millisecond:"HH:mm:ss",second:"D MMMM HH:mm",minute:"ddd D MMMM",hour:"ddd D MMMM",weekday:"MMMM YYYY",day:"MMMM YYYY",week:"MMMM YYYY",month:"YYYY",year:""}},groupsDraggable:!1,height:"",locale:"",margin:{axis:[20,0,100,1],item:{horizontal:[10,0,100,1],vertical:[10,0,100,1]}},max:"",maxHeight:"",maxMinorChars:[7,0,20,1],min:"",minHeight:"",moveable:!1,multiselect:!1,multiselectPerGroup:!1,orientation:{axis:["both","bottom","top"],item:["bottom","top"]},selectable:!0,showCurrentTime:!1,showMajorLabels:!0,showMinorLabels:!0,stack:!0,stackSubgroups:!0,start:"",showTooltips:!0,tooltip:{followMouse:!1,overflowMethod:"flip"},tooltipOnItemUpdateTime:!1,type:["box","point","range","background"],width:"100%",zoomable:!0,zoomKey:["ctrlKey","altKey","metaKey",""],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1]}};e.allOptions=a,e.configureOptions=h},function(t,e,i){function o(t,e){this.id=r.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,stack:!1,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,sideBySide:!1,align:"center"},interpolation:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{},legend:{},groups:{visibility:{}}},this.options=r.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.updateSVGheight=!1,this.updateSVGheightOnResize=!1,this.forceGraphUpdate=!0;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,o){i._onAdd(e.items)},update:function(t,e,o){i._onUpdate(e.items)},remove:function(t,e,o){i._onRemove(e.items)}},this.groupListeners={add:function(t,e,o){i._onAddGroups(e.items)},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=r.option.asSize(-i.props.width),i.forceGraphUpdate=!0,i.redraw.call(i)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups}}var n=i(6),s=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(2),a=i(14),h=i(11),d=i(12),l=i(16),u=i(107),c=i(109),p=i(112),f=i(110),m=i(111),v=i(72);o.prototype=new l,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-line-graph",this.dom.frame=t,this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="relative",this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",this.svg.style.display="block",t.appendChild(this.svg),this.options.dataAxis.orientation="left",this.yAxisLeft=new u(this.body,this.options.dataAxis,this.svg,this.options.groups),this.options.dataAxis.orientation="right",this.yAxisRight=new u(this.body,this.options.dataAxis,this.svg,this.options.groups),delete this.options.dataAxis.orientation,this.legendLeft=new p(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new p(this.body,this.options.legend,"right",this.options.groups),this.show()},o.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","stack","height","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height?(this.updateSVGheight=!0,this.updateSVGheightOnResize=!0):void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))<this.body.domProps.centerContainer.height&&(this.updateSVGheight=!0),r.selectiveDeepExtend(e,this.options,t),r.mergeOptions(this.options,t,"interpolation"),r.mergeOptions(this.options,t,"drawPoints"),r.mergeOptions(this.options,t,"shaded"),r.mergeOptions(this.options,t,"legend"),t.interpolation&&"object"==(0,s.default)(t.interpolation)&&t.interpolation.parametrization&&("uniform"==t.interpolation.parametrization?this.options.interpolation.alpha=0:"chordal"==t.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5)),this.yAxisLeft&&void 0!==t.dataAxis&&(this.yAxisLeft.setOptions(this.options.dataAxis),this.yAxisRight.setOptions(this.options.dataAxis)),this.legendLeft&&void 0!==t.legend&&(this.legendLeft.setOptions(this.options.legend),this.legendRight.setOptions(this.options.legend)),this.groups.hasOwnProperty("__ungrouped__")&&this.groups.__ungrouped__.setOptions(t)}this.dom.frame&&(this.forceGraphUpdate=!0,this.body.emitter.emit("_change",{queue:!0}))},o.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame)},o.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame)},o.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof h||t instanceof d))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(r.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;r.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e)}},o.prototype.setGroups=function(t){var e,i=this;if(this.groupsData){r.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null;for(var o=0;o<e.length;o++)this._removeGroup(e[o])}if(t){if(!(t instanceof h||t instanceof d))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var n=this.id;r.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,n)}),e=this.groupsData.getIds(),this._onAddGroups(e)}},o.prototype._onUpdate=function(t){this._updateAllGroupData(t)},o.prototype._onAdd=function(t){this._onUpdate(t)},o.prototype._onRemove=function(t){this._onUpdate(t)},o.prototype._onUpdateGroups=function(t){this._updateAllGroupData(null,t)},o.prototype._onAddGroups=function(t){this._onUpdateGroups(t)},o.prototype._onRemoveGroups=function(t){for(var e=0;e<t.length;e++)this._removeGroup(t[e]);this.forceGraphUpdate=!0,this.body.emitter.emit("_change",{queue:!0})},o.prototype._removeGroup=function(t){this.groups.hasOwnProperty(t)&&("right"==this.groups[t].options.yAxisOrientation?(this.yAxisRight.removeGroup(t),this.legendRight.removeGroup(t),this.legendRight.redraw()):(this.yAxisLeft.removeGroup(t),this.legendLeft.removeGroup(t),this.legendLeft.redraw()),delete this.groups[t])},o.prototype._updateGroup=function(t,e){this.groups.hasOwnProperty(e)?(this.groups[e].update(t),"right"==this.groups[e].options.yAxisOrientation?(this.yAxisRight.updateGroup(e,this.groups[e]),this.legendRight.updateGroup(e,this.groups[e]),this.yAxisLeft.removeGroup(e),this.legendLeft.removeGroup(e)):(this.yAxisLeft.updateGroup(e,this.groups[e]),this.legendLeft.updateGroup(e,this.groups[e]),this.yAxisRight.removeGroup(e),this.legendRight.removeGroup(e))):(this.groups[e]=new c(t,e,this.options,this.groupsUsingDefaultStyles),"right"==this.groups[e].options.yAxisOrientation?(this.yAxisRight.addGroup(e,this.groups[e]),this.legendRight.addGroup(e,this.groups[e])):(this.yAxisLeft.addGroup(e,this.groups[e]),this.legendLeft.addGroup(e,this.groups[e]))),this.legendLeft.redraw(),this.legendRight.redraw()},o.prototype._updateAllGroupData=function(t,e){if(null!=this.itemsData){var i={},o=this.itemsData.get(),n=this.itemsData._fieldId,s={};t&&t.map(function(t){s[t]=t});for(var a={},h=0;h<o.length;h++){var d=o[h],l=d.group;null!==l&&void 0!==l||(l="__ungrouped__"),a.hasOwnProperty(l)?a[l]++:a[l]=1}var u={};if(!e&&t)for(l in this.groups)if(this.groups.hasOwnProperty(l)){v=this.groups[l];var c=v.getItems();i[l]=c.filter(function(t){return u[t[n]]=t[n],t[n]!==s[t[n]]});var p=a[l];a[l]-=i[l].length,i[l].length<p&&(i[l][p-1]={})}for(h=0;h<o.length;h++)if(d=o[h],l=d.group,null!==l&&void 0!==l||(l="__ungrouped__"),e||!t||d[n]===s[d[n]]||!u.hasOwnProperty(d[n])){i.hasOwnProperty(l)||(i[l]=new Array(a[l]));var f=r.bridgeObject(d);f.x=r.convert(d.x,"Date"),f.end=r.convert(d.end,"Date"),f.orginalY=d.y,f.y=Number(d.y),
+f[n]=d[n];var m=i[l].length-a[l]--;i[l][m]=f}for(l in this.groups)this.groups.hasOwnProperty(l)&&(i.hasOwnProperty(l)||(i[l]=new Array(0)));for(l in i)if(i.hasOwnProperty(l))if(0==i[l].length)this.groups.hasOwnProperty(l)&&this._removeGroup(l);else{var v=void 0;void 0!=this.groupsData&&(v=this.groupsData.get(l)),void 0==v&&(v={id:l,content:this.options.defaultGroup+l}),this._updateGroup(v,l),this.groups[l].setItems(i[l])}this.forceGraphUpdate=!0,this.body.emitter.emit("_change",{queue:!0})}},o.prototype.redraw=function(){var t=!1;this.props.width=this.dom.frame.offsetWidth,this.props.height=this.body.domProps.centerContainer.height-this.body.domProps.border.top-this.body.domProps.border.bottom,t=this._isResized()||t;var e=this.body.range.end-this.body.range.start,i=e!=this.lastVisibleInterval;if(this.lastVisibleInterval=e,1==t&&(this.svg.style.width=r.option.asSize(3*this.props.width),this.svg.style.left=r.option.asSize(-this.props.width),-1==(this.options.height+"").indexOf("%")&&1!=this.updateSVGheightOnResize||(this.updateSVGheight=!0)),1==this.updateSVGheight?(this.options.graphHeight!=this.props.height+"px"&&(this.options.graphHeight=this.props.height+"px",this.svg.style.height=this.props.height+"px"),this.updateSVGheight=!1):this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",1==t||1==i||1==this.abortedGraphUpdate||1==this.forceGraphUpdate)t=this._updateGraph()||t,this.forceGraphUpdate=!1;else if(0!=this.lastStart){var o=this.body.range.start-this.lastStart,n=this.body.range.end-this.body.range.start;if(0!=this.props.width){var s=this.props.width/n,a=o*s;this.svg.style.left=-this.props.width-a+"px"}}return this.legendLeft.redraw(),this.legendRight.redraw(),t},o.prototype._getSortedGroupIds=function(){var t=[];for(var e in this.groups)if(this.groups.hasOwnProperty(e)){var i=this.groups[e];1!=i.visible||void 0!==this.options.groups.visibility[e]&&1!=this.options.groups.visibility[e]||t.push({id:e,zIndex:i.options.zIndex})}r.insertSort(t,function(t,e){var i=t.zIndex,o=e.zIndex;return void 0===i&&(i=0),void 0===o&&(o=0),i==o?0:i<o?-1:1});for(var o=new Array(t.length),n=0;n<t.length;n++)o[n]=t[n].id;return o},o.prototype._updateGraph=function(){if(a.prepareElements(this.svgElements),0!=this.props.width&&null!=this.itemsData){var t,e,i={},o=this.body.util.toGlobalTime(-this.body.domProps.root.width),n=this.body.util.toGlobalTime(2*this.body.domProps.root.width),s=this._getSortedGroupIds();if(s.length>0){var r={};for(this._getRelevantData(s,r,o,n),this._applySampling(s,r),e=0;e<s.length;e++)this._convertXcoordinates(r[s[e]]);if(this._getYRanges(s,r,i),1==this._updateYAxis(s,i))return a.cleanupElements(this.svgElements),this.abortedGraphUpdate=!0,!0;this.abortedGraphUpdate=!1;var h=void 0;for(e=0;e<s.length;e++)t=this.groups[s[e]],!0===this.options.stack&&"line"===this.options.style&&(void 0!=t.options.excludeFromStacking&&t.options.excludeFromStacking||(void 0!=h&&(this._stack(r[t.id],r[h.id]),1==t.options.shaded.enabled&&"group"!==t.options.shaded.orientation&&("top"==t.options.shaded.orientation&&"group"!==h.options.shaded.orientation?(h.options.shaded.orientation="group",h.options.shaded.groupId=t.id):(t.options.shaded.orientation="group",t.options.shaded.groupId=h.id))),h=t)),this._convertYcoordinates(r[s[e]],t);var d={};for(e=0;e<s.length;e++)if(t=this.groups[s[e]],"line"===t.options.style&&1==t.options.shaded.enabled){var l=r[s[e]];if(null==l||0==l.length)continue;if(d.hasOwnProperty(s[e])||(d[s[e]]=m.calcPath(l,t)),"group"===t.options.shaded.orientation){var u=t.options.shaded.groupId;if(-1===s.indexOf(u)){console.log(t.id+": Unknown shading group target given:"+u);continue}d.hasOwnProperty(u)||(d[u]=m.calcPath(r[u],this.groups[u])),m.drawShading(d[s[e]],t,d[u],this.framework)}else m.drawShading(d[s[e]],t,void 0,this.framework)}for(f.draw(s,r,this.framework),e=0;e<s.length;e++)if(t=this.groups[s[e]],r[s[e]].length>0)switch(t.options.style){case"line":d.hasOwnProperty(s[e])||(d[s[e]]=m.calcPath(r[s[e]],t)),m.draw(d[s[e]],t,this.framework);case"point":case"points":"point"!=t.options.style&&"points"!=t.options.style&&1!=t.options.drawPoints.enabled||v.draw(r[s[e]],t,this.framework)}}}return a.cleanupElements(this.svgElements),!1},o.prototype._stack=function(t,e){var i,o,n,s,r;i=0;for(var a=0;a<t.length;a++){s=void 0,r=void 0;for(var h=i;h<e.length;h++){if(e[h].x===t[a].x){s=e[h],r=e[h],i=h;break}if(e[h].x>t[a].x){r=e[h],s=0==h?r:e[h-1],i=h;break}}void 0===r&&(s=e[e.length-1],r=e[e.length-1]),o=r.x-s.x,n=r.y-s.y,t[a].y=0==o?t[a].orginalY+r.y:t[a].orginalY+n/o*(t[a].x-s.x)+s.y}},o.prototype._getRelevantData=function(t,e,i,o){var n,s,a,h;if(t.length>0)for(s=0;s<t.length;s++){n=this.groups[t[s]];var d=n.getItems();if(1==n.options.sort){var l=function(t,e){return t.getTime()==e.getTime()?0:t<e?-1:1},u=Math.max(0,r.binarySearchValue(d,i,"x","before",l)),c=Math.min(d.length,r.binarySearchValue(d,o,"x","after",l)+1);c<=0&&(c=d.length);var p=new Array(c-u);for(a=u;a<c;a++)h=n.itemsData[a],p[a-u]=h;e[t[s]]=p}else e[t[s]]=n.itemsData}},o.prototype._applySampling=function(t,e){var i;if(t.length>0)for(var o=0;o<t.length;o++)if(i=this.groups[t[o]],1==i.options.sampling){var n=e[t[o]];if(n.length>0){var s=1,r=n.length,a=this.body.util.toGlobalScreen(n[n.length-1].x)-this.body.util.toGlobalScreen(n[0].x),h=r/a;s=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=new Array(r),l=0;l<r;l+=s){var u=Math.round(l/s);d[u]=n[l]}e[t[o]]=d.splice(0,Math.round(r/s))}}},o.prototype._getYRanges=function(t,e,i){var o,n,s,r,a=[],h=[];if(t.length>0){for(s=0;s<t.length;s++)o=e[t[s]],r=this.groups[t[s]].options,o.length>0&&(n=this.groups[t[s]],!0===r.stack&&"bar"===r.style?"left"===r.yAxisOrientation?a=a.concat(o):h=h.concat(o):i[t[s]]=n.getYRange(o,t[s]));f.getStackedYRange(a,i,t,"__barStackLeft","left"),f.getStackedYRange(h,i,t,"__barStackRight","right")}},o.prototype._updateYAxis=function(t,e){var i,o,n=!1,s=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var u=0;u<t.length;u++){var c=this.groups[t[u]];c&&"right"!=c.options.yAxisOrientation?(s=!0,a=1e9,d=-1e9):c&&c.options.yAxisOrientation&&(r=!0,h=1e9,l=-1e9)}for(u=0;u<t.length;u++)e.hasOwnProperty(t[u])&&!0!==e[t[u]].ignore&&(i=e[t[u]].min,o=e[t[u]].max,"right"!=e[t[u]].yAxisOrientation?(s=!0,a=a>i?i:a,d=d<o?o:d):(r=!0,h=h>i?i:h,l=l<o?o:l));1==s&&this.yAxisLeft.setRange(a,d),1==r&&this.yAxisRight.setRange(h,l)}n=this._toggleAxisVisiblity(s,this.yAxisLeft)||n,n=this._toggleAxisVisiblity(r,this.yAxisRight)||n,1==r&&1==s?(this.yAxisLeft.drawIcons=!0,this.yAxisRight.drawIcons=!0):(this.yAxisLeft.drawIcons=!1,this.yAxisRight.drawIcons=!1),this.yAxisRight.master=!s,this.yAxisRight.masterAxis=this.yAxisLeft,0==this.yAxisRight.master?(this.yAxisLeft.lineOffset=1==r?this.yAxisRight.width:0,n=this.yAxisLeft.redraw()||n,n=this.yAxisRight.redraw()||n):n=this.yAxisRight.redraw()||n;var p=["__barStackLeft","__barStackRight","__lineStackLeft","__lineStackRight"];for(u=0;u<p.length;u++)-1!=t.indexOf(p[u])&&t.splice(t.indexOf(p[u]),1);return n},o.prototype._toggleAxisVisiblity=function(t,e){var i=!1;return 0==t?e.dom.frame.parentNode&&0==e.hidden&&(e.hide(),i=!0):e.dom.frame.parentNode||1!=e.hidden||(e.show(),i=!0),i},o.prototype._convertXcoordinates=function(t){for(var e=this.body.util.toScreen,i=0;i<t.length;i++)t[i].screen_x=e(t[i].x)+this.props.width,t[i].screen_y=t[i].y,void 0!=t[i].end?t[i].screen_end=e(t[i].end)+this.props.width:t[i].screen_end=void 0},o.prototype._convertYcoordinates=function(t,e){var i=this.yAxisLeft,o=Number(this.svg.style.height.replace("px",""));"right"==e.options.yAxisOrientation&&(i=this.yAxisRight);for(var n=0;n<t.length;n++)t[n].screen_y=Math.round(i.convertValue(t[n].y));e.setZeroPosition(Math.min(o,i.convertValue(0)))},t.exports=o},function(t,e,i){function o(t,e,i,o){this.id=r.randomUUID(),this.body=t,this.defaultOptions={orientation:"left",showMinorLabels:!0,showMajorLabels:!0,icons:!1,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:"40px",visible:!0,alignZeros:!0,left:{range:{min:void 0,max:void 0},format:function(t){return""+parseFloat(t.toPrecision(3))},title:{text:void 0,style:void 0}},right:{range:{min:void 0,max:void 0},format:function(t){return""+parseFloat(t.toPrecision(3))},title:{text:void 0,style:void 0}}},this.linegraphOptions=o,this.linegraphSVG=i,this.props={},this.DOMelements={lines:{},labels:{},title:{}},this.dom={},this.scale=void 0,this.range={start:0,end:0},this.options=r.extend({},this.defaultOptions),this.conversionFactor=1,this.setOptions(e),this.width=Number((""+this.options.width).replace("px","")),this.minWidth=this.width,this.height=this.linegraphSVG.getBoundingClientRect().height,this.hidden=!1,this.stepPixels=25,this.zeroCrossing=-1,this.amountOfSteps=-1,this.lineOffset=0,this.master=!0,this.masterAxis=null,this.svgElements={},this.iconsRemoved=!1,this.groups={},this.amountOfGroups=0,this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups};var n=this;this.body.emitter.on("verticalDrag",function(){n.dom.lineContainer.style.top=n.body.domProps.scrollTop+"px"})}var n=i(8),s=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(2),a=i(14),h=i(16),d=i(108);o.prototype=new h,o.prototype.addGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1},o.prototype.updateGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.amountOfGroups+=1),this.groups[t]=e},o.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},o.prototype.setOptions=function(t){if(t){var e=!1;this.options.orientation!=t.orientation&&void 0!==t.orientation&&(e=!0);var i=["orientation","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","width","visible","left","right","alignZeros"];r.selectiveDeepExtend(i,this.options,t),this.minWidth=Number((""+this.options.width).replace("px","")),!0===e&&this.dom.frame&&(this.hide(),this.show())}},o.prototype._create=function(){this.dom.frame=document.createElement("div"),this.dom.frame.style.width=this.options.width,this.dom.frame.style.height=this.height,this.dom.lineContainer=document.createElement("div"),this.dom.lineContainer.style.width="100%",this.dom.lineContainer.style.height=this.height,this.dom.lineContainer.style.position="relative",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.height="100%",this.svg.style.width="100%",this.svg.style.display="block",this.dom.frame.appendChild(this.svg)},o.prototype._redrawGroupIcons=function(){a.prepareElements(this.svgElements);var t,e=this.options.iconWidth,i=11.5;t="left"===this.options.orientation?4:this.width-e-4;var o=(0,s.default)(this.groups);o.sort(function(t,e){return t<e?-1:1});for(var n=0;n<o.length;n++){var r=o[n];!0!==this.groups[r].visible||void 0!==this.linegraphOptions.visibility[r]&&!0!==this.linegraphOptions.visibility[r]||(this.groups[r].getLegend(e,15,this.framework,t,i),i+=19)}a.cleanupElements(this.svgElements),this.iconsRemoved=!1},o.prototype._cleanupIcons=function(){!1===this.iconsRemoved&&(a.prepareElements(this.svgElements),a.cleanupElements(this.svgElements),this.iconsRemoved=!0)},o.prototype.show=function(){this.hidden=!1,this.dom.frame.parentNode||("left"===this.options.orientation?this.body.dom.left.appendChild(this.dom.frame):this.body.dom.right.appendChild(this.dom.frame)),this.dom.lineContainer.parentNode||this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)},o.prototype.hide=function(){this.hidden=!0,this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.lineContainer.parentNode&&this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)},o.prototype.setRange=function(t,e){this.range.start=t,this.range.end=e},o.prototype.redraw=function(){var t=!1,e=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+"px";for(var i in this.groups)this.groups.hasOwnProperty(i)&&(!0!==this.groups[i].visible||void 0!==this.linegraphOptions.visibility[i]&&!0!==this.linegraphOptions.visibility[i]||e++);if(0===this.amountOfGroups||0===e)this.hide();else{this.show(),this.height=Number(this.linegraphSVG.style.height.replace("px","")),this.dom.lineContainer.style.height=this.height+"px",this.width=!0===this.options.visible?Number((""+this.options.width).replace("px","")):0;var o=this.props,n=this.dom.frame;n.className="vis-data-axis",this._calculateCharSize();var s=this.options.orientation,r=this.options.showMinorLabels,a=this.options.showMajorLabels;o.minorLabelHeight=r?o.minorCharHeight:0,o.majorLabelHeight=a?o.majorCharHeight:0,o.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset,o.minorLineHeight=1,o.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset,o.majorLineHeight=1,"left"===s?(n.style.top="0",n.style.left="0",n.style.bottom="",n.style.width=this.width+"px",n.style.height=this.height+"px",this.props.width=this.body.domProps.left.width,this.props.height=this.body.domProps.left.height):(n.style.top="",n.style.bottom="0",n.style.left="0",n.style.width=this.width+"px",n.style.height=this.height+"px",this.props.width=this.body.domProps.right.width,this.props.height=this.body.domProps.right.height),t=this._redrawLabels(),t=this._isResized()||t,!0===this.options.icons?this._redrawGroupIcons():this._cleanupIcons(),this._redrawTitle(s)}return t},o.prototype._redrawLabels=function(){var t=this,e=!1;a.prepareElements(this.DOMelements.lines),a.prepareElements(this.DOMelements.labels);var i=this.options.orientation,o=void 0!=this.options[i].range?this.options[i].range:{},n=!0;void 0!=o.max&&(this.range.end=o.max,n=!1);var s=!0;void 0!=o.min&&(this.range.start=o.min,s=!1),this.scale=new d(this.range.start,this.range.end,s,n,this.dom.frame.offsetHeight,this.props.majorCharHeight,this.options.alignZeros,this.options[i].format),!1===this.master&&void 0!=this.masterAxis&&this.scale.followScale(this.masterAxis.scale),this.maxLabelSize=0,this.scale.getLines().forEach(function(e){var o=e.y,n=e.major;t.options.showMinorLabels&&!1===n&&t._redrawLabel(o-2,e.val,i,"vis-y-axis vis-minor",t.props.minorCharHeight),n&&o>=0&&t._redrawLabel(o-2,e.val,i,"vis-y-axis vis-major",t.props.majorCharHeight),!0===t.master&&(n?t._redrawLine(o,i,"vis-grid vis-horizontal vis-major",t.options.majorLinesOffset,t.props.majorLineWidth):t._redrawLine(o,i,"vis-grid vis-horizontal vis-minor",t.options.minorLinesOffset,t.props.minorLineWidth))});var r=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(r=this.props.titleCharHeight);var h=!0===this.options.icons?Math.max(this.options.iconWidth,r)+this.options.labelOffsetX+15:r+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-h&&!0===this.options.visible?(this.width=this.maxLabelSize+h,this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):this.maxLabelSize<this.width-h&&!0===this.options.visible&&this.width>this.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+h),this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):(a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),e=!1),e},o.prototype.convertValue=function(t){return this.scale.convertValue(t)},o.prototype.screenToValue=function(t){return this.scale.screenToValue(t)},o.prototype._redrawLabel=function(t,e,i,o,n){var s=a.getDOMElement("div",this.DOMelements.labels,this.dom.frame);s.className=o,s.innerHTML=e,"left"===i?(s.style.left="-"+this.options.labelOffsetX+"px",s.style.textAlign="right"):(s.style.right="-"+this.options.labelOffsetX+"px",s.style.textAlign="left"),s.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var r=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize<e.length*r&&(this.maxLabelSize=e.length*r)},o.prototype._redrawLine=function(t,e,i,o,n){if(!0===this.master){var s=a.getDOMElement("div",this.DOMelements.lines,this.dom.lineContainer);s.className=i,s.innerHTML="","left"===e?s.style.left=this.width-o+"px":s.style.right=this.width-o+"px",s.style.width=n+"px",s.style.top=t+"px"}},o.prototype._redrawTitle=function(t){if(a.prepareElements(this.DOMelements.title),void 0!==this.options[t].title&&void 0!==this.options[t].title.text){var e=a.getDOMElement("div",this.DOMelements.title,this.dom.frame);e.className="vis-y-axis vis-title vis-"+t,e.innerHTML=this.options[t].title.text,void 0!==this.options[t].title.style&&r.addCssText(e,this.options[t].title.style),"left"===t?e.style.left=this.props.titleCharHeight+"px":e.style.right=this.props.titleCharHeight+"px",e.style.width=this.height+"px"}a.cleanupElements(this.DOMelements.title)},o.prototype._calculateCharSize=function(){if(!("minorCharHeight"in this.props)){var t=document.createTextNode("0"),e=document.createElement("div");e.className="vis-y-axis vis-minor vis-measure",e.appendChild(t),this.dom.frame.appendChild(e),this.props.minorCharHeight=e.clientHeight,this.props.minorCharWidth=e.clientWidth,this.dom.frame.removeChild(e)}if(!("majorCharHeight"in this.props)){var i=document.createTextNode("0"),o=document.createElement("div");o.className="vis-y-axis vis-major vis-measure",o.appendChild(i),this.dom.frame.appendChild(o),this.props.majorCharHeight=o.clientHeight,this.props.majorCharWidth=o.clientWidth,this.dom.frame.removeChild(o)}if(!("titleCharHeight"in this.props)){var n=document.createTextNode("0"),s=document.createElement("div");s.className="vis-y-axis vis-title vis-measure",s.appendChild(n),this.dom.frame.appendChild(s),this.props.titleCharHeight=s.clientHeight,this.props.titleCharWidth=s.clientWidth,this.dom.frame.removeChild(s)}},t.exports=o},function(t,e,i){function o(t,e,i,o,n,s){var r=arguments.length>6&&void 0!==arguments[6]&&arguments[6],a=arguments.length>7&&void 0!==arguments[7]&&arguments[7];if(this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.customLines=null,this.containerHeight=n,this.majorCharHeight=s,this._start=t,this._end=e,this.scale=1,this.minorStepIdx=-1,this.magnitudefactor=1,this.determineScale(),this.zeroAlign=r,this.autoScaleStart=i,this.autoScaleEnd=o,this.formattingFunction=a,i||o){var h=this,d=function(t){var e=t-t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx]);return t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx])>h.magnitudefactor*h.minorSteps[h.minorStepIdx]*.5?e+h.magnitudefactor*h.minorSteps[h.minorStepIdx]:e};i&&(this._start-=2*this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._start=d(this._start)),o&&(this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._end=d(this._end)),this.determineScale()}}o.prototype.setCharHeight=function(t){this.majorCharHeight=t},o.prototype.setHeight=function(t){this.containerHeight=t},o.prototype.determineScale=function(){var t=this._end-this._start;this.scale=this.containerHeight/t;var e=this.majorCharHeight/this.scale,i=t>0?Math.round(Math.log(t)/Math.LN10):0;this.minorStepIdx=-1,this.magnitudefactor=Math.pow(10,i);var o=0;i<0&&(o=i);for(var n=!1,s=o;Math.abs(s)<=Math.abs(i);s++){this.magnitudefactor=Math.pow(10,s);for(var r=0;r<this.minorSteps.length;r++){if(this.magnitudefactor*this.minorSteps[r]>=e){n=!0,this.minorStepIdx=r;break}}if(!0===n)break}},o.prototype.is_major=function(t){return t%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])==0},o.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]},o.prototype.getFirstMajor=function(){var t=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(t-this._start%t)%t)},o.prototype.formatValue=function(t){var e=t.toPrecision(5);return"function"==typeof this.formattingFunction&&(e=this.formattingFunction(t)),"number"==typeof e?""+e:"string"==typeof e?e:t.toPrecision(5)},o.prototype.getLines=function(){for(var t=[],e=this.getStep(),i=(e-this._start%e)%e,o=this._start+i;this._end-o>1e-5;o+=e)o!=this._start&&t.push({major:this.is_major(o),y:this.convertValue(o),val:this.formatValue(o)});return t},o.prototype.followScale=function(t){var e=this.minorStepIdx,i=this._start,o=this._end,n=this,s=function(){n.magnitudefactor*=2},r=function(){n.magnitudefactor/=2};t.minorStepIdx<=1&&this.minorStepIdx<=1||t.minorStepIdx>1&&this.minorStepIdx>1||(t.minorStepIdx<this.minorStepIdx?(this.minorStepIdx=1,2==e?s():(s(),s())):(this.minorStepIdx=2,1==e?r():(r(),r())));for(var a=t.convertValue(0),h=t.getStep()*t.scale,d=!1,l=0;!d&&l++<5;){this.scale=h/(this.minorSteps[this.minorStepIdx]*this.magnitudefactor);var u=this.containerHeight/this.scale;this._start=i,this._end=this._start+u;var c=this._end*this.scale,p=this.magnitudefactor*this.majorSteps[this.minorStepIdx],f=this.getFirstMajor()-t.getFirstMajor();if(this.zeroAlign){var m=a-c;this._end+=m/this.scale,this._start=this._end-u}else this.autoScaleStart?(this._start-=f/this.scale,this._end=this._start+u):(this._start+=p-f/this.scale,this._end=this._start+u);if(!this.autoScaleEnd&&this._end>o+1e-5)r(),d=!1;else{if(!this.autoScaleStart&&this._start<i-1e-5){if(!(this.zeroAlign&&i>=0)){r(),d=!1;continue}console.warn("Can't adhere to given 'min' range, due to zeroalign")}this.autoScaleStart&&this.autoScaleEnd&&u<o-i?(s(),d=!1):d=!0}}},o.prototype.convertValue=function(t){return this.containerHeight-(t-this._start)*this.scale},o.prototype.screenToValue=function(t){return(this.containerHeight-t)/this.scale+this._start},t.exports=o},function(t,e,i){function o(t,e,i,o){this.id=e;var n=["sampling","style","sort","yAxisOrientation","barChart","drawPoints","shaded","interpolation","zIndex","excludeFromStacking","excludeFromLegend"];this.options=r.selectiveBridgeObject(n,i),this.usingDefaultStyle=void 0===t.className,this.groupsUsingDefaultStyles=o,this.zeroPosition=0,this.update(t),1==this.usingDefaultStyle&&(this.groupsUsingDefaultStyles[0]+=1),this.itemsData=[],this.visible=void 0===t.visible||t.visible}var n=i(6),s=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(2),a=i(110),h=i(111),d=i(72);o.prototype.setItems=function(t){null!=t?(this.itemsData=t,1==this.options.sort&&r.insertSort(this.itemsData,function(t,e){return t.x>e.x?1:-1})):this.itemsData=[]},o.prototype.getItems=function(){return this.itemsData},o.prototype.setZeroPosition=function(t){this.zeroPosition=t},o.prototype.setOptions=function(t){if(void 0!==t){var e=["sampling","style","sort","yAxisOrientation","barChart","zIndex","excludeFromStacking","excludeFromLegend"];r.selectiveDeepExtend(e,this.options,t),"function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),r.mergeOptions(this.options,t,"interpolation"),r.mergeOptions(this.options,t,"drawPoints"),r.mergeOptions(this.options,t,"shaded"),t.interpolation&&"object"==(0,s.default)(t.interpolation)&&t.interpolation.parametrization&&("uniform"==t.interpolation.parametrization?this.options.interpolation.alpha=0:"chordal"==t.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5))}},o.prototype.update=function(t){this.group=t,this.content=t.content||"graph",this.className=t.className||this.className||"vis-graph-group"+this.groupsUsingDefaultStyles[0]%10,this.visible=void 0===t.visible||t.visible,this.style=t.style,this.setOptions(t.options)},o.prototype.getLegend=function(t,e,i,o,n){if(void 0==i||null==i){i={svg:document.createElementNS("http://www.w3.org/2000/svg","svg"),svgElements:{},options:this.options,groups:[this]}}switch(void 0!=o&&null!=o||(o=0),void 0!=n&&null!=n||(n=.5*e),this.options.style){case"line":h.drawIcon(this,o,n,t,e,i);break;case"points":case"point":d.drawIcon(this,o,n,t,e,i);break;case"bar":a.drawIcon(this,o,n,t,e,i)}return{icon:i.svg,label:this.content,orientation:this.options.yAxisOrientation}},o.prototype.getYRange=function(t){for(var e=t[0].y,i=t[0].y,o=0;o<t.length;o++)e=e>t[o].y?t[o].y:e,i=i<t[o].y?t[o].y:i;return{min:e,max:i,yAxisOrientation:this.options.yAxisOrientation}},t.exports=o},function(t,e,i){function o(t,e){}var n=i(14),s=i(72);o.drawIcon=function(t,e,i,o,s,r){var a=.5*s,h=n.getSVGElement("rect",r.svgElements,r.svg);h.setAttributeNS(null,"x",e),h.setAttributeNS(null,"y",i-a),h.setAttributeNS(null,"width",o),h.setAttributeNS(null,"height",2*a),h.setAttributeNS(null,"class","vis-outline");var d=Math.round(.3*o),l=t.options.barChart.width,u=l/d,c=Math.round(.4*s),p=Math.round(.75*s),f=Math.round((o-2*d)/3);if(n.drawBar(e+.5*d+f,i+a-c-1,d,c,t.className+" vis-bar",r.svgElements,r.svg,t.style),n.drawBar(e+1.5*d+f+2,i+a-p-1,d,p,t.className+" vis-bar",r.svgElements,r.svg,t.style),1==t.options.drawPoints.enabled){var m={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size/u,className:t.className};n.drawPoint(e+.5*d+f,i+a-c-1,m,r.svgElements,r.svg),n.drawPoint(e+1.5*d+f+2,i+a-p-1,m,r.svgElements,r.svg)}},o.draw=function(t,e,i){var r,a,h,d,l,u,c=[],p={},f=0;for(l=0;l<t.length;l++)if(d=i.groups[t[l]],"bar"===d.options.style&&!0===d.visible&&(void 0===i.options.groups.visibility[t[l]]||!0===i.options.groups.visibility[t[l]]))for(u=0;u<e[t[l]].length;u++)c.push({screen_x:e[t[l]][u].screen_x,screen_end:e[t[l]][u].screen_end,screen_y:e[t[l]][u].screen_y,x:e[t[l]][u].x,end:e[t[l]][u].end,y:e[t[l]][u].y,groupId:t[l],label:e[t[l]][u].label}),f+=1;if(0!==f)for(c.sort(function(t,e){return t.screen_x===e.screen_x?t.groupId<e.groupId?-1:1:t.screen_x-e.screen_x}),o._getDataIntersections(p,c),l=0;l<c.length;l++){d=i.groups[c[l].groupId];var m=void 0!=d.options.barChart.minWidth?d.options.barChart.minWidth:.1*d.options.barChart.width;a=c[l].screen_x;var v=0;if(void 0===p[a])l+1<c.length&&(r=Math.abs(c[l+1].screen_x-a)),h=o._getSafeDrawData(r,d,m);else{var g=l+(p[a].amount-p[a].resolved);g<c.length&&(r=Math.abs(c[g].screen_x-a)),h=o._getSafeDrawData(r,d,m),p[a].resolved+=1,!0===d.options.stack&&!0!==d.options.excludeFromStacking?c[l].screen_y<d.zeroPosition?(v=p[a].accumulatedNegative,p[a].accumulatedNegative+=d.zeroPosition-c[l].screen_y):(v=p[a].accumulatedPositive,p[a].accumulatedPositive+=d.zeroPosition-c[l].screen_y):!0===d.options.barChart.sideBySide&&(h.width=h.width/p[a].amount,h.offset+=p[a].resolved*h.width-.5*h.width*(p[a].amount+1))}var y=h.width,b=c[l].screen_x;if(void 0!=c[l].screen_end?(y=c[l].screen_end-c[l].screen_x,b+=.5*y):b+=h.offset,n.drawBar(b,c[l].screen_y-v,y,d.zeroPosition-c[l].screen_y,d.className+" vis-bar",i.svgElements,i.svg,d.style),!0===d.options.drawPoints.enabled){var _={screen_x:c[l].screen_x,screen_y:c[l].screen_y-v,x:c[l].x,y:c[l].y,groupId:c[l].groupId,label:c[l].label};s.draw([_],d,i,h.offset)}}},o._getDataIntersections=function(t,e){for(var i,o=0;o<e.length;o++)o+1<e.length&&(i=Math.abs(e[o+1].screen_x-e[o].screen_x)),o>0&&(i=Math.min(i,Math.abs(e[o-1].screen_x-e[o].screen_x))),0===i&&(void 0===t[e[o].screen_x]&&(t[e[o].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].screen_x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,n;return t<e.options.barChart.width&&t>0?(o=t<i?i:t,n=0,"left"===e.options.barChart.align?n-=.5*t:"right"===e.options.barChart.align&&(n+=.5*t)):(o=e.options.barChart.width,n=0,"left"===e.options.barChart.align?n-=.5*e.options.barChart.width:"right"===e.options.barChart.align&&(n+=.5*e.options.barChart.width)),{width:o,offset:n}},o.getStackedYRange=function(t,e,i,n,s){if(t.length>0){t.sort(function(t,e){return t.screen_x===e.screen_x?t.groupId<e.groupId?-1:1:t.screen_x-e.screen_x});var r={};o._getDataIntersections(r,t),e[n]=o._getStackedYRange(r,t),e[n].yAxisOrientation=s,i.push(n)}},o._getStackedYRange=function(t,e){for(var i,o=e[0].screen_y,n=e[0].screen_y,s=0;s<e.length;s++)i=e[s].screen_x,void 0===t[i]?(o=o>e[s].screen_y?e[s].screen_y:o,n=n<e[s].screen_y?e[s].screen_y:n):e[s].screen_y<0?t[i].accumulatedNegative+=e[s].screen_y:t[i].accumulatedPositive+=e[s].screen_y;for(var r in t)t.hasOwnProperty(r)&&(o=o>t[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n<t[r].accumulatedNegative?t[r].accumulatedNegative:n,n=n<t[r].accumulatedPositive?t[r].accumulatedPositive:n);return{min:o,max:n}},t.exports=o},function(t,e,i){function o(t,e){}var n=i(14);o.calcPath=function(t,e){if(null!=t&&t.length>0){return 1==e.options.interpolation.enabled?o._catmullRom(t,e):o._linear(t)}},o.drawIcon=function(t,e,i,o,s,r){var a,h,d=.5*s,l=n.getSVGElement("rect",r.svgElements,r.svg);if(l.setAttributeNS(null,"x",e),l.setAttributeNS(null,"y",i-d),l.setAttributeNS(null,"width",o),l.setAttributeNS(null,"height",2*d),l.setAttributeNS(null,"class","vis-outline"),a=n.getSVGElement("path",r.svgElements,r.svg),a.setAttributeNS(null,"class",t.className),void 0!==t.style&&a.setAttributeNS(null,"style",t.style),a.setAttributeNS(null,"d","M"+e+","+i+" L"+(e+o)+","+i),1==t.options.shaded.enabled&&(h=n.getSVGElement("path",r.svgElements,r.svg),"top"==t.options.shaded.orientation?h.setAttributeNS(null,"d","M"+e+", "+(i-d)+"L"+e+","+i+" L"+(e+o)+","+i+" L"+(e+o)+","+(i-d)):h.setAttributeNS(null,"d","M"+e+","+i+" L"+e+","+(i+d)+" L"+(e+o)+","+(i+d)+"L"+(e+o)+","+i),h.setAttributeNS(null,"class",t.className+" vis-icon-fill"),void 0!==t.options.shaded.style&&""!==t.options.shaded.style&&h.setAttributeNS(null,"style",t.options.shaded.style)),1==t.options.drawPoints.enabled){var u={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size,className:t.className};n.drawPoint(e+.5*o,i,u,r.svgElements,r.svg)}},o.drawShading=function(t,e,i,o){if(1==e.options.shaded.enabled){var s=Number(o.svg.style.height.replace("px","")),r=n.getSVGElement("path",o.svgElements,o.svg),a="L";1==e.options.interpolation.enabled&&(a="C");var h,d=0;d="top"==e.options.shaded.orientation?0:"bottom"==e.options.shaded.orientation?s:Math.min(Math.max(0,e.zeroPosition),s),h="group"==e.options.shaded.orientation&&null!=i&&void 0!=i?"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" L"+i[i.length-1][0]+","+i[i.length-1][1]+" "+this.serializePath(i,a,!0)+i[0][0]+","+i[0][1]+" Z":"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" V"+d+" H"+t[0][0]+" Z",r.setAttributeNS(null,"class",e.className+" vis-fill"),void 0!==e.options.shaded.style&&r.setAttributeNS(null,"style",e.options.shaded.style),r.setAttributeNS(null,"d",h)}},o.draw=function(t,e,i){if(null!=t&&void 0!=t){var o=n.getSVGElement("path",i.svgElements,i.svg);o.setAttributeNS(null,"class",e.className),void 0!==e.style&&o.setAttributeNS(null,"style",e.style);var s="L";1==e.options.interpolation.enabled&&(s="C"),o.setAttributeNS(null,"d","M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,s,!1))}},o.serializePath=function(t,e,i){if(t.length<2)return"";var o,n=e;if(i)for(o=t.length-2;o>0;o--)n+=t[o][0]+","+t[o][1]+" ";else for(o=1;o<t.length;o++)n+=t[o][0]+","+t[o][1]+" ";return n},o._catmullRomUniform=function(t){var e,i,o,n,s,r,a=[];a.push([Math.round(t[0].screen_x),Math.round(t[0].screen_y)]);for(var h=t.length,d=0;d<h-1;d++)e=0==d?t[0]:t[d-1],i=t[d],o=t[d+1],n=d+2<h?t[d+2]:o,s={screen_x:(-e.screen_x+6*i.screen_x+o.screen_x)*(1/6),screen_y:(-e.screen_y+6*i.screen_y+o.screen_y)*(1/6)},r={screen_x:(i.screen_x+6*o.screen_x-n.screen_x)*(1/6),screen_y:(i.screen_y+6*o.screen_y-n.screen_y)*(1/6)},a.push([s.screen_x,s.screen_y]),a.push([r.screen_x,r.screen_y]),a.push([o.screen_x,o.screen_y]);return a},o._catmullRom=function(t,e){var i=e.options.interpolation.alpha;if(0==i||void 0===i)return this._catmullRomUniform(t);var o,n,s,r,a,h,d,l,u,c,p,f,m,v,g,y,b,_,w,x=[];x.push([Math.round(t[0].screen_x),Math.round(t[0].screen_y)]);for(var k=t.length,S=0;S<k-1;S++)o=0==S?t[0]:t[S-1],n=t[S],s=t[S+1],r=S+2<k?t[S+2]:s,
+d=Math.sqrt(Math.pow(o.screen_x-n.screen_x,2)+Math.pow(o.screen_y-n.screen_y,2)),l=Math.sqrt(Math.pow(n.screen_x-s.screen_x,2)+Math.pow(n.screen_y-s.screen_y,2)),u=Math.sqrt(Math.pow(s.screen_x-r.screen_x,2)+Math.pow(s.screen_y-r.screen_y,2)),v=Math.pow(u,i),y=Math.pow(u,2*i),g=Math.pow(l,i),b=Math.pow(l,2*i),w=Math.pow(d,i),_=Math.pow(d,2*i),c=2*_+3*w*g+b,p=2*y+3*v*g+b,f=3*w*(w+g),f>0&&(f=1/f),m=3*v*(v+g),m>0&&(m=1/m),a={screen_x:(-b*o.screen_x+c*n.screen_x+_*s.screen_x)*f,screen_y:(-b*o.screen_y+c*n.screen_y+_*s.screen_y)*f},h={screen_x:(y*n.screen_x+p*s.screen_x-b*r.screen_x)*m,screen_y:(y*n.screen_y+p*s.screen_y-b*r.screen_y)*m},0==a.screen_x&&0==a.screen_y&&(a=n),0==h.screen_x&&0==h.screen_y&&(h=s),x.push([a.screen_x,a.screen_y]),x.push([h.screen_x,h.screen_y]),x.push([s.screen_x,s.screen_y]);return x},o._linear=function(t){for(var e=[],i=0;i<t.length;i++)e.push([t[i].screen_x,t[i].screen_y]);return e},t.exports=o},function(t,e,i){function o(t,e,i,o){this.body=t,this.defaultOptions={enabled:!1,icons:!0,iconSize:20,iconSpacing:6,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-right"}},this.side=i,this.options=r.extend({},this.defaultOptions),this.linegraphOptions=o,this.svgElements={},this.dom={},this.groups={},this.amountOfGroups=0,this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups},this.setOptions(e)}var n=i(8),s=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(2),a=i(14),h=i(16);o.prototype=new h,o.prototype.clear=function(){this.groups={},this.amountOfGroups=0},o.prototype.addGroup=function(t,e){1!=e.options.excludeFromLegend&&(this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1)},o.prototype.updateGroup=function(t,e){this.groups[t]=e},o.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},o.prototype._create=function(){this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-legend",this.dom.frame.style.position="absolute",this.dom.frame.style.top="10px",this.dom.frame.style.display="block",this.dom.textArea=document.createElement("div"),this.dom.textArea.className="vis-legend-text",this.dom.textArea.style.position="relative",this.dom.textArea.style.top="0px",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.width=this.options.iconSize+5+"px",this.svg.style.height="100%",this.dom.frame.appendChild(this.svg),this.dom.frame.appendChild(this.dom.textArea)},o.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame)},o.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame)},o.prototype.setOptions=function(t){var e=["enabled","orientation","icons","left","right"];r.selectiveDeepExtend(e,this.options,t)},o.prototype.redraw=function(){var t=0,e=(0,s.default)(this.groups);e.sort(function(t,e){return t<e?-1:1});for(var i=0;i<e.length;i++){var o=e[i];1!=this.groups[o].visible||void 0!==this.linegraphOptions.visibility[o]&&1!=this.linegraphOptions.visibility[o]||t++}if(0==this.options[this.side].visible||0==this.amountOfGroups||0==this.options.enabled||0==t)this.hide();else{if(this.show(),"top-left"==this.options[this.side].position||"bottom-left"==this.options[this.side].position?(this.dom.frame.style.left="4px",this.dom.frame.style.textAlign="left",this.dom.textArea.style.textAlign="left",this.dom.textArea.style.left=this.options.iconSize+15+"px",this.dom.textArea.style.right="",this.svg.style.left="0px",this.svg.style.right=""):(this.dom.frame.style.right="4px",this.dom.frame.style.textAlign="right",this.dom.textArea.style.textAlign="right",this.dom.textArea.style.right=this.options.iconSize+15+"px",this.dom.textArea.style.left="",this.svg.style.right="0px",this.svg.style.left=""),"top-left"==this.options[this.side].position||"top-right"==this.options[this.side].position)this.dom.frame.style.top=4-Number(this.body.dom.center.style.top.replace("px",""))+"px",this.dom.frame.style.bottom="";else{var n=this.body.domProps.center.height-this.body.domProps.centerContainer.height;this.dom.frame.style.bottom=4+n+Number(this.body.dom.center.style.top.replace("px",""))+"px",this.dom.frame.style.top=""}0==this.options.icons?(this.dom.frame.style.width=this.dom.textArea.offsetWidth+10+"px",this.dom.textArea.style.right="",this.dom.textArea.style.left="",this.svg.style.width="0px"):(this.dom.frame.style.width=this.options.iconSize+15+this.dom.textArea.offsetWidth+10+"px",this.drawLegendIcons());var r="";for(i=0;i<e.length;i++)o=e[i],1!=this.groups[o].visible||void 0!==this.linegraphOptions.visibility[o]&&1!=this.linegraphOptions.visibility[o]||(r+=this.groups[o].content+"<br />");this.dom.textArea.innerHTML=r,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=(0,s.default)(this.groups);t.sort(function(t,e){return t<e?-1:1}),a.resetElements(this.svgElements);var e=window.getComputedStyle(this.dom.frame).paddingTop,i=Number(e.replace("px","")),o=i,n=this.options.iconSize,r=.75*this.options.iconSize,h=i+.5*r+3;this.svg.style.width=n+5+i+"px";for(var d=0;d<t.length;d++){var l=t[d];1!=this.groups[l].visible||void 0!==this.linegraphOptions.visibility[l]&&1!=this.linegraphOptions.visibility[l]||(this.groups[l].getLegend(n,r,this.framework,o,h),h+=r+this.options.iconSpacing)}}},t.exports=o},function(t,e,i){Object.defineProperty(e,"__esModule",{value:!0});var o="string",n="boolean",s="number",r="object",a={configure:{enabled:{boolean:n},filter:{boolean:n,function:"function"},container:{dom:"dom"},__type__:{object:r,boolean:n,function:"function"}},yAxisOrientation:{string:["left","right"]},defaultGroup:{string:o},sort:{boolean:n},sampling:{boolean:n},stack:{boolean:n},graphHeight:{string:o,number:s},shaded:{enabled:{boolean:n},orientation:{string:["bottom","top","zero","group"]},groupId:{object:r},__type__:{boolean:n,object:r}},style:{string:["line","bar","points"]},barChart:{width:{number:s},minWidth:{number:s},sideBySide:{boolean:n},align:{string:["left","center","right"]},__type__:{object:r}},interpolation:{enabled:{boolean:n},parametrization:{string:["centripetal","chordal","uniform"]},alpha:{number:s},__type__:{object:r,boolean:n}},drawPoints:{enabled:{boolean:n},onRender:{function:"function"},size:{number:s},style:{string:["square","circle"]},__type__:{object:r,boolean:n,function:"function"}},dataAxis:{showMinorLabels:{boolean:n},showMajorLabels:{boolean:n},icons:{boolean:n},width:{string:o,number:s},visible:{boolean:n},alignZeros:{boolean:n},left:{range:{min:{number:s,undefined:"undefined"},max:{number:s,undefined:"undefined"},__type__:{object:r}},format:{function:"function"},title:{text:{string:o,number:s,undefined:"undefined"},style:{string:o,undefined:"undefined"},__type__:{object:r}},__type__:{object:r}},right:{range:{min:{number:s,undefined:"undefined"},max:{number:s,undefined:"undefined"},__type__:{object:r}},format:{function:"function"},title:{text:{string:o,number:s,undefined:"undefined"},style:{string:o,undefined:"undefined"},__type__:{object:r}},__type__:{object:r}},__type__:{object:r}},legend:{enabled:{boolean:n},icons:{boolean:n},left:{visible:{boolean:n},position:{string:["top-right","bottom-right","top-left","bottom-left"]},__type__:{object:r}},right:{visible:{boolean:n},position:{string:["top-right","bottom-right","top-left","bottom-left"]},__type__:{object:r}},__type__:{object:r,boolean:n}},groups:{visibility:{any:"any"},__type__:{object:r}},autoResize:{boolean:n},throttleRedraw:{number:s},clickToUse:{boolean:n},end:{number:s,date:"date",string:o,moment:"moment"},format:{minorLabels:{millisecond:{string:o,undefined:"undefined"},second:{string:o,undefined:"undefined"},minute:{string:o,undefined:"undefined"},hour:{string:o,undefined:"undefined"},weekday:{string:o,undefined:"undefined"},day:{string:o,undefined:"undefined"},month:{string:o,undefined:"undefined"},year:{string:o,undefined:"undefined"},__type__:{object:r}},majorLabels:{millisecond:{string:o,undefined:"undefined"},second:{string:o,undefined:"undefined"},minute:{string:o,undefined:"undefined"},hour:{string:o,undefined:"undefined"},weekday:{string:o,undefined:"undefined"},day:{string:o,undefined:"undefined"},month:{string:o,undefined:"undefined"},year:{string:o,undefined:"undefined"},__type__:{object:r}},__type__:{object:r}},moment:{function:"function"},height:{string:o,number:s},hiddenDates:{start:{date:"date",number:s,string:o,moment:"moment"},end:{date:"date",number:s,string:o,moment:"moment"},repeat:{string:o},__type__:{object:r,array:"array"}},locale:{string:o},locales:{__any__:{any:"any"},__type__:{object:r}},max:{date:"date",number:s,string:o,moment:"moment"},maxHeight:{number:s,string:o},maxMinorChars:{number:s},min:{date:"date",number:s,string:o,moment:"moment"},minHeight:{number:s,string:o},moveable:{boolean:n},multiselect:{boolean:n},orientation:{string:o},showCurrentTime:{boolean:n},showMajorLabels:{boolean:n},showMinorLabels:{boolean:n},start:{date:"date",number:s,string:o,moment:"moment"},timeAxis:{scale:{string:o,undefined:"undefined"},step:{number:s,undefined:"undefined"},__type__:{object:r}},width:{string:o,number:s},zoomable:{boolean:n},zoomKey:{string:["ctrlKey","altKey","metaKey",""]},zoomMax:{number:s},zoomMin:{number:s},zIndex:{number:s},__type__:{object:r}},h={global:{sort:!0,sampling:!0,stack:!1,shaded:{enabled:!1,orientation:["zero","top","bottom","group"]},style:["line","bar","points"],barChart:{width:[50,5,100,5],minWidth:[50,5,100,5],sideBySide:!1,align:["left","center","right"]},interpolation:{enabled:!0,parametrization:["centripetal","chordal","uniform"]},drawPoints:{enabled:!0,size:[6,2,30,1],style:["square","circle"]},dataAxis:{showMinorLabels:!0,showMajorLabels:!0,icons:!1,width:[40,0,200,1],visible:!0,alignZeros:!0,left:{title:{text:"",style:""}},right:{title:{text:"",style:""}}},legend:{enabled:!1,icons:!0,left:{visible:!0,position:["top-right","bottom-right","top-left","bottom-left"]},right:{visible:!0,position:["top-right","bottom-right","top-left","bottom-left"]}},autoResize:!0,clickToUse:!1,end:"",format:{minorLabels:{millisecond:"SSS",second:"s",minute:"HH:mm",hour:"HH:mm",weekday:"ddd D",day:"D",month:"MMM",year:"YYYY"},majorLabels:{millisecond:"HH:mm:ss",second:"D MMMM HH:mm",minute:"ddd D MMMM",hour:"ddd D MMMM",weekday:"MMMM YYYY",day:"MMMM YYYY",month:"YYYY",year:""}},height:"",locale:"",max:"",maxHeight:"",maxMinorChars:[7,0,20,1],min:"",minHeight:"",moveable:!0,orientation:["both","bottom","top"],showCurrentTime:!1,showMajorLabels:!0,showMinorLabels:!0,start:"",width:"100%",zoomable:!0,zoomKey:["ctrlKey","altKey","metaKey",""],zoomMax:[31536e10,10,31536e10,1],zoomMin:[10,10,31536e10,1],zIndex:0}};e.allOptions=a,e.configureOptions=h},function(t,e,i){function o(t){return R=t,f()}function n(){A=0,z=R.charAt(0)}function s(){A++,z=R.charAt(A)}function r(){return R.charAt(A+1)}function a(t){return B.test(t)}function h(t,e){if(t||(t={}),e)for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function d(t,e,i){for(var o=e.split("."),n=t;o.length;){var s=o.shift();o.length?(n[s]||(n[s]={}),n=n[s]):n[s]=i}}function l(t,e){for(var i,o,n=null,s=[t],r=t;r.parent;)s.push(r.parent),r=r.parent;if(r.nodes)for(i=0,o=r.nodes.length;i<o;i++)if(e.id===r.nodes[i].id){n=r.nodes[i];break}for(n||(n={id:e.id},t.node&&(n.attr=h(n.attr,t.node))),i=s.length-1;i>=0;i--){var a=s[i];a.nodes||(a.nodes=[]),-1===a.nodes.indexOf(n)&&a.nodes.push(n)}e.attr&&(n.attr=h(n.attr,e.attr))}function u(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=h({},t.edge);e.attr=h(i,e.attr)}}function c(t,e,i,o,n){var s={from:e,to:i,type:o};return t.edge&&(s.attr=h({},t.edge)),s.attr=h(s.attr||{},n),s}function p(){for(F=I.NULL,L="";" "===z||"\t"===z||"\n"===z||"\r"===z;)s();do{var t=!1;if("#"===z){for(var e=A-1;" "===R.charAt(e)||"\t"===R.charAt(e);)e--;if("\n"===R.charAt(e)||""===R.charAt(e)){for(;""!=z&&"\n"!=z;)s();t=!0}}if("/"===z&&"/"===r()){for(;""!=z&&"\n"!=z;)s();t=!0}if("/"===z&&"*"===r()){for(;""!=z;){if("*"===z&&"/"===r()){s(),s();break}s()}t=!0}for(;" "===z||"\t"===z||"\n"===z||"\r"===z;)s()}while(t);if(""===z)return void(F=I.DELIMITER);var i=z+r();if(N[i])return F=I.DELIMITER,L=i,s(),void s();if(N[z])return F=I.DELIMITER,L=z,void s();if(a(z)||"-"===z){for(L+=z,s();a(z);)L+=z,s();return"false"===L?L=!1:"true"===L?L=!0:isNaN(Number(L))||(L=Number(L)),void(F=I.IDENTIFIER)}if('"'===z){for(s();""!=z&&('"'!=z||'"'===z&&'"'===r());)'"'===z?(L+=z,s()):"\\"===z&&"n"===r()?(L+="\n",s()):L+=z,s();if('"'!=z)throw x('End of string " expected');return s(),void(F=I.IDENTIFIER)}for(F=I.UNKNOWN;""!=z;)L+=z,s();throw new SyntaxError('Syntax error in part "'+k(L,30)+'"')}function f(){var t={};if(n(),p(),"strict"===L&&(t.strict=!0,p()),"graph"!==L&&"digraph"!==L||(t.type=L,p()),F===I.IDENTIFIER&&(t.id=L,p()),"{"!=L)throw x("Angle bracket { expected");if(p(),m(t),"}"!=L)throw x("Angle bracket } expected");if(p(),""!==L)throw x("End of file expected");return p(),delete t.node,delete t.edge,delete t.graph,t}function m(t){for(;""!==L&&"}"!=L;)v(t),";"===L&&p()}function v(t){var e=g(t);if(e)return void _(t,e);if(!y(t)){if(F!=I.IDENTIFIER)throw x("Identifier expected");var i=L;if(p(),"="===L){if(p(),F!=I.IDENTIFIER)throw x("Identifier expected");t[i]=L,p()}else b(t,i)}}function g(t){var e=null;if("subgraph"===L&&(e={},e.type="subgraph",p(),F===I.IDENTIFIER&&(e.id=L,p())),"{"===L){if(p(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,m(e),"}"!=L)throw x("Angle bracket } expected");p(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function y(t){return"node"===L?(p(),t.node=w(),"node"):"edge"===L?(p(),t.edge=w(),"edge"):"graph"===L?(p(),t.graph=w(),"graph"):null}function b(t,e){var i={id:e},o=w();o&&(i.attr=o),l(t,i),_(t,e)}function _(t,e){for(;"->"===L||"--"===L;){var i,o=L;p();var n=g(t);if(n)i=n;else{if(F!=I.IDENTIFIER)throw x("Identifier or subgraph expected");i=L,l(t,{id:i}),p()}u(t,c(t,e,i,o,w())),e=i}}function w(){for(var t=null,e={dashed:!0,solid:!1,dotted:[1,5]};"["===L;){for(p(),t={};""!==L&&"]"!=L;){if(F!=I.IDENTIFIER)throw x("Attribute name expected");var i=L;if(p(),"="!=L)throw x("Equal sign = expected");if(p(),F!=I.IDENTIFIER)throw x("Attribute value expected");var o=L;"style"===i&&(o=e[o]),d(t,i,o),p(),","==L&&p()}if("]"!=L)throw x("Bracket ] expected");p()}return t}function x(t){return new SyntaxError(t+', got "'+k(L,30)+'" (char '+A+")")}function k(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function S(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}function D(t,e,i){for(var o=e.split("."),n=o.pop(),s=t,r=0;r<o.length;r++){var a=o[r];a in s||(s[a]={}),s=s[a]}return s[n]=i,t}function M(t,e){var i={};for(var o in t)if(t.hasOwnProperty(o)){var n=e[o];Array.isArray(n)?n.forEach(function(e){D(i,e,t[o])}):"string"==typeof n?D(i,n,t[o]):D(i,o,t[o])}return i}function C(t){var e=o(t),i={nodes:[],edges:[],options:{}};if(e.nodes&&e.nodes.forEach(function(t){var e={id:t.id,label:String(t.label||t.id)};h(e,M(t.attr,T)),e.image&&(e.shape="image"),i.nodes.push(e)}),e.edges){var n=function(t){var e={from:t.from,to:t.to};return h(e,M(t.attr,P)),e.arrows="->"===t.type?"to":void 0,e};e.edges.forEach(function(t){var e,o;e=t.from instanceof Object?t.from.nodes:{id:t.from},o=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges&&t.from.edges.forEach(function(t){var e=n(t);i.edges.push(e)}),S(e,o,function(e,o){var s=c(i,e.id,o.id,t.type,t.attr),r=n(s);i.edges.push(r)}),t.to instanceof Object&&t.to.edges&&t.to.edges.forEach(function(t){var e=n(t);i.edges.push(e)})})}return e.attr&&(i.options=e.attr),i}var O=i(29),E=function(t){return t&&t.__esModule?t:{default:t}}(O),T={fontsize:"font.size",fontcolor:"font.color",labelfontcolor:"font.color",fontname:"font.face",color:["color.border","color.background"],fillcolor:"color.background",tooltip:"title",labeltooltip:"title"},P=(0,E.default)(T);P.color="color.color",P.style="dashes";var I={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},N={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},R="",A=0,z="",L="",F=I.NULL,B=/[a-zA-Z_0-9.:#]/;e.parseDOT=o,e.DOTToGraph=C},function(t,e,i){function o(t,e){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==e&&(void 0!==e.fixed&&(n.nodes.fixed=e.fixed),void 0!==e.parseColor&&(n.nodes.parseColor=e.parseColor),void 0!==e.inheritColor&&(n.edges.inheritColor=e.inheritColor));for(var s=t.edges,r=t.nodes,a=0;a<s.length;a++){var h={},d=s[a];h.id=d.id,h.from=d.source,h.to=d.target,h.attributes=d.attributes,h.label=d.label,h.title=void 0!==d.attributes?d.attributes.title:void 0,"Directed"===d.type&&(h.arrows="to"),d.color&&!1===n.inheritColor&&(h.color=d.color),i.push(h)}for(var l=0;l<r.length;l++){var u={},c=r[l];u.id=c.id,u.attributes=c.attributes,u.x=c.x,u.y=c.y,u.label=c.label,u.title=void 0!==c.attributes?c.attributes.title:c.title,!0===n.nodes.parseColor?u.color=c.color:u.color=void 0!==c.color?{background:c.color,border:c.color,highlight:{background:c.color,border:c.color},hover:{background:c.color,border:c.color}}:void 0,u.size=c.size,u.fixed=n.nodes.fixed&&void 0!==c.x&&void 0!==c.y,o.push(u)}return{nodes:o,edges:i}}e.parseGephi=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(185),d=o(h),l=function(){function t(e){(0,s.default)(this,t),this.images={},this.imageBroken={},this.callback=e}return(0,a.default)(t,[{key:"_tryloadBrokenUrl",value:function(t,e,i){if(void 0!==t&&void 0!==i){if(void 0===e)return void console.warn("No broken url image defined");i.onerror=function(){console.error("Could not load brokenImage:",e)},i.image.src=e}}},{key:"_redrawWithImage",value:function(t){this.callback&&this.callback(t)}},{key:"load",value:function(t,e){var i=this,o=this.images[t];if(o)return o;var n=new d.default;return this.images[t]=n,n.image.onload=function(){i._fixImageCoordinates(n.image),n.init(),i._redrawWithImage(n)},n.image.onerror=function(){console.error("Could not load image:",t),i._tryloadBrokenUrl(t,e,n)},n.image.src=t,n}},{key:"_fixImageCoordinates",value:function(t){0===t.width&&(document.body.appendChild(t),t.width=t.offsetWidth,t.height=t.offsetHeight,document.body.removeChild(t))}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(30),s=o(n),r=i(6),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(2),p=i(48).default,f=i(191).default,m=["bold","ital","boldital","mono"],v=function(){function t(e,i){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(0,d.default)(this,t),this.body=e,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(i),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=o}return(0,u.default)(t,[{key:"setOptions",value:function(t){if(this.elementOptions=t,this.initFontOptions(t.font),p.isValidLabel(t.label)?this.labelDirty=!0:t.label="",void 0!==t.font&&null!==t.font)if("string"==typeof t.font)this.baseSize=this.fontOptions.size;else if("object"===(0,a.default)(t.font)){var e=t.font.size;void 0!==e&&(this.baseSize=e)}}},{key:"initFontOptions",value:function(e){var i=this;if(c.forEach(m,function(t){i.fontOptions[t]={}}),t.parseFontString(this.fontOptions,e))return void(this.fontOptions.vadjust=0);c.forEach(e,function(t,e){void 0!==t&&null!==t&&"object"!==(void 0===t?"undefined":(0,a.default)(t))&&(i.fontOptions[e]=t)})}},{key:"constrain",value:function(t){var e={constrainWidth:!1,maxWdt:-1,minWdt:-1,constrainHeight:!1,minHgt:-1,valign:"middle"},i=c.topMost(t,"widthConstraint");if("number"==typeof i)e.maxWdt=Number(i),e.minWdt=Number(i);else if("object"===(void 0===i?"undefined":(0,a.default)(i))){var o=c.topMost(t,["widthConstraint","maximum"]);"number"==typeof o&&(e.maxWdt=Number(o));var n=c.topMost(t,["widthConstraint","minimum"]);"number"==typeof n&&(e.minWdt=Number(n))}var s=c.topMost(t,"heightConstraint");if("number"==typeof s)e.minHgt=Number(s);else if("object"===(void 0===s?"undefined":(0,a.default)(s))){var r=c.topMost(t,["heightConstraint","minimum"]);"number"==typeof r&&(e.minHgt=Number(r));var h=c.topMost(t,["heightConstraint","valign"]);"string"==typeof h&&("top"!==h&&"bottom"!==h||(e.valign=h))}return e}},{key:"update",value:function(t,e){this.setOptions(t,!0),this.propagateFonts(e),c.deepExtend(this.fontOptions,this.constrain(e)),this.fontOptions.chooser=p.choosify("label",e)}},{key:"adjustSizes",value:function(t){var e=t?t.right+t.left:0;this.fontOptions.constrainWidth&&(this.fontOptions.maxWdt-=e,this.fontOptions.minWdt-=e);var i=t?t.top+t.bottom:0;this.fontOptions.constrainHeight&&(this.fontOptions.minHgt-=i)}},{key:"addFontOptionsToPile",value:function(t,e){for(var i=0;i<e.length;++i)this.addFontToPile(t,e[i])}},{key:"addFontToPile",value:function(t,e){if(void 0!==e&&void 0!==e.font&&null!==e.font){var i=e.font;t.push(i)}}},{key:"getBasicOptions",value:function(e){for(var i={},o=0;o<e.length;++o){var n=e[o],s={};t.parseFontString(s,n)&&(n=s),c.forEach(n,function(t,e){void 0!==t&&(i.hasOwnProperty(e)||(-1!==m.indexOf(e)?i[e]={}:i[e]=t))})}return i}},{key:"getFontOption",value:function(e,i,o){for(var n=void 0,s=0;s<e.length;++s){var r=e[s];if(r.hasOwnProperty(i)){if(void 0===(n=r[i])||null===n)continue;var a={};if(t.parseFontString(a,n)&&(n=a),n.hasOwnProperty(o))return n[o]}}if(this.fontOptions.hasOwnProperty(o))return this.fontOptions[o];throw new Error("Did not find value for multi-font for property: '"+o+"'")}},{key:"getFontOptions",value:function(t,e){for(var i={},o=["color","size","face","mod","vadjust"],n=0;n<o.length;++n){var s=o[n];i[s]=this.getFontOption(t,e,s)}return i}},{key:"propagateFonts",value:function(t){var e=this,i=[];this.addFontOptionsToPile(i,t),this.fontOptions=this.getBasicOptions(i);for(var o=0;o<m.length;++o)!function(t){var o=m[t],n=e.fontOptions[o],s=e.getFontOptions(i,o);c.forEach(s,function(t,e){n[e]=t}),n.size=Number(n.size),n.vadjust=Number(n.vadjust)}(o)}},{key:"draw",value:function(t,e,i,o,n){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"middle";if(void 0!==this.elementOptions.label){var r=this.fontOptions.size*this.body.view.scale;this.elementOptions.label&&r<this.elementOptions.scaling.label.drawThreshold-1||(r>=this.elementOptions.scaling.label.maxVisible&&(r=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale),this.calculateLabelSize(t,o,n,e,i,s),this._drawBackground(t),this._drawText(t,e,this.size.yLine,s,r))}}},{key:"_drawBackground",value:function(t){if(void 0!==this.fontOptions.background&&"none"!==this.fontOptions.background){t.fillStyle=this.fontOptions.background;var e=this.getSize();t.fillRect(e.left,e.top,e.width,e.height)}}},{key:"_drawText",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"middle",n=arguments[4],r=this._setAlignment(t,e,i,o),a=(0,s.default)(r,2);e=a[0],i=a[1],t.textAlign="left",e-=this.size.width/2,this.fontOptions.valign&&this.size.height>this.size.labelHeight&&("top"===this.fontOptions.valign&&(i-=(this.size.height-this.size.labelHeight)/2),"bottom"===this.fontOptions.valign&&(i+=(this.size.height-this.size.labelHeight)/2));for(var h=0;h<this.lineCount;h++){var d=this.lines[h];if(d&&d.blocks){var l=0;this.isEdgeLabel||"center"===this.fontOptions.align?l+=(this.size.width-d.width)/2:"right"===this.fontOptions.align&&(l+=this.size.width-d.width);for(var u=0;u<d.blocks.length;u++){var c=d.blocks[u];t.font=c.font;var p=this._getColor(c.color,n,c.strokeColor),f=(0,s.default)(p,2),m=f[0],v=f[1];c.strokeWidth>0&&(t.lineWidth=c.strokeWidth,t.strokeStyle=v,t.lineJoin="round"),t.fillStyle=m,c.strokeWidth>0&&t.strokeText(c.text,e+l,i+c.vadjust),t.fillText(c.text,e+l,i+c.vadjust),l+=c.width}i+=d.height}}}},{key:"_setAlignment",value:function(t,e,i,o){if(this.isEdgeLabel&&"horizontal"!==this.fontOptions.align&&!1===this.pointToSelf){e=0,i=0;"top"===this.fontOptions.align?(t.textBaseline="alphabetic",i-=4):"bottom"===this.fontOptions.align?(t.textBaseline="hanging",i+=4):t.textBaseline="middle"}else t.textBaseline=o;return[e,i]}},{key:"_getColor",value:function(t,e,i){var o=t||"#000000",n=i||"#ffffff";if(e<=this.elementOptions.scaling.label.drawThreshold){var s=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-e)));o=c.overrideOpacity(o,s),n=c.overrideOpacity(n,s)}return[o,n]}},{key:"getTextSize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return this._processLabel(t,e,i),{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}},{key:"getSize",value:function(){var t=this.size.left,e=this.size.top-1;if(this.isEdgeLabel){var i=.5*-this.size.width;switch(this.fontOptions.align){case"middle":t=i,e=.5*-this.size.height;break;case"top":t=i,e=-(this.size.height+2);break;case"bottom":t=i,e=2}}return{left:t,top:e,width:this.size.width,height:this.size.height}}},{key:"calculateLabelSize",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"middle";this._processLabel(t,e,i),this.size.left=o-.5*this.size.width,this.size.top=n-.5*this.size.height,this.size.yLine=n+.5*(1-this.lineCount)*this.fontOptions.size,"hanging"===s&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4)}},{key:"getFormattingValues",value:function(t,e,i,o){var n=function(t,e,i){return"normal"===e?"mod"===i?"":t[i]:void 0!==t[e][i]?t[e][i]:t[i]},s={color:n(this.fontOptions,o,"color"),size:n(this.fontOptions,o,"size"),face:n(this.fontOptions,o,"face"),mod:n(this.fontOptions,o,"mod"),vadjust:n(this.fontOptions,o,"vadjust"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};(e||i)&&("normal"===o&&!0===this.fontOptions.chooser&&this.elementOptions.labelHighlightBold?s.mod="bold":"function"==typeof this.fontOptions.chooser&&this.fontOptions.chooser(s,this.elementOptions.id,e,i));var r="";return void 0!==s.mod&&""!==s.mod&&(r+=s.mod+" "),r+=s.size+"px "+s.face,t.font=r.replace(/"/g,""),s.font=t.font,s.height=s.size,s}},{key:"differentState",value:function(t,e){return t!==this.selectedState||e!==this.hoverState}},{key:"_processLabelText",value:function(t,e,i,o){return new f(t,this,e,i).process(o)}},{key:"_processLabel",value:function(t,e,i){if(!1!==this.labelDirty||this.differentState(e,i)){var o=this._processLabelText(t,e,i,this.elementOptions.label);this.fontOptions.minWdt>0&&o.width<this.fontOptions.minWdt&&(o.width=this.fontOptions.minWdt),this.size.labelHeight=o.height,this.fontOptions.minHgt>0&&o.height<this.fontOptions.minHgt&&(o.height=this.fontOptions.minHgt),this.lines=o.lines,this.lineCount=o.lines.length,this.size.width=o.width,this.size.height=o.height,this.selectedState=e,this.hoverState=i,this.labelDirty=!1}}},{key:"visible",value:function(){return 0!==this.size.width&&0!==this.size.height&&void 0!==this.elementOptions.label&&!(this.fontOptions.size*this.body.view.scale<this.elementOptions.scaling.label.drawThreshold-1)}}],[{key:"parseFontString",value:function(t,e){if(!e||"string"!=typeof e)return!1;var i=e.split(" ");return t.size=i[0].replace("px",""),t.face=i[1],t.color=i[2],!0}}]),t}();e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(30),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(2),u=i(119).default,c=function(){function t(e,i,o){(0,a.default)(this,t),this.body=i,this.labelModule=o,this.options={},this.setOptions(e),this.colorDirty=!0,this.color={},this.selectionWidth=2,this.hoverWidth=1.5,this.fromPoint=this.from,this.toPoint=this.to}return(0,d.default)(t,[{key:"connect",value:function(){this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to]}},{key:"cleanup",value:function(){return!1}},{key:"setOptions",value:function(t){this.options=t,this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to],this.id=this.options.id}},{key:"drawLine",value:function(t,e,i,o,n){t.strokeStyle=this.getColor(t,e,i,o),t.lineWidth=e.width,!1!==e.dashes?this._drawDashedLine(t,e,n):this._drawLine(t,e,n)}},{key:"_drawLine",value:function(t,e,i,o,n){if(this.from!=this.to)this._line(t,e,i,o,n);else{var r=this._getCircleData(t),a=(0,s.default)(r,3),h=a[0],d=a[1],l=a[2];this._circle(t,e,h,d,l)}}},{key:"_drawDashedLine",value:function(t,e,i,o,n){t.lineCap="round";var r=[5,5];if(!0===Array.isArray(e.dashes)&&(r=e.dashes),void 0!==t.setLineDash){if(t.save(),t.setLineDash(r),t.lineDashOffset=0,this.from!=this.to)this._line(t,e,i);else{var a=this._getCircleData(t),h=(0,s.default)(a,3),d=h[0],l=h[1],u=h[2];this._circle(t,e,d,l,u)}t.setLineDash([0]),t.lineDashOffset=0,t.restore()}else{if(this.from!=this.to)t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,r);else{var c=this._getCircleData(t),p=(0,s.default)(c,3),f=p[0],m=p[1],v=p[2];this._circle(t,e,f,m,v)}this.enableShadow(t,e),t.stroke(),this.disableShadow(t,e)}}},{key:"findBorderPosition",value:function(t,e,i){return this.from!=this.to?this._findBorderPosition(t,e,i):this._findBorderPositionCircle(t,e,i)}},{key:"findBorderPositions",value:function(t){var e={},i={};if(this.from!=this.to)e=this._findBorderPosition(this.from,t),i=this._findBorderPosition(this.to,t);else{var o=this._getCircleData(t).slice(0,2),n=(0,s.default)(o,2),r=n[0],a=n[1];e=this._findBorderPositionCircle(this.from,t,{x:r,y:a,low:.25,high:.6,direction:-1}),i=this._findBorderPositionCircle(this.from,t,{x:r,y:a,low:.6,high:.8,direction:1})}return{from:e,to:i}}},{key:"_getCircleData",value:function(t){var e=void 0,i=void 0,o=this.from,n=this.options.selfReferenceSize;return void 0!==t&&void 0===o.shape.width&&o.shape.resize(t),o.shape.width>o.shape.height?(e=o.x+.5*o.shape.width,i=o.y-n):(e=o.x+n,i=o.y-.5*o.shape.height),[e,i,n]}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"_findBorderPositionCircle",value:function(t,e,i){for(var o=i.x,n=i.y,s=i.low,r=i.high,a=i.direction,h=0,d=this.options.selfReferenceSize,l=void 0,u=void 0,c=void 0,p=void 0,f=void 0,m=.5*(s+r);s<=r&&h<10&&(m=.5*(s+r),l=this._pointOnCircle(o,n,d,m),u=Math.atan2(t.y-l.y,t.x-l.x),c=t.distanceToBorder(e,u),p=Math.sqrt(Math.pow(l.x-t.x,2)+Math.pow(l.y-t.y,2)),f=c-p,!(Math.abs(f)<.05));)f>0?a>0?s=m:r=m:a>0?r=m:s=m,h++;return l.t=m,l}},{key:"getLineWidth",value:function(t,e){return!0===t?Math.max(this.selectionWidth,.3/this.body.view.scale):!0===e?Math.max(this.hoverWidth,.3/this.body.view.scale):Math.max(this.options.width,.3/this.body.view.scale)}},{key:"getColor",value:function(t,e,i,o){if(!1!==e.inheritsColor){if("both"===e.inheritsColor&&this.from.id!==this.to.id){var n=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),s=void 0,r=void 0;return s=this.from.options.color.highlight.border,r=this.to.options.color.highlight.border,!1===this.from.selected&&!1===this.to.selected?(s=l.overrideOpacity(this.from.options.color.border,e.opacity),r=l.overrideOpacity(this.to.options.color.border,e.opacity)):!0===this.from.selected&&!1===this.to.selected?r=this.to.options.color.border:!1===this.from.selected&&!0===this.to.selected&&(s=this.from.options.color.border),n.addColorStop(0,s),n.addColorStop(1,r),n}return"to"===e.inheritsColor?l.overrideOpacity(this.to.options.color.border,e.opacity):l.overrideOpacity(this.from.options.color.border,e.opacity)}return l.overrideOpacity(e.color,e.opacity)}},{key:"_circle",
+value:function(t,e,i,o,n){this.enableShadow(t,e),t.beginPath(),t.arc(i,o,n,0,2*Math.PI,!1),t.stroke(),this.disableShadow(t,e)}},{key:"getDistanceToEdge",value:function(t,e,i,o,n,r,a,h){var d=0;if(this.from!=this.to)d=this._getDistanceToEdge(t,e,i,o,n,r,a);else{var l=this._getCircleData(void 0),u=(0,s.default)(l,3),c=u[0],p=u[1],f=u[2],m=c-n,v=p-r;d=Math.abs(Math.sqrt(m*m+v*v)-f)}return d}},{key:"_getDistanceToLine",value:function(t,e,i,o,n,s){var r=i-t,a=o-e,h=r*r+a*a,d=((n-t)*r+(s-e)*a)/h;d>1?d=1:d<0&&(d=0);var l=t+d*r,u=e+d*a,c=l-n,p=u-s;return Math.sqrt(c*c+p*p)}},{key:"getArrowData",value:function(t,e,i,o,n,r){var a=void 0,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0,p=void 0,f=r.width;if("from"===e?(d=this.from,l=this.to,u=.1,c=r.fromArrowScale,p=r.fromArrowType):"to"===e?(d=this.to,l=this.from,u=-.1,c=r.toArrowScale,p=r.toArrowType):(d=this.to,l=this.from,c=r.middleArrowScale,p=r.middleArrowType),d!=l)if("middle"!==e)if(!0===this.options.smooth.enabled){h=this.findBorderPosition(d,t,{via:i});var m=this.getPoint(Math.max(0,Math.min(1,h.t+u)),i);a=Math.atan2(h.y-m.y,h.x-m.x)}else a=Math.atan2(d.y-l.y,d.x-l.x),h=this.findBorderPosition(d,t);else a=Math.atan2(d.y-l.y,d.x-l.x),h=this.getPoint(.5,i);else{var v=this._getCircleData(t),g=(0,s.default)(v,3),y=g[0],b=g[1],_=g[2];"from"===e?(h=this.findBorderPosition(this.from,t,{x:y,y:b,low:.25,high:.6,direction:-1}),a=-2*h.t*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===e?(h=this.findBorderPosition(this.from,t,{x:y,y:b,low:.6,high:1,direction:1}),a=-2*h.t*Math.PI+1.5*Math.PI-1.1*Math.PI):(h=this._pointOnCircle(y,b,_,.175),a=3.9269908169872414)}"middle"===e&&c<0&&(f*=-1);var w=15*c+3*f;return{point:h,core:{x:h.x-.9*w*Math.cos(a),y:h.y-.9*w*Math.sin(a)},angle:a,length:w,type:p}}},{key:"drawArrowHead",value:function(t,e,i,o,n){t.strokeStyle=this.getColor(t,e,i,o),t.fillStyle=t.strokeStyle,t.lineWidth=e.width,u.draw(t,n),this.enableShadow(t,e),t.fill(),this.disableShadow(t,e)}},{key:"enableShadow",value:function(t,e){!0===e.shadow&&(t.shadowColor=e.shadowColor,t.shadowBlur=e.shadowSize,t.shadowOffsetX=e.shadowX,t.shadowOffsetY=e.shadowY)}},{key:"disableShadow",value:function(t,e){!0===e.shadow&&(t.shadowColor="rgba(0,0,0,0)",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}}]),t}();e.default=c},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(4),a=o(r),h=i(5),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=function(){function t(){(0,u.default)(this,t)}return(0,p.default)(t,null,[{key:"transform",value:function(t,e){t instanceof Array||(t=[t]);for(var i=e.point.x,o=e.point.y,n=e.angle,s=e.length,r=0;r<t.length;++r){var a=t[r],h=a.x*Math.cos(n)-a.y*Math.sin(n),d=a.x*Math.sin(n)+a.y*Math.cos(n);a.x=i+s*h,a.y=o+s*d}}},{key:"drawPath",value:function(t,e){t.beginPath(),t.moveTo(e[0].x,e[0].y);for(var i=1;i<e.length;++i)t.lineTo(e[i].x,e[i].y);t.closePath()}}]),t}(),m=function(t){function e(){return(0,u.default)(this,e),(0,a.default)(this,(e.__proto__||(0,s.default)(e)).apply(this,arguments))}return(0,d.default)(e,t),(0,p.default)(e,null,[{key:"draw",value:function(t,e){var i=[{x:0,y:0},{x:-1,y:.3},{x:-.9,y:0},{x:-1,y:-.3}];f.transform(i,e),f.drawPath(t,i)}}]),e}(f),v=function(){function t(){(0,u.default)(this,t)}return(0,p.default)(t,null,[{key:"draw",value:function(t,e){var i={x:-.4,y:0};f.transform(i,e),t.circle(i.x,i.y,.4*e.length)}}]),t}(),g=function(){function t(){(0,u.default)(this,t)}return(0,p.default)(t,null,[{key:"draw",value:function(t,e){var i=[{x:0,y:.5},{x:0,y:-.5},{x:-.15,y:-.5},{x:-.15,y:.5}];f.transform(i,e),f.drawPath(t,i)}}]),t}(),y=function(){function t(){(0,u.default)(this,t)}return(0,p.default)(t,null,[{key:"draw",value:function(t,e){var i;switch(e.type&&(i=e.type.toLowerCase()),i){case"circle":v.draw(t,e);break;case"bar":g.draw(t,e);break;case"arrow":default:m.draw(t,e)}}}]),t}();e.default=y},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(e,i,o){(0,s.default)(this,t),this.body=e,this.physicsBody=i,this.barnesHutTree,this.setOptions(o),this.randomSeed=5}return(0,a.default)(t,[{key:"setOptions",value:function(t){this.options=t,this.thetaInversed=1/this.options.theta,this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}},{key:"seededRandom",value:function(){var t=1e4*Math.sin(this.randomSeed++);return t-Math.floor(t)}},{key:"solve",value:function(){if(0!==this.options.gravitationalConstant&&this.physicsBody.physicsNodeIndices.length>0){var t=void 0,e=this.body.nodes,i=this.physicsBody.physicsNodeIndices,o=i.length,n=this._formBarnesHutTree(e,i);this.barnesHutTree=n;for(var s=0;s<o;s++)t=e[i[s]],t.options.mass>0&&this._getForceContributions(n.root,t)}}},{key:"_getForceContributions",value:function(t,e){this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e)}},{key:"_getForceContribution",value:function(t,e){if(t.childrenCount>0){var i=void 0,o=void 0,n=void 0;i=t.centerOfMass.x-e.x,o=t.centerOfMass.y-e.y,n=Math.sqrt(i*i+o*o),n*t.calcSize>this.thetaInversed?this._calculateForces(n,i,o,e,t):4===t.childrenCount?this._getForceContributions(t,e):t.children.data.id!=e.id&&this._calculateForces(n,i,o,e,t)}}},{key:"_calculateForces",value:function(t,e,i,o,n){0===t&&(t=.1,e=t),this.overlapAvoidanceFactor<1&&o.shape.radius&&(t=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,t-o.shape.radius));var s=this.options.gravitationalConstant*n.mass*o.options.mass/Math.pow(t,3),r=e*s,a=i*s;this.physicsBody.forces[o.id].x+=r,this.physicsBody.forces[o.id].y+=a}},{key:"_formBarnesHutTree",value:function(t,e){for(var i=void 0,o=e.length,n=t[e[0]].x,s=t[e[0]].y,r=t[e[0]].x,a=t[e[0]].y,h=1;h<o;h++){var d=t[e[h]],l=d.x,u=d.y;d.options.mass>0&&(l<n&&(n=l),l>r&&(r=l),u<s&&(s=u),u>a&&(a=u))}var c=Math.abs(r-n)-Math.abs(a-s);c>0?(s-=.5*c,a+=.5*c):(n+=.5*c,r-=.5*c);var p=Math.max(1e-5,Math.abs(r-n)),f=.5*p,m=.5*(n+r),v=.5*(s+a),g={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:m-f,maxX:m+f,minY:v-f,maxY:v+f},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(g.root);for(var y=0;y<o;y++)i=t[e[y]],i.options.mass>0&&this._placeInTree(g.root,i);return g}},{key:"_updateBranchMass",value:function(t,e){var i=t.centerOfMass,o=t.mass+e.options.mass,n=1/o;i.x=i.x*t.mass+e.x*e.options.mass,i.x*=n,i.y=i.y*t.mass+e.y*e.options.mass,i.y*=n,t.mass=o;var s=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidth<s?s:t.maxWidth}},{key:"_placeInTree",value:function(t,e,i){1==i&&void 0!==i||this._updateBranchMass(t,e);var o=t.children.NW.range,n=void 0;n=o.maxX>e.x?o.maxY>e.y?"NW":"SW":o.maxY>e.y?"NE":"SE",this._placeInRegion(t,e,n)}},{key:"_placeInRegion",value:function(t,e,i){var o=t.children[i];switch(o.childrenCount){case 0:o.children.data=e,o.childrenCount=1,this._updateBranchMass(o,e);break;case 1:o.children.data.x===e.x&&o.children.data.y===e.y?(e.x+=this.seededRandom(),e.y+=this.seededRandom()):(this._splitBranch(o),this._placeInTree(o,e));break;case 4:this._placeInTree(o,e)}}},{key:"_splitBranch",value:function(t){var e=null;1===t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)}},{key:"_insertRegion",value:function(t,e){var i=void 0,o=void 0,n=void 0,s=void 0,r=.5*t.size;switch(e){case"NW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY,s=t.range.minY+r;break;case"NE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY,s=t.range.minY+r;break;case"SW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY+r,s=t.range.maxY;break;case"SE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY+r,s=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:n,maxY:s},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}}},{key:"_debug",value:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))}},{key:"_drawBranch",value:function(t,e,i){void 0===i&&(i="#FF0000"),4===t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}}]),t}();e.default=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(e,i,o){(0,s.default)(this,t),this.body=e,this.physicsBody=i,this.setOptions(o)}return(0,a.default)(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t=void 0,e=void 0,i=void 0,o=void 0,n=this.body.nodes,s=this.physicsBody.physicsNodeIndices,r=this.physicsBody.forces,a=0;a<s.length;a++){o=n[s[a]],t=-o.x,e=-o.y,i=Math.sqrt(t*t+e*e),this._calculateForces(i,t,e,r,o)}}},{key:"_calculateForces",value:function(t,e,i,o,n){var s=0===t?0:this.options.centralGravity/t;o[n.id].x=e*s,o[n.id].y=i*s}}]),t}();e.default=h},function(t,e,i){Object.defineProperty(e,"__esModule",{value:!0});var o="string",n="boolean",s="number",r="object",a=["arrow","circle","bar"],h={configure:{enabled:{boolean:n},filter:{boolean:n,string:o,array:"array",function:"function"},container:{dom:"dom"},showButton:{boolean:n},__type__:{object:r,boolean:n,string:o,array:"array",function:"function"}},edges:{arrows:{to:{enabled:{boolean:n},scaleFactor:{number:s},type:{string:a},__type__:{object:r,boolean:n}},middle:{enabled:{boolean:n},scaleFactor:{number:s},type:{string:a},__type__:{object:r,boolean:n}},from:{enabled:{boolean:n},scaleFactor:{number:s},type:{string:a},__type__:{object:r,boolean:n}},__type__:{string:["from","to","middle"],object:r}},arrowStrikethrough:{boolean:n},chosen:{label:{boolean:n,function:"function"},edge:{boolean:n,function:"function"},__type__:{object:r,boolean:n}},color:{color:{string:o},highlight:{string:o},hover:{string:o},inherit:{string:["from","to","both"],boolean:n},opacity:{number:s},__type__:{object:r,string:o}},dashes:{boolean:n,array:"array"},font:{color:{string:o},size:{number:s},face:{string:o},background:{string:o},strokeWidth:{number:s},strokeColor:{string:o},align:{string:["horizontal","top","middle","bottom"]},vadjust:{number:s},multi:{boolean:n,string:o},bold:{color:{string:o},size:{number:s},face:{string:o},mod:{string:o},vadjust:{number:s},__type__:{object:r,string:o}},boldital:{color:{string:o},size:{number:s},face:{string:o},mod:{string:o},vadjust:{number:s},__type__:{object:r,string:o}},ital:{color:{string:o},size:{number:s},face:{string:o},mod:{string:o},vadjust:{number:s},__type__:{object:r,string:o}},mono:{color:{string:o},size:{number:s},face:{string:o},mod:{string:o},vadjust:{number:s},__type__:{object:r,string:o}},__type__:{object:r,string:o}},hidden:{boolean:n},hoverWidth:{function:"function",number:s},label:{string:o,undefined:"undefined"},labelHighlightBold:{boolean:n},length:{number:s,undefined:"undefined"},physics:{boolean:n},scaling:{min:{number:s},max:{number:s},label:{enabled:{boolean:n},min:{number:s},max:{number:s},maxVisible:{number:s},drawThreshold:{number:s},__type__:{object:r,boolean:n}},customScalingFunction:{function:"function"},__type__:{object:r}},selectionWidth:{function:"function",number:s},selfReferenceSize:{number:s},shadow:{enabled:{boolean:n},color:{string:o},size:{number:s},x:{number:s},y:{number:s},__type__:{object:r,boolean:n}},smooth:{enabled:{boolean:n},type:{string:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"]},roundness:{number:s},forceDirection:{string:["horizontal","vertical","none"],boolean:n},__type__:{object:r,boolean:n}},title:{string:o,undefined:"undefined"},width:{number:s},widthConstraint:{maximum:{number:s},__type__:{object:r,boolean:n,number:s}},value:{number:s,undefined:"undefined"},__type__:{object:r}},groups:{useDefaultGroups:{boolean:n},__any__:"get from nodes, will be overwritten below",__type__:{object:r}},interaction:{dragNodes:{boolean:n},dragView:{boolean:n},hideEdgesOnDrag:{boolean:n},hideNodesOnDrag:{boolean:n},hover:{boolean:n},keyboard:{enabled:{boolean:n},speed:{x:{number:s},y:{number:s},zoom:{number:s},__type__:{object:r}},bindToWindow:{boolean:n},__type__:{object:r,boolean:n}},multiselect:{boolean:n},navigationButtons:{boolean:n},selectable:{boolean:n},selectConnectedEdges:{boolean:n},hoverConnectedEdges:{boolean:n},tooltipDelay:{number:s},zoomView:{boolean:n},__type__:{object:r}},layout:{randomSeed:{undefined:"undefined",number:s},improvedLayout:{boolean:n},hierarchical:{enabled:{boolean:n},levelSeparation:{number:s},nodeSpacing:{number:s},treeSpacing:{number:s},blockShifting:{boolean:n},edgeMinimization:{boolean:n},parentCentralization:{boolean:n},direction:{string:["UD","DU","LR","RL"]},sortMethod:{string:["hubsize","directed"]},__type__:{object:r,boolean:n}},__type__:{object:r}},manipulation:{enabled:{boolean:n},initiallyActive:{boolean:n},addNode:{boolean:n,function:"function"},addEdge:{boolean:n,function:"function"},editNode:{function:"function"},editEdge:{editWithoutDrag:{function:"function"},__type__:{object:r,boolean:n,function:"function"}},deleteNode:{boolean:n,function:"function"},deleteEdge:{boolean:n,function:"function"},controlNodeStyle:"get from nodes, will be overwritten below",__type__:{object:r,boolean:n}},nodes:{borderWidth:{number:s},borderWidthSelected:{number:s,undefined:"undefined"},brokenImage:{string:o,undefined:"undefined"},chosen:{label:{boolean:n,function:"function"},node:{boolean:n,function:"function"},__type__:{object:r,boolean:n}},color:{border:{string:o},background:{string:o},highlight:{border:{string:o},background:{string:o},__type__:{object:r,string:o}},hover:{border:{string:o},background:{string:o},__type__:{object:r,string:o}},__type__:{object:r,string:o}},fixed:{x:{boolean:n},y:{boolean:n},__type__:{object:r,boolean:n}},font:{align:{string:o},color:{string:o},size:{number:s},face:{string:o},background:{string:o},strokeWidth:{number:s},strokeColor:{string:o},vadjust:{number:s},multi:{boolean:n,string:o},bold:{color:{string:o},size:{number:s},face:{string:o},mod:{string:o},vadjust:{number:s},__type__:{object:r,string:o}},boldital:{color:{string:o},size:{number:s},face:{string:o},mod:{string:o},vadjust:{number:s},__type__:{object:r,string:o}},ital:{color:{string:o},size:{number:s},face:{string:o},mod:{string:o},vadjust:{number:s},__type__:{object:r,string:o}},mono:{color:{string:o},size:{number:s},face:{string:o},mod:{string:o},vadjust:{number:s},__type__:{object:r,string:o}},__type__:{object:r,string:o}},group:{string:o,number:s,undefined:"undefined"},heightConstraint:{minimum:{number:s},valign:{string:o},__type__:{object:r,boolean:n,number:s}},hidden:{boolean:n},icon:{face:{string:o},code:{string:o},size:{number:s},color:{string:o},__type__:{object:r}},id:{string:o,number:s},image:{selected:{string:o,undefined:"undefined"},unselected:{string:o,undefined:"undefined"},__type__:{object:r,string:o}},label:{string:o,undefined:"undefined"},labelHighlightBold:{boolean:n},level:{number:s,undefined:"undefined"},margin:{top:{number:s},right:{number:s},bottom:{number:s},left:{number:s},__type__:{object:r,number:s}},mass:{number:s},physics:{boolean:n},scaling:{min:{number:s},max:{number:s},label:{enabled:{boolean:n},min:{number:s},max:{number:s},maxVisible:{number:s},drawThreshold:{number:s},__type__:{object:r,boolean:n}},customScalingFunction:{function:"function"},__type__:{object:r}},shadow:{enabled:{boolean:n},color:{string:o},size:{number:s},x:{number:s},y:{number:s},__type__:{object:r,boolean:n}},shape:{string:["ellipse","circle","database","box","text","image","circularImage","diamond","dot","star","triangle","triangleDown","square","icon","hexagon"]},shapeProperties:{borderDashes:{boolean:n,array:"array"},borderRadius:{number:s},interpolation:{boolean:n},useImageSize:{boolean:n},useBorderWithImage:{boolean:n},__type__:{object:r}},size:{number:s},title:{string:o,dom:"dom",undefined:"undefined"},value:{number:s,undefined:"undefined"},widthConstraint:{minimum:{number:s},maximum:{number:s},__type__:{object:r,boolean:n,number:s}},x:{number:s},y:{number:s},__type__:{object:r}},physics:{enabled:{boolean:n},barnesHut:{gravitationalConstant:{number:s},centralGravity:{number:s},springLength:{number:s},springConstant:{number:s},damping:{number:s},avoidOverlap:{number:s},__type__:{object:r}},forceAtlas2Based:{gravitationalConstant:{number:s},centralGravity:{number:s},springLength:{number:s},springConstant:{number:s},damping:{number:s},avoidOverlap:{number:s},__type__:{object:r}},repulsion:{centralGravity:{number:s},springLength:{number:s},springConstant:{number:s},nodeDistance:{number:s},damping:{number:s},__type__:{object:r}},hierarchicalRepulsion:{centralGravity:{number:s},springLength:{number:s},springConstant:{number:s},nodeDistance:{number:s},damping:{number:s},__type__:{object:r}},maxVelocity:{number:s},minVelocity:{number:s},solver:{string:["barnesHut","repulsion","hierarchicalRepulsion","forceAtlas2Based"]},stabilization:{enabled:{boolean:n},iterations:{number:s},updateInterval:{number:s},onlyDynamicEdges:{boolean:n},fit:{boolean:n},__type__:{object:r,boolean:n}},timestep:{number:s},adaptiveTimestep:{boolean:n},__type__:{object:r,boolean:n}},autoResize:{boolean:n},clickToUse:{boolean:n},locale:{string:o},locales:{__any__:{any:"any"},__type__:{object:r}},height:{string:o},width:{string:o},__type__:{object:r}};h.groups.__any__=h.nodes,h.manipulation.controlNodeStyle=h.nodes;var d={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:["color","#2B7CE9"],background:["color","#97C2FC"],highlight:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]},hover:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]}},fixed:{x:!1,y:!1},font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[0,0,50,1],strokeColor:["color","#ffffff"]},hidden:!1,labelHighlightBold:!0,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:["ellipse","box","circle","database","diamond","dot","square","star","text","triangle","triangleDown","hexagon"],shapeProperties:{borderDashes:!1,borderRadius:[6,0,20,1],interpolation:!0,useImageSize:!1},size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"},middle:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"},from:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"}},arrowStrikethrough:!0,color:{color:["color","#848484"],highlight:["color","#848484"],hover:["color","#848484"],inherit:["from","to","both",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[2,0,50,1],strokeColor:["color","#ffffff"],align:["horizontal","top","middle","bottom"]},hidden:!1,hoverWidth:[1.5,0,5,.1],labelHighlightBold:!0,physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"],forceDirection:["horizontal","vertical","none"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:["UD","DU","LR","RL"],sortMethod:["hubsize","directed"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0},manipulation:{enabled:!1,initiallyActive:!1},physics:{enabled:!0,barnesHut:{gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:["barnesHut","forceAtlas2Based","repulsion","hierarchicalRepulsion"],timestep:[.5,.01,1,.01]}};e.allOptions=h,e.configureOptions=d},function(t,e,i){var o=i(2);o.extend(e,i(159)),o.extend(e,i(177)),o.extend(e,i(181))},function(t,e,i){i(49),i(60),t.exports=i(136)},function(t,e,i){var o=i(126),n=i(127),s=i(31),r=i(25);t.exports=i(79)(Array,"Array",function(t,e){this._t=r(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,i=this._i++;return!t||i>=t.length?(this._t=void 0,n(1)):"keys"==e?n(0,i):"values"==e?n(0,t[i]):n(0,[i,t[i]])},"values"),s.Arguments=s.Array,o("keys"),o("values"),o("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,i){var o=i(54),n=i(39),s=i(59),r={};i(26)(r,i(13)("iterator"),function(){return this}),t.exports=function(t,e,i){t.prototype=o(r,{next:n(1,i)}),s(t,e+" Iterator")}},function(t,e,i){var o=i(20),n=i(27),s=i(33);t.exports=i(21)?Object.defineProperties:function(t,e){n(t);for(var i,r=s(e),a=r.length,h=0;a>h;)o.f(t,i=r[h++],e[i]);return t}},function(t,e,i){var o=i(25),n=i(132),s=i(133);t.exports=function(t){return function(e,i,r){var a,h=o(e),d=n(h.length),l=s(r,d);if(t&&i!=i){for(;d>l;)if((a=h[l++])!=a)return!0}else for(;d>l;l++)if((t||l in h)&&h[l]===i)return t||l||0;return!t&&-1}}},function(t,e,i){var o=i(55),n=Math.min;t.exports=function(t){return t>0?n(o(t),9007199254740991):0}},function(t,e,i){var o=i(55),n=Math.max,s=Math.min;t.exports=function(t,e){return t=o(t),t<0?n(t+e,0):s(t,e)}},function(t,e,i){var o=i(18).document;t.exports=o&&o.documentElement},function(t,e,i){var o=i(55),n=i(51);t.exports=function(t){return function(e,i){var s,r,a=String(n(e)),h=o(i),d=a.length;return h<0||h>=d?t?"":void 0:(s=a.charCodeAt(h),s<55296||s>56319||h+1===d||(r=a.charCodeAt(h+1))<56320||r>57343?t?a.charAt(h):s:t?a.slice(h,h+2):r-56320+(s-55296<<10)+65536)}}},function(t,e,i){var o=i(27),n=i(137);t.exports=i(7).getIterator=function(t){var e=n(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return o(e.call(t))}},function(t,e,i){var o=i(86),n=i(13)("iterator"),s=i(31);t.exports=i(7).getIteratorMethod=function(t){if(void 0!=t)return t[n]||t["@@iterator"]||s[o(t)]}},function(t,e,i){i(139);var o=i(7).Object;t.exports=function(t,e){return o.create(t,e)}},function(t,e,i){var o=i(17);o(o.S,"Object",{create:i(54)})},function(t,e,i){i(141),t.exports=i(7).Object.keys},function(t,e,i){var o=i(41),n=i(33);i(87)("keys",function(){return function(t){return n(o(t))}})},function(t,e,i){t.exports={default:i(143),__esModule:!0}},function(t,e,i){i(60),i(49),t.exports=i(61).f("iterator")},function(t,e,i){t.exports={default:i(145),__esModule:!0}},function(t,e,i){i(146),i(151),i(152),i(153),t.exports=i(7).Symbol},function(t,e,i){var o=i(18),n=i(22),s=i(21),r=i(17),a=i(83),h=i(147).KEY,d=i(28),l=i(57),u=i(59),c=i(40),p=i(13),f=i(61),m=i(62),v=i(148),g=i(149),y=i(27),b=i(25),_=i(53),w=i(39),x=i(54),k=i(150),S=i(89),D=i(20),M=i(33),C=S.f,O=D.f,E=k.f,T=o.Symbol,P=o.JSON,I=P&&P.stringify,N=p("_hidden"),R=p("toPrimitive"),A={}.propertyIsEnumerable,z=l("symbol-registry"),L=l("symbols"),F=l("op-symbols"),B=Object.prototype,j="function"==typeof T,H=o.QObject,W=!H||!H.prototype||!H.prototype.findChild,Y=s&&d(function(){return 7!=x(O({},"a",{get:function(){return O(this,"a",{value:7}).a}})).a})?function(t,e,i){var o=C(B,e);o&&delete B[e],O(t,e,i),o&&t!==B&&O(B,e,o)}:O,G=function(t){var e=L[t]=x(T.prototype);return e._k=t,e},V=j&&"symbol"==typeof T.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof T},U=function(t,e,i){return t===B&&U(F,e,i),y(t),e=_(e,!0),y(i),n(L,e)?(i.enumerable?(n(t,N)&&t[N][e]&&(t[N][e]=!1),i=x(i,{enumerable:w(0,!1)})):(n(t,N)||O(t,N,w(1,{})),t[N][e]=!0),Y(t,e,i)):O(t,e,i)},q=function(t,e){y(t);for(var i,o=v(e=b(e)),n=0,s=o.length;s>n;)U(t,i=o[n++],e[i]);return t},X=function(t,e){return void 0===e?x(t):q(x(t),e)},Z=function(t){var e=A.call(this,t=_(t,!0));return!(this===B&&n(L,t)&&!n(F,t))&&(!(e||!n(this,t)||!n(L,t)||n(this,N)&&this[N][t])||e)},K=function(t,e){if(t=b(t),e=_(e,!0),t!==B||!n(L,e)||n(F,e)){var i=C(t,e);return!i||!n(L,e)||n(t,N)&&t[N][e]||(i.enumerable=!0),i}},J=function(t){for(var e,i=E(b(t)),o=[],s=0;i.length>s;)n(L,e=i[s++])||e==N||e==h||o.push(e);return o},$=function(t){for(var e,i=t===B,o=E(i?F:b(t)),s=[],r=0;o.length>r;)!n(L,e=o[r++])||i&&!n(B,e)||s.push(L[e]);return s};j||(T=function(){if(this instanceof T)throw TypeError("Symbol is not a constructor!");var t=c(arguments.length>0?arguments[0]:void 0),e=function(i){this===B&&e.call(F,i),n(this,N)&&n(this[N],t)&&(this[N][t]=!1),Y(this,t,w(1,i))};return s&&W&&Y(B,t,{configurable:!0,set:e}),G(t)},a(T.prototype,"toString",function(){return this._k}),S.f=K,D.f=U,i(88).f=k.f=J,i(42).f=Z,i(63).f=$,s&&!i(52)&&a(B,"propertyIsEnumerable",Z,!0),f.f=function(t){return G(p(t))}),r(r.G+r.W+r.F*!j,{Symbol:T});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Q.length>tt;)p(Q[tt++]);for(var et=M(p.store),it=0;et.length>it;)m(et[it++]);r(r.S+r.F*!j,"Symbol",{for:function(t){return n(z,t+="")?z[t]:z[t]=T(t)},keyFor:function(t){if(!V(t))throw TypeError(t+" is not a symbol!");for(var e in z)if(z[e]===t)return e},useSetter:function(){W=!0},useSimple:function(){W=!1}}),r(r.S+r.F*!j,"Object",{create:X,defineProperty:U,defineProperties:q,getOwnPropertyDescriptor:K,getOwnPropertyNames:J,getOwnPropertySymbols:$}),P&&r(r.S+r.F*(!j||d(function(){var t=T();return"[null]"!=I([t])||"{}"!=I({a:t})||"{}"!=I(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!V(t)){for(var e,i,o=[t],n=1;arguments.length>n;)o.push(arguments[n++]);return e=o[1],"function"==typeof e&&(i=e),!i&&g(e)||(e=function(t,e){if(i&&(e=i.call(this,t,e)),!V(e))return e}),o[1]=e,I.apply(P,o)}}}),T.prototype[R]||i(26)(T.prototype,R,T.prototype.valueOf),u(T,"Symbol"),u(Math,"Math",!0),u(o.JSON,"JSON",!0)},function(t,e,i){var o=i(40)("meta"),n=i(32),s=i(22),r=i(20).f,a=0,h=Object.isExtensible||function(){return!0},d=!i(28)(function(){return h(Object.preventExtensions({}))}),l=function(t){r(t,o,{value:{i:"O"+ ++a,w:{}}})},u=function(t,e){if(!n(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!s(t,o)){if(!h(t))return"F";if(!e)return"E";l(t)}return t[o].i},c=function(t,e){if(!s(t,o)){if(!h(t))return!0;if(!e)return!1;l(t)}return t[o].w},p=function(t){return d&&f.NEED&&h(t)&&!s(t,o)&&l(t),t},f=t.exports={KEY:o,NEED:!1,fastKey:u,getWeak:c,onFreeze:p}},function(t,e,i){var o=i(33),n=i(63),s=i(42);t.exports=function(t){var e=o(t),i=n.f;if(i)for(var r,a=i(t),h=s.f,d=0;a.length>d;)h.call(t,r=a[d++])&&e.push(r);return e}},function(t,e,i){var o=i(50);t.exports=Array.isArray||function(t){return"Array"==o(t)}},function(t,e,i){var o=i(25),n=i(88).f,s={}.toString,r="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return n(t)}catch(t){return r.slice()}};t.exports.f=function(t){return r&&"[object Window]"==s.call(t)?a(t):n(o(t))}},function(t,e){},function(t,e,i){i(62)("asyncIterator")},function(t,e,i){i(62)("observable")},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(0,function(){function e(){return Co.apply(null,arguments)}function i(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function o(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function n(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}function s(t){return void 0===t}function r(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function a(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function h(t,e){var i,o=[];for(i=0;i<t.length;++i)o.push(e(t[i],i));return o}function d(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function l(t,e){for(var i in e)d(e,i)&&(t[i]=e[i]);return d(e,"toString")&&(t.toString=e.toString),d(e,"valueOf")&&(t.valueOf=e.valueOf),t}function u(t,e,i,o){return Se(t,e,i,o,!0).utc()}function c(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function p(t){return null==t._pf&&(t._pf=c()),t._pf}function f(t){if(null==t._isValid){var e=p(t),i=Oo.call(e.parsedDateParts,function(t){return null!=t}),o=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&i);if(t._strict&&(o=o&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return o;t._isValid=o}return t._isValid}function m(t){var e=u(NaN);return null!=t?l(p(e),t):p(e).userInvalidated=!0,e}function v(t,e){var i,o,n;if(s(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),s(e._i)||(t._i=e._i),s(e._f)||(t._f=e._f),s(e._l)||(t._l=e._l),s(e._strict)||(t._strict=e._strict),s(e._tzm)||(t._tzm=e._tzm),s(e._isUTC)||(t._isUTC=e._isUTC),s(e._offset)||(t._offset=e._offset),s(e._pf)||(t._pf=p(e)),s(e._locale)||(t._locale=e._locale),Eo.length>0)for(i=0;i<Eo.length;i++)o=Eo[i],n=e[o],s(n)||(t[o]=n);return t}function g(t){v(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===To&&(To=!0,e.updateOffset(this),To=!1)}function y(t){return t instanceof g||null!=t&&null!=t._isAMomentObject}function b(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function _(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=b(e)),i}function w(t,e,i){var o,n=Math.min(t.length,e.length),s=Math.abs(t.length-e.length),r=0;for(o=0;o<n;o++)(i&&t[o]!==e[o]||!i&&_(t[o])!==_(e[o]))&&r++;return r+s}function x(t){!1===e.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function k(t,i){var o=!0;return l(function(){if(null!=e.deprecationHandler&&e.deprecationHandler(null,t),o){for(var n,s=[],r=0;r<arguments.length;r++){if(n="","object"==typeof arguments[r]){n+="\n["+r+"] "
+;for(var a in arguments[0])n+=a+": "+arguments[0][a]+", ";n=n.slice(0,-2)}else n=arguments[r];s.push(n)}x(t+"\nArguments: "+Array.prototype.slice.call(s).join("")+"\n"+(new Error).stack),o=!1}return i.apply(this,arguments)},i)}function S(t,i){null!=e.deprecationHandler&&e.deprecationHandler(t,i),Po[t]||(x(i),Po[t]=!0)}function D(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function M(t){var e,i;for(i in t)e=t[i],D(e)?this[i]=e:this["_"+i]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function C(t,e){var i,n=l({},t);for(i in e)d(e,i)&&(o(t[i])&&o(e[i])?(n[i]={},l(n[i],t[i]),l(n[i],e[i])):null!=e[i]?n[i]=e[i]:delete n[i]);for(i in t)d(t,i)&&!d(e,i)&&o(t[i])&&(n[i]=l({},n[i]));return n}function O(t){null!=t&&this.set(t)}function E(t,e,i){var o=this._calendar[t]||this._calendar.sameElse;return D(o)?o.call(e,i):o}function T(t){var e=this._longDateFormat[t],i=this._longDateFormat[t.toUpperCase()];return e||!i?e:(this._longDateFormat[t]=i.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])}function P(){return this._invalidDate}function I(t){return this._ordinal.replace("%d",t)}function N(t,e,i,o){var n=this._relativeTime[i];return D(n)?n(t,e,i,o):n.replace(/%d/i,t)}function R(t,e){var i=this._relativeTime[t>0?"future":"past"];return D(i)?i(e):i.replace(/%s/i,e)}function A(t,e){var i=t.toLowerCase();Lo[i]=Lo[i+"s"]=Lo[e]=t}function z(t){return"string"==typeof t?Lo[t]||Lo[t.toLowerCase()]:void 0}function L(t){var e,i,o={};for(i in t)d(t,i)&&(e=z(i))&&(o[e]=t[i]);return o}function F(t,e){Fo[t]=e}function B(t){var e=[];for(var i in t)e.push({unit:i,priority:Fo[i]});return e.sort(function(t,e){return t.priority-e.priority}),e}function j(t,e,i){var o=""+Math.abs(t),n=e-o.length;return(t>=0?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function H(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(Wo[t]=n),e&&(Wo[e[0]]=function(){return j(n.apply(this,arguments),e[1],e[2])}),i&&(Wo[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function W(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function Y(t){var e,i,o=t.match(Bo);for(e=0,i=o.length;e<i;e++)Wo[o[e]]?o[e]=Wo[o[e]]:o[e]=W(o[e]);return function(e){var n,s="";for(n=0;n<i;n++)s+=D(o[n])?o[n].call(e,t):o[n];return s}}function G(t,e){return t.isValid()?(e=V(e,t.localeData()),Ho[e]=Ho[e]||Y(e),Ho[e](t)):t.localeData().invalidDate()}function V(t,e){function i(t){return e.longDateFormat(t)||t}var o=5;for(jo.lastIndex=0;o>=0&&jo.test(t);)t=t.replace(jo,i),jo.lastIndex=0,o-=1;return t}function U(t,e,i){an[t]=D(e)?e:function(t,o){return t&&i?i:e}}function q(t,e){return d(an,t)?an[t](e._strict,e._locale):new RegExp(X(t))}function X(t){return Z(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}))}function Z(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function K(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),r(e)&&(o=function(t,i){i[e]=_(t)}),i=0;i<t.length;i++)hn[t[i]]=o}function J(t,e){K(t,function(t,i,o,n){o._w=o._w||{},e(t,o._w,o,n)})}function $(t,e,i){null!=e&&d(hn,t)&&hn[t](e,i._a,i,t)}function Q(t){return tt(t)?366:365}function tt(t){return t%4==0&&t%100!=0||t%400==0}function et(){return tt(this.year())}function it(t,i){return function(o){return null!=o?(nt(this,t,o),e.updateOffset(this,i),this):ot(this,t)}}function ot(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function nt(t,e,i){t.isValid()&&!isNaN(i)&&("FullYear"===e&&tt(t.year())?t._d["set"+(t._isUTC?"UTC":"")+e](i,t.month(),ht(i,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](i))}function st(t){return t=z(t),D(this[t])?this[t]():this}function rt(t,e){if("object"==typeof t){t=L(t);for(var i=B(t),o=0;o<i.length;o++)this[i[o].unit](t[i[o].unit])}else if(t=z(t),D(this[t]))return this[t](e);return this}function at(t,e){return(t%e+e)%e}function ht(t,e){if(isNaN(t)||isNaN(e))return NaN;var i=at(e,12);return t+=(e-i)/12,1===i?tt(t)?29:28:31-i%7%2}function dt(t,e){return t?i(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||_n).test(e)?"format":"standalone"][t.month()]:i(this._months)?this._months:this._months.standalone}function lt(t,e){return t?i(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[_n.test(e)?"format":"standalone"][t.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function ut(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],o=0;o<12;++o)s=u([2e3,o]),this._shortMonthsParse[o]=this.monthsShort(s,"").toLocaleLowerCase(),this._longMonthsParse[o]=this.months(s,"").toLocaleLowerCase();return i?"MMM"===e?(n=yn.call(this._shortMonthsParse,r),-1!==n?n:null):(n=yn.call(this._longMonthsParse,r),-1!==n?n:null):"MMM"===e?-1!==(n=yn.call(this._shortMonthsParse,r))?n:(n=yn.call(this._longMonthsParse,r),-1!==n?n:null):-1!==(n=yn.call(this._longMonthsParse,r))?n:(n=yn.call(this._shortMonthsParse,r),-1!==n?n:null)}function ct(t,e,i){var o,n,s;if(this._monthsParseExact)return ut.call(this,t,e,i);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),o=0;o<12;o++){if(n=u([2e3,o]),i&&!this._longMonthsParse[o]&&(this._longMonthsParse[o]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[o]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),i||this._monthsParse[o]||(s="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[o]=new RegExp(s.replace(".",""),"i")),i&&"MMMM"===e&&this._longMonthsParse[o].test(t))return o;if(i&&"MMM"===e&&this._shortMonthsParse[o].test(t))return o;if(!i&&this._monthsParse[o].test(t))return o}}function pt(t,e){var i;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=_(e);else if(e=t.localeData().monthsParse(e),!r(e))return t;return i=Math.min(t.date(),ht(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,i),t}function ft(t){return null!=t?(pt(this,t),e.updateOffset(this,!0),this):ot(this,"Month")}function mt(){return ht(this.year(),this.month())}function vt(t){return this._monthsParseExact?(d(this,"_monthsRegex")||yt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(d(this,"_monthsShortRegex")||(this._monthsShortRegex=kn),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)}function gt(t){return this._monthsParseExact?(d(this,"_monthsRegex")||yt.call(this),t?this._monthsStrictRegex:this._monthsRegex):(d(this,"_monthsRegex")||(this._monthsRegex=Sn),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)}function yt(){function t(t,e){return e.length-t.length}var e,i,o=[],n=[],s=[];for(e=0;e<12;e++)i=u([2e3,e]),o.push(this.monthsShort(i,"")),n.push(this.months(i,"")),s.push(this.months(i,"")),s.push(this.monthsShort(i,""));for(o.sort(t),n.sort(t),s.sort(t),e=0;e<12;e++)o[e]=Z(o[e]),n[e]=Z(n[e]);for(e=0;e<24;e++)s[e]=Z(s[e]);this._monthsRegex=new RegExp("^("+s.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+o.join("|")+")","i")}function bt(t,e,i,o,n,s,r){var a=new Date(t,e,i,o,n,s,r);return t<100&&t>=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function _t(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function wt(t,e,i){var o=7+e-i;return-(7+_t(t,0,o).getUTCDay()-e)%7+o-1}function xt(t,e,i,o,n){var s,r,a=(7+i-o)%7,h=wt(t,o,n),d=1+7*(e-1)+a+h;return d<=0?(s=t-1,r=Q(s)+d):d>Q(t)?(s=t+1,r=d-Q(t)):(s=t,r=d),{year:s,dayOfYear:r}}function kt(t,e,i){var o,n,s=wt(t.year(),e,i),r=Math.floor((t.dayOfYear()-s-1)/7)+1;return r<1?(n=t.year()-1,o=r+St(n,e,i)):r>St(t.year(),e,i)?(o=r-St(t.year(),e,i),n=t.year()+1):(n=t.year(),o=r),{week:o,year:n}}function St(t,e,i){var o=wt(t,e,i),n=wt(t+1,e,i);return(Q(t)-o+n)/7}function Dt(t){return kt(t,this._week.dow,this._week.doy).week}function Mt(){return this._week.dow}function Ct(){return this._week.doy}function Ot(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Et(t){var e=kt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Tt(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Pt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function It(t,e){return t?i(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:i(this._weekdays)?this._weekdays:this._weekdays.standalone}function Nt(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort}function Rt(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin}function At(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)s=u([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?(n=yn.call(this._weekdaysParse,r),-1!==n?n:null):"ddd"===e?(n=yn.call(this._shortWeekdaysParse,r),-1!==n?n:null):(n=yn.call(this._minWeekdaysParse,r),-1!==n?n:null):"dddd"===e?-1!==(n=yn.call(this._weekdaysParse,r))?n:-1!==(n=yn.call(this._shortWeekdaysParse,r))?n:(n=yn.call(this._minWeekdaysParse,r),-1!==n?n:null):"ddd"===e?-1!==(n=yn.call(this._shortWeekdaysParse,r))?n:-1!==(n=yn.call(this._weekdaysParse,r))?n:(n=yn.call(this._minWeekdaysParse,r),-1!==n?n:null):-1!==(n=yn.call(this._minWeekdaysParse,r))?n:-1!==(n=yn.call(this._weekdaysParse,r))?n:(n=yn.call(this._shortWeekdaysParse,r),-1!==n?n:null)}function zt(t,e,i){var o,n,s;if(this._weekdaysParseExact)return At.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(n=u([2e3,1]).day(o),i&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".",".?")+"$","i")),this._weekdaysParse[o]||(s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[o]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[o].test(t))return o;if(i&&"ddd"===e&&this._shortWeekdaysParse[o].test(t))return o;if(i&&"dd"===e&&this._minWeekdaysParse[o].test(t))return o;if(!i&&this._weekdaysParse[o].test(t))return o}}function Lt(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Tt(t,this.localeData()),this.add(t-e,"d")):e}function Ft(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Bt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Pt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function jt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Yt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=En),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function Ht(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Yt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Tn),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Wt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Yt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Pn),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Yt(){function t(t,e){return e.length-t.length}var e,i,o,n,s,r=[],a=[],h=[],d=[];for(e=0;e<7;e++)i=u([2e3,1]).day(e),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),h.push(s),d.push(o),d.push(n),d.push(s);for(r.sort(t),a.sort(t),h.sort(t),d.sort(t),e=0;e<7;e++)a[e]=Z(a[e]),h[e]=Z(h[e]),d[e]=Z(d[e]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Gt(){return this.hours()%12||12}function Vt(){return this.hours()||24}function Ut(t,e){H(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function qt(t,e){return e._meridiemParse}function Xt(t){return"p"===(t+"").toLowerCase().charAt(0)}function Zt(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Kt(t){return t?t.toLowerCase().replace("_","-"):t}function Jt(t){for(var e,i,o,n,s=0;s<t.length;){for(n=Kt(t[s]).split("-"),e=n.length,i=Kt(t[s+1]),i=i?i.split("-"):null;e>0;){if(o=$t(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&w(n,i,!0)>=e-1)break;e--}s++}return null}function $t(e){var i=null;if(!zn[e]&&void 0!==t&&t&&t.exports)try{i=In._abbr;!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Qt(i)}catch(t){}return zn[e]}function Qt(t,e){var i;return t&&(i=s(e)?ie(t):te(t,e))&&(In=i),In._abbr}function te(t,e){if(null!==e){var i=An;if(e.abbr=t,null!=zn[t])S("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=zn[t]._config;else if(null!=e.parentLocale){if(null==zn[e.parentLocale])return Ln[e.parentLocale]||(Ln[e.parentLocale]=[]),Ln[e.parentLocale].push({name:t,config:e}),null;i=zn[e.parentLocale]._config}return zn[t]=new O(C(i,e)),Ln[t]&&Ln[t].forEach(function(t){te(t.name,t.config)}),Qt(t),zn[t]}return delete zn[t],null}function ee(t,e){if(null!=e){var i,o=An;null!=zn[t]&&(o=zn[t]._config),e=C(o,e),i=new O(e),i.parentLocale=zn[t],zn[t]=i,Qt(t)}else null!=zn[t]&&(null!=zn[t].parentLocale?zn[t]=zn[t].parentLocale:null!=zn[t]&&delete zn[t]);return zn[t]}function ie(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return In;if(!i(t)){if(e=$t(t))return e;t=[t]}return Jt(t)}function oe(){return Io(zn)}function ne(t){var e,i=t._a;return i&&-2===p(t).overflow&&(e=i[ln]<0||i[ln]>11?ln:i[un]<1||i[un]>ht(i[dn],i[ln])?un:i[cn]<0||i[cn]>24||24===i[cn]&&(0!==i[pn]||0!==i[fn]||0!==i[mn])?cn:i[pn]<0||i[pn]>59?pn:i[fn]<0||i[fn]>59?fn:i[mn]<0||i[mn]>999?mn:-1,p(t)._overflowDayOfYear&&(e<dn||e>un)&&(e=un),p(t)._overflowWeeks&&-1===e&&(e=vn),p(t)._overflowWeekday&&-1===e&&(e=gn),p(t).overflow=e),t}function se(t,e,i){return null!=t?t:null!=e?e:i}function re(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function ae(t){var e,i,o,n,s=[];if(!t._d){for(o=re(t),t._w&&null==t._a[un]&&null==t._a[ln]&&he(t),null!=t._dayOfYear&&(n=se(t._a[dn],o[dn]),(t._dayOfYear>Q(n)||0===t._dayOfYear)&&(p(t)._overflowDayOfYear=!0),i=_t(n,0,t._dayOfYear),t._a[ln]=i.getUTCMonth(),t._a[un]=i.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[cn]&&0===t._a[pn]&&0===t._a[fn]&&0===t._a[mn]&&(t._nextDay=!0,t._a[cn]=0),t._d=(t._useUTC?_t:bt).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[cn]=24),t._w&&void 0!==t._w.d&&t._w.d!==t._d.getDay()&&(p(t).weekdayMismatch=!0)}}function he(t){var e,i,o,n,s,r,a,h;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)s=1,r=4,i=se(e.GG,t._a[dn],kt(De(),1,4).year),o=se(e.W,1),((n=se(e.E,1))<1||n>7)&&(h=!0);else{s=t._locale._week.dow,r=t._locale._week.doy;var d=kt(De(),s,r);i=se(e.gg,t._a[dn],d.year),o=se(e.w,d.week),null!=e.d?((n=e.d)<0||n>6)&&(h=!0):null!=e.e?(n=e.e+s,(e.e<0||e.e>6)&&(h=!0)):n=s}o<1||o>St(i,s,r)?p(t)._overflowWeeks=!0:null!=h?p(t)._overflowWeekday=!0:(a=xt(i,o,n,s,r),t._a[dn]=a.year,t._dayOfYear=a.dayOfYear)}function de(t){var e,i,o,n,s,r,a=t._i,h=Fn.exec(a)||Bn.exec(a);if(h){for(p(t).iso=!0,e=0,i=Hn.length;e<i;e++)if(Hn[e][1].exec(h[1])){n=Hn[e][0],o=!1!==Hn[e][2];break}if(null==n)return void(t._isValid=!1);if(h[3]){for(e=0,i=Wn.length;e<i;e++)if(Wn[e][1].exec(h[3])){s=(h[2]||" ")+Wn[e][0];break}if(null==s)return void(t._isValid=!1)}if(!o&&null!=s)return void(t._isValid=!1);if(h[4]){if(!jn.exec(h[4]))return void(t._isValid=!1);r="Z"}t._f=n+(s||"")+(r||""),ge(t)}else t._isValid=!1}function le(t,e,i,o,n,s){var r=[ue(t),xn.indexOf(e),parseInt(i,10),parseInt(o,10),parseInt(n,10)];return s&&r.push(parseInt(s,10)),r}function ue(t){var e=parseInt(t,10);return e<=49?2e3+e:e<=999?1900+e:e}function ce(t){return t.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}function pe(t,e,i){if(t){if(Cn.indexOf(t)!==new Date(e[0],e[1],e[2]).getDay())return p(i).weekdayMismatch=!0,i._isValid=!1,!1}return!0}function fe(t,e,i){if(t)return Vn[t];if(e)return 0;var o=parseInt(i,10),n=o%100;return(o-n)/100*60+n}function me(t){var e=Gn.exec(ce(t._i));if(e){var i=le(e[4],e[3],e[2],e[5],e[6],e[7]);if(!pe(e[1],i,t))return;t._a=i,t._tzm=fe(e[8],e[9],e[10]),t._d=_t.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),p(t).rfc2822=!0}else t._isValid=!1}function ve(t){var i=Yn.exec(t._i);if(null!==i)return void(t._d=new Date(+i[1]));de(t),!1===t._isValid&&(delete t._isValid,me(t),!1===t._isValid&&(delete t._isValid,e.createFromInputFallback(t)))}function ge(t){if(t._f===e.ISO_8601)return void de(t);if(t._f===e.RFC_2822)return void me(t);t._a=[],p(t).empty=!0;var i,o,n,s,r,a=""+t._i,h=a.length,d=0;for(n=V(t._f,t._locale).match(Bo)||[],i=0;i<n.length;i++)s=n[i],o=(a.match(q(s,t))||[])[0],o&&(r=a.substr(0,a.indexOf(o)),r.length>0&&p(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),Wo[s]?(o?p(t).empty=!1:p(t).unusedTokens.push(s),$(s,o,t)):t._strict&&!o&&p(t).unusedTokens.push(s);p(t).charsLeftOver=h-d,a.length>0&&p(t).unusedInput.push(a),t._a[cn]<=12&&!0===p(t).bigHour&&t._a[cn]>0&&(p(t).bigHour=void 0),p(t).parsedDateParts=t._a.slice(0),p(t).meridiem=t._meridiem,t._a[cn]=ye(t._locale,t._a[cn],t._meridiem),ae(t),ne(t)}function ye(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&e<12&&(e+=12),o||12!==e||(e=0),e):e}function be(t){var e,i,o,n,s;if(0===t._f.length)return p(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;n<t._f.length;n++)s=0,e=v({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[n],ge(e),f(e)&&(s+=p(e).charsLeftOver,s+=10*p(e).unusedTokens.length,p(e).score=s,(null==o||s<o)&&(o=s,i=e));l(t,i||e)}function _e(t){if(!t._d){var e=L(t._i);t._a=h([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],function(t){return t&&parseInt(t,10)}),ae(t)}}function we(t){var e=new g(ne(xe(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function xe(t){var e=t._i,o=t._f;return t._locale=t._locale||ie(t._l),null===e||void 0===o&&""===e?m({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),y(e)?new g(ne(e)):(a(e)?t._d=e:i(o)?be(t):o?ge(t):ke(t),f(t)||(t._d=null),t))}function ke(t){var n=t._i;s(n)?t._d=new Date(e.now()):a(n)?t._d=new Date(n.valueOf()):"string"==typeof n?ve(t):i(n)?(t._a=h(n.slice(0),function(t){return parseInt(t,10)}),ae(t)):o(n)?_e(t):r(n)?t._d=new Date(n):e.createFromInputFallback(t)}function Se(t,e,s,r,a){var h={};return!0!==s&&!1!==s||(r=s,s=void 0),(o(t)&&n(t)||i(t)&&0===t.length)&&(t=void 0),h._isAMomentObject=!0,h._useUTC=h._isUTC=a,h._l=s,h._i=t,h._f=e,h._strict=r,we(h)}function De(t,e,i,o){return Se(t,e,i,o,!1)}function Me(t,e){var o,n;if(1===e.length&&i(e[0])&&(e=e[0]),!e.length)return De();for(o=e[0],n=1;n<e.length;++n)e[n].isValid()&&!e[n][t](o)||(o=e[n]);return o}function Ce(){return Me("isBefore",[].slice.call(arguments,0))}function Oe(){return Me("isAfter",[].slice.call(arguments,0))}function Ee(t){for(var e in t)if(-1===yn.call(Zn,e)||null!=t[e]&&isNaN(t[e]))return!1;for(var i=!1,o=0;o<Zn.length;++o)if(t[Zn[o]]){if(i)return!1;parseFloat(t[Zn[o]])!==_(t[Zn[o]])&&(i=!0)}return!0}function Te(){return this._isValid}function Pe(){return Ke(NaN)}function Ie(t){var e=L(t),i=e.year||0,o=e.quarter||0,n=e.month||0,s=e.week||0,r=e.day||0,a=e.hour||0,h=e.minute||0,d=e.second||0,l=e.millisecond||0;this._isValid=Ee(e),this._milliseconds=+l+1e3*d+6e4*h+1e3*a*60*60,this._days=+r+7*s,this._months=+n+3*o+12*i,this._data={},this._locale=ie(),this._bubble()}function Ne(t){return t instanceof Ie}function Re(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function Ae(t,e){H(t,0,0,function(){var t=this.utcOffset(),i="+";return t<0&&(t=-t,i="-"),i+j(~~(t/60),2)+e+j(~~t%60,2)})}function ze(t,e){var i=(e||"").match(t);if(null===i)return null;var o=i[i.length-1]||[],n=(o+"").match(Kn)||["-",0,0],s=60*n[1]+_(n[2]);return 0===s?0:"+"===n[0]?s:-s}function Le(t,i){var o,n;return i._isUTC?(o=i.clone(),n=(y(t)||a(t)?t.valueOf():De(t).valueOf())-o.valueOf(),o._d.setTime(o._d.valueOf()+n),e.updateOffset(o,!1),o):De(t).local()}function Fe(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Be(t,i,o){var n,s=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=ze(nn,t)))return this}else Math.abs(t)<16&&!o&&(t*=60);return!this._isUTC&&i&&(n=Fe(this)),this._offset=t,this._isUTC=!0,null!=n&&this.add(n,"m"),s!==t&&(!i||this._changeInProgress?ei(this,Ke(t-s,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?s:Fe(this)}function je(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function He(t){return this.utcOffset(0,t)}function We(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Fe(this),"m")),this}function Ye(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=ze(on,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this}function Ge(t){return!!this.isValid()&&(t=t?De(t).utcOffset():0,(this.utcOffset()-t)%60==0)}function Ve(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ue(){if(!s(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),t=xe(t),t._a){var e=t._isUTC?u(t._a):De(t._a);this._isDSTShifted=this.isValid()&&w(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function qe(){return!!this.isValid()&&!this._isUTC}function Xe(){return!!this.isValid()&&this._isUTC}function Ze(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ke(t,e){var i,o,n,s=t,a=null;return Ne(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:r(t)?(s={},e?s[e]=t:s.milliseconds=t):(a=Jn.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:_(a[un])*i,h:_(a[cn])*i,m:_(a[pn])*i,s:_(a[fn])*i,ms:_(Re(1e3*a[mn]))*i}):(a=$n.exec(t))?(i="-"===a[1]?-1:(a[1],1),s={y:Je(a[2],i),M:Je(a[3],i),w:Je(a[4],i),d:Je(a[5],i),h:Je(a[6],i),m:Je(a[7],i),s:Je(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=Qe(De(s.from),De(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new Ie(s),Ne(t)&&d(t,"_locale")&&(o._locale=t._locale),o}function Je(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function $e(t,e){var i={milliseconds:0,months:0};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function Qe(t,e){var i;return t.isValid()&&e.isValid()?(e=Le(e,t),t.isBefore(e)?i=$e(t,e):(i=$e(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function ti(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(S(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Ke(i,o),ei(this,n,t),this}}function ei(t,i,o,n){var s=i._milliseconds,r=Re(i._days),a=Re(i._months);t.isValid()&&(n=null==n||n,a&&pt(t,ot(t,"Month")+a*o),r&&nt(t,"Date",ot(t,"Date")+r*o),s&&t._d.setTime(t._d.valueOf()+s*o),n&&e.updateOffset(t,r||a))}function ii(t,e){var i=t.diff(e,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function oi(t,i){var o=t||De(),n=Le(o,this).startOf("day"),s=e.calendarFormat(this,n)||"sameElse",r=i&&(D(i[s])?i[s].call(this,o):i[s]);return this.format(r||this.localeData().calendar(s,this,De(o)))}function ni(){return new g(this)}function si(t,e){var i=y(t)?t:De(t);return!(!this.isValid()||!i.isValid())&&(e=z(s(e)?"millisecond":e),"millisecond"===e?this.valueOf()>i.valueOf():i.valueOf()<this.clone().startOf(e).valueOf())}function ri(t,e){var i=y(t)?t:De(t);return!(!this.isValid()||!i.isValid())&&(e=z(s(e)?"millisecond":e),"millisecond"===e?this.valueOf()<i.valueOf():this.clone().endOf(e).valueOf()<i.valueOf())}function ai(t,e,i,o){return o=o||"()",("("===o[0]?this.isAfter(t,i):!this.isBefore(t,i))&&(")"===o[1]?this.isBefore(e,i):!this.isAfter(e,i))}function hi(t,e){var i,o=y(t)?t:De(t);return!(!this.isValid()||!o.isValid())&&(e=z(e||"millisecond"),"millisecond"===e?this.valueOf()===o.valueOf():(i=o.valueOf(),this.clone().startOf(e).valueOf()<=i&&i<=this.clone().endOf(e).valueOf()))}function di(t,e){return this.isSame(t,e)||this.isAfter(t,e)}function li(t,e){return this.isSame(t,e)||this.isBefore(t,e)}function ui(t,e,i){var o,n,s;if(!this.isValid())return NaN;if(o=Le(t,this),!o.isValid())return NaN;switch(n=6e4*(o.utcOffset()-this.utcOffset()),e=z(e)){case"year":s=ci(this,o)/12;break;case"month":s=ci(this,o);break;case"quarter":s=ci(this,o)/3;break;case"second":s=(this-o)/1e3;break;case"minute":s=(this-o)/6e4;break;case"hour":s=(this-o)/36e5;break;case"day":s=(this-o-n)/864e5;break;case"week":s=(this-o-n)/6048e5;break;default:s=this-o}return i?s:b(s)}function ci(t,e){var i,o,n=12*(e.year()-t.year())+(e.month()-t.month()),s=t.clone().add(n,"months");return e-s<0?(i=t.clone().add(n-1,"months"),o=(e-s)/(s-i)):(i=t.clone().add(n+1,"months"),o=(e-s)/(i-s)),-(n+o)||0}function pi(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function fi(){if(!this.isValid())return null;var t=this.clone().utc();return t.year()<0||t.year()>9999?G(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):D(Date.prototype.toISOString)?this.toDate().toISOString():G(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function mi(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var i="["+t+'("]',o=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=e+'[")]';return this.format(i+o+"-MM-DD[T]HH:mm:ss.SSS"+n)}function vi(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var i=G(this,t);return this.localeData().postformat(i)}function gi(t,e){return this.isValid()&&(y(t)&&t.isValid()||De(t).isValid())?Ke({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function yi(t){return this.from(De(),t)}function bi(t,e){return this.isValid()&&(y(t)&&t.isValid()||De(t).isValid())?Ke({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function _i(t){return this.to(De(),t)}function wi(t){var e;return void 0===t?this._locale._abbr:(e=ie(t),null!=e&&(this._locale=e),this)}function xi(){return this._locale}function ki(t){switch(t=z(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function Si(t){return void 0===(t=z(t))||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function Di(){return this._d.valueOf()-6e4*(this._offset||0)}function Mi(){return Math.floor(this.valueOf()/1e3)}function Ci(){return new Date(this.valueOf())}function Oi(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Ei(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function Ti(){return this.isValid()?this.toISOString():null}function Pi(){return f(this)}function Ii(){return l({},p(this))}function Ni(){return p(this).overflow}function Ri(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ai(t,e){H(0,[t,t.length],0,e)}function zi(t){return ji.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Li(t){return ji.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Fi(){return St(this.year(),1,4)}function Bi(){var t=this.localeData()._week;return St(this.year(),t.dow,t.doy)}function ji(t,e,i,o,n){var s;return null==t?kt(this,o,n).year:(s=St(t,o,n),e>s&&(e=s),Hi.call(this,t,e,i,o,n))}function Hi(t,e,i,o,n){var s=xt(t,e,i,o,n),r=_t(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Wi(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Yi(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function Gi(t,e){e[mn]=_(1e3*("0."+t))}function Vi(){return this._isUTC?"UTC":""}function Ui(){return this._isUTC?"Coordinated Universal Time":""}function qi(t){return De(1e3*t)}function Xi(){return De.apply(null,arguments).parseZone()}function Zi(t){return t}function Ki(t,e,i,o){var n=ie(),s=u().set(o,e);return n[i](s,t)}function Ji(t,e,i){if(r(t)&&(e=t,t=void 0),t=t||"",null!=e)return Ki(t,e,i,"month");var o,n=[];for(o=0;o<12;o++)n[o]=Ki(t,o,i,"month");return n}function $i(t,e,i,o){"boolean"==typeof t?(r(e)&&(i=e,e=void 0),e=e||""):(e=t,i=e,t=!1,r(e)&&(i=e,e=void 0),e=e||"");var n=ie(),s=t?n._week.dow:0;if(null!=i)return Ki(e,(i+s)%7,o,"day");var a,h=[];for(a=0;a<7;a++)h[a]=Ki(e,(a+s)%7,o,"day");return h}function Qi(t,e){return Ji(t,e,"months")}function to(t,e){return Ji(t,e,"monthsShort")}function eo(t,e,i){return $i(t,e,i,"weekdays")}function io(t,e,i){return $i(t,e,i,"weekdaysShort")}function oo(t,e,i){return $i(t,e,i,"weekdaysMin")}function no(){var t=this._data;return this._milliseconds=ds(this._milliseconds),this._days=ds(this._days),this._months=ds(this._months),t.milliseconds=ds(t.milliseconds),t.seconds=ds(t.seconds),t.minutes=ds(t.minutes),t.hours=ds(t.hours),t.months=ds(t.months),t.years=ds(t.years),this}function so(t,e,i,o){var n=Ke(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function ro(t,e){return so(this,t,e,1)}function ao(t,e){return so(this,t,e,-1)}function ho(t){return t<0?Math.floor(t):Math.ceil(t)}function lo(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||s<=0&&r<=0&&a<=0||(s+=864e5*ho(co(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=b(s/1e3),h.seconds=t%60,e=b(t/60),h.minutes=e%60,i=b(e/60),h.hours=i%24,r+=b(i/24),n=b(uo(r)),a+=n,
+r-=ho(co(n)),o=b(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function uo(t){return 4800*t/146097}function co(t){return 146097*t/4800}function po(t){if(!this.isValid())return NaN;var e,i,o=this._milliseconds;if("month"===(t=z(t))||"year"===t)return e=this._days+o/864e5,i=this._months+uo(e),"month"===t?i:i/12;switch(e=this._days+Math.round(co(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function fo(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*_(this._months/12):NaN}function mo(t){return function(){return this.as(t)}}function vo(){return Ke(this)}function go(t){return t=z(t),this.isValid()?this[t+"s"]():NaN}function yo(t){return function(){return this.isValid()?this._data[t]:NaN}}function bo(){return b(this.days()/7)}function _o(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function wo(t,e,i){var o=Ke(t).abs(),n=Ds(o.as("s")),s=Ds(o.as("m")),r=Ds(o.as("h")),a=Ds(o.as("d")),h=Ds(o.as("M")),d=Ds(o.as("y")),l=n<=Ms.ss&&["s",n]||n<Ms.s&&["ss",n]||s<=1&&["m"]||s<Ms.m&&["mm",s]||r<=1&&["h"]||r<Ms.h&&["hh",r]||a<=1&&["d"]||a<Ms.d&&["dd",a]||h<=1&&["M"]||h<Ms.M&&["MM",h]||d<=1&&["y"]||["yy",d];return l[2]=e,l[3]=+t>0,l[4]=i,_o.apply(null,l)}function xo(t){return void 0===t?Ds:"function"==typeof t&&(Ds=t,!0)}function ko(t,e){return void 0!==Ms[t]&&(void 0===e?Ms[t]:(Ms[t]=e,"s"===t&&(Ms.ss=e-1),!0))}function So(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),i=wo(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Do(t){return(t>0)-(t<0)||+t}function Mo(){if(!this.isValid())return this.localeData().invalidDate();var t,e,i,o=Cs(this._milliseconds)/1e3,n=Cs(this._days),s=Cs(this._months);t=b(o/60),e=b(t/60),o%=60,t%=60,i=b(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,u=o?o.toFixed(3).replace(/\.?0+$/,""):"",c=this.asSeconds();if(!c)return"P0D";var p=c<0?"-":"",f=Do(this._months)!==Do(c)?"-":"",m=Do(this._days)!==Do(c)?"-":"",v=Do(this._milliseconds)!==Do(c)?"-":"";return p+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(h?m+h+"D":"")+(d||l||u?"T":"")+(d?v+d+"H":"")+(l?v+l+"M":"")+(u?v+u+"S":"")}var Co,Oo;Oo=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,o=0;o<i;o++)if(o in e&&t.call(this,e[o],o,e))return!0;return!1};var Eo=e.momentProperties=[],To=!1,Po={};e.suppressDeprecationWarnings=!1,e.deprecationHandler=null;var Io;Io=Object.keys?Object.keys:function(t){var e,i=[];for(e in t)d(t,e)&&i.push(e);return i};var No={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Ro={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Ao=/\d{1,2}/,zo={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Lo={},Fo={},Bo=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,jo=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ho={},Wo={},Yo=/\d/,Go=/\d\d/,Vo=/\d{3}/,Uo=/\d{4}/,qo=/[+-]?\d{6}/,Xo=/\d\d?/,Zo=/\d\d\d\d?/,Ko=/\d\d\d\d\d\d?/,Jo=/\d{1,3}/,$o=/\d{1,4}/,Qo=/[+-]?\d{1,6}/,tn=/\d+/,en=/[+-]?\d+/,on=/Z|[+-]\d\d:?\d\d/gi,nn=/Z|[+-]\d\d(?::?\d\d)?/gi,sn=/[+-]?\d+(\.\d{1,3})?/,rn=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,an={},hn={},dn=0,ln=1,un=2,cn=3,pn=4,fn=5,mn=6,vn=7,gn=8;H("Y",0,0,function(){var t=this.year();return t<=9999?""+t:"+"+t}),H(0,["YY",2],0,function(){return this.year()%100}),H(0,["YYYY",4],0,"year"),H(0,["YYYYY",5],0,"year"),H(0,["YYYYYY",6,!0],0,"year"),A("year","y"),F("year",1),U("Y",en),U("YY",Xo,Go),U("YYYY",$o,Uo),U("YYYYY",Qo,qo),U("YYYYYY",Qo,qo),K(["YYYYY","YYYYYY"],dn),K("YYYY",function(t,i){i[dn]=2===t.length?e.parseTwoDigitYear(t):_(t)}),K("YY",function(t,i){i[dn]=e.parseTwoDigitYear(t)}),K("Y",function(t,e){e[dn]=parseInt(t,10)}),e.parseTwoDigitYear=function(t){return _(t)+(_(t)>68?1900:2e3)};var yn,bn=it("FullYear",!0);yn=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},H("M",["MM",2],"Mo",function(){return this.month()+1}),H("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),H("MMMM",0,0,function(t){return this.localeData().months(this,t)}),A("month","M"),F("month",8),U("M",Xo),U("MM",Xo,Go),U("MMM",function(t,e){return e.monthsShortRegex(t)}),U("MMMM",function(t,e){return e.monthsRegex(t)}),K(["M","MM"],function(t,e){e[ln]=_(t)-1}),K(["MMM","MMMM"],function(t,e,i,o){var n=i._locale.monthsParse(t,o,i._strict);null!=n?e[ln]=n:p(i).invalidMonth=t});var _n=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,wn="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),xn="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),kn=rn,Sn=rn;H("w",["ww",2],"wo","week"),H("W",["WW",2],"Wo","isoWeek"),A("week","w"),A("isoWeek","W"),F("week",5),F("isoWeek",5),U("w",Xo),U("ww",Xo,Go),U("W",Xo),U("WW",Xo,Go),J(["w","ww","W","WW"],function(t,e,i,o){e[o.substr(0,1)]=_(t)});var Dn={dow:0,doy:6};H("d",0,"do","day"),H("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),H("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),H("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),H("e",0,0,"weekday"),H("E",0,0,"isoWeekday"),A("day","d"),A("weekday","e"),A("isoWeekday","E"),F("day",11),F("weekday",11),F("isoWeekday",11),U("d",Xo),U("e",Xo),U("E",Xo),U("dd",function(t,e){return e.weekdaysMinRegex(t)}),U("ddd",function(t,e){return e.weekdaysShortRegex(t)}),U("dddd",function(t,e){return e.weekdaysRegex(t)}),J(["dd","ddd","dddd"],function(t,e,i,o){var n=i._locale.weekdaysParse(t,o,i._strict);null!=n?e.d=n:p(i).invalidWeekday=t}),J(["d","e","E"],function(t,e,i,o){e[o]=_(t)});var Mn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Cn="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),On="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),En=rn,Tn=rn,Pn=rn;H("H",["HH",2],0,"hour"),H("h",["hh",2],0,Gt),H("k",["kk",2],0,Vt),H("hmm",0,0,function(){return""+Gt.apply(this)+j(this.minutes(),2)}),H("hmmss",0,0,function(){return""+Gt.apply(this)+j(this.minutes(),2)+j(this.seconds(),2)}),H("Hmm",0,0,function(){return""+this.hours()+j(this.minutes(),2)}),H("Hmmss",0,0,function(){return""+this.hours()+j(this.minutes(),2)+j(this.seconds(),2)}),Ut("a",!0),Ut("A",!1),A("hour","h"),F("hour",13),U("a",qt),U("A",qt),U("H",Xo),U("h",Xo),U("k",Xo),U("HH",Xo,Go),U("hh",Xo,Go),U("kk",Xo,Go),U("hmm",Zo),U("hmmss",Ko),U("Hmm",Zo),U("Hmmss",Ko),K(["H","HH"],cn),K(["k","kk"],function(t,e,i){var o=_(t);e[cn]=24===o?0:o}),K(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),K(["h","hh"],function(t,e,i){e[cn]=_(t),p(i).bigHour=!0}),K("hmm",function(t,e,i){var o=t.length-2;e[cn]=_(t.substr(0,o)),e[pn]=_(t.substr(o)),p(i).bigHour=!0}),K("hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[cn]=_(t.substr(0,o)),e[pn]=_(t.substr(o,2)),e[fn]=_(t.substr(n)),p(i).bigHour=!0}),K("Hmm",function(t,e,i){var o=t.length-2;e[cn]=_(t.substr(0,o)),e[pn]=_(t.substr(o))}),K("Hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[cn]=_(t.substr(0,o)),e[pn]=_(t.substr(o,2)),e[fn]=_(t.substr(n))});var In,Nn=/[ap]\.?m?\.?/i,Rn=it("Hours",!0),An={calendar:No,longDateFormat:Ro,invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:Ao,relativeTime:zo,months:wn,monthsShort:xn,week:Dn,weekdays:Mn,weekdaysMin:On,weekdaysShort:Cn,meridiemParse:Nn},zn={},Ln={},Fn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Bn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,jn=/Z|[+-]\d\d(?::?\d\d)?/,Hn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Wn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Yn=/^\/?Date\((\-?\d+)/i,Gn=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Vn={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};e.createFromInputFallback=k("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),e.ISO_8601=function(){},e.RFC_2822=function(){};var Un=k("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=De.apply(null,arguments);return this.isValid()&&t.isValid()?t<this?this:t:m()}),qn=k("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=De.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:m()}),Xn=function(){return Date.now?Date.now():+new Date},Zn=["year","quarter","month","week","day","hour","minute","second","millisecond"];Ae("Z",":"),Ae("ZZ",""),U("Z",nn),U("ZZ",nn),K(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=ze(nn,t)});var Kn=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Jn=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,$n=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;Ke.fn=Ie.prototype,Ke.invalid=Pe;var Qn=ti(1,"add"),ts=ti(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var es=k("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ai("gggg","weekYear"),Ai("ggggg","weekYear"),Ai("GGGG","isoWeekYear"),Ai("GGGGG","isoWeekYear"),A("weekYear","gg"),A("isoWeekYear","GG"),F("weekYear",1),F("isoWeekYear",1),U("G",en),U("g",en),U("GG",Xo,Go),U("gg",Xo,Go),U("GGGG",$o,Uo),U("gggg",$o,Uo),U("GGGGG",Qo,qo),U("ggggg",Qo,qo),J(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=_(t)}),J(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),H("Q",0,"Qo","quarter"),A("quarter","Q"),F("quarter",7),U("Q",Yo),K("Q",function(t,e){e[ln]=3*(_(t)-1)}),H("D",["DD",2],"Do","date"),A("date","D"),F("date",9),U("D",Xo),U("DD",Xo,Go),U("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),K(["D","DD"],un),K("Do",function(t,e){e[un]=_(t.match(Xo)[0],10)});var is=it("Date",!0);H("DDD",["DDDD",3],"DDDo","dayOfYear"),A("dayOfYear","DDD"),F("dayOfYear",4),U("DDD",Jo),U("DDDD",Vo),K(["DDD","DDDD"],function(t,e,i){i._dayOfYear=_(t)}),H("m",["mm",2],0,"minute"),A("minute","m"),F("minute",14),U("m",Xo),U("mm",Xo,Go),K(["m","mm"],pn);var os=it("Minutes",!1);H("s",["ss",2],0,"second"),A("second","s"),F("second",15),U("s",Xo),U("ss",Xo,Go),K(["s","ss"],fn);var ns=it("Seconds",!1);H("S",0,0,function(){return~~(this.millisecond()/100)}),H(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,function(){return 10*this.millisecond()}),H(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),H(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),H(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),H(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),H(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),A("millisecond","ms"),F("millisecond",16),U("S",Jo,Yo),U("SS",Jo,Go),U("SSS",Jo,Vo);var ss;for(ss="SSSS";ss.length<=9;ss+="S")U(ss,tn);for(ss="S";ss.length<=9;ss+="S")K(ss,Gi);var rs=it("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var as=g.prototype;as.add=Qn,as.calendar=oi,as.clone=ni,as.diff=ui,as.endOf=Si,as.format=vi,as.from=gi,as.fromNow=yi,as.to=bi,as.toNow=_i,as.get=st,as.invalidAt=Ni,as.isAfter=si,as.isBefore=ri,as.isBetween=ai,as.isSame=hi,as.isSameOrAfter=di,as.isSameOrBefore=li,as.isValid=Pi,as.lang=es,as.locale=wi,as.localeData=xi,as.max=qn,as.min=Un,as.parsingFlags=Ii,as.set=rt,as.startOf=ki,as.subtract=ts,as.toArray=Oi,as.toObject=Ei,as.toDate=Ci,as.toISOString=fi,as.inspect=mi,as.toJSON=Ti,as.toString=pi,as.unix=Mi,as.valueOf=Di,as.creationData=Ri,as.year=bn,as.isLeapYear=et,as.weekYear=zi,as.isoWeekYear=Li,as.quarter=as.quarters=Wi,as.month=ft,as.daysInMonth=mt,as.week=as.weeks=Ot,as.isoWeek=as.isoWeeks=Et,as.weeksInYear=Bi,as.isoWeeksInYear=Fi,as.date=is,as.day=as.days=Lt,as.weekday=Ft,as.isoWeekday=Bt,as.dayOfYear=Yi,as.hour=as.hours=Rn,as.minute=as.minutes=os,as.second=as.seconds=ns,as.millisecond=as.milliseconds=rs,as.utcOffset=Be,as.utc=He,as.local=We,as.parseZone=Ye,as.hasAlignedHourOffset=Ge,as.isDST=Ve,as.isLocal=qe,as.isUtcOffset=Xe,as.isUtc=Ze,as.isUTC=Ze,as.zoneAbbr=Vi,as.zoneName=Ui,as.dates=k("dates accessor is deprecated. Use date instead.",is),as.months=k("months accessor is deprecated. Use month instead",ft),as.years=k("years accessor is deprecated. Use year instead",bn),as.zone=k("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",je),as.isDSTShifted=k("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ue);var hs=O.prototype;hs.calendar=E,hs.longDateFormat=T,hs.invalidDate=P,hs.ordinal=I,hs.preparse=Zi,hs.postformat=Zi,hs.relativeTime=N,hs.pastFuture=R,hs.set=M,hs.months=dt,hs.monthsShort=lt,hs.monthsParse=ct,hs.monthsRegex=gt,hs.monthsShortRegex=vt,hs.week=Dt,hs.firstDayOfYear=Ct,hs.firstDayOfWeek=Mt,hs.weekdays=It,hs.weekdaysMin=Rt,hs.weekdaysShort=Nt,hs.weekdaysParse=zt,hs.weekdaysRegex=jt,hs.weekdaysShortRegex=Ht,hs.weekdaysMinRegex=Wt,hs.isPM=Xt,hs.meridiem=Zt,Qt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===_(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),e.lang=k("moment.lang is deprecated. Use moment.locale instead.",Qt),e.langData=k("moment.langData is deprecated. Use moment.localeData instead.",ie);var ds=Math.abs,ls=mo("ms"),us=mo("s"),cs=mo("m"),ps=mo("h"),fs=mo("d"),ms=mo("w"),vs=mo("M"),gs=mo("y"),ys=yo("milliseconds"),bs=yo("seconds"),_s=yo("minutes"),ws=yo("hours"),xs=yo("days"),ks=yo("months"),Ss=yo("years"),Ds=Math.round,Ms={ss:44,s:45,m:45,h:22,d:26,M:11},Cs=Math.abs,Os=Ie.prototype;return Os.isValid=Te,Os.abs=no,Os.add=ro,Os.subtract=ao,Os.as=po,Os.asMilliseconds=ls,Os.asSeconds=us,Os.asMinutes=cs,Os.asHours=ps,Os.asDays=fs,Os.asWeeks=ms,Os.asMonths=vs,Os.asYears=gs,Os.valueOf=fo,Os._bubble=lo,Os.clone=vo,Os.get=go,Os.milliseconds=ys,Os.seconds=bs,Os.minutes=_s,Os.hours=ws,Os.days=xs,Os.weeks=bo,Os.months=ks,Os.years=Ss,Os.humanize=So,Os.toISOString=Mo,Os.toString=Mo,Os.toJSON=Mo,Os.locale=wi,Os.localeData=xi,Os.toIsoString=k("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Mo),Os.lang=es,H("X",0,0,"unix"),H("x",0,0,"valueOf"),U("x",en),U("X",sn),K("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),K("x",function(t,e,i){i._d=new Date(_(t))}),e.version="2.19.1",function(t){Co=t}(De),e.fn=as,e.min=Ce,e.max=Oe,e.now=Xn,e.utc=u,e.unix=qi,e.months=Qi,e.isDate=a,e.locale=Qt,e.invalid=m,e.duration=Ke,e.isMoment=y,e.weekdays=eo,e.parseZone=Xi,e.localeData=ie,e.isDuration=Ne,e.monthsShort=to,e.weekdaysMin=oo,e.defineLocale=te,e.updateLocale=ee,e.locales=oe,e.weekdaysShort=io,e.normalizeUnits=z,e.relativeTimeRounding=xo,e.relativeTimeThreshold=ko,e.calendarFormat=ii,e.prototype=as,e})}).call(e,i(155)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=156},function(t,e,i){(function(e){function i(t,e,i){var o=e&&i||0,n=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){n<16&&(e[o+n++]=u[t])});n<16;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:g+1,d=a-v+(h-g)/1e4;if(d<0&&void 0===t.clockseq&&(r=r+1&16383),(d<0||a>v)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,g=h,m=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var c=t.node||f,p=0;p<6;p++)s[n+p]=c[p];return e||o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;a<16;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:void 0!==e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;e<16;e++)0==(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},c=0;c<256;c++)l[c]=(c+256).toString(16).substr(1),u[l[c]]=c;var p=r(),f=[1|p[0],p[1],p[2],p[3],p[4],p[5]],m=16383&(p[6]<<8|p[7]),v=0,g=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,i(158))},function(t,e){var i;i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,i){e.util=i(2),e.DOMutil=i(14),e.DataSet=i(11),e.DataView=i(12),e.Queue=i(43),e.Graph3d=i(161),e.graph3d={Camera:i(95),Filter:i(96),Point2d:i(91),Point3d:i(34),Slider:i(92),StepNumber:i(93)},e.moment=i(9),e.Hammer=i(10),e.keycharm=i(35)},function(t,e,i){var o=i(7),n=o.JSON||(o.JSON={stringify:JSON.stringify});t.exports=function(t){return n.stringify.apply(n,arguments)}},function(t,e,i){function o(t,e,i){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.dataGroup=new _,this.dataPoints=null,this.create(),f.setDefaults(o.DEFAULTS,this),this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.setOptions(i),this.setData(e)}function n(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function s(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r=i(90),a=function(t){return t&&t.__esModule?t:{default:t}}(r),h=i(44),d=i(2),l=i(34),u=i(91),c=i(92),p=i(93),f=i(94),m=i(15).default,v=i(15),g=v.printStyle,y=i(172),b=y.allOptions,_=i(173);o.STYLE=f.STYLE;o.DEFAULTS={width:"400px",height:"400px",filterLabel:"time",legendLabel:"value",xLabel:"x",yLabel:"y",zLabel:"z",xValueLabel:function(t){return t},yValueLabel:function(t){return t},zValueLabel:function(t){return t},showXAxis:!0,showYAxis:!0,showZAxis:!0,showGrid:!0,showPerspective:!0,showShadow:!1,keepAspectRatio:!0,verticalRatio:.5,dotSizeRatio:.02,dotSizeMinFraction:.5,dotSizeMaxFraction:2.5,showAnimationControls:void 0,animationInterval:1e3,animationPreload:!1,animationAutoStart:void 0,axisColor:"#4D4D4D",gridColor:"#D3D3D3",xCenter:"55%",yCenter:"50%",style:o.STYLE.DOT,tooltip:!1,tooltipStyle:{content:{padding:"10px",border:"1px solid #4d4d4d",color:"#1a1a1a",background:"rgba(255,255,255,0.7)",borderRadius:"2px",boxShadow:"5px 5px 10px rgba(128,128,128,0.5)"},line:{height:"40px",width:"0",borderLeft:"1px solid #4d4d4d"},dot:{height:"0",width:"0",border:"5px solid #4d4d4d",borderRadius:"5px"}},dataColor:{fill:"#7DC1FF",stroke:"#3267D2",strokeWidth:1},cameraPosition:{horizontal:1,vertical:.5,distance:1.7},showLegend:void 0,backgroundColor:void 0,xBarWidth:void 0,yBarWidth:void 0,valueMin:void 0,valueMax:void 0,xMin:void 0,xMax:void 0,xStep:void 0,yMin:void 0,yMax:void 0,yStep:void 0,zMin:void 0,zMax:void 0,zStep:void 0},h(o.prototype),o.prototype._setScale=function(){this.scale=new l(1/this.xRange.range(),1/this.yRange.range(),1/this.zRange.range()),this.keepAspectRatio&&(this.scale.x<this.scale.y?this.scale.y=this.scale.x:this.scale.x=this.scale.y),this.scale.z*=this.verticalRatio,void 0!==this.valueRange&&(this.scale.value=1/this.valueRange.range());var t=this.xRange.center()*this.scale.x,e=this.yRange.center()*this.scale.y,i=this.zRange.center()*this.scale.z;this.camera.setArmLocation(t,e,i)},o.prototype._convert3Dto2D=function(t){var e=this._convertPointToTranslation(t);return this._convertTranslationToScreen(e)},o.prototype._convertPointToTranslation=function(t){var e=this.camera.getCameraLocation(),i=this.camera.getCameraRotation(),o=t.x*this.scale.x,n=t.y*this.scale.y,s=t.z*this.scale.z,r=e.x,a=e.y,h=e.z,d=Math.sin(i.x),u=Math.cos(i.x),c=Math.sin(i.y),p=Math.cos(i.y),f=Math.sin(i.z),m=Math.cos(i.z);return new l(p*(f*(n-a)+m*(o-r))-c*(s-h),d*(p*(s-h)+c*(f*(n-a)+m*(o-r)))+u*(m*(n-a)-f*(o-r)),u*(p*(s-h)+c*(f*(n-a)+m*(o-r)))-d*(m*(n-a)-f*(o-r)))},o.prototype._convertTranslationToScreen=function(t){var e,i,o=this.eye.x,n=this.eye.y,s=this.eye.z,r=t.x,a=t.y,h=t.z;return this.showPerspective?(e=s/h*(r-o),i=s/h*(a-n)):(e=r*(-s/this.camera.getArmLength()),i=a*(-s/this.camera.getArmLength())),new u(this.currentXCenter+e*this.frame.canvas.clientWidth,this.currentYCenter-i*this.frame.canvas.clientWidth)},o.prototype._calcTranslations=function(t){for(var e=0;e<t.length;e++){var i=t[e];i.trans=this._convertPointToTranslation(i.point),i.screen=this._convertTranslationToScreen(i.trans);var o=this._convertPointToTranslation(i.bottom);i.dist=this.showPerspective?o.length():-o.z}var n=function(t,e){return e.dist-t.dist};t.sort(n)},o.prototype._initializeRanges=function(){var t=this.dataGroup;this.xRange=t.xRange,this.yRange=t.yRange,this.zRange=t.zRange,this.valueRange=t.valueRange,this.xStep=t.xStep,this.yStep=t.yStep,this.zStep=t.zStep,this.xBarWidth=t.xBarWidth,this.yBarWidth=t.yBarWidth,this.colX=t.colX,this.colY=t.colY,this.colZ=t.colZ,this.colValue=t.colValue,this._setScale()},o.prototype.getDataPoints=function(t){for(var e=[],i=0;i<t.length;i++){var o=new l;o.x=t[i][this.colX]||0,o.y=t[i][this.colY]||0,o.z=t[i][this.colZ]||0,o.data=t[i],void 0!==this.colValue&&(o.value=t[i][this.colValue]||0);var n={};n.point=o,n.bottom=new l(o.x,o.y,this.zRange.min),n.trans=void 0,n.screen=void 0,e.push(n)}return e},o.prototype._getDataPoints=function(t){var e,i,n,s,r=[];if(this.style===o.STYLE.GRID||this.style===o.STYLE.SURFACE){var a=this.dataGroup.getDistinctValues(this.colX,t),h=this.dataGroup.getDistinctValues(this.colY,t);r=this.getDataPoints(t);var d=[];for(n=0;n<r.length;n++){s=r[n];var l=a.indexOf(s.point.x),u=h.indexOf(s.point.y);void 0===d[l]&&(d[l]=[]),d[l][u]=s}for(e=0;e<d.length;e++)for(i=0;i<d[e].length;i++)d[e][i]&&(d[e][i].pointRight=e<d.length-1?d[e+1][i]:void 0,d[e][i].pointTop=i<d[e].length-1?d[e][i+1]:void 0,d[e][i].pointCross=e<d.length-1&&i<d[e].length-1?d[e+1][i+1]:void 0)}else if(this._checkValueField(t),r=this.getDataPoints(t),this.style===o.STYLE.LINE)for(n=0;n<r.length;n++)n>0&&(r[n-1].pointNext=r[n]);return r},o.prototype.create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);this.frame=document.createElement("div"),this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas);var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t),this.frame.filter=document.createElement("div"),this.frame.filter.style.position="absolute",this.frame.filter.style.bottom="0px",this.frame.filter.style.left="0px",this.frame.filter.style.width="100%",this.frame.appendChild(this.frame.filter);var e=this,i=function(t){e._onMouseDown(t)},o=function(t){e._onTouchStart(t)},n=function(t){e._onWheel(t)},s=function(t){e._onTooltip(t)},r=function(t){e._onClick(t)};d.addEventListener(this.frame.canvas,"mousedown",i),d.addEventListener(this.frame.canvas,"touchstart",o),d.addEventListener(this.frame.canvas,"mousewheel",n),d.addEventListener(this.frame.canvas,"mousemove",s),d.addEventListener(this.frame.canvas,"click",r),this.containerElement.appendChild(this.frame)},o.prototype._setSize=function(t,e){this.frame.style.width=t,this.frame.style.height=e,this._resizeCanvas()},o.prototype._resizeCanvas=function(){this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth,this.frame.canvas.height=this.frame.canvas.clientHeight,this.frame.filter.style.width=this.frame.canvas.clientWidth-20+"px"},o.prototype.animationStart=function(){if(this.animationAutoStart&&this.dataGroup.dataFilter){if(!this.frame.filter||!this.frame.filter.slider)throw new Error("No animation available");this.frame.filter.slider.play()}},o.prototype.animationStop=function(){this.frame.filter&&this.frame.filter.slider&&this.frame.filter.slider.stop()},o.prototype._resizeCenter=function(){"%"===this.xCenter.charAt(this.xCenter.length-1)?this.currentXCenter=parseFloat(this.xCenter)/100*this.frame.canvas.clientWidth:this.currentXCenter=parseFloat(this.xCenter),"%"===this.yCenter.charAt(this.yCenter.length-1)?this.currentYCenter=parseFloat(this.yCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight):this.currentYCenter=parseFloat(this.yCenter)},o.prototype.getCameraPosition=function(){var t=this.camera.getArmRotation();return t.distance=this.camera.getArmLength(),t},o.prototype._readData=function(t){this.dataPoints=this.dataGroup.initializeData(this,t,this.style),this._initializeRanges(),this._redrawFilter()},o.prototype.setData=function(t){void 0!==t&&null!==t&&(this._readData(t),this.redraw(),this.animationStart())},o.prototype.setOptions=function(t){if(void 0!==t){!0===m.validate(t,b)&&console.log("%cErrors have been found in the supplied options object.",g),this.animationStop(),f.setOptions(t,this),this.setPointDrawingMethod(),this._setSize(this.width,this.height),this.setData(this.dataGroup.getDataTable()),this.animationStart()}},o.prototype.setPointDrawingMethod=function(){var t=void 0;switch(this.style){case o.STYLE.BAR:t=o.prototype._redrawBarGraphPoint;break;case o.STYLE.BARCOLOR:t=o.prototype._redrawBarColorGraphPoint;break;case o.STYLE.BARSIZE:t=o.prototype._redrawBarSizeGraphPoint;break;case o.STYLE.DOT:t=o.prototype._redrawDotGraphPoint;break;case o.STYLE.DOTLINE:t=o.prototype._redrawDotLineGraphPoint;break;case o.STYLE.DOTCOLOR:t=o.prototype._redrawDotColorGraphPoint;break;case o.STYLE.DOTSIZE:t=o.prototype._redrawDotSizeGraphPoint;break;case o.STYLE.SURFACE:t=o.prototype._redrawSurfaceGraphPoint;break;case o.STYLE.GRID:t=o.prototype._redrawGridGraphPoint;break;case o.STYLE.LINE:t=o.prototype._redrawLineGraphPoint;break;default:throw new Error("Can not determine point drawing method for graph style '"+this.style+"'")}this._pointDrawingMethod=t},o.prototype.redraw=function(){if(void 0===this.dataPoints)throw new Error("Graph data not initialized");this._resizeCanvas(),this._resizeCenter(),this._redrawSlider(),this._redrawClear(),this._redrawAxis(),this._redrawDataGraph(),this._redrawInfo(),this._redrawLegend()},o.prototype._getContext=function(){var t=this.frame.canvas,e=t.getContext("2d");return e.lineJoin="round",e.lineCap="round",e},o.prototype._redrawClear=function(){var t=this.frame.canvas;t.getContext("2d").clearRect(0,0,t.width,t.height)},o.prototype._dotSize=function(){return this.frame.clientWidth*this.dotSizeRatio},o.prototype._getLegendWidth=function(){var t;if(this.style===o.STYLE.DOTSIZE){t=this._dotSize()*this.dotSizeMaxFraction}else t=this.style===o.STYLE.BARSIZE?this.xBarWidth:20;return t},o.prototype._redrawLegend=function(){if(!0===this.showLegend&&this.style!==o.STYLE.LINE&&this.style!==o.STYLE.BARSIZE){var t=this.style===o.STYLE.BARSIZE||this.style===o.STYLE.DOTSIZE,e=this.style===o.STYLE.DOTSIZE||this.style===o.STYLE.DOTCOLOR||this.style===o.STYLE.BARCOLOR,i=Math.max(.25*this.frame.clientHeight,100),n=this.margin,s=this._getLegendWidth(),r=this.frame.clientWidth-this.margin,a=r-s,h=n+i,d=this._getContext();if(d.lineWidth=1,d.font="14px arial",!1===t){var l,c=i;for(l=0;l<c;l++){var f=(l-0)/(c-0),m=240*f,v=this._hsv2rgb(m,1,1);d.strokeStyle=v,d.beginPath(),d.moveTo(a,n+l),d.lineTo(r,n+l),d.stroke()}d.strokeStyle=this.axisColor,d.strokeRect(a,n,s,i)}else{var g;this.style===o.STYLE.DOTSIZE?g=s*(this.dotSizeMinFraction/this.dotSizeMaxFraction):(this.style,o.STYLE.BARSIZE),d.strokeStyle=this.axisColor,d.fillStyle=this.dataColor.fill,d.beginPath(),d.moveTo(a,n),d.lineTo(r,n),d.lineTo(a+g,h),d.lineTo(a,h),d.closePath(),d.fill(),d.stroke()}var y=e?this.valueRange.min:this.zRange.min,b=e?this.valueRange.max:this.zRange.max,_=new p(y,b,(b-y)/5,!0);_.start(!0);for(var w,x;!_.end();)l=h-(_.getCurrent()-y)/(b-y)*i,w=new u(a-5,l),x=new u(a,l),this._line(d,w,x),d.textAlign="right",d.textBaseline="middle",d.fillStyle=this.axisColor,d.fillText(_.getCurrent(),a-10,l),_.next();d.textAlign="right",d.textBaseline="top";var k=this.legendLabel;d.fillText(k,r,h+this.margin)}},o.prototype._redrawFilter=function(){var t=this.dataGroup.dataFilter,e=this.frame.filter;if(e.innerHTML="",!t)return void(e.slider=void 0);var i={visible:this.showAnimationControls},o=new c(e,i);e.slider=o,e.style.padding="10px",o.setValues(t.values),o.setPlayInterval(this.animationInterval);var n=this,s=function(){var t=n.dataGroup.dataFilter,e=o.getIndex();t.selectValue(e),n.dataPoints=t._getDataPoints(),n.redraw()};o.setOnChangeCallback(s)},o.prototype._redrawSlider=function(){void 0!==this.frame.filter.slider&&this.frame.filter.slider.redraw()},o.prototype._redrawInfo=function(){var t=this.dataGroup.getInfo();if(void 0!==t){var e=this._getContext();e.font="14px arial",e.lineStyle="gray",e.fillStyle="gray",e.textAlign="left",e.textBaseline="top";var i=this.margin,o=this.margin;e.fillText(t,i,o)}},o.prototype._line=function(t,e,i,o){void 0!==o&&(t.strokeStyle=o),t.beginPath(),t.moveTo(e.x,e.y),t.lineTo(i.x,i.y),t.stroke()},o.prototype.drawAxisLabelX=function(t,e,i,o,n){void 0===n&&(n=0);var s=this._convert3Dto2D(e)
+;Math.cos(2*o)>0?(t.textAlign="center",t.textBaseline="top",s.y+=n):Math.sin(2*o)<0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(i,s.x,s.y)},o.prototype.drawAxisLabelY=function(t,e,i,o,n){void 0===n&&(n=0);var s=this._convert3Dto2D(e);Math.cos(2*o)<0?(t.textAlign="center",t.textBaseline="top",s.y+=n):Math.sin(2*o)>0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(i,s.x,s.y)},o.prototype.drawAxisLabelZ=function(t,e,i,o){void 0===o&&(o=0);var n=this._convert3Dto2D(e);t.textAlign="right",t.textBaseline="middle",t.fillStyle=this.axisColor,t.fillText(i,n.x-o,n.y)},o.prototype._line3d=function(t,e,i,o){var n=this._convert3Dto2D(e),s=this._convert3Dto2D(i);this._line(t,n,s,o)},o.prototype._redrawAxis=function(){var t,e,i,o,n,s,r,a,h,d,c,f=this._getContext();f.font=24/this.camera.getArmLength()+"px arial";var m,v=.025/this.scale.x,g=.025/this.scale.y,y=5/this.camera.getArmLength(),b=this.camera.getArmRotation().horizontal,_=new u(Math.cos(b),Math.sin(b)),w=this.xRange,x=this.yRange,k=this.zRange;for(f.lineWidth=1,o=void 0===this.defaultXStep,i=new p(w.min,w.max,this.xStep,o),i.start(!0);!i.end();){var S=i.getCurrent();if(this.showGrid?(t=new l(S,x.min,k.min),e=new l(S,x.max,k.min),this._line3d(f,t,e,this.gridColor)):this.showXAxis&&(t=new l(S,x.min,k.min),e=new l(S,x.min+v,k.min),this._line3d(f,t,e,this.axisColor),t=new l(S,x.max,k.min),e=new l(S,x.max-v,k.min),this._line3d(f,t,e,this.axisColor)),this.showXAxis){r=_.x>0?x.min:x.max,m=new l(S,r,k.min);var D="  "+this.xValueLabel(S)+"  ";this.drawAxisLabelX(f,m,D,b,y)}i.next()}for(f.lineWidth=1,o=void 0===this.defaultYStep,i=new p(x.min,x.max,this.yStep,o),i.start(!0);!i.end();){var M=i.getCurrent();if(this.showGrid?(t=new l(w.min,M,k.min),e=new l(w.max,M,k.min),this._line3d(f,t,e,this.gridColor)):this.showYAxis&&(t=new l(w.min,M,k.min),e=new l(w.min+g,M,k.min),this._line3d(f,t,e,this.axisColor),t=new l(w.max,M,k.min),e=new l(w.max-g,M,k.min),this._line3d(f,t,e,this.axisColor)),this.showYAxis){s=_.y>0?w.min:w.max,m=new l(s,M,k.min);var C="  "+this.yValueLabel(M)+"  ";this.drawAxisLabelY(f,m,C,b,y)}i.next()}if(this.showZAxis){for(f.lineWidth=1,o=void 0===this.defaultZStep,i=new p(k.min,k.max,this.zStep,o),i.start(!0),s=_.x>0?w.min:w.max,r=_.y<0?x.min:x.max;!i.end();){var O=i.getCurrent(),E=new l(s,r,O),T=this._convert3Dto2D(E);e=new u(T.x-y,T.y),this._line(f,T,e,this.axisColor);var P=this.zValueLabel(O)+" ";this.drawAxisLabelZ(f,E,P,5),i.next()}f.lineWidth=1,t=new l(s,r,k.min),e=new l(s,r,k.max),this._line3d(f,t,e,this.axisColor)}if(this.showXAxis){var I,N;f.lineWidth=1,I=new l(w.min,x.min,k.min),N=new l(w.max,x.min,k.min),this._line3d(f,I,N,this.axisColor),I=new l(w.min,x.max,k.min),N=new l(w.max,x.max,k.min),this._line3d(f,I,N,this.axisColor)}this.showYAxis&&(f.lineWidth=1,t=new l(w.min,x.min,k.min),e=new l(w.min,x.max,k.min),this._line3d(f,t,e,this.axisColor),t=new l(w.max,x.min,k.min),e=new l(w.max,x.max,k.min),this._line3d(f,t,e,this.axisColor));var R=this.xLabel;R.length>0&&this.showXAxis&&(c=.1/this.scale.y,s=(w.max+3*w.min)/4,r=_.x>0?x.min-c:x.max+c,n=new l(s,r,k.min),this.drawAxisLabelX(f,n,R,b));var A=this.yLabel;A.length>0&&this.showYAxis&&(d=.1/this.scale.x,s=_.y>0?w.min-d:w.max+d,r=(x.max+3*x.min)/4,n=new l(s,r,k.min),this.drawAxisLabelY(f,n,A,b));var z=this.zLabel;z.length>0&&this.showZAxis&&(h=30,s=_.x>0?w.min:w.max,r=_.y<0?x.min:x.max,a=(k.max+3*k.min)/4,n=new l(s,r,a),this.drawAxisLabelZ(f,n,z,h))},o.prototype._hsv2rgb=function(t,e,i){var o,n,s,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:o=r,n=h,s=0;break;case 1:o=h,n=r,s=0;break;case 2:o=0,n=r,s=h;break;case 3:o=0,n=h,s=r;break;case 4:o=h,n=0,s=r;break;case 5:o=r,n=0,s=h;break;default:o=0,n=0,s=0}return"RGB("+parseInt(255*o)+","+parseInt(255*n)+","+parseInt(255*s)+")"},o.prototype._getStrokeWidth=function(t){return void 0!==t?this.showPerspective?1/-t.trans.z*this.dataColor.strokeWidth:-this.eye.z/this.camera.getArmLength()*this.dataColor.strokeWidth:this.dataColor.strokeWidth},o.prototype._redrawBar=function(t,e,i,o,n,s){var r,a=this,h=e.point,d=this.zRange.min,u=[{point:new l(h.x-i,h.y-o,h.z)},{point:new l(h.x+i,h.y-o,h.z)},{point:new l(h.x+i,h.y+o,h.z)},{point:new l(h.x-i,h.y+o,h.z)}],c=[{point:new l(h.x-i,h.y-o,d)},{point:new l(h.x+i,h.y-o,d)},{point:new l(h.x+i,h.y+o,d)},{point:new l(h.x-i,h.y+o,d)}];u.forEach(function(t){t.screen=a._convert3Dto2D(t.point)}),c.forEach(function(t){t.screen=a._convert3Dto2D(t.point)});var p=[{corners:u,center:l.avg(c[0].point,c[2].point)},{corners:[u[0],u[1],c[1],c[0]],center:l.avg(c[1].point,c[0].point)},{corners:[u[1],u[2],c[2],c[1]],center:l.avg(c[2].point,c[1].point)},{corners:[u[2],u[3],c[3],c[2]],center:l.avg(c[3].point,c[2].point)},{corners:[u[3],u[0],c[0],c[3]],center:l.avg(c[0].point,c[3].point)}];e.surfaces=p;for(var f=0;f<p.length;f++){r=p[f];var m=this._convertPointToTranslation(r.center);r.dist=this.showPerspective?m.length():-m.z}p.sort(function(t,e){var i=e.dist-t.dist;return i||(t.corners===u?1:e.corners===u?-1:0)}),t.lineWidth=this._getStrokeWidth(e),t.strokeStyle=s,t.fillStyle=n;for(var v=2;v<p.length;v++)r=p[v],this._polygon(t,r.corners)},o.prototype._polygon=function(t,e,i,o){if(!(e.length<2)){void 0!==i&&(t.fillStyle=i),void 0!==o&&(t.strokeStyle=o),t.beginPath(),t.moveTo(e[0].screen.x,e[0].screen.y);for(var n=1;n<e.length;++n){var s=e[n];t.lineTo(s.screen.x,s.screen.y)}t.closePath(),t.fill(),t.stroke()}},o.prototype._drawCircle=function(t,e,i,o,n){var s=this._calcRadius(e,n);t.lineWidth=this._getStrokeWidth(e),t.strokeStyle=o,t.fillStyle=i,t.beginPath(),t.arc(e.screen.x,e.screen.y,s,0,2*Math.PI,!0),t.fill(),t.stroke()},o.prototype._getColorsRegular=function(t){var e=240*(1-(t.point.z-this.zRange.min)*this.scale.z/this.verticalRatio);return{fill:this._hsv2rgb(e,1,1),border:this._hsv2rgb(e,1,.8)}},o.prototype._getColorsColor=function(t){var e,i;if("string"==typeof t.point.value)e=t.point.value,i=t.point.value;else{var o=240*(1-(t.point.value-this.valueRange.min)*this.scale.value);e=this._hsv2rgb(o,1,1),i=this._hsv2rgb(o,1,.8)}return{fill:e,border:i}},o.prototype._getColorsSize=function(){return{fill:this.dataColor.fill,border:this.dataColor.stroke}},o.prototype._calcRadius=function(t,e){void 0===e&&(e=this._dotSize());var i;return i=this.showPerspective?e/-t.trans.z:e*(-this.eye.z/this.camera.getArmLength()),i<0&&(i=0),i},o.prototype._redrawBarGraphPoint=function(t,e){var i=this.xBarWidth/2,o=this.yBarWidth/2,n=this._getColorsRegular(e);this._redrawBar(t,e,i,o,n.fill,n.border)},o.prototype._redrawBarColorGraphPoint=function(t,e){var i=this.xBarWidth/2,o=this.yBarWidth/2,n=this._getColorsColor(e);this._redrawBar(t,e,i,o,n.fill,n.border)},o.prototype._redrawBarSizeGraphPoint=function(t,e){var i=(e.point.value-this.valueRange.min)/this.valueRange.range(),o=this.xBarWidth/2*(.8*i+.2),n=this.yBarWidth/2*(.8*i+.2),s=this._getColorsSize();this._redrawBar(t,e,o,n,s.fill,s.border)},o.prototype._redrawDotGraphPoint=function(t,e){var i=this._getColorsRegular(e);this._drawCircle(t,e,i.fill,i.border)},o.prototype._redrawDotLineGraphPoint=function(t,e){var i=this._convert3Dto2D(e.bottom);t.lineWidth=1,this._line(t,i,e.screen,this.gridColor),this._redrawDotGraphPoint(t,e)},o.prototype._redrawDotColorGraphPoint=function(t,e){var i=this._getColorsColor(e);this._drawCircle(t,e,i.fill,i.border)},o.prototype._redrawDotSizeGraphPoint=function(t,e){var i=this._dotSize(),o=(e.point.value-this.valueRange.min)/this.valueRange.range(),n=i*this.dotSizeMinFraction,s=i*this.dotSizeMaxFraction-n,r=n+s*o,a=this._getColorsSize();this._drawCircle(t,e,a.fill,a.border,r)},o.prototype._redrawSurfaceGraphPoint=function(t,e){var i=e.pointRight,o=e.pointTop,n=e.pointCross;if(void 0!==e&&void 0!==i&&void 0!==o&&void 0!==n){var s,r,a=!0;if(this.showGrayBottom||this.showShadow){var h=l.subtract(n.trans,e.trans),d=l.subtract(o.trans,i.trans),u=l.crossProduct(h,d),c=u.length();a=u.z>0}if(a){var p,f=(e.point.z+i.point.z+o.point.z+n.point.z)/4,m=240*(1-(f-this.zRange.min)*this.scale.z/this.verticalRatio);this.showShadow?(p=Math.min(1+u.x/c/2,1),s=this._hsv2rgb(m,1,p),r=s):(p=1,s=this._hsv2rgb(m,1,p),r=this.axisColor)}else s="gray",r=this.axisColor;t.lineWidth=this._getStrokeWidth(e);var v=[e,i,n,o];this._polygon(t,v,s,r)}},o.prototype._drawGridLine=function(t,e,i){if(void 0!==e&&void 0!==i){var o=(e.point.z+i.point.z)/2,n=240*(1-(o-this.zRange.min)*this.scale.z/this.verticalRatio);t.lineWidth=2*this._getStrokeWidth(e),t.strokeStyle=this._hsv2rgb(n,1,1),this._line(t,e.screen,i.screen)}},o.prototype._redrawGridGraphPoint=function(t,e){this._drawGridLine(t,e,e.pointRight),this._drawGridLine(t,e,e.pointTop)},o.prototype._redrawLineGraphPoint=function(t,e){void 0!==e.pointNext&&(t.lineWidth=this._getStrokeWidth(e),t.strokeStyle=this.dataColor.stroke,this._line(t,e.screen,e.pointNext.screen))},o.prototype._redrawDataGraph=function(){var t,e=this._getContext();if(!(void 0===this.dataPoints||this.dataPoints.length<=0))for(this._calcTranslations(this.dataPoints),t=0;t<this.dataPoints.length;t++){var i=this.dataPoints[t];this._pointDrawingMethod.call(this,e,i)}},o.prototype._storeMousePosition=function(t){this.startMouseX=n(t),this.startMouseY=s(t),this._startCameraOffset=this.camera.getOffset()},o.prototype._onMouseDown=function(t){if(t=t||window.event,this.leftButtonDown&&this._onMouseUp(t),this.leftButtonDown=t.which?1===t.which:1===t.button,this.leftButtonDown||this.touchDown){this._storeMousePosition(t),this.startStart=new Date(this.start),this.startEnd=new Date(this.end),this.startArmRotation=this.camera.getArmRotation(),this.frame.style.cursor="move";var e=this;this.onmousemove=function(t){e._onMouseMove(t)},this.onmouseup=function(t){e._onMouseUp(t)},d.addEventListener(document,"mousemove",e.onmousemove),d.addEventListener(document,"mouseup",e.onmouseup),d.preventDefault(t)}},o.prototype._onMouseMove=function(t){this.moving=!0,t=t||window.event;var e=parseFloat(n(t))-this.startMouseX,i=parseFloat(s(t))-this.startMouseY;if(t&&!0===t.ctrlKey){var o=.5*this.frame.clientWidth,r=.5*this.frame.clientHeight,a=(this._startCameraOffset.x||0)-e/o*this.camera.armLength*.8,h=(this._startCameraOffset.y||0)+i/r*this.camera.armLength*.8;this.camera.setOffset(a,h),this._storeMousePosition(t)}else{var l=this.startArmRotation.horizontal+e/200,u=this.startArmRotation.vertical+i/200,c=Math.sin(4/360*2*Math.PI);Math.abs(Math.sin(l))<c&&(l=Math.round(l/Math.PI)*Math.PI-.001),Math.abs(Math.cos(l))<c&&(l=(Math.round(l/Math.PI-.5)+.5)*Math.PI-.001),Math.abs(Math.sin(u))<c&&(u=Math.round(u/Math.PI)*Math.PI),Math.abs(Math.cos(u))<c&&(u=(Math.round(u/Math.PI-.5)+.5)*Math.PI),this.camera.setArmRotation(l,u)}this.redraw();var p=this.getCameraPosition();this.emit("cameraPositionChange",p),d.preventDefault(t)},o.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",this.leftButtonDown=!1,d.removeEventListener(document,"mousemove",this.onmousemove),d.removeEventListener(document,"mouseup",this.onmouseup),d.preventDefault(t)},o.prototype._onClick=function(t){if(this.onclick_callback){if(this.moving)this.moving=!1;else{var e=this.frame.getBoundingClientRect(),i=n(t)-e.left,o=s(t)-e.top,r=this._dataPointFromXY(i,o);r&&this.onclick_callback(r.point.data)}d.preventDefault(t)}},o.prototype._onTooltip=function(t){var e=this.frame.getBoundingClientRect(),i=n(t)-e.left,o=s(t)-e.top;if(this.showTooltip){if(this.tooltipTimeout&&clearTimeout(this.tooltipTimeout),this.leftButtonDown)return void this._hideTooltip();if(this.tooltip&&this.tooltip.dataPoint){var r=this._dataPointFromXY(i,o);r!==this.tooltip.dataPoint&&(r?this._showTooltip(r):this._hideTooltip())}else{var a=this;this.tooltipTimeout=setTimeout(function(){a.tooltipTimeout=null;var t=a._dataPointFromXY(i,o);t&&a._showTooltip(t)},300)}}},o.prototype._onTouchStart=function(t){this.touchDown=!0;var e=this;this.ontouchmove=function(t){e._onTouchMove(t)},this.ontouchend=function(t){e._onTouchEnd(t)},d.addEventListener(document,"touchmove",e.ontouchmove),d.addEventListener(document,"touchend",e.ontouchend),this._onMouseDown(t)},o.prototype._onTouchMove=function(t){this._onMouseMove(t)},o.prototype._onTouchEnd=function(t){this.touchDown=!1,d.removeEventListener(document,"touchmove",this.ontouchmove),d.removeEventListener(document,"touchend",this.ontouchend),this._onMouseUp(t)},o.prototype._onWheel=function(t){t||(t=window.event);var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i=this.camera.getArmLength(),o=i*(1-e/10);this.camera.setArmLength(o),this.redraw(),this._hideTooltip()}var n=this.getCameraPosition();this.emit("cameraPositionChange",n),d.preventDefault(t)},o.prototype._insideTriangle=function(t,e){function i(t){return t>0?1:t<0?-1:0}var o=e[0],n=e[1],s=e[2],r=i((n.x-o.x)*(t.y-o.y)-(n.y-o.y)*(t.x-o.x)),a=i((s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x)),h=i((o.x-s.x)*(t.y-s.y)-(o.y-s.y)*(t.x-s.x));return!(0!=r&&0!=a&&r!=a||0!=a&&0!=h&&a!=h||0!=r&&0!=h&&r!=h)},o.prototype._dataPointFromXY=function(t,e){var i,n=null,s=null,r=null,a=new u(t,e);if(this.style===o.STYLE.BAR||this.style===o.STYLE.BARCOLOR||this.style===o.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){n=this.dataPoints[i];var h=n.surfaces;if(h)for(var d=h.length-1;d>=0;d--){var l=h[d],c=l.corners,p=[c[0].screen,c[1].screen,c[2].screen],f=[c[2].screen,c[3].screen,c[0].screen];if(this._insideTriangle(a,p)||this._insideTriangle(a,f))return n}}else for(i=0;i<this.dataPoints.length;i++){n=this.dataPoints[i];var m=n.screen;if(m){var v=Math.abs(t-m.x),g=Math.abs(e-m.y),y=Math.sqrt(v*v+g*g);(null===r||y<r)&&y<100&&(r=y,s=n)}}return s},o.prototype.hasBars=function(t){return t==o.STYLE.BAR||t==o.STYLE.BARCOLOR||t==o.STYLE.BARSIZE},o.prototype._showTooltip=function(t){var e,i,o;this.tooltip?(e=this.tooltip.dom.content,i=this.tooltip.dom.line,o=this.tooltip.dom.dot):(e=document.createElement("div"),(0,a.default)(e.style,{},this.tooltipStyle.content),e.style.position="absolute",i=document.createElement("div"),(0,a.default)(i.style,{},this.tooltipStyle.line),i.style.position="absolute",o=document.createElement("div"),(0,a.default)(o.style,{},this.tooltipStyle.dot),o.style.position="absolute",this.tooltip={dataPoint:null,dom:{content:e,line:i,dot:o}}),this._hideTooltip(),this.tooltip.dataPoint=t,"function"==typeof this.showTooltip?e.innerHTML=this.showTooltip(t.point):e.innerHTML="<table><tr><td>"+this.xLabel+":</td><td>"+t.point.x+"</td></tr><tr><td>"+this.yLabel+":</td><td>"+t.point.y+"</td></tr><tr><td>"+this.zLabel+":</td><td>"+t.point.z+"</td></tr></table>",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(o);var n=e.offsetWidth,s=e.offsetHeight,r=i.offsetHeight,h=o.offsetWidth,d=o.offsetHeight,l=t.screen.x-n/2;l=Math.min(Math.max(l,10),this.frame.clientWidth-10-n),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-r+"px",e.style.left=l+"px",e.style.top=t.screen.y-r-s+"px",o.style.left=t.screen.x-h/2+"px",o.style.top=t.screen.y-d/2+"px"},o.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},o.prototype.setCameraPosition=function(t){f.setCameraPosition(t,this),this.redraw()},o.prototype.setSize=function(t,e){this._setSize(t,e),this.redraw()},t.exports=o},function(t,e,i){i(163),t.exports=i(7).Object.assign},function(t,e,i){var o=i(17);o(o.S+o.F,"Object",{assign:i(164)})},function(t,e,i){var o=i(33),n=i(63),s=i(42),r=i(41),a=i(78),h=Object.assign;t.exports=!h||i(28)(function(){var t={},e={},i=Symbol(),o="abcdefghijklmnopqrst";return t[i]=7,o.split("").forEach(function(t){e[t]=t}),7!=h({},t)[i]||Object.keys(h({},e)).join("")!=o})?function(t,e){for(var i=r(t),h=arguments.length,d=1,l=n.f,u=s.f;h>d;)for(var c,p=a(arguments[d++]),f=l?o(p).concat(l(p)):o(p),m=f.length,v=0;m>v;)u.call(p,c=f[v++])&&(i[c]=p[c]);return i}:h},function(t,e,i){t.exports={default:i(166),__esModule:!0}},function(t,e,i){i(167),t.exports=i(7).Math.sign},function(t,e,i){var o=i(17);o(o.S,"Math",{sign:i(168)})},function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,e,i){t.exports={default:i(170),__esModule:!0}},function(t,e,i){i(171);var o=i(7).Object;t.exports=function(t,e,i){return o.defineProperty(t,e,i)}},function(t,e,i){var o=i(17);o(o.S+o.F*!i(21),"Object",{defineProperty:i(20).f})},function(t,e,i){Object.defineProperty(e,"__esModule",{value:!0});var o="string",n="boolean",s="number",r={fill:{string:o},stroke:{string:o},strokeWidth:{number:s},__type__:{string:o,object:"object",undefined:"undefined"}},a={animationAutoStart:{boolean:n,undefined:"undefined"},animationInterval:{number:s},animationPreload:{boolean:n},axisColor:{string:o},backgroundColor:r,xBarWidth:{number:s,undefined:"undefined"},yBarWidth:{number:s,undefined:"undefined"},cameraPosition:{distance:{number:s},horizontal:{number:s},vertical:{number:s},__type__:{object:"object"}},xCenter:{string:o},yCenter:{string:o},dataColor:r,dotSizeMinFraction:{number:s},dotSizeMaxFraction:{number:s},dotSizeRatio:{number:s},filterLabel:{string:o},gridColor:{string:o},onclick:{function:"function"},keepAspectRatio:{boolean:n},xLabel:{string:o},yLabel:{string:o},zLabel:{string:o},legendLabel:{string:o},xMin:{number:s,undefined:"undefined"},yMin:{number:s,undefined:"undefined"},zMin:{number:s,undefined:"undefined"},xMax:{number:s,undefined:"undefined"},yMax:{number:s,undefined:"undefined"},zMax:{number:s,undefined:"undefined"},showAnimationControls:{boolean:n,undefined:"undefined"},showGrid:{boolean:n},showLegend:{boolean:n,undefined:"undefined"},showPerspective:{boolean:n},showShadow:{boolean:n},showXAxis:{boolean:n},showYAxis:{boolean:n},showZAxis:{boolean:n},xStep:{number:s,undefined:"undefined"},yStep:{number:s,undefined:"undefined"},zStep:{number:s,undefined:"undefined"},style:{number:s,string:["bar","bar-color","bar-size","dot","dot-line","dot-color","dot-size","line","grid","surface"]},tooltip:{boolean:n,function:"function"},tooltipStyle:{content:{color:{string:o},background:{string:o},border:{string:o},borderRadius:{string:o},boxShadow:{string:o},padding:{string:o},__type__:{object:"object"}},line:{borderLeft:{string:o},height:{string:o},width:{string:o},__type__:{object:"object"}},dot:{border:{string:o},borderRadius:{string:o},height:{string:o},width:{string:o},__type__:{object:"object"}},__type__:{object:"object"}},xValueLabel:{function:"function"},yValueLabel:{function:"function"},zValueLabel:{function:"function"},valueMax:{number:s,undefined:"undefined"},valueMin:{number:s,undefined:"undefined"},verticalRatio:{number:s},height:{string:o},width:{string:o},__type__:{object:"object"}};e.allOptions=a},function(t,e,i){function o(){this.dataTable=null}var n=i(11),s=i(12),r=i(174),a=i(96),h=i(94),d=i(34);o.prototype.initializeData=function(t,e,i){if(void 0!==e){Array.isArray(e)&&(e=new n(e));var o;if(!(e instanceof n||e instanceof s))throw new Error("Array, DataSet, or DataView expected");if(o=e.get(),0!=o.length){this.style=i,this.dataSet&&this.dataSet.off("*",this._onChange),this.dataSet=e,this.dataTable=o;var r=this;this._onChange=function(){t.setData(r.dataSet)},this.dataSet.on("*",this._onChange),this.colX="x",this.colY="y",this.colZ="z";var h=t.hasBars(i);if(h&&(void 0!==t.defaultXBarWidth?this.xBarWidth=t.defaultXBarWidth:this.xBarWidth=this.getSmallestDifference(o,this.colX)||1,void 0!==t.defaultYBarWidth?this.yBarWidth=t.defaultYBarWidth:this.yBarWidth=this.getSmallestDifference(o,this.colY)||1),this._initializeRange(o,this.colX,t,h),this._initializeRange(o,this.colY,t,h),this._initializeRange(o,this.colZ,t,!1),o[0].hasOwnProperty("style")){this.colValue="style";var d=this.getColumnRange(o,this.colValue);this._setRangeDefaults(d,t.defaultValueMin,t.defaultValueMax),this.valueRange=d}this.getDataTable()[0].hasOwnProperty("filter")&&void 0===this.dataFilter&&(this.dataFilter=new a(this,"filter",t),this.dataFilter.setOnLoadCallback(function(){t.redraw()}));return this.dataFilter?this.dataFilter._getDataPoints():this._getDataPoints(this.getDataTable())}}},o.prototype._collectRangeSettings=function(t,e){if(-1==["x","y","z"].indexOf(t))throw new Error("Column '"+t+"' invalid");var i=t.toUpperCase();return{barWidth:this[t+"BarWidth"],min:e["default"+i+"Min"],max:e["default"+i+"Max"],step:e["default"+i+"Step"],range_label:t+"Range",step_label:t+"Step"}},o.prototype._initializeRange=function(t,e,i,o){var n=this._collectRangeSettings(e,i),s=this.getColumnRange(t,e);o&&"z"!=e&&s.expand(n.barWidth/2),this._setRangeDefaults(s,n.min,n.max),this[n.range_label]=s,this[n.step_label]=void 0!==n.step?n.step:s.range()/5},o.prototype.getDistinctValues=function(t,e){void 0===e&&(e=this.dataTable);for(var i=[],o=0;o<e.length;o++){var n=e[o][t]||0;-1===i.indexOf(n)&&i.push(n)}return i.sort(function(t,e){return t-e})},o.prototype.getSmallestDifference=function(t,e){for(var i=this.getDistinctValues(t,e),o=null,n=1;n<i.length;n++){var s=i[n]-i[n-1];(null==o||o>s)&&(o=s)}return o},o.prototype.getColumnRange=function(t,e){for(var i=new r,o=0;o<t.length;o++){var n=t[o][e];i.adjust(n)}return i},o.prototype.getNumberOfRows=function(){return this.dataTable.length},o.prototype._setRangeDefaults=function(t,e,i){void 0!==e&&(t.min=e),void 0!==i&&(t.max=i),t.max<=t.min&&(t.max=t.min+1)},o.prototype.getDataTable=function(){return this.dataTable},o.prototype.getDataSet=function(){return this.dataSet},o.prototype.getDataPoints=function(t){for(var e=[],i=0;i<t.length;i++){var o=new d;o.x=t[i][this.colX]||0,o.y=t[i][this.colY]||0,o.z=t[i][this.colZ]||0,o.data=t[i],void 0!==this.colValue&&(o.value=t[i][this.colValue]||0);var n={};n.point=o,n.bottom=new d(o.x,o.y,this.zRange.min),n.trans=void 0,n.screen=void 0,e.push(n)}return e},o.prototype.initDataAsMatrix=function(t){var e,i,o,n,s=this.getDistinctValues(this.colX,t),r=this.getDistinctValues(this.colY,t),a=this.getDataPoints(t),h=[];for(o=0;o<a.length;o++){n=a[o];var d=s.indexOf(n.point.x),l=r.indexOf(n.point.y);void 0===h[d]&&(h[d]=[]),h[d][l]=n}for(e=0;e<h.length;e++)for(i=0;i<h[e].length;i++)h[e][i]&&(h[e][i].pointRight=e<h.length-1?h[e+1][i]:void 0,h[e][i].pointTop=i<h[e].length-1?h[e][i+1]:void 0,h[e][i].pointCross=e<h.length-1&&i<h[e].length-1?h[e+1][i+1]:void 0);return a},o.prototype.getInfo=function(){var t=this.dataFilter;if(t)return t.getLabel()+": "+t.getSelectedValue()},o.prototype.reload=function(){this.dataTable&&this.setData(this.dataTable)},o.prototype._getDataPoints=function(t){var e=[];if(this.style===h.STYLE.GRID||this.style===h.STYLE.SURFACE)e=this.initDataAsMatrix(t);else if(this._checkValueField(t),e=this.getDataPoints(t),this.style===h.STYLE.LINE)for(var i=0;i<e.length;i++)i>0&&(e[i-1].pointNext=e[i]);return e},o.prototype._checkValueField=function(t){if(this.style===h.STYLE.BARCOLOR||this.style===h.STYLE.BARSIZE||this.style===h.STYLE.DOTCOLOR||this.style===h.STYLE.DOTSIZE){if(void 0===this.colValue)throw new Error("Expected data to have  field 'style'  for graph style '"+this.style+"'");if(void 0===t[0][this.colValue])throw new Error("Expected data to have  field '"+this.colValue+"'  for graph style '"+this.style+"'")}},t.exports=o},function(t,e,i){function o(){this.min=void 0,this.max=void 0}o.prototype.adjust=function(t){void 0!==t&&((void 0===this.min||this.min>t)&&(this.min=t),(void 0===this.max||this.max<t)&&(this.max=t))},o.prototype.combine=function(t){this.add(t.min),this.add(t.max)},o.prototype.expand=function(t){if(void 0!==t){var e=this.min-t,i=this.max+t;if(e>i)throw new Error("Passed expansion value makes range invalid");this.min=e,this.max=i}},o.prototype.range=function(){return this.max-this.min},o.prototype.center=function(){return(this.min+this.max)/2},t.exports=o},function(t,e,i){var o,n,s;!function(i){n=[],o=i,void 0!==(s="function"==typeof o?o.apply(e,n):o)&&(t.exports=s)}(function(){var t=null;return function e(i,o){function n(t){return t.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0};var o=e.srcEvent.stopPropagation.bind(e.srcEvent);"function"==typeof o&&(e.srcEvent.stopPropagation=function(){o(),e.stopPropagation()}),e.firstTarget=t;for(var n=t;n&&!i;){var s=n.hammer;if(s)for(var r,a=0;a<s.length;a++)if(r=s[a]._handlers[e.type])for(var h=0;h<r.length&&!i;h++)r[h](e);n=n.parentNode}}var r=o||{preventDefault:!1};if(i.Manager){var a=i,h=function(t,i){var o=Object.create(r);return i&&a.assign(o,i),e(new a(t,o),o)};return a.assign(h,a),h.Manager=function(t,i){var o=Object.create(r);return i&&a.assign(o,i),e(new a.Manager(t,o),o)},h}var d=Object.create(i),l=i.element;return l.hammer||(l.hammer=[]),l.hammer.push(d),i.on("hammer.input",function(e){!0!==r.preventDefault&&r.preventDefault!==e.pointerType||e.preventDefault(),e.isFirst&&(t=e.target)}),d._handlers={},d.on=function(t,e){return n(t).forEach(function(t){var o=d._handlers[t];o||(d._handlers[t]=o=[],i.on(t,s)),o.push(e)}),d},d.off=function(t,e){return n(t).forEach(function(t){var o=d._handlers[t];o&&(o=e?o.filter(function(t){return t!==e}):[],o.length>0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){var t=i.element.hammer,e=t.indexOf(d);-1!==e&&t.splice(e,1),t.length||delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;!function(n,s,r,a){function h(t,e,i){return setTimeout(p(t,i),e)}function d(t,e,i){return!!Array.isArray(t)&&(l(t,i[e],i),!0)}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o<t.length;)e.call(i,t[o],o,t),o++;else for(o in t)t.hasOwnProperty(o)&&e.call(i,t[o],o,t)}function u(t,e,i){var o="DEPRECATED METHOD: "+e+"\n"+i+" AT \n";return function(){var e=new Error("get-stack-trace"),i=e&&e.stack?e.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=n.console&&(n.console.warn||n.console.log);return s&&s.call(n.console,o,i),t.apply(this,arguments)}}function c(t,e,i){var o,n=e.prototype;o=t.prototype=Object.create(n),o.constructor=t,o._super=n,i&&ft(o,i)}function p(t,e){return function(){return t.apply(e,arguments)}}function f(t,e){return typeof t==gt?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function v(t,e,i){l(_(e),function(e){t.addEventListener(e,i,!1)})}function g(t,e,i){l(_(e),function(e){t.removeEventListener(e,i,!1)})}function y(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function b(t,e){return t.indexOf(e)>-1}function _(t){return t.trim().split(/\s+/g)}function w(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;o<t.length;){if(i&&t[o][i]==e||!i&&t[o]===e)return o;o++}return-1}function x(t){return Array.prototype.slice.call(t,0)}function k(t,e,i){for(var o=[],n=[],s=0;s<t.length;){var r=e?t[s][e]:t[s];w(n,r)<0&&o.push(t[s]),n[s]=r,s++}return i&&(o=e?o.sort(function(t,i){return t[e]>i[e]}):o.sort()),o}function S(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s<mt.length;){if(i=mt[s],(o=i?i+n:e)in t)return o;s++}return a}function D(){return kt++}function M(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow||n}function C(t,e){var i=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){f(t.options.enable,[t])&&i.handler(e)},this.init()}function O(t){var e=t.options.inputClass;return new(e||(Mt?W:Ct?V:Dt?q:H))(t,E)}function E(t,e,i){var o=i.pointers.length,n=i.changedPointers.length,s=e&Et&&o-n==0,r=e&(Pt|It)&&o-n==0;i.isFirst=!!s,i.isFinal=!!r,s&&(t.session={}),i.eventType=e,T(t,i),t.emit("hammer.input",i),t.recognize(i),t.session.prevInput=i}function T(t,e){var i=t.session,o=e.pointers,n=o.length;i.firstInput||(i.firstInput=N(e)),n>1&&!i.firstMultiple?i.firstMultiple=N(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=R(o);e.timeStamp=_t(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=F(a,h),e.distance=L(a,h),P(i,e),e.offsetDirection=z(e.deltaX,e.deltaY);var d=A(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=d.x,e.overallVelocityY=d.y,e.overallVelocity=bt(d.x)>bt(d.y)?d.x:d.y,e.scale=r?j(r.pointers,o):1,e.rotation=r?B(r.pointers,o):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,I(i,e);var l=t.element;y(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};e.eventType!==Et&&s.eventType!==Pt||(n=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=n.x+(i.x-o.x),e.deltaY=n.y+(i.y-o.y)}function I(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=It&&(h>Ot||r.velocity===a)){var d=e.deltaX-r.deltaX,l=e.deltaY-r.deltaY,u=A(h,d,l);o=u.x,n=u.y,i=bt(u.x)>bt(u.y)?u.x:u.y,s=z(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function N(t){for(var e=[],i=0;i<t.pointers.length;)e[i]={clientX:yt(t.pointers[i].clientX),clientY:yt(t.pointers[i].clientY)},i++;return{timeStamp:_t(),pointers:e,center:R(e),deltaX:t.deltaX,deltaY:t.deltaY}}function R(t){var e=t.length;if(1===e)return{x:yt(t[0].clientX),y:yt(t[0].clientY)};for(var i=0,o=0,n=0;n<e;)i+=t[n].clientX,o+=t[n].clientY,n++;return{x:yt(i/e),y:yt(o/e)}}function A(t,e,i){return{x:e/t||0,y:i/t||0}}function z(t,e){return t===e?Nt:bt(t)>=bt(e)?t<0?Rt:At:e<0?zt:Lt}function L(t,e,i){i||(i=Ht);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function F(t,e,i){i||(i=Ht);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function B(t,e){return F(e[1],e[0],Wt)+F(t[1],t[0],Wt)}function j(t,e){return L(e[0],e[1],Wt)/L(t[0],t[1],Wt)}function H(){this.evEl=Gt,this.evWin=Vt,this.pressed=!1,C.apply(this,arguments)}function W(){this.evEl=Xt,this.evWin=Zt,C.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Y(){this.evTarget=Jt,this.evWin=$t,this.started=!1,C.apply(this,arguments)}function G(t,e){var i=x(t.touches),o=x(t.changedTouches);return e&(Pt|It)&&(i=k(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=te,this.targetIds={},C.apply(this,arguments)}function U(t,e){var i=x(t.touches),o=this.targetIds;if(e&(Et|Tt)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=x(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return y(t.target,h)}),e===Et)for(n=0;n<s.length;)o[s[n].identifier]=!0,n++;for(n=0;n<r.length;)o[r[n].identifier]&&a.push(r[n]),e&(Pt|It)&&delete o[r[n].identifier],n++;return a.length?[k(s.concat(a),"identifier",!0),a]:void 0}function q(){C.apply(this,arguments);var t=p(this.handler,this);this.touch=new V(this.manager,t),this.mouse=new H(this.manager,t),this.primaryTouch=null,this.lastTouches=[]}function X(t,e){t&Et?(this.primaryTouch=e.changedPointers[0].identifier,Z.call(this,e)):t&(Pt|It)&&Z.call(this,e)}function Z(t){var e=t.changedPointers[0];if(e.identifier===this.primaryTouch){var i={x:e.clientX,y:e.clientY};this.lastTouches.push(i);var o=this.lastTouches,n=function(){var t=o.indexOf(i);t>-1&&o.splice(t,1)};setTimeout(n,ee)}}function K(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,o=0;o<this.lastTouches.length;o++){var n=this.lastTouches[o],s=Math.abs(e-n.x),r=Math.abs(i-n.y);if(s<=ie&&r<=ie)return!0}return!1}function J(t,e){this.manager=t,this.set(e)}function $(t){if(b(t,ae))return ae;var e=b(t,he),i=b(t,de);return e&&i?ae:e||i?e?he:de:b(t,re)?re:se}function Q(t){this.options=ft({},this.defaults,t||{}),this.id=D(),this.manager=null,this.options.enable=m(this.options.enable,!0),this.state=ue,this.simultaneous={},this.requireFail=[]}
+function tt(t){return t&ve?"cancel":t&fe?"end":t&pe?"move":t&ce?"start":""}function et(t){return t==Lt?"down":t==zt?"up":t==Rt?"left":t==At?"right":""}function it(t,e){var i=e.manager;return i?i.get(t):t}function ot(){Q.apply(this,arguments)}function nt(){ot.apply(this,arguments),this.pX=null,this.pY=null}function st(){ot.apply(this,arguments)}function rt(){Q.apply(this,arguments),this._timer=null,this._input=null}function at(){ot.apply(this,arguments)}function ht(){ot.apply(this,arguments)}function dt(){Q.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function lt(t,e){return e=e||{},e.recognizers=m(e.recognizers,lt.defaults.preset),new ut(t,e)}function ut(t,e){this.options=ft({},lt.defaults,e||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=t,this.input=O(this),this.touchAction=new J(this,this.options.touchAction),ct(this,!0),l(this.options.recognizers,function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])},this)}function ct(t,e){var i=t.element;if(i.style){var o;l(t.options.cssProps,function(n,s){o=S(i.style,s),e?(t.oldCssProps[o]=i.style[o],i.style[o]=n):i.style[o]=t.oldCssProps[o]||""}),e||(t.oldCssProps={})}}function pt(t,e){var i=s.createEvent("Event");i.initEvent(t,!0,!0),i.gesture=e,e.target.dispatchEvent(i)}var ft,mt=["","webkit","Moz","MS","ms","o"],vt=s.createElement("div"),gt="function",yt=Math.round,bt=Math.abs,_t=Date.now;ft="function"!=typeof Object.assign?function(t){if(t===a||null===t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),i=1;i<arguments.length;i++){var o=arguments[i];if(o!==a&&null!==o)for(var n in o)o.hasOwnProperty(n)&&(e[n]=o[n])}return e}:Object.assign;var wt=u(function(t,e,i){for(var o=Object.keys(e),n=0;n<o.length;)(!i||i&&t[o[n]]===a)&&(t[o[n]]=e[o[n]]),n++;return t},"extend","Use `assign`."),xt=u(function(t,e){return wt(t,e,!0)},"merge","Use `assign`."),kt=1,St=/mobile|tablet|ip(ad|hone|od)|android/i,Dt="ontouchstart"in n,Mt=S(n,"PointerEvent")!==a,Ct=Dt&&St.test(navigator.userAgent),Ot=25,Et=1,Tt=2,Pt=4,It=8,Nt=1,Rt=2,At=4,zt=8,Lt=16,Ft=Rt|At,Bt=zt|Lt,jt=Ft|Bt,Ht=["x","y"],Wt=["clientX","clientY"];C.prototype={handler:function(){},init:function(){this.evEl&&v(this.element,this.evEl,this.domHandler),this.evTarget&&v(this.target,this.evTarget,this.domHandler),this.evWin&&v(M(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&g(this.element,this.evEl,this.domHandler),this.evTarget&&g(this.target,this.evTarget,this.domHandler),this.evWin&&g(M(this.element),this.evWin,this.domHandler)}};var Yt={mousedown:Et,mousemove:Tt,mouseup:Pt},Gt="mousedown",Vt="mousemove mouseup";c(H,C,{handler:function(t){var e=Yt[t.type];e&Et&&0===t.button&&(this.pressed=!0),e&Tt&&1!==t.which&&(e=Pt),this.pressed&&(e&Pt&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:"mouse",srcEvent:t}))}});var Ut={pointerdown:Et,pointermove:Tt,pointerup:Pt,pointercancel:It,pointerout:It},qt={2:"touch",3:"pen",4:"mouse",5:"kinect"},Xt="pointerdown",Zt="pointermove pointerup pointercancel";n.MSPointerEvent&&!n.PointerEvent&&(Xt="MSPointerDown",Zt="MSPointerMove MSPointerUp MSPointerCancel"),c(W,C,{handler:function(t){var e=this.store,i=!1,o=t.type.toLowerCase().replace("ms",""),n=Ut[o],s=qt[t.pointerType]||t.pointerType,r="touch"==s,a=w(e,t.pointerId,"pointerId");n&Et&&(0===t.button||r)?a<0&&(e.push(t),a=e.length-1):n&(Pt|It)&&(i=!0),a<0||(e[a]=t,this.callback(this.manager,n,{pointers:e,changedPointers:[t],pointerType:s,srcEvent:t}),i&&e.splice(a,1))}});var Kt={touchstart:Et,touchmove:Tt,touchend:Pt,touchcancel:It},Jt="touchstart",$t="touchstart touchmove touchend touchcancel";c(Y,C,{handler:function(t){var e=Kt[t.type];if(e===Et&&(this.started=!0),this.started){var i=G.call(this,t,e);e&(Pt|It)&&i[0].length-i[1].length==0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:"touch",srcEvent:t})}}});var Qt={touchstart:Et,touchmove:Tt,touchend:Pt,touchcancel:It},te="touchstart touchmove touchend touchcancel";c(V,C,{handler:function(t){var e=Qt[t.type],i=U.call(this,t,e);i&&this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:"touch",srcEvent:t})}});var ee=2500,ie=25;c(q,C,{handler:function(t,e,i){var o="touch"==i.pointerType,n="mouse"==i.pointerType;if(!(n&&i.sourceCapabilities&&i.sourceCapabilities.firesTouchEvents)){if(o)X.call(this,e,i);else if(n&&K.call(this,i))return;this.callback(t,e,i)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var oe=S(vt.style,"touchAction"),ne=oe!==a,se="auto",re="manipulation",ae="none",he="pan-x",de="pan-y",le=function(){if(!ne)return!1;var t={},e=n.CSS&&n.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(i){t[i]=!e||n.CSS.supports("touch-action",i)}),t}();J.prototype={set:function(t){"compute"==t&&(t=this.compute()),ne&&this.manager.element.style&&le[t]&&(this.manager.element.style[oe]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return l(this.manager.recognizers,function(e){f(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),$(t.join(" "))},preventDefaults:function(t){var e=t.srcEvent,i=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var o=this.actions,n=b(o,ae)&&!le[ae],s=b(o,de)&&!le[de],r=b(o,he)&&!le[he];if(n){var a=1===t.pointers.length,h=t.distance<2,d=t.deltaTime<250;if(a&&h&&d)return}return r&&s?void 0:n||s&&i&Ft||r&&i&Bt?this.preventSrc(e):void 0},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var ue=1,ce=2,pe=4,fe=8,me=fe,ve=16;Q.prototype={defaults:{},set:function(t){return ft(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(d(t,"recognizeWith",this))return this;var e=this.simultaneous;return t=it(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return d(t,"dropRecognizeWith",this)?this:(t=it(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(d(t,"requireFailure",this))return this;var e=this.requireFail;return t=it(t,this),-1===w(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(d(t,"dropRequireFailure",this))return this;t=it(t,this);var e=w(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(e,t)}var i=this,o=this.state;o<fe&&e(i.options.event+tt(o)),e(i.options.event),t.additionalEvent&&e(t.additionalEvent),o>=fe&&e(i.options.event+tt(o))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;t<this.requireFail.length;){if(!(this.requireFail[t].state&(32|ue)))return!1;t++}return!0},recognize:function(t){var e=ft({},t);if(!f(this.options.enable,[this,e]))return this.reset(),void(this.state=32);this.state&(me|ve|32)&&(this.state=ue),this.state=this.process(e),this.state&(ce|pe|fe|ve)&&this.tryEmit(e)},process:function(t){},getTouchAction:function(){},reset:function(){}},c(ot,Q,{defaults:{pointers:1},attrTest:function(t){var e=this.options.pointers;return 0===e||t.pointers.length===e},process:function(t){var e=this.state,i=t.eventType,o=e&(ce|pe),n=this.attrTest(t);return o&&(i&It||!n)?e|ve:o||n?i&Pt?e|fe:e&ce?e|pe:ce:32}}),c(nt,ot,{defaults:{event:"pan",threshold:10,pointers:1,direction:jt},getTouchAction:function(){var t=this.options.direction,e=[];return t&Ft&&e.push(de),t&Bt&&e.push(he),e},directionTest:function(t){var e=this.options,i=!0,o=t.distance,n=t.direction,s=t.deltaX,r=t.deltaY;return n&e.direction||(e.direction&Ft?(n=0===s?Nt:s<0?Rt:At,i=s!=this.pX,o=Math.abs(t.deltaX)):(n=0===r?Nt:r<0?zt:Lt,i=r!=this.pY,o=Math.abs(t.deltaY))),t.direction=n,i&&o>e.threshold&&n&e.direction},attrTest:function(t){return ot.prototype.attrTest.call(this,t)&&(this.state&ce||!(this.state&ce)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=et(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),c(st,ot,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ce)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),c(rt,Q,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[se]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distance<e.threshold,n=t.deltaTime>e.time;if(this._input=t,!o||!i||t.eventType&(Pt|It)&&!n)this.reset();else if(t.eventType&Et)this.reset(),this._timer=h(function(){this.state=me,this.tryEmit()},e.time,this);else if(t.eventType&Pt)return me;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===me&&(t&&t.eventType&Pt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=_t(),this.manager.emit(this.options.event,this._input)))}}),c(at,ot,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ce)}}),c(ht,ot,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ft|Bt,pointers:1},getTouchAction:function(){return nt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Ft|Bt)?e=t.overallVelocity:i&Ft?e=t.overallVelocityX:i&Bt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&bt(e)>this.options.velocity&&t.eventType&Pt},emit:function(t){var e=et(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),c(dt,Q,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[re]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distance<e.threshold,n=t.deltaTime<e.time;if(this.reset(),t.eventType&Et&&0===this.count)return this.failTimeout();if(o&&n&&i){if(t.eventType!=Pt)return this.failTimeout();var s=!this.pTime||t.timeStamp-this.pTime<e.interval,r=!this.pCenter||L(this.pCenter,t.center)<e.posThreshold;this.pTime=t.timeStamp,this.pCenter=t.center,r&&s?this.count+=1:this.count=1,this._input=t;if(0===this.count%e.taps)return this.hasRequireFailures()?(this._timer=h(function(){this.state=me,this.tryEmit()},e.interval,this),ce):me}return 32},failTimeout:function(){return this._timer=h(function(){this.state=32},this.options.interval,this),32},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==me&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),lt.VERSION="2.0.7",lt.defaults={domEvents:!1,touchAction:"compute",enable:!0,inputTarget:null,inputClass:null,preset:[[at,{enable:!1}],[st,{enable:!1},["rotate"]],[ht,{direction:Ft}],[nt,{direction:Ft},["swipe"]],[dt],[dt,{event:"doubletap",taps:2},["tap"]],[rt]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};ut.prototype={set:function(t){return ft(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},stop:function(t){this.session.stopped=t?2:1},recognize:function(t){var e=this.session;if(!e.stopped){this.touchAction.preventDefaults(t);var i,o=this.recognizers,n=e.curRecognizer;(!n||n&&n.state&me)&&(n=e.curRecognizer=null);for(var s=0;s<o.length;)i=o[s],2===e.stopped||n&&i!=n&&!i.canRecognizeWith(n)?i.reset():i.recognize(t),!n&&i.state&(ce|pe|fe)&&(n=e.curRecognizer=i),s++}},get:function(t){if(t instanceof Q)return t;for(var e=this.recognizers,i=0;i<e.length;i++)if(e[i].options.event==t)return e[i];return null},add:function(t){if(d(t,"add",this))return this;var e=this.get(t.options.event);return e&&this.remove(e),this.recognizers.push(t),t.manager=this,this.touchAction.update(),t},remove:function(t){if(d(t,"remove",this))return this;if(t=this.get(t)){var e=this.recognizers,i=w(e,t);-1!==i&&(e.splice(i,1),this.touchAction.update())}return this},on:function(t,e){if(t!==a&&e!==a){var i=this.handlers;return l(_(t),function(t){i[t]=i[t]||[],i[t].push(e)}),this}},off:function(t,e){if(t!==a){var i=this.handlers;return l(_(t),function(t){e?i[t]&&i[t].splice(w(i[t],e),1):delete i[t]}),this}},emit:function(t,e){this.options.domEvents&&pt(t,e);var i=this.handlers[t]&&this.handlers[t].slice();if(i&&i.length){e.type=t,e.preventDefault=function(){e.srcEvent.preventDefault()};for(var o=0;o<i.length;)i[o](e),o++}},destroy:function(){this.element&&ct(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},ft(lt,{INPUT_START:Et,INPUT_MOVE:Tt,INPUT_END:Pt,INPUT_CANCEL:It,STATE_POSSIBLE:ue,STATE_BEGAN:ce,STATE_CHANGED:pe,STATE_ENDED:fe,STATE_RECOGNIZED:me,STATE_CANCELLED:ve,STATE_FAILED:32,DIRECTION_NONE:Nt,DIRECTION_LEFT:Rt,DIRECTION_RIGHT:At,DIRECTION_UP:zt,DIRECTION_DOWN:Lt,DIRECTION_HORIZONTAL:Ft,DIRECTION_VERTICAL:Bt,DIRECTION_ALL:jt,Manager:ut,Input:C,TouchAction:J,TouchInput:V,MouseInput:H,PointerEventInput:W,TouchMouseInput:q,SingleTouchInput:Y,Recognizer:Q,AttrRecognizer:ot,Tap:dt,Pan:nt,Swipe:ht,Pinch:st,Rotate:at,Press:rt,on:v,off:g,each:l,merge:xt,extend:wt,assign:ft,inherit:c,bindFn:p,prefixed:S}),(void 0!==n?n:"undefined"!=typeof self?self:{}).Hammer=lt,(o=function(){return lt}.call(e,i,e,t))!==a&&(t.exports=o)}(window,document)},function(t,e,i){e.util=i(2),e.DOMutil=i(14),e.DataSet=i(11),e.DataView=i(12),e.Queue=i(43),e.Timeline=i(178),e.Graph2d=i(180),e.timeline={Core:i(65),DateUtil:i(36),Range:i(64),stack:i(100),TimeStep:i(66),components:{items:{Item:i(38),BackgroundItem:i(103),BoxItem:i(101),PointItem:i(102),RangeItem:i(70)},BackgroundGroup:i(69),Component:i(16),CurrentTime:i(67),CustomTime:i(46),DataAxis:i(107),DataScale:i(108),GraphGroup:i(109),Group:i(68),ItemSet:i(99),Legend:i(112),LineGraph:i(106),TimeAxis:i(45)}},e.moment=i(9),e.Hammer=i(10),e.keycharm=i(35)},function(t,e,i){function o(t,e,i,n){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof d||i instanceof l)&&i instanceof Object){var s=n;n=i,i=s}n&&n.throttleRedraw&&console.warn('Timeline option "throttleRedraw" is DEPRICATED and no longer supported. It will be removed in the next MAJOR release.');var r=this;if(this.defaultOptions={start:null,end:null,autoResize:!0,orientation:{axis:"bottom",item:"bottom"},moment:a,width:null,height:null,maxHeight:null,minHeight:null},this.options=h.deepExtend({},this.defaultOptions),this._create(t),!n||n&&void 0===n.rtl){this.dom.root.style.visibility="hidden";for(var c,m=this.dom.root;!c&&m;)c=window.getComputedStyle(m,null).direction,m=m.parentElement;this.options.rtl=c&&"rtl"==c.toLowerCase()}else this.options.rtl=n.rtl;this.options.rollingMode=n&&n.rollingMode,this.options.onInitialDrawComplete=n&&n.onInitialDrawComplete,this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function(){return r.timeAxis.step.scale},getStep:function(){return r.timeAxis.step.step},toScreen:r._toScreen.bind(r),toGlobalScreen:r._toGlobalScreen.bind(r),toTime:r._toTime.bind(r),toGlobalTime:r._toGlobalTime.bind(r)}},this.range=new u(this.body,this.options),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new p(this.body,this.options),this.timeAxis2=null,this.components.push(this.timeAxis),this.currentTime=new f(this.body,this.options),this.components.push(this.currentTime),this.itemSet=new v(this.body,this.options),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,this.dom.root.onclick=function(t){r.emit("click",r.getEventProperties(t))},this.dom.root.ondblclick=function(t){r.emit("doubleClick",r.getEventProperties(t))},this.dom.root.oncontextmenu=function(t){r.emit("contextmenu",r.getEventProperties(t))},this.dom.root.onmouseover=function(t){r.emit("mouseOver",r.getEventProperties(t))},window.PointerEvent?(this.dom.root.onpointerdown=function(t){r.emit("mouseDown",r.getEventProperties(t))},this.dom.root.onpointermove=function(t){r.emit("mouseMove",r.getEventProperties(t))},this.dom.root.onpointerup=function(t){r.emit("mouseUp",r.getEventProperties(t))}):(this.dom.root.onmousemove=function(t){r.emit("mouseMove",r.getEventProperties(t))},this.dom.root.onmousedown=function(t){r.emit("mouseDown",r.getEventProperties(t))},this.dom.root.onmouseup=function(t){r.emit("mouseUp",r.getEventProperties(t))}),this.initialFitDone=!1,this.on("changed",function(){if(null!=this.itemsData&&!this.options.rollingMode){if(!r.initialFitDone)if(r.initialFitDone=!0,void 0!=r.options.start||void 0!=r.options.end){if(void 0==r.options.start||void 0==r.options.end)var t=r.getItemRange();var e=void 0!=r.options.start?r.options.start:t.min,i=void 0!=r.options.end?r.options.end:t.max;r.setWindow(e,i,{animation:!1})}else r.fit({animation:!1});!r.initialDrawDone&&r.initialRangeChangeDone&&(r.initialDrawDone=!0,r.dom.root.style.visibility="visible",r.options.onInitialDrawComplete&&setTimeout(function(){return r.options.onInitialDrawComplete()},0))}}),n&&this.setOptions(n),i&&this.setGroups(i),e&&this.setItems(e),this._redraw()}function n(t){return h.convert(t.data.start,"Date").valueOf()}function s(t){var e=void 0!=t.data.end?t.data.end:t.data.start;return h.convert(e,"Date").valueOf()}function r(t,e){var i=t.props.leftContainer.height,o=t.props.left.height,n=e.parent,s=n.top,r=!0,a=t.timeAxis.options.orientation.axis,h=function(){return"bottom"==a?n.height-e.top-e.height:e.top},d=-1*t._getScrollTop(),l=s+h(),u=e.height;return l<d?s+i<=s+h()+u&&(s+=h()-t.itemSet.options.margin.item.vertical):l+u>d+i?s+=h()+u-i+t.itemSet.options.margin.item.vertical:r=!1,s=Math.min(s,o-i),{shouldScroll:r,scrollOffset:s,itemTop:l}}var a=i(9),h=i(2),d=i(11),l=i(12),u=i(64),c=i(65),p=i(45),f=i(67),m=i(46),v=i(99),g=i(15).printStyle,y=i(105).allOptions,b=i(105).configureOptions,_=i(71).default,w=i(15).default;o.prototype=new c,o.prototype._createConfigurator=function(){return new _(this,this.dom.container,b)},o.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},o.prototype.setOptions=function(t){if(!0===w.validate(t,y)&&console.log("%cErrors have been found in the supplied options object.",g),c.prototype.setOptions.call(this,t),"type"in t&&t.type!==this.options.type){this.options.type=t.type;var e=this.itemsData;if(e){var i=this.getSelection();this.setItems(null),this.setItems(e),this.setSelection(i)}}},o.prototype.setItems=function(t){var e;e=t?t instanceof d||t instanceof l?t:new d(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e)},o.prototype.setGroups=function(t){var e;if(t){var i=function(t){return!1!==t.visible};e=t instanceof d||t instanceof l?new l(t,{filter:i}):new d(t.filter(i))}else e=null;this.groupsData=e,this.itemSet.setGroups(e)},o.prototype.setData=function(t){t&&t.groups&&this.setGroups(t.groups),t&&t.items&&this.setItems(t.items)},o.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},o.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},o.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],o=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),n=null,s=null;if(o.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===n||e<n)&&(n=e),(null===s||i>s)&&(s=i)}),null!==n&&null!==s){var a=this,h=this.itemSet.items[i[0]],d=-1*this._getScrollTop(),l=null,u=function(t,e,i){var o=r(a,h);if(l||(l=o),l.itemTop!=o.itemTop||l.shouldScroll){l.itemTop!=o.itemTop&&o.shouldScroll&&(l=o,d=-1*a._getScrollTop());var n=d,s=l.scrollOffset,u=i?s:n+(s-n)*t;a._setScrollTop(-u),e||a._redraw()}},c=function(){var t=r(a,h);t.shouldScroll&&t.itemTop!=l.itemTop&&(a._setScrollTop(-t.scrollOffset),a._redraw())},p=function(){c(),setTimeout(c,100)},f=(n+s)/2,m=Math.max(this.range.end-this.range.start,1.1*(s-n)),v=!e||void 0===e.animation||e.animation;v||(l={shouldScroll:!1,scrollOffset:-1,itemTop:-1}),this.range.setRange(f-m/2,f+m/2,{animation:v},p,u)}}},o.prototype.fit=function(t,e){var i,o=!t||void 0===t.animation||t.animation,n=this.itemsData&&this.itemsData.getDataSet();1===n.length&&void 0===n.get()[0].end?(i=this.getDataRange(),this.moveTo(i.min.valueOf(),{animation:o},e)):(i=this.getItemRange(),this.range.setRange(i.min,i.max,{animation:o},e))},o.prototype.getItemRange=function(){var t=this.getDataRange(),e=null!==t.min?t.min.valueOf():null,i=null!==t.max?t.max.valueOf():null,o=null,r=null;if(null!=e&&null!=i){var a=i-e;a<=0&&(a=10);var d=a/this.props.center.width,l={},u=0;h.forEach(this.itemSet.items,function(t,e){if(t.groupShowing){l[e]=t.redraw(!0),u=l[e].length}});if(u>0)for(var c=0;c<u;c++)h.forEach(l,function(t){t[c]()});if(h.forEach(this.itemSet.items,function(t){var a,h,l=n(t),u=s(t);this.options.rtl?(a=l-(t.getWidthRight()+10)*d,h=u+(t.getWidthLeft()+10)*d):(a=l-(t.getWidthLeft()+10)*d,h=u+(t.getWidthRight()+10)*d),a<e&&(e=a,o=t),h>i&&(i=h,r=t)}.bind(this)),o&&r){var p=o.getWidthLeft()+10,f=r.getWidthRight()+10,m=this.props.center.width-p-f;m>0&&(this.options.rtl?(e=n(o)-f*a/m,i=s(r)+p*a/m):(e=n(o)-p*a/m,i=s(r)+f*a/m))}}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},o.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=h.convert(i.start,"Date").valueOf(),n=h.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||o<t)&&(t=o),(null===e||n>e)&&(e=n)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},o.prototype.getEventProperties=function(t){var e,i=t.center?t.center.x:t.clientX,o=t.center?t.center.y:t.clientY;e=this.options.rtl?h.getAbsoluteRight(this.dom.centerContainer)-i:i-h.getAbsoluteLeft(this.dom.centerContainer);var n=o-h.getAbsoluteTop(this.dom.centerContainer),s=this.itemSet.itemFromTarget(t),r=this.itemSet.groupFromTarget(t),a=m.customTimeFromTarget(t),d=this.itemSet.options.snap||null,l=this.body.util.getScale(),u=this.body.util.getStep(),c=this._toTime(e),p=d?d(c,l,u):c,f=h.getTarget(t),v=null;return null!=s?v="item":null!=a?v="custom-time":h.hasParent(f,this.timeAxis.dom.foreground)?v="axis":this.timeAxis2&&h.hasParent(f,this.timeAxis2.dom.foreground)?v="axis":h.hasParent(f,this.itemSet.dom.labelSet)?v="group-label":h.hasParent(f,this.currentTime.bar)?v="current-time":h.hasParent(f,this.dom.center)&&(v="background"),{event:t,item:s?s.id:null,group:r?r.groupId:null,what:v,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:e,y:n,time:c,snappedTime:p}},o.prototype.toggleRollingMode=function(){this.range.rolling?this.range.stopRolling():(void 0==this.options.rollingMode&&this.setOptions(this.options),this.range.startRolling())},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(19),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(10),u=i(37),c=i(2),p=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;(0,a.default)(this,t),this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return(0,d.default)(t,[{key:"insertTo",value:function(t){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=t,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:"setUpdateCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=t}},{key:"setCloseCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=t}},{key:"_isColorString",value:function(t){var e={black:"#000000",navy:"#000080",darkblue:"#00008B",mediumblue:"#0000CD",blue:"#0000FF",darkgreen:"#006400",green:"#008000",teal:"#008080",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",lime:"#00FF00",springgreen:"#00FF7F",aqua:"#00FFFF",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",mediumaquamarine:"#66CDAA",dimgray:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",lightslategray:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",maroon:"#800000",purple:"#800080",olive:"#808000",gray:"#808080",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370D8",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",silver:"#C0C0C0",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgrey:"#D3D3D3",palevioletred:"#D87093",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",red:"#FF0000",fuchsia:"#FF00FF",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",yellow:"#FFFF00",lightyellow:"#FFFFE0",ivory:"#FFFFF0",white:"#FFFFFF"};if("string"==typeof t)return e[t]}},{key:"setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("none"!==t){var i=void 0,o=this._isColorString(t);if(void 0!==o&&(t=o),!0===c.isString(t)){if(!0===c.isValidRGB(t)){var n=t.substr(4).substr(0,t.length-5).split(",");i={r:n[0],g:n[1],b:n[2],a:1}}else if(!0===c.isValidRGBA(t)){var r=t.substr(5).substr(0,t.length-6).split(",");i={r:r[0],g:r[1],b:r[2],a:r[3]}}else if(!0===c.isValidHex(t)){var a=c.hexToRGB(t);i={r:a.r,g:a.g,b:a.b,a:1}}}else if(t instanceof Object&&void 0!==t.r&&void 0!==t.g&&void 0!==t.b){var h=void 0!==t.a?t.a:"1.0";i={r:t.r,g:t.g,b:t.b,a:h}}if(void 0===i)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+(0,s.default)(t));this._setColor(i,e)}}},{key:"show",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}},{key:"_hide",value:function(){var t=this;!0===(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&(this.previousColor=c.extend({},this.color)),!0===this.applied&&this.updateCallback(this.initialColor),this.frame.style.display="none",setTimeout(function(){void 0!==t.closeCallback&&(t.closeCallback(),t.closeCallback=void 0)},0)}},{key:"_save",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:"_apply",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:"_loadLast",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}},{key:"_setColor",value:function(t){!0===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&(this.initialColor=c.extend({},t)),this.color=t;var e=c.RGBToHSV(t.r,t.g,t.b),i=2*Math.PI,o=this.r*e.s,n=this.centerCoordinates.x+o*Math.sin(i*e.h),s=this.centerCoordinates.y+o*Math.cos(i*e.h);this.colorPickerSelector.style.left=n-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=s-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(t)}},{key:"_setOpacity",value:function(t){this.color.a=t/100,this._updatePicker(this.color)}},{key:"_setBrightness",value:function(t){var e=c.RGBToHSV(this.color.r,this.color.g,this.color.b);e.v=t/100;var i=c.HSVToRGB(e.h,e.s,e.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:"_updatePicker",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,e=c.RGBToHSV(t.r,t.g,t.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var o=this.colorPickerCanvas.clientWidth,n=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,o,n),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-e.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),i.fill(),this.brightnessRange.value=100*e.v,this.opacityRange.value=100*t.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}},{key:"_setSize",value:function(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:"_create",value:function(){if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var t=this.colorPickerCanvas.getContext("2d")
+;this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(e)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(t){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(t){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var i=this;this.opacityRange.onchange=function(){i._setOpacity(this.value)},this.opacityRange.oninput=function(){i._setOpacity(this.value)},this.brightnessRange.onchange=function(){i._setBrightness(this.value)},this.brightnessRange.oninput=function(){i._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerHTML="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerHTML="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerHTML="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerHTML="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerHTML="cancel",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerHTML="apply",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerHTML="save",this.saveButton.onclick=this._save.bind(this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerHTML="load last",this.loadButton.onclick=this._loadLast.bind(this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}},{key:"_bindHammer",value:function(){var t=this;this.drag={},this.pinch={},this.hammer=new l(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),u.onTouch(this.hammer,function(e){t._moveSelector(e)}),this.hammer.on("tap",function(e){t._moveSelector(e)}),this.hammer.on("panstart",function(e){t._moveSelector(e)}),this.hammer.on("panmove",function(e){t._moveSelector(e)}),this.hammer.on("panend",function(e){t._moveSelector(e)})}},{key:"_generateHueCircle",value:function(){if(!1===this.generated){var t=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var e=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;t.clearRect(0,0,e,i);var o=void 0,n=void 0,s=void 0,r=void 0;this.centerCoordinates={x:.5*e,y:.5*i},this.r=.49*e;var a=2*Math.PI/360,h=1/this.r,d=void 0;for(s=0;s<360;s++)for(r=0;r<this.r;r++)o=this.centerCoordinates.x+r*Math.sin(a*s),n=this.centerCoordinates.y+r*Math.cos(a*s),d=c.HSVToRGB(s*(1/360),r*h,1),t.fillStyle="rgb("+d.r+","+d.g+","+d.b+")",t.fillRect(o-.5,n-.5,2,2);t.strokeStyle="rgba(0,0,0,1)",t.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),t.stroke(),this.hueCircle=t.getImageData(0,0,e,i)}this.generated=!0}},{key:"_moveSelector",value:function(t){var e=this.colorPickerDiv.getBoundingClientRect(),i=t.center.x-e.left,o=t.center.y-e.top,n=.5*this.colorPickerDiv.clientHeight,s=.5*this.colorPickerDiv.clientWidth,r=i-s,a=o-n,h=Math.atan2(r,a),d=.98*Math.min(Math.sqrt(r*r+a*a),s),l=Math.cos(h)*d+n,u=Math.sin(h)*d+s;this.colorPickerSelector.style.top=l-.5*this.colorPickerSelector.clientHeight+"px",this.colorPickerSelector.style.left=u-.5*this.colorPickerSelector.clientWidth+"px";var p=h/(2*Math.PI);p=p<0?p+1:p;var f=d/this.r,m=c.RGBToHSV(this.color.r,this.color.g,this.color.b);m.h=p,m.s=f;var v=c.HSVToRGB(m.h,m.s,m.v);v.a=this.color.a,this.color=v,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}}]),t}();e.default=p},function(t,e,i){function o(t,e,i,o){if(!(Array.isArray(i)||i instanceof r||i instanceof a)&&i instanceof Object){var d=o;o=i,i=d}o&&o.throttleRedraw&&console.warn('Graph2d option "throttleRedraw" is DEPRICATED and no longer supported. It will be removed in the next MAJOR release.');var c=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:{axis:"bottom",item:"bottom"},moment:n,width:null,height:null,maxHeight:null,minHeight:null},this.options=s.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{toScreen:c._toScreen.bind(c),toGlobalScreen:c._toGlobalScreen.bind(c),toTime:c._toTime.bind(c),toGlobalTime:c._toGlobalTime.bind(c)}},this.range=new h(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new l(this.body),this.components.push(this.timeAxis),this.currentTime=new u(this.body),this.components.push(this.currentTime),this.linegraph=new p(this.body),this.components.push(this.linegraph),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){c.emit("click",c.getEventProperties(t))}),this.on("doubletap",function(t){c.emit("doubleClick",c.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){c.emit("contextmenu",c.getEventProperties(t))},o&&this.setOptions(o),i&&this.setGroups(i),e&&this.setItems(e),this._redraw()}var n=i(9),s=i(2),r=i(11),a=i(12),h=i(64),d=i(65),l=i(45),u=i(67),c=i(46),p=i(106),f=i(15).printStyle,m=i(113).allOptions,v=i(113).configureOptions,g=i(71).default,y=i(15).default;o.prototype=new d,o.prototype.setOptions=function(t){!0===y.validate(t,m)&&console.log("%cErrors have been found in the supplied options object.",f),d.prototype.setOptions.call(this,t)},o.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof r||t instanceof a?t:new r(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.linegraph&&this.linegraph.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){var o=void 0!=this.options.start?this.options.start:null,n=void 0!=this.options.end?this.options.end:null;this.setWindow(o,n,{animation:!1})}else this.fit({animation:!1})},o.prototype.setGroups=function(t){var e;e=t?t instanceof r||t instanceof a?t:new r(t):null,this.groupsData=e,this.linegraph.setGroups(e)},o.prototype.getLegend=function(t,e,i){return void 0===e&&(e=15),void 0===i&&(i=15),void 0!==this.linegraph.groups[t]?this.linegraph.groups[t].getLegend(e,i):"cannot find group:'"+t+"'"},o.prototype.isGroupVisible=function(t){return void 0!==this.linegraph.groups[t]&&(this.linegraph.groups[t].visible&&(void 0===this.linegraph.options.groups.visibility[t]||1==this.linegraph.options.groups.visibility[t]))},o.prototype.getDataRange=function(){var t=null,e=null;for(var i in this.linegraph.groups)if(this.linegraph.groups.hasOwnProperty(i)&&1==this.linegraph.groups[i].visible)for(var o=0;o<this.linegraph.groups[i].itemsData.length;o++){var n=this.linegraph.groups[i].itemsData[o],r=s.convert(n.x,"Date").valueOf();t=null==t?r:t>r?r:t,e=null==e?r:e<r?r:e}return{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},o.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY,o=e-s.getAbsoluteLeft(this.dom.centerContainer),n=i-s.getAbsoluteTop(this.dom.centerContainer),r=this._toTime(o),a=c.customTimeFromTarget(t),h=s.getTarget(t),d=null;s.hasParent(h,this.timeAxis.dom.foreground)?d="axis":this.timeAxis2&&s.hasParent(h,this.timeAxis2.dom.foreground)?d="axis":s.hasParent(h,this.linegraph.yAxisLeft.dom.frame)?d="data-axis":s.hasParent(h,this.linegraph.yAxisRight.dom.frame)?d="data-axis":s.hasParent(h,this.linegraph.legendLeft.dom.frame)?d="legend":s.hasParent(h,this.linegraph.legendRight.dom.frame)?d="legend":null!=a?d="custom-time":s.hasParent(h,this.currentTime.bar)?d="current-time":s.hasParent(h,this.dom.center)&&(d="background");var l=[],u=this.linegraph.yAxisLeft,p=this.linegraph.yAxisRight;return!u.hidden&&this.itemsData.length>0&&l.push(u.screenToValue(n)),!p.hidden&&this.itemsData.length>0&&l.push(p.screenToValue(n)),{event:t,what:d,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:r,value:l}},o.prototype._createConfigurator=function(){return new g(this,this.dom.container,v)},t.exports=o},function(t,e,i){e.util=i(2),e.DOMutil=i(14),e.DataSet=i(11),e.DataView=i(12),e.Queue=i(43),e.Network=i(182),e.network={Images:i(116),dotparser:i(114),gephiParser:i(115),allOptions:i(122)},e.network.convertDot=function(t){return e.network.dotparser.DOTToGraph(t)},e.network.convertGephi=function(t,i){return e.network.gephiParser.parseGephi(t,i)},e.moment=i(9),e.Hammer=i(10),e.keycharm=i(35)},function(t,e,i){function o(t,e,i){var n=this;if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.options={},this.defaultOptions={locale:"en",locales:d,clickToUse:!1},s.extend(this.options,this.defaultOptions),this.body={container:t,nodes:{},nodeIndices:[],edges:{},edgeIndices:[],emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this),once:this.once.bind(this)},eventListeners:{onTap:function(){},onTouch:function(){},onDoubleTap:function(){},onHold:function(){},onDragStart:function(){},onDrag:function(){},onDragEnd:function(){},onMouseWheel:function(){},onPinch:function(){},onMouseMove:function(){},onRelease:function(){},onContext:function(){}},data:{nodes:null,edges:null},functions:{createNode:function(){},createEdge:function(){},getPointer:function(){}},modules:{},view:{scale:1,translation:{x:0,y:0}}},this.bindEventListeners(),this.images=new l(function(){return n.body.emitter.emit("_requestRedraw")}),this.groups=new u,this.canvas=new g(this.body),this.selectionHandler=new _(this.body,this.canvas),this.interactionHandler=new b(this.body,this.canvas,this.selectionHandler),this.view=new y(this.body,this.canvas),this.renderer=new v(this.body,this.canvas),this.physics=new f(this.body),this.layoutEngine=new w(this.body),this.clustering=new m(this.body),this.manipulation=new x(this.body,this.canvas,this.selectionHandler),this.nodesHandler=new c(this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new p(this.body,this.images,this.groups),this.body.modules.kamadaKawai=new T(this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(i),this.setData(e)}i(183);var n=i(44),s=i(2),r=i(114),a=i(115),h=i(97),d=i(184),l=i(116).default,u=i(186).default,c=i(187).default,p=i(214).default,f=i(220).default,m=i(227).default,v=i(229).default,g=i(230).default,y=i(231).default,b=i(232).default,_=i(234).default,w=i(235).default,x=i(237).default,k=i(71).default,S=i(15).default,D=i(15),M=D.printStyle,C=i(122),O=C.allOptions,E=C.configureOptions,T=i(238).default;n(o.prototype),o.prototype.setOptions=function(t){var e=this;if(void 0!==t){!0===S.validate(t,O)&&console.log("%cErrors have been found in the supplied options object.",M);var i=["locale","locales","clickToUse"];if(s.selectiveDeepExtend(i,this.options,t),t=this.layoutEngine.setOptions(t.layout,t),this.canvas.setOptions(t),this.groups.setOptions(t.groups),this.nodesHandler.setOptions(t.nodes),this.edgesHandler.setOptions(t.edges),this.physics.setOptions(t.physics),this.manipulation.setOptions(t.manipulation,t,this.options),this.interactionHandler.setOptions(t.interaction),this.renderer.setOptions(t.interaction),this.selectionHandler.setOptions(t.interaction),void 0!==t.groups&&this.body.emitter.emit("refreshNodes"),"configure"in t&&(this.configurator||(this.configurator=new k(this,this.body.container,E,this.canvas.pixelRatio)),this.configurator.setOptions(t.configure)),this.configurator&&!0===this.configurator.options.enabled){var o={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};s.deepExtend(o.nodes,this.nodesHandler.options),s.deepExtend(o.edges,this.edgesHandler.options),s.deepExtend(o.layout,this.layoutEngine.options),s.deepExtend(o.interaction,this.selectionHandler.options),s.deepExtend(o.interaction,this.renderer.options),s.deepExtend(o.interaction,this.interactionHandler.options),s.deepExtend(o.manipulation,this.manipulation.options),s.deepExtend(o.physics,this.physics.options),s.deepExtend(o.global,this.canvas.options),s.deepExtend(o.global,this.options),this.configurator.setModuleOptions(o)}void 0!==t.clickToUse?!0===t.clickToUse?void 0===this.activator&&(this.activator=new h(this.canvas.frame),this.activator.on("change",function(){e.body.emitter.emit("activate")})):(void 0!==this.activator&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit("activate")):this.body.emitter.emit("activate"),this.canvas.setSize(),this.body.emitter.emit("startSimulation")}},o.prototype._updateVisibleIndices=function(){var t=this.body.nodes,e=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(var i in t)t.hasOwnProperty(i)&&(this.clustering._isClusteredNode(i)||!1!==t[i].options.hidden||this.body.nodeIndices.push(t[i].id));for(var o in e)if(e.hasOwnProperty(o)){var n=e[o],s=t[n.fromId],r=t[n.toId],a=void 0!==s&&void 0!==r,h=!this.clustering._isClusteredEdge(o)&&!1===n.options.hidden&&a&&!1===s.options.hidden&&!1===r.options.hidden;h&&this.body.edgeIndices.push(n.id)}},o.prototype.bindEventListeners=function(){var t=this;this.body.emitter.on("_dataChanged",function(){t.edgesHandler._updateState(),t.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",function(){t.clustering._updateState(),t._updateVisibleIndices(),t._updateValueRange(t.body.nodes),t._updateValueRange(t.body.edges),t.body.emitter.emit("startSimulation"),t.body.emitter.emit("_requestRedraw")})},o.prototype.setData=function(t){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or  parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){console.log("The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");var e=r.DOTToGraph(t.dot);return void this.setData(e)}if(t&&t.gephi){console.log("The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");var i=a.parseGephi(t.gephi);return void this.setData(i)}this.nodesHandler.setData(t&&t.nodes,!0),this.edgesHandler.setData(t&&t.edges,!0),this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("_dataLoaded"),this.body.emitter.emit("initPhysics")},o.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images;for(var t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&delete this.body.nodes[t];for(var e in this.body.edges)this.body.edges.hasOwnProperty(e)&&delete this.body.edges[e];s.recursiveDOMDelete(this.body.container)},o.prototype._updateValueRange=function(t){var e,i=void 0,o=void 0,n=0;for(e in t)if(t.hasOwnProperty(e)){var s=t[e].getValue();void 0!==s&&(i=void 0===i?s:Math.min(s,i),o=void 0===o?s:Math.max(s,o),n+=s)}if(void 0!==i&&void 0!==o)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,o,n)},o.prototype.isActive=function(){return!this.activator||this.activator.active},o.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)},o.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)},o.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)},o.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)},o.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)},o.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)},o.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)},o.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)},o.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)},o.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)},o.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)},o.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)},o.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)},o.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)},o.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)},o.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)},o.prototype.editNodeMode=function(){return console.log("Deprecated: Please use editNode instead of editNodeMode."),this.manipulation.editNode.apply(this.manipulation,arguments)},o.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)},o.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)},o.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)},o.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)},o.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)},o.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)},o.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)},o.prototype.getConnectedNodes=function(t){return void 0!==this.body.nodes[t]?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)},o.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)},o.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)},o.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)},o.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)},o.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)},o.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)},o.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodes.apply(this.selectionHandler,arguments)},o.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdges.apply(this.selectionHandler,arguments)},o.prototype.getNodeAt=function(){var t=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},o.prototype.getEdgeAt=function(){var t=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},o.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)},o.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)},o.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.redraw()},o.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)},o.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)},o.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)},o.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)},o.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)},o.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)},o.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)},o.prototype.getOptionsFromConfigurator=function(){var t={};return this.configurator&&(t=this.configurator.getOptions.apply(this.configurator)),t},t.exports=o},function(t,e,i){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1),this.closePath()},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i),this.closePath()},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath(),i*=1.15,e+=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e-(r-s)),this.lineTo(t+n,e+s),this.lineTo(t-n,e+s),this.lineTo(t,e-(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath(),i*=1.15,e-=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e+(r-s)),this.lineTo(t+n,e-s),this.lineTo(t-n,e-s),this.lineTo(t,e+(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath(),i*=.82,e+=.1*i;for(var o=0;o<10;o++){var n=o%2==0?1.3*i:.5*i;this.lineTo(t+n*Math.sin(2*o*Math.PI/10),e-n*Math.cos(2*o*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.diamond=function(t,e,i){this.beginPath(),this.lineTo(t,e+i),this.lineTo(t+i,e),this.lineTo(t,e-i),this.lineTo(t-i,e),this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,o,n){var s=Math.PI/180;i-2*n<0&&(n=i/2),o-2*n<0&&(n=o/2),this.beginPath(),this.moveTo(t+n,e),this.lineTo(t+i-n,e),this.arc(t+i-n,e+n,n,270*s,360*s,!1),this.lineTo(t+i,e+o-n),this.arc(t+i-n,e+o-n,n,0,90*s,!1),this.lineTo(t+n,e+o),this.arc(t+n,e+o-n,n,90*s,180*s,!1),this.lineTo(t,e+n),this.arc(t+n,e+n,n,180*s,270*s,!1),this.closePath()},CanvasRenderingContext2D.prototype.ellipse_vis=function(t,e,i,o){var n=i/2*.5522848,s=o/2*.5522848,r=t+i,a=e+o,h=t+i/2,d=e+o/2;this.beginPath(),this.moveTo(t,d),this.bezierCurveTo(t,d-s,h-n,e,h,e),this.bezierCurveTo(h+n,e,r,d-s,r,d),this.bezierCurveTo(r,d+s,h+n,a,h,a),this.bezierCurveTo(h-n,a,t,d+s,t,d),this.closePath()},CanvasRenderingContext2D.prototype.database=function(t,e,i,o){var n=i,s=o*(1/3),r=n/2*.5522848,a=s/2*.5522848,h=t+n,d=e+s,l=t+n/2,u=e+s/2,c=e+(o-s/2),p=e+o;this.beginPath(),this.moveTo(h,u),this.bezierCurveTo(h,u+a,l+r,d,l,d),this.bezierCurveTo(l-r,d,t,u+a,t,u),this.bezierCurveTo(t,u-a,l-r,e,l,e),this.bezierCurveTo(l+r,e,h,u-a,h,u),this.lineTo(h,c),this.bezierCurveTo(h,c+a,l+r,p,l,p),this.bezierCurveTo(l-r,p,t,c+a,t,c),this.lineTo(t,u)},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,o,n){this.beginPath(),this.moveTo(t,e);for(var s=n.length,r=i-t,a=o-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,u=!0,c=0,p=n[0];d>=.1;)p=n[l++%s],p>d&&(p=d),c=Math.sqrt(p*p/(1+h*h)),c=r<0?-c:c,t+=c,e+=h*c,!0===u?this.lineTo(t,e):this.moveTo(t,e),d-=p,u=!u},CanvasRenderingContext2D.prototype.hexagon=function(t,e,i){this.beginPath();var o=2*Math.PI/6;this.moveTo(t+i,e);for(var n=1;n<6;n++)this.lineTo(t+i*Math.cos(o*n),e+i*Math.sin(o*n));this.closePath()})},function(t,e,i){e.en={edit:"Edit",del:"Delete selected",back:"Back",addNode:"Add Node",addEdge:"Add Edge",editNode:"Edit Node",editEdge:"Edit Edge",addDescription:"Click in an empty space to place a new node.",edgeDescription:"Click on a node and drag the edge to another node to connect them.",editEdgeDescription:"Click on the control points and drag them to a node to connect to it.",createEdgeError:"Cannot link edges to a cluster.",deleteClusterError:"Clusters cannot be deleted.",editClusterError:"Clusters cannot be edited."},e.en_EN=e.en,e.en_US=e.en,e.de={edit:"Editieren",del:"Lösche Auswahl",back:"Zurück",addNode:"Knoten hinzufügen",addEdge:"Kante hinzufügen",editNode:"Knoten editieren",editEdge:"Kante editieren",addDescription:"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.",edgeDescription:"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.",editEdgeDescription:"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.",createEdgeError:"Es ist nicht möglich, Kanten mit Clustern zu verbinden.",deleteClusterError:"Cluster können nicht gelöscht werden.",editClusterError:"Cluster können nicht editiert werden."},e.de_DE=e.de,e.es={edit:"Editar",del:"Eliminar selección",back:"Átras",addNode:"Añadir nodo",addEdge:"Añadir arista",editNode:"Editar nodo",editEdge:"Editar arista",addDescription:"Haga clic en un lugar vacío para colocar un nuevo nodo.",edgeDescription:"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.",editEdgeDescription:"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.",createEdgeError:"No se puede conectar una arista a un grupo.",deleteClusterError:"No es posible eliminar grupos.",editClusterError:"No es posible editar grupos."},e.es_ES=e.es,e.it={edit:"Modifica",del:"Cancella la selezione",back:"Indietro",addNode:"Aggiungi un nodo",addEdge:"Aggiungi un vertice",editNode:"Modifica il nodo",editEdge:"Modifica il vertice",addDescription:"Clicca per aggiungere un nuovo nodo",edgeDescription:"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.",editEdgeDescription:"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.",createEdgeError:"Non si possono collegare vertici ad un cluster",deleteClusterError:"I cluster non possono essere cancellati",editClusterError:"I clusters non possono essere modificati."},e.it_IT=e.it,e.nl={edit:"Wijzigen",del:"Selectie verwijderen",back:"Terug",addNode:"Node toevoegen",addEdge:"Link toevoegen",editNode:"Node wijzigen",editEdge:"Link wijzigen",addDescription:"Klik op een leeg gebied om een nieuwe node te maken.",edgeDescription:"Klik op een node en sleep de link naar een andere node om ze te verbinden.",editEdgeDescription:"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.",createEdgeError:"Kan geen link maken naar een cluster.",deleteClusterError:"Clusters kunnen niet worden verwijderd.",editClusterError:"Clusters kunnen niet worden aangepast."},e.nl_NL=e.nl,e.nl_BE=e.nl,e["pt-br"]={edit:"Editar",del:"Remover selecionado",back:"Voltar",addNode:"Adicionar nó",addEdge:"Adicionar aresta",editNode:"Editar nó",editEdge:"Editar aresta",addDescription:"Clique em um espaço em branco para adicionar um novo nó",edgeDescription:"Clique em um nó e arraste a aresta até outro nó para conectá-los",editEdgeDescription:"Clique nos pontos de controle e os arraste para um nó para conectá-los",createEdgeError:"Não foi possível linkar arestas a um cluster.",deleteClusterError:"Clusters não puderam ser removidos.",editClusterError:"Clusters não puderam ser editados."},e["pt-BR"]=e["pt-br"],e.pt_BR=e["pt-br"],e.pt_br=e["pt-br"],e.ru={edit:"Редактировать",del:"Удалить выбранное",back:"Назад",addNode:"Добавить узел",addEdge:"Добавить ребро",editNode:"Редактировать узел",editEdge:"Редактировать ребро",addDescription:"Кликните в свободное место, чтобы добавить новый узел.",edgeDescription:"Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.",editEdgeDescription:"Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.",createEdgeError:"Невозможно соединить ребра в кластер.",deleteClusterError:"Кластеры не могут быть удалены",editClusterError:"Кластеры недоступны для редактирования."},e.ru_RU=e.ru,e.cn={edit:"编辑",del:"删除选定",back:"返回",addNode:"添加节点",addEdge:"添加连接线",editNode:"编辑节点",editEdge:"编辑连接线",addDescription:"单击空白处放置新节点。",edgeDescription:"单击某个节点并将该连接线拖动到另一个节点以连接它们。",editEdgeDescription:"单击控制节点并将它们拖到节点上连接。",createEdgeError:"无法将连接线连接到群集。",deleteClusterError:"无法删除群集。",editClusterError:"无法编辑群集。"},e.zh_CN=e.cn},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(){(0,s.default)(this,t),this.NUM_ITERATIONS=4,this.image=new Image,this.canvas=document.createElement("canvas")}return(0,a.default)(t,[{key:"init",value:function(){if(!this.initialized()){this.src=this.image.src;var t=this.image.width,e=this.image.height;this.width=t,this.height=e;var i=Math.floor(e/2),o=Math.floor(e/4),n=Math.floor(e/8),s=Math.floor(e/16),r=Math.floor(t/2),a=Math.floor(t/4),h=Math.floor(t/8),d=Math.floor(t/16);this.canvas.width=3*a,this.canvas.height=i,this.coordinates=[[0,0,r,i],[r,0,a,o],[r,o,h,n],[5*h,o,d,s]],this._fillMipMap()}}},{key:"initialized",value:function(){return void 0!==this.coordinates}},{key:"_fillMipMap",value:function(){var t=this.canvas.getContext("2d"),e=this.coordinates[0];t.drawImage(this.image,e[0],e[1],e[2],e[3]);for(var i=1;i<this.NUM_ITERATIONS;i++){var o=this.coordinates[i-1],n=this.coordinates[i];t.drawImage(this.canvas,o[0],o[1],o[2],o[3],n[0],n[1],n[2],n[3])}}},{key:"drawImageAtPosition",value:function(t,e,i,o,n,s){if(this.initialized())if(e>2){e*=.5;for(var r=0;e>2&&r<this.NUM_ITERATIONS;)e*=.5,r+=1;r>=this.NUM_ITERATIONS&&(r=this.NUM_ITERATIONS-1);var a=this.coordinates[r];t.drawImage(this.canvas,a[0],a[1],a[2],a[3],i,o,n,s)}else t.drawImage(this.image,i,o,n,s)}}]),t}();e.default=h},function(t,e,i){
+function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=function(){function t(){(0,s.default)(this,t),this.clear(),this.defaultIndex=0,this.groupsArray=[],this.groupIndex=0,this.defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},h.extend(this.options,this.defaultOptions)}return(0,a.default)(t,[{key:"setOptions",value:function(t){var e=["useDefaultGroups"];if(void 0!==t)for(var i in t)if(t.hasOwnProperty(i)&&-1===e.indexOf(i)){var o=t[i];this.add(i,o)}}},{key:"clear",value:function(){this.groups={},this.groupsArray=[]}},{key:"get",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.groups[t];if(void 0===i&&e)if(!1===this.options.useDefaultGroups&&this.groupsArray.length>0){var o=this.groupIndex%this.groupsArray.length;this.groupIndex++,i={},i.color=this.groups[this.groupsArray[o]],this.groups[t]=i}else{var n=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++,i={},i.color=this.defaultGroups[n],this.groups[t]=i}return i}},{key:"add",value:function(t,e){return this.groups[t]=e,this.groupsArray.push(t),e}}]),t}();e.default=d},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(11),l=i(12),u=i(47).default,c=function(){function t(e,i,o,n){var r=this;if((0,s.default)(this,t),this.body=e,this.images=i,this.groups=o,this.layoutEngine=n,this.body.functions.createNode=this.create.bind(this),this.nodesListeners={add:function(t,e){r.add(e.items)},update:function(t,e){r.update(e.items,e.data,e.oldData)},remove:function(t,e){r.remove(e.items)}},this.defaultOptions={borderWidth:1,borderWidthSelected:2,brokenImage:void 0,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},fixed:{x:!1,y:!1},font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:0,strokeColor:"#ffffff",align:"center",vadjust:0,multi:!1,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"monospace",vadjust:2}},group:void 0,hidden:!1,icon:{face:"FontAwesome",code:void 0,size:50,color:"#2B7CE9"},image:void 0,label:void 0,labelHighlightBold:!0,level:void 0,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,o){if(e===t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},shape:"ellipse",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1},size:25,title:void 0,value:void 0,x:void 0,y:void 0},this.defaultOptions.mass<=0)throw"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative";this.options=h.bridgeObject(this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("refreshNodes",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){h.forEach(t.nodesListeners,function(e,i){t.body.data.nodes&&t.body.data.nodes.off(i,e)}),delete t.body.functions.createNode,delete t.nodesListeners.add,delete t.nodesListeners.update,delete t.nodesListeners.remove,delete t.nodesListeners})}},{key:"setOptions",value:function(t){if(void 0!==t){if(u.parseOptions(this.options,t),void 0!==t.shape)for(var e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&this.body.nodes[e].updateShape();if(void 0!==t.font)for(var i in this.body.nodes)this.body.nodes.hasOwnProperty(i)&&(this.body.nodes[i].updateLabelModule(),this.body.nodes[i].needsRefresh());if(void 0!==t.size)for(var o in this.body.nodes)this.body.nodes.hasOwnProperty(o)&&this.body.nodes[o].needsRefresh();void 0===t.hidden&&void 0===t.physics||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.data.nodes;if(t instanceof d||t instanceof l)this.body.data.nodes=t;else if(Array.isArray(t))this.body.data.nodes=new d,this.body.data.nodes.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.nodes=new d}if(i&&h.forEach(this.nodesListeners,function(t,e){i.off(e,t)}),this.body.nodes={},this.body.data.nodes){var o=this;h.forEach(this.nodesListeners,function(t,e){o.body.data.nodes.on(e,t)});var n=this.body.data.nodes.getIds();this.add(n,!0)}!1===e&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,o=[],n=0;n<t.length;n++){i=t[n];var s=this.body.data.nodes.get(i),r=this.create(s);o.push(r),this.body.nodes[i]=r}this.layoutEngine.positionInitially(o),!1===e&&this.body.emitter.emit("_dataChanged")}},{key:"update",value:function(t,e,i){for(var o=this.body.nodes,n=!1,s=0;s<t.length;s++){var r=t[s],a=o[r],h=e[s];void 0!==a?a.setOptions(h)&&(n=!0):(n=!0,a=this.create(h),o[r]=a)}n||void 0===i||(n=e.some(function(t,e){var o=i[e];return o&&o.level!==t.level})),!0===n?this.body.emitter.emit("_dataChanged"):this.body.emitter.emit("_dataUpdated")}},{key:"remove",value:function(t){for(var e=this.body.nodes,i=0;i<t.length;i++){delete e[t[i]]}this.body.emitter.emit("_dataChanged")}},{key:"create",value:function(t){return new(arguments.length>1&&void 0!==arguments[1]?arguments[1]:u)(t,this.body,this.images,this.groups,this.options,this.defaultOptions)}},{key:"refresh",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];h.forEach(this.body.nodes,function(i,o){var n=t.body.data.nodes.get(o);void 0!==n&&(!0===e&&i.setOptions({x:null,y:null}),i.setOptions({fixed:!1}),i.setOptions(n))})}},{key:"getPositions",value:function(t){var e={};if(void 0!==t){if(!0===Array.isArray(t)){for(var i=0;i<t.length;i++)if(void 0!==this.body.nodes[t[i]]){var o=this.body.nodes[t[i]];e[t[i]]={x:Math.round(o.x),y:Math.round(o.y)}}}else if(void 0!==this.body.nodes[t]){var n=this.body.nodes[t];e[t]={x:Math.round(n.x),y:Math.round(n.y)}}}else for(var s=0;s<this.body.nodeIndices.length;s++){var r=this.body.nodes[this.body.nodeIndices[s]];e[this.body.nodeIndices[s]]={x:Math.round(r.x),y:Math.round(r.y)}}return e}},{key:"storePositions",value:function(){var t=[],e=this.body.data.nodes.getDataSet();for(var i in e._data)if(e._data.hasOwnProperty(i)){var o=this.body.nodes[i];e._data[i].x==Math.round(o.x)&&e._data[i].y==Math.round(o.y)||t.push({id:o.id,x:Math.round(o.x),y:Math.round(o.y)})}e.update(t)}},{key:"getBoundingBox",value:function(t){if(void 0!==this.body.nodes[t])return this.body.nodes[t].shape.boundingBox}},{key:"getConnectedNodes",value:function(t,e){var i=[];if(void 0!==this.body.nodes[t])for(var o=this.body.nodes[t],n={},s=0;s<o.edges.length;s++){var r=o.edges[s];"to"!==e&&r.toId==o.id?void 0===n[r.fromId]&&(i.push(r.fromId),n[r.fromId]=!0):"from"!==e&&r.fromId==o.id&&void 0===n[r.toId]&&(i.push(r.toId),n[r.toId]=!0)}return i}},{key:"getConnectedEdges",value:function(t){var e=[];if(void 0!==this.body.nodes[t])for(var i=this.body.nodes[t],o=0;o<i.edges.length;o++)e.push(i.edges[o].id);else console.log("NodeId provided for getConnectedEdges does not exist. Provided: ",t);return e}},{key:"moveNode",value:function(t,e,i){var o=this;void 0!==this.body.nodes[t]?(this.body.nodes[t].x=Number(e),this.body.nodes[t].y=Number(i),setTimeout(function(){o.body.emitter.emit("startSimulation")},0)):console.log("Node id supplied to moveNode does not exist. Provided: ",t)}}]),t}();e.default=c},function(t,e,i){t.exports={default:i(189),__esModule:!0}},function(t,e,i){i(49),i(60),t.exports=i(190)},function(t,e,i){var o=i(86),n=i(13)("iterator"),s=i(31);t.exports=i(7).isIterable=function(t){var e=Object(t);return void 0!==e[n]||"@@iterator"in e||s.hasOwnProperty(o(e))}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(192).default,d=i(48).default,l=function(){function t(e,i,o,n){var r=this;(0,s.default)(this,t),this.ctx=e,this.parent=i;var a=function(t,i){if(void 0===t)return 0;var s=r.parent.getFormattingValues(e,o,n,i),a=0;if(""!==t){a=r.ctx.measureText(t).width}return{width:a,values:s}};this.lines=new h(a)}return(0,a.default)(t,[{key:"process",value:function(t){if(!d.isValidLabel(t))return this.lines.finalize();var e=this.parent.fontOptions;t=t.replace(/\r\n/g,"\n"),t=t.replace(/\r/g,"\n");var i=String(t).split("\n"),o=i.length;if(e.multi)for(var n=0;n<o;n++){var s=this.splitBlocks(i[n],e.multi);if(void 0!==s)if(0!==s.length){if(e.maxWdt>0)for(var r=0;r<s.length;r++){var a=s[r].mod,h=s[r].text;this.splitStringIntoLines(h,a,!0)}else for(var l=0;l<s.length;l++){var u=s[l].mod,c=s[l].text;this.lines.append(c,u)}this.lines.newLine()}else this.lines.newLine("")}else if(e.maxWdt>0)for(var p=0;p<o;p++)this.splitStringIntoLines(i[p]);else for(var f=0;f<o;f++)this.lines.newLine(i[f]);return this.lines.finalize()}},{key:"decodeMarkupSystem",value:function(t){var e="none";return"markdown"===t||"md"===t?e="markdown":!0!==t&&"html"!==t||(e="html"),e}},{key:"splitHtmlBlocks",value:function(t){var e=[],i={bold:!1,ital:!1,mono:!1,spacing:!1,position:0,buffer:"",modStack:[]};for(i.mod=function(){return 0===this.modStack.length?"normal":this.modStack[0]},i.modName=function(){return 0===this.modStack.length?"normal":"mono"===this.modStack[0]?"mono":i.bold&&i.ital?"boldital":i.bold?"bold":i.ital?"ital":void 0},i.emitBlock=function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(e.push({text:this.buffer,mod:this.modName()}),this.buffer="")},i.add=function(t){" "===t&&(i.spacing=!0),i.spacing&&(this.buffer+=" ",this.spacing=!1)," "!=t&&(this.buffer+=t)};i.position<t.length;){var o=t.charAt(i.position);/[ \t]/.test(o)?i.mono?i.add(o):i.spacing=!0:/</.test(o)?i.mono||i.bold||!/<b>/.test(t.substr(i.position,3))?i.mono||i.ital||!/<i>/.test(t.substr(i.position,3))?!i.mono&&/<code>/.test(t.substr(i.position,6))?(i.emitBlock(),i.mono=!0,i.modStack.unshift("mono"),i.position+=5):!i.mono&&"bold"===i.mod()&&/<\/b>/.test(t.substr(i.position,4))?(i.emitBlock(),i.bold=!1,i.modStack.shift(),i.position+=3):!i.mono&&"ital"===i.mod()&&/<\/i>/.test(t.substr(i.position,4))?(i.emitBlock(),i.ital=!1,i.modStack.shift(),i.position+=3):"mono"===i.mod()&&/<\/code>/.test(t.substr(i.position,7))?(i.emitBlock(),i.mono=!1,i.modStack.shift(),i.position+=6):i.add(o):(i.emitBlock(),i.ital=!0,i.modStack.unshift("ital"),i.position+=2):(i.emitBlock(),i.bold=!0,i.modStack.unshift("bold"),i.position+=2):/&/.test(o)?/&lt;/.test(t.substr(i.position,4))?(i.add("<"),i.position+=3):/&amp;/.test(t.substr(i.position,5))?(i.add("&"),i.position+=4):i.add("&"):i.add(o),i.position++}return i.emitBlock(),e}},{key:"splitMarkdownBlocks",value:function(t){var e=[],i={bold:!1,ital:!1,mono:!1,beginable:!0,spacing:!1,position:0,buffer:"",modStack:[]};for(i.mod=function(){return 0===this.modStack.length?"normal":this.modStack[0]},i.modName=function(){return 0===this.modStack.length?"normal":"mono"===this.modStack[0]?"mono":i.bold&&i.ital?"boldital":i.bold?"bold":i.ital?"ital":void 0},i.emitBlock=function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(e.push({text:this.buffer,mod:this.modName()}),this.buffer="")},i.add=function(t){" "===t&&(i.spacing=!0),i.spacing&&(this.buffer+=" ",this.spacing=!1)," "!=t&&(this.buffer+=t)};i.position<t.length;){var o=t.charAt(i.position);/[ \t]/.test(o)?(i.mono?i.add(o):i.spacing=!0,i.beginable=!0):/\\/.test(o)?i.position<t.length+1&&(i.position++,o=t.charAt(i.position),/ \t/.test(o)?i.spacing=!0:(i.add(o),i.beginable=!1)):i.mono||i.bold||!i.beginable&&!i.spacing||!/\*/.test(o)?i.mono||i.ital||!i.beginable&&!i.spacing||!/\_/.test(o)?!i.mono&&(i.beginable||i.spacing)&&/`/.test(o)?(i.emitBlock(),i.mono=!0,i.modStack.unshift("mono")):!i.mono&&"bold"===i.mod()&&/\*/.test(o)?i.position===t.length-1||/[.,_` \t\n]/.test(t.charAt(i.position+1))?(i.emitBlock(),i.bold=!1,i.modStack.shift()):i.add(o):!i.mono&&"ital"===i.mod()&&/\_/.test(o)?i.position===t.length-1||/[.,*` \t\n]/.test(t.charAt(i.position+1))?(i.emitBlock(),i.ital=!1,i.modStack.shift()):i.add(o):i.mono&&"mono"===i.mod()&&/`/.test(o)?i.position===t.length-1||/[.,*_ \t\n]/.test(t.charAt(i.position+1))?(i.emitBlock(),i.mono=!1,i.modStack.shift()):i.add(o):(i.add(o),i.beginable=!1):(i.emitBlock(),i.ital=!0,i.modStack.unshift("ital")):(i.emitBlock(),i.bold=!0,i.modStack.unshift("bold")),i.position++}return i.emitBlock(),e}},{key:"splitBlocks",value:function(t,e){var i=this.decodeMarkupSystem(e);return"none"===i?[{text:t,mod:"normal"}]:"markdown"===i?this.splitMarkdownBlocks(t):"html"===i?this.splitHtmlBlocks(t):void 0}},{key:"overMaxWidth",value:function(t){var e=this.ctx.measureText(t).width;return this.lines.curWidth()+e>this.parent.fontOptions.maxWdt}},{key:"getLongestFit",value:function(t){for(var e="",i=0;i<t.length;){var o=""===e?"":" ",n=e+o+t[i];if(this.overMaxWidth(n))break;e=n,i++}return i}},{key:"getLongestFitWord",value:function(t){for(var e=0;e<t.length&&!this.overMaxWidth(t.slice(0,e));)e++;return e}},{key:"splitStringIntoLines",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t=t.replace(/^( +)/g,"$1\r"),t=t.replace(/([^\r][^ ]*)( +)/g,"$1\r$2\r");for(var o=t.split("\r");o.length>0;){var n=this.getLongestFit(o);if(0===n){var s=o[0],r=this.getLongestFitWord(s);this.lines.newLine(s.slice(0,r),e),o[0]=s.slice(r)}else{var a=n;" "===o[n-1]?n--:" "===o[a]&&a++;var h=o.slice(0,n).join("");n==o.length&&i?this.lines.append(h,e):this.lines.newLine(h,e),o=o.slice(a)}}}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(90),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=function(){function t(e){(0,a.default)(this,t),this.measureText=e,this.current=0,this.width=0,this.height=0,this.lines=[]}return(0,d.default)(t,[{key:"_add",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"normal";void 0===this.lines[t]&&(this.lines[t]={width:0,height:0,blocks:[]});var o=e;void 0!==e&&""!==e||(o=" ");var n=this.measureText(o,i),r=(0,s.default)({},n.values);r.text=e,r.width=n.width,r.mod=i,void 0!==e&&""!==e||(r.width=0),this.lines[t].blocks.push(r),this.lines[t].width+=r.width}},{key:"curWidth",value:function(){var t=this.lines[this.current];return void 0===t?0:t.width}},{key:"append",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,t,e)}},{key:"newLine",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,t,e),this.current++}},{key:"determineLineHeights",value:function(){for(var t=0;t<this.lines.length;t++){var e=this.lines[t],i=0;if(void 0!==e.blocks)for(var o=0;o<e.blocks.length;o++){var n=e.blocks[o];i<n.height&&(i=n.height)}e.height=i}}},{key:"determineLabelSize",value:function(){for(var t=0,e=0,i=0;i<this.lines.length;i++){var o=this.lines[i];o.width>t&&(t=o.width),e+=o.height}this.width=t,this.height=e}},{key:"removeEmptyBlocks",value:function(){for(var t=[],e=0;e<this.lines.length;e++){var i=this.lines[e];if(0!==i.blocks.length&&(e!==this.lines.length-1||0!==i.width)){var o={};(0,s.default)(o,i),o.blocks=[];for(var n=void 0,r=[],a=0;a<i.blocks.length;a++){var h=i.blocks[a];0!==h.width?r.push(h):void 0===n&&(n=h)}0===r.length&&void 0!==n&&r.push(n),o.blocks=r,t.push(o)}}return t}},{key:"finalize",value:function(){this.determineLineHeights(),this.determineLabelSize();var t=this.removeEmptyBlocks();return{width:this.width,height:this.height,lines:t}}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i);this.width=o.width+this.margin.right+this.margin.left,this.height=o.height+this.margin.top+this.margin.bottom,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this.initContextForDraw(t,s),t.roundRect(this.left,this.top,this.width,this.height,s.borderRadius),this.performFill(t,s),this.updateBoundingBox(e,i,t,o,n),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,n)}},{key:"updateBoundingBox",value:function(t,e,i,o,n){this._updateBoundingBox(t,e,i,o,n);var s=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(s)}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i}}]),e}(m.default);e.default=v},function(t,e,i){i(195),t.exports=i(7).Object.getPrototypeOf},function(t,e,i){var o=i(41),n=i(85);i(87)("getPrototypeOf",function(){return function(t){return n(o(t))}})},function(t,e,i){t.exports={default:i(197),__esModule:!0}},function(t,e,i){i(198),t.exports=i(7).Object.setPrototypeOf},function(t,e,i){var o=i(17);o(o.S,"Object",{setPrototypeOf:i(199).set})},function(t,e,i){var o=i(32),n=i(27),s=function(t,e){if(n(t),!o(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,o){try{o=i(80)(Function.call,i(89).f(Object.prototype,"__proto__").set,2),o(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,i){return s(t,i),e?t.__proto__=i:o(t,i),t}}({},!1):void 0),check:s}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(73),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i),n=Math.max(o.width+this.margin.right+this.margin.left,o.height+this.margin.top+this.margin.bottom);this.options.size=n/2,this.width=n,this.height=n,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this._drawRawCircle(t,e,i,s),this.updateBoundingBox(e,i),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,i,o,n)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),.5*this.width}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(73),m=o(f),v=function(t){function e(t,i,o,n,r){(0,a.default)(this,e);var h=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return h.setImages(n,r),h}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var o=2*this.options.size;return this.width=o,this.height=o,void(this.radius=.5*this.width)}this.needsRefresh(e,i)&&this._resizeImage()}},{key:"draw",value:function(t,e,i,o,n,s){this.switchImages(o),this.resize(),this.left=e-this.width/2,this.top=i-this.height/2,this._drawRawCircle(t,e,i,s),t.save(),t.clip(),this._drawImageAtPosition(t,s),t.restore(),this._drawImageLabel(t,e,i,o,n),this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size,this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),.5*this.width}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t,e,i){if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i),n=o.width+this.margin.right+this.margin.left;this.width=n,this.height=n,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this.initContextForDraw(t,s),t.database(e-this.width/2,i-this.height/2,this.width,this.height),this.performFill(t,s),this.updateBoundingBox(e,i,t,o,n),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,n)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"diamond",4,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"circle",2,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),this.options.size}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i);this.height=2*o.height,this.width=o.width+o.height,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-.5*this.width,this.top=i-.5*this.height,this.initContextForDraw(t,s),t.ellipse_vis(this.left,this.top,this.width,this.height),this.performFill(t,s),this.updateBoundingBox(e,i,t,o,n),this.labelModule.draw(t,e,i,o,n)}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=.5*this.width,o=.5*this.height,n=Math.sin(e)*i,s=Math.cos(e)*o;return i*o/Math.sqrt(n*n+s*s)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t,e,i){this.needsRefresh(e,i)&&(this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)},this.width=this.iconSize.width+this.margin.right+this.margin.left,this.height=this.iconSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(t,e,i,o,n,s){if(this.resize(t,o,n),this.options.icon.size=this.options.icon.size||50,this.left=e-this.width/2,this.top=i-this.height/2,this._icon(t,e,i,o,n,s),void 0!==this.options.label){this.labelModule.draw(t,this.left+this.iconSize.width/2+this.margin.left,i+this.height/2+5,o)}this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){if(this.boundingBox.top=e-.5*this.options.icon.size,this.boundingBox.left=t-.5*this.options.icon.size,this.boundingBox.right=t+.5*this.options.icon.size,this.boundingBox.bottom=e+.5*this.options.icon.size,void 0!==this.options.label&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+5)}}},{key:"_icon",value:function(t,e,i,o,n,s){var r=Number(this.options.icon.size);void 0!==this.options.icon.code?(t.font=(o?"bold ":"")+r+"px "+this.options.icon.face,t.fillStyle=this.options.icon.color||"black",t.textAlign="center",t.textBaseline="middle",this.enableShadow(t,s),t.fillText(this.options.icon.code,e,i),this.disableShadow(t,s)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(73),m=o(f),v=function(t){function e(t,i,o,n,r){(0,a.default)(this,e);var h=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return h.setImages(n,r),h}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var o=2*this.options.size;return this.width=o,void(this.height=o)}this.needsRefresh(e,i)&&this._resizeImage()}},{key:"draw",value:function(t,e,i,o,n,s){if(this.switchImages(o),this.resize(),this.left=e-this.width/2,this.top=i-this.height/2,!0===this.options.shapeProperties.useBorderWithImage){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth,h=(o?a:r)/this.body.view.scale;t.lineWidth=Math.min(this.width,h),t.beginPath(),t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,t.rect(this.left-.5*t.lineWidth,this.top-.5*t.lineWidth,this.width+t.lineWidth,this.height+t.lineWidth),t.fill(),this.performStroke(t,s),t.closePath()}this._drawImageAtPosition(t,s),this._drawImageLabel(t,e,i,o,n),this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){this.resize(),this._updateBoundingBox(t,e),void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}
+}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"square",2,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"hexagon",4,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"star",4,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t,e,i){this.needsRefresh(e,i)&&(this.textSize=this.labelModule.getTextSize(t,e,i),this.width=this.textSize.width+this.margin.right+this.margin.left,this.height=this.textSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this.enableShadow(t,s),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,n),this.disableShadow(t,s),this.updateBoundingBox(e,i,t,o,n)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"triangle",3,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"triangleDown",3,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(11),l=i(12),u=i(74).default,c=function(){function t(e,i,o){var n=this;(0,s.default)(this,t),this.body=e,this.images=i,this.groups=o,this.body.functions.createEdge=this.create.bind(this),this.edgesListeners={add:function(t,e){n.add(e.items)},update:function(t,e){n.update(e.items)},remove:function(t,e){n.remove(e.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1,type:"arrow"},middle:{enabled:!1,scaleFactor:1,type:"arrow"},from:{enabled:!1,scaleFactor:1,type:"arrow"}},arrowStrikethrough:!0,color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal",multi:!1,vadjust:0,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"courier new",vadjust:2}},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,o){if(e===t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)}},selectionWidth:1.5,selfReferenceSize:20,shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},h.deepExtend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("_forceDisableDynamicCurves",function(e){var i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];"dynamic"===e&&(e="continuous");var o=!1;for(var n in t.body.edges)if(t.body.edges.hasOwnProperty(n)){var s=t.body.edges[n],r=t.body.data.edges._data[n];if(void 0!==r){var a=r.smooth;void 0!==a&&!0===a.enabled&&"dynamic"===a.type&&(void 0===e?s.setOptions({smooth:!1}):s.setOptions({smooth:{type:e}}),o=!0)}}!0===i&&!0===o&&t.body.emitter.emit("_dataChanged")}),this.body.emitter.on("_dataUpdated",function(){t.reconnectEdges()}),this.body.emitter.on("refreshEdges",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){h.forEach(t.edgesListeners,function(e,i){t.body.data.edges&&t.body.data.edges.off(i,e)}),delete t.body.functions.createEdge,delete t.edgesListeners.add,delete t.edgesListeners.update,delete t.edgesListeners.remove,delete t.edgesListeners})}},{key:"setOptions",value:function(t){if(void 0!==t){u.parseOptions(this.options,t,!0,this.defaultOptions,!0);var e=!1;if(void 0!==t.smooth)for(var i in this.body.edges)this.body.edges.hasOwnProperty(i)&&(e=this.body.edges[i].updateEdgeType()||e);if(void 0!==t.font)for(var o in this.body.edges)this.body.edges.hasOwnProperty(o)&&this.body.edges[o].updateLabelModule();void 0===t.hidden&&void 0===t.physics&&!0!==e||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=this.body.data.edges;if(t instanceof d||t instanceof l)this.body.data.edges=t;else if(Array.isArray(t))this.body.data.edges=new d,this.body.data.edges.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.edges=new d}if(o&&h.forEach(this.edgesListeners,function(t,e){o.off(e,t)}),this.body.edges={},this.body.data.edges){h.forEach(this.edgesListeners,function(t,i){e.body.data.edges.on(i,t)});var n=this.body.data.edges.getIds();this.add(n,!0)}this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),!1===i&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.edges,o=this.body.data.edges,n=0;n<t.length;n++){var s=t[n],r=i[s];r&&r.disconnect();var a=o.get(s,{showInternalIds:!0});i[s]=this.create(a)}this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),!1===e&&this.body.emitter.emit("_dataChanged")}},{key:"update",value:function(t){for(var e=this.body.edges,i=this.body.data.edges,o=!1,n=0;n<t.length;n++){var s=t[n],r=i.get(s),a=e[s];void 0!==a?(a.disconnect(),o=a.setOptions(r)||o,a.connect()):(this.body.edges[s]=this.create(r),o=!0)}!0===o?(this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),this.body.emitter.emit("_dataChanged")):this.body.emitter.emit("_dataUpdated")}},{key:"remove",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(0!==t.length){var i=this.body.edges;h.forEach(t,function(t){var e=i[t];void 0!==e&&e.remove()}),e&&this.body.emitter.emit("_dataChanged")}}},{key:"refresh",value:function(){var t=this;h.forEach(this.body.edges,function(e,i){var o=t.body.data.edges._data[i];void 0!==o&&e.setOptions(o)})}},{key:"create",value:function(t){return new u(t,this.body,this.options,this.defaultOptions)}},{key:"reconnectEdges",value:function(){var t,e=this.body.nodes,i=this.body.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[]);for(t in i)if(i.hasOwnProperty(t)){var o=i[t];o.from=null,o.to=null,o.connect()}}},{key:"getConnectedNodes",value:function(t){var e=[];if(void 0!==this.body.edges[t]){var i=this.body.edges[t];void 0!==i.fromId&&e.push(i.fromId),void 0!==i.toId&&e.push(i.toId)}return e}},{key:"_updateState",value:function(){this._addMissingEdges(),this._removeInvalidEdges()}},{key:"_removeInvalidEdges",value:function(){var t=this,e=[];h.forEach(this.body.edges,function(i,o){var n=t.body.nodes[i.toId],s=t.body.nodes[i.fromId];void 0!==n&&!0===n.isCluster||void 0!==s&&!0===s.isCluster||void 0!==n&&void 0!==s||e.push(o)}),this.remove(e,!1)}},{key:"_addMissingEdges",value:function(){var t=this.body.edges,e=this.body.data.edges,i=[];e.forEach(function(e,o){void 0===t[o]&&i.push(o)}),this.add(i,!0)}}]),t}();e.default=c},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(30),s=o(n),r=i(3),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(4),p=o(c),f=i(5),m=o(f),v=i(216),g=o(v),y=function(t){function e(t,i,o){return(0,d.default)(this,e),(0,p.default)(this,(e.__proto__||(0,a.default)(e)).call(this,t,i,o))}return(0,m.default)(e,t),(0,u.default)(e,[{key:"_line",value:function(t,e,i){var o=i[0],n=i[1];this._bezierCurve(t,e,o,n)}},{key:"_getViaCoordinates",value:function(){var t=this.from.x-this.to.x,e=this.from.y-this.to.y,i=void 0,o=void 0,n=void 0,s=void 0,r=this.options.smooth.roundness;return(Math.abs(t)>Math.abs(e)||!0===this.options.smooth.forceDirection||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(o=this.from.y,s=this.to.y,i=this.from.x-r*t,n=this.to.x+r*t):(o=this.from.y-r*e,s=this.to.y+r*e,i=this.from.x,n=this.to.x),[{x:i,y:o},{x:n,y:s}]}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,r){var a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates(),h=(0,s.default)(a,2),d=h[0],l=h[1];return this._getDistanceToBezierEdge(t,e,i,o,n,r,d,l)}},{key:"getPoint",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=(0,s.default)(e,2),o=i[0],n=i[1],r=t,a=[];return a[0]=Math.pow(1-r,3),a[1]=3*r*Math.pow(1-r,2),a[2]=3*Math.pow(r,2)*(1-r),a[3]=Math.pow(r,3),{x:a[0]*this.fromPoint.x+a[1]*o.x+a[2]*n.x+a[3]*this.toPoint.x,y:a[0]*this.fromPoint.y+a[1]*o.y+a[2]*n.y+a[3]*this.toPoint.y}}}]),e}(g.default);e.default=y},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(75),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r,a){var h=1e9,d=void 0,l=void 0,u=void 0,c=void 0,p=void 0,f=t,m=e,v=[0,0,0,0];for(l=1;l<10;l++)u=.1*l,v[0]=Math.pow(1-u,3),v[1]=3*u*Math.pow(1-u,2),v[2]=3*Math.pow(u,2)*(1-u),v[3]=Math.pow(u,3),c=v[0]*t+v[1]*r.x+v[2]*a.x+v[3]*i,p=v[0]*e+v[1]*r.y+v[2]*a.y+v[3]*o,l>0&&(d=this._getDistanceToLine(f,m,c,p,n,s),h=d<h?d:h),f=c,m=p;return h}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(30),s=o(n),r=i(3),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(4),p=o(c),f=i(5),m=o(f),v=i(75),g=o(v),y=function(t){function e(t,i,o){(0,d.default)(this,e);var n=(0,p.default)(this,(e.__proto__||(0,a.default)(e)).call(this,t,i,o));return n._boundFunction=function(){n.positionBezierNode()},n.body.emitter.on("_repositionBezierNodes",n._boundFunction),n}return(0,m.default)(e,t),(0,u.default)(e,[{key:"setOptions",value:function(t){var e=!1;this.options.physics!==t.physics&&(e=!0),this.options=t,this.id=this.options.id,this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to],this.setupSupportNode(),this.connect(),!0===e&&(this.via.setOptions({physics:this.options.physics}),this.positionBezierNode())}},{key:"connect",value:function(){this.from=this.body.nodes[this.options.from],this.to=this.body.nodes[this.options.to],void 0===this.from||void 0===this.to||!1===this.options.physics?this.via.setOptions({physics:!1}):this.from.id===this.to.id?this.via.setOptions({physics:!1}):this.via.setOptions({physics:!0})}},{key:"cleanup",value:function(){return this.body.emitter.off("_repositionBezierNodes",this._boundFunction),void 0!==this.via&&(delete this.body.nodes[this.via.id],this.via=void 0,!0)}},{key:"setupSupportNode",value:function(){if(void 0===this.via){var t="edgeId:"+this.id,e=this.body.functions.createNode({id:t,shape:"circle",physics:!0,hidden:!0});this.body.nodes[t]=e,this.via=e,this.via.parentEdgeId=this.id,this.positionBezierNode()}}},{key:"positionBezierNode",value:function(){void 0!==this.via&&void 0!==this.from&&void 0!==this.to?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):void 0!==this.via&&(this.via.x=0,this.via.y=0)}},{key:"_line",value:function(t,e,i){this._bezierCurve(t,e,i)}},{key:"getViaNode",value:function(){return this.via}},{key:"getPoint",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.via,i=t,o=void 0,n=void 0;if(this.from===this.to){var r=this._getCircleData(this.from),a=(0,s.default)(r,3),h=a[0],d=a[1],l=a[2],u=2*Math.PI*(1-i);o=h+l*Math.sin(u),n=d+l-l*(1-Math.cos(u))}else o=Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*e.x+Math.pow(i,2)*this.toPoint.x,n=Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*e.y+Math.pow(i,2)*this.toPoint.y;return{x:o,y:n}}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e,this.via)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){return this._getDistanceToBezierEdge(t,e,i,o,n,s,this.via)}}]),e}(g.default);e.default=y},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(75),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_line",value:function(t,e,i){this._bezierCurve(t,e,i)}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_getViaCoordinates",value:function(){var t=void 0,e=void 0,i=this.options.smooth.roundness,o=this.options.smooth.type,n=Math.abs(this.from.x-this.to.x),s=Math.abs(this.from.y-this.to.y);if("discrete"===o||"diagonalCross"===o){var r=void 0,a=void 0;r=a=n<=s?i*s:i*n,this.from.x>this.to.x&&(r=-r),this.from.y>=this.to.y&&(a=-a),t=this.from.x+r,e=this.from.y+a,"discrete"===o&&(n<=s?t=n<i*s?this.from.x:t:e=s<i*n?this.from.y:e)}else if("straightCross"===o){var h=(1-i)*n,d=(1-i)*s;n<=s?(h=0,this.from.y<this.to.y&&(d=-d)):(this.from.x<this.to.x&&(h=-h),d=0),t=this.to.x+h,e=this.to.y+d}else if("horizontal"===o){var l=(1-i)*n;this.from.x<this.to.x&&(l=-l),t=this.to.x+l,e=this.from.y}else if("vertical"===o){var u=(1-i)*s;this.from.y<this.to.y&&(u=-u),t=this.from.x,e=this.to.y+u}else if("curvedCW"===o){n=this.to.x-this.from.x,s=this.from.y-this.to.y;var c=Math.sqrt(n*n+s*s),p=Math.PI,f=Math.atan2(s,n),m=(f+(.5*i+.5)*p)%(2*p);t=this.from.x+(.5*i+.5)*c*Math.sin(m),e=this.from.y+(.5*i+.5)*c*Math.cos(m)}else if("curvedCCW"===o){n=this.to.x-this.from.x,s=this.from.y-this.to.y;var v=Math.sqrt(n*n+s*s),g=Math.PI,y=Math.atan2(s,n),b=(y+(.5*-i+.5)*g)%(2*g);t=this.from.x+(.5*i+.5)*v*Math.sin(b),e=this.from.y+(.5*i+.5)*v*Math.cos(b)}else{var _=void 0,w=void 0;_=w=n<=s?i*s:i*n,this.from.x>this.to.x&&(_=-_),this.from.y>=this.to.y&&(w=-w),t=this.from.x+_,e=this.from.y+w,n<=s?t=this.from.x<=this.to.x?this.to.x<t?this.to.x:t:this.to.x>t?this.to.x:t:e=this.from.y>=this.to.y?this.to.y>e?this.to.y:e:this.to.y<e?this.to.y:e}return{x:t,y:e}}},{key:"_findBorderPosition",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._findBorderPositionBezier(t,e,i.via)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){var r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(t,e,i,o,n,s,r)}},{key:"getPoint",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=t;return{x:Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*e.x+Math.pow(i,2)*this.toPoint.x,y:Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*e.y+Math.pow(i,2)*this.toPoint.y}}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(118),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_line",value:function(t,e){t.beginPath(),t.moveTo(this.fromPoint.x,this.fromPoint.y),t.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(t,e),t.stroke(),this.disableShadow(t,e)}},{key:"getViaNode",value:function(){}},{key:"getPoint",value:function(t){return{x:(1-t)*this.fromPoint.x+t*this.toPoint.x,y:(1-t)*this.fromPoint.y+t*this.toPoint.y}}},{key:"_findBorderPosition",value:function(t,e){var i=this.to,o=this.from;t.id===this.from.id&&(i=this.from,o=this.to);var n=Math.atan2(i.y-o.y,i.x-o.x),s=i.x-o.x,r=i.y-o.y,a=Math.sqrt(s*s+r*r),h=t.distanceToBorder(e,n),d=(a-h)/a,l={};return l.x=(1-d)*o.x+d*i.x,l.y=(1-d)*o.y+d*i.y,l}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){return this._getDistanceToLine(t,e,i,o,n,s)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(8),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(120).default,u=i(221).default,c=i(222).default,p=i(223).default,f=i(224).default,m=i(121).default,v=i(225).default,g=i(226).default,y=i(2),b=i(119).default,_=function(){function t(e){(0,a.default)(this,t),this.body=e,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0},y.extend(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}return(0,d.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("initPhysics",function(){t.initPhysics()}),this.body.emitter.on("_layoutFailed",function(){t.layoutFailed=!0}),this.body.emitter.on("resetPhysics",function(){t.stopSimulation(),t.ready=!1}),this.body.emitter.on("disablePhysics",function(){t.physicsEnabled=!1,t.stopSimulation()}),this.body.emitter.on("restorePhysics",function(){t.setOptions(t.options),!0===t.ready&&t.startSimulation()}),this.body.emitter.on("startSimulation",function(){!0===t.ready&&t.startSimulation()}),this.body.emitter.on("stopSimulation",function(){t.stopSimulation()}),this.body.emitter.on("destroy",function(){t.stopSimulation(!1),t.body.emitter.off()}),this.body.emitter.on("_dataChanged",function(){t.updatePhysicsData()})}},{key:"setOptions",value:function(t){void 0!==t&&(!1===t?(this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation()):!0===t?(this.options.enabled=!0,this.physicsEnabled=!0,this.startSimulation()):(this.physicsEnabled=!0,y.selectiveNotDeepExtend(["stabilization"],this.options,t),y.mergeOptions(this.options,t,"stabilization"),void 0===t.enabled&&(this.options.enabled=!0),!1===this.options.enabled&&(this.physicsEnabled=!1,this.stopSimulation()),this.timestep=this.options.timestep)),this.init()}},{key:"init",value:function(){var t;"forceAtlas2Based"===this.options.solver?(t=this.options.forceAtlas2Based,this.nodesSolver=new v(this.body,this.physicsBody,t),this.edgesSolver=new p(this.body,this.physicsBody,t),this.gravitySolver=new g(this.body,this.physicsBody,t)):"repulsion"===this.options.solver?(t=this.options.repulsion,this.nodesSolver=new u(this.body,this.physicsBody,t),this.edgesSolver=new p(this.body,this.physicsBody,t),this.gravitySolver=new m(this.body,this.physicsBody,t)):"hierarchicalRepulsion"===this.options.solver?(t=this.options.hierarchicalRepulsion,this.nodesSolver=new c(this.body,this.physicsBody,t),this.edgesSolver=new f(this.body,this.physicsBody,t),this.gravitySolver=new m(this.body,this.physicsBody,t)):(t=this.options.barnesHut,this.nodesSolver=new l(this.body,this.physicsBody,t),this.edgesSolver=new p(this.body,this.physicsBody,t),this.gravitySolver=new m(this.body,this.physicsBody,t)),this.modelOptions=t}},{key:"initPhysics",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?!0===this.options.stabilization.enabled?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}},{key:"startSimulation",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),void 0===this.viewFunction&&(this.viewFunction=this.simulationStep.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))):this.body.emitter.emit("_redraw")}},{key:"stopSimulation",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.stabilized=!0,!0===t&&this._emitStabilized(),void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.viewFunction=void 0,!0===t&&this.body.emitter.emit("_stopRendering"))}},{key:"simulationStep",value:function(){var t=Date.now();this.physicsTick(),(Date.now()-t<.4*this.simulationInterval||!0===this.runDoubleSpeed)&&!1===this.stabilized&&(this.physicsTick(),this.runDoubleSpeed=!0),!0===this.stabilized&&this.stopSimulation()}},{key:"_emitStabilized",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||!0===this.startedStabilization)&&setTimeout(function(){t.body.emitter.emit("stabilized",{iterations:e}),t.startedStabilization=!1,t.stabilizationIterations=0},0)}},{key:"physicsStep",value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve(),this.moveNodes()}},{key:"adjustTimeStep",value:function(){!0===this._evaluateStepQuality()?this.timestep=1.2*this.timestep:this.timestep/1.2<this.options.timestep?this.timestep=this.options.timestep:(this.adaptiveCounter=-1,this.timestep=Math.max(this.options.timestep,this.timestep/1.2))}},{key:"physicsTick",value:function(){if(this._startStabilizing(),!0!==this.stabilized){if(!0===this.adaptiveTimestep&&!0===this.adaptiveTimestepEnabled){this.adaptiveCounter%this.adaptiveInterval==0?(this.timestep=2*this.timestep,this.physicsStep(),this.revert(),this.timestep=.5*this.timestep,this.physicsStep(),this.physicsStep(),this.adjustTimeStep()):this.physicsStep(),this.adaptiveCounter+=1}else this.timestep=this.options.timestep,this.physicsStep();!0===this.stabilized&&this.revert(),this.stabilizationIterations++}}},{key:"updatePhysicsData",value:function(){this.physicsBody.forces={},this.physicsBody.physicsNodeIndices=[],this.physicsBody.physicsEdgeIndices=[];var t=this.body.nodes,e=this.body.edges;for(var i in t)t.hasOwnProperty(i)&&!0===t[i].options.physics&&this.physicsBody.physicsNodeIndices.push(t[i].id);for(var o in e)e.hasOwnProperty(o)&&!0===e[o].options.physics&&this.physicsBody.physicsEdgeIndices.push(e[o].id);for(var n=0;n<this.physicsBody.physicsNodeIndices.length;n++){var s=this.physicsBody.physicsNodeIndices[n];this.physicsBody.forces[s]={x:0,y:0},void 0===this.physicsBody.velocities[s]&&(this.physicsBody.velocities[s]={x:0,y:0})}for(var r in this.physicsBody.velocities)void 0===t[r]&&delete this.physicsBody.velocities[r]}},{key:"revert",value:function(){var t=(0,s.default)(this.previousStates),e=this.body.nodes,i=this.physicsBody.velocities;this.referenceState={};for(var o=0;o<t.length;o++){var n=t[o];void 0!==e[n]?!0===e[n].options.physics&&(this.referenceState[n]={positions:{x:e[n].x,y:e[n].y}},i[n].x=this.previousStates[n].vx,i[n].y=this.previousStates[n].vy,e[n].x=this.previousStates[n].x,e[n].y=this.previousStates[n].y):delete this.previousStates[n]}}},{key:"_evaluateStepQuality",value:function(){var t=void 0,e=void 0,i=this.body.nodes,o=this.referenceState;for(var n in this.referenceState)if(this.referenceState.hasOwnProperty(n)&&void 0!==i[n]&&(t=i[n].x-o[n].positions.x,e=i[n].y-o[n].positions.y,Math.sqrt(Math.pow(t,2)+Math.pow(e,2))>.3))return!1;return!0}},{key:"moveNodes",value:function(){for(var t=this.physicsBody.physicsNodeIndices,e=0,i=0,o=0;o<t.length;o++){var n=t[o],s=this._performStep(n);e=Math.max(e,s),i+=s}this.adaptiveTimestepEnabled=i/t.length<5,this.stabilized=e<this.options.minVelocity}},{key:"calculateComponentVelocity",value:function(t,e,i){t+=(e-this.modelOptions.damping*t)/i*this.timestep;var o=this.options.maxVelocity||1e9;return Math.abs(t)>o&&(t=t>0?o:-o),t}},{key:"_performStep",value:function(t){var e=this.body.nodes[t],i=this.physicsBody.forces[t],o=this.physicsBody.velocities[t];return this.previousStates[t]={x:e.x,y:e.y,vx:o.x,vy:o.y},!1===e.options.fixed.x?(o.x=this.calculateComponentVelocity(o.x,i.x,e.options.mass),e.x+=o.x*this.timestep):(i.x=0,o.x=0),!1===e.options.fixed.y?(o.y=this.calculateComponentVelocity(o.y,i.y,e.options.mass),e.y+=o.y*this.timestep):(i.y=0,o.y=0),Math.sqrt(Math.pow(o.x,2)+Math.pow(o.y,2))}},{key:"_freezeNodes",value:function(){var t=this.body.nodes;for(var e in t)if(t.hasOwnProperty(e)&&t[e].x&&t[e].y){var i=t[e].options.fixed;this.freezeCache[e]={x:i.x,y:i.y},i.x=!0,i.y=!0}}},{key:"_restoreFrozenNodes",value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&void 0!==this.freezeCache[e]&&(t[e].options.fixed.x=this.freezeCache[e].x,t[e].options.fixed.y=this.freezeCache[e].y);this.freezeCache={}}},{key:"stabilize",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.stabilization.iterations;if("number"!=typeof e&&(e=this.options.stabilization.iterations,console.log("The stabilize method needs a numeric amount of iterations. Switching to default: ",e)),0===this.physicsBody.physicsNodeIndices.length)return void(this.ready=!0);this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=e,!0===this.options.stabilization.onlyDynamicEdges&&this._freezeNodes(),this.stabilizationIterations=0,setTimeout(function(){return t._stabilizationBatch()},0)}},{key:"_startStabilizing",value:function(){return!0!==this.startedStabilization&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0,!0)}},{key:"_stabilizationBatch",value:function(){var t=this,e=function(){return!1===t.stabilized&&t.stabilizationIterations<t.targetIterations},i=function(){t.body.emitter.emit("stabilizationProgress",{iterations:t.stabilizationIterations,total:t.targetIterations})};this._startStabilizing()&&i();for(var o=0;e()&&o<this.options.stabilization.updateInterval;)this.physicsTick(),o++;i(),e()?setTimeout(this._stabilizationBatch.bind(this),0):this._finalizeStabilization()}},{key:"_finalizeStabilization",value:function(){this.body.emitter.emit("_allowRedraw"),!0===this.options.stabilization.fit&&this.body.emitter.emit("fit"),!0===this.options.stabilization.onlyDynamicEdges&&this._restoreFrozenNodes(),this.body.emitter.emit("stabilizationIterationsDone"),this.body.emitter.emit("_requestRedraw"),!0===this.stabilized?this._emitStabilized():this.startSimulation(),this.ready=!0}},{key:"_drawForces",value:function(t){for(var e=0;e<this.physicsBody.physicsNodeIndices.length;e++){var i=this.physicsBody.physicsNodeIndices[e],o=this.body.nodes[i],n=this.physicsBody.forces[i],s=Math.sqrt(Math.pow(n.x,2)+Math.pow(n.x,2)),r=Math.min(Math.max(5,s),15),a=3*r,h=y.HSVToHex((180-180*Math.min(1,Math.max(0,.03*s)))/360,1,1),d={x:o.x+20*n.x,y:o.y+20*n.y};t.lineWidth=r,t.strokeStyle=h,t.beginPath(),t.moveTo(o.x,o.y),t.lineTo(d.x,d.y),t.stroke();var l=Math.atan2(n.y,n.x);t.fillStyle=h,b.draw(t,{type:"arrow",point:d,angle:l,length:a}),t.fill()}}}]),t}();e.default=_},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(e,i,o){(0,s.default)(this,t),this.body=e,this.physicsBody=i,this.setOptions(o)}return(0,a.default)(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t,e,i,o,n,s,r,a,h=this.body.nodes,d=this.physicsBody.physicsNodeIndices,l=this.physicsBody.forces,u=this.options.nodeDistance,c=-2/3/u,p=0;p<d.length-1;p++){r=h[d[p]];for(var f=p+1;f<d.length;f++)a=h[d[f]],t=a.x-r.x,e=a.y-r.y,i=Math.sqrt(t*t+e*e),0===i&&(i=.1*Math.random(),t=i),i<2*u&&(s=i<.5*u?1:c*i+4/3,s/=i,o=t*s,n=e*s,l[r.id].x-=o,l[r.id].y-=n,l[a.id].x+=o,l[a.id].y+=n)}}}]),t}();e.default=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(e,i,o){(0,s.default)(this,t),this.body=e,this.physicsBody=i,this.setOptions(o)}return(0,a.default)(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){var t,e,i,o,n,s,r,a,h,d,l=this.body.nodes,u=this.physicsBody.physicsNodeIndices,c=this.physicsBody.forces,p=this.options.nodeDistance;for(h=0;h<u.length-1;h++)for(r=l[u[h]],d=h+1;d<u.length;d++)if(a=l[u[d]],r.level===a.level){t=a.x-r.x,e=a.y-r.y,i=Math.sqrt(t*t+e*e)
+;s=i<p?-Math.pow(.05*i,2)+Math.pow(.05*p,2):0,0===i?i=.01:s/=i,o=t*s,n=e*s,c[r.id].x-=o,c[r.id].y-=n,c[a.id].x+=o,c[a.id].y+=n}}}]),t}();e.default=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(e,i,o){(0,s.default)(this,t),this.body=e,this.physicsBody=i,this.setOptions(o)}return(0,a.default)(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t=void 0,e=void 0,i=this.physicsBody.physicsEdgeIndices,o=this.body.edges,n=void 0,s=void 0,r=void 0,a=0;a<i.length;a++)e=o[i[a]],!0===e.connected&&e.toId!==e.fromId&&void 0!==this.body.nodes[e.toId]&&void 0!==this.body.nodes[e.fromId]&&(void 0!==e.edgeType.via?(t=void 0===e.options.length?this.options.springLength:e.options.length,n=e.to,s=e.edgeType.via,r=e.from,this._calculateSpringForce(n,s,.5*t),this._calculateSpringForce(s,r,.5*t)):(t=void 0===e.options.length?1.5*this.options.springLength:e.options.length,this._calculateSpringForce(e.from,e.to,t)))}},{key:"_calculateSpringForce",value:function(t,e,i){var o=t.x-e.x,n=t.y-e.y,s=Math.max(Math.sqrt(o*o+n*n),.01),r=this.options.springConstant*(i-s)/s,a=o*r,h=n*r;void 0!==this.physicsBody.forces[t.id]&&(this.physicsBody.forces[t.id].x+=a,this.physicsBody.forces[t.id].y+=h),void 0!==this.physicsBody.forces[e.id]&&(this.physicsBody.forces[e.id].x-=a,this.physicsBody.forces[e.id].y-=h)}}]),t}();e.default=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(e,i,o){(0,s.default)(this,t),this.body=e,this.physicsBody=i,this.setOptions(o)}return(0,a.default)(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t,e,i,o,n,s,r,a,h=this.body.edges,d=this.physicsBody.physicsEdgeIndices,l=this.physicsBody.physicsNodeIndices,u=this.physicsBody.forces,c=0;c<l.length;c++){var p=l[c];u[p].springFx=0,u[p].springFy=0}for(var f=0;f<d.length;f++)e=h[d[f]],!0===e.connected&&(t=void 0===e.options.length?this.options.springLength:e.options.length,i=e.from.x-e.to.x,o=e.from.y-e.to.y,a=Math.sqrt(i*i+o*o),a=0===a?.01:a,r=this.options.springConstant*(t-a)/a,n=i*r,s=o*r,e.to.level!=e.from.level?(void 0!==u[e.toId]&&(u[e.toId].springFx-=n,u[e.toId].springFy-=s),void 0!==u[e.fromId]&&(u[e.fromId].springFx+=n,u[e.fromId].springFy+=s)):(void 0!==u[e.toId]&&(u[e.toId].x-=.5*n,u[e.toId].y-=.5*s),void 0!==u[e.fromId]&&(u[e.fromId].x+=.5*n,u[e.fromId].y+=.5*s)));r=1;for(var m,v,g=0;g<l.length;g++){var y=l[g];m=Math.min(r,Math.max(-r,u[y].springFx)),v=Math.min(r,Math.max(-r,u[y].springFy)),u[y].x+=m,u[y].y+=v}for(var b=0,_=0,w=0;w<l.length;w++){var x=l[w];b+=u[x].x,_+=u[x].y}for(var k=b/l.length,S=_/l.length,D=0;D<l.length;D++){var M=l[D];u[M].x-=k,u[M].y-=S}}}]),t}();e.default=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(120),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_calculateForces",value:function(t,e,i,o,n){0===t&&(t=.1*Math.random(),e=t),this.overlapAvoidanceFactor<1&&o.shape.radius&&(t=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,t-o.shape.radius));var s=o.edges.length+1,r=this.options.gravitationalConstant*n.mass*o.options.mass*s/Math.pow(t,2),a=e*r,h=i*r;this.physicsBody.forces[o.id].x+=a,this.physicsBody.forces[o.id].y+=h}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(121),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_calculateForces",value:function(t,e,i,o,n){if(t>0){var s=n.edges.length+1,r=this.options.centralGravity*s*n.options.mass;o[n.id].x=e*r,o[n.id].y=i*r}}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(8),s=o(n),r=i(6),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(2),p=i(76).default,f=i(228).default,m=i(74).default,v=i(47).default,g=function(){function t(e){var i=this;(0,d.default)(this,t),this.body=e,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},c.extend(this.options,this.defaultOptions),this.body.emitter.on("_resetData",function(){i.clusteredNodes={},i.clusteredEdges={}})}return(0,u.default)(t,[{key:"clusterByHubsize",value:function(t,e){void 0===t?t=this._getHubSize():"object"===(void 0===t?"undefined":(0,a.default)(t))&&(e=this._checkOptions(t),t=this._getHubSize());for(var i=[],o=0;o<this.body.nodeIndices.length;o++){var n=this.body.nodes[this.body.nodeIndices[o]];n.edges.length>=t&&i.push(n.id)}for(var s=0;s<i.length;s++)this.clusterByConnection(i[s],e,!0);this.body.emitter.emit("_dataChanged")}},{key:"cluster",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(void 0===e.joinCondition)throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options.");e=this._checkOptions(e);var o={},n={};c.forEach(this.body.nodes,function(i,s){var r=p.cloneOptions(i);!0===e.joinCondition(r)&&(o[s]=i,c.forEach(i.edges,function(e){void 0===t.clusteredEdges[e.id]&&(n[e.id]=e)}))}),this._cluster(o,n,e,i)}},{key:"clusterByEdgeCount",value:function(t,e){var i=this,o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];e=this._checkOptions(e);for(var n=[],r={},a=void 0,h=void 0,d=void 0,l=0;l<this.body.nodeIndices.length;l++){var u,c,f;!function(o){var l={},m={},v=i.body.nodeIndices[o],g=i.body.nodes[v];if(void 0===r[v]){d=0,h=[];for(var y=0;y<g.edges.length;y++)a=g.edges[y],void 0===i.clusteredEdges[a.id]&&(a.toId!==a.fromId&&d++,h.push(a));if(d===t){u=function(t){if(void 0===e.joinCondition||null===e.joinCondition)return!0;var i=p.cloneOptions(t);return e.joinCondition(i)};for(var b=!0,_=0;_<h.length;_++){a=h[_];var w=i._getConnectedId(a,v);if(!u(g)){b=!1;break}m[a.id]=a,l[v]=g,l[w]=i.body.nodes[w],r[v]=!0}if((0,s.default)(l).length>0&&(0,s.default)(m).length>0&&!0===b)if(c=function(){for(var t=0;t<n.length;++t)for(var e in l)if(void 0!==n[t].nodes[e])return n[t]},void 0!==(f=c())){for(var x in l)void 0===f.nodes[x]&&(f.nodes[x]=l[x]);for(var k in m)void 0===f.edges[k]&&(f.edges[k]=m[k])}else n.push({nodes:l,edges:m})}}}(l)}for(var l=0;l<n.length;l++)this._cluster(n[l].nodes,n[l].edges,e,!1);!0===o&&this.body.emitter.emit("_dataChanged")}},{key:"clusterOutliers",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(1,t,e)}},{key:"clusterBridges",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(2,t,e)}},{key:"clusterByConnection",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t)throw new Error("No nodeId supplied to clusterByConnection!");if(void 0===this.body.nodes[t])throw new Error("The nodeId given to clusterByConnection does not exist!");var o=this.body.nodes[t];e=this._checkOptions(e,o),void 0===e.clusterNodeProperties.x&&(e.clusterNodeProperties.x=o.x),void 0===e.clusterNodeProperties.y&&(e.clusterNodeProperties.y=o.y),void 0===e.clusterNodeProperties.fixed&&(e.clusterNodeProperties.fixed={},e.clusterNodeProperties.fixed.x=o.options.fixed.x,e.clusterNodeProperties.fixed.y=o.options.fixed.y);var n={},r={},a=o.id,h=p.cloneOptions(o);n[a]=o;for(var d=0;d<o.edges.length;d++){var l=o.edges[d];if(void 0===this.clusteredEdges[l.id]){var u=this._getConnectedId(l,a);if(void 0===this.clusteredNodes[u])if(u!==a)if(void 0===e.joinCondition)r[l.id]=l,n[u]=this.body.nodes[u];else{var c=p.cloneOptions(this.body.nodes[u]);!0===e.joinCondition(h,c)&&(r[l.id]=l,n[u]=this.body.nodes[u])}else r[l.id]=l}}var f=(0,s.default)(n).map(function(t){return n[t].id});for(m in n)if(n.hasOwnProperty(m))for(var m=n[m],v=0;v<m.edges.length;v++){var g=m.edges[v];f.indexOf(this._getConnectedId(g,m.id))>-1&&(r[g.id]=g)}this._cluster(n,r,e,i)}},{key:"_createClusterEdges",value:function(t,e,i,o){for(var n=void 0,r=void 0,a=void 0,h=void 0,d=void 0,l=void 0,u=(0,s.default)(t),c=[],p=0;p<u.length;p++){r=u[p],a=t[r];for(var f=0;f<a.edges.length;f++)n=a.edges[f],void 0===this.clusteredEdges[n.id]&&(n.toId==n.fromId?e[n.id]=n:n.toId==r?(h=i.id,d=n.fromId,l=d):(h=n.toId,d=i.id,l=h),void 0===t[l]&&c.push({edge:n,fromId:d,toId:h}))}for(var m=[],v=0;v<c.length;v++){var g=c[v],y=g.edge,b=function(t){for(var e=0;e<m.length;e++){var i=m[e],o=t.fromId===i.fromId&&t.toId===i.toId,n=t.fromId===i.toId&&t.toId===i.fromId;if(o||n)return i}return null}(g);null===b?(b=this._createClusteredEdge(g.fromId,g.toId,y,o),m.push(b)):b.clusteringEdgeReplacingIds.push(y.id),this.body.edges[y.id].edgeReplacedById=b.id,this._backupEdgeOptions(y),y.setOptions({physics:!1})}}},{key:"_checkOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return void 0===t.clusterEdgeProperties&&(t.clusterEdgeProperties={}),void 0===t.clusterNodeProperties&&(t.clusterNodeProperties={}),t}},{key:"_cluster",value:function(t,e,i){var o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(0!=(0,s.default)(t).length&&(1!=(0,s.default)(t).length||1==i.clusterNodeProperties.allowSingleNodeCluster)){for(var n in t)if(t.hasOwnProperty(n)&&void 0!==this.clusteredNodes[n])return;var r=c.deepExtend({},i.clusterNodeProperties);if(void 0!==i.processProperties){var a=[];for(var h in t)if(t.hasOwnProperty(h)){var d=p.cloneOptions(t[h]);a.push(d)}var l=[];for(var u in e)if(e.hasOwnProperty(u)&&"clusterEdge:"!==u.substr(0,12)){var m=p.cloneOptions(e[u],"edge");l.push(m)}if(!(r=i.processProperties(r,a,l)))throw new Error("The processProperties function does not return properties!")}void 0===r.id&&(r.id="cluster:"+c.randomUUID());var v=r.id;void 0===r.label&&(r.label="cluster");var g=void 0;void 0===r.x&&(g=this._getClusterPosition(t),r.x=g.x),void 0===r.y&&(void 0===g&&(g=this._getClusterPosition(t)),r.y=g.y),r.id=v;var y=this.body.functions.createNode(r,f);y.containedNodes=t,y.containedEdges=e,y.clusterEdgeProperties=i.clusterEdgeProperties,this.body.nodes[r.id]=y,this._clusterEdges(t,e,r,i.clusterEdgeProperties),r.id=void 0,!0===o&&this.body.emitter.emit("_dataChanged")}}},{key:"_backupEdgeOptions",value:function(t){void 0===this.clusteredEdges[t.id]&&(this.clusteredEdges[t.id]={physics:t.options.physics})}},{key:"_restoreEdge",value:function(t){var e=this.clusteredEdges[t.id];void 0!==e&&(t.setOptions({physics:e.physics}),delete this.clusteredEdges[t.id])}},{key:"isCluster",value:function(t){return void 0!==this.body.nodes[t]?!0===this.body.nodes[t].isCluster:(console.log("Node does not exist."),!1)}},{key:"_getClusterPosition",value:function(t){for(var e=(0,s.default)(t),i=t[e[0]].x,o=t[e[0]].x,n=t[e[0]].y,r=t[e[0]].y,a=void 0,h=1;h<e.length;h++)a=t[e[h]],i=a.x<i?a.x:i,o=a.x>o?a.x:o,n=a.y<n?a.y:n,r=a.y>r?a.y:r;return{x:.5*(i+o),y:.5*(n+r)}}},{key:"openCluster",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t)throw new Error("No clusterNodeId supplied to openCluster.");var o=this.body.nodes[t];if(void 0===o)throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(!0!==o.isCluster||void 0===o.containedNodes||void 0===o.containedEdges)throw new Error("The node:"+t+" is not a valid cluster.");var n=this.findNode(t),s=n.indexOf(t)-1;if(s>=0){var r=n[s];return this.body.nodes[r]._openChildCluster(t),delete this.body.nodes[t],void(!0===i&&this.body.emitter.emit("_dataChanged"))}var a=o.containedNodes,h=o.containedEdges;if(void 0!==e&&void 0!==e.releaseFunction&&"function"==typeof e.releaseFunction){var d={},l={x:o.x,y:o.y};for(var u in a)if(a.hasOwnProperty(u)){var p=this.body.nodes[u];d[u]={x:p.x,y:p.y}}var f=e.releaseFunction(l,d);for(var m in a)if(a.hasOwnProperty(m)){var v=this.body.nodes[m];void 0!==f[m]&&(v.x=void 0===f[m].x?o.x:f[m].x,v.y=void 0===f[m].y?o.y:f[m].y)}}else c.forEach(a,function(t){!1===t.options.fixed.x&&(t.x=o.x),!1===t.options.fixed.y&&(t.y=o.y)});for(var g in a)if(a.hasOwnProperty(g)){var y=this.body.nodes[g];y.vx=o.vx,y.vy=o.vy,y.setOptions({physics:!0}),delete this.clusteredNodes[g]}for(var b=[],_=0;_<o.edges.length;_++)b.push(o.edges[_]);for(var w=0;w<b.length;w++){for(var x=b[w],k=this._getConnectedId(x,t),S=this.clusteredNodes[k],D=0;D<x.clusteringEdgeReplacingIds.length;D++){var M=x.clusteringEdgeReplacingIds[D],C=this.body.edges[M];if(void 0!==C)if(void 0!==S){var O=this.body.nodes[S.clusterId];O.containedEdges[C.id]=C,delete h[C.id];var E=C.fromId,T=C.toId;C.toId==k?T=S.clusterId:E=S.clusterId,this._createClusteredEdge(E,T,C,O.clusterEdgeProperties,{hidden:!1,physics:!0})}else this._restoreEdge(C)}x.remove()}for(var P in h)h.hasOwnProperty(P)&&this._restoreEdge(h[P]);delete this.body.nodes[t],!0===i&&this.body.emitter.emit("_dataChanged")}},{key:"getNodesInCluster",value:function(t){var e=[];if(!0===this.isCluster(t)){var i=this.body.nodes[t].containedNodes;for(var o in i)i.hasOwnProperty(o)&&e.push(this.body.nodes[o].id)}return e}},{key:"findNode",value:function(t){for(var e=[],i=0,o=void 0;void 0!==this.clusteredNodes[t]&&i<100;){if(void 0===(o=this.body.nodes[t]))return[];e.push(o.id),t=this.clusteredNodes[t].clusterId,i++}return void 0===(o=this.body.nodes[t])?[]:(e.push(o.id),e.reverse(),e)}},{key:"updateClusteredNode",value:function(t,e){if(void 0===t)throw new Error("No clusteredNodeId supplied to updateClusteredNode.");if(void 0===e)throw new Error("No newOptions supplied to updateClusteredNode.");if(void 0===this.body.nodes[t])throw new Error("The clusteredNodeId supplied to updateClusteredNode does not exist.");this.body.nodes[t].setOptions(e),this.body.emitter.emit("_dataChanged")}},{key:"updateEdge",value:function(t,e){if(void 0===t)throw new Error("No startEdgeId supplied to updateEdge.");if(void 0===e)throw new Error("No newOptions supplied to updateEdge.");if(void 0===this.body.edges[t])throw new Error("The startEdgeId supplied to updateEdge does not exist.");for(var i=this.getClusteredEdges(t),o=0;o<i.length;o++){this.body.edges[i[o]].setOptions(e)}this.body.emitter.emit("_dataChanged")}},{key:"getClusteredEdges",value:function(t){for(var e=[],i=0;void 0!==t&&void 0!==this.body.edges[t]&&i<100;)e.push(this.body.edges[t].id),t=this.body.edges[t].edgeReplacedById,i++;return e.reverse(),e}},{key:"getBaseEdge",value:function(t){return this.getBaseEdges(t)[0]}},{key:"getBaseEdges",value:function(t){for(var e=[t],i=[],o=[],n=0;e.length>0&&n<100;){var s=e.pop();if(void 0!==s){var r=this.body.edges[s];if(void 0!==r){n++;var a=r.clusteringEdgeReplacingIds;if(void 0===a)o.push(s);else for(var h=0;h<a.length;++h){var d=a[h];-1===e.indexOf(a)&&-1===i.indexOf(a)&&e.push(d)}i.push(s)}}}return o}},{key:"_getConnectedId",value:function(t,e){return t.toId!=e?t.toId:(t.fromId,t.fromId)}},{key:"_getHubSize",value:function(){for(var t=0,e=0,i=0,o=0,n=0;n<this.body.nodeIndices.length;n++){var s=this.body.nodes[this.body.nodeIndices[n]];s.edges.length>o&&(o=s.edges.length),t+=s.edges.length,e+=Math.pow(s.edges.length,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r),h=Math.floor(t+2*a);return h>o&&(h=o),h}},{key:"_createClusteredEdge",value:function(t,e,i,o,n){var s=p.cloneOptions(i,"edge");c.deepExtend(s,o),s.from=t,s.to=e,s.id="clusterEdge:"+c.randomUUID(),void 0!==n&&c.deepExtend(s,n);var r=this.body.functions.createEdge(s);return r.clusteringEdgeReplacingIds=[i.id],r.connect(),this.body.edges[r.id]=r,r}},{key:"_clusterEdges",value:function(t,e,i,o){if(e instanceof m){var n=e,s={};s[n.id]=n,e=s}if(t instanceof v){var r=t,a={};a[r.id]=r,t=a}if(void 0===i||null===i)throw new Error("_clusterEdges: parameter clusterNode required");void 0===o&&(o=i.clusterEdgeProperties),this._createClusterEdges(t,e,i,o);for(var h in e)if(e.hasOwnProperty(h)&&void 0!==this.body.edges[h]){var d=this.body.edges[h];this._backupEdgeOptions(d),d.setOptions({physics:!1})}for(var l in t)t.hasOwnProperty(l)&&(this.clusteredNodes[l]={clusterId:i.id,node:this.body.nodes[l]},this.body.nodes[l].setOptions({physics:!1}))}},{key:"_getClusterNodeForNode",value:function(t){if(void 0!==t){var e=this.clusteredNodes[t];if(void 0!==e){var i=e.clusterId;if(void 0!==i)return this.body.nodes[i]}}}},{key:"_filter",value:function(t,e){var i=[];return c.forEach(t,function(t){e(t)&&i.push(t)}),i}},{key:"_updateState",value:function(){var t=this,e=void 0,i=[],o=[],n=function(e){c.forEach(t.body.nodes,function(t){!0===t.isCluster&&e(t)})};for(e in this.clusteredNodes)if(this.clusteredNodes.hasOwnProperty(e)){var r=this.body.nodes[e];void 0===r&&i.push(e)}n(function(t){for(var e=0;e<i.length;e++)delete t.containedNodes[i[e]]});for(var a=0;a<i.length;a++)delete this.clusteredNodes[i[a]];c.forEach(this.clusteredEdges,function(e){var i=t.body.edges[e];void 0!==i&&i.endPointsValid()||o.push(e)}),n(function(t){c.forEach(t.containedEdges,function(t,e){t.endPointsValid()||-1!==o.indexOf(e)||o.push(e)})}),c.forEach(this.body.edges,function(e,i){var n=!0,s=e.clusteringEdgeReplacingIds;if(void 0!==s){var r=0;c.forEach(s,function(e){var i=t.body.edges[e];void 0!==i&&i.endPointsValid()&&(r+=1)}),n=r>0}e.endPointsValid()&&n||o.push(i)}),n(function(e){c.forEach(o,function(i){delete e.containedEdges[i],c.forEach(e.edges,function(n,s){if(n.id===i)return void(e.edges[s]=null);n.clusteringEdgeReplacingIds=t._filter(n.clusteringEdgeReplacingIds,function(t){return-1===o.indexOf(t)})}),e.edges=t._filter(e.edges,function(t){return null!==t})})}),c.forEach(o,function(e){delete t.clusteredEdges[e]}),c.forEach(o,function(e){delete t.body.edges[e]});var h=(0,s.default)(this.body.edges);c.forEach(h,function(e){var i=t.body.edges[e],o=t._isClusteredNode(i.fromId)||t._isClusteredNode(i.toId);if(o!==t._isClusteredEdge(i.id)){if(!o)throw new Error("remove edge from clustering not implemented!");var n=t._getClusterNodeForNode(i.fromId);void 0!==n&&t._clusterEdges(t.body.nodes[i.fromId],i,n);var s=t._getClusterNodeForNode(i.toId);void 0!==s&&t._clusterEdges(t.body.nodes[i.toId],i,s)}});for(var d=!1,l=!0;l;)!function(){var e=[];n(function(t){var i=(0,s.default)(t.containedNodes).length,o=!0===t.options.allowSingleNodeCluster;(o&&i<1||!o&&i<2)&&e.push(t.id)});for(var i=0;i<e.length;++i)t.openCluster(e[i],{},!1);l=e.length>0,d=d||l}();d&&this._updateState()}},{key:"_isClusteredNode",value:function(t){return void 0!==this.clusteredNodes[t]}},{key:"_isClusteredEdge",value:function(t){return void 0!==this.clusteredEdges[t]}}]),t}();e.default=g},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(2),m=i(47).default,v=function(t){function e(t,i,o,n,r,h){(0,a.default)(this,e);var d=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o,n,r,h));return d.isCluster=!0,d.containedNodes={},d.containedEdges={},d}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_openChildCluster",value:function(t){var e=this,i=this.body.nodes[t];if(void 0===this.containedNodes[t])throw new Error("node with id: "+t+" not in current cluster");if(!i.isCluster)throw new Error("node with id: "+t+" is not a cluster");delete this.containedNodes[t],f.forEach(i.edges,function(t){delete e.containedEdges[t.id]}),f.forEach(i.containedNodes,function(t,i){e.containedNodes[i]=t}),i.containedNodes={},f.forEach(i.containedEdges,function(t,i){e.containedEdges[i]=t}),i.containedEdges={},f.forEach(i.edges,function(t){f.forEach(e.edges,function(i){var o=i.clusteringEdgeReplacingIds.indexOf(t.id);-1!==o&&(f.forEach(t.clusteringEdgeReplacingIds,function(t){i.clusteringEdgeReplacingIds.push(t),e.body.edges[t].edgeReplacedById=i.id}),i.clusteringEdgeReplacingIds.splice(o,1))})}),i.edges=[]}}]),e}(m);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(){var t;void 0!==window&&(t=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame),window.requestAnimationFrame=void 0===t?function(t){t()}:t}Object.defineProperty(e,"__esModule",{value:!0});var s=i(0),r=o(s),a=i(1),h=o(a),d=i(2),l=function(){function t(e,i){(0,r.default)(this,t),n(),this.body=e,this.canvas=i,this.redrawRequested=!1,this.renderTimer=void 0,this.requiresTimeout=!0,this.renderingActive=!1,this.renderRequests=0,this.allowRedraw=!0,this.dragging=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideNodesOnDrag:!1},d.extend(this.options,this.defaultOptions),this._determineBrowserMethod(),this.bindEventListeners()}return(0,h.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("dragStart",function(){t.dragging=!0}),this.body.emitter.on("dragEnd",function(){t.dragging=!1}),this.body.emitter.on("_resizeNodes",function(){t._resizeNodes()}),this.body.emitter.on("_redraw",function(){!1===t.renderingActive&&t._redraw()}),this.body.emitter.on("_blockRedraw",function(){t.allowRedraw=!1}),this.body.emitter.on("_allowRedraw",function(){t.allowRedraw=!0,t.redrawRequested=!1}),this.body.emitter.on("_requestRedraw",this._requestRedraw.bind(this)),this.body.emitter.on("_startRendering",function(){t.renderRequests+=1,t.renderingActive=!0,t._startRendering()}),this.body.emitter.on("_stopRendering",function(){t.renderRequests-=1,t.renderingActive=t.renderRequests>0,t.renderTimer=void 0}),this.body.emitter.on("destroy",function(){t.renderRequests=0,t.allowRedraw=!1,t.renderingActive=!1,!0===t.requiresTimeout?clearTimeout(t.renderTimer):window.cancelAnimationFrame(t.renderTimer),t.body.emitter.off()})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag"];d.selectiveDeepExtend(e,this.options,t)}}},{key:"_requestNextFrame",value:function(t,e){if("undefined"!=typeof window){var i=void 0,o=window;return!0===this.requiresTimeout?i=o.setTimeout(t,e):o.requestAnimationFrame&&(i=o.requestAnimationFrame(t)),i}}},{key:"_startRendering",value:function(){!0===this.renderingActive&&void 0===this.renderTimer&&(this.renderTimer=this._requestNextFrame(this._renderStep.bind(this),this.simulationInterval))}},{key:"_renderStep",value:function(){!0===this.renderingActive&&(this.renderTimer=void 0,!0===this.requiresTimeout&&this._startRendering(),this._redraw(),!1===this.requiresTimeout&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),this._redraw()}},{key:"_requestRedraw",value:function(){var t=this;!0!==this.redrawRequested&&!1===this.renderingActive&&!0===this.allowRedraw&&(this.redrawRequested=!0,this._requestNextFrame(function(){t._redraw(!1)},0))}},{key:"_redraw",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!0===this.allowRedraw){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1,0!==this.canvas.frame.canvas.width&&0!==this.canvas.frame.canvas.height||this.canvas.setSize(),this.canvas.setTransform();var e=this.canvas.getContext(),i=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;if(e.clearRect(0,0,i,o),0===this.canvas.frame.clientWidth)return;e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale),e.beginPath(),this.body.emitter.emit("beforeDrawing",e),e.closePath(),!1===t&&(!1===this.dragging||!0===this.dragging&&!1===this.options.hideEdgesOnDrag)&&this._drawEdges(e),(!1===this.dragging||!0===this.dragging&&!1===this.options.hideNodesOnDrag)&&this._drawNodes(e,t),e.beginPath(),this.body.emitter.emit("afterDrawing",e),e.closePath(),e.restore(),!0===t&&e.clearRect(0,0,i,o)}}},{key:"_resizeNodes",value:function(){this.canvas.setTransform();var t=this.canvas.getContext();t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale);var e=this.body.nodes,i=void 0;for(var o in e)e.hasOwnProperty(o)&&(i=e[o],i.resize(t),i.updateBoundingBox(t,i.selected));t.restore()}},{key:"_drawNodes",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.nodes,o=this.body.nodeIndices,n=void 0,s=[],r=this.canvas.DOMtoCanvas({x:-20,y:-20}),a=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+20,y:this.canvas.frame.canvas.clientHeight+20}),h={top:r.y,left:r.x,bottom:a.y,right:a.x},d=0;d<o.length;d++)n=i[o[d]],n.isSelected()?s.push(o[d]):!0===e?n.draw(t):!0===n.isBoundingBoxOverlappingWith(h)?n.draw(t):n.updateBoundingBox(t,n.selected);for(var l=0;l<s.length;l++)n=i[s[l]],n.draw(t)}},{key:"_drawEdges",value:function(t){for(var e=this.body.edges,i=this.body.edgeIndices,o=void 0,n=0;n<i.length;n++)o=e[i[n]],!0===o.connected&&o.draw(t)}},{key:"_determineBrowserMethod",value:function(){if("undefined"!=typeof window){var t=navigator.userAgent.toLowerCase();this.requiresTimeout=!1,-1!=t.indexOf("msie 9.0")?this.requiresTimeout=!0:-1!=t.indexOf("safari")&&t.indexOf("chrome")<=-1&&(this.requiresTimeout=!0)}else this.requiresTimeout=!0}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(10),d=i(37),l=i(2),u=function(){function t(e){(0,s.default)(this,t),this.body=e,this.pixelRatio=1,this.resizeTimer=void 0,this.resizeFunction=this._onResize.bind(this),this.cameraState={},this.initialized=!1,this.canvasViewCenter={},this.options={},this.defaultOptions={autoResize:!0,height:"100%",width:"100%"},l.extend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.once("resize",function(e){0!==e.width&&(t.body.view.translation.x=.5*e.width),0!==e.height&&(t.body.view.translation.y=.5*e.height)}),this.body.emitter.on("setSize",this.setSize.bind(this)),this.body.emitter.on("destroy",function(){t.hammerFrame.destroy(),t.hammer.destroy(),t._cleanUp()})}},{key:"setOptions",value:function(t){var e=this;if(void 0!==t){var i=["width","height","autoResize"];l.selectiveDeepExtend(i,this.options,t)}!0===this.options.autoResize&&(this._cleanUp(),this.resizeTimer=setInterval(function(){!0===e.setSize()&&e.body.emitter.emit("_requestRedraw")},1e3),this.resizeFunction=this._onResize.bind(this),l.addEventListener(window,"resize",this.resizeFunction))}},{key:"_cleanUp",value:function(){void 0!==this.resizeTimer&&clearInterval(this.resizeTimer),l.removeEventListener(window,"resize",this.resizeFunction),this.resizeFunction=void 0}},{key:"_onResize",value:function(){this.setSize(),this.body.emitter.emit("_redraw")}},{key:"_getCameraState",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.pixelRatio;!0===this.initialized&&(this.cameraState.previousWidth=this.frame.canvas.width/t,this.cameraState.previousHeight=this.frame.canvas.height/t,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/t,y:.5*this.frame.canvas.height/t}))}},{key:"_setCameraState",value:function(){if(void 0!==this.cameraState.scale&&0!==this.frame.canvas.clientWidth&&0!==this.frame.canvas.clientHeight&&0!==this.pixelRatio&&this.cameraState.previousWidth>0){var t=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,e=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight,i=this.cameraState.scale;1!=t&&1!=e?i=.5*this.cameraState.scale*(t+e):1!=t?i=this.cameraState.scale*t:1!=e&&(i=this.cameraState.scale*e),this.body.view.scale=i;var o=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),n={x:o.x-this.cameraState.position.x,y:o.y-this.cameraState.position.y};this.body.view.translation.x+=n.x*this.body.view.scale,this.body.view.translation.y+=n.y*this.body.view.scale}}},{key:"_prepareValue",value:function(t){if("number"==typeof t)return t+"px";if("string"==typeof t){if(-1!==t.indexOf("%")||-1!==t.indexOf("px"))return t;if(-1===t.indexOf("%"))return t+"px"}throw new Error("Could not use the value supplied for width or height:"+t)}},{key:"_create",value:function(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=900,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext)this._setPixelRatio(),this.setTransform();else{var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}},{key:"_bindHammer",value:function(){var t=this;void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new h(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:h.DIRECTION_ALL}),d.onTouch(this.hammer,function(e){t.body.eventListeners.onTouch(e)}),this.hammer.on("tap",function(e){t.body.eventListeners.onTap(e)}),this.hammer.on("doubletap",function(e){t.body.eventListeners.onDoubleTap(e)}),this.hammer.on("press",function(e){t.body.eventListeners.onHold(e)}),this.hammer.on("panstart",function(e){t.body.eventListeners.onDragStart(e)}),this.hammer.on("panmove",function(e){t.body.eventListeners.onDrag(e)}),this.hammer.on("panend",function(e){t.body.eventListeners.onDragEnd(e)}),this.hammer.on("pinch",function(e){t.body.eventListeners.onPinch(e)}),this.frame.canvas.addEventListener("mousewheel",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("DOMMouseScroll",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("mousemove",function(e){t.body.eventListeners.onMouseMove(e)}),this.frame.canvas.addEventListener("contextmenu",function(e){t.body.eventListeners.onContext(e)}),this.hammerFrame=new h(this.frame),d.onRelease(this.hammerFrame,function(e){t.body.eventListeners.onRelease(e)})}},{key:"setSize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.width,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.height;t=this._prepareValue(t),e=this._prepareValue(e);var i=!1,o=this.frame.canvas.width,n=this.frame.canvas.height,s=this.pixelRatio;if(this._setPixelRatio(),t!=this.options.width||e!=this.options.height||this.frame.style.width!=t||this.frame.style.height!=e)this._getCameraState(s),this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=t,this.options.height=e,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},i=!0;else{var r=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),a=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);this.frame.canvas.width===r&&this.frame.canvas.height===a||this._getCameraState(s),
+this.frame.canvas.width!==r&&(this.frame.canvas.width=r,i=!0),this.frame.canvas.height!==a&&(this.frame.canvas.height=a,i=!0)}return!0===i&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(o/this.pixelRatio),oldHeight:Math.round(n/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,i}},{key:"getContext",value:function(){return this.frame.canvas.getContext("2d")}},{key:"_determinePixelRatio",value:function(){var t=this.getContext();if(void 0===t)throw new Error("Could not get canvax context");var e=1;return"undefined"!=typeof window&&(e=window.devicePixelRatio||1),e/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)}},{key:"_setPixelRatio",value:function(){this.pixelRatio=this._determinePixelRatio()}},{key:"setTransform",value:function(){var t=this.getContext();if(void 0===t)throw new Error("Could not get canvax context");t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}},{key:"_XconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.x)/this.body.view.scale}},{key:"_XconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.x}},{key:"_YconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.y)/this.body.view.scale}},{key:"_YconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.y}},{key:"canvasToDOM",value:function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}}},{key:"DOMtoCanvas",value:function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(76).default,l=function(){function t(e,i){var o=this;(0,s.default)(this,t),this.body=e,this.canvas=i,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",this.fit.bind(this)),this.body.emitter.on("animationFinished",function(){o.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",this.releaseNode.bind(this))}return(0,a.default)(t,[{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t}},{key:"fit",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{nodes:[]},e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,o=void 0;if(void 0!==t.nodes&&0!==t.nodes.length||(t.nodes=this.body.nodeIndices),!0===e){var n=0;for(var s in this.body.nodes)if(this.body.nodes.hasOwnProperty(s)){var r=this.body.nodes[s];!0===r.predefinedPosition&&(n+=1)}if(n>.5*this.body.nodeIndices.length)return void this.fit(t,!1);i=d.getRange(this.body.nodes,t.nodes);o=12.662/(this.body.nodeIndices.length+7.4147)+.0964822;o*=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600)}else{this.body.emitter.emit("_resizeNodes"),i=d.getRange(this.body.nodes,t.nodes);var a=1.1*Math.abs(i.maxX-i.minX),h=1.1*Math.abs(i.maxY-i.minY),l=this.canvas.frame.canvas.clientWidth/a,u=this.canvas.frame.canvas.clientHeight/h;o=l<=u?l:u}o>1?o=1:0===o&&(o=1);var c=d.findCenter(i),p={position:c,scale:o,animation:t.animation};this.moveTo(p)}},{key:"focus",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0!==this.body.nodes[t]){var i={x:this.body.nodes[t].x,y:this.body.nodes[t].y};e.position=i,e.lockedOnNode=t,this.moveTo(e)}else console.log("Node: "+t+" cannot be found.")}},{key:"moveTo",value:function(t){if(void 0===t)return void(t={});void 0===t.offset&&(t.offset={x:0,y:0}),void 0===t.offset.x&&(t.offset.x=0),void 0===t.offset.y&&(t.offset.y=0),void 0===t.scale&&(t.scale=this.body.view.scale),void 0===t.position&&(t.position=this.getViewPosition()),void 0===t.animation&&(t.animation={duration:0}),!1===t.animation&&(t.animation={duration:0}),!0===t.animation&&(t.animation={}),void 0===t.animation.duration&&(t.animation.duration=1e3),void 0===t.animation.easingFunction&&(t.animation.easingFunction="easeInOutQuad"),this.animateView(t)}},{key:"animateView",value:function(t){if(void 0!==t){this.animationEasingFunction=t.animation.easingFunction,this.releaseNode(),!0===t.locked&&(this.lockedOnNodeId=t.lockedOnNode,this.lockedOnNodeOffset=t.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=t.scale,this.body.view.scale=this.targetScale;var e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.position.x,y:e.y-t.position.y};this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+t.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+t.offset.y},0===t.animation.duration?void 0!=this.lockedOnNodeId?(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)):(this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw")):(this.animationSpeed=1/(60*t.animation.duration*.001)||1/60,this.animationEasingFunction=t.animation.easingFunction,this.viewFunction=this._transitionRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))}}},{key:"_lockedRedraw",value:function(){var t={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.x,y:e.y-t.y},o=this.body.view.translation,n={x:o.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:o.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=n}},{key:"releaseNode",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:"_transitionRedraw",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=!0===t?1:this.easingTime;var e=h.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*e,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*e,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*e},this.easingTime>=1&&(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,void 0!=this.lockedOnNodeId&&(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)),this.body.emitter.emit("animationFinished"))}},{key:"getScale",value:function(){return this.body.view.scale}},{key:"getViewPosition",value:function(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(233).default,l=i(104).default,u=function(){function t(e,i,o){(0,s.default)(this,t),this.body=e,this.canvas=i,this.selectionHandler=o,this.navigationHandler=new d(e,i),this.body.eventListeners.onTap=this.onTap.bind(this),this.body.eventListeners.onTouch=this.onTouch.bind(this),this.body.eventListeners.onDoubleTap=this.onDoubleTap.bind(this),this.body.eventListeners.onHold=this.onHold.bind(this),this.body.eventListeners.onDragStart=this.onDragStart.bind(this),this.body.eventListeners.onDrag=this.onDrag.bind(this),this.body.eventListeners.onDragEnd=this.onDragEnd.bind(this),this.body.eventListeners.onMouseWheel=this.onMouseWheel.bind(this),this.body.eventListeners.onPinch=this.onPinch.bind(this),this.body.eventListeners.onMouseMove=this.onMouseMove.bind(this),this.body.eventListeners.onRelease=this.onRelease.bind(this),this.body.eventListeners.onContext=this.onContext.bind(this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=this.getPointer.bind(this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0},h.extend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("destroy",function(){clearTimeout(t.popupTimer),delete t.body.functions.getPointer})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag","keyboard","multiselect","selectable","selectConnectedEdges"];h.selectiveNotDeepExtend(e,this.options,t),h.mergeOptions(this.options,t,"keyboard"),t.tooltip&&(h.extend(this.options.tooltip,t.tooltip),t.tooltip.color&&(this.options.tooltip.color=h.parseColor(t.tooltip.color)))}this.navigationHandler.setOptions(this.options)}},{key:"getPointer",value:function(t){return{x:t.x-h.getAbsoluteLeft(this.canvas.frame.canvas),y:t.y-h.getAbsoluteTop(this.canvas.frame.canvas)}}},{key:"onTouch",value:function(t){(new Date).valueOf()-this.touchTime>50&&(this.drag.pointer=this.getPointer(t.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:"onTap",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect&&(t.changedPointers[0].ctrlKey||t.changedPointers[0].metaKey);this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e)}},{key:"onDoubleTap",value:function(t){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("doubleClick",t,e)}},{key:"onHold",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e),this.selectionHandler._generateClickEvent("hold",t,e)}},{key:"onRelease",value:function(t){if((new Date).valueOf()-this.touchTime>10){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("release",t,e),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(t){var e=this.getPointer({x:t.clientX,y:t.clientY});this.selectionHandler._generateClickEvent("oncontext",t,e)}},{key:"checkSelectionChanges",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=this.selectionHandler.getSelection(),n=!1;n=!0===i?this.selectionHandler.selectAdditionalOnPoint(t):this.selectionHandler.selectOnPoint(t);var s=this.selectionHandler.getSelection(),r=this._determineDifference(o,s),a=this._determineDifference(s,o);r.edges.length>0&&(this.selectionHandler._generateClickEvent("deselectEdge",e,t,o),n=!0),r.nodes.length>0&&(this.selectionHandler._generateClickEvent("deselectNode",e,t,o),n=!0),a.nodes.length>0&&(this.selectionHandler._generateClickEvent("selectNode",e,t),n=!0),a.edges.length>0&&(this.selectionHandler._generateClickEvent("selectEdge",e,t),n=!0),!0===n&&this.selectionHandler._generateClickEvent("select",e,t)}},{key:"_determineDifference",value:function(t,e){var i=function(t,e){for(var i=[],o=0;o<t.length;o++){var n=t[o];-1===e.indexOf(n)&&i.push(n)}return i};return{nodes:i(t.nodes,e.nodes),edges:i(t.edges,e.edges)}}},{key:"onDragStart",value:function(t){void 0===this.drag.pointer&&this.onTouch(t);var e=this.selectionHandler.getNodeAt(this.drag.pointer);if(this.drag.dragging=!0,this.drag.selection=[],this.drag.translation=h.extend({},this.body.view.translation),this.drag.nodeId=void 0,void 0!==e&&!0===this.options.dragNodes){this.drag.nodeId=e.id,!1===e.isSelected()&&(this.selectionHandler.unselectAll(),this.selectionHandler.selectObject(e)),this.selectionHandler._generateClickEvent("dragStart",t,this.drag.pointer);var i=this.selectionHandler.selectionObj.nodes;for(var o in i)if(i.hasOwnProperty(o)){var n=i[o],s={id:n.id,node:n,x:n.x,y:n.y,xFixed:n.options.fixed.x,yFixed:n.options.fixed.y};n.options.fixed.x=!0,n.options.fixed.y=!0,this.drag.selection.push(s)}}else this.selectionHandler._generateClickEvent("dragStart",t,this.drag.pointer,void 0,!0)}},{key:"onDrag",value:function(t){var e=this;if(!0!==this.drag.pinched){this.body.emitter.emit("unlockNode");var i=this.getPointer(t.center),o=this.drag.selection;if(o&&o.length&&!0===this.options.dragNodes){this.selectionHandler._generateClickEvent("dragging",t,i);var n=i.x-this.drag.pointer.x,s=i.y-this.drag.pointer.y;o.forEach(function(t){var i=t.node;!1===t.xFixed&&(i.x=e.canvas._XconvertDOMtoCanvas(e.canvas._XconvertCanvasToDOM(t.x)+n)),!1===t.yFixed&&(i.y=e.canvas._YconvertDOMtoCanvas(e.canvas._YconvertCanvasToDOM(t.y)+s))}),this.body.emitter.emit("startSimulation")}else if(!0===this.options.dragView){if(this.selectionHandler._generateClickEvent("dragging",t,i,void 0,!0),void 0===this.drag.pointer)return void this.onDragStart(t);var r=i.x-this.drag.pointer.x,a=i.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+r,y:this.drag.translation.y+a},this.body.emitter.emit("_requestRedraw")}}}},{key:"onDragEnd",value:function(t){this.drag.dragging=!1;var e=this.drag.selection;e&&e.length?(e.forEach(function(t){t.node.options.fixed.x=t.xFixed,t.node.options.fixed.y=t.yFixed}),this.selectionHandler._generateClickEvent("dragEnd",t,this.getPointer(t.center)),this.body.emitter.emit("startSimulation")):(this.selectionHandler._generateClickEvent("dragEnd",t,this.getPointer(t.center),void 0,!0),this.body.emitter.emit("_requestRedraw"))}},{key:"onPinch",value:function(t){var e=this.getPointer(t.center);this.drag.pinched=!0,void 0===this.pinch.scale&&(this.pinch.scale=1);var i=this.pinch.scale*t.scale;this.zoom(i,e)}},{key:"zoom",value:function(t,e){if(!0===this.options.zoomView){var i=this.body.view.scale;t<1e-5&&(t=1e-5),t>10&&(t=10);var o=void 0;void 0!==this.drag&&!0===this.drag.dragging&&(o=this.canvas.DOMtoCanvas(this.drag.pointer));var n=this.body.view.translation,s=t/i,r=(1-s)*e.x+n.x*s,a=(1-s)*e.y+n.y*s;if(this.body.view.scale=t,this.body.view.translation={x:r,y:a},void 0!=o){var h=this.canvas.canvasToDOM(o);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}this.body.emitter.emit("_requestRedraw"),i<t?this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale,pointer:e}):this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale,pointer:e})}}},{key:"onMouseWheel",value:function(t){if(!0===this.options.zoomView){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),0!==e){var i=this.body.view.scale,o=e/10;e<0&&(o/=1-o),i*=1+o;var n=this.getPointer({x:t.clientX,y:t.clientY});this.zoom(i,n)}t.preventDefault()}}},{key:"onMouseMove",value:function(t){var e=this,i=this.getPointer({x:t.clientX,y:t.clientY}),o=!1;void 0!==this.popup&&(!1===this.popup.hidden&&this._checkHidePopup(i),!1===this.popup.hidden&&(o=!0,this.popup.setPosition(i.x+3,i.y-5),this.popup.show())),!1===this.options.keyboard.bindToWindow&&!0===this.options.keyboard.enabled&&this.canvas.frame.focus(),!1===o&&(void 0!==this.popupTimer&&(clearInterval(this.popupTimer),this.popupTimer=void 0),this.drag.dragging||(this.popupTimer=setTimeout(function(){return e._checkShowPopup(i)},this.options.tooltipDelay))),!0===this.options.hover&&this.selectionHandler.hoverObject(t,i)}},{key:"_checkShowPopup",value:function(t){var e=this.canvas._XconvertDOMtoCanvas(t.x),i=this.canvas._YconvertDOMtoCanvas(t.y),o={left:e,top:i,right:e,bottom:i},n=void 0===this.popupObj?void 0:this.popupObj.id,s=!1,r="node";if(void 0===this.popupObj){for(var a=this.body.nodeIndices,h=this.body.nodes,d=void 0,u=[],c=0;c<a.length;c++)d=h[a[c]],!0===d.isOverlappingWith(o)&&void 0!==d.getTitle()&&u.push(a[c]);u.length>0&&(this.popupObj=h[u[u.length-1]],s=!0)}if(void 0===this.popupObj&&!1===s){for(var p=this.body.edgeIndices,f=this.body.edges,m=void 0,v=[],g=0;g<p.length;g++)m=f[p[g]],!0===m.isOverlappingWith(o)&&!0===m.connected&&void 0!==m.getTitle()&&v.push(p[g]);v.length>0&&(this.popupObj=f[v[v.length-1]],r="edge")}void 0!==this.popupObj?this.popupObj.id!==n&&(void 0===this.popup&&(this.popup=new l(this.canvas.frame)),this.popup.popupTargetType=r,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(t.x+3,t.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}},{key:"_checkHidePopup",value:function(t){var e=this.selectionHandler._pointerToPositionObject(t),i=!1;if("node"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&!0===(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(e))){var o=this.selectionHandler.getNodeAt(t);i=void 0!==o&&o.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(t)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(e));!1===i&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(10),d=i(37),l=i(35),u=function(){function t(e,i){var o=this;(0,s.default)(this,t),this.body=e,this.canvas=i,this.iconsCreated=!1,this.navigationHammers=[],this.boundFunctions={},this.touchTime=0,this.activated=!1,this.body.emitter.on("activate",function(){o.activated=!0,o.configureKeyboardBindings()}),this.body.emitter.on("deactivate",function(){o.activated=!1,o.configureKeyboardBindings()}),this.body.emitter.on("destroy",function(){void 0!==o.keycharm&&o.keycharm.destroy()}),this.options={}}return(0,a.default)(t,[{key:"setOptions",value:function(t){void 0!==t&&(this.options=t,this.create())}},{key:"create",value:function(){!0===this.options.navigationButtons?!1===this.iconsCreated&&this.loadNavigationElements():!0===this.iconsCreated&&this.cleanNavigation(),this.configureKeyboardBindings()}},{key:"cleanNavigation",value:function(){if(0!=this.navigationHammers.length){for(var t=0;t<this.navigationHammers.length;t++)this.navigationHammers[t].destroy();this.navigationHammers=[]}this.navigationDOM&&this.navigationDOM.wrapper&&this.navigationDOM.wrapper.parentNode&&this.navigationDOM.wrapper.parentNode.removeChild(this.navigationDOM.wrapper),this.iconsCreated=!1}},{key:"loadNavigationElements",value:function(){var t=this;this.cleanNavigation(),this.navigationDOM={};var e=["up","down","left","right","zoomIn","zoomOut","zoomExtends"],i=["_moveUp","_moveDown","_moveLeft","_moveRight","_zoomIn","_zoomOut","_fit"];this.navigationDOM.wrapper=document.createElement("div"),this.navigationDOM.wrapper.className="vis-navigation",this.canvas.frame.appendChild(this.navigationDOM.wrapper);for(var o=0;o<e.length;o++){this.navigationDOM[e[o]]=document.createElement("div"),this.navigationDOM[e[o]].className="vis-button vis-"+e[o],this.navigationDOM.wrapper.appendChild(this.navigationDOM[e[o]]);var n=new h(this.navigationDOM[e[o]]);"_fit"===i[o]?d.onTouch(n,this._fit.bind(this)):d.onTouch(n,this.bindToRedraw.bind(this,i[o])),this.navigationHammers.push(n)}var s=new h(this.canvas.frame);d.onRelease(s,function(){t._stopMovement()}),this.navigationHammers.push(s),this.iconsCreated=!0}},{key:"bindToRedraw",value:function(t){void 0===this.boundFunctions[t]&&(this.boundFunctions[t]=this[t].bind(this),this.body.emitter.on("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_startRendering"))}},{key:"unbindFromRedraw",value:function(t){void 0!==this.boundFunctions[t]&&(this.body.emitter.off("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_stopRendering"),delete this.boundFunctions[t])}},{key:"_fit",value:function(){(new Date).valueOf()-this.touchTime>700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:"_stopMovement",value:function(){for(var t in this.boundFunctions)this.boundFunctions.hasOwnProperty(t)&&(this.body.emitter.off("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}},{key:"_moveUp",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:"_moveDown",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:"_moveLeft",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:"_moveRight",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:"_zoomIn",value:function(){var t=this.body.view.scale,e=this.body.view.scale*(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=e/t,n=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,s=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=e,this.body.view.translation={x:n,y:s},this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale,pointer:null})}},{key:"_zoomOut",value:function(){var t=this.body.view.scale,e=this.body.view.scale/(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=e/t,n=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,s=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=e,this.body.view.translation={x:n,y:s},this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale,pointer:null})}},{key:"configureKeyboardBindings",value:function(){var t=this;void 0!==this.keycharm&&this.keycharm.destroy(),!0===this.options.keyboard.enabled&&(!0===this.options.keyboard.bindToWindow?this.keycharm=l({container:window,preventDefault:!0}):this.keycharm=l({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),!0===this.activated&&(this.keycharm.bind("up",function(){t.bindToRedraw("_moveUp")},"keydown"),this.keycharm.bind("down",function(){t.bindToRedraw("_moveDown")},"keydown"),this.keycharm.bind("left",function(){t.bindToRedraw("_moveLeft")},"keydown"),this.keycharm.bind("right",function(){t.bindToRedraw("_moveRight")},"keydown"),this.keycharm.bind("=",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num+",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("[",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("]",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pageup",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pagedown",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("up",function(){t.unbindFromRedraw("_moveUp")},"keyup"),this.keycharm.bind("down",function(){t.unbindFromRedraw("_moveDown")},"keyup"),this.keycharm.bind("left",function(){t.unbindFromRedraw("_moveLeft")},"keyup"),this.keycharm.bind("right",function(){t.unbindFromRedraw("_moveRight")},"keyup"),this.keycharm.bind("=",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num+",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("[",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("]",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pageup",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pagedown",function(){t.unbindFromRedraw("_zoomOut")},"keyup")))}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(47).default,d=i(74).default,l=i(2),u=function(){function t(e,i){var o=this;(0,s.default)(this,t),this.body=e,this.canvas=i,this.selectionObj={nodes:[],edges:[]},this.hoverObj={nodes:{},edges:{}},this.options={},this.defaultOptions={multiselect:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0},l.extend(this.options,this.defaultOptions),this.body.emitter.on("_dataChanged",function(){o.updateSelection()})}return(0,a.default)(t,[{key:"setOptions",value:function(t){if(void 0!==t){var e=["multiselect","hoverConnectedEdges","selectable","selectConnectedEdges"];l.selectiveDeepExtend(e,this.options,t)}}},{key:"selectOnPoint",value:function(t){var e=!1;if(!0===this.options.selectable){var i=this.getNodeAt(t)||this.getEdgeAt(t);this.unselectAll(),void 0!==i&&(e=this.selectObject(i)),this.body.emitter.emit("_requestRedraw")}return e}},{key:"selectAdditionalOnPoint",value:function(t){var e=!1;if(!0===this.options.selectable){var i=this.getNodeAt(t)||this.getEdgeAt(t);void 0!==i&&(e=!0,!0===i.isSelected()?this.deselectObject(i):this.selectObject(i),this.body.emitter.emit("_requestRedraw"))}return e}},{key:"_initBaseEvent",value:function(t,e){var i={};return i.pointer={DOM:{x:e.x,y:e.y},canvas:this.canvas.DOMtoCanvas(e)},i.event=t,i}},{key:"_generateClickEvent",value:function(t,e,i,o){var n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],s=this._initBaseEvent(e,i);if(!0===n)s.nodes=[],s.edges=[];else{var r=this.getSelection();s.nodes=r.nodes,s.edges=r.edges}void 0!==o&&(s.previousSelection=o),"click"==t&&(s.items=this.getClickedItems(i)),this.body.emitter.emit(t,s)}},{key:"selectObject",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.selectConnectedEdges;return void 0!==t&&(t instanceof h&&!0===e&&this._selectConnectedEdges(t),t.select(),this._addToSelection(t),!0)}},{key:"deselectObject",value:function(t){!0===t.isSelected()&&(t.selected=!1,this._removeFromSelection(t))}},{key:"_getAllNodesOverlappingWith",value:function(t){for(var e=[],i=this.body.nodes,o=0;o<this.body.nodeIndices.length;o++){var n=this.body.nodeIndices[o];i[n].isOverlappingWith(t)&&e.push(n)}return e}},{key:"_pointerToPositionObject",value:function(t){var e=this.canvas.DOMtoCanvas(t);return{left:e.x-1,top:e.y+1,right:e.x+1,bottom:e.y-1}}},{key:"getNodeAt",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this._pointerToPositionObject(t),o=this._getAllNodesOverlappingWith(i);return o.length>0?!0===e?this.body.nodes[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_getEdgesOverlappingWith",value:function(t,e){for(var i=this.body.edges,o=0;o<this.body.edgeIndices.length;o++){var n=this.body.edgeIndices[o];i[n].isOverlappingWith(t)&&e.push(n)}}},{key:"_getAllEdgesOverlappingWith",value:function(t){var e=[];return this._getEdgesOverlappingWith(t,e),e}},{key:"getEdgeAt",value:function(t){for(var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.canvas.DOMtoCanvas(t),o=10,n=null,s=this.body.edges,r=0;r<this.body.edgeIndices.length;r++){var a=this.body.edgeIndices[r],h=s[a];if(h.connected){var d=h.from.x,l=h.from.y,u=h.to.x,c=h.to.y,p=h.edgeType.getDistanceToEdge(d,l,u,c,i.x,i.y);p<o&&(n=a,o=p)}}return null!==n?!0===e?this.body.edges[n]:n:void 0}},{key:"_addToSelection",value:function(t){t instanceof h?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t}},{key:"_addToHover",value:function(t){t instanceof h?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t}},{key:"_removeFromSelection",value:function(t){t instanceof h?(delete this.selectionObj.nodes[t.id],this._unselectConnectedEdges(t)):delete this.selectionObj.edges[t.id]}},{key:"unselectAll",value:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].unselect();for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&this.selectionObj.edges[e].unselect();this.selectionObj={nodes:{},edges:{}}}},{key:"_getSelectedNodeCount",value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t}},{key:"_getSelectedNode",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t]}},{key:"_getSelectedEdge",value:function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t]}},{key:"_getSelectedEdgeCount",value:function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t}},{key:"_getSelectedObjectCount",value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t}},{key:"_selectionIsEmpty",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0}},{key:"_clusterInSelection",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1}},{key:"_selectConnectedEdges",value:function(t){for(var e=0;e<t.edges.length;e++){var i=t.edges[e];i.select(),this._addToSelection(i)}}},{key:"_hoverConnectedEdges",value:function(t){for(var e=0;e<t.edges.length;e++){var i=t.edges[e];i.hover=!0,this._addToHover(i)}}},{key:"_unselectConnectedEdges",value:function(t){for(var e=0;e<t.edges.length;e++){var i=t.edges[e];i.unselect(),this._removeFromSelection(i)}}},{key:"emitBlurEvent",value:function(t,e,i){var o=this._initBaseEvent(t,e);!0===i.hover&&(i.hover=!1,i instanceof h?(o.node=i.id,this.body.emitter.emit("blurNode",o)):(o.edge=i.id,this.body.emitter.emit("blurEdge",o)))}},{key:"emitHoverEvent",value:function(t,e,i){var o=this._initBaseEvent(t,e),n=!1;return!1===i.hover&&(i.hover=!0,this._addToHover(i),n=!0,i instanceof h?(o.node=i.id,this.body.emitter.emit("hoverNode",o)):(o.edge=i.id,this.body.emitter.emit("hoverEdge",o))),n}},{key:"hoverObject",value:function(t,e){var i=this.getNodeAt(e);void 0===i&&(i=this.getEdgeAt(e));var o=!1;for(var n in this.hoverObj.nodes)this.hoverObj.nodes.hasOwnProperty(n)&&(void 0===i||i instanceof h&&i.id!=n||i instanceof d)&&(this.emitBlurEvent(t,e,this.hoverObj.nodes[n]),delete this.hoverObj.nodes[n],o=!0);for(var s in this.hoverObj.edges)this.hoverObj.edges.hasOwnProperty(s)&&(!0===o?(this.hoverObj.edges[s].hover=!1,delete this.hoverObj.edges[s]):(void 0===i||i instanceof d&&i.id!=s||i instanceof h&&!i.hover)&&(this.emitBlurEvent(t,e,this.hoverObj.edges[s]),delete this.hoverObj.edges[s],o=!0));void 0!==i&&(o=o||this.emitHoverEvent(t,e,i),i instanceof h&&!0===this.options.hoverConnectedEdges&&this._hoverConnectedEdges(i)),!0===o&&this.body.emitter.emit("_requestRedraw")}},{key:"getSelection",value:function(){return{nodes:this.getSelectedNodes(),edges:this.getSelectedEdges()}}},{key:"getSelectedNodes",value:function(){var t=[];if(!0===this.options.selectable)for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&t.push(this.selectionObj.nodes[e].id);return t}},{key:"getSelectedEdges",value:function(){var t=[];if(!0===this.options.selectable)for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&t.push(this.selectionObj.edges[e].id);return t}},{key:"setSelection",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=void 0,o=void 0;if(!t||!t.nodes&&!t.edges)throw"Selection must be an object with nodes and/or edges properties"
+;if((e.unselectAll||void 0===e.unselectAll)&&this.unselectAll(),t.nodes)for(i=0;i<t.nodes.length;i++){o=t.nodes[i];var n=this.body.nodes[o];if(!n)throw new RangeError('Node with id "'+o+'" not found');this.selectObject(n,e.highlightEdges)}if(t.edges)for(i=0;i<t.edges.length;i++){o=t.edges[i];var s=this.body.edges[o];if(!s)throw new RangeError('Edge with id "'+o+'" not found');this.selectObject(s)}this.body.emitter.emit("_requestRedraw")}},{key:"selectNodes",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!t||void 0===t.length)throw"Selection must be an array with ids";this.setSelection({nodes:t},{highlightEdges:e})}},{key:"selectEdges",value:function(t){if(!t||void 0===t.length)throw"Selection must be an array with ids";this.setSelection({edges:t})}},{key:"updateSelection",value:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.body.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.body.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])}},{key:"getClickedItems",value:function(t){for(var e=this.canvas.DOMtoCanvas(t),i=[],o=this.body.nodeIndices,n=this.body.nodes,s=o.length-1;s>=0;s--){var r=n[o[s]],a=r.getItemsOnPoint(e);i.push.apply(i,a)}for(var h=this.body.edgeIndices,d=this.body.edges,l=h.length-1;l>=0;l--){var u=d[h[l]],c=u.getItemsOnPoint(e);i.push.apply(i,c)}return i}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(30),s=o(n),r=i(6),a=o(r),h=i(8),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=i(76).default,v=i(236),g=v.HorizontalStrategy,y=v.VerticalStrategy,b=function(){function t(){(0,u.default)(this,t),this.childrenReference={},this.parentReference={},this.trees={},this.distributionOrdering={},this.levels={},this.distributionIndex={},this.isTree=!1,this.treeIndex=-1}return(0,p.default)(t,[{key:"addRelation",value:function(t,e){void 0===this.childrenReference[t]&&(this.childrenReference[t]=[]),this.childrenReference[t].push(e),void 0===this.parentReference[e]&&(this.parentReference[e]=[]),this.parentReference[e].push(t)}},{key:"checkIfTree",value:function(){for(var t in this.parentReference)if(this.parentReference[t].length>1)return void(this.isTree=!1);this.isTree=!0}},{key:"numTrees",value:function(){return this.treeIndex+1}},{key:"setTreeIndex",value:function(t,e){void 0!==e&&void 0===this.trees[t.id]&&(this.trees[t.id]=e,this.treeIndex=Math.max(e,this.treeIndex))}},{key:"ensureLevel",value:function(t){void 0===this.levels[t]&&(this.levels[t]=0)}},{key:"getMaxLevel",value:function(t){var e=this,i={};return function t(o){if(void 0!==i[o])return i[o];var n=e.levels[o];if(e.childrenReference[o]){var s=e.childrenReference[o];if(s.length>0)for(var r=0;r<s.length;r++)n=Math.max(n,t(s[r]))}return i[o]=n,n}(t)}},{key:"levelDownstream",value:function(t,e){void 0===this.levels[e.id]&&(void 0===this.levels[t.id]&&(this.levels[t.id]=0),this.levels[e.id]=this.levels[t.id]+1)}},{key:"setMinLevelToZero",value:function(t){var e=1e9;for(var i in t)t.hasOwnProperty(i)&&void 0!==this.levels[i]&&(e=Math.min(this.levels[i],e));for(var o in t)t.hasOwnProperty(o)&&void 0!==this.levels[o]&&(this.levels[o]-=e)}},{key:"getTreeSize",value:function(t,e){var i=1e9,o=-1e9,n=1e9,s=-1e9;for(var r in this.trees)if(this.trees.hasOwnProperty(r)&&this.trees[r]===e){var a=t[r];i=Math.min(a.x,i),o=Math.max(a.x,o),n=Math.min(a.y,n),s=Math.max(a.y,s)}return{min_x:i,max_x:o,min_y:n,max_y:s}}},{key:"hasSameParent",value:function(t,e){var i=this.parentReference[t.id],o=this.parentReference[e.id];if(void 0===i||void 0===o)return!1;for(var n=0;n<i.length;n++)for(var s=0;s<o.length;s++)if(i[n]==o[s])return!0;return!1}},{key:"inSameSubNetwork",value:function(t,e){return this.trees[t.id]===this.trees[e.id]}},{key:"getLevels",value:function(){return(0,d.default)(this.distributionOrdering)}},{key:"addToOrdering",value:function(t,e){void 0===this.distributionOrdering[e]&&(this.distributionOrdering[e]=[]);var i=!1,o=this.distributionOrdering[e];for(var n in o)if(o[n]===t){i=!0;break}i||(this.distributionOrdering[e].push(t),this.distributionIndex[t.id]=this.distributionOrdering[e].length-1)}}]),t}(),_=function(){function t(e){(0,u.default)(this,t),this.body=e,this.initialRandomSeed=Math.round(1e6*Math.random()),this.randomSeed=this.initialRandomSeed,this.setPhysics=!1,this.options={},this.optionsBackup={physics:{}},this.defaultOptions={randomSeed:void 0,improvedLayout:!0,hierarchical:{enabled:!1,levelSeparation:150,nodeSpacing:100,treeSpacing:200,blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:"UD",sortMethod:"hubsize"}},f.extend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,p.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("_dataChanged",function(){t.setupHierarchicalLayout()}),this.body.emitter.on("_dataLoaded",function(){t.layoutNetwork()}),this.body.emitter.on("_resetHierarchicalLayout",function(){t.setupHierarchicalLayout()}),this.body.emitter.on("_adjustEdgesForHierarchicalLayout",function(){if(!0===t.options.hierarchical.enabled){var e=t.direction.curveType();t.body.emitter.emit("_forceDisableDynamicCurves",e,!1)}})}},{key:"setOptions",value:function(t,e){if(void 0!==t){var i=this.options.hierarchical,o=i.enabled;if(f.selectiveDeepExtend(["randomSeed","improvedLayout"],this.options,t),f.mergeOptions(this.options,t,"hierarchical"),void 0!==t.randomSeed&&(this.initialRandomSeed=t.randomSeed),!0===i.enabled)return!0===o&&this.body.emitter.emit("refresh",!0),"RL"===i.direction||"DU"===i.direction?i.levelSeparation>0&&(i.levelSeparation*=-1):i.levelSeparation<0&&(i.levelSeparation*=-1),this.setDirectionStrategy(),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(e);if(!0===o)return this.body.emitter.emit("refresh"),f.deepExtend(e,this.optionsBackup)}return e}},{key:"adaptAllOptionsForHierarchicalLayout",value:function(t){if(!0===this.options.hierarchical.enabled){var e=this.optionsBackup.physics;void 0===t.physics||!0===t.physics?(t.physics={enabled:void 0===e.enabled||e.enabled,solver:"hierarchicalRepulsion"},e.enabled=void 0===e.enabled||e.enabled,e.solver=e.solver||"barnesHut"):"object"===(0,a.default)(t.physics)?(e.enabled=void 0===t.physics.enabled||t.physics.enabled,e.solver=t.physics.solver||"barnesHut",t.physics.solver="hierarchicalRepulsion"):!1!==t.physics&&(e.solver="barnesHut",t.physics={solver:"hierarchicalRepulsion"});var i=this.direction.curveType();if(void 0===t.edges)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges={smooth:!1};else if(void 0===t.edges.smooth)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges.smooth=!1;else if("boolean"==typeof t.edges.smooth)this.optionsBackup.edges={smooth:t.edges.smooth},t.edges.smooth={enabled:t.edges.smooth,type:i};else{var o=t.edges.smooth;void 0!==o.type&&"dynamic"!==o.type&&(i=o.type),this.optionsBackup.edges={smooth:void 0===o.enabled||o.enabled,type:void 0===o.type?"dynamic":o.type,roundness:void 0===o.roundness?.5:o.roundness,forceDirection:void 0!==o.forceDirection&&o.forceDirection},t.edges.smooth={enabled:void 0===o.enabled||o.enabled,type:i,roundness:void 0===o.roundness?.5:o.roundness,forceDirection:void 0!==o.forceDirection&&o.forceDirection}}this.body.emitter.emit("_forceDisableDynamicCurves",i)}return t}},{key:"seededRandom",value:function(){var t=1e4*Math.sin(this.randomSeed++);return t-Math.floor(t)}},{key:"positionInitially",value:function(t){if(!0!==this.options.hierarchical.enabled){this.randomSeed=this.initialRandomSeed;for(var e=t.length+50,i=0;i<t.length;i++){var o=t[i],n=2*Math.PI*this.seededRandom();void 0===o.x&&(o.x=e*Math.cos(n)),void 0===o.y&&(o.y=e*Math.sin(n))}}}},{key:"layoutNetwork",value:function(){if(!0!==this.options.hierarchical.enabled&&!0===this.options.improvedLayout){for(var t=this.body.nodeIndices,e=0,i=0;i<t.length;i++){!0===this.body.nodes[t[i]].predefinedPosition&&(e+=1)}if(e<.5*t.length){var o=0,n={clusterNodeProperties:{shape:"ellipse",label:"",group:"",font:{multi:!1}},clusterEdgeProperties:{label:"",font:{multi:!1},smooth:{enabled:!1}}};if(t.length>150){for(var s=t.length;t.length>150&&o<=10;){o+=1;var r=t.length;o%3==0?this.body.modules.clustering.clusterBridges(n):this.body.modules.clustering.clusterOutliers(n);if(r==t.length&&o%3!=0)return this._declusterAll(),this.body.emitter.emit("_layoutFailed"),void console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*s)})}o>10&&console.info("The clustering didn't succeed within the amount of interations allowed, progressing with partial result."),this.body.modules.kamadaKawai.solve(t,this.body.edgeIndices,!0),this._shiftToCenter();for(var a=0;a<t.length;a++){var h=this.body.nodes[t[a]];!1===h.predefinedPosition&&(h.x+=70*(.5-this.seededRandom()),h.y+=70*(.5-this.seededRandom()))}this._declusterAll(),this.body.emitter.emit("_repositionBezierNodes")}}}},{key:"_shiftToCenter",value:function(){for(var t=m.getRangeCore(this.body.nodes,this.body.nodeIndices),e=m.findCenter(t),i=0;i<this.body.nodeIndices.length;i++){var o=this.body.nodes[this.body.nodeIndices[i]];o.x-=e.x,o.y-=e.y}}},{key:"_declusterAll",value:function(){for(var t=!0;!0===t;){t=!1;for(var e=0;e<this.body.nodeIndices.length;e++)!0===this.body.nodes[this.body.nodeIndices[e]].isCluster&&(t=!0,this.body.modules.clustering.openCluster(this.body.nodeIndices[e],{},!1));!0===t&&this.body.emitter.emit("_dataChanged")}}},{key:"getSeed",value:function(){return this.initialRandomSeed}},{key:"setupHierarchicalLayout",value:function(){if(!0===this.options.hierarchical.enabled&&this.body.nodeIndices.length>0){var t=void 0,e=void 0,i=!1,o=!1;this.lastNodeOnLevel={},this.hierarchical=new b;for(e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&(t=this.body.nodes[e],void 0!==t.options.level?(i=!0,this.hierarchical.levels[e]=t.options.level):o=!0);if(!0===o&&!0===i)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");if(!0===o){var n=this.options.hierarchical.sortMethod;"hubsize"===n?this._determineLevelsByHubsize():"directed"===n?this._determineLevelsDirected():"custom"===n&&this._determineLevelsCustomCallback()}for(var s in this.body.nodes)this.body.nodes.hasOwnProperty(s)&&this.hierarchical.ensureLevel(s);var r=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(r),this._condenseHierarchy(),this._shiftToCenter()}}},{key:"_condenseHierarchy",value:function(){var t=this,e=!1,i={},o=function(e,i){var o=t.hierarchical.trees;for(var n in o)o.hasOwnProperty(n)&&o[n]===e&&t.direction.shift(n,i)},n=function(){for(var e=[],i=0;i<t.hierarchical.numTrees();i++)e.push(t.direction.getTreeSize(i));return e},r=function e(i,o){if(!o[i.id]&&(o[i.id]=!0,t.hierarchical.childrenReference[i.id])){var n=t.hierarchical.childrenReference[i.id];if(n.length>0)for(var s=0;s<n.length;s++)e(t.body.nodes[n[s]],o)}},a=function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e9,o=1e9,n=1e9,r=1e9,a=-1e9;for(var h in e)if(e.hasOwnProperty(h)){var d=t.body.nodes[h],l=t.hierarchical.levels[d.id],u=t.direction.getPosition(d),c=t._getSpaceAroundNode(d,e),p=(0,s.default)(c,2),f=p[0],m=p[1];o=Math.min(f,o),n=Math.min(m,n),l<=i&&(r=Math.min(u,r),a=Math.max(u,a))}return[r,a,o,n]},h=function(e,i){var o=t.hierarchical.getMaxLevel(e.id),n=t.hierarchical.getMaxLevel(i.id);return Math.min(o,n)},d=function(e,i,o){for(var n=t.hierarchical,s=0;s<i.length;s++){var r=i[s],a=n.distributionOrdering[r];if(a.length>1)for(var h=0;h<a.length-1;h++){var d=a[h],l=a[h+1];n.hasSameParent(d,l)&&n.inSameSubNetwork(d,l)&&e(d,l,o)}}},l=function(i,o){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=t.direction.getPosition(i),d=t.direction.getPosition(o),l=Math.abs(d-s),u=t.options.hierarchical.nodeSpacing;if(l>u){var c={},p={};r(i,c),r(o,p);var f=h(i,o),m=a(c,f),v=a(p,f),g=m[1],y=v[0],b=v[2];if(Math.abs(g-y)>u){var _=g-y+u;_<-b+u&&(_=-b+u),_<0&&(t._shiftBlock(o.id,_),e=!0,!0===n&&t._centerParent(o))}}},u=function(o,n){for(var h=n.id,d=n.edges,l=t.hierarchical.levels[n.id],u=t.options.hierarchical.levelSeparation*t.options.hierarchical.levelSeparation,c={},p=[],f=0;f<d.length;f++){var m=d[f];if(m.toId!=m.fromId){var v=m.toId==h?m.from:m.to;c[d[f].id]=v,t.hierarchical.levels[v.id]<l&&p.push(m)}}var g=function(e,i){for(var o=0,n=0;n<i.length;n++)if(void 0!==c[i[n].id]){var s=t.direction.getPosition(c[i[n].id])-e;o+=s/Math.sqrt(s*s+u)}return o},y=function(e,i){for(var o=0,n=0;n<i.length;n++)if(void 0!==c[i[n].id]){var s=t.direction.getPosition(c[i[n].id])-e;o-=u*Math.pow(s*s+u,-1.5)}return o},b=function(e,i){for(var o=t.direction.getPosition(n),s={},r=0;r<e;r++){var a=g(o,i),h=y(o,i);if(o-=Math.max(-40,Math.min(40,Math.round(a/h))),void 0!==s[o])break;s[o]=r}return o},_=b(o,p);!function(o){var s=t.direction.getPosition(n);if(void 0===i[n.id]){var h={};r(n,h),i[n.id]=h}var d=a(i[n.id]),l=d[2],u=d[3],c=o-s,p=0;c>0?p=Math.min(c,u-t.options.hierarchical.nodeSpacing):c<0&&(p=-Math.min(-c,l-t.options.hierarchical.nodeSpacing)),0!=p&&(t._shiftBlock(n.id,p),e=!0)}(_),_=b(o,d),function(i){var o=t.direction.getPosition(n),r=t._getSpaceAroundNode(n),a=(0,s.default)(r,2),h=a[0],d=a[1],l=i-o,u=o;l>0?u=Math.min(o+(d-t.options.hierarchical.nodeSpacing),i):l<0&&(u=Math.max(o-(h-t.options.hierarchical.nodeSpacing),i)),u!==o&&(t.direction.setPosition(n,u),e=!0)}(_)};!0===this.options.hierarchical.blockShifting&&(function(i){var o=t.hierarchical.getLevels();o=o.reverse();for(var n=0;n<i&&(e=!1,d(l,o,!0),!0===e);n++);}(5),function(){for(var e in t.body.nodes)t.body.nodes.hasOwnProperty(e)&&t._centerParent(t.body.nodes[e])}()),!0===this.options.hierarchical.edgeMinimization&&function(i){var o=t.hierarchical.getLevels();o=o.reverse();for(var n=0;n<i;n++){e=!1;for(var s=0;s<o.length;s++)for(var r=o[s],a=t.hierarchical.distributionOrdering[r],h=0;h<a.length;h++)u(1e3,a[h]);if(!0!==e)break}}(20),!0===this.options.hierarchical.parentCentralization&&function(){var e=t.hierarchical.getLevels();e=e.reverse();for(var i=0;i<e.length;i++)for(var o=e[i],n=t.hierarchical.distributionOrdering[o],s=0;s<n.length;s++)t._centerParent(n[s])}(),function(){for(var e=n(),i=0,s=0;s<e.length-1;s++){i+=e[s].max-e[s+1].min+t.options.hierarchical.treeSpacing,o(s+1,i)}}()}},{key:"_getSpaceAroundNode",value:function(t,e){var i=!0;void 0===e&&(i=!1);var o=this.hierarchical.levels[t.id];if(void 0!==o){var n=this.hierarchical.distributionIndex[t.id],s=this.direction.getPosition(t),r=this.hierarchical.distributionOrdering[o],a=1e9,h=1e9;if(0!==n){var d=r[n-1];if(!0===i&&void 0===e[d.id]||!1===i){a=s-this.direction.getPosition(d)}}if(n!=r.length-1){var l=r[n+1];if(!0===i&&void 0===e[l.id]||!1===i){var u=this.direction.getPosition(l);h=Math.min(h,u-s)}}return[a,h]}return[0,0]}},{key:"_centerParent",value:function(t){if(this.hierarchical.parentReference[t.id])for(var e=this.hierarchical.parentReference[t.id],i=0;i<e.length;i++){var o=e[i],n=this.body.nodes[o],r=this.hierarchical.childrenReference[o];if(void 0!==r){var a=this._getCenterPosition(r),h=this.direction.getPosition(n),d=this._getSpaceAroundNode(n),l=(0,s.default)(d,2),u=l[0],c=l[1],p=h-a;(p<0&&Math.abs(p)<c-this.options.hierarchical.nodeSpacing||p>0&&Math.abs(p)<u-this.options.hierarchical.nodeSpacing)&&this.direction.setPosition(n,a)}}}},{key:"_placeNodesByHierarchy",value:function(t){this.positionedNodes={};for(var e in t)if(t.hasOwnProperty(e)){var i=(0,d.default)(t[e]);i=this._indexArrayToNodes(i),this.direction.sort(i);for(var o=0,n=0;n<i.length;n++){var s=i[n];if(void 0===this.positionedNodes[s.id]){var r=this.options.hierarchical.nodeSpacing,a=r*o;o>0&&(a=this.direction.getPosition(i[n-1])+r),this.direction.setPosition(s,a,e),this._validatePositionAndContinue(s,e,a),o++}}}}},{key:"_placeBranchNodes",value:function(t,e){var i=this.hierarchical.childrenReference[t];if(void 0!==i){for(var o=[],n=0;n<i.length;n++)o.push(this.body.nodes[i[n]]);this.direction.sort(o);for(var s=0;s<o.length;s++){var r=o[s],a=this.hierarchical.levels[r.id];if(!(a>e&&void 0===this.positionedNodes[r.id]))return;var h=this.options.hierarchical.nodeSpacing,d=void 0;d=0===s?this.direction.getPosition(this.body.nodes[t]):this.direction.getPosition(o[s-1])+h,this.direction.setPosition(r,d,a),this._validatePositionAndContinue(r,a,d)}var l=this._getCenterPosition(o);this.direction.setPosition(this.body.nodes[t],l,e)}}},{key:"_validatePositionAndContinue",value:function(t,e,i){if(this.hierarchical.isTree){if(void 0!==this.lastNodeOnLevel[e]){var o=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[e]]);if(i-o<this.options.hierarchical.nodeSpacing){var n=o+this.options.hierarchical.nodeSpacing-i,s=this._findCommonParent(this.lastNodeOnLevel[e],t.id);this._shiftBlock(s.withChild,n)}}this.lastNodeOnLevel[e]=t.id,this.positionedNodes[t.id]=!0,this._placeBranchNodes(t.id,e)}}},{key:"_indexArrayToNodes",value:function(t){for(var e=[],i=0;i<t.length;i++)e.push(this.body.nodes[t[i]]);return e}},{key:"_getDistribution",value:function(){var t={},e=void 0,i=void 0;for(e in this.body.nodes)if(this.body.nodes.hasOwnProperty(e)){i=this.body.nodes[e];var o=void 0===this.hierarchical.levels[e]?0:this.hierarchical.levels[e];this.direction.fix(i,o),void 0===t[o]&&(t[o]={}),t[o][e]=i}return t}},{key:"_getActiveEdges",value:function(t){var e=this,i=[];return f.forEach(t.edges,function(t){-1!==e.body.edgeIndices.indexOf(t.id)&&i.push(t)}),i}},{key:"_getHubSizes",value:function(){var t=this,e={},i=this.body.nodeIndices;f.forEach(i,function(i){var o=t.body.nodes[i],n=t._getActiveEdges(o).length;e[n]=!0});var o=[];return f.forEach(e,function(t){o.push(Number(t))}),o.sort(function(t,e){return e-t}),o}},{key:"_determineLevelsByHubsize",value:function(){for(var t=this,e=function(e,i){t.hierarchical.levelDownstream(e,i)},i=this._getHubSizes(),o=0;o<i.length;++o){if("break"===function(o){var n=i[o];if(0===n)return"break";f.forEach(t.body.nodeIndices,function(i){var o=t.body.nodes[i];n===t._getActiveEdges(o).length&&t._crawlNetwork(e,i)})}(o))break}}},{key:"_determineLevelsCustomCallback",value:function(){var t=this,e=function(e,i,o){var n=t.hierarchical.levels[e.id];void 0===n&&(n=t.hierarchical.levels[e.id]=1e5);var s=(m.cloneOptions(e,"node"),m.cloneOptions(i,"node"),void m.cloneOptions(o,"edge"));t.hierarchical.levels[i.id]=n+s};this._crawlNetwork(e),this.hierarchical.setMinLevelToZero(this.body.nodes)}},{key:"_determineLevelsDirected",value:function(){var t=this,e=function(e){return f.forEach(t.body.edges,function(t){if(t.toId===e.fromId&&t.fromId===e.toId)return!0}),!1},i=function(i,o,n){var s=t.hierarchical.levels[i.id],r=t.hierarchical.levels[o.id];e(n)&&void 0!==s&&void 0!==r||(void 0===s&&(s=t.hierarchical.levels[i.id]=1e4),n.toId==o.id?t.hierarchical.levels[o.id]=s+1:t.hierarchical.levels[o.id]=s-1)};this._crawlNetwork(i),this.hierarchical.setMinLevelToZero(this.body.nodes)}},{key:"_generateMap",value:function(){var t=this,e=function(e,i){t.hierarchical.levels[i.id]>t.hierarchical.levels[e.id]&&t.hierarchical.addRelation(e.id,i.id)};this._crawlNetwork(e),this.hierarchical.checkIfTree()}},{key:"_crawlNetwork",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},i=arguments[1],o={},n=function i(n,s){if(void 0===o[n.id]){t.hierarchical.setTreeIndex(n,s),o[n.id]=!0;for(var r=void 0,a=t._getActiveEdges(n),h=0;h<a.length;h++){var d=a[h];!0===d.connected&&(r=d.toId==n.id?d.from:d.to,n.id!=r.id&&(e(n,r,d),i(r,s)))}}};if(void 0===i)for(var s=0,r=0;r<this.body.nodeIndices.length;r++){var a=this.body.nodeIndices[r];if(void 0===o[a]){var h=this.body.nodes[a];n(h,s),s+=1}}else{var d=this.body.nodes[i];if(void 0===d)return void console.error("Node not found:",i);n(d)}}},{key:"_shiftBlock",value:function(t,e){var i=this,o={};!function t(n){if(!o[n]){o[n]=!0,i.direction.shift(n,e);var s=i.hierarchical.childrenReference[n];if(void 0!==s)for(var r=0;r<s.length;r++)t(s[r])}}(t)}},{key:"_findCommonParent",value:function(t,e){var i=this,o={};return function t(e,o){var n=i.hierarchical.parentReference[o];if(void 0!==n)for(var s=0;s<n.length;s++){var r=n[s];e[r]=!0,t(e,r)}}(o,t),function t(e,o){var n=i.hierarchical.parentReference[o];if(void 0!==n)for(var s=0;s<n.length;s++){var r=n[s];if(void 0!==e[r])return{foundParent:r,withChild:o};var a=t(e,r);if(null!==a.foundParent)return a}return{foundParent:null,withChild:o}}(o,e)}},{key:"setDirectionStrategy",value:function(){var t="UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction;this.direction=t?new y(this):new g(this)}},{key:"_getCenterPosition",value:function(t){for(var e=1e9,i=-1e9,o=0;o<t.length;o++){var n=void 0;if(void 0!==t[o].id)n=t[o];else{var s=t[o];n=this.body.nodes[s]}var r=this.direction.getPosition(n);e=Math.min(e,r),i=Math.max(i,r)}return.5*(e+i)}}]),t}();e.default=_},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.VerticalStrategy=e.HorizontalStrategy=void 0;var n=i(3),s=o(n),r=i(4),a=o(r),h=i(5),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=function(){function t(){(0,u.default)(this,t)}return(0,p.default)(t,[{key:"abstract",value:function(){throw new Error("Can't instantiate abstract class!")}},{key:"fake_use",value:function(){}},{key:"curveType",value:function(){return this.abstract()}},{key:"getPosition",value:function(t){return this.fake_use(t),this.abstract()}},{key:"setPosition",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;this.fake_use(t,e,i),this.abstract()}},{key:"getTreeSize",value:function(t){return this.fake_use(t),this.abstract()}},{key:"sort",value:function(t){this.fake_use(t),this.abstract()}},{key:"fix",value:function(t,e){this.fake_use(t,e),this.abstract()}},{key:"shift",value:function(t,e){this.fake_use(t,e),this.abstract()}}]),t}(),m=function(t){function e(t){(0,u.default)(this,e);var i=(0,a.default)(this,(e.__proto__||(0,s.default)(e)).call(this));return i.layout=t,i}return(0,d.default)(e,t),(0,p.default)(e,[{key:"curveType",value:function(){return"horizontal"}},{key:"getPosition",value:function(t){return t.x}},{key:"setPosition",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(t,i),t.x=e}},{key:"getTreeSize",value:function(t){var e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,t);return{min:e.min_x,max:e.max_x}}},{key:"sort",value:function(t){t.sort(function(t,e){return void 0===t.x||void 0===e.x?0:t.x-e.x})}},{key:"fix",value:function(t,e){t.y=this.layout.options.hierarchical.levelSeparation*e,t.options.fixed.y=!0}},{key:"shift",value:function(t,e){this.layout.body.nodes[t].x+=e}}]),e}(f),v=function(t){function e(t){(0,u.default)(this,e);var i=(0,a.default)(this,(e.__proto__||(0,s.default)(e)).call(this));return i.layout=t,i}return(0,d.default)(e,t),(0,p.default)(e,[{key:"curveType",value:function(){return"vertical"}},{key:"getPosition",value:function(t){return t.y}},{key:"setPosition",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(t,i),t.y=e}},{key:"getTreeSize",value:function(t){var e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,t);return{min:e.min_y,max:e.max_y}}},{key:"sort",value:function(t){t.sort(function(t,e){return void 0===t.y||void 0===e.y?0:t.y-e.y})}},{key:"fix",value:function(t,e){t.x=this.layout.options.hierarchical.levelSeparation*e,t.options.fixed.x=!0}},{key:"shift",value:function(t,e){this.layout.body.nodes[t].y+=e}}]),e}(f);e.HorizontalStrategy=v,e.VerticalStrategy=m},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(8),s=o(n),r=i(19),a=o(r),h=i(6),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=i(10),v=i(37),g=function(){function t(e,i,o){var n=this;(0,u.default)(this,t),this.body=e,this.canvas=i,this.selectionHandler=o,this.editMode=!1,this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0,this.manipulationHammers=[],this.temporaryUIFunctions={},this.temporaryEventFunctions=[],this.touchTime=0,this.temporaryIds={nodes:[],edges:[]},this.guiEnabled=!1,this.inMode=!1,this.selectedControlNode=void 0,this.options={},this.defaultOptions={enabled:!1,initiallyActive:!1,addNode:!0,addEdge:!0,editNode:void 0,editEdge:!0,deleteNode:!0,deleteEdge:!0,controlNodeStyle:{shape:"dot",size:6,color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968",border:"#3c3c3c"}},borderWidth:2,borderWidthSelected:2}},f.extend(this.options,this.defaultOptions),this.body.emitter.on("destroy",function(){n._clean()}),this.body.emitter.on("_dataChanged",this._restore.bind(this)),this.body.emitter.on("_resetData",this._restore.bind(this))}return(0,p.default)(t,[{key:"_restore",value:function(){!1!==this.inMode&&(!0===this.options.initiallyActive?this.enableEditMode():this.disableEditMode())}},{key:"setOptions",value:function(t,e,i){void 0!==e&&(void 0!==e.locale?this.options.locale=e.locale:this.options.locale=i.locale,void 0!==e.locales?this.options.locales=e.locales:this.options.locales=i.locales),void 0!==t&&("boolean"==typeof t?this.options.enabled=t:(this.options.enabled=!0,f.deepExtend(this.options,t)),!0===this.options.initiallyActive&&(this.editMode=!0),this._setup())}},{key:"toggleEditMode",value:function(){!0===this.editMode?this.disableEditMode():this.enableEditMode()}},{key:"enableEditMode",value:function(){this.editMode=!0,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display="block",this.closeDiv.style.display="block",this.editModeDiv.style.display="none",this.showManipulatorToolbar())}},{key:"disableEditMode",value:function(){this.editMode=!1,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display="none",this.closeDiv.style.display="none",this.editModeDiv.style.display="block",this._createEditButton())}},{key:"showManipulatorToolbar",value:function(){if(this._clean(),this.manipulationDOM={},!0===this.guiEnabled){this.editMode=!0,this.manipulationDiv.style.display="block",this.closeDiv.style.display="block";var t=this.selectionHandler._getSelectedNodeCount(),e=this.selectionHandler._getSelectedEdgeCount(),i=t+e,o=this.options.locales[this.options.locale],n=!1;!1!==this.options.addNode&&(this._createAddNodeButton(o),n=!0),!1!==this.options.addEdge&&(!0===n?this._createSeperator(1):n=!0,this._createAddEdgeButton(o)),1===t&&"function"==typeof this.options.editNode?(!0===n?this._createSeperator(2):n=!0,this._createEditNodeButton(o)):1===e&&0===t&&!1!==this.options.editEdge&&(!0===n?this._createSeperator(3):n=!0,this._createEditEdgeButton(o)),0!==i&&(t>0&&!1!==this.options.deleteNode?(!0===n&&this._createSeperator(4),this._createDeleteButton(o)):0===t&&!1!==this.options.deleteEdge&&(!0===n&&this._createSeperator(4),this._createDeleteButton(o))),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this)),this._temporaryBindEvent("select",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit("_redraw")}},{key:"addNodeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addNode",!0===this.guiEnabled){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.addDescription||this.options.locales.en.addDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent("click",this._performAddNode.bind(this))}},{key:"editNode",value:function(){var t=this;!0!==this.editMode&&this.enableEditMode(),this._clean();var e=this.selectionHandler._getSelectedNode();if(void 0!==e){if(this.inMode="editNode","function"!=typeof this.options.editNode)throw new Error("No function has been configured to handle the editing of nodes.");if(!0!==e.isCluster){var i=f.deepExtend({},e.options,!1);if(i.x=e.x,i.y=e.y,2!==this.options.editNode.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editNode(i,function(e){null!==e&&void 0!==e&&"editNode"===t.inMode&&t.body.data.nodes.getDataSet().update(e),t.showManipulatorToolbar()})}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}},{key:"addEdgeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addEdge",!0===this.guiEnabled){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.edgeDescription||this.options.locales.en.edgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI("onTouch",this._handleConnect.bind(this)),this._temporaryBindUI("onDragEnd",this._finishConnect.bind(this)),this._temporaryBindUI("onDrag",this._dragControlNode.bind(this)),this._temporaryBindUI("onRelease",this._finishConnect.bind(this)),this._temporaryBindUI("onDragStart",this._dragStartEdge.bind(this)),this._temporaryBindUI("onHold",function(){})}},{key:"editEdgeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="editEdge","object"===(0,d.default)(this.options.editEdge)&&"function"==typeof this.options.editEdge.editWithoutDrag&&(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId)){var t=this.body.edges[this.edgeBeingEditedId];return void this._performEditEdge(t.from,t.to)}if(!0===this.guiEnabled){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}if(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId){var i=this.body.edges[this.edgeBeingEditedId],o=this._getNewTargetNode(i.from.x,i.from.y),n=this._getNewTargetNode(i.to.x,i.to.y);this.temporaryIds.nodes.push(o.id),this.temporaryIds.nodes.push(n.id),this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id),this.body.nodes[n.id]=n,this.body.nodeIndices.push(n.id),this._temporaryBindUI("onTouch",this._controlNodeTouch.bind(this)),this._temporaryBindUI("onTap",function(){}),this._temporaryBindUI("onHold",function(){}),this._temporaryBindUI("onDragStart",this._controlNodeDragStart.bind(this)),this._temporaryBindUI("onDrag",this._controlNodeDrag.bind(this)),this._temporaryBindUI("onDragEnd",this._controlNodeDragEnd.bind(this)),this._temporaryBindUI("onMouseMove",function(){}),this._temporaryBindEvent("beforeDrawing",function(t){var e=i.edgeType.findBorderPositions(t);!1===o.selected&&(o.x=e.from.x,o.y=e.from.y),!1===n.selected&&(n.x=e.to.x,n.y=e.to.y)}),this.body.emitter.emit("_redraw")}else this.showManipulatorToolbar()}},{key:"deleteSelected",value:function(){var t=this;!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="delete";var e=this.selectionHandler.getSelectedNodes(),i=this.selectionHandler.getSelectedEdges(),o=void 0;if(e.length>0){for(var n=0;n<e.length;n++)if(!0===this.body.nodes[e[n]].isCluster)return void alert(this.options.locales[this.options.locale].deleteClusterError||this.options.locales.en.deleteClusterError);"function"==typeof this.options.deleteNode&&(o=this.options.deleteNode)}else i.length>0&&"function"==typeof this.options.deleteEdge&&(o=this.options.deleteEdge);if("function"==typeof o){var s={nodes:e,edges:i}
+;if(2!==o.length)throw new Error("The function for delete does not support two arguments (data, callback)");o(s,function(e){null!==e&&void 0!==e&&"delete"===t.inMode?(t.body.data.edges.getDataSet().remove(e.edges),t.body.data.nodes.getDataSet().remove(e.nodes),t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar()):(t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().remove(i),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}},{key:"_setup",value:function(){!0===this.options.enabled?(this.guiEnabled=!0,this._createWrappers(),!1===this.editMode?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:"_createWrappers",value:function(){void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",!0===this.editMode?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",!0===this.editMode?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv&&(this.closeDiv=document.createElement("div"),this.closeDiv.className="vis-close",this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}},{key:"_getNewTargetNode",value:function(t,e){var i=f.deepExtend({},this.options.controlNodeStyle);i.id="targetNode"+f.randomUUID(),i.hidden=!1,i.physics=!1,i.x=t,i.y=e;var o=this.body.functions.createNode(i);return o.shape.boundingBox={left:t,right:t,top:e,bottom:e},o}},{key:"_createEditButton",value:function(){this._clean(),this.manipulationDOM={},f.recursiveDOMDelete(this.editModeDiv);var t=this.options.locales[this.options.locale],e=this._createButton("editMode","vis-button vis-edit vis-edit-mode",t.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(e),this._bindHammerToDiv(e,this.toggleEditMode.bind(this))}},{key:"_clean",value:function(){this.inMode=!1,!0===this.guiEnabled&&(f.recursiveDOMDelete(this.editModeDiv),f.recursiveDOMDelete(this.manipulationDiv),this._cleanManipulatorHammers()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}},{key:"_cleanManipulatorHammers",value:function(){if(0!=this.manipulationHammers.length){for(var t=0;t<this.manipulationHammers.length;t++)this.manipulationHammers[t].destroy();this.manipulationHammers=[]}}},{key:"_removeManipulationDOM",value:function(){this._clean(),f.recursiveDOMDelete(this.manipulationDiv),f.recursiveDOMDelete(this.editModeDiv),f.recursiveDOMDelete(this.closeDiv),this.manipulationDiv&&this.canvas.frame.removeChild(this.manipulationDiv),this.editModeDiv&&this.canvas.frame.removeChild(this.editModeDiv),this.closeDiv&&this.canvas.frame.removeChild(this.closeDiv),this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0}},{key:"_createSeperator",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;this.manipulationDOM["seperatorLineDiv"+t]=document.createElement("div"),this.manipulationDOM["seperatorLineDiv"+t].className="vis-separator-line",this.manipulationDiv.appendChild(this.manipulationDOM["seperatorLineDiv"+t])}},{key:"_createAddNodeButton",value:function(t){var e=this._createButton("addNode","vis-button vis-add",t.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.addNodeMode.bind(this))}},{key:"_createAddEdgeButton",value:function(t){var e=this._createButton("addEdge","vis-button vis-connect",t.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.addEdgeMode.bind(this))}},{key:"_createEditNodeButton",value:function(t){var e=this._createButton("editNode","vis-button vis-edit",t.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.editNode.bind(this))}},{key:"_createEditEdgeButton",value:function(t){var e=this._createButton("editEdge","vis-button vis-edit",t.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.editEdgeMode.bind(this))}},{key:"_createDeleteButton",value:function(t){var e;e=this.options.rtl?"vis-button vis-delete-rtl":"vis-button vis-delete";var i=this._createButton("delete",e,t.del||this.options.locales.en.del);this.manipulationDiv.appendChild(i),this._bindHammerToDiv(i,this.deleteSelected.bind(this))}},{key:"_createBackButton",value:function(t){var e=this._createButton("back","vis-button vis-back",t.back||this.options.locales.en.back);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.showManipulatorToolbar.bind(this))}},{key:"_createButton",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"vis-label";return this.manipulationDOM[t+"Div"]=document.createElement("div"),this.manipulationDOM[t+"Div"].className=e,this.manipulationDOM[t+"Label"]=document.createElement("div"),this.manipulationDOM[t+"Label"].className=o,this.manipulationDOM[t+"Label"].innerHTML=i,this.manipulationDOM[t+"Div"].appendChild(this.manipulationDOM[t+"Label"]),this.manipulationDOM[t+"Div"]}},{key:"_createDescription",value:function(t){this.manipulationDiv.appendChild(this._createButton("description","vis-button vis-none",t))}},{key:"_temporaryBindEvent",value:function(t,e){this.temporaryEventFunctions.push({event:t,boundFunction:e}),this.body.emitter.on(t,e)}},{key:"_temporaryBindUI",value:function(t,e){if(void 0===this.body.eventListeners[t])throw new Error("This UI function does not exist. Typo? You tried: "+t+" possible are: "+(0,a.default)((0,s.default)(this.body.eventListeners)));this.temporaryUIFunctions[t]=this.body.eventListeners[t],this.body.eventListeners[t]=e}},{key:"_unbindTemporaryUIs",value:function(){for(var t in this.temporaryUIFunctions)this.temporaryUIFunctions.hasOwnProperty(t)&&(this.body.eventListeners[t]=this.temporaryUIFunctions[t],delete this.temporaryUIFunctions[t]);this.temporaryUIFunctions={}}},{key:"_unbindTemporaryEvents",value:function(){for(var t=0;t<this.temporaryEventFunctions.length;t++){var e=this.temporaryEventFunctions[t].event,i=this.temporaryEventFunctions[t].boundFunction;this.body.emitter.off(e,i)}this.temporaryEventFunctions=[]}},{key:"_bindHammerToDiv",value:function(t,e){var i=new m(t,{});v.onTouch(i,e),this.manipulationHammers.push(i)}},{key:"_cleanupTemporaryNodesAndEdges",value:function(){for(var t=0;t<this.temporaryIds.edges.length;t++){this.body.edges[this.temporaryIds.edges[t]].disconnect(),delete this.body.edges[this.temporaryIds.edges[t]];var e=this.body.edgeIndices.indexOf(this.temporaryIds.edges[t]);-1!==e&&this.body.edgeIndices.splice(e,1)}for(var i=0;i<this.temporaryIds.nodes.length;i++){delete this.body.nodes[this.temporaryIds.nodes[i]];var o=this.body.nodeIndices.indexOf(this.temporaryIds.nodes[i]);-1!==o&&this.body.nodeIndices.splice(o,1)}this.temporaryIds={nodes:[],edges:[]}}},{key:"_controlNodeTouch",value:function(t){this.selectionHandler.unselectAll(),this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=f.extend({},this.body.view.translation)}},{key:"_controlNodeDragStart",value:function(t){var e=this.lastTouch,i=this.selectionHandler._pointerToPositionObject(e),o=this.body.nodes[this.temporaryIds.nodes[0]],n=this.body.nodes[this.temporaryIds.nodes[1]],s=this.body.edges[this.edgeBeingEditedId];this.selectedControlNode=void 0;var r=o.isOverlappingWith(i),a=n.isOverlappingWith(i);!0===r?(this.selectedControlNode=o,s.edgeType.from=o):!0===a&&(this.selectedControlNode=n,s.edgeType.to=n),void 0!==this.selectedControlNode&&this.selectionHandler.selectObject(this.selectedControlNode),this.body.emitter.emit("_redraw")}},{key:"_controlNodeDrag",value:function(t){this.body.emitter.emit("disablePhysics");var e=this.body.functions.getPointer(t.center),i=this.canvas.DOMtoCanvas(e);if(void 0!==this.selectedControlNode)this.selectedControlNode.x=i.x,this.selectedControlNode.y=i.y;else{var o=e.x-this.lastTouch.x,n=e.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+o,y:this.lastTouch.translation.y+n}}this.body.emitter.emit("_redraw")}},{key:"_controlNodeDragEnd",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),o=this.body.edges[this.edgeBeingEditedId];if(void 0!==this.selectedControlNode){this.selectionHandler.unselectAll();for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=0;r--)if(n[r]!==this.selectedControlNode.id){s=this.body.nodes[n[r]];break}if(void 0!==s&&void 0!==this.selectedControlNode)if(!0===s.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(s.id,o.to.id):this._performEditEdge(o.from.id,s.id)}else o.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}}},{key:"_handleConnect",value:function(t){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=f.extend({},this.body.view.translation);var e=this.lastTouch,i=this.selectionHandler.getNodeAt(e);if(void 0!==i)if(!0===i.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var o=this._getNewTargetNode(i.x,i.y);this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id);var n=this.body.functions.createEdge({id:"connectionEdge"+f.randomUUID(),from:i.id,to:o.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[n.id]=n,this.body.edgeIndices.push(n.id),this.temporaryIds.nodes.push(o.id),this.temporaryIds.edges.push(n.id)}this.touchTime=(new Date).valueOf()}}},{key:"_dragControlNode",value:function(t){var e=this.body.functions.getPointer(t.center);if(void 0!==this.temporaryIds.nodes[0]){var i=this.body.nodes[this.temporaryIds.nodes[0]];i.x=this.canvas._XconvertDOMtoCanvas(e.x),i.y=this.canvas._YconvertDOMtoCanvas(e.y),this.body.emitter.emit("_redraw")}else{var o=e.x-this.lastTouch.x,n=e.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+o,y:this.lastTouch.translation.y+n}}}},{key:"_finishConnect",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),o=void 0;void 0!==this.temporaryIds.edges[0]&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=0;r--)if(-1===this.temporaryIds.nodes.indexOf(n[r])){s=this.body.nodes[n[r]];break}this._cleanupTemporaryNodesAndEdges(),void 0!==s&&(!0===s.isCluster?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[o]&&void 0!==this.body.nodes[s.id]&&this._performAddEdge(o,s.id)),this.body.emitter.emit("_redraw")}},{key:"_dragStartEdge",value:function(t){var e=this.lastTouch;this.selectionHandler._generateClickEvent("dragStart",t,e,void 0,!0)}},{key:"_performAddNode",value:function(t){var e=this,i={id:f.randomUUID(),x:t.pointer.canvas.x,y:t.pointer.canvas.y,label:"new"};if("function"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw this.showManipulatorToolbar(),new Error("The function for add does not support two arguments (data,callback)");this.options.addNode(i,function(t){null!==t&&void 0!==t&&"addNode"===e.inMode&&(e.body.data.nodes.getDataSet().add(t),e.showManipulatorToolbar())})}else this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()}},{key:"_performAddEdge",value:function(t,e){var i=this,o={from:t,to:e};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.addEdge(o,function(t){null!==t&&void 0!==t&&"addEdge"===i.inMode&&(i.body.data.edges.getDataSet().add(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().add(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:"_performEditEdge",value:function(t,e){var i=this,o={id:this.edgeBeingEditedId,from:t,to:e,label:this.body.data.edges._data[this.edgeBeingEditedId].label},n=this.options.editEdge;if("object"===(void 0===n?"undefined":(0,d.default)(n))&&(n=n.editWithoutDrag),"function"==typeof n){if(2!==n.length)throw new Error("The function for edit does not support two arguments (data, callback)");n(o,function(t){null===t||void 0===t||"editEdge"!==i.inMode?(i.body.edges[o.id].updateEdgeType(),i.body.emitter.emit("_redraw"),i.showManipulatorToolbar()):(i.body.data.edges.getDataSet().update(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().update(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),t}();e.default=g},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(30),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(239),u=o(l),c=function(){function t(e,i,o){(0,a.default)(this,t),this.body=e,this.springLength=i,this.springConstant=o,this.distanceSolver=new u.default}return(0,d.default)(t,[{key:"setOptions",value:function(t){t&&(t.springLength&&(this.springLength=t.springLength),t.springConstant&&(this.springConstant=t.springConstant))}},{key:"solve",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=this.distanceSolver.getDistances(this.body,t,e);this._createL_matrix(o),this._createK_matrix(o),this._createE_matrix();for(var n=0,r=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),a=1e9,h=0,d=0,l=0,u=0,c=0;a>.01&&n<r;){n+=1;var p=this._getHighestEnergyNode(i),f=(0,s.default)(p,4);for(h=f[0],a=f[1],d=f[2],l=f[3],u=a,c=0;u>1&&c<5;){c+=1,this._moveNode(h,d,l);var m=this._getEnergy(h),v=(0,s.default)(m,3);u=v[0],d=v[1],l=v[2]}}}},{key:"_getHighestEnergyNode",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=0,n=e[0],r=0,a=0,h=0;h<e.length;h++){var d=e[h];if(!1===i[d].predefinedPosition||!0===i[d].isCluster&&!0===t||!0===i[d].options.fixed.x||!0===i[d].options.fixed.y){var l=this._getEnergy(d),u=(0,s.default)(l,3),c=u[0],p=u[1],f=u[2];o<c&&(o=c,n=d,r=p,a=f)}}return[n,o,r,a]}},{key:"_getEnergy",value:function(t){var e=(0,s.default)(this.E_sums[t],2),i=e[0],o=e[1];return[Math.sqrt(Math.pow(i,2)+Math.pow(o,2)),i,o]}},{key:"_moveNode",value:function(t,e,i){for(var o=this.body.nodeIndices,n=this.body.nodes,s=0,r=0,a=0,h=n[t].x,d=n[t].y,l=this.K_matrix[t],u=this.L_matrix[t],c=0;c<o.length;c++){var p=o[c];if(p!==t){var f=n[p].x,m=n[p].y,v=l[p],g=u[p],y=1/Math.pow(Math.pow(h-f,2)+Math.pow(d-m,2),1.5);s+=v*(1-g*Math.pow(d-m,2)*y),r+=v*(g*(h-f)*(d-m)*y),a+=v*(1-g*Math.pow(h-f,2)*y)}}var b=s,_=r,w=e,x=a,k=i,S=(w/b+k/_)/(_/b-x/_),D=-(_*S+w)/b;n[t].x+=D,n[t].y+=S,this._updateE_matrix(t)}},{key:"_createL_matrix",value:function(t){var e=this.body.nodeIndices,i=this.springLength;this.L_matrix=[];for(var o=0;o<e.length;o++){this.L_matrix[e[o]]={};for(var n=0;n<e.length;n++)this.L_matrix[e[o]][e[n]]=i*t[e[o]][e[n]]}}},{key:"_createK_matrix",value:function(t){var e=this.body.nodeIndices,i=this.springConstant;this.K_matrix=[];for(var o=0;o<e.length;o++){this.K_matrix[e[o]]={};for(var n=0;n<e.length;n++)this.K_matrix[e[o]][e[n]]=i*Math.pow(t[e[o]][e[n]],-2)}}},{key:"_createE_matrix",value:function(){var t=this.body.nodeIndices,e=this.body.nodes;this.E_matrix={},this.E_sums={};for(var i=0;i<t.length;i++)this.E_matrix[t[i]]=[];for(var o=0;o<t.length;o++){for(var n=t[o],s=e[n].x,r=e[n].y,a=0,h=0,d=o;d<t.length;d++){var l=t[d];if(l!==n){var u=e[l].x,c=e[l].y,p=1/Math.sqrt(Math.pow(s-u,2)+Math.pow(r-c,2));this.E_matrix[n][d]=[this.K_matrix[n][l]*(s-u-this.L_matrix[n][l]*(s-u)*p),this.K_matrix[n][l]*(r-c-this.L_matrix[n][l]*(r-c)*p)],this.E_matrix[l][o]=this.E_matrix[n][d],a+=this.E_matrix[n][d][0],h+=this.E_matrix[n][d][1]}}this.E_sums[n]=[a,h]}}},{key:"_updateE_matrix",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=this.E_matrix[t],n=this.K_matrix[t],s=this.L_matrix[t],r=i[t].x,a=i[t].y,h=0,d=0,l=0;l<e.length;l++){var u=e[l];if(u!==t){var c=o[l],p=c[0],f=c[1],m=i[u].x,v=i[u].y,g=1/Math.sqrt(Math.pow(r-m,2)+Math.pow(a-v,2)),y=n[u]*(r-m-s[u]*(r-m)*g),b=n[u]*(a-v-s[u]*(a-v)*g);o[l]=[y,b],h+=y,d+=b;var _=this.E_sums[u];_[0]+=y-p,_[1]+=b-f}}this.E_sums[t]=[h,d]}}]),t}();e.default=c},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(){(0,s.default)(this,t)}return(0,a.default)(t,[{key:"getDistances",value:function(t,e,i){for(var o={},n=t.edges,s=0;s<e.length;s++){var r=e[s],a={};o[r]=a;for(var h=0;h<e.length;h++)a[e[h]]=s==h?0:1e9}for(var d=0;d<i.length;d++){var l=n[i[d]];!0===l.connected&&void 0!==o[l.fromId]&&void 0!==o[l.toId]&&(o[l.fromId][l.toId]=1,o[l.toId][l.fromId]=1)}for(var u=e.length,c=0;c<u;c++)for(var p=e[c],f=o[p],m=0;m<u-1;m++)for(var v=e[m],g=o[v],y=m+1;y<u;y++){var b=e[y],_=o[b],w=Math.min(g[b],g[p]+f[b]);g[b]=w,_[v]=w}return o}}]),t}();e.default=h}])});
\ No newline at end of file
diff --git a/src/docs/js/libs/zepto.min.js b/src/docs/js/libs/zepto.min.js
new file mode 100644
index 0000000..4821a1c
--- /dev/null
+++ b/src/docs/js/libs/zepto.min.js
@@ -0,0 +1,2 @@
+/* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */
+!function(t,e){"function"==typeof define&&define.amd?define(function(){return e(t)}):e(t)}(this,function(t){var e=function(){function $(t){return null==t?String(t):S[C.call(t)]||"object"}function F(t){return"function"==$(t)}function k(t){return null!=t&&t==t.window}function M(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function R(t){return"object"==$(t)}function Z(t){return R(t)&&!k(t)&&Object.getPrototypeOf(t)==Object.prototype}function z(t){var e=!!t&&"length"in t&&t.length,n=r.type(t);return"function"!=n&&!k(t)&&("array"==n||0===e||"number"==typeof e&&e>0&&e-1 in t)}function q(t){return a.call(t,function(t){return null!=t})}function H(t){return t.length>0?r.fn.concat.apply([],t):t}function I(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function V(t){return t in l?l[t]:l[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function _(t,e){return"number"!=typeof e||h[I(t)]?e:e+"px"}function B(t){var e,n;return c[t]||(e=f.createElement(t),f.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),c[t]=n),c[t]}function U(t){return"children"in t?u.call(t.children):r.map(t.childNodes,function(t){return 1==t.nodeType?t:void 0})}function X(t,e){var n,r=t?t.length:0;for(n=0;r>n;n++)this[n]=t[n];this.length=r,this.selector=e||""}function J(t,r,i){for(n in r)i&&(Z(r[n])||L(r[n]))?(Z(r[n])&&!Z(t[n])&&(t[n]={}),L(r[n])&&!L(t[n])&&(t[n]=[]),J(t[n],r[n],i)):r[n]!==e&&(t[n]=r[n])}function W(t,e){return null==e?r(t):r(t).filter(e)}function Y(t,e,n,r){return F(e)?e.call(t,n,r):e}function G(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function K(t,n){var r=t.className||"",i=r&&r.baseVal!==e;return n===e?i?r.baseVal:r:void(i?r.baseVal=n:t.className=n)}function Q(t){try{return t?"true"==t||("false"==t?!1:"null"==t?null:+t+""==t?+t:/^[\[\{]/.test(t)?r.parseJSON(t):t):t}catch(e){return t}}function tt(t,e){e(t);for(var n=0,r=t.childNodes.length;r>n;n++)tt(t.childNodes[n],e)}var e,n,r,i,O,P,o=[],s=o.concat,a=o.filter,u=o.slice,f=t.document,c={},l={},h={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},p=/^\s*<(\w+|!)[^>]*>/,d=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,m=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,g=/^(?:body|html)$/i,v=/([A-Z])/g,y=["val","css","html","text","data","width","height","offset"],x=["after","prepend","before","append"],b=f.createElement("table"),E=f.createElement("tr"),j={tr:f.createElement("tbody"),tbody:b,thead:b,tfoot:b,td:E,th:E,"*":f.createElement("div")},w=/complete|loaded|interactive/,T=/^[\w-]*$/,S={},C=S.toString,N={},A=f.createElement("div"),D={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},L=Array.isArray||function(t){return t instanceof Array};return N.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var r,i=t.parentNode,o=!i;return o&&(i=A).appendChild(t),r=~N.qsa(i,e).indexOf(t),o&&A.removeChild(t),r},O=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},P=function(t){return a.call(t,function(e,n){return t.indexOf(e)==n})},N.fragment=function(t,n,i){var o,s,a;return d.test(t)&&(o=r(f.createElement(RegExp.$1))),o||(t.replace&&(t=t.replace(m,"<$1></$2>")),n===e&&(n=p.test(t)&&RegExp.$1),n in j||(n="*"),a=j[n],a.innerHTML=""+t,o=r.each(u.call(a.childNodes),function(){a.removeChild(this)})),Z(i)&&(s=r(o),r.each(i,function(t,e){y.indexOf(t)>-1?s[t](e):s.attr(t,e)})),o},N.Z=function(t,e){return new X(t,e)},N.isZ=function(t){return t instanceof N.Z},N.init=function(t,n){var i;if(!t)return N.Z();if("string"==typeof t)if(t=t.trim(),"<"==t[0]&&p.test(t))i=N.fragment(t,RegExp.$1,n),t=null;else{if(n!==e)return r(n).find(t);i=N.qsa(f,t)}else{if(F(t))return r(f).ready(t);if(N.isZ(t))return t;if(L(t))i=q(t);else if(R(t))i=[t],t=null;else if(p.test(t))i=N.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==e)return r(n).find(t);i=N.qsa(f,t)}}return N.Z(i,t)},r=function(t,e){return N.init(t,e)},r.extend=function(t){var e,n=u.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){J(t,n,e)}),t},N.qsa=function(t,e){var n,r="#"==e[0],i=!r&&"."==e[0],o=r||i?e.slice(1):e,s=T.test(o);return t.getElementById&&s&&r?(n=t.getElementById(o))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:u.call(s&&!r&&t.getElementsByClassName?i?t.getElementsByClassName(o):t.getElementsByTagName(e):t.querySelectorAll(e))},r.contains=f.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},r.type=$,r.isFunction=F,r.isWindow=k,r.isArray=L,r.isPlainObject=Z,r.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},r.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},r.inArray=function(t,e,n){return o.indexOf.call(e,t,n)},r.camelCase=O,r.trim=function(t){return null==t?"":String.prototype.trim.call(t)},r.uuid=0,r.support={},r.expr={},r.noop=function(){},r.map=function(t,e){var n,i,o,r=[];if(z(t))for(i=0;i<t.length;i++)n=e(t[i],i),null!=n&&r.push(n);else for(o in t)n=e(t[o],o),null!=n&&r.push(n);return H(r)},r.each=function(t,e){var n,r;if(z(t)){for(n=0;n<t.length;n++)if(e.call(t[n],n,t[n])===!1)return t}else for(r in t)if(e.call(t[r],r,t[r])===!1)return t;return t},r.grep=function(t,e){return a.call(t,e)},t.JSON&&(r.parseJSON=JSON.parse),r.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(t,e){S["[object "+e+"]"]=e.toLowerCase()}),r.fn={constructor:N.Z,length:0,forEach:o.forEach,reduce:o.reduce,push:o.push,sort:o.sort,splice:o.splice,indexOf:o.indexOf,concat:function(){var t,e,n=[];for(t=0;t<arguments.length;t++)e=arguments[t],n[t]=N.isZ(e)?e.toArray():e;return s.apply(N.isZ(this)?this.toArray():this,n)},map:function(t){return r(r.map(this,function(e,n){return t.call(e,n,e)}))},slice:function(){return r(u.apply(this,arguments))},ready:function(t){return w.test(f.readyState)&&f.body?t(r):f.addEventListener("DOMContentLoaded",function(){t(r)},!1),this},get:function(t){return t===e?u.call(this):this[t>=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return o.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return F(t)?this.not(this.not(t)):r(a.call(this,function(e){return N.matches(e,t)}))},add:function(t,e){return r(P(this.concat(r(t,e))))},is:function(t){return this.length>0&&N.matches(this[0],t)},not:function(t){var n=[];if(F(t)&&t.call!==e)this.each(function(e){t.call(this,e)||n.push(this)});else{var i="string"==typeof t?this.filter(t):z(t)&&F(t.item)?u.call(t):r(t);this.forEach(function(t){i.indexOf(t)<0&&n.push(t)})}return r(n)},has:function(t){return this.filter(function(){return R(t)?r.contains(this,t):r(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!R(t)?t:r(t)},last:function(){var t=this[this.length-1];return t&&!R(t)?t:r(t)},find:function(t){var e,n=this;return e=t?"object"==typeof t?r(t).filter(function(){var t=this;return o.some.call(n,function(e){return r.contains(e,t)})}):1==this.length?r(N.qsa(this[0],t)):this.map(function(){return N.qsa(this,t)}):r()},closest:function(t,e){var n=[],i="object"==typeof t&&r(t);return this.each(function(r,o){for(;o&&!(i?i.indexOf(o)>=0:N.matches(o,t));)o=o!==e&&!M(o)&&o.parentNode;o&&n.indexOf(o)<0&&n.push(o)}),r(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=r.map(n,function(t){return(t=t.parentNode)&&!M(t)&&e.indexOf(t)<0?(e.push(t),t):void 0});return W(e,t)},parent:function(t){return W(P(this.pluck("parentNode")),t)},children:function(t){return W(this.map(function(){return U(this)}),t)},contents:function(){return this.map(function(){return this.contentDocument||u.call(this.childNodes)})},siblings:function(t){return W(this.map(function(t,e){return a.call(U(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return r.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=B(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=F(t);if(this[0]&&!e)var n=r(t).get(0),i=n.parentNode||this.length>1;return this.each(function(o){r(this).wrapAll(e?t.call(this,o):i?n.cloneNode(!0):n)})},wrapAll:function(t){if(this[0]){r(this[0]).before(t=r(t));for(var e;(e=t.children()).length;)t=e.first();r(t).append(this)}return this},wrapInner:function(t){var e=F(t);return this.each(function(n){var i=r(this),o=i.contents(),s=e?t.call(this,n):t;o.length?o.wrapAll(s):i.append(s)})},unwrap:function(){return this.parent().each(function(){r(this).replaceWith(r(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(t){return this.each(function(){var n=r(this);(t===e?"none"==n.css("display"):t)?n.show():n.hide()})},prev:function(t){return r(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return r(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var n=this.innerHTML;r(this).empty().append(Y(this,t,e,n))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=Y(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this.pluck("textContent").join(""):null},attr:function(t,r){var i;return"string"!=typeof t||1 in arguments?this.each(function(e){if(1===this.nodeType)if(R(t))for(n in t)G(this,n,t[n]);else G(this,t,Y(this,r,e,this.getAttribute(t)))}):0 in this&&1==this[0].nodeType&&null!=(i=this[0].getAttribute(t))?i:e},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){G(this,t)},this)})},prop:function(t,e){return t=D[t]||t,1 in arguments?this.each(function(n){this[t]=Y(this,e,n,this[t])}):this[0]&&this[0][t]},removeProp:function(t){return t=D[t]||t,this.each(function(){delete this[t]})},data:function(t,n){var r="data-"+t.replace(v,"-$1").toLowerCase(),i=1 in arguments?this.attr(r,n):this.attr(r);return null!==i?Q(i):e},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each(function(e){this.value=Y(this,t,e,this.value)})):this[0]&&(this[0].multiple?r(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(e){if(e)return this.each(function(t){var n=r(this),i=Y(this,e,t,n.offset()),o=n.offsetParent().offset(),s={top:i.top-o.top,left:i.left-o.left};"static"==n.css("position")&&(s.position="relative"),n.css(s)});if(!this.length)return null;if(f.documentElement!==this[0]&&!r.contains(f.documentElement,this[0]))return{top:0,left:0};var n=this[0].getBoundingClientRect();return{left:n.left+t.pageXOffset,top:n.top+t.pageYOffset,width:Math.round(n.width),height:Math.round(n.height)}},css:function(t,e){if(arguments.length<2){var i=this[0];if("string"==typeof t){if(!i)return;return i.style[O(t)]||getComputedStyle(i,"").getPropertyValue(t)}if(L(t)){if(!i)return;var o={},s=getComputedStyle(i,"");return r.each(t,function(t,e){o[e]=i.style[O(e)]||s.getPropertyValue(e)}),o}}var a="";if("string"==$(t))e||0===e?a=I(t)+":"+_(t,e):this.each(function(){this.style.removeProperty(I(t))});else for(n in t)t[n]||0===t[n]?a+=I(n)+":"+_(n,t[n])+";":this.each(function(){this.style.removeProperty(I(n))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(r(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return t?o.some.call(this,function(t){return this.test(K(t))},V(t)):!1},addClass:function(t){return t?this.each(function(e){if("className"in this){i=[];var n=K(this),o=Y(this,t,e,n);o.split(/\s+/g).forEach(function(t){r(this).hasClass(t)||i.push(t)},this),i.length&&K(this,n+(n?" ":"")+i.join(" "))}}):this},removeClass:function(t){return this.each(function(n){if("className"in this){if(t===e)return K(this,"");i=K(this),Y(this,t,n,i).split(/\s+/g).forEach(function(t){i=i.replace(V(t)," ")}),K(this,i.trim())}})},toggleClass:function(t,n){return t?this.each(function(i){var o=r(this),s=Y(this,t,i,K(this));s.split(/\s+/g).forEach(function(t){(n===e?!o.hasClass(t):n)?o.addClass(t):o.removeClass(t)})}):this},scrollTop:function(t){if(this.length){var n="scrollTop"in this[0];return t===e?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var n="scrollLeft"in this[0];return t===e?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),i=g.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(r(t).css("margin-top"))||0,n.left-=parseFloat(r(t).css("margin-left"))||0,i.top+=parseFloat(r(e[0]).css("border-top-width"))||0,i.left+=parseFloat(r(e[0]).css("border-left-width"))||0,{top:n.top-i.top,left:n.left-i.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||f.body;t&&!g.test(t.nodeName)&&"static"==r(t).css("position");)t=t.offsetParent;return t})}},r.fn.detach=r.fn.remove,["width","height"].forEach(function(t){var n=t.replace(/./,function(t){return t[0].toUpperCase()});r.fn[t]=function(i){var o,s=this[0];return i===e?k(s)?s["inner"+n]:M(s)?s.documentElement["scroll"+n]:(o=this.offset())&&o[t]:this.each(function(e){s=r(this),s.css(t,Y(this,i,e,s[t]()))})}}),x.forEach(function(n,i){var o=i%2;r.fn[n]=function(){var n,a,s=r.map(arguments,function(t){var i=[];return n=$(t),"array"==n?(t.forEach(function(t){return t.nodeType!==e?i.push(t):r.zepto.isZ(t)?i=i.concat(t.get()):void(i=i.concat(N.fragment(t)))}),i):"object"==n||null==t?t:N.fragment(t)}),u=this.length>1;return s.length<1?this:this.each(function(e,n){a=o?n:n.parentNode,n=0==i?n.nextSibling:1==i?n.firstChild:2==i?n:null;var c=r.contains(f.documentElement,a);s.forEach(function(e){if(u)e=e.cloneNode(!0);else if(!a)return r(e).remove();a.insertBefore(e,n),c&&tt(e,function(e){if(!(null==e.nodeName||"SCRIPT"!==e.nodeName.toUpperCase()||e.type&&"text/javascript"!==e.type||e.src)){var n=e.ownerDocument?e.ownerDocument.defaultView:t;n.eval.call(n,e.innerHTML)}})})})},r.fn[o?n+"To":"insert"+(i?"Before":"After")]=function(t){return r(t)[n](this),this}}),N.Z.prototype=X.prototype=r.fn,N.uniq=P,N.deserializeValue=Q,r.zepto=N,r}();return t.Zepto=e,void 0===t.$&&(t.$=e),function(e){function h(t){return t._zid||(t._zid=n++)}function p(t,e,n,r){if(e=d(e),e.ns)var i=m(e.ns);return(a[h(t)]||[]).filter(function(t){return t&&(!e.e||t.e==e.e)&&(!e.ns||i.test(t.ns))&&(!n||h(t.fn)===h(n))&&(!r||t.sel==r)})}function d(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function m(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function g(t,e){return t.del&&!f&&t.e in c||!!e}function v(t){return l[t]||f&&c[t]||t}function y(t,n,i,o,s,u,f){var c=h(t),p=a[c]||(a[c]=[]);n.split(/\s/).forEach(function(n){if("ready"==n)return e(document).ready(i);var a=d(n);a.fn=i,a.sel=s,a.e in l&&(i=function(t){var n=t.relatedTarget;return!n||n!==this&&!e.contains(this,n)?a.fn.apply(this,arguments):void 0}),a.del=u;var c=u||i;a.proxy=function(e){if(e=T(e),!e.isImmediatePropagationStopped()){e.data=o;var n=c.apply(t,e._args==r?[e]:[e].concat(e._args));return n===!1&&(e.preventDefault(),e.stopPropagation()),n}},a.i=p.length,p.push(a),"addEventListener"in t&&t.addEventListener(v(a.e),a.proxy,g(a,f))})}function x(t,e,n,r,i){var o=h(t);(e||"").split(/\s/).forEach(function(e){p(t,e,n,r).forEach(function(e){delete a[o][e.i],"removeEventListener"in t&&t.removeEventListener(v(e.e),e.proxy,g(e,i))})})}function T(t,n){return(n||!t.isDefaultPrevented)&&(n||(n=t),e.each(w,function(e,r){var i=n[e];t[e]=function(){return this[r]=b,i&&i.apply(n,arguments)},t[r]=E}),t.timeStamp||(t.timeStamp=Date.now()),(n.defaultPrevented!==r?n.defaultPrevented:"returnValue"in n?n.returnValue===!1:n.getPreventDefault&&n.getPreventDefault())&&(t.isDefaultPrevented=b)),t}function S(t){var e,n={originalEvent:t};for(e in t)j.test(e)||t[e]===r||(n[e]=t[e]);return T(n,t)}var r,n=1,i=Array.prototype.slice,o=e.isFunction,s=function(t){return"string"==typeof t},a={},u={},f="onfocusin"in t,c={focus:"focusin",blur:"focusout"},l={mouseenter:"mouseover",mouseleave:"mouseout"};u.click=u.mousedown=u.mouseup=u.mousemove="MouseEvents",e.event={add:y,remove:x},e.proxy=function(t,n){var r=2 in arguments&&i.call(arguments,2);if(o(t)){var a=function(){return t.apply(n,r?r.concat(i.call(arguments)):arguments)};return a._zid=h(t),a}if(s(n))return r?(r.unshift(t[n],t),e.proxy.apply(null,r)):e.proxy(t[n],t);throw new TypeError("expected function")},e.fn.bind=function(t,e,n){return this.on(t,e,n)},e.fn.unbind=function(t,e){return this.off(t,e)},e.fn.one=function(t,e,n,r){return this.on(t,e,n,r,1)};var b=function(){return!0},E=function(){return!1},j=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,w={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};e.fn.delegate=function(t,e,n){return this.on(e,t,n)},e.fn.undelegate=function(t,e,n){return this.off(e,t,n)},e.fn.live=function(t,n){return e(document.body).delegate(this.selector,t,n),this},e.fn.die=function(t,n){return e(document.body).undelegate(this.selector,t,n),this},e.fn.on=function(t,n,a,u,f){var c,l,h=this;return t&&!s(t)?(e.each(t,function(t,e){h.on(t,n,a,e,f)}),h):(s(n)||o(u)||u===!1||(u=a,a=n,n=r),(u===r||a===!1)&&(u=a,a=r),u===!1&&(u=E),h.each(function(r,o){f&&(c=function(t){return x(o,t.type,u),u.apply(this,arguments)}),n&&(l=function(t){var r,s=e(t.target).closest(n,o).get(0);return s&&s!==o?(r=e.extend(S(t),{currentTarget:s,liveFired:o}),(c||u).apply(s,[r].concat(i.call(arguments,1)))):void 0}),y(o,t,u,a,n,l||c)}))},e.fn.off=function(t,n,i){var a=this;return t&&!s(t)?(e.each(t,function(t,e){a.off(t,n,e)}),a):(s(n)||o(i)||i===!1||(i=n,n=r),i===!1&&(i=E),a.each(function(){x(this,t,i,n)}))},e.fn.trigger=function(t,n){return t=s(t)||e.isPlainObject(t)?e.Event(t):T(t),t._args=n,this.each(function(){t.type in c&&"function"==typeof this[t.type]?this[t.type]():"dispatchEvent"in this?this.dispatchEvent(t):e(this).triggerHandler(t,n)})},e.fn.triggerHandler=function(t,n){var r,i;return this.each(function(o,a){r=S(s(t)?e.Event(t):t),r._args=n,r.target=a,e.each(p(a,t.type||t),function(t,e){return i=e.proxy(r),r.isImmediatePropagationStopped()?!1:void 0})}),i},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(t){e.fn[t]=function(e){return 0 in arguments?this.bind(t,e):this.trigger(t)}}),e.Event=function(t,e){s(t)||(e=t,t=e.type);var n=document.createEvent(u[t]||"Events"),r=!0;if(e)for(var i in e)"bubbles"==i?r=!!e[i]:n[i]=e[i];return n.initEvent(t,r,!0),T(n)}}(e),function(e){function p(t,n,r){var i=e.Event(n);return e(t).trigger(i,r),!i.isDefaultPrevented()}function d(t,e,n,i){return t.global?p(e||r,n,i):void 0}function m(t){t.global&&0===e.active++&&d(t,null,"ajaxStart")}function g(t){t.global&&!--e.active&&d(t,null,"ajaxStop")}function v(t,e){var n=e.context;return e.beforeSend.call(n,t,e)===!1||d(e,n,"ajaxBeforeSend",[t,e])===!1?!1:void d(e,n,"ajaxSend",[t,e])}function y(t,e,n,r){var i=n.context,o="success";n.success.call(i,t,o,e),r&&r.resolveWith(i,[t,o,e]),d(n,i,"ajaxSuccess",[e,n,t]),b(o,e,n)}function x(t,e,n,r,i){var o=r.context;r.error.call(o,n,e,t),i&&i.rejectWith(o,[n,e,t]),d(r,o,"ajaxError",[n,r,t||e]),b(e,n,r)}function b(t,e,n){var r=n.context;n.complete.call(r,e,t),d(n,r,"ajaxComplete",[e,n]),g(n)}function E(t,e,n){if(n.dataFilter==j)return t;var r=n.context;return n.dataFilter.call(r,t,e)}function j(){}function w(t){return t&&(t=t.split(";",2)[0]),t&&(t==c?"html":t==f?"json":a.test(t)?"script":u.test(t)&&"xml")||"text"}function T(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function S(t){t.processData&&t.data&&"string"!=e.type(t.data)&&(t.data=e.param(t.data,t.traditional)),!t.data||t.type&&"GET"!=t.type.toUpperCase()&&"jsonp"!=t.dataType||(t.url=T(t.url,t.data),t.data=void 0)}function C(t,n,r,i){return e.isFunction(n)&&(i=r,r=n,n=void 0),e.isFunction(r)||(i=r,r=void 0),{url:t,data:n,success:r,dataType:i}}function O(t,n,r,i){var o,s=e.isArray(n),a=e.isPlainObject(n);e.each(n,function(n,u){o=e.type(u),i&&(n=r?i:i+"["+(a||"object"==o||"array"==o?n:"")+"]"),!i&&s?t.add(u.name,u.value):"array"==o||!r&&"object"==o?O(t,u,r,n):t.add(n,u)})}var i,o,n=+new Date,r=t.document,s=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,a=/^(?:text|application)\/javascript/i,u=/^(?:text|application)\/xml/i,f="application/json",c="text/html",l=/^\s*$/,h=r.createElement("a");h.href=t.location.href,e.active=0,e.ajaxJSONP=function(i,o){if(!("type"in i))return e.ajax(i);var c,p,s=i.jsonpCallback,a=(e.isFunction(s)?s():s)||"Zepto"+n++,u=r.createElement("script"),f=t[a],l=function(t){e(u).triggerHandler("error",t||"abort")},h={abort:l};return o&&o.promise(h),e(u).on("load error",function(n,r){clearTimeout(p),e(u).off().remove(),"error"!=n.type&&c?y(c[0],h,i,o):x(null,r||"error",h,i,o),t[a]=f,c&&e.isFunction(f)&&f(c[0]),f=c=void 0}),v(h,i)===!1?(l("abort"),h):(t[a]=function(){c=arguments},u.src=i.url.replace(/\?(.+)=\?/,"?$1="+a),r.head.appendChild(u),i.timeout>0&&(p=setTimeout(function(){l("timeout")},i.timeout)),h)},e.ajaxSettings={type:"GET",beforeSend:j,success:j,error:j,complete:j,context:null,global:!0,xhr:function(){return new t.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:f,xml:"application/xml, text/xml",html:c,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0,dataFilter:j},e.ajax=function(n){var u,f,s=e.extend({},n||{}),a=e.Deferred&&e.Deferred();for(i in e.ajaxSettings)void 0===s[i]&&(s[i]=e.ajaxSettings[i]);m(s),s.crossDomain||(u=r.createElement("a"),u.href=s.url,u.href=u.href,s.crossDomain=h.protocol+"//"+h.host!=u.protocol+"//"+u.host),s.url||(s.url=t.location.toString()),(f=s.url.indexOf("#"))>-1&&(s.url=s.url.slice(0,f)),S(s);var c=s.dataType,p=/\?.+=\?/.test(s.url);if(p&&(c="jsonp"),s.cache!==!1&&(n&&n.cache===!0||"script"!=c&&"jsonp"!=c)||(s.url=T(s.url,"_="+Date.now())),"jsonp"==c)return p||(s.url=T(s.url,s.jsonp?s.jsonp+"=?":s.jsonp===!1?"":"callback=?")),e.ajaxJSONP(s,a);var P,d=s.accepts[c],g={},b=function(t,e){g[t.toLowerCase()]=[t,e]},C=/^([\w-]+:)\/\//.test(s.url)?RegExp.$1:t.location.protocol,N=s.xhr(),O=N.setRequestHeader;if(a&&a.promise(N),s.crossDomain||b("X-Requested-With","XMLHttpRequest"),b("Accept",d||"*/*"),(d=s.mimeType||d)&&(d.indexOf(",")>-1&&(d=d.split(",",2)[0]),N.overrideMimeType&&N.overrideMimeType(d)),(s.contentType||s.contentType!==!1&&s.data&&"GET"!=s.type.toUpperCase())&&b("Content-Type",s.contentType||"application/x-www-form-urlencoded"),s.headers)for(o in s.headers)b(o,s.headers[o]);if(N.setRequestHeader=b,N.onreadystatechange=function(){if(4==N.readyState){N.onreadystatechange=j,clearTimeout(P);var t,n=!1;if(N.status>=200&&N.status<300||304==N.status||0==N.status&&"file:"==C){if(c=c||w(s.mimeType||N.getResponseHeader("content-type")),"arraybuffer"==N.responseType||"blob"==N.responseType)t=N.response;else{t=N.responseText;try{t=E(t,c,s),"script"==c?(1,eval)(t):"xml"==c?t=N.responseXML:"json"==c&&(t=l.test(t)?null:e.parseJSON(t))}catch(r){n=r}if(n)return x(n,"parsererror",N,s,a)}y(t,N,s,a)}else x(N.statusText||null,N.status?"error":"abort",N,s,a)}},v(N,s)===!1)return N.abort(),x(null,"abort",N,s,a),N;var A="async"in s?s.async:!0;if(N.open(s.type,s.url,A,s.username,s.password),s.xhrFields)for(o in s.xhrFields)N[o]=s.xhrFields[o];for(o in g)O.apply(N,g[o]);return s.timeout>0&&(P=setTimeout(function(){N.onreadystatechange=j,N.abort(),x(null,"timeout",N,s,a)},s.timeout)),N.send(s.data?s.data:null),N},e.get=function(){return e.ajax(C.apply(null,arguments))},e.post=function(){var t=C.apply(null,arguments);return t.type="POST",e.ajax(t)},e.getJSON=function(){var t=C.apply(null,arguments);return t.dataType="json",e.ajax(t)},e.fn.load=function(t,n,r){if(!this.length)return this;var a,i=this,o=t.split(/\s/),u=C(t,n,r),f=u.success;return o.length>1&&(u.url=o[0],a=o[1]),u.success=function(t){i.html(a?e("<div>").html(t.replace(s,"")).find(a):t),f&&f.apply(i,arguments)},e.ajax(u),this};var N=encodeURIComponent;e.param=function(t,n){var r=[];return r.add=function(t,n){e.isFunction(n)&&(n=n()),null==n&&(n=""),this.push(N(t)+"="+N(n))},O(r,t,n),r.join("&").replace(/%20/g,"+")}}(e),function(t){t.fn.serializeArray=function(){var e,n,r=[],i=function(t){return t.forEach?t.forEach(i):void r.push({name:e,value:t})};return this[0]&&t.each(this[0].elements,function(r,o){n=o.type,e=o.name,e&&"fieldset"!=o.nodeName.toLowerCase()&&!o.disabled&&"submit"!=n&&"reset"!=n&&"button"!=n&&"file"!=n&&("radio"!=n&&"checkbox"!=n||o.checked)&&i(t(o).val())}),r},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(0 in arguments)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(e),function(){try{getComputedStyle(void 0)}catch(e){var n=getComputedStyle;t.getComputedStyle=function(t,e){try{return n(t,e)}catch(r){return null}}}}(),e});
\ No newline at end of file
diff --git a/src/docs/js/menu-wc.js b/src/docs/js/menu-wc.js
new file mode 100644
index 0000000..74f6ce0
--- /dev/null
+++ b/src/docs/js/menu-wc.js
@@ -0,0 +1,373 @@
+'use strict';
+
+customElements.define('compodoc-menu', class extends HTMLElement {
+    constructor() {
+        super();
+        this.isNormalMode = this.getAttribute('mode') === 'normal';
+    }
+
+    connectedCallback() {
+        this.render(this.isNormalMode);
+    }
+
+    render(isNormalMode) {
+        let tp = lithtml.html(`<nav>
+    <ul class="list">
+        <li class="title">
+            <a href="index.html" data-type="index-link">starter-bootstrap-admin-angular6 documentation</a>
+        </li>
+        <li class="divider"></li>
+        ${ isNormalMode ? `<div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+` : '' }
+        <li class="chapter">
+            <a data-type="chapter-link" href="index.html"><span class="icon ion-ios-home"></span>Getting started</a>
+            <ul class="links">
+                    <li class="link">
+                        <a href="overview.html" data-type="chapter-link">
+                            <span class="icon ion-ios-keypad"></span>Overview
+                        </a>
+                    </li>
+                    <li class="link">
+                        <a href="index.html" data-type="chapter-link">
+                            <span class="icon ion-ios-paper"></span>README
+                        </a>
+                    </li>
+                    <li class="link">
+                        <a href="dependencies.html"
+                            data-type="chapter-link">
+                            <span class="icon ion-ios-list"></span>Dependencies
+                        </a>
+                    </li>
+            </ul>
+        </li>
+        <li class="chapter modules">
+            <a data-type="chapter-link" href="modules.html">
+                <div class="menu-toggler linked" data-toggle="collapse"
+                    ${ isNormalMode ? 'data-target="#modules-links"' : 'data-target="#xs-modules-links"' }>
+                    <span class="icon ion-ios-archive"></span>
+                    <span class="link-name">Modules</span>
+                    <span class="icon ion-ios-arrow-down"></span>
+                </div>
+            </a>
+            <ul class="links collapse"
+            ${ isNormalMode ? 'id="modules-links"' : 'id="xs-modules-links"' }>
+                    <li class="link">
+                        <a href="modules/AppModule.html" data-type="entity-link">AppModule</a>
+                            <li class="chapter inner">
+                                <div class="simple menu-toggler" data-toggle="collapse"
+                                    ${ isNormalMode ? 'data-target="#components-links-module-AppModule-d64cd40e8b37345618231851690c2216"' : 'data-target="#xs-components-links-module-AppModule-d64cd40e8b37345618231851690c2216"' }>
+                                    <span class="icon ion-md-cog"></span>
+                                    <span>Components</span>
+                                    <span class="icon ion-ios-arrow-down"></span>
+                                </div>
+                                <ul class="links collapse"
+                                    ${ isNormalMode ? 'id="components-links-module-AppModule-d64cd40e8b37345618231851690c2216"' : 'id="xs-components-links-module-AppModule-d64cd40e8b37345618231851690c2216"' }>
+                                        <li class="link">
+                                            <a href="components/AppComponent.html" data-type="entity-link" data-context="sub-entity" data-context-id="modules">AppComponent</a>
+                                        </li>
+                                </ul>
+                            </li>
+                    </li>
+                    <li class="link">
+                        <a href="modules/LoginModule.html" data-type="entity-link">LoginModule</a>
+                            <li class="chapter inner">
+                                <div class="simple menu-toggler" data-toggle="collapse"
+                                    ${ isNormalMode ? 'data-target="#components-links-module-LoginModule-6b456007c6191339ca6846e33e9353e6"' : 'data-target="#xs-components-links-module-LoginModule-6b456007c6191339ca6846e33e9353e6"' }>
+                                    <span class="icon ion-md-cog"></span>
+                                    <span>Components</span>
+                                    <span class="icon ion-ios-arrow-down"></span>
+                                </div>
+                                <ul class="links collapse"
+                                    ${ isNormalMode ? 'id="components-links-module-LoginModule-6b456007c6191339ca6846e33e9353e6"' : 'id="xs-components-links-module-LoginModule-6b456007c6191339ca6846e33e9353e6"' }>
+                                        <li class="link">
+                                            <a href="components/ForgotComponent.html" data-type="entity-link" data-context="sub-entity" data-context-id="modules">ForgotComponent</a>
+                                        </li>
+                                        <li class="link">
+                                            <a href="components/LoginComponent.html" data-type="entity-link" data-context="sub-entity" data-context-id="modules">LoginComponent</a>
+                                        </li>
+                                        <li class="link">
+                                            <a href="components/RegisterComponent.html" data-type="entity-link" data-context="sub-entity" data-context-id="modules">RegisterComponent</a>
+                                        </li>
+                                </ul>
+                            </li>
+                    </li>
+                    <li class="link">
+                        <a href="modules/PagesModule.html" data-type="entity-link">PagesModule</a>
+                            <li class="chapter inner">
+                                <div class="simple menu-toggler" data-toggle="collapse"
+                                    ${ isNormalMode ? 'data-target="#components-links-module-PagesModule-923cdd6d40a38e177b6aed1433c39622"' : 'data-target="#xs-components-links-module-PagesModule-923cdd6d40a38e177b6aed1433c39622"' }>
+                                    <span class="icon ion-md-cog"></span>
+                                    <span>Components</span>
+                                    <span class="icon ion-ios-arrow-down"></span>
+                                </div>
+                                <ul class="links collapse"
+                                    ${ isNormalMode ? 'id="components-links-module-PagesModule-923cdd6d40a38e177b6aed1433c39622"' : 'id="xs-components-links-module-PagesModule-923cdd6d40a38e177b6aed1433c39622"' }>
+                                        <li class="link">
+                                            <a href="components/ForgotComponent.html" data-type="entity-link" data-context="sub-entity" data-context-id="modules">ForgotComponent</a>
+                                        </li>
+                                        <li class="link">
+                                            <a href="components/LoginComponent.html" data-type="entity-link" data-context="sub-entity" data-context-id="modules">LoginComponent</a>
+                                        </li>
+                                        <li class="link">
+                                            <a href="components/RegisterComponent.html" data-type="entity-link" data-context="sub-entity" data-context-id="modules">RegisterComponent</a>
+                                        </li>
+                                </ul>
+                            </li>
+                    </li>
+                    <li class="link">
+                        <a href="modules/SharedModule.html" data-type="entity-link">SharedModule</a>
+                    </li>
+            </ul>
+        </li>
+                <li class="chapter">
+                    <div class="simple menu-toggler" data-toggle="collapse"
+                    ${ isNormalMode ? 'data-target="#components-links"' : 'data-target="#xs-components-links"' }>
+                        <span class="icon ion-md-cog"></span>
+                        <span>Components</span>
+                        <span class="icon ion-ios-arrow-down"></span>
+                    </div>
+                    <ul class="links collapse"
+                    ${ isNormalMode ? 'id="components-links"' : 'id="xs-components-links"' }>
+                            <li class="link">
+                                <a href="components/BarChartComponent.html" data-type="entity-link">BarChartComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/BreadcrumbComponent.html" data-type="entity-link">BreadcrumbComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/ChartComponent.html" data-type="entity-link">ChartComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/CircuitsComponent.html" data-type="entity-link">CircuitsComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/DashboardComponent.html" data-type="entity-link">DashboardComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/DoughnutChartComponent.html" data-type="entity-link">DoughnutChartComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/DriversComponent.html" data-type="entity-link">DriversComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/FooterComponent.html" data-type="entity-link">FooterComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/GoogleMapsComponent.html" data-type="entity-link">GoogleMapsComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/HeaderComponent.html" data-type="entity-link">HeaderComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/LineChartComponent.html" data-type="entity-link">LineChartComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/NotpagefoundComponent.html" data-type="entity-link">NotpagefoundComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/PagesComponent.html" data-type="entity-link">PagesComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/PieChartComponent.html" data-type="entity-link">PieChartComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/PolarAreaChartComponent.html" data-type="entity-link">PolarAreaChartComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/RacesComponent.html" data-type="entity-link">RacesComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/RadarChartComponent.html" data-type="entity-link">RadarChartComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/ScrollTopComponent.html" data-type="entity-link">ScrollTopComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/SeasonsComponent.html" data-type="entity-link">SeasonsComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/SettingsComponent.html" data-type="entity-link">SettingsComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/SidebarComponent.html" data-type="entity-link">SidebarComponent</a>
+                            </li>
+                            <li class="link">
+                                <a href="components/SupportComponent.html" data-type="entity-link">SupportComponent</a>
+                            </li>
+                    </ul>
+                </li>
+                <li class="chapter">
+                    <div class="simple menu-toggler" data-toggle="collapse"
+                    ${ isNormalMode ? 'data-target="#directives-links"' : 'data-target="#xs-directives-links"' }>
+                        <span class="icon ion-md-code-working"></span>
+                        <span>Directives</span>
+                        <span class="icon ion-ios-arrow-down"></span>
+                    </div>
+                    <ul class="links collapse"
+                    ${ isNormalMode ? 'id="directives-links"' : 'id="xs-directives-links"' }>
+                            <li class="link">
+                                <a href="directives/DefaultImageDirective.html" data-type="entity-link">DefaultImageDirective</a>
+                            </li>
+                    </ul>
+                </li>
+        <li class="chapter">
+            <div class="simple menu-toggler" data-toggle="collapse"
+            ${ isNormalMode ? 'data-target="#classes-links"' : 'data-target="#xs-classes-links"' }>
+                <span class="icon ion-ios-paper"></span>
+                <span>Classes</span>
+                <span class="icon ion-ios-arrow-down"></span>
+            </div>
+            <ul class="links collapse"
+            ${ isNormalMode ? 'id="classes-links"' : 'id="xs-classes-links"' }>
+                    <li class="link">
+                        <a href="classes/Marker.html" data-type="entity-link">Marker</a>
+                    </li>
+            </ul>
+        </li>
+                <li class="chapter">
+                    <div class="simple menu-toggler" data-toggle="collapse"
+                        ${ isNormalMode ? 'data-target="#injectables-links"' : 'data-target="#xs-injectables-links"' }>
+                        <span class="icon ion-md-arrow-round-down"></span>
+                        <span>Injectables</span>
+                        <span class="icon ion-ios-arrow-down"></span>
+                    </div>
+                    <ul class="links collapse"
+                    ${ isNormalMode ? 'id="injectables-links"' : 'id="xs-injectables-links"' }>
+                            <li class="link">
+                                <a href="injectables/AlertService.html" data-type="entity-link">AlertService</a>
+                            </li>
+                            <li class="link">
+                                <a href="injectables/CircuitsService.html" data-type="entity-link">CircuitsService</a>
+                            </li>
+                            <li class="link">
+                                <a href="injectables/CurrentService.html" data-type="entity-link">CurrentService</a>
+                            </li>
+                            <li class="link">
+                                <a href="injectables/DriversService.html" data-type="entity-link">DriversService</a>
+                            </li>
+                            <li class="link">
+                                <a href="injectables/LocalStorageService.html" data-type="entity-link">LocalStorageService</a>
+                            </li>
+                            <li class="link">
+                                <a href="injectables/RacesService.html" data-type="entity-link">RacesService</a>
+                            </li>
+                            <li class="link">
+                                <a href="injectables/RequestService.html" data-type="entity-link">RequestService</a>
+                            </li>
+                            <li class="link">
+                                <a href="injectables/SeasonsService.html" data-type="entity-link">SeasonsService</a>
+                            </li>
+                            <li class="link">
+                                <a href="injectables/SettingsService.html" data-type="entity-link">SettingsService</a>
+                            </li>
+                            <li class="link">
+                                <a href="injectables/SharedService.html" data-type="entity-link">SharedService</a>
+                            </li>
+                            <li class="link">
+                                <a href="injectables/SidebarService.html" data-type="entity-link">SidebarService</a>
+                            </li>
+                    </ul>
+                </li>
+        <li class="chapter">
+            <div class="simple menu-toggler" data-toggle="collapse"
+                ${ isNormalMode ? 'data-target="#interfaces-links"' : 'data-target="#xs-interfaces-links"' }>
+                <span class="icon ion-md-information-circle-outline"></span>
+                <span>Interfaces</span>
+                <span class="icon ion-ios-arrow-down"></span>
+            </div>
+            <ul class="links collapse"
+            ${ isNormalMode ? ' id="interfaces-links"' : 'id="xs-interfaces-links"' }>
+                    <li class="link">
+                        <a href="interfaces/Circuit.html" data-type="entity-link">Circuit</a>
+                    </li>
+                    <li class="link">
+                        <a href="interfaces/Confirm.html" data-type="entity-link">Confirm</a>
+                    </li>
+                    <li class="link">
+                        <a href="interfaces/Constructor.html" data-type="entity-link">Constructor</a>
+                    </li>
+                    <li class="link">
+                        <a href="interfaces/Driver.html" data-type="entity-link">Driver</a>
+                    </li>
+                    <li class="link">
+                        <a href="interfaces/Location.html" data-type="entity-link">Location</a>
+                    </li>
+                    <li class="link">
+                        <a href="interfaces/Login.html" data-type="entity-link">Login</a>
+                    </li>
+                    <li class="link">
+                        <a href="interfaces/MarkerIF.html" data-type="entity-link">MarkerIF</a>
+                    </li>
+                    <li class="link">
+                        <a href="interfaces/Race.html" data-type="entity-link">Race</a>
+                    </li>
+                    <li class="link">
+                        <a href="interfaces/Season.html" data-type="entity-link">Season</a>
+                    </li>
+                    <li class="link">
+                        <a href="interfaces/User.html" data-type="entity-link">User</a>
+                    </li>
+            </ul>
+        </li>
+                <li class="chapter">
+                    <div class="simple menu-toggler" data-toggle="collapse"
+                    ${ isNormalMode ? 'data-target="#pipes-links"' : 'data-target="#xs-pipes-links"' }>
+                        <span class="icon ion-md-add"></span>
+                        <span>Pipes</span>
+                        <span class="icon ion-ios-arrow-down"></span>
+                    </div>
+                    <ul class="links collapse"
+                    ${ isNormalMode ? 'id="pipes-links"' : 'id="xs-pipes-links"' }>
+                            <li class="link">
+                                <a href="pipes/CapitalizePipe.html" data-type="entity-link">CapitalizePipe</a>
+                            </li>
+                            <li class="link">
+                                <a href="pipes/GoogleMapsUrlPipe.html" data-type="entity-link">GoogleMapsUrlPipe</a>
+                            </li>
+                            <li class="link">
+                                <a href="pipes/GoogleStaticMapUrlPipe.html" data-type="entity-link">GoogleStaticMapUrlPipe</a>
+                            </li>
+                            <li class="link">
+                                <a href="pipes/LocationTextPipe.html" data-type="entity-link">LocationTextPipe</a>
+                            </li>
+                            <li class="link">
+                                <a href="pipes/RoundPipe.html" data-type="entity-link">RoundPipe</a>
+                            </li>
+                            <li class="link">
+                                <a href="pipes/WikipediaUrlMobilePipe.html" data-type="entity-link">WikipediaUrlMobilePipe</a>
+                            </li>
+                    </ul>
+                </li>
+        <li class="chapter">
+            <div class="simple menu-toggler" data-toggle="collapse"
+            ${ isNormalMode ? 'data-target="#miscellaneous-links"' : 'data-target="#xs-miscellaneous-links"' }>
+                <span class="icon ion-ios-cube"></span>
+                <span>Miscellaneous</span>
+                <span class="icon ion-ios-arrow-down"></span>
+            </div>
+            <ul class="links collapse"
+            ${ isNormalMode ? 'id="miscellaneous-links"' : 'id="xs-miscellaneous-links"' }>
+                    <li class="link">
+                      <a href="miscellaneous/enumerations.html" data-type="entity-link">Enums</a>
+                    </li>
+                    <li class="link">
+                      <a href="miscellaneous/variables.html" data-type="entity-link">Variables</a>
+                    </li>
+            </ul>
+        </li>
+        <li class="chapter">
+            <a data-type="chapter-link" href="coverage.html"><span class="icon ion-ios-stats"></span>Documentation coverage</a>
+        </li>
+        <li class="divider"></li>
+        <li class="copyright">
+                Documentation generated using <a href="https://compodoc.app/" target="_blank">
+                            <img data-src="images/compodoc-vectorise.svg" class="img-responsive" data-type="compodoc-logo">
+                </a>
+        </li>
+    </ul>
+</nav>`);
+        this.innerHTML = tp.strings;
+    }
+});
diff --git a/src/docs/js/menu.js b/src/docs/js/menu.js
new file mode 100644
index 0000000..6b37506
--- /dev/null
+++ b/src/docs/js/menu.js
@@ -0,0 +1,224 @@
+document.addEventListener('DOMContentLoaded', function() {
+    var menuCollapsed = false,
+        mobileMenu = document.getElementById('mobile-menu');
+
+    var localContextInUrl = '';
+    
+    if (COMPODOC_CURRENT_PAGE_CONTEXT !== '') {
+        localContextInUrl = localContextInUrl;
+        switch (COMPODOC_CURRENT_PAGE_CONTEXT) {
+            case 'additional-page':
+                localContextInUrl = 'additional-documentation'
+                break;
+            case 'class':
+                localContextInUrl = 'classes'
+                break;
+            case 'miscellaneous-functions':
+            case 'miscellaneous-variables':
+            case 'miscellaneous-typealiases':
+            case 'miscellaneous-enumerations':
+                localContextInUrl = 'miscellaneous';
+            default:
+                break;
+        }
+    }
+
+    function hasClass(el, cls) {
+        return el.className && new RegExp("(\\s|^)" + cls + "(\\s|$)").test(el.className);
+    }
+
+    var processLink = function(link, url) {
+        if (url.charAt(0) !== '.') {
+            var prefix = '';
+            switch(COMPODOC_CURRENT_PAGE_DEPTH) {
+                case 5:
+                    prefix = '../../../../../';
+                    break;
+                case 4:
+                    prefix = '../../../../';
+                    break;
+                case 3:
+                    prefix = '../../../';
+                    break;
+                case 2:
+                    prefix = '../../';
+                    break;
+                case 1:
+                    prefix = '../';
+                    break;
+                case 0:
+                    prefix = './';
+                    break;
+            }
+            link.setAttribute('href', prefix + url);
+        }
+    }
+
+    var processMenuLinks = function(links, dontAddClass) {
+        for (var i = 0; i < links.length; i++) {
+            var link = links[i];
+            var linkHref = link.getAttribute('href');
+            if (linkHref) {
+                var linkHrefFile = linkHref.substr(linkHref.lastIndexOf('/') + 1, linkHref.length);
+                if (linkHrefFile.toLowerCase() === COMPODOC_CURRENT_PAGE_URL.toLowerCase()
+                    && link.innerHTML.indexOf('Getting started') == -1 
+                    && !dontAddClass
+                    && linkHref.toLowerCase().indexOf(localContextInUrl.toLowerCase()) !== -1 ) {
+                    link.classList.add('active');
+                }
+                processLink(link, linkHref);
+            }
+        }
+    }
+    var chapterLinks = document.querySelectorAll('[data-type="chapter-link"]');
+    processMenuLinks(chapterLinks);
+    var entityLinks = document.querySelectorAll('[data-type="entity-link"]');
+    processMenuLinks(entityLinks);
+    var indexLinks = document.querySelectorAll('[data-type="index-link"]');
+    processMenuLinks(indexLinks, true);
+    var entityLogos = document.querySelectorAll('[data-type="compodoc-logo"]');
+    var processLogos = function(entityLogo) {
+        for (var i = 0; i < entityLogos.length; i++) {
+            var entityLogo = entityLogos[i];
+            if (entityLogo) {
+                var url = entityLogo.getAttribute('data-src');
+                if (url.charAt(0) !== '.') {
+                    var prefix = '';
+                    switch(COMPODOC_CURRENT_PAGE_DEPTH) {
+                        case 5:
+                            prefix = '../../../../../';
+                            break;
+                        case 4:
+                            prefix = '../../../../';
+                            break;
+                        case 3:
+                            prefix = '../../../';
+                            break;
+                        case 2:
+                            prefix = '../../';
+                            break;
+                        case 1:
+                            prefix = '../';
+                            break;
+                        case 0:
+                            prefix = './';
+                            break
+                    }
+                    entityLogo.src = prefix + url;
+                }
+            }
+        }
+    }
+    processLogos(entityLogos);
+
+    setTimeout(function() {
+        document.getElementById('btn-menu').addEventListener('click', function() {
+            if (menuCollapsed) {
+                mobileMenu.style.display = 'none';
+            } else {
+                mobileMenu.style.display = 'block';
+                document.getElementsByTagName('body')[0].style['overflow-y'] = 'hidden';
+            }
+            menuCollapsed = !menuCollapsed;
+        });
+
+        // collapse menu
+        var classnameMenuToggler = document.getElementsByClassName('menu-toggler'),
+            faAngleUpClass = 'ion-ios-arrow-up',
+            faAngleDownClass = 'ion-ios-arrow-down',
+            toggleItemMenu = function(e) {
+                var element = $(e.target),
+                    parent = element[0].parentNode,
+                    parentLink,
+                    elementIconChild;
+                if (parent) {
+                    if (!$(parent).hasClass('linked')) {
+                        e.preventDefault();
+                    } else {
+                        parentLink = parent.parentNode;
+                        if (parentLink && element.hasClass('link-name')) {
+                            $(parentLink).trigger('click');
+                        }
+                    }
+                    elementIconChild = parent.getElementsByClassName(faAngleUpClass)[0];
+                    if (!elementIconChild) {
+                        elementIconChild = parent.getElementsByClassName(faAngleDownClass)[0];
+                    }
+                    if (elementIconChild) {
+                        elementIconChild = $(elementIconChild)
+                        if (elementIconChild.hasClass(faAngleUpClass)) {
+                            elementIconChild.addClass(faAngleDownClass);
+                            elementIconChild.removeClass(faAngleUpClass);
+                        } else {
+                            elementIconChild.addClass(faAngleUpClass);
+                            elementIconChild.removeClass(faAngleDownClass);
+                        }
+                    }
+                }
+            };
+
+        for (var i = 0; i < classnameMenuToggler.length; i++) {
+            classnameMenuToggler[i].addEventListener('click', toggleItemMenu, false);
+        }
+
+        // Scroll to active link
+        var menus = document.querySelectorAll('.menu'),
+            i = 0,
+            len = menus.length,
+            activeMenu,
+            activeMenuClass,
+            activeLink;
+
+        for (i; i<len; i++) {
+            if (getComputedStyle(menus[i]).display != 'none') {
+                activeMenu = menus[i];
+                activeMenuClass = activeMenu.getAttribute('class').split(' ')[0];
+            }
+        }
+
+        if (activeMenu) {
+            activeLink = document.querySelector('.' + activeMenuClass + ' .active');
+            if (activeLink) {
+                var linkType = activeLink.getAttribute('data-type');
+                var linkContext = activeLink.getAttribute('data-context');
+                if (linkType === 'entity-link') {
+                    var parentLi = activeLink.parentNode,
+                        parentUl,
+                        parentChapterMenu;
+                    if (parentLi) {
+                        parentUl = parentLi.parentNode;
+                        if (parentUl) {
+                            parentChapterMenu = parentUl.parentNode;
+                            if (parentChapterMenu) {
+                                var toggler = parentChapterMenu.querySelector('.menu-toggler'),
+                                    elementIconChild = toggler.getElementsByClassName(faAngleUpClass)[0];
+                                if (toggler && !elementIconChild) {
+                                    toggler.click();
+                                }
+                            }
+                        }
+                    }
+                    if (linkContext && linkContext === 'sub-entity') {
+                        // Toggle also the master parent menu
+                        var linkContextId = activeLink.getAttribute('data-context-id');
+                        var toggler = activeMenu.querySelector('.chapter.' + linkContextId + ' a .menu-toggler');
+                        if (toggler) {
+                            toggler.click();
+                        }
+                    }
+                } else if (linkType === 'chapter-link') {
+                    var toggler = activeLink.querySelector('.menu-toggler');
+                    if (toggler) {
+                        toggler.click();
+                    }
+                }
+                setTimeout(function() {
+                    activeMenu.scrollTop = activeLink.offsetTop;
+                    if (activeLink.innerHTML.toLowerCase().indexOf('readme') != -1 || activeLink.innerHTML.toLowerCase().indexOf('overview') != -1) {
+                        activeMenu.scrollTop = 0;
+                    }
+                }, 300);
+            }
+        }
+    }, 0);
+});
\ No newline at end of file
diff --git a/src/docs/js/routes.js b/src/docs/js/routes.js
new file mode 100644
index 0000000..bfd875c
--- /dev/null
+++ b/src/docs/js/routes.js
@@ -0,0 +1,280 @@
+document.addEventListener('DOMContentLoaded', function() {
+
+    function htmlEntities(str) {
+        return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
+    }
+
+    function foundLazyModuleWithPath(path) {
+        //path is like app/customers/customers.module#CustomersModule
+        var split = path.split('#'),
+            lazyModulePath = split[0],
+            lazyModuleName = split[1];
+        return lazyModuleName;
+    }
+
+    function getBB(selection) {
+        selection.each(function(d){d.bbox = this.getBBox();})
+    }
+
+    var test_cases,
+        test_case,
+        test_case_num,
+        engine;
+
+    var tree = ROUTES_INDEX;
+
+    function cleanStringChildren(obj) {
+        for (var property in obj) {
+            if (obj.hasOwnProperty(property)) {
+                if (property === 'children' && typeof obj[property] === 'object') {
+                    for (var i = obj[property].length - 1; i >= 0 ; i--) {
+                        if (typeof obj[property][i] === 'string') {
+                            obj[property].splice(i, 1);
+                        }
+                    }
+                }
+                if (typeof obj[property] === 'object') {
+                    cleanStringChildren(obj[property]);
+                }
+            }
+        }
+    }
+    cleanStringChildren(tree);
+
+    engine = d3.layout.tree().setNodeSizes(true);
+
+    engine.spacing(function(a, b) {
+      return a.parent == b.parent ?
+        0 : engine.rootXSize();
+    })
+
+    engine.nodeSize(function(d) {
+        return [document.getElementById(d.id).getBBox()["height"] + 70, document.getElementById(d.id).getBBox()["width"] + 30];
+    });
+
+    var nodes = d3.layout.hierarchy()(tree),
+
+        svg = d3.select("#body-routes").append('svg'),
+        svg_g = svg.append("g"),
+        svg_p = svg.append("g"),
+        last_id = 0,
+
+        node = svg_g.selectAll(".node")
+            .data(nodes, function(d) {
+                return d.id || (d.id = ++last_id);
+            })
+            .enter().append("g")
+            .attr("class", "node");
+
+        svg
+           .attr('id', 'main')
+
+        svg_g
+            .attr("transform", "translate(20,0)")
+            .attr('id', 'main-group')
+
+        svg_p
+            .attr("transform", "translate(20,0)")
+            .attr('id', 'paths')
+
+        var infos_group = node.append("g")
+            .attr({
+                "id": function(d) {
+                    return d.id;
+                },
+                dx: 0,
+                dy: 0,
+            })
+
+        //Node icon
+        infos_group.append("text")
+            .attr('font-family', 'Ionicons')
+            .attr("y", 5)
+            .attr("x", 0)
+            .attr('class', function(d) {
+                return d.children || d._children
+                    ? "icon has-children"
+                    : "icon";
+            })
+            .attr('font-size', function(d) {
+                return '15px'
+            }).text(function(d) {
+                return '\uf183'
+            });
+
+        //node infos
+        infos_group.append("svg:text")
+            .attr("x", function(d) {
+                return 0;
+            })
+            .attr("y", function(d) {
+                return 10;
+            })
+            .attr("dy", ".35em")
+            .attr('class', 'text')
+            .attr("text-anchor", function(d) {
+                return "start";
+            }).html(function(d) {
+                // if kind === module name + module
+                // if kind === component component + path
+                var _name = '';
+                if (d.kind === 'module') {
+                    if (d.module) {
+                        _name += '<tspan x="0" dy="1.4em"><a href="./modules/' + d.module + '.html">' + d.module + '</a></tspan>';
+                        if (d.name) {
+                            _name += '<tspan x="0" dy="1.4em">' + d.name + '</tspan>';
+                        }
+                    } else {
+                        _name += '<tspan x="0" dy="1.4em">' + htmlEntities(d.name) + '</tspan>';
+                    }
+                } else if (d.kind === 'component') {
+                    _name += '<tspan x="0" dy="1.4em">' + d.path + '</tspan>'
+                    _name += '<tspan x="0" dy="1.4em"><a href="./components/' + d.component + '.html">' + d.component + '</a></tspan>'
+                    if (d.outlet) {
+                        _name += '<tspan x="0" dy="1.4em">&lt;outlet&gt; : ' + d.outlet + '</tspan>'
+                    }
+                } else {
+                    _name += '<tspan x="0" dy="1.4em">/' + d.path + '</tspan>'
+                    if (d.component) {
+                        _name += '<tspan x="0" dy="1.4em"><a href="./components/' + d.component + '.html">' + d.component + '</a></tspan>'
+                    }
+                    if (d.loadChildren) {
+                        var moduleName = foundLazyModuleWithPath(d.loadChildren);
+                        _name += '<tspan x="0" dy="1.4em"><a href="./modules/' + moduleName + '.html">' + moduleName + '</a></tspan>'
+                    }
+                    if (d.canActivate) {
+                        _name += '<tspan x="0" dy="1.4em">&#10003; canActivate</tspan>'
+                    }
+                    if (d.canDeactivate) {
+                        _name += '<tspan x="0" dy="1.4em">&#215;&nbsp;&nbsp;canDeactivate</tspan>'
+                    }
+                    if (d.canActivateChild) {
+                        _name += '<tspan x="0" dy="1.4em">&#10003; canActivateChild</tspan>'
+                    }
+                    if (d.canLoad) {
+                        _name += '<tspan x="0" dy="1.4em">&#8594; canLoad</tspan>'
+                    }
+                    if (d.redirectTo) {
+                        _name += '<tspan x="0" dy="1.4em">&rarr; ' + d.redirectTo + '</tspan>'
+                    }
+                    if (d.pathMatch) {
+                        _name += '<tspan x="0" dy="1.4em">&gt; ' + d.pathMatch + '</tspan>'
+                    }
+                    if (d.outlet) {
+                        _name += '<tspan x="0" dy="1.4em">&lt;outlet&gt; : ' + d.outlet + '</tspan>'
+                    }
+                }
+                return _name;
+            })
+            .call(getBB);
+
+        //
+        // Node lazy loaded ?
+        //
+        infos_group.append('svg:text')
+            .attr("y", function(d) {
+                return 45;
+            })
+            .attr("x", function(d) {
+                return -18;
+            })
+            .attr('font-family', 'Ionicons')
+            .attr('class', function(d) {
+                return "icon";
+            })
+            .attr('font-size', function(d) {
+                return '15px'
+            }).text(function(d) {
+                var _text = '';
+                if (d.loadChildren) {
+                    _text = '\uf4c1';
+                }
+                if (d.guarded) {
+                    _text = '\uf1b0';
+                }
+                return _text;
+            });
+
+        //Node text background
+        infos_group.insert("rect","text")
+        .attr("width", function(d){
+            return d.bbox.width;
+        })
+        .attr("height", function(d){
+            return d.bbox.height;
+        })
+        .attr("y", function(d) {
+            return 15;
+        })
+        .style("fill", "white")
+        .style("fill-opacity", 0.75);
+
+    nodes = engine.nodes(tree);
+
+    function node_extents(n) {
+        return [n.x - n.x_size / 2, n.y,
+            n.x + n.x_size / 2, n.y + n.y_size
+        ];
+    }
+    var root_extents = node_extents(nodes[0]);
+    var xmin = root_extents[0],
+        ymin = root_extents[1],
+        xmax = root_extents[2],
+        ymax = root_extents[3],
+        area_sum = (xmax - xmin) * (ymax - ymin),
+        x_size_min = nodes[0].x_size,
+        y_size_min = nodes[0].y_size;
+
+    nodes.slice(1).forEach(function(n) {
+        var ne = node_extents(n);
+        xmin = Math.min(xmin, ne[0]);
+        ymin = Math.min(ymin, ne[1]);
+        xmax = Math.max(xmax, ne[2]);
+        ymax = Math.max(ymax, ne[3]);
+        area_sum += (ne[2] - ne[0]) * (ne[3] - ne[1]);
+        x_size_min = Math.min(x_size_min, n.x_size);
+        y_size_min = Math.min(y_size_min, n.y_size);
+    });
+
+    var area_ave = area_sum / nodes.length;
+    var scale = 80 / Math.sqrt(area_ave);
+
+    function svg_x(node_y) {
+        return (node_y - ymin);
+    }
+
+    function svg_y(node_x) {
+        return (node_x - xmin) * scale;
+    }
+
+
+    var nodebox_right_margin = Math.min(x_size_min * scale, 10);
+    var nodebox_vertical_margin = Math.min(y_size_min * scale, 3);
+
+    node.attr("transform", function(d) {
+            return "translate(" + svg_x(d.y) + "," + svg_y(d.x) + ")";
+        })
+
+    var diagonal = d3.svg.diagonal()
+        .projection(function(d) {
+            return [svg_x(d.y), svg_y(d.x)];
+        });
+
+    var links = engine.links(nodes);
+    var links = svg_p.selectAll(".link")
+        .data(links)
+        .enter().append("path")
+        .attr("class", "link")
+        .attr("d", diagonal);
+
+    var _svg = document.getElementById('main'),
+        main_g = _svg.childNodes[0]
+
+    _svg.removeChild(main_g);
+    _svg.appendChild(main_g);
+
+    svg.attr({
+        width: document.getElementById('main-group').getBBox()['width'] + 30,
+        height: document.getElementById('main-group').getBBox()['height'] + 50,
+    });
+});
diff --git a/src/docs/js/search/lunr.min.js b/src/docs/js/search/lunr.min.js
new file mode 100644
index 0000000..2ffd369
--- /dev/null
+++ b/src/docs/js/search/lunr.min.js
@@ -0,0 +1 @@
+!function(){var t,l,c,e,r,h,d,f,p,y,m,g,x,v,w,Q,k,S,E,L,b,P,T,O,I,i,n,s,z=function(e){var t=new z.Builder;return t.pipeline.add(z.trimmer,z.stopWordFilter,z.stemmer),t.searchPipeline.add(z.stemmer),e.call(t,t),t.build()};z.version="2.3.2",z.utils={},z.utils.warn=(t=this,function(e){t.console&&console.warn&&console.warn(e)}),z.utils.asString=function(e){return null==e?"":e.toString()},z.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var n=r[i],s=e[n];if(Array.isArray(s))t[n]=s.slice();else{if("string"!=typeof s&&"number"!=typeof s&&"boolean"!=typeof s)throw new TypeError("clone is not deep and does not support nested objects");t[n]=s}}return t},z.FieldRef=function(e,t,r){this.docRef=e,this.fieldName=t,this._stringValue=r},z.FieldRef.joiner="/",z.FieldRef.fromString=function(e){var t=e.indexOf(z.FieldRef.joiner);if(-1===t)throw"malformed field ref string";var r=e.slice(0,t),i=e.slice(t+1);return new z.FieldRef(i,r,e)},z.FieldRef.prototype.toString=function(){return null==this._stringValue&&(this._stringValue=this.fieldName+z.FieldRef.joiner+this.docRef),this._stringValue},z.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0},z.Set.complete={intersect:function(e){return e},union:function(e){return e},contains:function(){return!0}},z.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},z.Set.prototype.contains=function(e){return!!this.elements[e]},z.Set.prototype.intersect=function(e){var t,r,i,n=[];if(e===z.Set.complete)return this;if(e===z.Set.empty)return e;this.length<e.length?(t=this,r=e):(t=e,r=this),i=Object.keys(t.elements);for(var s=0;s<i.length;s++){var o=i[s];o in r.elements&&n.push(o)}return new z.Set(n)},z.Set.prototype.union=function(e){return e===z.Set.complete?z.Set.complete:e===z.Set.empty?this:new z.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},z.idf=function(e,t){var r=0;for(var i in e)"_index"!=i&&(r+=Object.keys(e[i]).length);var n=(t-r+.5)/(r+.5);return Math.log(1+Math.abs(n))},z.Token=function(e,t){this.str=e||"",this.metadata=t||{}},z.Token.prototype.toString=function(){return this.str},z.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},z.Token.prototype.clone=function(e){return e=e||function(e){return e},new z.Token(e(this.str,this.metadata),this.metadata)},z.tokenizer=function(e,t){if(null==e||null==e)return[];if(Array.isArray(e))return e.map(function(e){return new z.Token(z.utils.asString(e).toLowerCase(),z.utils.clone(t))});for(var r=e.toString().trim().toLowerCase(),i=r.length,n=[],s=0,o=0;s<=i;s++){var a=s-o;if(r.charAt(s).match(z.tokenizer.separator)||s==i){if(0<a){var u=z.utils.clone(t)||{};u.position=[o,a],u.index=n.length,n.push(new z.Token(r.slice(o,s),u))}o=s+1}}return n},z.tokenizer.separator=/[\s\-]+/,z.Pipeline=function(){this._stack=[]},z.Pipeline.registeredFunctions=Object.create(null),z.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&z.utils.warn("Overwriting existing registered function: "+t),e.label=t,z.Pipeline.registeredFunctions[e.label]=e},z.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||z.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},z.Pipeline.load=function(e){var r=new z.Pipeline;return e.forEach(function(e){var t=z.Pipeline.registeredFunctions[e];if(!t)throw new Error("Cannot load unregistered function: "+e);r.add(t)}),r},z.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach(function(e){z.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)},this)},z.Pipeline.prototype.after=function(e,t){z.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");r+=1,this._stack.splice(r,0,t)},z.Pipeline.prototype.before=function(e,t){z.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");this._stack.splice(r,0,t)},z.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},z.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r<t;r++){for(var i=this._stack[r],n=[],s=0;s<e.length;s++){var o=i(e[s],s,e);if(void 0!==o&&""!==o)if(o instanceof Array)for(var a=0;a<o.length;a++)n.push(o[a]);else n.push(o)}e=n}return e},z.Pipeline.prototype.runString=function(e,t){var r=new z.Token(e,t);return this.run([r]).map(function(e){return e.toString()})},z.Pipeline.prototype.reset=function(){this._stack=[]},z.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return z.Pipeline.warnIfFunctionNotRegistered(e),e.label})},z.Vector=function(e){this._magnitude=0,this.elements=e||[]},z.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,r=this.elements.length/2,i=r-t,n=Math.floor(i/2),s=this.elements[2*n];1<i&&(s<e&&(t=n),e<s&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:e<s?2*n:s<e?2*(n+1):void 0},z.Vector.prototype.insert=function(e,t){this.upsert(e,t,function(){throw"duplicate index"})},z.Vector.prototype.upsert=function(e,t,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],t):this.elements.splice(i,0,e,t)},z.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,r=1;r<t;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},z.Vector.prototype.dot=function(e){for(var t=0,r=this.elements,i=e.elements,n=r.length,s=i.length,o=0,a=0,u=0,l=0;u<n&&l<s;)(o=r[u])<(a=i[l])?u+=2:a<o?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},z.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},z.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t<this.elements.length;t+=2,r++)e[r]=this.elements[t];return e},z.Vector.prototype.toJSON=function(){return this.elements},z.stemmer=(l={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},c={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},e="[aeiouy]",r="[^aeiou][^aeiouy]*",h=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*"),d=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*[aeiouy][aeiou]*[^aeiou][^aeiouy]*"),f=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*([aeiouy][aeiou]*)?$"),p=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy]"),y=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,g=/^(.+?)eed$/,x=/^(.+?)(ed|ing)$/,v=/.$/,w=/(at|bl|iz)$/,Q=new RegExp("([^aeiouylsz])\\1$"),k=new RegExp("^"+r+e+"[^aeiouwxy]$"),S=/^(.+?[^aeiou])y$/,E=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,L=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,b=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,P=/^(.+?)(s|t)(ion)$/,T=/^(.+?)e$/,O=/ll$/,I=new RegExp("^"+r+e+"[^aeiouwxy]$"),i=function(e){var t,r,i,n,s,o,a;if(e.length<3)return e;if("y"==(i=e.substr(0,1))&&(e=i.toUpperCase()+e.substr(1)),s=m,(n=y).test(e)?e=e.replace(n,"$1$2"):s.test(e)&&(e=e.replace(s,"$1$2")),s=x,(n=g).test(e)){var u=n.exec(e);(n=h).test(u[1])&&(n=v,e=e.replace(n,""))}else if(s.test(e)){t=(u=s.exec(e))[1],(s=p).test(t)&&(o=Q,a=k,(s=w).test(e=t)?e+="e":o.test(e)?(n=v,e=e.replace(n,"")):a.test(e)&&(e+="e"))}(n=S).test(e)&&(e=(t=(u=n.exec(e))[1])+"i");(n=E).test(e)&&(t=(u=n.exec(e))[1],r=u[2],(n=h).test(t)&&(e=t+l[r]));(n=L).test(e)&&(t=(u=n.exec(e))[1],r=u[2],(n=h).test(t)&&(e=t+c[r]));if(s=P,(n=b).test(e))t=(u=n.exec(e))[1],(n=d).test(t)&&(e=t);else if(s.test(e)){t=(u=s.exec(e))[1]+u[2],(s=d).test(t)&&(e=t)}(n=T).test(e)&&(t=(u=n.exec(e))[1],s=f,o=I,((n=d).test(t)||s.test(t)&&!o.test(t))&&(e=t));return s=d,(n=O).test(e)&&s.test(e)&&(n=v,e=e.replace(n,"")),"y"==i&&(e=i.toLowerCase()+e.substr(1)),e},function(e){return e.update(i)}),z.Pipeline.registerFunction(z.stemmer,"stemmer"),z.generateStopWordFilter=function(e){var t=e.reduce(function(e,t){return e[t]=t,e},{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},z.stopWordFilter=z.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),z.Pipeline.registerFunction(z.stopWordFilter,"stopWordFilter"),z.trimmer=function(e){return e.update(function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")})},z.Pipeline.registerFunction(z.trimmer,"trimmer"),z.TokenSet=function(){this.final=!1,this.edges={},this.id=z.TokenSet._nextId,z.TokenSet._nextId+=1},z.TokenSet._nextId=1,z.TokenSet.fromArray=function(e){for(var t=new z.TokenSet.Builder,r=0,i=e.length;r<i;r++)t.insert(e[r]);return t.finish(),t.root},z.TokenSet.fromClause=function(e){return"editDistance"in e?z.TokenSet.fromFuzzyString(e.term,e.editDistance):z.TokenSet.fromString(e.term)},z.TokenSet.fromFuzzyString=function(e,t){for(var r=new z.TokenSet,i=[{node:r,editsRemaining:t,str:e}];i.length;){var n,s,o,a=i.pop();if(0<a.str.length)(s=a.str.charAt(0))in a.node.edges?n=a.node.edges[s]:(n=new z.TokenSet,a.node.edges[s]=n),1==a.str.length?n.final=!0:i.push({node:n,editsRemaining:a.editsRemaining,str:a.str.slice(1)});if(0<a.editsRemaining&&1<a.str.length)(s=a.str.charAt(1))in a.node.edges?o=a.node.edges[s]:(o=new z.TokenSet,a.node.edges[s]=o),a.str.length<=2?o.final=!0:i.push({node:o,editsRemaining:a.editsRemaining-1,str:a.str.slice(2)});if(0<a.editsRemaining&&1==a.str.length&&(a.node.final=!0),0<a.editsRemaining&&1<=a.str.length){if("*"in a.node.edges)var u=a.node.edges["*"];else{u=new z.TokenSet;a.node.edges["*"]=u}1==a.str.length?u.final=!0:i.push({node:u,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)})}if(0<a.editsRemaining){if("*"in a.node.edges)var l=a.node.edges["*"];else{l=new z.TokenSet;a.node.edges["*"]=l}0==a.str.length?l.final=!0:i.push({node:l,editsRemaining:a.editsRemaining-1,str:a.str})}if(0<a.editsRemaining&&1<a.str.length){var c,h=a.str.charAt(0),d=a.str.charAt(1);d in a.node.edges?c=a.node.edges[d]:(c=new z.TokenSet,a.node.edges[d]=c),1==a.str.length?c.final=!0:i.push({node:c,editsRemaining:a.editsRemaining-1,str:h+a.str.slice(2)})}}return r},z.TokenSet.fromString=function(e){for(var t=new z.TokenSet,r=t,i=!1,n=0,s=e.length;n<s;n++){var o=e[n],a=n==s-1;if("*"==o)i=!0,(t.edges[o]=t).final=a;else{var u=new z.TokenSet;u.final=a,t.edges[o]=u,t=u,i&&(t.edges["*"]=r)}}return r},z.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var r=t.pop(),i=Object.keys(r.node.edges),n=i.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var s=0;s<n;s++){var o=i[s];t.push({prefix:r.prefix.concat(o),node:r.node.edges[o]})}}return e},z.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",t=Object.keys(this.edges).sort(),r=t.length,i=0;i<r;i++){var n=t[i];e=e+n+this.edges[n].id}return e},z.TokenSet.prototype.intersect=function(e){for(var t=new z.TokenSet,r=void 0,i=[{qNode:e,output:t,node:this}];i.length;){r=i.pop();for(var n=Object.keys(r.qNode.edges),s=n.length,o=Object.keys(r.node.edges),a=o.length,u=0;u<s;u++)for(var l=n[u],c=0;c<a;c++){var h=o[c];if(h==l||"*"==l){var d=r.node.edges[h],f=r.qNode.edges[l],p=d.final&&f.final,y=void 0;h in r.output.edges?(y=r.output.edges[h]).final=y.final||p:((y=new z.TokenSet).final=p,r.output.edges[h]=y),i.push({qNode:f,output:y,node:d})}}}return t},z.TokenSet.Builder=function(){this.previousWord="",this.root=new z.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},z.TokenSet.Builder.prototype.insert=function(e){var t,r=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)r++;this.minimize(r),t=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(i=r;i<e.length;i++){var n=new z.TokenSet,s=e[i];t.edges[s]=n,this.uncheckedNodes.push({parent:t,char:s,child:n}),t=n}t.final=!0,this.previousWord=e},z.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},z.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;e<=t;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},z.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},z.Index.prototype.search=function(t){return this.query(function(e){new z.QueryParser(t,e).parse()})},z.Index.prototype.query=function(e){for(var t=new z.Query(this.fields),r=Object.create(null),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=0;a<this.fields.length;a++)i[this.fields[a]]=new z.Vector;e.call(t,t);for(a=0;a<t.clauses.length;a++){var u=t.clauses[a],l=null,c=z.Set.complete;l=u.usePipeline?this.pipeline.runString(u.term,{fields:u.fields}):[u.term];for(var h=0;h<l.length;h++){var d=l[h];u.term=d;var f=z.TokenSet.fromClause(u),p=this.tokenSet.intersect(f).toArray();if(0===p.length&&u.presence===z.Query.presence.REQUIRED){for(var y=0;y<u.fields.length;y++){s[R=u.fields[y]]=z.Set.empty}break}for(var m=0;m<p.length;m++){var g=p[m],x=this.invertedIndex[g],v=x._index;for(y=0;y<u.fields.length;y++){var w=x[R=u.fields[y]],Q=Object.keys(w),k=g+"/"+R,S=new z.Set(Q);if(u.presence==z.Query.presence.REQUIRED&&(c=c.union(S),void 0===s[R]&&(s[R]=z.Set.complete)),u.presence!=z.Query.presence.PROHIBITED){if(i[R].upsert(v,u.boost,function(e,t){return e+t}),!n[k]){for(var E=0;E<Q.length;E++){var L,b=Q[E],P=new z.FieldRef(b,R),T=w[b];void 0===(L=r[P])?r[P]=new z.MatchData(g,R,T):L.add(g,R,T)}n[k]=!0}}else void 0===o[R]&&(o[R]=z.Set.empty),o[R]=o[R].union(S)}}}if(u.presence===z.Query.presence.REQUIRED)for(y=0;y<u.fields.length;y++){s[R=u.fields[y]]=s[R].intersect(c)}}var O=z.Set.complete,I=z.Set.empty;for(a=0;a<this.fields.length;a++){var R;s[R=this.fields[a]]&&(O=O.intersect(s[R])),o[R]&&(I=I.union(o[R]))}var F=Object.keys(r),C=[],N=Object.create(null);if(t.isNegated()){F=Object.keys(this.fieldVectors);for(a=0;a<F.length;a++){P=F[a];var _=z.FieldRef.fromString(P);r[P]=new z.MatchData}}for(a=0;a<F.length;a++){var j=(_=z.FieldRef.fromString(F[a])).docRef;if(O.contains(j)&&!I.contains(j)){var D,A=this.fieldVectors[_],B=i[_.fieldName].similarity(A);if(void 0!==(D=N[j]))D.score+=B,D.matchData.combine(r[_]);else{var V={ref:j,score:B,matchData:r[_]};N[j]=V,C.push(V)}}}return C.sort(function(e,t){return t.score-e.score})},z.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(e){return[e,this.invertedIndex[e]]},this),t=Object.keys(this.fieldVectors).map(function(e){return[e,this.fieldVectors[e].toJSON()]},this);return{version:z.version,fields:this.fields,fieldVectors:t,invertedIndex:e,pipeline:this.pipeline.toJSON()}},z.Index.load=function(e){var t={},r={},i=e.fieldVectors,n={},s=e.invertedIndex,o=new z.TokenSet.Builder,a=z.Pipeline.load(e.pipeline);e.version!=z.version&&z.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+z.version+"' does not match serialized index '"+e.version+"'");for(var u=0;u<i.length;u++){var l=(h=i[u])[0],c=h[1];r[l]=new z.Vector(c)}for(u=0;u<s.length;u++){var h,d=(h=s[u])[0],f=h[1];o.insert(d),n[d]=f}return o.finish(),t.fields=e.fields,t.fieldVectors=r,t.invertedIndex=n,t.tokenSet=o.root,t.pipeline=a,new z.Index(t)},z.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=z.tokenizer,this.pipeline=new z.Pipeline,this.searchPipeline=new z.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},z.Builder.prototype.ref=function(e){this._ref=e},z.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},z.Builder.prototype.b=function(e){this._b=e<0?0:1<e?1:e},z.Builder.prototype.k1=function(e){this._k1=e},z.Builder.prototype.add=function(e,t){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=t||{},this.documentCount+=1;for(var n=0;n<i.length;n++){var s=i[n],o=this._fields[s].extractor,a=o?o(e):e[s],u=this.tokenizer(a,{fields:[s]}),l=this.pipeline.run(u),c=new z.FieldRef(r,s),h=Object.create(null);this.fieldTermFrequencies[c]=h,this.fieldLengths[c]=0,this.fieldLengths[c]+=l.length;for(var d=0;d<l.length;d++){var f=l[d];if(null==h[f]&&(h[f]=0),h[f]+=1,null==this.invertedIndex[f]){var p=Object.create(null);p._index=this.termIndex,this.termIndex+=1;for(var y=0;y<i.length;y++)p[i[y]]=Object.create(null);this.invertedIndex[f]=p}null==this.invertedIndex[f][s][r]&&(this.invertedIndex[f][s][r]=Object.create(null));for(var m=0;m<this.metadataWhitelist.length;m++){var g=this.metadataWhitelist[m],x=f.metadata[g];null==this.invertedIndex[f][s][r][g]&&(this.invertedIndex[f][s][r][g]=[]),this.invertedIndex[f][s][r][g].push(x)}}}},z.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),t=e.length,r={},i={},n=0;n<t;n++){var s=z.FieldRef.fromString(e[n]),o=s.fieldName;i[o]||(i[o]=0),i[o]+=1,r[o]||(r[o]=0),r[o]+=this.fieldLengths[s]}var a=Object.keys(this._fields);for(n=0;n<a.length;n++){var u=a[n];r[u]=r[u]/i[u]}this.averageFieldLength=r},z.Builder.prototype.createFieldVectors=function(){for(var e={},t=Object.keys(this.fieldTermFrequencies),r=t.length,i=Object.create(null),n=0;n<r;n++){for(var s=z.FieldRef.fromString(t[n]),o=s.fieldName,a=this.fieldLengths[s],u=new z.Vector,l=this.fieldTermFrequencies[s],c=Object.keys(l),h=c.length,d=this._fields[o].boost||1,f=this._documents[s.docRef].boost||1,p=0;p<h;p++){var y,m,g,x=c[p],v=l[x],w=this.invertedIndex[x]._index;void 0===i[x]?(y=z.idf(this.invertedIndex[x],this.documentCount),i[x]=y):y=i[x],m=y*((this._k1+1)*v)/(this._k1*(1-this._b+this._b*(a/this.averageFieldLength[o]))+v),m*=d,m*=f,g=Math.round(1e3*m)/1e3,u.insert(w,g)}e[s]=u}this.fieldVectors=e},z.Builder.prototype.createTokenSet=function(){this.tokenSet=z.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},z.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new z.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},z.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},z.MatchData=function(e,t,r){for(var i=Object.create(null),n=Object.keys(r||{}),s=0;s<n.length;s++){var o=n[s];i[o]=r[o].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=i)},z.MatchData.prototype.combine=function(e){for(var t=Object.keys(e.metadata),r=0;r<t.length;r++){var i=t[r],n=Object.keys(e.metadata[i]);null==this.metadata[i]&&(this.metadata[i]=Object.create(null));for(var s=0;s<n.length;s++){var o=n[s],a=Object.keys(e.metadata[i][o]);null==this.metadata[i][o]&&(this.metadata[i][o]=Object.create(null));for(var u=0;u<a.length;u++){var l=a[u];null==this.metadata[i][o][l]?this.metadata[i][o][l]=e.metadata[i][o][l]:this.metadata[i][o][l]=this.metadata[i][o][l].concat(e.metadata[i][o][l])}}}},z.MatchData.prototype.add=function(e,t,r){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=r);if(t in this.metadata[e])for(var i=Object.keys(r),n=0;n<i.length;n++){var s=i[n];s in this.metadata[e][t]?this.metadata[e][t][s]=this.metadata[e][t][s].concat(r[s]):this.metadata[e][t][s]=r[s]}else this.metadata[e][t]=r},z.Query=function(e){this.clauses=[],this.allFields=e},z.Query.wildcard=new String("*"),z.Query.wildcard.NONE=0,z.Query.wildcard.LEADING=1,z.Query.wildcard.TRAILING=2,z.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},z.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=z.Query.wildcard.NONE),e.wildcard&z.Query.wildcard.LEADING&&e.term.charAt(0)!=z.Query.wildcard&&(e.term="*"+e.term),e.wildcard&z.Query.wildcard.TRAILING&&e.term.slice(-1)!=z.Query.wildcard&&(e.term=e.term+"*"),"presence"in e||(e.presence=z.Query.presence.OPTIONAL),this.clauses.push(e),this},z.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=z.Query.presence.PROHIBITED)return!1;return!0},z.Query.prototype.term=function(e,t){if(Array.isArray(e))return e.forEach(function(e){this.term(e,z.utils.clone(t))},this),this;var r=t||{};return r.term=e.toString(),this.clause(r),this},z.QueryParseError=function(e,t,r){this.name="QueryParseError",this.message=e,this.start=t,this.end=r},z.QueryParseError.prototype=new Error,z.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},z.QueryLexer.prototype.run=function(){for(var e=z.QueryLexer.lexText;e;)e=e(this)},z.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(t,r)),t=r+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},z.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},z.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},z.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return z.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},z.QueryLexer.prototype.width=function(){return this.pos-this.start},z.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},z.QueryLexer.prototype.backup=function(){this.pos-=1},z.QueryLexer.prototype.acceptDigitRun=function(){for(var e,t;47<(t=(e=this.next()).charCodeAt(0))&&t<58;);e!=z.QueryLexer.EOS&&this.backup()},z.QueryLexer.prototype.more=function(){return this.pos<this.length},z.QueryLexer.EOS="EOS",z.QueryLexer.FIELD="FIELD",z.QueryLexer.TERM="TERM",z.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",z.QueryLexer.BOOST="BOOST",z.QueryLexer.PRESENCE="PRESENCE",z.QueryLexer.lexField=function(e){return e.backup(),e.emit(z.QueryLexer.FIELD),e.ignore(),z.QueryLexer.lexText},z.QueryLexer.lexTerm=function(e){if(1<e.width()&&(e.backup(),e.emit(z.QueryLexer.TERM)),e.ignore(),e.more())return z.QueryLexer.lexText},z.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(z.QueryLexer.EDIT_DISTANCE),z.QueryLexer.lexText},z.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(z.QueryLexer.BOOST),z.QueryLexer.lexText},z.QueryLexer.lexEOS=function(e){0<e.width()&&e.emit(z.QueryLexer.TERM)},z.QueryLexer.termSeparator=z.tokenizer.separator,z.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==z.QueryLexer.EOS)return z.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return z.QueryLexer.lexField;if("~"==t)return e.backup(),0<e.width()&&e.emit(z.QueryLexer.TERM),z.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),0<e.width()&&e.emit(z.QueryLexer.TERM),z.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(z.QueryLexer.PRESENCE),z.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(z.QueryLexer.PRESENCE),z.QueryLexer.lexText;if(t.match(z.QueryLexer.termSeparator))return z.QueryLexer.lexTerm}else e.escapeCharacter()}},z.QueryParser=function(e,t){this.lexer=new z.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},z.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=z.QueryParser.parseClause;e;)e=e(this);return this.query},z.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},z.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},z.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},z.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case z.QueryLexer.PRESENCE:return z.QueryParser.parsePresence;case z.QueryLexer.FIELD:return z.QueryParser.parseField;case z.QueryLexer.TERM:return z.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+t.type;throw 1<=t.str.length&&(r+=" with value '"+t.str+"'"),new z.QueryParseError(r,t.start,t.end)}},z.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=z.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=z.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+t.str+"'";throw new z.QueryParseError(r,t.start,t.end)}var i=e.peekLexeme();if(null==i){r="expecting term or field, found nothing";throw new z.QueryParseError(r,t.start,t.end)}switch(i.type){case z.QueryLexer.FIELD:return z.QueryParser.parseField;case z.QueryLexer.TERM:return z.QueryParser.parseTerm;default:r="expecting term or field, found '"+i.type+"'";throw new z.QueryParseError(r,i.start,i.end)}}},z.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var r=e.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),i="unrecognised field '"+t.str+"', possible fields: "+r;throw new z.QueryParseError(i,t.start,t.end)}e.currentClause.fields=[t.str];var n=e.peekLexeme();if(null==n){i="expecting term, found nothing";throw new z.QueryParseError(i,t.start,t.end)}switch(n.type){case z.QueryLexer.TERM:return z.QueryParser.parseTerm;default:i="expecting term, found '"+n.type+"'";throw new z.QueryParseError(i,n.start,n.end)}}},z.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(null!=r)switch(r.type){case z.QueryLexer.TERM:return e.nextClause(),z.QueryParser.parseTerm;case z.QueryLexer.FIELD:return e.nextClause(),z.QueryParser.parseField;case z.QueryLexer.EDIT_DISTANCE:return z.QueryParser.parseEditDistance;case z.QueryLexer.BOOST:return z.QueryParser.parseBoost;case z.QueryLexer.PRESENCE:return e.nextClause(),z.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new z.QueryParseError(i,r.start,r.end)}else e.nextClause()}},z.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new z.QueryParseError(i,t.start,t.end)}e.currentClause.editDistance=r;var n=e.peekLexeme();if(null!=n)switch(n.type){case z.QueryLexer.TERM:return e.nextClause(),z.QueryParser.parseTerm;case z.QueryLexer.FIELD:return e.nextClause(),z.QueryParser.parseField;case z.QueryLexer.EDIT_DISTANCE:return z.QueryParser.parseEditDistance;case z.QueryLexer.BOOST:return z.QueryParser.parseBoost;case z.QueryLexer.PRESENCE:return e.nextClause(),z.QueryParser.parsePresence;default:i="Unexpected lexeme type '"+n.type+"'";throw new z.QueryParseError(i,n.start,n.end)}else e.nextClause()}},z.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var i="boost must be numeric";throw new z.QueryParseError(i,t.start,t.end)}e.currentClause.boost=r;var n=e.peekLexeme();if(null!=n)switch(n.type){case z.QueryLexer.TERM:return e.nextClause(),z.QueryParser.parseTerm;case z.QueryLexer.FIELD:return e.nextClause(),z.QueryParser.parseField;case z.QueryLexer.EDIT_DISTANCE:return z.QueryParser.parseEditDistance;case z.QueryLexer.BOOST:return z.QueryParser.parseBoost;case z.QueryLexer.PRESENCE:return e.nextClause(),z.QueryParser.parsePresence;default:i="Unexpected lexeme type '"+n.type+"'";throw new z.QueryParseError(i,n.start,n.end)}else e.nextClause()}},n=this,s=function(){return z},"function"==typeof define&&define.amd?define(s):"object"==typeof exports?module.exports=s():n.lunr=s()}();
\ No newline at end of file
diff --git a/src/docs/js/search/search-lunr.js b/src/docs/js/search/search-lunr.js
new file mode 100644
index 0000000..959aa97
--- /dev/null
+++ b/src/docs/js/search/search-lunr.js
@@ -0,0 +1,67 @@
+(function(compodoc) {
+
+    function LunrSearchEngine() {
+        this.index = undefined;
+        this.store = {};
+        this.name = 'LunrSearchEngine';
+    }
+
+    LunrSearchEngine.prototype.init = function() {
+        var that = this,
+            d = new promise.Promise();
+
+        that.index = lunr.Index.load(COMPODOC_SEARCH_INDEX.index);
+        that.store = COMPODOC_SEARCH_INDEX.store;
+        d.done();
+
+        return d;
+    };
+
+    LunrSearchEngine.prototype.search = function(q, offset, length) {
+        var that = this,
+            results = [],
+            d = new promise.Promise();
+
+        if (this.index) {
+            results = $.map(this.index.search('*' + q + '*'), function(result) {
+                var doc = that.store[result.ref];
+
+                return {
+                    title: doc.title,
+                    url: doc.url,
+                    body: doc.summary || doc.body
+                };
+            });
+        }
+
+        d.done({
+            query: q,
+            results: results.slice(0, length),
+            count: results.length
+        });
+
+        return d;
+    };
+
+    compodoc.addEventListener(compodoc.EVENTS.READY, function(event) {
+        var engine = new LunrSearchEngine(),
+            initialized = false;
+
+        function query(q, offset, length) {
+            if (!initialized) throw new Error('Search has not been initialized');
+            return engine.search(q, offset, length);
+        }
+
+        compodoc.search = {
+            query: query
+        };
+
+        engine.init()
+        .then(function() {
+            initialized = true;
+            compodoc.dispatchEvent({
+                type: compodoc.EVENTS.SEARCH_READY
+            });
+        });
+    });
+})(compodoc);
diff --git a/src/docs/js/search/search.js b/src/docs/js/search/search.js
new file mode 100644
index 0000000..89b7c3d
--- /dev/null
+++ b/src/docs/js/search/search.js
@@ -0,0 +1,271 @@
+(function(compodoc) {
+    var MAX_RESULTS = 15,
+        MAX_DESCRIPTION_SIZE = 500,
+
+        usePushState = (typeof history.pushState !== 'undefined'),
+
+    // DOM Elements
+        $body = $('body'),
+        $searchResults,
+        $searchInput,
+        $searchList,
+        $searchTitle,
+        $searchResultsCount,
+        $searchQuery,
+        $mainContainer,
+        $xsMenu;
+
+    // Throttle search
+    function throttle(fn, wait) {
+        var timeout;
+
+        return function() {
+            var ctx = this, args = arguments;
+            if (!timeout) {
+                timeout = setTimeout(function() {
+                    timeout = undefined;
+                    fn.apply(ctx, args);
+                }, wait);
+            }
+        };
+    }
+
+    function displayResults(res) {
+        var noResults = res.count == 0;
+        var groups = {};
+        $searchResults.toggleClass('no-results', noResults);
+
+        // Clear old results
+        $searchList.empty();
+
+        // Display title for research
+        $searchResultsCount.text(res.count);
+        $searchQuery.text(res.query);
+
+        // Group result by context
+        res.results.forEach(function(res) {
+            var context = res.title.split(' - ')[0];
+            if (typeof groups[context] === 'undefined') {
+                groups[context] = {
+                    results: [res]
+                }
+            } else {
+                groups[context].results.push(res)
+            }
+        });
+
+        var sortedGroups = Object.keys(groups).sort();
+
+        for (var i = 0; i < sortedGroups.length; i++) {
+            var property = sortedGroups[i];
+            
+            var $li = $('<li>', {
+                'class': 'search-results-group'
+            });
+            var finalPropertyLabel = '';
+            var propertyLabels = property.split('-');
+            
+            if (propertyLabels.length === 2 && propertyLabels[0] !== 'miscellaneous' && propertyLabels[0] !== 'additional') {
+                finalPropertyLabel = propertyLabels[0].charAt(0).toUpperCase() + propertyLabels[0].substring(1) + ' - ' + propertyLabels[1].charAt(0).toUpperCase() + propertyLabels[1].substring(1) + ' (' + groups[property].results.length + ')';
+            } else if (propertyLabels[0] === 'additional') {
+                finalPropertyLabel = 'Additional pages' + ' (' + groups[property].results.length + ')'
+            } else {
+                finalPropertyLabel = propertyLabels[0].charAt(0).toUpperCase() + propertyLabels[0].substring(1) + ' (' + groups[property].results.length + ')'
+            }
+            var $groupTitle = $('<h3>', {
+                'text': finalPropertyLabel
+            });
+            $groupTitle.appendTo($li);
+
+            var $ulResults = $('<ul>', {
+                'class': 'search-results-list'
+            })
+
+            groups[property].results.forEach(function(res) {
+                var link = '';
+                var $liResult = $('<li>', {
+                    'class': 'search-results-item'
+                });
+                switch (COMPODOC_CURRENT_PAGE_DEPTH) {
+                    case 0:
+                        link = './';
+                        break;
+                    case 1:
+                    case 2:
+                    case 3:
+                    case 4:
+                    case 5:
+                        link = '../'.repeat(COMPODOC_CURRENT_PAGE_DEPTH);
+                        break;
+                };
+                var finalResLabel = res.title.split(' - ')[1].charAt(0).toUpperCase() + res.title.split(' - ')[1].substring(1);
+                var $link = $('<a>', {
+                    'href': link + res.url,
+                    'text': finalResLabel
+                });
+                $link.appendTo($liResult);
+                $liResult.appendTo($ulResults);
+            });
+            $ulResults.appendTo($li);
+
+            $li.appendTo($searchList);
+        }
+    }
+
+    function launchSearch(q) {
+        $body.addClass('with-search');
+
+        if ($xsMenu.css('display') === 'block') {
+            $mainContainer.css('height', 'calc(100% - 100px)');
+            $mainContainer.css('margin-top', '100px');
+        }
+
+        throttle(compodoc.search.query(q, 0, MAX_RESULTS)
+        .then(function(results) {
+            displayResults(results);
+        }), 1000);
+    }
+
+    function closeSearch() {
+        $body.removeClass('with-search');
+        if ($xsMenu.css('display') === 'block') {
+            $mainContainer.css('height', 'calc(100% - 50px)');
+            $mainContainer.css('margin-top', '50px');
+        }
+    }
+
+    function bindMenuButton() {
+        document.getElementById('btn-menu').addEventListener('click', function() {
+            if ($xsMenu.css('display') === 'none') {
+                $body.removeClass('with-search');
+                $mainContainer.css('height', 'calc(100% - 50px)');
+                $mainContainer.css('margin-top', '50px');
+            }
+            $.each($searchInputs, function(index, item){
+                var item = $(item);
+                item.val('');
+            });
+        });
+    }
+
+    function bindSearch() {
+        // Bind DOM
+        $searchInputs        = $('#book-search-input input');
+
+        $searchResults = $('.search-results');
+        $searchList         = $searchResults.find('.search-results-list');
+        $searchTitle        = $searchResults.find('.search-results-title');
+        $searchResultsCount = $searchTitle.find('.search-results-count');
+        $searchQuery        = $searchTitle.find('.search-query');
+        $mainContainer      = $('.container-fluid');
+        $xsMenu             = $('.xs-menu');
+
+        // Launch query based on input content
+        function handleUpdate(item) {
+            var q = item.val();
+
+            if (q.length == 0) {
+                closeSearch();
+                window.location.href = window.location.href.replace(window.location.search, '');
+            } else {
+                launchSearch(q);
+            }
+        }
+
+        // Detect true content change in search input
+        var propertyChangeUnbound = false;
+
+        $.each($searchInputs, function(index, item){
+            var item = $(item);
+            // HTML5 (IE9 & others)
+            item.on('input', function(e) {
+                // Unbind propertychange event for IE9+
+                if (!propertyChangeUnbound) {
+                    $(this).unbind('propertychange');
+                    propertyChangeUnbound = true;
+                }
+
+                handleUpdate($(this));
+            });
+            // Workaround for IE < 9
+            item.on('propertychange', function(e) {
+                if (e.originalEvent.propertyName == 'value') {
+                    handleUpdate($(this));
+                }
+            });
+            // Push to history on blur
+            item.on('blur', function(e) {
+                // Update history state
+                if (usePushState) {
+                    var uri = updateQueryString('q', $(this).val());
+                    if ($(this).val() !== '') {
+                        history.pushState({ path: uri }, null, uri);
+                    }
+                }
+            });
+        });
+    }
+
+    function launchSearchFromQueryString() {
+        var q = getParameterByName('q');
+        if (q && q.length > 0) {
+            // Update search inputs
+            $.each($searchInputs, function(index, item){
+                var item = $(item);
+                item.val(q)
+            });
+            // Launch search
+            launchSearch(q);
+        }
+    }
+
+    compodoc.addEventListener(compodoc.EVENTS.SEARCH_READY, function(event) {
+        bindSearch();
+
+        bindMenuButton();
+
+        launchSearchFromQueryString();
+    });
+
+    function getParameterByName(name) {
+        var url = window.location.href;
+        name = name.replace(/[\[\]]/g, '\\$&');
+        var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)', 'i'),
+            results = regex.exec(url);
+        if (!results) return null;
+        if (!results[2]) return '';
+        return decodeURIComponent(results[2].replace(/\+/g, ' '));
+    }
+
+    function updateQueryString(key, value) {
+        value = encodeURIComponent(value);
+
+        var url = window.location.href;
+        var re = new RegExp('([?&])' + key + '=.*?(&|#|$)(.*)', 'gi'),
+            hash;
+
+        if (re.test(url)) {
+            if (typeof value !== 'undefined' && value !== null)
+                return url.replace(re, '$1' + key + '=' + value + '$2$3');
+            else {
+                hash = url.split('#');
+                url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, '');
+                if (typeof hash[1] !== 'undefined' && hash[1] !== null)
+                    url += '#' + hash[1];
+                return url;
+            }
+        }
+        else {
+            if (typeof value !== 'undefined' && value !== null) {
+                var separator = url.indexOf('?') !== -1 ? '&' : '?';
+                hash = url.split('#');
+                url = hash[0] + separator + key + '=' + value;
+                if (typeof hash[1] !== 'undefined' && hash[1] !== null)
+                    url += '#' + hash[1];
+                return url;
+            }
+            else
+                return url;
+        }
+    }
+})(compodoc);
diff --git a/src/docs/js/search/search_index.js b/src/docs/js/search/search_index.js
new file mode 100644
index 0000000..9e02998
--- /dev/null
+++ b/src/docs/js/search/search_index.js
@@ -0,0 +1,4 @@
+var COMPODOC_SEARCH_INDEX = {
+    "index": {"version":"2.3.2","fields":["title","body"],"fieldVectors":[["title/injectables/AlertService.html",[0,1.018,1,2.09]],["body/injectables/AlertService.html",[0,1.66,1,3.029,2,0.112,3,0.112,4,0.094,5,3.618,6,0.311,7,0.891,8,6.687,9,4.714,10,5.573,11,6.687,12,1.048,13,0.71,14,4.18,15,4.18,16,1.114,17,0.016,18,1.594,19,5.573,20,4.18,21,1.306,22,0.568,23,0.6,24,1.107,25,2.272,26,5.573,27,1.633,28,4.18,29,3.854,30,4.18,31,0.402,32,0.333,33,4.871,34,2.567,35,4.18,36,1.939,37,1.847,38,0.149,39,0.268,40,4.18,41,4.18,42,3.618,43,4.18,44,3.618,45,4.18,46,4.18,47,3.618,48,4.18,49,2.971,50,4.18,51,4.18,52,4.18,53,4.18,54,4.18,55,3.961,56,4.18,57,4.18,58,4.18,59,2.971,60,4.18,61,4.18,62,2.75,63,2.039,64,3.248,65,3.618,66,3.248,67,3.618,68,2.75,69,3.248,70,3.618,71,0.011,72,0.011]],["title/components/AppComponent.html",[73,0.12,74,0.797]],["body/components/AppComponent.html",[2,0.103,3,0.103,4,0.086,6,0.285,13,0.391,17,0.015,22,0.611,23,0.413,27,1.233,29,3.721,31,0.246,32,0.306,37,2.324,38,0.137,39,0.246,71,0.01,72,0.01,73,0.211,74,1.337,75,0.937,76,0.937,77,0.937,78,3.32,79,0.7,80,1.883,81,1.885,82,1.284,83,5.259,84,1.284,85,5.259,86,1.045,87,1.135,88,1.299,89,1.148,90,3.836,91,0.795,92,1.284,93,1.001,94,1.576,95,0.937,96,0.937,97,0.795,98,0.937,99,1.746,100,0.795,101,0.937,102,0.795,103,0.795,104,0.937,105,0.795,106,0.937,107,0.795,108,0.937,109,0.795,110,0.937,111,0.795,112,0.937,113,0.73,114,0.937,115,0.795,116,0.899,117,0.937,118,0.795,119,0.937,120,0.795,121,0.899,122,0.73,123,0.937,124,0.795,125,0.937,126,0.795,127,0.937,128,0.795,129,0.937,130,0.795,131,0.937,132,0.863,133,0.795,134,0.937,135,0.795,136,0.937,137,0.73,138,0.937,139,0.795,140,0.899,141,0.937,142,0.795,143,0.937,144,0.795,145,0.937,146,0.795,147,0.937,148,0.795,149,0.899,150,0.762,151,0.899,152,0.937]],["title/modules/AppModule.html",[153,1.784,154,2.734]],["body/modules/AppModule.html",[2,0.124,3,0.124,4,0.104,17,0.016,31,0.492,32,0.368,38,0.212,39,0.296,71,0.012,72,0.012,74,1.622,91,0.956,153,2.758,154,5.533,155,2.833,156,3.792,157,4.676,158,3.28,159,3.993,160,3.993,161,3.993,162,3.993,163,4.845,164,4.845,165,3.651,166,3.036,167,3.036,168,4.614,169,5.146,170,3.585,171,3.28,172,4.226,173,3.993,174,3.585,175,3.585,176,4.614,177,4.614,178,4.614,179,4.62,180,4.614,181,4.614]],["title/components/BarChartComponent.html",[73,0.12,97,0.797]],["body/components/BarChartComponent.html",[2,0.095,3,0.095,4,0.08,6,0.263,13,0.694,17,0.015,22,0.585,24,1.142,27,1.165,31,0.227,32,0.282,38,0.126,39,0.227,71,0.01,72,0.01,73,0.205,74,0.733,75,0.864,76,0.864,77,0.864,79,0.645,80,1.871,81,1.868,82,1.214,84,1.214,91,1.291,92,1.214,93,0.947,94,1.522,95,0.864,96,0.864,97,1.291,98,1.708,99,1.708,100,0.733,101,0.864,102,0.733,103,0.733,104,0.864,105,0.733,106,0.864,107,0.733,108,0.864,109,0.733,110,0.864,111,0.733,112,0.864,113,0.674,114,0.864,115,0.733,116,0.829,117,0.864,118,0.733,119,0.864,120,0.733,121,0.829,122,0.674,123,0.864,124,0.733,125,0.864,126,0.733,127,0.864,128,0.733,129,0.864,130,0.733,131,0.864,132,0.796,133,0.733,134,0.864,135,0.733,136,0.864,137,0.674,138,0.864,139,0.733,140,0.829,141,0.864,142,0.733,143,0.864,144,0.733,145,0.864,146,0.733,147,0.864,148,0.733,149,0.829,150,0.703,151,0.829,152,0.864,182,6.056,183,5.436,184,2.039,185,2.425,186,2.865,187,2.865,188,3.945,189,4.466,190,4.086,191,4.466,192,3.313,193,2.515,194,2.172,195,3.062,196,2.749,197,2.515,198,2.749]],["title/components/BreadcrumbComponent.html",[73,0.12,100,0.797]],["body/components/BreadcrumbComponent.html",[2,0.092,3,0.092,4,0.077,6,0.255,7,0.777,12,0.812,13,0.575,16,0.547,17,0.016,18,0.871,21,0.803,22,0.626,23,0.523,24,0.68,27,1.139,31,0.312,32,0.273,38,0.122,39,0.22,71,0.01,72,0.01,73,0.203,74,0.709,75,0.836,76,0.836,77,0.836,79,0.625,80,1.866,81,1.863,82,1.186,84,1.186,86,0.965,87,1.219,91,0.709,92,1.186,93,0.925,94,1.5,95,0.836,96,0.836,97,0.709,98,0.836,99,1.692,100,1.273,101,0.836,102,0.709,103,0.709,104,0.836,105,0.709,106,0.836,107,0.709,108,0.836,109,0.709,110,0.836,111,0.709,112,0.836,113,0.652,114,0.836,115,0.709,116,0.803,117,0.836,118,0.709,119,0.836,120,0.709,121,0.803,122,0.652,123,0.836,124,0.709,125,0.836,126,0.709,127,0.836,128,0.709,129,0.836,130,0.709,131,0.836,132,0.77,133,0.709,134,0.836,135,0.709,136,0.836,137,0.652,138,0.836,139,0.709,140,0.803,141,0.836,142,0.709,143,0.836,144,0.709,145,0.836,146,0.709,147,0.836,148,0.709,149,0.803,150,0.68,151,0.803,152,0.836,199,2.963,200,1.139,201,1.76,202,4.858,203,4.858,204,4.858,205,5.833,206,1.915,207,1.973,208,2.715,209,4.858,210,2.498,211,3.424,212,1.76,213,1.67,214,3.424,215,3.424,216,3.715,217,4.205,218,3.453,219,4.205]],["title/pipes/CapitalizePipe.html",[220,1.303,221,2.53]],["body/pipes/CapitalizePipe.html",[2,0.144,3,0.144,4,0.121,7,0.855,13,0.545,16,1.043,17,0.016,21,1.254,22,0.717,23,0.576,24,1.063,31,0.343,32,0.426,38,0.191,39,0.343,71,0.013,72,0.013,79,0.976,87,1.409,188,3.825,200,1.254,217,5.647,220,2.384,221,4.293,222,4.631,223,3.285,224,6.524,225,5.35,226,4.006,227,5.35,228,5.35,229,5.35]],["title/components/ChartComponent.html",[73,0.12,102,0.797]],["body/components/ChartComponent.html",[2,0.04,3,0.04,4,0.034,6,0.111,7,0.406,12,0.25,13,0.679,16,0.239,17,0.016,18,0.381,21,0.351,22,0.397,23,0.751,24,0.297,25,3.759,27,0.595,31,0.163,32,0.119,38,0.053,39,0.096,63,2.592,69,3.026,71,0.005,72,0.005,73,0.158,74,0.31,75,0.365,76,0.365,77,0.365,79,0.273,80,1.692,81,1.683,82,0.62,84,0.62,86,0.504,87,1.306,88,2.201,89,1.993,91,1.147,92,0.62,93,0.483,94,1.157,95,0.365,96,0.365,97,0.31,98,1.157,99,1.233,100,0.31,101,0.365,102,0.807,103,0.31,104,0.365,105,0.31,106,0.365,107,0.31,108,1.44,109,0.31,110,0.365,111,0.31,112,0.365,113,0.285,114,0.365,115,0.31,116,0.351,117,0.365,118,0.31,119,0.365,120,0.31,121,1.022,122,0.285,123,0.365,124,0.31,125,0.365,126,0.31,127,0.365,128,0.31,129,1.233,130,0.31,131,0.365,132,0.337,133,0.31,134,0.365,135,0.31,136,0.365,137,0.285,138,0.365,139,0.31,140,0.351,141,0.365,142,0.31,143,0.365,144,0.31,145,0.365,146,0.31,147,0.365,148,0.31,149,0.351,150,0.297,151,0.351,152,0.365,185,2.95,186,1.463,187,1.463,192,3.919,200,0.595,201,1.03,206,1.214,207,0.863,208,1.721,210,1.305,212,0.769,230,1.295,231,5.894,232,3.894,233,3.894,234,3.894,235,3.894,236,3.894,237,4.738,238,3.894,239,3.894,240,3.894,241,3.894,242,3.894,243,3.894,244,3.894,245,3.894,246,3.894,247,3.894,248,2.539,249,1.497,250,4.738,251,3.894,252,3.894,253,3.894,254,3.894,255,3.894,256,5.731,257,3.894,258,3.894,259,4.738,260,3.894,261,3.894,262,4.738,263,3.894,264,2.539,265,1.497,266,2.539,267,2.539,268,2.539,269,2.539,270,2.539,271,2.539,272,2.539,273,1.497,274,1.497,275,2.539,276,1.38,277,3.371,278,1.497,279,1.497,280,2.539,281,2.539,282,2.539,283,2.539,284,2.539,285,2.539,286,2.539,287,2.539,288,2.539,289,2.539,290,2.539,291,2.539,292,3.894,293,2.539,294,3.894,295,4.738,296,2.539,297,2.539,298,3.368,299,2.539,300,2.539,301,2.539,302,2.539,303,1.972,304,2.539,305,2.539,306,2.539,307,1.497,308,1.972,309,2.197,310,5.537,311,4.738,312,4.738,313,3.894,314,4.738,315,5.313,316,4.738,317,4.738,318,6.048,319,4.738,320,4.738,321,3.894,322,2.539,323,2.539,324,4.738,325,1.497,326,3.894,327,2.539,328,2.539,329,2.539,330,2.197,331,1.497,332,2.539,333,2.539,334,2.539,335,2.539,336,2.539,337,2.539,338,1.497,339,1.497,340,1.497,341,1.497,342,2.539,343,2.539,344,2.539,345,2.539,346,1.497,347,2.539,348,2.539,349,2.539,350,2.539,351,2.539,352,1.497,353,2.539,354,1.972,355,2.539,356,2.539,357,2.539,358,1.497,359,1.497,360,0.769,361,1.497,362,3.681,363,2.539,364,2.539,365,2.539,366,2.539,367,2.539,368,2.539,369,1.559]],["title/interfaces/Circuit.html",[370,1.104,371,2.09]],["body/interfaces/Circuit.html",[2,0.143,3,0.143,4,0.12,6,0.397,17,0.016,23,0.789,31,0.342,38,0.191,71,0.013,72,0.013,86,1.294,87,1.698,370,1.871,371,3.539,372,4.618,373,7.321,374,7.321,375,3.808,376,3.764,377,5.335]],["title/components/CircuitsComponent.html",[73,0.12,103,0.797]],["body/components/CircuitsComponent.html",[1,2.646,2,0.115,3,0.058,4,0.096,6,0.161,7,0.549,12,0.574,13,0.646,16,0.849,17,0.016,18,1.351,21,1.141,22,0.604,23,0.639,24,0.967,25,2.887,27,1.002,29,1.246,31,0.407,32,0.172,33,2.669,34,1.327,38,0.077,39,0.139,49,2.442,55,1.537,62,1.422,63,2.375,68,1.422,71,0.007,72,0.007,73,0.166,74,0.448,75,0.528,76,0.528,77,0.528,79,0.394,80,1.783,81,1.777,82,0.839,84,0.839,86,0.682,87,1.221,88,1.164,89,1.028,91,0.448,92,0.839,93,0.654,94,1.189,95,0.528,96,0.528,97,0.448,98,0.528,99,1.448,100,0.448,101,0.528,102,0.448,103,1.009,104,0.528,105,0.448,106,0.528,107,0.448,108,0.528,109,0.448,110,0.528,111,0.448,112,0.528,113,0.412,114,0.528,115,0.448,116,0.805,117,0.528,118,0.448,119,0.528,120,0.448,121,0.507,122,0.412,123,0.528,124,0.448,125,0.528,126,0.448,127,0.528,128,0.448,129,0.528,130,0.448,131,0.528,132,0.486,133,0.448,134,0.528,135,0.448,136,0.528,137,0.412,138,0.528,139,0.448,140,0.507,141,0.528,142,0.448,143,0.528,144,0.448,145,0.528,146,0.448,147,0.528,148,0.448,149,0.507,150,0.429,151,0.507,152,0.528,200,0.805,201,1.332,206,1.518,207,1.246,208,2.152,210,1.766,212,1.111,213,2.759,276,2.646,298,1.537,303,1.68,354,1.68,371,3.918,375,1.054,378,1.871,379,3.435,380,3.435,381,4.869,382,4.395,383,3.461,384,2.973,385,2.442,386,3.461,387,3.435,388,3.038,389,4.274,390,3.461,391,3.435,392,3.435,393,2.162,394,2.442,395,3.26,396,2.162,397,3.038,398,2.162,399,2.26,400,2.806,401,2.26,402,2.442,403,2.162,404,3.435,405,2.162,406,1.98,407,2.973,408,2.669,409,2.162,410,2.162,411,1.422,412,2.162,413,1.871,414,1.327,415,2.973,416,1.422,417,1.889,418,2.973,419,1.327,420,1.871,421,1.871,422,1.327,423,3.038,424,2.162,425,1.537,426,1.537,427,1.422,428,4.128,429,2.731,430,3.262,431,1.537,432,1.537,433,1.537,434,2.442,435,2.442,436,2.162,437,1.68,438,3.435,439,1.871,440,2.162,441,1.422,442,2.162,443,2.162,444,1.537,445,1.983,446,1.871,447,2.198,448,2.162,449,1.871,450,1.871,451,1.871,452,1.871,453,3.783,454,2.162,455,1.871,456,2.162,457,4.274,458,1.871,459,1.871,460,1.871,461,2.973,462,1.68,463,1.871,464,1.871,465,1.871,466,1.871,467,3.435,468,3.435,469,2.442,470,2.669,471,2.109,472,2.669,473,2.669,474,2.669]],["title/injectables/CircuitsService.html",[0,1.018,390,2.734]],["body/injectables/CircuitsService.html",[0,1.77,2,0.128,3,0.128,4,0.108,6,0.355,7,0.972,12,0.798,13,0.681,16,1.125,17,0.016,21,1.425,22,0.619,23,0.514,24,1.207,31,0.452,32,0.38,36,2.215,37,2.11,38,0.171,39,0.307,71,0.012,72,0.012,360,2.455,390,4.32,406,2.752,417,2.11,441,4.631,475,4.133,476,4.722,477,3.394,478,4.057,479,4.775,480,4.32,481,4.722,482,4.775,483,4.775,484,3.71,485,3.142,486,3.142,487,3.394,488,3.71,489,6.078,490,4.722,491,4.133,492,4.32,493,6.078,494,4.775]],["title/interfaces/Confirm.html",[9,2.53,370,1.104]],["body/interfaces/Confirm.html",[2,0.133,3,0.133,4,0.112,6,0.369,9,4.097,17,0.016,23,0.847,29,4.113,31,0.318,34,3.046,38,0.177,59,5.073,62,4.696,64,5.545,66,5.545,68,4.696,71,0.012,72,0.012,86,1.237,87,1.726,370,1.788,395,3.922,495,4.294,496,7.137]],["title/interfaces/Constructor.html",[12,0.643,370,1.104]],["body/interfaces/Constructor.html",[2,0.145,3,0.145,4,0.122,6,0.403,12,1.098,17,0.015,22,0.749,23,0.792,38,0.193,71,0.013,72,0.013,86,1.305,87,1.726,370,1.887,376,3.782,497,4.683,498,7.356,499,5.716]],["title/injectables/CurrentService.html",[0,1.018,500,2.988]],["body/injectables/CurrentService.html",[0,1.889,2,0.148,3,0.148,4,0.124,12,1.238,13,0.562,17,0.016,31,0.354,32,0.44,36,2.56,37,2.439,38,0.197,39,0.354,71,0.015,72,0.013,500,5.166,501,4.778,502,5.52,503,3.613,504,5.52,505,3.632,506,5.52,507,5.52,508,5.52]],["title/components/DashboardComponent.html",[73,0.12,105,0.797]],["body/components/DashboardComponent.html",[2,0.074,3,0.074,4,0.062,6,0.205,7,0.662,12,0.692,13,0.507,16,0.44,17,0.016,18,0.7,21,0.645,22,0.564,23,0.446,24,0.547,27,0.971,31,0.356,32,0.219,38,0.098,39,0.177,59,5.08,71,0.008,72,0.008,73,0.186,74,0.57,75,0.672,76,0.672,77,0.672,79,0.502,80,1.831,81,1.826,82,1.011,84,1.011,86,0.823,91,0.57,92,1.011,93,0.789,94,1.352,95,0.672,96,0.672,97,0.57,98,0.672,99,1.581,100,0.57,101,0.672,102,0.57,103,0.57,104,0.672,105,1.147,106,0.672,107,0.57,108,0.672,109,0.57,110,0.672,111,0.57,112,0.672,113,0.524,114,0.672,115,0.57,116,0.645,117,0.672,118,0.57,119,0.672,120,0.57,121,0.645,122,0.524,123,0.672,124,0.57,125,0.672,126,0.57,127,0.672,128,0.57,129,0.672,130,0.57,131,0.672,132,0.619,133,0.57,134,0.672,135,0.57,136,0.672,137,0.524,138,0.672,139,0.57,140,0.645,141,0.672,142,0.57,143,0.672,144,0.57,145,0.672,146,0.57,147,0.672,148,0.57,149,0.645,150,0.547,151,0.645,152,0.672,200,0.971,201,1.552,206,1.727,208,2.448,210,2.56,212,1.416,213,2.429,218,2.944,369,4.388,470,3.218,471,4.481,472,3.218,473,3.218,474,3.218,503,2.251,509,2.383,510,4.142,511,4.142,512,3.976,513,2.139,514,4.849,515,3.976,516,4.142,517,2.753,518,1.691,519,2.139,520,2.139,521,4.142,522,2.753,523,2.753,524,2.139,525,2.383,526,4.142,527,4.142,528,4.142,529,5.08,530,5.08,531,5.08,532,5.08]],["title/directives/DefaultImageDirective.html",[93,0.732,150,0.764]],["body/directives/DefaultImageDirective.html",[2,0.128,3,0.128,4,0.108,6,0.355,7,0.972,13,0.681,16,0.763,17,0.016,18,1.214,23,0.514,31,0.307,32,0.38,38,0.171,39,0.307,71,0.012,72,0.012,79,0.871,80,1.567,86,0.949,87,1.312,88,2.462,89,1.429,93,1.273,150,1.207,151,1.425,188,3.949,427,3.142,470,4.722,505,3.142,533,6.092,534,4.133,535,7.268,536,7.429,537,6.078,538,4.775,539,4.775,540,4.775,541,6.078,542,4.775,543,4.775,544,6.078,545,4.775,546,4.133,547,4.775,548,4.775,549,4.775,550,4.775,551,4.775,552,4.775]],["title/components/DoughnutChartComponent.html",[73,0.12,107,0.797]],["body/components/DoughnutChartComponent.html",[2,0.091,3,0.091,4,0.077,6,0.253,13,0.624,17,0.015,22,0.573,23,0.745,25,3.059,27,1.134,31,0.219,32,0.271,38,0.122,39,0.219,71,0.01,72,0.01,73,0.202,74,0.705,75,0.831,76,0.831,77,0.831,79,0.621,80,1.866,81,1.862,82,1.181,84,1.181,86,0.961,87,1.045,88,1.154,89,1.684,91,1.394,92,1.181,93,0.922,94,1.497,95,0.831,96,0.831,97,0.705,98,0.831,99,1.69,100,0.705,101,0.831,102,0.705,103,0.705,104,0.831,105,0.705,106,0.831,107,1.27,108,1.757,109,0.705,110,0.831,111,0.705,112,0.831,113,0.648,114,0.831,115,0.705,116,0.798,117,0.831,118,0.705,119,0.831,120,0.705,121,0.798,122,0.648,123,0.831,124,0.705,125,0.831,126,0.705,127,0.831,128,0.705,129,0.831,130,0.705,131,0.831,132,0.766,133,0.705,134,0.831,135,0.705,136,0.831,137,0.648,138,0.831,139,0.705,140,0.798,141,0.831,142,0.705,143,0.831,144,0.705,145,0.831,146,0.705,147,0.831,148,0.705,149,0.798,150,0.676,151,0.798,152,0.831,184,1.963,185,2.99,186,2.789,187,2.789,188,3.843,192,3.245,193,2.421,194,2.091,197,2.421,309,4.189,399,3.184,553,5.604,554,5.031,555,3.76,556,4.189,557,2.948]],["title/interfaces/Driver.html",[370,1.104,558,2.361]],["body/interfaces/Driver.html",[2,0.138,3,0.138,4,0.116,6,0.383,17,0.016,23,0.815,38,0.184,71,0.013,72,0.013,86,1.266,87,1.744,370,1.83,376,3.718,499,5.618,558,3.913,559,4.456,560,7.231,561,7.231,562,7.231,563,7.231]],["title/components/DriversComponent.html",[73,0.12,109,0.797]],["body/components/DriversComponent.html",[1,2.68,2,0.117,3,0.059,4,0.098,6,0.165,7,0.559,12,0.585,13,0.65,16,0.859,17,0.016,18,1.366,21,1.156,22,0.609,23,0.644,24,0.98,25,3.251,27,1.017,29,1.275,31,0.367,32,0.176,33,2.718,34,1.358,38,0.079,39,0.142,49,2.486,55,1.572,62,1.455,63,2.406,68,1.455,71,0.007,72,0.007,73,0.168,74,0.458,75,0.54,76,0.54,77,0.54,79,0.404,80,1.788,81,1.782,82,0.854,84,0.854,86,0.695,87,1.233,88,1.185,89,1.046,91,0.458,92,0.854,93,0.666,94,1.204,95,0.54,96,0.54,97,0.458,98,0.54,99,1.461,100,0.458,101,0.54,102,0.458,103,0.458,104,0.54,105,0.458,106,0.54,107,0.458,108,0.54,109,1.022,110,0.54,111,0.458,112,0.54,113,0.421,114,0.54,115,0.458,116,0.518,117,0.54,118,0.458,119,0.54,120,0.458,121,0.518,122,0.421,123,0.54,124,0.458,125,0.54,126,0.458,127,0.54,128,0.458,129,0.54,130,0.458,131,0.54,132,0.498,133,0.458,134,0.54,135,0.458,136,0.54,137,0.421,138,0.54,139,0.458,140,0.518,141,0.54,142,0.458,143,0.54,144,0.458,145,0.54,146,0.458,147,0.54,148,0.458,149,0.518,150,0.439,151,0.518,152,0.54,200,0.82,201,1.352,206,1.537,207,1.275,208,2.179,210,1.798,212,1.137,213,2.787,276,2.68,298,1.572,369,2.148,382,4.438,383,3.506,384,3.027,385,2.486,386,3.506,388,3.084,394,2.486,395,3.292,397,2.486,399,3.245,400,2.016,401,2.302,402,2.486,406,2.016,407,3.027,408,2.718,411,1.455,423,3.084,425,2.486,426,1.572,427,1.455,428,3.832,429,2.536,430,2.664,431,1.572,432,1.572,433,1.572,434,2.486,435,2.486,437,1.718,439,1.914,444,1.572,458,1.914,459,1.914,460,1.914,461,3.027,462,1.718,463,1.914,464,1.914,465,1.914,466,1.914,471,3.028,472,2.718,473,2.718,474,2.718,499,2.718,529,2.486,530,2.486,531,2.486,532,2.486,558,4.446,564,1.914,565,3.498,566,3.498,567,4.932,568,3.498,569,4.339,570,3.506,571,3.498,572,3.498,573,2.212,574,2.212,575,2.212,576,2.212,577,3.498,578,2.212,579,2.718,580,2.212,581,2.212,582,2.212,583,2.212,584,2.212,585,2.212,586,3.498,587,2.212,588,1.718,589,5.372,590,5.372,591,2.718,592,3.498,593,4.932,594,4.932]],["title/injectables/DriversService.html",[0,1.018,570,2.734]],["body/injectables/DriversService.html",[0,1.766,2,0.128,3,0.128,4,0.107,6,0.354,7,0.969,12,0.794,13,0.679,16,1.123,17,0.016,21,1.42,22,0.617,23,0.512,24,1.204,31,0.451,32,0.379,36,2.204,37,2.1,38,0.17,39,0.305,71,0.012,72,0.012,360,2.443,406,2.739,417,2.1,441,4.623,476,4.707,477,3.377,478,4.049,480,4.307,481,4.707,485,3.127,486,3.127,487,3.377,488,3.692,492,4.307,570,4.307,595,4.113,596,4.751,597,4.751,598,4.751,599,3.692,600,4.751,601,4.751,602,6.059,603,4.751,604,6.059,605,4.751]],["title/components/FooterComponent.html",[73,0.12,111,0.797]],["body/components/FooterComponent.html",[2,0.096,3,0.096,4,0.081,6,0.266,7,0.801,12,0.967,13,0.589,16,0.572,17,0.016,18,0.91,22,0.589,27,1.174,31,0.23,32,0.285,38,0.128,39,0.23,71,0.01,72,0.01,73,0.206,74,0.741,75,0.873,76,0.873,77,0.873,79,0.653,80,1.873,81,1.87,82,1.223,84,1.223,86,0.995,88,1.212,89,1.07,91,0.741,92,1.223,93,0.954,94,1.53,95,0.873,96,0.873,97,0.741,98,0.873,99,1.714,100,0.741,101,0.873,102,0.741,103,0.741,104,0.873,105,0.741,106,0.873,107,0.741,108,0.873,109,0.741,110,0.873,111,1.298,112,0.873,113,0.681,114,0.873,115,0.741,116,0.839,117,0.873,118,0.741,119,0.873,120,0.741,121,0.839,122,0.681,123,0.873,124,0.741,125,0.873,126,0.741,127,0.873,128,0.741,129,0.873,130,0.741,131,0.873,132,0.805,133,0.741,134,0.873,135,0.741,136,0.873,137,0.681,138,0.873,139,0.741,140,0.839,141,0.873,142,0.741,143,0.873,144,0.741,145,0.873,146,0.741,147,0.873,148,0.741,149,0.839,150,0.711,151,0.839,152,0.873,200,1.174,201,1.803,206,1.953,408,3.893,447,2.576,591,5.311,606,3.097,607,5.011,608,5.011,609,5.011,610,5.011,611,3.578,612,5.011,613,4.337,614,4.337]],["title/components/ForgotComponent.html",[73,0.12,113,0.732]],["body/components/ForgotComponent.html",[2,0.095,3,0.095,4,0.08,6,0.263,7,0.795,12,0.961,13,0.506,16,0.566,17,0.015,18,0.9,22,0.585,27,1.165,31,0.227,32,0.282,38,0.126,39,0.227,71,0.01,72,0.01,73,0.205,74,0.733,75,0.864,76,0.864,77,0.864,79,0.645,80,1.871,81,1.868,82,1.214,84,1.214,91,0.733,92,1.214,93,0.947,94,1.522,95,0.864,96,0.864,97,0.733,98,0.864,99,1.708,100,0.733,101,0.864,102,0.733,103,0.733,104,0.864,105,0.733,106,0.864,107,0.733,108,0.864,109,0.733,110,0.864,111,0.733,112,0.864,113,1.187,114,0.864,115,0.733,116,0.829,117,0.864,118,0.733,119,0.864,120,0.733,121,0.829,122,0.674,123,0.864,124,0.733,125,0.864,126,0.733,127,0.864,128,0.733,129,0.864,130,0.733,131,0.864,132,0.796,133,0.733,134,0.864,135,0.733,136,0.864,137,0.674,138,0.864,139,0.733,140,0.829,141,0.864,142,0.733,143,0.864,144,0.733,145,0.864,146,0.733,147,0.864,148,0.733,149,0.829,150,0.703,151,0.829,152,0.864,166,4.482,200,1.165,201,1.792,206,1.943,216,3.271,615,3.062,616,6.235,617,4.971,618,4.971,619,3.538,620,3.538,621,5.549,622,4.971,623,3.271,624,3.863,625,4.971,626,4.971,627,4.303,628,4.971,629,2.702]],["title/components/GoogleMapsComponent.html",[73,0.12,115,0.797]],["body/components/GoogleMapsComponent.html",[2,0.083,3,0.083,4,0.07,6,0.231,7,0.724,12,0.894,13,0.686,16,0.497,17,0.016,18,0.79,22,0.545,23,0.633,27,1.062,31,0.343,32,0.248,38,0.111,39,0.199,71,0.009,72,0.009,73,0.195,74,0.644,75,0.758,76,0.758,77,0.758,79,0.567,80,1.851,81,1.848,82,1.106,84,1.106,86,0.9,88,1.811,89,1.599,91,0.644,92,1.106,93,0.863,94,1.434,95,0.758,96,0.758,97,0.644,98,0.758,99,1.644,100,0.644,101,0.758,102,0.644,103,0.644,104,0.758,105,0.644,106,0.758,107,0.644,108,0.758,109,0.644,110,0.758,111,0.644,112,0.758,113,0.592,114,0.758,115,1.217,116,1.578,117,0.758,118,0.644,119,0.758,120,0.644,121,0.728,122,0.592,123,0.758,124,0.644,125,0.758,126,0.644,127,0.758,128,0.644,129,0.758,130,0.644,131,0.758,132,0.699,133,0.644,134,0.758,135,0.644,136,0.758,137,0.592,138,0.758,139,0.644,140,0.728,141,0.758,142,0.644,143,0.758,144,0.644,145,0.758,146,0.644,147,0.758,148,0.644,149,0.728,150,0.617,151,0.728,152,0.758,188,3.193,200,1.062,201,1.666,206,1.831,371,2.905,375,2.21,413,2.689,417,2.002,447,1.597,630,5.827,631,5.231,632,2.689,633,4.53,634,4.53,635,4.176,636,4.565,637,3.544,638,5.346,639,4.53,640,3.107,641,3.386,642,4.53,643,3.107,644,4.53,645,3.107,646,3.107,647,3.107,648,3.107,649,3.22,650,3.107,651,2.689,652,2.689,653,2.689,654,4.53]],["title/pipes/GoogleMapsUrlPipe.html",[220,1.303,422,2.361]],["body/pipes/GoogleMapsUrlPipe.html",[2,0.136,3,0.136,4,0.115,7,0.812,13,0.517,16,1.01,17,0.016,21,1.191,22,0.701,23,0.547,24,1.009,31,0.406,32,0.405,38,0.181,39,0.326,71,0.012,72,0.012,79,0.927,87,1.364,88,1.721,89,1.52,165,4.224,200,1.191,220,2.33,223,3.119,226,3.88,375,3.681,417,2.793,422,3.88,445,2.356,455,5.469,641,3.965,655,4.91,656,3.947,657,4.91,658,5.08,659,4.91,660,3.947,661,4.397,662,5.08]],["title/pipes/GoogleStaticMapUrlPipe.html",[220,1.303,414,2.361]],["body/pipes/GoogleStaticMapUrlPipe.html",[2,0.083,3,0.083,4,0.069,7,0.491,13,0.662,16,1.18,17,0.016,21,1.37,22,0.662,23,0.778,24,1.161,31,0.341,32,0.245,38,0.11,39,0.197,71,0.009,72,0.009,79,0.56,86,0.61,87,1.668,88,1.522,89,1.589,165,3.988,192,3.061,200,0.72,213,3.355,220,1.799,223,2.759,226,2.759,354,3.491,375,3.273,414,2.759,416,4.415,417,2.965,445,3.112,446,4.597,449,2.659,450,3.888,451,3.888,452,3.888,469,3.193,637,1.669,641,4.397,655,5.213,656,2.387,657,2.387,660,2.387,661,2.659,663,5.311,664,3.072,665,3.072,666,4.492,667,3.072,668,3.072,669,4.492,670,6.709,671,3.072,672,5.844,673,3.072,674,4.492,675,3.072,676,5.311,677,3.072,678,5.311,679,4.492,680,3.072,681,2.183,682,2.659,683,3.888,684,2.387,685,3.072,686,3.072,687,3.072,688,3.072,689,3.072,690,3.072,691,5.311,692,3.072,693,3.072,694,3.072,695,3.072,696,3.072,697,3.072,698,3.072,699,3.072,700,3.072,701,3.072,702,3.072,703,3.072,704,3.072,705,3.072,706,3.072,707,3.072,708,3.072,709,3.072,710,3.072,711,3.072,712,3.072]],["title/components/HeaderComponent.html",[73,0.12,118,0.797]],["body/components/HeaderComponent.html",[1,3.323,2,0.063,3,0.063,4,0.102,6,0.174,7,0.585,12,0.391,13,0.518,16,0.585,17,0.016,18,0.93,21,0.549,22,0.518,23,0.485,24,0.465,27,0.858,29,1.35,31,0.327,32,0.187,38,0.084,39,0.15,47,2.027,55,1.665,59,1.665,62,1.541,63,1.142,64,1.819,65,2.027,66,1.819,67,2.027,68,1.541,69,1.819,70,2.027,71,0.007,72,0.007,73,0.173,74,0.485,75,0.572,76,0.572,77,0.572,79,0.427,80,1.8,81,1.794,82,0.893,84,0.893,86,0.727,87,0.972,91,0.485,92,0.893,93,0.697,94,1.243,95,0.572,96,0.572,97,0.485,98,0.572,99,1.493,100,0.485,101,0.572,102,0.485,103,0.485,104,0.572,105,0.485,106,0.572,107,0.485,108,0.572,109,0.485,110,0.572,111,0.485,112,0.572,113,0.446,114,0.572,115,0.485,116,0.549,117,0.572,118,1.054,119,0.572,120,0.485,121,0.549,122,0.446,123,0.572,124,0.485,125,0.572,126,0.485,127,0.572,128,0.485,129,0.572,130,0.485,131,0.572,132,0.527,133,0.485,134,0.572,135,0.485,136,0.572,137,0.446,138,0.572,139,0.485,140,0.549,141,0.572,142,0.485,143,0.572,144,0.485,145,0.572,146,0.485,147,0.572,148,0.485,149,0.858,150,0.465,151,0.549,152,0.572,200,0.858,201,1.403,206,1.586,213,1.785,277,5.065,360,1.204,369,1.438,411,1.541,445,1.086,447,3.419,471,3.594,513,1.819,514,4.547,515,3.125,518,1.438,519,1.819,520,1.819,524,1.819,525,3.167,579,4.547,629,1.273,713,2.027,714,3.897,715,3.658,716,3.658,717,5.852,718,5.521,719,3.897,720,3.658,721,2.342,722,2.342,723,3.167,724,2.027,725,3.658,726,3.658,727,2.342,728,3.658,729,2.027,730,2.027,731,2.342,732,2.342,733,2.342,734,2.342,735,2.027,736,2.342,737,3.658,738,3.658,739,2.342,740,3.658,741,2.342,742,2.342,743,7.062,744,3.167,745,3.658,746,3.658,747,6.884,748,3.658,749,3.167,750,3.658,751,3.658,752,3.658,753,3.658,754,3.658,755,3.658,756,3.167,757,3.658,758,2.342,759,3.658,760,5.089,761,3.658,762,3.658,763,3.658,764,3.658,765,3.658,766,3.658,767,3.658,768,3.658,769,3.658,770,3.658,771,3.658,772,3.658,773,2.342,774,3.658,775,3.658,776,3.658,777,2.342,778,2.843,779,3.658,780,3.658,781,3.658,782,5.089,783,5.852,784,3.167,785,4.502,786,5.852,787,5.852,788,5.852,789,2.342,790,2.342,791,2.342,792,2.342,793,2.342,794,2.342,795,4.502]],["title/components/LineChartComponent.html",[73,0.12,120,0.797]],["body/components/LineChartComponent.html",[2,0.095,3,0.095,4,0.08,6,0.263,13,0.694,17,0.015,22,0.585,24,1.142,27,1.165,31,0.227,32,0.282,38,0.126,39,0.227,71,0.01,72,0.01,73,0.205,74,0.733,75,0.864,76,0.864,77,0.864,79,0.645,80,1.871,81,1.868,82,1.214,84,1.214,91,1.291,92,1.214,93,0.947,94,1.522,95,0.864,96,0.864,97,0.733,98,0.864,99,1.708,100,0.733,101,0.864,102,0.733,103,0.733,104,0.864,105,0.733,106,0.864,107,0.733,108,0.864,109,0.733,110,0.864,111,0.733,112,0.864,113,0.674,114,0.864,115,0.733,116,0.829,117,0.864,118,0.733,119,0.864,120,1.291,121,1.64,122,0.674,123,0.864,124,0.733,125,0.864,126,0.733,127,0.864,128,0.733,129,0.864,130,0.733,131,0.864,132,0.796,133,0.733,134,0.864,135,0.733,136,0.864,137,0.674,138,0.864,139,0.733,140,0.829,141,0.864,142,0.733,143,0.864,144,0.733,145,0.864,146,0.733,147,0.864,148,0.733,149,0.829,150,0.703,151,0.829,152,0.864,184,2.039,185,2.425,186,2.865,187,2.865,188,3.945,189,4.466,190,4.086,191,4.466,192,3.313,193,2.515,194,2.172,196,2.749,197,2.515,198,2.749,557,3.062,796,6.056,797,5.436]],["title/injectables/LocalStorageService.html",[0,1.018,515,2.361]],["body/injectables/LocalStorageService.html",[0,1.626,2,0.108,3,0.108,4,0.09,6,0.299,7,0.867,12,1.027,13,0.737,16,1.157,17,0.016,18,1.562,21,1.44,22,0.626,23,0.708,24,1.22,31,0.258,32,0.32,36,1.862,37,1.774,38,0.143,39,0.258,63,1.958,71,0.011,72,0.011,86,1.077,87,1.611,88,1.837,89,2.118,276,2.947,395,3.54,401,4.328,445,1.862,512,3.771,515,3.33,629,2.947,723,3.474,729,3.474,730,3.474,798,6.372,799,3.474,800,6.129,801,5.423,802,6.578,803,5.423,804,5.423,805,6.578,806,5.423,807,5.423,808,4.013,809,5.423,810,4.013,811,5.423,812,4.013,813,5.423,814,4.013,815,4.013,816,4.013,817,4.013,818,4.013,819,4.013,820,5.423,821,4.013,822,4.013]],["title/interfaces/Location.html",[370,1.104,375,1.876]],["body/interfaces/Location.html",[2,0.145,3,0.145,4,0.122,6,0.403,17,0.015,23,0.792,38,0.193,71,0.013,72,0.013,86,1.305,87,1.726,370,1.887,375,3.204,400,4.24,635,5.229,823,4.683,824,7.356,825,7.356]],["title/pipes/LocationTextPipe.html",[220,1.303,419,2.361]],["body/pipes/LocationTextPipe.html",[2,0.143,3,0.143,4,0.12,7,0.848,13,0.54,16,1.038,17,0.016,21,1.244,22,0.714,23,0.571,24,1.054,31,0.417,32,0.423,38,0.189,39,0.341,71,0.013,72,0.013,79,0.968,87,1.401,200,1.244,220,2.376,223,3.258,226,3.986,375,3.656,419,3.986,453,5.043,657,5.043,660,4.122,826,5.618,827,4.592,828,5.305,829,5.305,830,5.305]],["title/interfaces/Login.html",[370,1.104,629,2.09]],["body/interfaces/Login.html",[2,0.145,3,0.145,4,0.122,6,0.403,17,0.015,23,0.792,71,0.013,72,0.013,86,1.305,87,1.726,370,1.887,629,3.57,831,4.204,832,4.683,833,6.367,834,6.367,835,6.367,836,6.367]],["title/components/LoginComponent.html",[73,0.12,122,0.732]],["body/components/LoginComponent.html",[2,0.08,3,0.08,4,0.067,6,0.22,7,0.699,12,0.731,13,0.585,16,0.699,17,0.016,18,1.112,21,0.694,22,0.624,23,0.471,24,0.588,27,1.025,31,0.334,32,0.236,38,0.106,39,0.19,42,3.786,63,1.445,71,0.009,72,0.009,73,0.191,74,0.614,75,0.723,76,0.723,77,0.723,79,0.54,80,1.843,81,1.839,82,1.068,84,1.068,86,0.869,88,1.003,89,0.886,91,0.614,92,1.068,93,0.833,94,1.402,95,0.723,96,0.723,97,0.614,98,0.723,99,1.619,100,0.614,101,0.723,102,0.614,103,0.614,104,0.723,105,0.614,106,0.723,107,0.614,108,0.723,109,0.614,110,0.723,111,0.614,112,0.723,113,0.564,114,0.723,115,0.614,116,1.219,117,0.723,118,0.614,119,0.723,120,0.614,121,0.694,122,1.094,123,0.723,124,0.614,125,0.723,126,0.614,127,0.723,128,0.614,129,0.723,130,0.614,131,0.723,132,0.666,133,0.614,134,0.723,135,0.614,136,0.723,137,0.564,138,0.723,139,0.614,140,0.694,141,0.723,142,0.614,143,0.723,144,0.614,145,0.723,146,0.614,147,0.723,148,0.614,149,0.694,150,0.588,151,0.694,152,0.723,188,2.377,200,1.025,201,1.621,206,1.79,213,2.134,445,1.374,512,2.686,513,2.302,514,4.982,515,3.526,518,1.819,519,2.302,520,2.302,524,2.302,555,3.399,613,2.564,614,2.564,621,4.462,623,3.422,624,3.399,629,3.778,719,4.501,724,2.564,778,5.494,800,2.564,831,4.76,833,3.786,834,3.786,835,3.786,836,3.786,837,2.564,838,4.374,839,4.374,840,5.743,841,2.962,842,2.962,843,2.962,844,4.374,845,2.962,846,4.374,847,2.962,848,2.962,849,2.564,850,2.564,851,2.962,852,4.374,853,4.374,854,3.786]],["title/modules/LoginModule.html",[153,1.784,163,2.53]],["body/modules/LoginModule.html",[2,0.122,3,0.122,4,0.102,17,0.016,31,0.479,32,0.362,38,0.247,39,0.291,71,0.012,72,0.012,73,0.204,91,0.94,113,1.478,122,1.478,137,1.478,153,2.728,155,2.786,156,3.762,157,3.225,158,3.225,163,5.165,165,3.612,166,2.986,167,2.986,172,4.181,445,2.105,518,2.786,629,2.466,855,3.927,856,3.927,857,3.927,858,3.525,859,4.537,860,4.537,861,4.537,862,5.091,863,5.091,864,3.525]],["title/classes/Marker.html",[39,0.247,637,2.09]],["body/classes/Marker.html",[2,0.123,3,0.123,4,0.104,6,0.342,12,0.768,13,0.731,17,0.016,21,1.076,22,0.762,23,0.773,24,0.912,31,0.295,38,0.164,39,0.38,71,0.012,72,0.012,86,1.177,87,1.689,200,1.389,400,4.369,635,5.389,636,5.89,637,3.221,641,4.509,652,3.974,653,3.974,865,3.974,866,4.666,867,5.927,868,5.927,869,4.592,870,4.592,871,4.592,872,4.592,873,4.592,874,4.592]],["title/interfaces/MarkerIF.html",[370,1.104,866,2.734]],["body/interfaces/MarkerIF.html",[2,0.123,3,0.123,4,0.103,6,0.341,17,0.016,22,0.748,23,0.791,24,1.377,38,0.164,71,0.012,72,0.012,86,1.176,87,1.689,190,4.926,192,3.994,362,4.598,370,1.7,375,2.887,400,4.235,635,5.223,636,5.709,637,3.766,641,4.235,866,4.207,875,3.965,876,5.918,877,5.918,878,5.918,879,5.918,880,5.918,881,5.918,882,5.918]],["title/components/NotpagefoundComponent.html",[73,0.12,124,0.797]],["body/components/NotpagefoundComponent.html",[2,0.099,3,0.099,4,0.083,6,0.276,7,0.82,12,0.985,13,0.523,16,0.82,17,0.015,18,0.941,22,0.6,27,1.203,31,0.238,32,0.295,38,0.132,39,0.238,71,0.01,72,0.01,73,0.209,74,0.767,75,0.904,76,0.904,77,0.904,79,0.675,80,1.878,81,1.875,82,1.253,84,1.253,91,0.767,92,1.253,93,0.977,94,1.553,95,0.904,96,0.904,97,0.767,98,0.904,99,1.73,100,0.767,101,0.904,102,0.767,103,0.767,104,0.904,105,0.767,106,0.904,107,0.767,108,0.904,109,0.767,110,0.904,111,0.767,112,0.904,113,0.705,114,0.904,115,0.767,116,0.868,117,0.904,118,0.767,119,0.904,120,0.767,121,0.868,122,0.705,123,0.904,124,1.317,125,0.904,126,0.767,127,0.904,128,0.767,129,0.904,130,0.767,131,0.904,132,0.833,133,0.767,134,0.904,135,0.767,136,0.904,137,0.705,138,0.904,139,0.767,140,0.868,141,0.904,142,0.767,143,0.904,144,0.767,145,0.904,146,0.767,147,0.904,148,0.767,149,0.868,150,0.735,151,0.868,152,0.904,200,1.203,201,1.836,206,1.982,216,3.377,218,3.648,505,3.377,883,3.205,884,5.132,885,5.132,886,5.132,887,3.702,888,3.702,889,5.132,890,3.702]],["title/components/PagesComponent.html",[73,0.12,126,0.797]],["body/components/PagesComponent.html",[2,0.097,3,0.097,4,0.082,6,0.269,7,0.807,12,0.973,13,0.514,16,0.578,17,0.015,18,0.92,22,0.593,27,1.184,31,0.232,32,0.288,38,0.129,39,0.232,71,0.01,72,0.01,73,0.207,74,0.749,75,0.883,76,0.883,77,0.883,79,0.66,80,1.874,81,1.872,82,1.233,84,1.233,91,0.749,92,1.233,93,0.962,94,1.537,95,0.883,96,0.883,97,0.749,98,0.883,99,1.719,100,0.749,101,0.883,102,0.749,103,0.749,104,0.883,105,0.749,106,0.883,107,0.749,108,0.883,109,0.749,110,0.883,111,0.749,112,0.883,113,0.689,114,0.883,115,0.749,116,0.848,117,0.883,118,0.749,119,0.883,120,0.749,121,0.848,122,0.689,123,0.883,124,0.749,125,0.883,126,1.304,127,0.883,128,0.749,129,0.883,130,0.749,131,0.883,132,0.814,133,0.749,134,0.883,135,0.749,136,0.883,137,0.689,138,0.883,139,0.749,140,0.848,141,0.883,142,0.749,143,0.883,144,0.749,145,0.883,146,0.749,147,0.883,148,0.749,149,0.848,150,0.719,151,0.848,152,0.883,200,1.184,201,1.813,206,1.963,216,4.143,219,5.45,308,3.924,362,3.924,447,2.597,891,3.132,892,5.05,893,5.05,894,3.618,895,3.618,896,4.371,897,5.05,898,5.05,899,5.05]],["title/modules/PagesModule.html",[153,1.784,164,2.53]],["body/modules/PagesModule.html",[2,0.079,3,0.079,4,0.066,17,0.016,31,0.51,32,0.233,34,1.799,38,0.204,39,0.188,71,0.009,72,0.009,73,0.179,91,0.607,93,0.984,97,0.899,102,0.899,103,0.899,105,0.899,107,0.899,109,0.899,113,1.161,115,0.899,120,0.899,122,1.161,126,0.899,128,0.899,130,0.899,132,0.976,133,0.899,135,0.899,137,1.161,142,0.899,144,0.899,148,0.899,150,0.862,153,2.397,155,1.799,156,3.293,157,2.083,158,2.083,164,4.561,165,2.665,166,1.928,167,1.928,169,3.756,170,2.277,171,2.083,172,3.085,173,3.756,174,2.277,175,2.277,183,2.277,185,1.43,220,1.75,276,1.593,376,1.507,414,2.665,415,3.756,416,1.928,417,1.918,418,3.756,419,2.665,420,2.536,421,2.536,422,2.665,445,2.65,554,2.277,631,2.277,637,1.593,681,3.085,682,2.536,683,2.536,797,2.277,863,3.756,864,2.277,900,2.536,901,2.536,902,2.93,903,4.203,904,2.277,905,2.536,906,3.372,907,2.93,908,4.339,909,2.536,910,2.93,911,2.93,912,2.536,913,4.339,914,2.536,915,2.536,916,2.277,917,2.93,918,2.536,919,4.339,920,2.536,921,2.536,922,2.93,923,2.93,924,2.93,925,2.93,926,2.93,927,6.387,928,2.93,929,2.93,930,2.277,931,2.93,932,2.277,933,2.93,934,2.277,935,2.93,936,2.93,937,2.93,938,2.93,939,2.93,940,2.93,941,2.93,942,2.93,943,2.93,944,2.855,945,2.93,946,2.855,947,2.93,948,2.93,949,2.93,950,2.93,951,2.93,952,2.93,953,2.93,954,2.93,955,2.93,956,2.93,957,2.536,958,2.93,959,5.168,960,2.93,961,2.93]],["title/components/PieChartComponent.html",[73,0.12,128,0.797]],["body/components/PieChartComponent.html",[2,0.095,3,0.095,4,0.08,6,0.263,13,0.694,17,0.015,22,0.585,24,1.142,27,1.165,31,0.227,32,0.282,38,0.126,39,0.227,71,0.01,72,0.01,73,0.205,74,0.733,75,0.864,76,0.864,77,0.864,79,0.645,80,1.871,81,1.868,82,1.214,84,1.214,91,1.291,92,1.214,93,0.947,94,1.522,95,0.864,96,0.864,97,0.733,98,0.864,99,1.708,100,0.733,101,0.864,102,0.733,103,0.733,104,0.864,105,0.733,106,0.864,107,0.733,108,0.864,109,0.733,110,0.864,111,0.733,112,0.864,113,0.674,114,0.864,115,0.733,116,0.829,117,0.864,118,0.733,119,0.864,120,0.733,121,0.829,122,0.674,123,0.864,124,0.733,125,0.864,126,0.733,127,0.864,128,1.291,129,1.708,130,0.733,131,0.864,132,0.796,133,0.733,134,0.864,135,0.733,136,0.864,137,0.674,138,0.864,139,0.733,140,0.829,141,0.864,142,0.733,143,0.864,144,0.733,145,0.864,146,0.733,147,0.864,148,0.733,149,0.829,150,0.703,151,0.829,152,0.864,184,2.039,185,2.425,186,2.865,187,2.865,188,3.945,189,4.466,190,4.086,191,4.466,192,3.313,193,2.515,194,2.172,195,3.062,196,2.749,197,2.515,198,2.749,932,5.436,962,6.056]],["title/components/PolarAreaChartComponent.html",[73,0.12,130,0.797]],["body/components/PolarAreaChartComponent.html",[2,0.096,3,0.096,4,0.08,6,0.265,7,0.798,12,0.964,13,0.508,16,0.569,17,0.015,18,0.905,22,0.587,27,1.17,31,0.228,32,0.283,38,0.127,39,0.228,71,0.01,72,0.01,73,0.206,74,0.737,75,0.869,76,0.869,77,0.869,79,0.649,80,1.872,81,1.869,82,1.218,84,1.218,91,0.737,92,1.218,93,0.95,94,1.526,95,0.869,96,0.869,97,0.737,98,0.869,99,1.711,100,0.737,101,0.869,102,0.737,103,0.737,104,0.869,105,0.737,106,0.869,107,0.737,108,0.869,109,0.737,110,0.869,111,0.737,112,0.869,113,0.677,114,0.869,115,0.737,116,0.834,117,0.869,118,0.737,119,0.869,120,0.737,121,0.834,122,0.677,123,0.869,124,0.737,125,0.869,126,0.737,127,0.869,128,0.737,129,0.869,130,1.295,131,1.775,132,1.725,133,0.737,134,0.869,135,0.737,136,0.869,137,0.677,138,0.869,139,0.737,140,0.834,141,0.869,142,0.737,143,0.869,144,0.737,145,0.869,146,0.737,147,0.869,148,0.737,149,0.834,150,0.707,151,0.834,152,0.869,184,2.051,185,3.049,186,2.877,187,2.877,194,2.185,200,1.17,201,1.797,206,1.948,930,4.479,963,4.99,964,3.079,965,3.878]],["title/interfaces/Race.html",[370,1.104,503,2.09]],["body/interfaces/Race.html",[2,0.133,3,0.133,4,0.112,6,0.369,17,0.016,23,0.82,31,0.318,38,0.177,71,0.012,72,0.012,86,1.237,87,1.739,370,1.788,371,4.184,376,3.669,429,3.669,503,3.384,591,5.545,966,4.294,967,7.137,968,6.177,969,7.137,970,4.961]],["title/components/RacesComponent.html",[73,0.12,133,0.797]],["body/components/RacesComponent.html",[1,2.974,2,0.132,3,0.072,4,0.111,6,0.2,7,0.65,12,0.68,13,0.654,16,0.784,17,0.016,18,1.248,21,0.953,22,0.599,23,0.589,24,0.808,25,2.667,27,0.953,31,0.377,32,0.214,38,0.096,39,0.173,63,2.394,71,0.008,72,0.008,73,0.184,74,0.557,75,0.656,76,0.656,77,0.656,79,0.49,80,1.826,81,1.822,82,0.993,84,0.993,86,0.808,87,1.059,88,1.378,89,1.217,91,0.557,92,0.993,93,0.774,94,1.336,95,0.656,96,0.656,97,0.557,98,0.656,99,1.568,100,0.557,101,0.656,102,0.557,103,0.557,104,0.656,105,0.557,106,0.656,107,0.557,108,0.656,109,0.557,110,0.656,111,0.557,112,0.656,113,0.512,114,0.656,115,0.557,116,0.63,117,0.656,118,0.557,119,0.656,120,0.557,121,0.63,122,0.512,123,0.656,124,0.557,125,0.656,126,0.557,127,0.656,128,0.557,129,0.656,130,0.557,131,0.656,132,0.605,133,1.133,134,0.656,135,0.557,136,0.656,137,0.512,138,0.656,139,0.557,140,0.63,141,0.656,142,0.557,143,0.656,144,0.557,145,0.656,146,0.557,147,0.656,148,0.557,149,0.63,150,0.534,151,0.63,152,0.656,200,0.953,201,1.53,206,1.706,207,1.549,208,2.418,210,2.091,212,1.382,213,3.016,276,2.21,298,1.91,369,1.65,382,4.251,383,3.889,385,2.891,386,3.889,388,3.488,394,2.891,395,2.828,397,2.891,399,2.676,400,2.344,401,2.676,402,2.891,406,1.549,411,1.768,423,1.91,425,1.91,426,1.91,427,1.768,428,3.16,430,1.65,431,1.91,432,1.91,433,1.91,434,1.91,435,1.91,444,1.91,453,3.16,471,2.497,503,3.679,529,2.891,530,2.891,531,2.891,532,2.891,588,2.088,971,2.326,972,4.067,973,4.067,974,5.472,975,4.907,976,3.889,977,4.067,978,2.687,979,2.687,980,2.687,981,2.687,982,2.687,983,2.687,984,2.687,985,2.687,986,2.687,987,2.687,988,2.687,989,4.067,990,4.067,991,4.067,992,4.067]],["title/injectables/RacesService.html",[0,1.018,976,2.734]],["body/injectables/RacesService.html",[0,1.726,2,0.158,3,0.122,4,0.102,6,0.337,7,0.939,12,0.757,13,0.664,16,1.103,17,0.016,21,1.376,22,0.598,23,0.488,24,1.167,31,0.443,32,0.361,36,2.1,37,2,38,0.162,39,0.291,71,0.013,72,0.012,360,2.327,406,3.385,417,2,429,2.327,430,2.779,441,4.539,476,4.563,477,3.218,478,3.976,480,4.174,481,4.563,485,2.978,486,2.978,487,3.218,488,3.517,490,4.563,491,3.918,492,4.174,503,3.543,505,4.539,976,4.174,993,3.918,994,4.526,995,4.526,996,4.526,997,3.517,998,4.526,999,4.526,1000,4.526,1001,4.526,1002,5.873,1003,5.873,1004,4.526]],["title/components/RadarChartComponent.html",[73,0.12,135,0.797]],["body/components/RadarChartComponent.html",[2,0.098,3,0.098,4,0.082,6,0.272,7,0.813,12,0.978,13,0.518,16,0.584,17,0.015,18,0.929,22,0.596,27,1.192,31,0.234,32,0.291,38,0.13,39,0.234,71,0.01,72,0.01,73,0.208,74,0.757,75,0.892,76,0.892,77,0.892,79,0.666,80,1.876,81,1.873,82,1.241,84,1.241,91,0.757,92,1.241,93,0.968,94,1.544,95,0.892,96,0.892,97,0.757,98,0.892,99,1.723,100,0.757,101,0.892,102,0.757,103,0.757,104,0.892,105,0.757,106,0.892,107,0.757,108,0.892,109,0.757,110,0.892,111,0.757,112,0.892,113,0.696,114,0.892,115,0.757,116,0.856,117,0.892,118,0.757,119,0.892,120,0.757,121,0.856,122,0.696,123,0.892,124,0.757,125,0.892,126,0.757,127,0.892,128,0.757,129,0.892,130,0.757,131,0.892,132,0.822,133,0.757,134,0.892,135,1.31,136,1.785,137,0.696,138,0.892,139,0.757,140,0.856,141,0.892,142,0.757,143,0.892,144,0.757,145,0.892,146,0.757,147,0.892,148,0.757,149,0.856,150,0.726,151,0.856,152,0.892,184,2.105,185,3.084,186,2.93,187,2.93,194,2.243,200,1.192,201,1.823,206,1.971,934,4.543,964,3.162,965,3.95,1005,5.061]],["title/components/RegisterComponent.html",[73,0.12,137,0.732]],["body/components/RegisterComponent.html",[2,0.096,3,0.096,4,0.08,6,0.265,7,0.799,9,3.288,12,0.965,13,0.509,16,0.57,17,0.015,18,0.906,22,0.588,27,1.171,31,0.229,32,0.284,38,0.127,39,0.229,71,0.01,72,0.01,73,0.206,74,0.738,75,0.87,76,0.87,77,0.87,79,0.65,80,1.872,81,1.869,82,1.22,84,1.22,91,0.738,92,1.22,93,0.952,94,1.527,95,0.87,96,0.87,97,0.738,98,0.87,99,1.712,100,0.738,101,0.87,102,0.738,103,0.738,104,0.87,105,0.738,106,0.87,107,0.738,108,0.87,109,0.738,110,0.87,111,0.738,112,0.87,113,0.679,114,0.87,115,0.738,116,1.353,117,0.87,118,0.738,119,0.87,120,0.738,121,0.835,122,0.679,123,0.87,124,0.738,125,0.87,126,0.738,127,0.87,128,0.738,129,0.87,130,0.738,131,0.87,132,0.802,133,0.738,134,0.87,135,0.738,136,0.87,137,1.191,138,0.87,139,0.738,140,0.835,141,0.87,142,0.738,143,0.87,144,0.738,145,0.87,146,0.738,147,0.87,148,0.738,149,0.835,150,0.708,151,0.835,152,0.87,200,1.171,201,1.799,206,1.95,462,4.86,621,4.86,623,3.288,624,3.883,627,5.91,778,5.305,854,4.326,1006,3.085,1007,4.997,1008,4.997,1009,3.564,1010,3.564,1011,4.326]],["title/injectables/RequestService.html",[0,1.018,478,2.216]],["body/injectables/RequestService.html",[0,1.596,2,0.104,3,0.104,4,0.087,6,0.288,7,0.845,12,0.647,13,0.713,16,1.146,17,0.016,21,1.518,22,0.66,23,0.772,24,1.287,25,3.52,31,0.435,32,0.308,36,1.794,37,1.709,38,0.138,39,0.248,71,0.01,72,0.01,86,1.05,87,1.598,88,1.791,89,1.582,220,1.31,231,4.682,360,1.988,417,1.709,447,2.719,478,3.048,485,2.545,486,2.545,714,4.577,957,4.577,1012,3.347,1013,6.478,1014,6.478,1015,5.288,1016,5.288,1017,5.288,1018,3.867,1019,6.478,1020,3.867,1021,5.288,1022,5.288,1023,3.867,1024,3.867,1025,6.026,1026,5.288,1027,3.867,1028,3.867,1029,5.288,1030,3.867,1031,5.288,1032,4.682,1033,3.867,1034,4.577,1035,6.026,1036,5.288,1037,3.867,1038,3.867,1039,3.347,1040,3.867,1041,3.867,1042,3.867,1043,3.867,1044,3.867,1045,3.867,1046,3.867,1047,3.867]],["title/pipes/RoundPipe.html",[220,1.303,944,2.53]],["body/pipes/RoundPipe.html",[2,0.139,3,0.139,4,0.117,7,0.827,13,0.527,16,1.022,17,0.016,21,1.213,22,0.707,23,0.557,24,1.028,31,0.332,32,0.412,38,0.185,39,0.332,71,0.013,72,0.013,79,0.944,89,1.549,200,1.213,220,2.35,223,3.178,226,3.926,445,2.401,641,4.474,649,3.679,944,4.207,968,5.533,1048,4.48,1049,5.533,1050,7.245,1051,5.176,1052,6.937,1053,5.176,1054,5.176]],["title/components/ScrollTopComponent.html",[73,0.12,139,0.797]],["body/components/ScrollTopComponent.html",[2,0.099,3,0.099,4,0.083,6,0.274,7,0.818,12,0.983,13,0.521,16,0.59,17,0.015,18,0.938,22,0.599,27,1.2,31,0.237,32,0.294,38,0.132,39,0.237,71,0.01,72,0.01,73,0.208,74,0.764,75,0.9,76,0.9,77,0.9,79,0.673,80,1.877,81,1.874,82,1.249,84,1.249,91,0.764,92,1.249,93,0.975,94,1.55,95,0.9,96,0.9,97,0.764,98,0.9,99,1.728,100,0.764,101,0.9,102,0.764,103,0.764,104,0.9,105,0.764,106,0.9,107,0.764,108,0.9,109,0.764,110,0.9,111,0.764,112,0.9,113,0.702,114,0.9,115,0.764,116,0.864,117,0.9,118,0.764,119,0.9,120,0.764,121,0.864,122,0.702,123,0.9,124,0.764,125,0.9,126,0.764,127,0.9,128,0.764,129,0.9,130,0.764,131,0.9,132,0.83,133,0.764,134,0.9,135,0.764,136,0.9,137,0.702,138,0.9,139,1.315,140,1.659,141,0.9,142,0.764,143,0.9,144,0.764,145,0.9,146,0.764,147,0.9,148,0.764,149,0.864,150,0.733,151,0.864,152,0.9,200,1.2,201,1.832,206,1.979,1055,5.087,1056,4.567,1057,3.192,1058,4.43,1059,5.118,1060,5.118,1061,3.688,1062,3.688]],["title/interfaces/Season.html",[370,1.104,429,1.977]],["body/interfaces/Season.html",[2,0.153,3,0.153,4,0.129,6,0.424,17,0.015,23,0.73,38,0.204,71,0.013,72,0.013,86,1.347,87,1.675,370,1.947,376,3.849,429,3.988,1063,4.934]],["title/components/SeasonsComponent.html",[73,0.12,142,0.797]],["body/components/SeasonsComponent.html",[1,3.045,2,0.076,3,0.076,4,0.114,6,0.21,7,0.674,12,0.705,13,0.641,16,0.807,17,0.016,18,1.284,21,0.988,22,0.611,23,0.544,24,0.837,25,2.744,27,0.988,31,0.385,32,0.225,38,0.101,39,0.181,63,2.463,71,0.008,72,0.008,73,0.187,74,0.584,75,0.688,76,0.688,77,0.688,79,0.514,80,1.835,81,1.831,82,1.029,84,1.029,86,0.837,88,1.428,89,1.261,91,0.584,92,1.029,93,0.803,94,1.368,95,0.688,96,0.688,97,0.584,98,0.688,99,1.593,100,0.584,101,0.688,102,0.584,103,0.584,104,0.688,105,0.584,106,0.688,107,0.584,108,0.688,109,0.584,110,0.688,111,0.584,112,0.688,113,0.537,114,0.688,115,0.584,116,0.661,117,0.688,118,0.584,119,0.688,120,0.584,121,0.661,122,0.537,123,0.688,124,0.584,125,0.688,126,0.584,127,0.688,128,0.584,129,0.688,130,0.584,131,0.688,132,0.634,133,0.584,134,0.688,135,0.584,136,0.688,137,0.537,138,0.688,139,0.584,140,0.661,141,0.688,142,1.161,143,0.688,144,0.584,145,0.688,146,0.584,147,0.688,148,0.584,149,0.661,150,0.56,151,0.661,152,0.688,200,0.988,201,1.574,206,1.747,208,2.477,210,2.596,212,1.449,213,3.071,276,2.291,383,3.984,385,2.996,386,3.984,388,3.589,394,2.996,395,2.91,397,2.996,399,2.774,400,2.429,401,2.774,402,2.996,411,1.854,423,2.003,425,2.003,426,2.003,427,1.854,429,3.733,430,2.588,431,2.003,432,2.003,433,2.003,434,2.003,435,2.003,437,2.19,444,2.003,471,2.588,529,2.996,530,2.996,531,2.996,532,2.996,588,2.19,1064,2.439,1065,4.215,1066,4.215,1067,2.818,1068,3.984,1069,4.215,1070,4.215,1071,2.818,1072,2.818,1073,2.818,1074,2.818,1075,2.818,1076,2.818,1077,2.818,1078,2.818,1079,2.818,1080,4.215]],["title/injectables/SeasonsService.html",[0,1.018,1068,2.734]],["body/injectables/SeasonsService.html",[0,1.791,2,0.132,3,0.132,4,0.11,6,0.364,7,0.987,12,0.819,13,0.689,16,1.136,17,0.016,21,1.148,22,0.499,23,0.527,24,0.973,31,0.456,32,0.39,36,2.272,37,2.164,38,0.175,39,0.314,71,0.012,72,0.012,360,2.518,417,2.164,430,4.362,441,4.674,477,3.481,478,4.094,480,4.39,485,3.223,486,3.223,487,3.481,490,4.799,492,4.39,1068,4.39,1081,4.239,1082,4.898,1083,4.898,1084,4.898,1085,3.805,1086,4.898,1087,4.898,1088,6.176,1089,4.898]],["title/components/SettingsComponent.html",[73,0.12,144,0.797]],["body/components/SettingsComponent.html",[2,0.098,3,0.098,4,0.082,6,0.271,7,0.811,12,0.608,13,0.516,16,0.582,17,0.015,18,0.925,21,0.853,22,0.643,23,0.392,24,0.723,27,1.188,31,0.325,32,0.29,38,0.13,39,0.234,71,0.01,72,0.01,73,0.207,74,0.754,75,0.888,76,0.888,77,0.888,79,0.664,80,1.875,81,1.872,82,1.238,84,1.238,91,0.754,92,1.238,93,0.966,94,1.541,95,0.888,96,0.888,97,0.754,98,0.888,99,1.722,100,0.754,101,0.888,102,0.754,103,0.754,104,0.888,105,0.754,106,0.888,107,0.754,108,0.888,109,0.754,110,0.888,111,0.754,112,0.888,113,0.693,114,0.888,115,0.754,116,0.853,117,0.888,118,0.754,119,0.888,120,0.754,121,0.853,122,0.693,123,0.888,124,0.754,125,0.888,126,0.754,127,0.888,128,0.754,129,0.888,130,0.754,131,0.888,132,0.819,133,0.754,134,0.888,135,0.754,136,0.888,137,0.693,138,0.888,139,0.754,140,0.853,141,0.888,142,0.754,143,0.888,144,1.307,145,0.888,146,0.754,147,0.888,148,0.754,149,0.853,150,0.723,151,0.853,152,0.888,200,1.188,201,1.819,206,1.967,207,2.097,208,2.789,210,2.607,212,1.871,360,1.871,965,3.94,1090,3.15,1091,5.463,1092,5.07,1093,5.07,1094,3.639,1095,3.639,1096,3.639]],["title/injectables/SettingsService.html",[0,1.018,1097,2.988]],["body/injectables/SettingsService.html",[0,1.928,2,0.155,3,0.155,4,0.13,12,1.217,13,0.589,17,0.016,31,0.371,32,0.461,36,2.684,37,2.557,38,0.207,39,0.371,71,0.013,72,0.013,1097,5.314,1098,5.009,1099,5.787]],["title/modules/SharedModule.html",[153,1.784,903,2.53]],["body/modules/SharedModule.html",[2,0.131,3,0.131,4,0.11,17,0.016,31,0.504,32,0.388,38,0.22,39,0.313,71,0.012,72,0.012,73,0.192,100,1.275,111,1.275,118,1.275,124,1.275,139,1.275,140,1.142,146,1.275,153,2.26,156,4.087,172,4.376,220,2.085,221,4.051,445,3.131,518,2.992,862,5.329,903,4.051,1056,3.786,1100,3.786,1101,4.873,1102,4.873,1103,4.873,1104,4.873,1105,4.873,1106,4.873,1107,6.156,1108,4.217,1109,4.873]],["title/injectables/SharedService.html",[0,1.018,208,1.699]],["body/injectables/SharedService.html",[0,1.819,2,0.136,3,0.136,4,0.114,6,0.377,7,1.009,12,1.149,13,0.7,16,0.81,17,0.016,18,1.288,21,1.187,22,0.516,23,0.679,24,1.006,31,0.325,32,0.404,36,2.35,37,2.239,38,0.181,39,0.325,71,0.012,72,0.012,86,1.253,87,1.628,205,6.223,208,2.788,213,3.351,216,3.334,447,2.605,1110,4.385,1111,6.309,1112,6.309,1113,6.309,1114,5.066,1115,6.309,1116,6.87,1117,4.385,1118,5.066]],["title/components/SidebarComponent.html",[73,0.12,146,0.797]],["body/components/SidebarComponent.html",[2,0.081,3,0.081,4,0.068,6,0.225,7,0.71,12,0.742,13,0.658,16,0.71,17,0.016,18,1.129,21,0.709,22,0.591,23,0.625,24,0.601,27,1.041,31,0.285,32,0.241,38,0.108,39,0.194,71,0.009,72,0.009,73,0.193,74,0.626,75,0.738,76,0.738,77,0.738,79,0.552,80,1.847,81,1.843,82,1.084,84,1.084,86,0.882,87,0.959,88,1.024,89,0.904,91,0.626,92,1.084,93,0.846,94,1.416,95,0.738,96,0.738,97,0.626,98,0.738,99,1.63,100,0.626,101,0.738,102,0.626,103,0.626,104,0.738,105,0.626,106,0.738,107,0.626,108,0.738,109,0.626,110,0.738,111,0.626,112,0.738,113,0.576,114,0.738,115,0.626,116,0.709,117,0.738,118,0.626,119,0.738,120,0.626,121,0.709,122,0.576,123,0.738,124,0.626,125,0.738,126,0.626,127,0.738,128,0.626,129,0.738,130,0.626,131,0.738,132,0.68,133,0.626,134,0.738,135,0.626,136,0.738,137,0.576,138,0.738,139,0.626,140,0.709,141,0.738,142,0.626,143,0.738,144,0.626,145,0.738,146,1.201,147,0.738,148,0.626,149,0.709,150,0.601,151,0.709,152,0.738,231,4.089,369,1.856,395,3.033,445,1.402,469,3.741,649,2.149,684,4.506,1058,5.02,1119,2.617,1120,4.44,1121,4.44,1122,4.44,1123,6.178,1124,5.8,1125,5.8,1126,5.8,1127,6.675,1128,3.023,1129,4.591,1130,4.44,1131,3.023,1132,3.023,1133,3.023,1134,5.263,1135,3.023,1136,3.023,1137,4.44,1138,5.8,1139,4.44,1140,4.44,1141,3.023,1142,4.44,1143,3.023,1144,4.44,1145,4.44,1146,5.8,1147,4.44]],["title/injectables/SidebarService.html",[0,1.018,1129,2.734]],["body/injectables/SidebarService.html",[0,1.602,2,0.105,3,0.105,4,0.088,6,0.29,13,0.397,17,0.016,23,0.42,29,4.454,31,0.25,32,0.311,36,1.808,37,1.723,38,0.139,39,0.25,71,0.01,72,0.01,86,1.056,88,1.321,89,1.166,121,1.246,185,3.424,218,3.78,371,3.532,406,3.065,429,3.342,503,3.532,558,3.991,651,4.602,905,6.688,1091,5.626,1129,3.78,1148,3.374,1149,6.5,1150,7.727,1151,8.03,1152,5.317,1153,5.317,1154,5.317,1155,5.317,1156,5.317,1157,4.131,1158,5.317,1159,5.317,1160,3.899]],["title/components/SupportComponent.html",[73,0.12,148,0.797]],["body/components/SupportComponent.html",[2,0.086,3,0.086,4,0.073,6,0.239,7,0.743,12,0.538,13,0.473,16,0.514,17,0.015,18,0.818,21,0.754,22,0.608,23,0.346,24,0.639,27,1.089,31,0.298,32,0.256,38,0.115,39,0.206,71,0.009,72,0.009,73,0.198,74,0.666,75,0.785,76,0.785,77,0.785,79,0.587,80,1.857,81,1.853,82,1.134,84,1.134,91,0.666,92,1.134,93,0.885,94,1.458,95,0.785,96,0.785,97,0.666,98,0.785,99,1.661,100,0.666,101,0.785,102,0.666,103,0.666,104,0.785,105,0.666,106,0.785,107,0.666,108,0.785,109,0.666,110,0.785,111,0.666,112,0.785,113,0.612,114,0.785,115,0.666,116,0.754,117,0.785,118,0.666,119,0.785,120,0.666,121,0.754,122,0.612,123,0.785,124,0.666,125,0.785,126,0.666,127,0.785,128,0.666,129,0.785,130,0.666,131,0.785,132,0.724,133,0.666,134,0.785,135,0.666,136,0.785,137,0.612,138,0.785,139,0.666,140,0.754,141,0.785,142,0.666,143,0.785,144,0.666,145,0.785,146,0.666,147,0.785,148,1.237,149,1.278,150,0.639,151,0.754,152,0.785,200,1.089,201,1.7,206,1.861,207,1.854,208,2.639,210,2.388,212,1.654,360,1.654,623,3.057,1161,2.784,1162,4.645,1163,4.645,1164,3.216,1165,3.216,1166,3.216,1167,4.645,1168,4.645,1169,4.645,1170,4.645,1171,4.645,1172,4.645,1173,4.645,1174,4.645,1175,4.645,1176,4.645,1177,4.645,1178,4.645,1179,4.645,1180,4.645,1181,4.645,1182,4.645,1183,4.645,1184,4.645,1185,4.645,1186,4.645,1187,4.645,1188,4.645,1189,4.645,1190,4.645,1191,4.645,1192,4.645,1193,4.645,1194,6.6,1195,4.645,1196,4.645,1197,4.645,1198,4.645,1199,4.645,1200,4.645]],["title/interfaces/User.html",[370,1.104,512,2.361]],["body/interfaces/User.html",[2,0.135,3,0.135,4,0.114,6,0.375,17,0.016,22,0.731,23,0.823,71,0.012,72,0.012,86,1.249,87,1.741,370,1.806,512,3.861,623,4.722,641,3.95,849,6.212,850,6.212,1011,6.212,1201,4.362,1202,7.177,1203,7.177]],["title/pipes/WikipediaUrlMobilePipe.html",[220,1.303,946,2.53]],["body/pipes/WikipediaUrlMobilePipe.html",[2,0.146,3,0.146,4,0.122,7,0.867,13,0.553,16,1.052,17,0.016,21,1.272,22,0.721,23,0.584,24,1.078,31,0.348,32,0.432,38,0.194,39,0.348,71,0.013,72,0.013,79,0.99,89,1.623,200,1.272,220,2.399,223,3.332,226,4.04,376,3.383,946,4.33,1049,5.695,1204,5.695,1205,4.696,1206,6.58,1207,5.426,1208,5.426,1209,5.426]],["title/coverage.html",[1210,4.559]],["body/coverage.html",[0,1.794,1,1.271,4,0.053,5,2.024,9,1.539,12,0.391,17,0.016,23,0.252,39,0.15,71,0.007,72,0.007,73,0.24,74,0.484,78,2.024,93,0.696,97,0.484,100,0.484,102,0.484,103,0.484,105,0.484,107,0.484,109,0.484,111,0.484,113,0.445,115,0.484,118,0.484,120,0.484,122,0.445,124,0.484,126,0.484,128,0.484,130,0.484,132,0.822,133,0.484,135,0.484,137,0.445,139,0.484,142,0.484,144,0.484,146,0.484,148,0.484,150,0.465,156,2.107,179,1.817,182,2.024,183,1.817,184,3.371,199,2.024,208,1.034,220,2.142,221,1.539,222,2.024,230,2.024,303,1.817,330,2.024,370,1.909,371,1.271,372,2.024,375,1.141,376,1.203,378,2.024,390,1.663,414,1.436,416,1.539,417,1.615,419,1.436,422,1.436,429,1.203,447,1.203,475,2.024,478,1.348,484,1.817,495,2.024,497,2.024,500,1.817,501,2.024,503,1.271,509,2.024,512,1.436,515,1.436,533,2.024,534,2.024,553,2.024,554,1.817,558,1.436,559,2.024,564,2.024,570,1.663,595,2.024,599,1.817,606,2.024,615,2.024,629,1.271,630,2.024,631,1.817,632,2.024,637,1.271,649,5.734,655,2.84,656,2.84,659,1.817,681,1.663,684,1.817,713,2.024,744,2.024,796,2.024,797,1.817,798,2.024,799,2.024,823,2.024,826,2.024,827,2.024,831,2.84,832,2.024,837,2.024,858,1.817,865,2.024,866,1.663,875,2.024,883,2.024,891,2.024,904,3.952,906,1.817,916,1.817,930,1.817,932,1.817,934,1.817,944,1.539,946,1.539,962,2.024,963,2.024,966,2.024,971,2.024,976,1.663,993,2.024,997,1.817,1005,2.024,1006,2.024,1012,2.024,1032,1.817,1048,2.024,1055,2.024,1056,1.817,1057,2.024,1063,2.024,1064,2.024,1068,1.663,1081,2.024,1085,1.817,1090,2.024,1097,1.817,1098,2.024,1100,3.495,1110,2.024,1119,2.024,1129,1.663,1148,2.024,1161,2.024,1201,2.024,1204,2.024,1205,2.024,1210,2.024,1211,2.339,1212,2.339,1213,5.086,1214,2.024,1215,5.865,1216,7.677,1217,6.111,1218,3.655,1219,2.339,1220,6.647,1221,5.626,1222,2.024,1223,2.024,1224,2.024,1225,2.024,1226,6.5,1227,5.849,1228,5.086,1229,2.339,1230,2.339,1231,3.655,1232,2.339,1233,2.339,1234,2.339,1235,2.024,1236,2.339,1237,2.339,1238,2.339,1239,2.024,1240,2.024,1241,2.339,1242,2.024,1243,3.164,1244,2.024,1245,3.164,1246,2.024,1247,2.024,1248,2.339]],["title/dependencies.html",[155,2.843,1249,3.202]],["body/dependencies.html",[17,0.016,32,0.398,34,3.842,71,0.012,72,0.012,155,3.07,170,4.862,171,4.448,174,3.885,175,3.885,185,2.439,518,3.07,637,3.4,864,3.885,909,4.328,912,4.328,914,4.328,915,4.328,916,3.885,918,4.328,920,4.328,921,5.416,1039,4.328,1108,4.328,1250,6.829,1251,6.257,1252,5,1253,7.778,1254,5,1255,5,1256,5,1257,5,1258,5,1259,5,1260,5,1261,6.257,1262,5,1263,5,1264,5,1265,5,1266,5,1267,5,1268,5,1269,5]],["title/miscellaneous/enumerations.html",[1270,2.276,1271,4.008]],["body/miscellaneous/enumerations.html",[2,0.183,6,0.428,17,0.015,44,5.898,71,0.013,72,0.013,89,2.293,546,5.898,735,5.898,1270,4.089,1271,4.979,1272,6.815,1273,5.752,1274,6.815,1275,5.752,1276,6.815]],["title/index.html",[6,0.238,896,2.772,1277,3.202]],["body/index.html",[3,0.13,4,0.109,17,0.012,22,0.493,49,3.437,71,0.012,72,0.012,73,0.21,81,1.133,167,3.182,308,5.225,447,2.486,556,6.12,579,4.76,749,4.185,756,6.12,1117,4.185,1157,3.757,1278,4.836,1279,5.303,1280,6.725,1281,6.725,1282,4.836,1283,4.836,1284,7.57,1285,7.57,1286,4.836,1287,4.836,1288,4.836,1289,4.836,1290,4.836,1291,4.836,1292,4.836,1293,4.836,1294,4.836,1295,7.295,1296,4.836,1297,4.836,1298,4.836,1299,4.836,1300,4.836,1301,4.185,1302,6.127,1303,7.295,1304,6.127,1305,6.127,1306,4.836,1307,4.836,1308,4.836,1309,4.836,1310,6.725,1311,4.185,1312,4.836,1313,4.836]],["title/modules.html",[153,2.443]],["body/modules.html",[17,0.014,71,0.014,72,0.014,149,1.722,153,2.743,154,4.203,163,3.89,164,3.89,171,5.221,903,3.89,1314,7.345,1315,7.575,1316,5.912,1317,5.912]],["title/overview.html",[1318,4.559]],["body/overview.html",[0,1.21,17,0.016,38,0.163,39,0.293,71,0.012,72,0.012,73,0.143,74,1.548,91,0.947,93,0.87,113,1.457,122,1.457,137,1.457,153,2.741,154,5.44,155,2.806,156,2.634,157,3.248,158,3.248,159,3.955,160,3.955,161,3.955,162,3.955,163,5.144,164,4.983,165,3.628,166,3.007,167,3.007,220,1.548,370,1.312,469,4.2,659,3.551,784,3.955,855,3.955,856,3.955,857,3.955,900,3.955,901,3.955,903,4.309,1318,3.955,1319,4.57,1320,4.57,1321,4.57]],["title/miscellaneous/variables.html",[1215,3.598,1270,2.276]],["body/miscellaneous/variables.html",[6,0.2,17,0.016,23,0.814,63,2.392,71,0.008,72,0.008,73,0.219,87,1.181,88,2.593,89,2.29,93,1.041,97,0.556,100,0.556,102,0.556,103,0.556,105,0.556,107,0.556,109,0.556,111,0.556,113,0.511,115,0.556,116,1.282,118,0.556,120,0.556,122,0.511,124,0.556,126,0.556,128,0.556,130,0.556,133,0.556,135,0.556,137,0.511,139,0.556,142,0.556,144,0.556,146,0.556,148,0.556,150,0.533,156,3.562,179,3.809,220,2.239,221,1.766,276,1.458,371,2.208,376,2.089,414,1.648,416,1.766,417,2.167,419,1.648,422,1.648,484,3.809,505,3.598,555,3.157,558,3.01,599,3.809,681,3.485,858,2.085,904,2.085,906,3.809,944,1.766,946,1.766,997,3.809,1032,3.809,1034,6.474,1085,3.809,1100,2.085,1157,3.157,1214,2.323,1215,2.085,1221,2.323,1222,4.243,1223,4.243,1224,4.243,1225,4.243,1235,2.323,1239,2.323,1240,3.517,1242,2.323,1243,5.349,1244,2.323,1245,2.323,1246,4.243,1247,4.243,1270,1.908,1279,2.323,1301,3.517,1311,2.323,1322,2.684,1323,6.768,1324,5.468,1325,2.684,1326,4.903,1327,4.063,1328,2.684,1329,2.684,1330,2.684,1331,2.684,1332,2.684,1333,2.684,1334,4.903,1335,2.684,1336,2.684,1337,2.684,1338,2.684,1339,2.684,1340,4.063,1341,2.684,1342,2.684,1343,2.684,1344,2.684,1345,2.684,1346,2.684,1347,2.684,1348,2.684,1349,2.684,1350,2.684,1351,2.684,1352,2.684,1353,2.684,1354,2.684,1355,2.684,1356,2.684,1357,2.684,1358,2.684,1359,2.684,1360,2.684,1361,4.063,1362,2.684,1363,4.063,1364,6.419,1365,2.684,1366,4.063,1367,2.684,1368,2.684,1369,2.684,1370,2.684,1371,2.684,1372,2.684]]],"invertedIndex":[["",{"_index":17,"title":{},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"modules/AppModule.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"interfaces/Circuit.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"interfaces/Confirm.html":{},"interfaces/Constructor.html":{},"injectables/CurrentService.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"interfaces/Driver.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"injectables/LocalStorageService.html":{},"interfaces/Location.html":{},"pipes/LocationTextPipe.html":{},"interfaces/Login.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"interfaces/Race.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"interfaces/Season.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SettingsService.html":{},"modules/SharedModule.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"components/SupportComponent.html":{},"interfaces/User.html":{},"pipes/WikipediaUrlMobilePipe.html":{},"coverage.html":{},"dependencies.html":{},"miscellaneous/enumerations.html":{},"index.html":{},"modules.html":{},"overview.html":{},"miscellaneous/variables.html":{}}}],["0",{"_index":649,"title":{},"body":{"components/GoogleMapsComponent.html":{},"pipes/RoundPipe.html":{},"components/SidebarComponent.html":{},"coverage.html":{}}}],["0.8.26",{"_index":1269,"title":{},"body":{"dependencies.html":{}}}],["0/1",{"_index":1216,"title":{},"body":{"coverage.html":{}}}],["0/2",{"_index":1213,"title":{},"body":{"coverage.html":{}}}],["0/3",{"_index":1220,"title":{},"body":{"coverage.html":{}}}],["0/4",{"_index":1226,"title":{},"body":{"coverage.html":{}}}],["0/5",{"_index":1227,"title":{},"body":{"coverage.html":{}}}],["0/6",{"_index":1231,"title":{},"body":{"coverage.html":{}}}],["0/7",{"_index":1217,"title":{},"body":{"coverage.html":{}}}],["0/8",{"_index":1228,"title":{},"body":{"coverage.html":{}}}],["007bff",{"_index":342,"title":{},"body":{"components/ChartComponent.html":{}}}],["1",{"_index":469,"title":{},"body":{"components/CircuitsComponent.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/SidebarComponent.html":{},"overview.html":{}}}],["1.0.0",{"_index":1250,"title":{},"body":{"dependencies.html":{}}}],["1.0.3",{"_index":1263,"title":{},"body":{"dependencies.html":{}}}],["1.6.0",{"_index":1264,"title":{},"body":{"dependencies.html":{}}}],["1/1",{"_index":1241,"title":{},"body":{"coverage.html":{}}}],["1/10",{"_index":1233,"title":{},"body":{"coverage.html":{}}}],["1/19",{"_index":1232,"title":{},"body":{"coverage.html":{}}}],["1/5",{"_index":1219,"title":{},"body":{"coverage.html":{}}}],["1/7",{"_index":1238,"title":{},"body":{"coverage.html":{}}}],["1/8",{"_index":1236,"title":{},"body":{"coverage.html":{}}}],["10",{"_index":659,"title":{},"body":{"pipes/GoogleMapsUrlPipe.html":{},"coverage.html":{},"overview.html":{}}}],["100",{"_index":330,"title":{},"body":{"components/ChartComponent.html":{},"coverage.html":{}}}],["1000",{"_index":451,"title":{},"body":{"components/CircuitsComponent.html":{},"pipes/GoogleStaticMapUrlPipe.html":{}}}],["11",{"_index":1321,"title":{},"body":{"overview.html":{}}}],["11.25",{"_index":349,"title":{},"body":{"components/ChartComponent.html":{}}}],["11:21",{"_index":747,"title":{},"body":{"components/HeaderComponent.html":{}}}],["11:59",{"_index":473,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DriversComponent.html":{}}}],["12",{"_index":744,"title":{},"body":{"components/HeaderComponent.html":{},"coverage.html":{}}}],["12.21",{"_index":347,"title":{},"body":{"components/ChartComponent.html":{}}}],["13",{"_index":711,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["14",{"_index":1237,"title":{},"body":{"coverage.html":{}}}],["15",{"_index":306,"title":{},"body":{"components/ChartComponent.html":{}}}],["15.58",{"_index":348,"title":{},"body":{"components/ChartComponent.html":{}}}],["16",{"_index":710,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["18",{"_index":327,"title":{},"body":{"components/ChartComponent.html":{}}}],["19",{"_index":260,"title":{},"body":{"components/ChartComponent.html":{}}}],["2",{"_index":291,"title":{},"body":{"components/ChartComponent.html":{}}}],["2.5.4",{"_index":1262,"title":{},"body":{"dependencies.html":{}}}],["2.7.2",{"_index":1259,"title":{},"body":{"dependencies.html":{}}}],["2/10",{"_index":1234,"title":{},"body":{"coverage.html":{}}}],["20",{"_index":1218,"title":{},"body":{"coverage.html":{}}}],["2006",{"_index":266,"title":{},"body":{"components/ChartComponent.html":{}}}],["2007",{"_index":267,"title":{},"body":{"components/ChartComponent.html":{}}}],["2008",{"_index":268,"title":{},"body":{"components/ChartComponent.html":{}}}],["2009",{"_index":269,"title":{},"body":{"components/ChartComponent.html":{}}}],["2010",{"_index":270,"title":{},"body":{"components/ChartComponent.html":{}}}],["2011",{"_index":271,"title":{},"body":{"components/ChartComponent.html":{}}}],["2012",{"_index":272,"title":{},"body":{"components/ChartComponent.html":{}}}],["2016",{"_index":326,"title":{},"body":{"components/ChartComponent.html":{}}}],["2017",{"_index":295,"title":{},"body":{"components/ChartComponent.html":{}}}],["2018",{"_index":298,"title":{},"body":{"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{}}}],["23.022505",{"_index":642,"title":{},"body":{"components/GoogleMapsComponent.html":{}}}],["24",{"_index":288,"title":{},"body":{"components/ChartComponent.html":{}}}],["26",{"_index":1320,"title":{},"body":{"overview.html":{}}}],["27",{"_index":262,"title":{},"body":{"components/ChartComponent.html":{}}}],["28",{"_index":258,"title":{},"body":{"components/ChartComponent.html":{}}}],["28a745",{"_index":345,"title":{},"body":{"components/ChartComponent.html":{}}}],["3",{"_index":530,"title":{},"body":{"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["3/7",{"_index":1230,"title":{},"body":{"coverage.html":{}}}],["30",{"_index":289,"title":{},"body":{"components/ChartComponent.html":{}}}],["300",{"_index":452,"title":{},"body":{"components/CircuitsComponent.html":{},"pipes/GoogleStaticMapUrlPipe.html":{}}}],["3085d6",{"_index":65,"title":{},"body":{"injectables/AlertService.html":{},"components/HeaderComponent.html":{}}}],["34",{"_index":1192,"title":{},"body":{"components/SupportComponent.html":{}}}],["35",{"_index":297,"title":{},"body":{"components/ChartComponent.html":{}}}],["39",{"_index":351,"title":{},"body":{"components/ChartComponent.html":{}}}],["3:00",{"_index":767,"title":{},"body":{"components/HeaderComponent.html":{}}}],["4",{"_index":1319,"title":{},"body":{"overview.html":{}}}],["4.0.0",{"_index":1257,"title":{},"body":{"dependencies.html":{}}}],["40",{"_index":256,"title":{},"body":{"components/ChartComponent.html":{}}}],["42",{"_index":1229,"title":{},"body":{"coverage.html":{}}}],["44",{"_index":290,"title":{},"body":{"components/ChartComponent.html":{}}}],["48",{"_index":259,"title":{},"body":{"components/ChartComponent.html":{}}}],["4:00",{"_index":769,"title":{},"body":{"components/HeaderComponent.html":{}}}],["5",{"_index":303,"title":{},"body":{"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"coverage.html":{}}}],["5.1.0",{"_index":1265,"title":{},"body":{"dependencies.html":{}}}],["55",{"_index":255,"title":{},"body":{"components/ChartComponent.html":{}}}],["56",{"_index":254,"title":{},"body":{"components/ChartComponent.html":{}}}],["59",{"_index":251,"title":{},"body":{"components/ChartComponent.html":{}}}],["6",{"_index":784,"title":{},"body":{"components/HeaderComponent.html":{},"overview.html":{}}}],["6.0.0",{"_index":1266,"title":{},"body":{"dependencies.html":{}}}],["6.0.3",{"_index":1253,"title":{},"body":{"dependencies.html":{}}}],["6.0.8",{"_index":1282,"title":{},"body":{"index.html":{}}}],["65",{"_index":250,"title":{},"body":{"components/ChartComponent.html":{}}}],["66",{"_index":1194,"title":{},"body":{"components/SupportComponent.html":{}}}],["666",{"_index":1193,"title":{},"body":{"components/SupportComponent.html":{}}}],["7.25.3",{"_index":1267,"title":{},"body":{"dependencies.html":{}}}],["72.571362",{"_index":644,"title":{},"body":{"components/GoogleMapsComponent.html":{}}}],["77",{"_index":328,"title":{},"body":{"components/ChartComponent.html":{}}}],["8.32",{"_index":350,"title":{},"body":{"components/ChartComponent.html":{}}}],["80",{"_index":252,"title":{},"body":{"components/ChartComponent.html":{}}}],["81",{"_index":253,"title":{},"body":{"components/ChartComponent.html":{}}}],["85",{"_index":305,"title":{},"body":{"components/ChartComponent.html":{}}}],["86",{"_index":261,"title":{},"body":{"components/ChartComponent.html":{}}}],["9",{"_index":329,"title":{},"body":{"components/ChartComponent.html":{}}}],["90",{"_index":263,"title":{},"body":{"components/ChartComponent.html":{}}}],["95",{"_index":302,"title":{},"body":{"components/ChartComponent.html":{}}}],["_alertservic",{"_index":388,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["_circuitservic",{"_index":389,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["_driversservic",{"_index":569,"title":{},"body":{"components/DriversComponent.html":{}}}],["_errorservic",{"_index":439,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{}}}],["_failure_path",{"_index":833,"title":{},"body":{"interfaces/Login.html":{},"components/LoginComponent.html":{}}}],["_http",{"_index":1021,"title":{},"body":{"injectables/RequestService.html":{}}}],["_password",{"_index":834,"title":{},"body":{"interfaces/Login.html":{},"components/LoginComponent.html":{}}}],["_racesservic",{"_index":975,"title":{},"body":{"components/RacesComponent.html":{}}}],["_seasonservic",{"_index":1070,"title":{},"body":{"components/SeasonsComponent.html":{}}}],["_sidebar",{"_index":1123,"title":{},"body":{"components/SidebarComponent.html":{}}}],["_target_path",{"_index":835,"title":{},"body":{"interfaces/Login.html":{},"components/LoginComponent.html":{}}}],["_usernam",{"_index":836,"title":{},"body":{"interfaces/Login.html":{},"components/LoginComponent.html":{}}}],["account",{"_index":628,"title":{},"body":{"components/ForgotComponent.html":{}}}],["activ",{"_index":1363,"title":{},"body":{"miscellaneous/variables.html":{}}}],["actual_compon",{"_index":152,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["add",{"_index":547,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["add_your_browser_api_key_with_follow_instruct",{"_index":1362,"title":{},"body":{"miscellaneous/variables.html":{}}}],["address",{"_index":624,"title":{},"body":{"components/ForgotComponent.html":{},"components/LoginComponent.html":{},"components/RegisterComponent.html":{}}}],["adipisc",{"_index":1173,"title":{},"body":{"components/SupportComponent.html":{}}}],["admin",{"_index":751,"title":{},"body":{"components/HeaderComponent.html":{}}}],["agm/cor",{"_index":918,"title":{},"body":{"modules/PagesModule.html":{},"dependencies.html":{}}}],["agm/j",{"_index":920,"title":{},"body":{"modules/PagesModule.html":{},"dependencies.html":{}}}],["agmcoremodul",{"_index":917,"title":{},"body":{"modules/PagesModule.html":{}}}],["agmcoremodule.forroot",{"_index":951,"title":{},"body":{"modules/PagesModule.html":{}}}],["agmjsmarkerclusterermodul",{"_index":919,"title":{},"body":{"modules/PagesModule.html":{}}}],["ago",{"_index":532,"title":{},"body":{"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["alert",{"_index":783,"title":{},"body":{"components/HeaderComponent.html":{}}}],["alertservic",{"_index":1,"title":{"injectables/AlertService.html":{}},"body":{"injectables/AlertService.html":{},"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/HeaderComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{},"coverage.html":{}}}],["all_drivers_select",{"_index":1342,"title":{},"body":{"miscellaneous/variables.html":{}}}],["all_histori",{"_index":1334,"title":{},"body":{"miscellaneous/variables.html":{}}}],["all_races_select",{"_index":1352,"title":{},"body":{"miscellaneous/variables.html":{}}}],["all_seasons_url",{"_index":1354,"title":{},"body":{"miscellaneous/variables.html":{}}}],["alt",{"_index":1153,"title":{},"body":{"injectables/SidebarService.html":{}}}],["amet",{"_index":1171,"title":{},"body":{"components/SupportComponent.html":{}}}],["anartz",{"_index":613,"title":{},"body":{"components/FooterComponent.html":{},"components/LoginComponent.html":{}}}],["anartz@compodoc.com",{"_index":848,"title":{},"body":{"components/LoginComponent.html":{}}}],["angular",{"_index":1280,"title":{},"body":{"index.html":{}}}],["angular/anim",{"_index":1252,"title":{},"body":{"dependencies.html":{}}}],["angular/common",{"_index":1108,"title":{},"body":{"modules/SharedModule.html":{},"dependencies.html":{}}}],["angular/common/http",{"_index":1038,"title":{},"body":{"injectables/RequestService.html":{}}}],["angular/compil",{"_index":1254,"title":{},"body":{"dependencies.html":{}}}],["angular/cor",{"_index":32,"title":{},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"modules/AppModule.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"injectables/CurrentService.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"injectables/LocalStorageService.html":{},"pipes/LocationTextPipe.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SettingsService.html":{},"modules/SharedModule.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"components/SupportComponent.html":{},"pipes/WikipediaUrlMobilePipe.html":{},"dependencies.html":{}}}],["angular/form",{"_index":864,"title":{},"body":{"modules/LoginModule.html":{},"modules/PagesModule.html":{},"dependencies.html":{}}}],["angular/http",{"_index":1255,"title":{},"body":{"dependencies.html":{}}}],["angular/platform",{"_index":170,"title":{},"body":{"modules/AppModule.html":{},"modules/PagesModule.html":{},"dependencies.html":{}}}],["angular/rout",{"_index":518,"title":{},"body":{"components/DashboardComponent.html":{},"components/HeaderComponent.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"modules/SharedModule.html":{},"dependencies.html":{}}}],["api",{"_index":1364,"title":{},"body":{"miscellaneous/variables.html":{}}}],["api/user/fail",{"_index":844,"title":{},"body":{"components/LoginComponent.html":{}}}],["api_url",{"_index":1013,"title":{},"body":{"injectables/RequestService.html":{}}}],["apikey",{"_index":952,"title":{},"body":{"modules/PagesModule.html":{}}}],["app",{"_index":81,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"index.html":{}}}],["app.compon",{"_index":178,"title":{},"body":{"modules/AppModule.html":{}}}],["app.component.css",{"_index":83,"title":{},"body":{"components/AppComponent.html":{}}}],["app.component.html",{"_index":85,"title":{},"body":{"components/AppComponent.html":{}}}],["app.rout",{"_index":180,"title":{},"body":{"modules/AppModule.html":{}}}],["app_rout",{"_index":179,"title":{},"body":{"modules/AppModule.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["appcompon",{"_index":74,"title":{"components/AppComponent.html":{}},"body":{"components/AppComponent.html":{},"modules/AppModule.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"overview.html":{}}}],["application/json",{"_index":1036,"title":{},"body":{"injectables/RequestService.html":{}}}],["appmodul",{"_index":154,"title":{"modules/AppModule.html":{}},"body":{"modules/AppModule.html":{},"modules.html":{},"overview.html":{}}}],["appoint",{"_index":766,"title":{},"body":{"components/HeaderComponent.html":{}}}],["april",{"_index":335,"title":{},"body":{"components/ChartComponent.html":{}}}],["area",{"_index":132,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{}}}],["array",{"_index":310,"title":{},"body":{"components/ChartComponent.html":{}}}],["artifact",{"_index":1296,"title":{},"body":{"index.html":{}}}],["assets/img/icons/birthday.png",{"_index":537,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["autom",{"_index":786,"title":{},"body":{"components/HeaderComponent.html":{}}}],["automat",{"_index":1290,"title":{},"body":{"index.html":{}}}],["avail",{"_index":1317,"title":{},"body":{"modules.html":{}}}],["award",{"_index":1154,"title":{},"body":{"injectables/SidebarService.html":{}}}],["awesom",{"_index":753,"title":{},"body":{"components/HeaderComponent.html":{}}}],["ayudaremo",{"_index":1200,"title":{},"body":{"components/SupportComponent.html":{}}}],["b",{"_index":264,"title":{},"body":{"components/ChartComponent.html":{}}}],["backgroundcolor",{"_index":312,"title":{},"body":{"components/ChartComponent.html":{}}}],["bar",{"_index":98,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["barcelona",{"_index":881,"title":{},"body":{"interfaces/MarkerIF.html":{}}}],["barchartcompon",{"_index":97,"title":{"components/BarChartComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["barchartdata",{"_index":232,"title":{},"body":{"components/ChartComponent.html":{}}}],["barchartlabel",{"_index":233,"title":{},"body":{"components/ChartComponent.html":{}}}],["barchartlegend",{"_index":234,"title":{},"body":{"components/ChartComponent.html":{}}}],["barchartopt",{"_index":235,"title":{},"body":{"components/ChartComponent.html":{}}}],["barcharttyp",{"_index":236,"title":{},"body":{"components/ChartComponent.html":{}}}],["beta.3",{"_index":1251,"title":{},"body":{"dependencies.html":{}}}],["biblioteca",{"_index":1370,"title":{},"body":{"miscellaneous/variables.html":{}}}],["birth",{"_index":592,"title":{},"body":{"components/DriversComponent.html":{}}}],["blank",{"_index":219,"title":{},"body":{"components/BreadcrumbComponent.html":{},"components/PagesComponent.html":{}}}],["blue",{"_index":353,"title":{},"body":{"components/ChartComponent.html":{}}}],["boolean",{"_index":395,"title":{},"body":{"components/CircuitsComponent.html":{},"interfaces/Confirm.html":{},"components/DriversComponent.html":{},"injectables/LocalStorageService.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{},"components/SidebarComponent.html":{}}}],["bootstrap",{"_index":157,"title":{},"body":{"modules/AppModule.html":{},"modules/LoginModule.html":{},"modules/PagesModule.html":{},"overview.html":{}}}],["bordercolor",{"_index":314,"title":{},"body":{"components/ChartComponent.html":{}}}],["box",{"_index":757,"title":{},"body":{"components/HeaderComponent.html":{}}}],["breadcrumb",{"_index":202,"title":{},"body":{"components/BreadcrumbComponent.html":{}}}],["breadcrumb'},{'nam",{"_index":101,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["breadcrumb.component.css",{"_index":203,"title":{},"body":{"components/BreadcrumbComponent.html":{}}}],["breadcrumb.component.html",{"_index":204,"title":{},"body":{"components/BreadcrumbComponent.html":{}}}],["breadcrumb/breadcrumb.compon",{"_index":1104,"title":{},"body":{"modules/SharedModule.html":{}}}],["breadcrumbcompon",{"_index":100,"title":{"components/BreadcrumbComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"modules/SharedModule.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["brows",{"_index":1315,"title":{},"body":{"modules.html":{}}}],["browser",{"_index":171,"title":{},"body":{"modules/AppModule.html":{},"modules/PagesModule.html":{},"dependencies.html":{},"modules.html":{}}}],["browsermodul",{"_index":169,"title":{},"body":{"modules/AppModule.html":{},"modules/PagesModule.html":{}}}],["btn",{"_index":959,"title":{},"body":{"modules/PagesModule.html":{}}}],["build",{"_index":1295,"title":{},"body":{"index.html":{}}}],["button",{"_index":43,"title":{},"body":{"injectables/AlertService.html":{}}}],["buttonsstyl",{"_index":954,"title":{},"body":{"modules/PagesModule.html":{}}}],["c",{"_index":450,"title":{},"body":{"components/CircuitsComponent.html":{},"pipes/GoogleStaticMapUrlPipe.html":{}}}],["call",{"_index":1191,"title":{},"body":{"components/SupportComponent.html":{}}}],["cancelbuttonarialabel",{"_index":465,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{}}}],["cancelbuttonclass",{"_index":961,"title":{},"body":{"modules/PagesModule.html":{}}}],["cancelbuttoncolor",{"_index":66,"title":{},"body":{"injectables/AlertService.html":{},"interfaces/Confirm.html":{},"components/HeaderComponent.html":{}}}],["cancelbuttontext",{"_index":464,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{}}}],["capit",{"_index":217,"title":{},"body":{"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{}}}],["capitalizepip",{"_index":221,"title":{"pipes/CapitalizePipe.html":{}},"body":{"pipes/CapitalizePipe.html":{},"modules/SharedModule.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["car",{"_index":1155,"title":{},"body":{"injectables/SidebarService.html":{}}}],["celebr",{"_index":878,"title":{},"body":{"interfaces/MarkerIF.html":{}}}],["center=${locate}${zoomvalue}${size}${maptype}${markers}${key",{"_index":697,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["chang",{"_index":1117,"title":{},"body":{"injectables/SharedService.html":{},"index.html":{}}}],["charat(0",{"_index":227,"title":{},"body":{"pipes/CapitalizePipe.html":{}}}],["chart",{"_index":185,"title":{},"body":{"components/BarChartComponent.html":{},"components/ChartComponent.html":{},"components/DoughnutChartComponent.html":{},"components/LineChartComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RadarChartComponent.html":{},"injectables/SidebarService.html":{},"dependencies.html":{}}}],["chart'},{'nam",{"_index":99,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["chart.compon",{"_index":927,"title":{},"body":{"modules/PagesModule.html":{}}}],["chart.component.css",{"_index":186,"title":{},"body":{"components/BarChartComponent.html":{},"components/ChartComponent.html":{},"components/DoughnutChartComponent.html":{},"components/LineChartComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RadarChartComponent.html":{}}}],["chart.component.html",{"_index":187,"title":{},"body":{"components/BarChartComponent.html":{},"components/ChartComponent.html":{},"components/DoughnutChartComponent.html":{},"components/LineChartComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RadarChartComponent.html":{}}}],["chart.component.t",{"_index":184,"title":{},"body":{"components/BarChartComponent.html":{},"components/DoughnutChartComponent.html":{},"components/LineChartComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RadarChartComponent.html":{},"coverage.html":{}}}],["chart.component.ts:10",{"_index":196,"title":{},"body":{"components/BarChartComponent.html":{},"components/LineChartComponent.html":{},"components/PieChartComponent.html":{}}}],["chart.component.ts:11",{"_index":198,"title":{},"body":{"components/BarChartComponent.html":{},"components/LineChartComponent.html":{},"components/PieChartComponent.html":{}}}],["chart.component.ts:12",{"_index":194,"title":{},"body":{"components/BarChartComponent.html":{},"components/DoughnutChartComponent.html":{},"components/LineChartComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RadarChartComponent.html":{}}}],["chart.component.ts:13",{"_index":197,"title":{},"body":{"components/BarChartComponent.html":{},"components/DoughnutChartComponent.html":{},"components/LineChartComponent.html":{},"components/PieChartComponent.html":{}}}],["chart.component.ts:14",{"_index":193,"title":{},"body":{"components/BarChartComponent.html":{},"components/DoughnutChartComponent.html":{},"components/LineChartComponent.html":{},"components/PieChartComponent.html":{}}}],["chart.component.ts:15",{"_index":557,"title":{},"body":{"components/DoughnutChartComponent.html":{},"components/LineChartComponent.html":{}}}],["chart.component.ts:8",{"_index":964,"title":{},"body":{"components/PolarAreaChartComponent.html":{},"components/RadarChartComponent.html":{}}}],["chart.component.ts:9",{"_index":195,"title":{},"body":{"components/BarChartComponent.html":{},"components/PieChartComponent.html":{}}}],["chart.j",{"_index":1258,"title":{},"body":{"dependencies.html":{}}}],["chart/bar",{"_index":183,"title":{},"body":{"components/BarChartComponent.html":{},"modules/PagesModule.html":{},"coverage.html":{}}}],["chart/doughnut",{"_index":554,"title":{},"body":{"components/DoughnutChartComponent.html":{},"modules/PagesModule.html":{},"coverage.html":{}}}],["chart/lin",{"_index":797,"title":{},"body":{"components/LineChartComponent.html":{},"modules/PagesModule.html":{},"coverage.html":{}}}],["chart/pi",{"_index":932,"title":{},"body":{"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"coverage.html":{}}}],["chart/polar",{"_index":930,"title":{},"body":{"modules/PagesModule.html":{},"components/PolarAreaChartComponent.html":{},"coverage.html":{}}}],["chart/radar",{"_index":934,"title":{},"body":{"modules/PagesModule.html":{},"components/RadarChartComponent.html":{},"coverage.html":{}}}],["chartcompon",{"_index":102,"title":{"components/ChartComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["charts/chart.compon",{"_index":924,"title":{},"body":{"modules/PagesModule.html":{}}}],["chartsmodul",{"_index":908,"title":{},"body":{"modules/PagesModule.html":{}}}],["charttyp",{"_index":189,"title":{},"body":{"components/BarChartComponent.html":{},"components/LineChartComponent.html":{},"components/PieChartComponent.html":{}}}],["check",{"_index":1312,"title":{},"body":{"index.html":{}}}],["checker",{"_index":1158,"title":{},"body":{"injectables/SidebarService.html":{}}}],["christoph",{"_index":280,"title":{},"body":{"components/ChartComponent.html":{}}}],["circuit",{"_index":371,"title":{"interfaces/Circuit.html":{}},"body":{"interfaces/Circuit.html":{},"components/CircuitsComponent.html":{},"components/GoogleMapsComponent.html":{},"interfaces/Race.html":{},"injectables/SidebarService.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["circuit.circuitnam",{"_index":457,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["circuit.interfac",{"_index":970,"title":{},"body":{"interfaces/Race.html":{}}}],["circuit.loc",{"_index":467,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["circuitid",{"_index":373,"title":{},"body":{"interfaces/Circuit.html":{}}}],["circuitnam",{"_index":374,"title":{},"body":{"interfaces/Circuit.html":{}}}],["circuits'},{'nam",{"_index":104,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["circuits.component.css",{"_index":379,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["circuits.component.html",{"_index":380,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["circuits.json",{"_index":1336,"title":{},"body":{"miscellaneous/variables.html":{}}}],["circuits.json?limit=100",{"_index":1335,"title":{},"body":{"miscellaneous/variables.html":{}}}],["circuits/circuits.compon",{"_index":938,"title":{},"body":{"modules/PagesModule.html":{}}}],["circuits_url",{"_index":484,"title":{},"body":{"injectables/CircuitsService.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["circuits_urls.select",{"_index":489,"title":{},"body":{"injectables/CircuitsService.html":{}}}],["circuitscompon",{"_index":103,"title":{"components/CircuitsComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["circuitsdata",{"_index":638,"title":{},"body":{"components/GoogleMapsComponent.html":{}}}],["circuitslist",{"_index":381,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["circuitsservic",{"_index":390,"title":{"injectables/CircuitsService.html":{}},"body":{"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"coverage.html":{}}}],["class",{"_index":39,"title":{"classes/Marker.html":{}},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"modules/AppModule.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"injectables/CurrentService.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"injectables/LocalStorageService.html":{},"pipes/LocationTextPipe.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"classes/Marker.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SettingsService.html":{},"modules/SharedModule.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"components/SupportComponent.html":{},"pipes/WikipediaUrlMobilePipe.html":{},"coverage.html":{},"overview.html":{}}}],["classlist.add(this.findclasstoggl",{"_index":1139,"title":{},"body":{"components/SidebarComponent.html":{}}}],["classlist.remove(this.findclasstoggl",{"_index":1140,"title":{},"body":{"components/SidebarComponent.html":{}}}],["clearselectdata",{"_index":801,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["clearselectdata(itemparam",{"_index":807,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["cli",{"_index":1281,"title":{},"body":{"index.html":{}}}],["click",{"_index":42,"title":{},"body":{"injectables/AlertService.html":{},"components/LoginComponent.html":{}}}],["clip",{"_index":754,"title":{},"body":{"components/HeaderComponent.html":{}}}],["close",{"_index":55,"title":{},"body":{"injectables/AlertService.html":{},"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/HeaderComponent.html":{}}}],["closealert",{"_index":8,"title":{},"body":{"injectables/AlertService.html":{}}}],["cluster",{"_index":921,"title":{},"body":{"modules/PagesModule.html":{},"dependencies.html":{}}}],["cluster_appmodul",{"_index":159,"title":{},"body":{"modules/AppModule.html":{},"overview.html":{}}}],["cluster_appmodule_bootstrap",{"_index":162,"title":{},"body":{"modules/AppModule.html":{},"overview.html":{}}}],["cluster_appmodule_declar",{"_index":160,"title":{},"body":{"modules/AppModule.html":{},"overview.html":{}}}],["cluster_appmodule_import",{"_index":161,"title":{},"body":{"modules/AppModule.html":{},"overview.html":{}}}],["cluster_loginmodul",{"_index":855,"title":{},"body":{"modules/LoginModule.html":{},"overview.html":{}}}],["cluster_loginmodule_declar",{"_index":856,"title":{},"body":{"modules/LoginModule.html":{},"overview.html":{}}}],["cluster_loginmodule_export",{"_index":857,"title":{},"body":{"modules/LoginModule.html":{},"overview.html":{}}}],["cluster_pagesmodul",{"_index":900,"title":{},"body":{"modules/PagesModule.html":{},"overview.html":{}}}],["cluster_pagesmodule_export",{"_index":902,"title":{},"body":{"modules/PagesModule.html":{}}}],["cluster_pagesmodule_import",{"_index":901,"title":{},"body":{"modules/PagesModule.html":{},"overview.html":{}}}],["code",{"_index":1292,"title":{},"body":{"index.html":{}}}],["color",{"_index":190,"title":{},"body":{"components/BarChartComponent.html":{},"components/LineChartComponent.html":{},"interfaces/MarkerIF.html":{},"components/PieChartComponent.html":{}}}],["commonmodul",{"_index":1107,"title":{},"body":{"modules/SharedModule.html":{}}}],["compon",{"_index":73,"title":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"modules/SharedModule.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"index.html":{},"overview.html":{},"miscellaneous/variables.html":{}}}],["component_templ",{"_index":95,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["components/charts/bar",{"_index":928,"title":{},"body":{"modules/PagesModule.html":{}}}],["components/charts/doughnut",{"_index":926,"title":{},"body":{"modules/PagesModule.html":{}}}],["components/charts/lin",{"_index":935,"title":{},"body":{"modules/PagesModule.html":{}}}],["components/charts/pi",{"_index":931,"title":{},"body":{"modules/PagesModule.html":{}}}],["components/charts/polar",{"_index":929,"title":{},"body":{"modules/PagesModule.html":{}}}],["components/charts/radar",{"_index":933,"title":{},"body":{"modules/PagesModule.html":{}}}],["components/googl",{"_index":941,"title":{},"body":{"modules/PagesModule.html":{}}}],["con",{"_index":1197,"title":{},"body":{"components/SupportComponent.html":{}}}],["condimentum",{"_index":1189,"title":{},"body":{"components/SupportComponent.html":{}}}],["config",{"_index":175,"title":{},"body":{"modules/AppModule.html":{},"modules/PagesModule.html":{},"dependencies.html":{}}}],["configur",{"_index":791,"title":{},"body":{"components/HeaderComponent.html":{}}}],["confirm",{"_index":9,"title":{"interfaces/Confirm.html":{}},"body":{"injectables/AlertService.html":{},"interfaces/Confirm.html":{},"components/RegisterComponent.html":{},"coverage.html":{}}}],["confirm(data",{"_index":19,"title":{},"body":{"injectables/AlertService.html":{}}}],["confirm.enum.t",{"_index":1274,"title":{},"body":{"miscellaneous/enumerations.html":{}}}],["confirmbuttonarialabel",{"_index":460,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{}}}],["confirmbuttonclass",{"_index":958,"title":{},"body":{"modules/PagesModule.html":{}}}],["confirmbuttoncolor",{"_index":64,"title":{},"body":{"injectables/AlertService.html":{},"interfaces/Confirm.html":{},"components/HeaderComponent.html":{}}}],["confirmbuttontext",{"_index":68,"title":{},"body":{"injectables/AlertService.html":{},"components/CircuitsComponent.html":{},"interfaces/Confirm.html":{},"components/DriversComponent.html":{},"components/HeaderComponent.html":{}}}],["consectetur",{"_index":1172,"title":{},"body":{"components/SupportComponent.html":{}}}],["consol",{"_index":1367,"title":{},"body":{"miscellaneous/variables.html":{}}}],["console.log('go",{"_index":726,"title":{},"body":{"components/HeaderComponent.html":{}}}],["console.log('hello",{"_index":1141,"title":{},"body":{"components/SidebarComponent.html":{}}}],["console.log('i",{"_index":54,"title":{},"body":{"injectables/AlertService.html":{}}}],["console.log(data",{"_index":588,"title":{},"body":{"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["console.log(r",{"_index":1045,"title":{},"body":{"injectables/RequestService.html":{}}}],["console.log(seasons_urls.all_seasons_url",{"_index":1086,"title":{},"body":{"injectables/SeasonsService.html":{}}}],["console.log(year",{"_index":488,"title":{},"body":{"injectables/CircuitsService.html":{},"injectables/DriversService.html":{},"injectables/RacesService.html":{}}}],["const",{"_index":445,"title":{},"body":{"components/CircuitsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"injectables/LocalStorageService.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"modules/PagesModule.html":{},"pipes/RoundPipe.html":{},"modules/SharedModule.html":{},"components/SidebarComponent.html":{}}}],["constant",{"_index":943,"title":{},"body":{"modules/PagesModule.html":{}}}],["constants/url",{"_index":485,"title":{},"body":{"injectables/CircuitsService.html":{},"injectables/DriversService.html":{},"injectables/RacesService.html":{},"injectables/RequestService.html":{},"injectables/SeasonsService.html":{}}}],["constructor",{"_index":12,"title":{"interfaces/Constructor.html":{}},"body":{"injectables/AlertService.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"interfaces/Constructor.html":{},"injectables/CurrentService.html":{},"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"injectables/LocalStorageService.html":{},"components/LoginComponent.html":{},"classes/Marker.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SettingsService.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{}}}],["constructor(_http",{"_index":1018,"title":{},"body":{"injectables/RequestService.html":{}}}],["constructor(_seasonservic",{"_index":1067,"title":{},"body":{"components/SeasonsComponent.html":{}}}],["constructor(_sidebar",{"_index":1128,"title":{},"body":{"components/SidebarComponent.html":{}}}],["constructor(nam",{"_index":867,"title":{},"body":{"classes/Marker.html":{}}}],["constructor(priv",{"_index":360,"title":{},"body":{"components/ChartComponent.html":{},"injectables/CircuitsService.html":{},"injectables/DriversService.html":{},"components/HeaderComponent.html":{},"injectables/RacesService.html":{},"injectables/RequestService.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"components/SupportComponent.html":{}}}],["constructor(request",{"_index":477,"title":{},"body":{"injectables/CircuitsService.html":{},"injectables/DriversService.html":{},"injectables/RacesService.html":{},"injectables/SeasonsService.html":{}}}],["constructor(rout",{"_index":513,"title":{},"body":{"components/DashboardComponent.html":{},"components/HeaderComponent.html":{},"components/LoginComponent.html":{}}}],["constructor(selectpageservic",{"_index":207,"title":{},"body":{"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SettingsComponent.html":{},"components/SupportComponent.html":{}}}],["constructorid",{"_index":498,"title":{},"body":{"interfaces/Constructor.html":{}}}],["constructors.json",{"_index":1341,"title":{},"body":{"miscellaneous/variables.html":{}}}],["constructors.json?limit=1000",{"_index":1337,"title":{},"body":{"miscellaneous/variables.html":{}}}],["constructors_url",{"_index":1222,"title":{},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["contactano",{"_index":1196,"title":{},"body":{"components/SupportComponent.html":{}}}],["content",{"_index":957,"title":{},"body":{"modules/PagesModule.html":{},"injectables/RequestService.html":{}}}],["context",{"_index":1246,"title":{},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["copyright",{"_index":612,"title":{},"body":{"components/FooterComponent.html":{}}}],["core",{"_index":1260,"title":{},"body":{"dependencies.html":{}}}],["correct",{"_index":550,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["countri",{"_index":824,"title":{},"body":{"interfaces/Location.html":{}}}],["coverag",{"_index":1210,"title":{"coverage.html":{}},"body":{"coverage.html":{}}}],["creat",{"_index":898,"title":{},"body":{"components/PagesComponent.html":{}}}],["credenti",{"_index":852,"title":{},"body":{"components/LoginComponent.html":{}}}],["croatia",{"_index":296,"title":{},"body":{"components/ChartComponent.html":{}}}],["cup",{"_index":301,"title":{},"body":{"components/ChartComponent.html":{}}}],["current",{"_index":651,"title":{},"body":{"components/GoogleMapsComponent.html":{},"injectables/SidebarService.html":{}}}],["current/constructors.json",{"_index":1339,"title":{},"body":{"miscellaneous/variables.html":{}}}],["current/last/results.json",{"_index":1348,"title":{},"body":{"miscellaneous/variables.html":{}}}],["current_year",{"_index":1338,"title":{},"body":{"miscellaneous/variables.html":{}}}],["currentservic",{"_index":500,"title":{"injectables/CurrentService.html":{}},"body":{"injectables/CurrentService.html":{},"coverage.html":{}}}],["customclass",{"_index":955,"title":{},"body":{"modules/PagesModule.html":{}}}],["d",{"_index":367,"title":{},"body":{"components/ChartComponent.html":{}}}],["d.data[j",{"_index":368,"title":{},"body":{"components/ChartComponent.html":{}}}],["d33",{"_index":67,"title":{},"body":{"injectables/AlertService.html":{},"components/HeaderComponent.html":{}}}],["dark",{"_index":322,"title":{},"body":{"components/ChartComponent.html":{}}}],["dashboard",{"_index":218,"title":{},"body":{"components/BreadcrumbComponent.html":{},"components/DashboardComponent.html":{},"components/NotpagefoundComponent.html":{},"injectables/SidebarService.html":{}}}],["dashboard'},{'nam",{"_index":106,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["dashboard.component.css",{"_index":510,"title":{},"body":{"components/DashboardComponent.html":{}}}],["dashboard.component.html",{"_index":511,"title":{},"body":{"components/DashboardComponent.html":{}}}],["dashboard/dashboard.compon",{"_index":925,"title":{},"body":{"modules/PagesModule.html":{}}}],["dashboardcompon",{"_index":105,"title":{"components/DashboardComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["data",{"_index":25,"title":{},"body":{"injectables/AlertService.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"injectables/RequestService.html":{},"components/SeasonsComponent.html":{}}}],["data.text",{"_index":60,"title":{},"body":{"injectables/AlertService.html":{}}}],["data.titl",{"_index":58,"title":{},"body":{"injectables/AlertService.html":{}}}],["data.typ",{"_index":61,"title":{},"body":{"injectables/AlertService.html":{}}}],["data['mrdata'].circuittable.circuit",{"_index":493,"title":{},"body":{"injectables/CircuitsService.html":{}}}],["data['mrdata'].drivertable.driv",{"_index":604,"title":{},"body":{"injectables/DriversService.html":{}}}],["data['mrdata'].racetable.rac",{"_index":1003,"title":{},"body":{"injectables/RacesService.html":{}}}],["data['mrdata'].seasontable.season",{"_index":1088,"title":{},"body":{"injectables/SeasonsService.html":{}}}],["dataset",{"_index":191,"title":{},"body":{"components/BarChartComponent.html":{},"components/LineChartComponent.html":{},"components/PieChartComponent.html":{}}}],["date",{"_index":591,"title":{},"body":{"components/DriversComponent.html":{},"components/FooterComponent.html":{},"interfaces/Race.html":{}}}],["date().getfullyear",{"_index":408,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{}}}],["dateofbirth",{"_index":560,"title":{},"body":{"interfaces/Driver.html":{}}}],["david",{"_index":745,"title":{},"body":{"components/HeaderComponent.html":{}}}],["dc3545",{"_index":343,"title":{},"body":{"components/ChartComponent.html":{}}}],["declar",{"_index":156,"title":{},"body":{"modules/AppModule.html":{},"modules/LoginModule.html":{},"modules/PagesModule.html":{},"modules/SharedModule.html":{},"coverage.html":{},"overview.html":{},"miscellaneous/variables.html":{}}}],["decor",{"_index":545,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["default",{"_index":88,"title":{},"body":{"components/AppComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"injectables/LocalStorageService.html":{},"components/LoginComponent.html":{},"components/RacesComponent.html":{},"injectables/RequestService.html":{},"components/SeasonsComponent.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"miscellaneous/variables.html":{}}}],["defaultimagedirect",{"_index":150,"title":{"directives/DefaultImageDirective.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["defin",{"_index":13,"title":{},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"injectables/CurrentService.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"injectables/LocalStorageService.html":{},"pipes/LocationTextPipe.html":{},"components/LoginComponent.html":{},"classes/Marker.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SettingsService.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"components/SupportComponent.html":{},"pipes/WikipediaUrlMobilePipe.html":{}}}],["depend",{"_index":155,"title":{"dependencies.html":{}},"body":{"modules/AppModule.html":{},"modules/LoginModule.html":{},"modules/PagesModule.html":{},"dependencies.html":{},"overview.html":{}}}],["dev",{"_index":1287,"title":{},"body":{"index.html":{}}}],["develop",{"_index":1283,"title":{},"body":{"index.html":{}}}],["direct",{"_index":93,"title":{"directives/DefaultImageDirective.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"overview.html":{},"miscellaneous/variables.html":{}}}],["directives/default",{"_index":949,"title":{},"body":{"modules/PagesModule.html":{}}}],["directive|pipe|service|class|guard|interface|enum|modul",{"_index":1294,"title":{},"body":{"index.html":{}}}],["directori",{"_index":1299,"title":{},"body":{"index.html":{}}}],["discuss",{"_index":780,"title":{},"body":{"components/HeaderComponent.html":{}}}],["dismiss",{"_index":51,"title":{},"body":{"injectables/AlertService.html":{}}}],["dist",{"_index":1298,"title":{},"body":{"index.html":{}}}],["distribut",{"_index":781,"title":{},"body":{"components/HeaderComponent.html":{}}}],["document",{"_index":684,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{},"components/SidebarComponent.html":{},"coverage.html":{}}}],["doe",{"_index":772,"title":{},"body":{"components/HeaderComponent.html":{}}}],["dolor",{"_index":1169,"title":{},"body":{"components/SupportComponent.html":{}}}],["dom",{"_index":76,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["don't",{"_index":758,"title":{},"body":{"components/HeaderComponent.html":{}}}],["don\\'t",{"_index":792,"title":{},"body":{"components/HeaderComponent.html":{}}}],["dona",{"_index":309,"title":{},"body":{"components/ChartComponent.html":{},"components/DoughnutChartComponent.html":{}}}],["doughnut",{"_index":108,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["doughnutchartcompon",{"_index":107,"title":{"components/DoughnutChartComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["down",{"_index":466,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{}}}],["driver",{"_index":558,"title":{"interfaces/Driver.html":{}},"body":{"interfaces/Driver.html":{},"components/DriversComponent.html":{},"injectables/SidebarService.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["driver.dateofbirth",{"_index":594,"title":{},"body":{"components/DriversComponent.html":{}}}],["driver.familynam",{"_index":590,"title":{},"body":{"components/DriversComponent.html":{}}}],["driver.givennam",{"_index":589,"title":{},"body":{"components/DriversComponent.html":{}}}],["driver.permanentnumb",{"_index":593,"title":{},"body":{"components/DriversComponent.html":{}}}],["driverid",{"_index":561,"title":{},"body":{"interfaces/Driver.html":{}}}],["drivers'},{'nam",{"_index":110,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["drivers.component.css",{"_index":565,"title":{},"body":{"components/DriversComponent.html":{}}}],["drivers.component.html",{"_index":566,"title":{},"body":{"components/DriversComponent.html":{}}}],["drivers.json",{"_index":1343,"title":{},"body":{"miscellaneous/variables.html":{}}}],["drivers/drivers.compon",{"_index":939,"title":{},"body":{"modules/PagesModule.html":{}}}],["drivers_url",{"_index":599,"title":{},"body":{"injectables/DriversService.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["drivers_urls.all_drivers_select",{"_index":602,"title":{},"body":{"injectables/DriversService.html":{}}}],["driverscompon",{"_index":109,"title":{"components/DriversComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["driverslist",{"_index":567,"title":{},"body":{"components/DriversComponent.html":{}}}],["driversservic",{"_index":570,"title":{"injectables/DriversService.html":{}},"body":{"components/DriversComponent.html":{},"injectables/DriversService.html":{},"coverage.html":{}}}],["driverstandings/1/drivers.json?limit=100",{"_index":1346,"title":{},"body":{"miscellaneous/variables.html":{}}}],["dynam",{"_index":1256,"title":{},"body":{"dependencies.html":{}}}],["e2",{"_index":1307,"title":{},"body":{"index.html":{}}}],["easi",{"_index":915,"title":{},"body":{"modules/PagesModule.html":{},"dependencies.html":{}}}],["element",{"_index":92,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["elit",{"_index":1174,"title":{},"body":{"components/SupportComponent.html":{}}}],["email",{"_index":623,"title":{},"body":{"components/ForgotComponent.html":{},"components/LoginComponent.html":{},"components/RegisterComponent.html":{},"components/SupportComponent.html":{},"interfaces/User.html":{}}}],["enabl",{"_index":1366,"title":{},"body":{"miscellaneous/variables.html":{}}}],["end",{"_index":756,"title":{},"body":{"components/HeaderComponent.html":{},"index.html":{}}}],["enter",{"_index":622,"title":{},"body":{"components/ForgotComponent.html":{}}}],["enumer",{"_index":1271,"title":{"miscellaneous/enumerations.html":{}},"body":{"miscellaneous/enumerations.html":{}}}],["environ",{"_index":1243,"title":{},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["environment.url",{"_index":1358,"title":{},"body":{"miscellaneous/variables.html":{}}}],["environments/api",{"_index":682,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{},"modules/PagesModule.html":{}}}],["error",{"_index":546,"title":{},"body":{"directives/DefaultImageDirective.html":{},"miscellaneous/enumerations.html":{}}}],["eventemitt",{"_index":1116,"title":{},"body":{"injectables/SharedService.html":{}}}],["exampl",{"_index":362,"title":{},"body":{"components/ChartComponent.html":{},"interfaces/MarkerIF.html":{},"components/PagesComponent.html":{}}}],["execut",{"_index":1304,"title":{},"body":{"index.html":{}}}],["export",{"_index":38,"title":{},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"modules/AppModule.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"interfaces/Circuit.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"interfaces/Confirm.html":{},"interfaces/Constructor.html":{},"injectables/CurrentService.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"interfaces/Driver.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"injectables/LocalStorageService.html":{},"interfaces/Location.html":{},"pipes/LocationTextPipe.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"interfaces/Race.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"interfaces/Season.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SettingsService.html":{},"modules/SharedModule.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"components/SupportComponent.html":{},"pipes/WikipediaUrlMobilePipe.html":{},"overview.html":{}}}],["fa",{"_index":1151,"title":{},"body":{"injectables/SidebarService.html":{}}}],["facebook",{"_index":854,"title":{},"body":{"components/LoginComponent.html":{},"components/RegisterComponent.html":{}}}],["fals",{"_index":276,"title":{},"body":{"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"injectables/LocalStorageService.html":{},"modules/PagesModule.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{},"miscellaneous/variables.html":{}}}],["familynam",{"_index":562,"title":{},"body":{"interfaces/Driver.html":{}}}],["februari",{"_index":333,"title":{},"body":{"components/ChartComponent.html":{}}}],["feli",{"_index":1186,"title":{},"body":{"components/SupportComponent.html":{}}}],["ffc107",{"_index":344,"title":{},"body":{"components/ChartComponent.html":{}}}],["fff",{"_index":318,"title":{},"body":{"components/ChartComponent.html":{}}}],["file",{"_index":4,"title":{},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"modules/AppModule.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"interfaces/Circuit.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"interfaces/Confirm.html":{},"interfaces/Constructor.html":{},"injectables/CurrentService.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"interfaces/Driver.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"injectables/LocalStorageService.html":{},"interfaces/Location.html":{},"pipes/LocationTextPipe.html":{},"interfaces/Login.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"interfaces/Race.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"interfaces/Season.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SettingsService.html":{},"modules/SharedModule.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"components/SupportComponent.html":{},"interfaces/User.html":{},"pipes/WikipediaUrlMobilePipe.html":{},"coverage.html":{},"index.html":{}}}],["final",{"_index":775,"title":{},"body":{"components/HeaderComponent.html":{}}}],["find",{"_index":1142,"title":{},"body":{"components/SidebarComponent.html":{}}}],["findclasstoggl",{"_index":1124,"title":{},"body":{"components/SidebarComponent.html":{}}}],["first",{"_index":364,"title":{},"body":{"components/ChartComponent.html":{}}}],["flag",{"_index":1157,"title":{},"body":{"injectables/SidebarService.html":{},"index.html":{},"miscellaneous/variables.html":{}}}],["focusconfirm",{"_index":459,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{}}}],["footbal",{"_index":304,"title":{},"body":{"components/ChartComponent.html":{}}}],["footer",{"_index":607,"title":{},"body":{"components/FooterComponent.html":{}}}],["footer'},{'nam",{"_index":112,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["footer.component.css",{"_index":608,"title":{},"body":{"components/FooterComponent.html":{}}}],["footer.component.html",{"_index":609,"title":{},"body":{"components/FooterComponent.html":{}}}],["footer/footer.compon",{"_index":1105,"title":{},"body":{"modules/SharedModule.html":{}}}],["footercompon",{"_index":111,"title":{"components/FooterComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"modules/SharedModule.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["forgot",{"_index":616,"title":{},"body":{"components/ForgotComponent.html":{}}}],["forgot'},{'nam",{"_index":114,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["forgot.component.css",{"_index":617,"title":{},"body":{"components/ForgotComponent.html":{}}}],["forgot.component.html",{"_index":618,"title":{},"body":{"components/ForgotComponent.html":{}}}],["forgot/forgot.compon",{"_index":861,"title":{},"body":{"modules/LoginModule.html":{}}}],["forgotcompon",{"_index":113,"title":{"components/ForgotComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"overview.html":{},"miscellaneous/variables.html":{}}}],["form/login.compon",{"_index":859,"title":{},"body":{"modules/LoginModule.html":{}}}],["form/login.component.t",{"_index":837,"title":{},"body":{"components/LoginComponent.html":{},"coverage.html":{}}}],["form/login.component.ts:11",{"_index":845,"title":{},"body":{"components/LoginComponent.html":{}}}],["form/login.component.ts:16",{"_index":841,"title":{},"body":{"components/LoginComponent.html":{}}}],["form/login.component.ts:22",{"_index":843,"title":{},"body":{"components/LoginComponent.html":{}}}],["form/login.component.ts:29",{"_index":842,"title":{},"body":{"components/LoginComponent.html":{}}}],["form/login.interface.t",{"_index":832,"title":{},"body":{"interfaces/Login.html":{},"coverage.html":{}}}],["format",{"_index":402,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["formsmodul",{"_index":863,"title":{},"body":{"modules/LoginModule.html":{},"modules/PagesModule.html":{}}}],["found",{"_index":889,"title":{},"body":{"components/NotpagefoundComponent.html":{}}}],["franc",{"_index":294,"title":{},"body":{"components/ChartComponent.html":{}}}],["froom",{"_index":281,"title":{},"body":{"components/ChartComponent.html":{}}}],["further",{"_index":1309,"title":{},"body":{"index.html":{}}}],["gener",{"_index":556,"title":{},"body":{"components/DoughnutChartComponent.html":{},"index.html":{}}}],["get",{"_index":1277,"title":{"index.html":{}},"body":{}}],["getelementbyid('pag",{"_index":1138,"title":{},"body":{"components/SidebarComponent.html":{}}}],["getjson",{"_index":1015,"title":{},"body":{"injectables/RequestService.html":{}}}],["getjson('./../../../assets/data/api/circuits2018.json",{"_index":494,"title":{},"body":{"injectables/CircuitsService.html":{}}}],["getjson('./../../../assets/data/api/races2018.json",{"_index":1004,"title":{},"body":{"injectables/RacesService.html":{}}}],["getjson('./../../../assets/data/api/seasons.json",{"_index":1089,"title":{},"body":{"injectables/SeasonsService.html":{}}}],["getjson(path",{"_index":1022,"title":{},"body":{"injectables/RequestService.html":{}}}],["getkey",{"_index":663,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["getmaptyp",{"_index":665,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["getmaptype(typ",{"_index":666,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["getnamelastnam",{"_index":802,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["getqueri",{"_index":1016,"title":{},"body":{"injectables/RequestService.html":{}}}],["getquery(queri",{"_index":1026,"title":{},"body":{"injectables/RequestService.html":{}}}],["getquery(seasons_urls.all_seasons_url",{"_index":1087,"title":{},"body":{"injectables/SeasonsService.html":{}}}],["getquery(year",{"_index":491,"title":{},"body":{"injectables/CircuitsService.html":{},"injectables/RacesService.html":{}}}],["getsiz",{"_index":668,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["getsize(width",{"_index":669,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["getzoom",{"_index":673,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["getzoom(zoom",{"_index":674,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["givennam",{"_index":563,"title":{},"body":{"interfaces/Driver.html":{}}}],["go",{"_index":1311,"title":{},"body":{"index.html":{},"miscellaneous/variables.html":{}}}],["googl",{"_index":116,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"miscellaneous/variables.html":{}}}],["googlemap",{"_index":681,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{},"modules/PagesModule.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["googlemapscompon",{"_index":115,"title":{"components/GoogleMapsComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["googlemapsurl",{"_index":455,"title":{},"body":{"components/CircuitsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{}}}],["googlemapsurlpip",{"_index":422,"title":{"pipes/GoogleMapsUrlPipe.html":{}},"body":{"components/CircuitsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"modules/PagesModule.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["googlemapsurlpipe().transform(circuit.loc",{"_index":456,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["googlestaticmapurl",{"_index":446,"title":{},"body":{"components/CircuitsComponent.html":{},"pipes/GoogleStaticMapUrlPipe.html":{}}}],["googlestaticmapurlpip",{"_index":414,"title":{"pipes/GoogleStaticMapUrlPipe.html":{}},"body":{"components/CircuitsComponent.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"modules/PagesModule.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["googlestaticmapurlpipe().transform(circuit.loc",{"_index":448,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["grand",{"_index":879,"title":{},"body":{"interfaces/MarkerIF.html":{}}}],["graph",{"_index":1316,"title":{},"body":{"modules.html":{}}}],["graphic",{"_index":237,"title":{},"body":{"components/ChartComponent.html":{}}}],["great",{"_index":463,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{}}}],["green",{"_index":356,"title":{},"body":{"components/ChartComponent.html":{}}}],["grey",{"_index":311,"title":{},"body":{"components/ChartComponent.html":{}}}],["guid",{"_index":687,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["gusto",{"_index":1198,"title":{},"body":{"components/SupportComponent.html":{}}}],["h",{"_index":449,"title":{},"body":{"components/CircuitsComponent.html":{},"pipes/GoogleStaticMapUrlPipe.html":{}}}],["handl",{"_index":50,"title":{},"body":{"injectables/AlertService.html":{}}}],["header",{"_index":714,"title":{},"body":{"components/HeaderComponent.html":{},"injectables/RequestService.html":{}}}],["header'},{'nam",{"_index":119,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["header.component.css",{"_index":715,"title":{},"body":{"components/HeaderComponent.html":{}}}],["header.component.html",{"_index":716,"title":{},"body":{"components/HeaderComponent.html":{}}}],["header/header.compon",{"_index":1101,"title":{},"body":{"modules/SharedModule.html":{}}}],["headercompon",{"_index":118,"title":{"components/HeaderComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"modules/SharedModule.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["height",{"_index":670,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["hello",{"_index":1126,"title":{},"body":{"components/SidebarComponent.html":{}}}],["help",{"_index":1310,"title":{},"body":{"index.html":{}}}],["hey",{"_index":748,"title":{},"body":{"components/HeaderComponent.html":{}}}],["histori",{"_index":1077,"title":{},"body":{"components/SeasonsComponent.html":{}}}],["host",{"_index":544,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["html",{"_index":27,"title":{},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["http://ergast.com/api/f1/2008/5/constructorstandings.json",{"_index":508,"title":{},"body":{"injectables/CurrentService.html":{}}}],["http://ergast.com/api/f1/2008/constructorstandings.json",{"_index":507,"title":{},"body":{"injectables/CurrentService.html":{}}}],["http://ergast.com/api/f1/2018/1/driverstandings.json",{"_index":506,"title":{},"body":{"injectables/CurrentService.html":{}}}],["http://ergast.com/api/f1/2018/driverstandings.json",{"_index":504,"title":{},"body":{"injectables/CurrentService.html":{}}}],["http://localhost:4200",{"_index":1289,"title":{},"body":{"index.html":{}}}],["httpclient",{"_index":1019,"title":{},"body":{"injectables/RequestService.html":{}}}],["httpheader",{"_index":1035,"title":{},"body":{"injectables/RequestService.html":{}}}],["httpoption",{"_index":1014,"title":{},"body":{"injectables/RequestService.html":{}}}],["https://console.developers.google.com/apis/library?filter=category:maps&project=[your_project]&folder&organizationid",{"_index":1371,"title":{},"body":{"miscellaneous/variables.html":{}}}],["https://developers.google.com/maps/documentation/map",{"_index":685,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["https://ergast.com/api/f1",{"_index":1361,"title":{},"body":{"miscellaneous/variables.html":{}}}],["https://ergast.com/api/f1/.json",{"_index":998,"title":{},"body":{"injectables/RacesService.html":{}}}],["https://ergast.com/api/f1//.json",{"_index":999,"title":{},"body":{"injectables/RacesService.html":{}}}],["https://ergast.com/api/f1///results.json",{"_index":1001,"title":{},"body":{"injectables/RacesService.html":{}}}],["https://ergast.com/api/f1/2008/drivers//results.json",{"_index":600,"title":{},"body":{"injectables/DriversService.html":{}}}],["https://ergast.com/api/f1/2008/drivers//results/.json",{"_index":601,"title":{},"body":{"injectables/DriversService.html":{}}}],["https://maps.googleapis.com/maps/api/staticmap",{"_index":679,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["https://mugan86.com/amugika/img/f1",{"_index":1351,"title":{},"body":{"miscellaneous/variables.html":{}}}],["https://www.google.com/maps/@${locate},${zoom}z",{"_index":662,"title":{},"body":{"pipes/GoogleMapsUrlPipe.html":{}}}],["hybrid",{"_index":702,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["i'v",{"_index":773,"title":{},"body":{"components/HeaderComponent.html":{}}}],["i+1",{"_index":989,"title":{},"body":{"components/RacesComponent.html":{}}}],["i18n",{"_index":174,"title":{},"body":{"modules/AppModule.html":{},"modules/PagesModule.html":{},"dependencies.html":{}}}],["i18nconfigmodul",{"_index":173,"title":{},"body":{"modules/AppModule.html":{},"modules/PagesModule.html":{}}}],["i18nconfigmodule.forroot",{"_index":181,"title":{},"body":{"modules/AppModule.html":{}}}],["i\\'v",{"_index":793,"title":{},"body":{"components/HeaderComponent.html":{}}}],["icon",{"_index":1150,"title":{},"body":{"injectables/SidebarService.html":{}}}],["id",{"_index":1202,"title":{},"body":{"interfaces/User.html":{}}}],["identifi",{"_index":1211,"title":{},"body":{"coverage.html":{}}}],["imag",{"_index":548,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["image.direct",{"_index":950,"title":{},"body":{"modules/PagesModule.html":{}}}],["image.directive.t",{"_index":534,"title":{},"body":{"directives/DefaultImageDirective.html":{},"coverage.html":{}}}],["image.directive.ts:13",{"_index":539,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["image.directive.ts:16",{"_index":538,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["image.directive.ts:18",{"_index":540,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["img[default",{"_index":151,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["img_path_complet",{"_index":1223,"title":{},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["img_urls_princip",{"_index":1224,"title":{},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["implement",{"_index":200,"title":{},"body":{"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"pipes/LocationTextPipe.html":{},"components/LoginComponent.html":{},"classes/Marker.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SupportComponent.html":{},"pipes/WikipediaUrlMobilePipe.html":{}}}],["import",{"_index":31,"title":{},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"modules/AppModule.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"interfaces/Circuit.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"interfaces/Confirm.html":{},"injectables/CurrentService.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"injectables/LocalStorageService.html":{},"pipes/LocationTextPipe.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"classes/Marker.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"interfaces/Race.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SettingsService.html":{},"modules/SharedModule.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"components/SupportComponent.html":{},"pipes/WikipediaUrlMobilePipe.html":{}}}],["index",{"_index":6,"title":{"index.html":{}},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"interfaces/Circuit.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"interfaces/Confirm.html":{},"interfaces/Constructor.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"interfaces/Driver.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"injectables/LocalStorageService.html":{},"interfaces/Location.html":{},"interfaces/Login.html":{},"components/LoginComponent.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"interfaces/Race.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"components/ScrollTopComponent.html":{},"interfaces/Season.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"components/SupportComponent.html":{},"interfaces/User.html":{},"miscellaneous/enumerations.html":{},"miscellaneous/variables.html":{}}}],["info",{"_index":2,"title":{},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"modules/AppModule.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"interfaces/Circuit.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"interfaces/Confirm.html":{},"interfaces/Constructor.html":{},"injectables/CurrentService.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"interfaces/Driver.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"injectables/LocalStorageService.html":{},"interfaces/Location.html":{},"pipes/LocationTextPipe.html":{},"interfaces/Login.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"interfaces/Race.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"interfaces/Season.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SettingsService.html":{},"modules/SharedModule.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"components/SupportComponent.html":{},"interfaces/User.html":{},"pipes/WikipediaUrlMobilePipe.html":{},"miscellaneous/enumerations.html":{}}}],["infoalert",{"_index":384,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{}}}],["infoalert(circuit",{"_index":392,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["infoalert(driv",{"_index":572,"title":{},"body":{"components/DriversComponent.html":{}}}],["inject",{"_index":0,"title":{"injectables/AlertService.html":{},"injectables/CircuitsService.html":{},"injectables/CurrentService.html":{},"injectables/DriversService.html":{},"injectables/LocalStorageService.html":{},"injectables/RacesService.html":{},"injectables/RequestService.html":{},"injectables/SeasonsService.html":{},"injectables/SettingsService.html":{},"injectables/SharedService.html":{},"injectables/SidebarService.html":{}},"body":{"injectables/AlertService.html":{},"injectables/CircuitsService.html":{},"injectables/CurrentService.html":{},"injectables/DriversService.html":{},"injectables/LocalStorageService.html":{},"injectables/RacesService.html":{},"injectables/RequestService.html":{},"injectables/SeasonsService.html":{},"injectables/SettingsService.html":{},"injectables/SharedService.html":{},"injectables/SidebarService.html":{},"coverage.html":{},"overview.html":{}}}],["input",{"_index":188,"title":{},"body":{"components/BarChartComponent.html":{},"pipes/CapitalizePipe.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"components/GoogleMapsComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/PieChartComponent.html":{}}}],["input.substr(1).tolowercas",{"_index":229,"title":{},"body":{"pipes/CapitalizePipe.html":{}}}],["instead",{"_index":768,"title":{},"body":{"components/HeaderComponent.html":{}}}],["instruct",{"_index":626,"title":{},"body":{"components/ForgotComponent.html":{}}}],["interdum",{"_index":1176,"title":{},"body":{"components/SupportComponent.html":{}}}],["interfac",{"_index":370,"title":{"interfaces/Circuit.html":{},"interfaces/Confirm.html":{},"interfaces/Constructor.html":{},"interfaces/Driver.html":{},"interfaces/Location.html":{},"interfaces/Login.html":{},"interfaces/MarkerIF.html":{},"interfaces/Race.html":{},"interfaces/Season.html":{},"interfaces/User.html":{}},"body":{"interfaces/Circuit.html":{},"interfaces/Confirm.html":{},"interfaces/Constructor.html":{},"interfaces/Driver.html":{},"interfaces/Location.html":{},"interfaces/Login.html":{},"interfaces/MarkerIF.html":{},"interfaces/Race.html":{},"interfaces/Season.html":{},"interfaces/User.html":{},"coverage.html":{},"overview.html":{}}}],["interfaces/circuit.interfac",{"_index":413,"title":{},"body":{"components/CircuitsComponent.html":{},"components/GoogleMapsComponent.html":{}}}],["interfaces/confirm.interfac",{"_index":35,"title":{},"body":{"injectables/AlertService.html":{}}}],["interfaces/driver.interfac",{"_index":583,"title":{},"body":{"components/DriversComponent.html":{}}}],["interfaces/location.interfac",{"_index":660,"title":{},"body":{"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"pipes/LocationTextPipe.html":{}}}],["interfaces/marker.interfac",{"_index":872,"title":{},"body":{"classes/Marker.html":{}}}],["interfaces/race.interfac",{"_index":984,"title":{},"body":{"components/RacesComponent.html":{}}}],["interfaces/seasons.interfac",{"_index":1076,"title":{},"body":{"components/SeasonsComponent.html":{}}}],["ipsum",{"_index":1168,"title":{},"body":{"components/SupportComponent.html":{}}}],["itemparam",{"_index":809,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["jane",{"_index":762,"title":{},"body":{"components/HeaderComponent.html":{}}}],["januari",{"_index":332,"title":{},"body":{"components/ChartComponent.html":{}}}],["javascript",{"_index":1365,"title":{},"body":{"miscellaneous/variables.html":{}}}],["job",{"_index":41,"title":{},"body":{"injectables/AlertService.html":{}}}],["john",{"_index":771,"title":{},"body":{"components/HeaderComponent.html":{}}}],["js",{"_index":1261,"title":{},"body":{"dependencies.html":{}}}],["json",{"_index":401,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"injectables/LocalStorageService.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["json.parse(localstorage.getitem(this.user_credenti",{"_index":819,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["json.stringify(valu",{"_index":821,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["juli",{"_index":337,"title":{},"body":{"components/ChartComponent.html":{}}}],["june",{"_index":336,"title":{},"body":{"components/ChartComponent.html":{}}}],["karma",{"_index":1306,"title":{},"body":{"index.html":{}}}],["key",{"_index":683,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{},"modules/PagesModule.html":{}}}],["key=${googlemap",{"_index":698,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["keys.t",{"_index":1240,"title":{},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["know",{"_index":779,"title":{},"body":{"components/HeaderComponent.html":{}}}],["label",{"_index":192,"title":{},"body":{"components/BarChartComponent.html":{},"components/ChartComponent.html":{},"components/DoughnutChartComponent.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/LineChartComponent.html":{},"interfaces/MarkerIF.html":{},"components/PieChartComponent.html":{}}}],["landa",{"_index":283,"title":{},"body":{"components/ChartComponent.html":{}}}],["last",{"_index":529,"title":{},"body":{"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["last_grand_prix_result",{"_index":1347,"title":{},"body":{"miscellaneous/variables.html":{}}}],["lastnam",{"_index":849,"title":{},"body":{"components/LoginComponent.html":{},"interfaces/User.html":{}}}],["lat",{"_index":635,"title":{},"body":{"components/GoogleMapsComponent.html":{},"interfaces/Location.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{}}}],["latitud",{"_index":876,"title":{},"body":{"interfaces/MarkerIF.html":{}}}],["legend",{"_index":91,"title":{},"body":{"components/AppComponent.html":{},"modules/AppModule.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"overview.html":{}}}],["leo",{"_index":1182,"title":{},"body":{"components/SupportComponent.html":{}}}],["librari",{"_index":1369,"title":{},"body":{"miscellaneous/variables.html":{}}}],["line",{"_index":121,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"components/SupportComponent.html":{}}}],["line:direct",{"_index":542,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["line:us",{"_index":543,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["linechart",{"_index":359,"title":{},"body":{"components/ChartComponent.html":{}}}],["linechartcolor",{"_index":238,"title":{},"body":{"components/ChartComponent.html":{}}}],["linechartcompon",{"_index":120,"title":{"components/LineChartComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["linechartdata",{"_index":239,"title":{},"body":{"components/ChartComponent.html":{}}}],["linechartlabel",{"_index":240,"title":{},"body":{"components/ChartComponent.html":{}}}],["linechartlegend",{"_index":241,"title":{},"body":{"components/ChartComponent.html":{}}}],["linechartopt",{"_index":242,"title":{},"body":{"components/ChartComponent.html":{}}}],["linecharttyp",{"_index":243,"title":{},"body":{"components/ChartComponent.html":{}}}],["list",{"_index":430,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{}}}],["listbyyear",{"_index":476,"title":{},"body":{"injectables/CircuitsService.html":{},"injectables/DriversService.html":{},"injectables/RacesService.html":{}}}],["listbyyear(year",{"_index":481,"title":{},"body":{"injectables/CircuitsService.html":{},"injectables/DriversService.html":{},"injectables/RacesService.html":{}}}],["lng",{"_index":636,"title":{},"body":{"components/GoogleMapsComponent.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{}}}],["load",{"_index":427,"title":{},"body":{"components/CircuitsComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["loaddata",{"_index":10,"title":{},"body":{"injectables/AlertService.html":{}}}],["loaddata(titl",{"_index":26,"title":{},"body":{"injectables/AlertService.html":{}}}],["loaddatadialog",{"_index":385,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["loaddatadialog(open",{"_index":394,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["loaddatafromasset",{"_index":386,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["loadlistfromloc",{"_index":441,"title":{},"body":{"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"injectables/DriversService.html":{},"injectables/RacesService.html":{},"injectables/SeasonsService.html":{}}}],["local",{"_index":400,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"interfaces/Location.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["localstorag",{"_index":719,"title":{},"body":{"components/HeaderComponent.html":{},"components/LoginComponent.html":{}}}],["localstorage.getitem('togglesidenav",{"_index":1137,"title":{},"body":{"components/SidebarComponent.html":{}}}],["localstorage.removeitem(itemparam",{"_index":822,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["localstorage.setitem('togglesidenav",{"_index":1144,"title":{},"body":{"components/SidebarComponent.html":{}}}],["localstorage.setitem(itemparam",{"_index":820,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["localstorageservic",{"_index":515,"title":{"injectables/LocalStorageService.html":{}},"body":{"components/DashboardComponent.html":{},"components/HeaderComponent.html":{},"injectables/LocalStorageService.html":{},"components/LoginComponent.html":{},"coverage.html":{}}}],["locat",{"_index":375,"title":{"interfaces/Location.html":{}},"body":{"interfaces/Circuit.html":{},"components/CircuitsComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"interfaces/Location.html":{},"pipes/LocationTextPipe.html":{},"interfaces/MarkerIF.html":{},"coverage.html":{}}}],["location.countri",{"_index":830,"title":{},"body":{"pipes/LocationTextPipe.html":{}}}],["location.interfac",{"_index":377,"title":{},"body":{"interfaces/Circuit.html":{}}}],["location.lat},${location.long",{"_index":661,"title":{},"body":{"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{}}}],["location.loc",{"_index":829,"title":{},"body":{"pipes/LocationTextPipe.html":{}}}],["locationtext",{"_index":453,"title":{},"body":{"components/CircuitsComponent.html":{},"pipes/LocationTextPipe.html":{},"components/RacesComponent.html":{}}}],["locationtextpip",{"_index":419,"title":{"pipes/LocationTextPipe.html":{}},"body":{"components/CircuitsComponent.html":{},"pipes/LocationTextPipe.html":{},"modules/PagesModule.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["locationtextpipe().transform(circuit.loc",{"_index":454,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["login",{"_index":629,"title":{"interfaces/Login.html":{}},"body":{"components/ForgotComponent.html":{},"components/HeaderComponent.html":{},"injectables/LocalStorageService.html":{},"interfaces/Login.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"coverage.html":{}}}],["login'},{'nam",{"_index":123,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["login...from",{"_index":727,"title":{},"body":{"components/HeaderComponent.html":{}}}],["login.component.css",{"_index":838,"title":{},"body":{"components/LoginComponent.html":{}}}],["login.component.html",{"_index":839,"title":{},"body":{"components/LoginComponent.html":{}}}],["login/login.modul",{"_index":177,"title":{},"body":{"modules/AppModule.html":{}}}],["logincompon",{"_index":122,"title":{"components/LoginComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"overview.html":{},"miscellaneous/variables.html":{}}}],["logindata",{"_index":723,"title":{},"body":{"components/HeaderComponent.html":{},"injectables/LocalStorageService.html":{}}}],["logindata.lastnam",{"_index":730,"title":{},"body":{"components/HeaderComponent.html":{},"injectables/LocalStorageService.html":{}}}],["logindata.nam",{"_index":729,"title":{},"body":{"components/HeaderComponent.html":{},"injectables/LocalStorageService.html":{}}}],["loginmodul",{"_index":163,"title":{"modules/LoginModule.html":{}},"body":{"modules/AppModule.html":{},"modules/LoginModule.html":{},"modules.html":{},"overview.html":{}}}],["logout",{"_index":718,"title":{},"body":{"components/HeaderComponent.html":{}}}],["long",{"_index":825,"title":{},"body":{"interfaces/Location.html":{}}}],["longitud",{"_index":877,"title":{},"body":{"interfaces/MarkerIF.html":{}}}],["lorem",{"_index":1167,"title":{},"body":{"components/SupportComponent.html":{}}}],["m.name",{"_index":654,"title":{},"body":{"components/GoogleMapsComponent.html":{}}}],["m.titl",{"_index":1146,"title":{},"body":{"components/SidebarComponent.html":{}}}],["m.wikipedia",{"_index":1209,"title":{},"body":{"pipes/WikipediaUrlMobilePipe.html":{}}}],["makelogin",{"_index":840,"title":{},"body":{"components/LoginComponent.html":{}}}],["map",{"_index":417,"title":{},"body":{"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"injectables/DriversService.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"modules/PagesModule.html":{},"injectables/RacesService.html":{},"injectables/RequestService.html":{},"injectables/SeasonsService.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["map((r",{"_index":1044,"title":{},"body":{"injectables/RequestService.html":{}}}],["maps'},{'nam",{"_index":117,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["maps.compon",{"_index":942,"title":{},"body":{"modules/PagesModule.html":{}}}],["maps.component.css",{"_index":633,"title":{},"body":{"components/GoogleMapsComponent.html":{}}}],["maps.component.html",{"_index":634,"title":{},"body":{"components/GoogleMapsComponent.html":{}}}],["maps.component.t",{"_index":632,"title":{},"body":{"components/GoogleMapsComponent.html":{},"coverage.html":{}}}],["maps.component.ts:11",{"_index":646,"title":{},"body":{"components/GoogleMapsComponent.html":{}}}],["maps.component.ts:12",{"_index":643,"title":{},"body":{"components/GoogleMapsComponent.html":{}}}],["maps.component.ts:13",{"_index":645,"title":{},"body":{"components/GoogleMapsComponent.html":{}}}],["maps.component.ts:15",{"_index":639,"title":{},"body":{"components/GoogleMapsComponent.html":{}}}],["maps.component.ts:17",{"_index":640,"title":{},"body":{"components/GoogleMapsComponent.html":{}}}],["maps/googl",{"_index":631,"title":{},"body":{"components/GoogleMapsComponent.html":{},"modules/PagesModule.html":{},"coverage.html":{}}}],["maptyp",{"_index":691,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["maptype}hybrid",{"_index":708,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["maptype}roadmap",{"_index":705,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["maptype}satellit",{"_index":709,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["maptype}terrain",{"_index":707,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["march",{"_index":334,"title":{},"body":{"components/ChartComponent.html":{}}}],["marker",{"_index":637,"title":{"classes/Marker.html":{}},"body":{"components/GoogleMapsComponent.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"modules/PagesModule.html":{},"coverage.html":{},"dependencies.html":{}}}],["markercolor",{"_index":676,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["markerif",{"_index":866,"title":{"interfaces/MarkerIF.html":{}},"body":{"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"coverage.html":{}}}],["markers=color:${markercolor}|label:${label}|${loc",{"_index":688,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["match",{"_index":72,"title":{},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"modules/AppModule.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"interfaces/Circuit.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"interfaces/Confirm.html":{},"interfaces/Constructor.html":{},"injectables/CurrentService.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"interfaces/Driver.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"injectables/LocalStorageService.html":{},"interfaces/Location.html":{},"pipes/LocationTextPipe.html":{},"interfaces/Login.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"interfaces/Race.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"interfaces/Season.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SettingsService.html":{},"modules/SharedModule.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"components/SupportComponent.html":{},"interfaces/User.html":{},"pipes/WikipediaUrlMobilePipe.html":{},"coverage.html":{},"dependencies.html":{},"miscellaneous/enumerations.html":{},"index.html":{},"modules.html":{},"overview.html":{},"miscellaneous/variables.html":{}}}],["math.pow(10",{"_index":1053,"title":{},"body":{"pipes/RoundPipe.html":{}}}],["math.round(valu",{"_index":1054,"title":{},"body":{"pipes/RoundPipe.html":{}}}],["mauri",{"_index":1175,"title":{},"body":{"components/SupportComponent.html":{}}}],["meet",{"_index":765,"title":{},"body":{"components/HeaderComponent.html":{}}}],["menu",{"_index":1149,"title":{},"body":{"injectables/SidebarService.html":{}}}],["messag",{"_index":743,"title":{},"body":{"components/HeaderComponent.html":{}}}],["metadata",{"_index":79,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"pipes/LocationTextPipe.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"pipes/WikipediaUrlMobilePipe.html":{}}}],["method",{"_index":7,"title":{},"body":{"injectables/AlertService.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"injectables/LocalStorageService.html":{},"pipes/LocationTextPipe.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"pipes/WikipediaUrlMobilePipe.html":{}}}],["mi",{"_index":790,"title":{},"body":{"components/HeaderComponent.html":{}}}],["mikel",{"_index":282,"title":{},"body":{"components/ChartComponent.html":{}}}],["miller",{"_index":746,"title":{},"body":{"components/HeaderComponent.html":{}}}],["min",{"_index":531,"title":{},"body":{"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["miscellan",{"_index":1270,"title":{"miscellaneous/enumerations.html":{},"miscellaneous/variables.html":{}},"body":{"miscellaneous/enumerations.html":{},"miscellaneous/variables.html":{}}}],["mobile.pip",{"_index":948,"title":{},"body":{"modules/PagesModule.html":{}}}],["mobile.pipe.t",{"_index":1205,"title":{},"body":{"pipes/WikipediaUrlMobilePipe.html":{},"coverage.html":{}}}],["mobile.pipe.ts:8",{"_index":1207,"title":{},"body":{"pipes/WikipediaUrlMobilePipe.html":{}}}],["modal",{"_index":956,"title":{},"body":{"modules/PagesModule.html":{}}}],["models/marker.model",{"_index":647,"title":{},"body":{"components/GoogleMapsComponent.html":{}}}],["modul",{"_index":153,"title":{"modules/AppModule.html":{},"modules/LoginModule.html":{},"modules/PagesModule.html":{},"modules/SharedModule.html":{},"modules.html":{}},"body":{"modules/AppModule.html":{},"modules/LoginModule.html":{},"modules/PagesModule.html":{},"modules/SharedModule.html":{},"modules.html":{},"overview.html":{}}}],["moment",{"_index":432,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["month",{"_index":366,"title":{},"body":{"components/ChartComponent.html":{}}}],["morbi",{"_index":1181,"title":{},"body":{"components/SupportComponent.html":{}}}],["more",{"_index":49,"title":{},"body":{"injectables/AlertService.html":{},"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"index.html":{}}}],["mugan86@gmail.com",{"_index":1195,"title":{},"body":{"components/SupportComponent.html":{}}}],["muganpro",{"_index":737,"title":{},"body":{"components/HeaderComponent.html":{}}}],["mugika",{"_index":614,"title":{},"body":{"components/FooterComponent.html":{},"components/LoginComponent.html":{}}}],["multipli",{"_index":1052,"title":{},"body":{"pipes/RoundPipe.html":{}}}],["nairo",{"_index":286,"title":{},"body":{"components/ChartComponent.html":{}}}],["name",{"_index":22,"title":{},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"interfaces/Constructor.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"injectables/LocalStorageService.html":{},"pipes/LocationTextPipe.html":{},"components/LoginComponent.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"interfaces/User.html":{},"pipes/WikipediaUrlMobilePipe.html":{},"index.html":{}}}],["nation",{"_index":499,"title":{},"body":{"interfaces/Constructor.html":{},"interfaces/Driver.html":{},"components/DriversComponent.html":{}}}],["navig",{"_index":1288,"title":{},"body":{"index.html":{}}}],["nbsp",{"_index":369,"title":{},"body":{"components/ChartComponent.html":{},"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"components/HeaderComponent.html":{},"components/RacesComponent.html":{},"components/SidebarComponent.html":{}}}],["nbsp;&nbsp",{"_index":1145,"title":{},"body":{"components/SidebarComponent.html":{}}}],["nbsp;&nbsp;configur",{"_index":741,"title":{},"body":{"components/HeaderComponent.html":{}}}],["nbsp;&nbsp;logout",{"_index":742,"title":{},"body":{"components/HeaderComponent.html":{}}}],["nbsp;&nbsp;mi",{"_index":739,"title":{},"body":{"components/HeaderComponent.html":{}}}],["nbsp;&nbsp;return",{"_index":890,"title":{},"body":{"components/NotpagefoundComponent.html":{}}}],["nbsp;statu",{"_index":785,"title":{},"body":{"components/HeaderComponent.html":{}}}],["nbsp;support",{"_index":789,"title":{},"body":{"components/HeaderComponent.html":{}}}],["nec",{"_index":1187,"title":{},"body":{"components/SupportComponent.html":{}}}],["need",{"_index":555,"title":{},"body":{"components/DoughnutChartComponent.html":{},"components/LoginComponent.html":{},"miscellaneous/variables.html":{}}}],["new",{"_index":447,"title":{},"body":{"components/CircuitsComponent.html":{},"components/FooterComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/PagesComponent.html":{},"injectables/RequestService.html":{},"injectables/SharedService.html":{},"coverage.html":{},"index.html":{}}}],["next",{"_index":470,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{}}}],["ng",{"_index":1285,"title":{},"body":{"index.html":{}}}],["ng2",{"_index":909,"title":{},"body":{"modules/PagesModule.html":{},"dependencies.html":{}}}],["ngmodul",{"_index":172,"title":{},"body":{"modules/AppModule.html":{},"modules/LoginModule.html":{},"modules/PagesModule.html":{},"modules/SharedModule.html":{}}}],["ngoninit",{"_index":206,"title":{},"body":{"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SupportComponent.html":{}}}],["ngx",{"_index":914,"title":{},"body":{"modules/PagesModule.html":{},"dependencies.html":{}}}],["nibal",{"_index":285,"title":{},"body":{"components/ChartComponent.html":{}}}],["notpagefound",{"_index":884,"title":{},"body":{"components/NotpagefoundComponent.html":{}}}],["notpagefound'},{'nam",{"_index":125,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["notpagefound.component.css",{"_index":885,"title":{},"body":{"components/NotpagefoundComponent.html":{}}}],["notpagefound.component.html",{"_index":886,"title":{},"body":{"components/NotpagefoundComponent.html":{}}}],["notpagefound/notpagefound.compon",{"_index":1103,"title":{},"body":{"modules/SharedModule.html":{}}}],["notpagefoundcompon",{"_index":124,"title":{"components/NotpagefoundComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"modules/SharedModule.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["null",{"_index":524,"title":{},"body":{"components/DashboardComponent.html":{},"components/HeaderComponent.html":{},"components/LoginComponent.html":{}}}],["nulla",{"_index":1183,"title":{},"body":{"components/SupportComponent.html":{}}}],["number",{"_index":641,"title":{},"body":{"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"pipes/RoundPipe.html":{},"interfaces/User.html":{}}}],["object",{"_index":1034,"title":{},"body":{"injectables/RequestService.html":{},"miscellaneous/variables.html":{}}}],["observ",{"_index":1025,"title":{},"body":{"injectables/RequestService.html":{}}}],["ok",{"_index":357,"title":{},"body":{"components/ChartComponent.html":{}}}],["on",{"_index":899,"title":{},"body":{"components/PagesComponent.html":{}}}],["one_time_world_champion_f1",{"_index":1345,"title":{},"body":{"miscellaneous/variables.html":{}}}],["oninit",{"_index":201,"title":{},"body":{"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SupportComponent.html":{}}}],["onlin",{"_index":788,"title":{},"body":{"components/HeaderComponent.html":{}}}],["onopen",{"_index":45,"title":{},"body":{"injectables/AlertService.html":{}}}],["open",{"_index":397,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["option",{"_index":24,"title":{},"body":{"injectables/AlertService.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"injectables/LocalStorageService.html":{},"pipes/LocationTextPipe.html":{},"components/LoginComponent.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"components/PieChartComponent.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"pipes/WikipediaUrlMobilePipe.html":{}}}],["ornar",{"_index":1179,"title":{},"body":{"components/SupportComponent.html":{}}}],["out",{"_index":167,"title":{},"body":{"modules/AppModule.html":{},"modules/LoginModule.html":{},"modules/PagesModule.html":{},"index.html":{},"overview.html":{}}}],["output",{"_index":1115,"title":{},"body":{"injectables/SharedService.html":{}}}],["over",{"_index":760,"title":{},"body":{"components/HeaderComponent.html":{}}}],["overflow",{"_index":759,"title":{},"body":{"components/HeaderComponent.html":{}}}],["overview",{"_index":1318,"title":{"overview.html":{}},"body":{"overview.html":{}}}],["packag",{"_index":1249,"title":{"dependencies.html":{}},"body":{}}],["page",{"_index":216,"title":{},"body":{"components/BreadcrumbComponent.html":{},"components/ForgotComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"injectables/SharedService.html":{}}}],["page_rout",{"_index":906,"title":{},"body":{"modules/PagesModule.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["pages'},{'nam",{"_index":127,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["pages.compon",{"_index":922,"title":{},"body":{"modules/PagesModule.html":{}}}],["pages.component.css",{"_index":892,"title":{},"body":{"components/PagesComponent.html":{}}}],["pages.component.html",{"_index":893,"title":{},"body":{"components/PagesComponent.html":{}}}],["pages.rout",{"_index":907,"title":{},"body":{"modules/PagesModule.html":{}}}],["pages/pages.modul",{"_index":176,"title":{},"body":{"modules/AppModule.html":{}}}],["pagescompon",{"_index":126,"title":{"components/PagesComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["pagesmodul",{"_index":164,"title":{"modules/PagesModule.html":{}},"body":{"modules/AppModule.html":{},"modules/PagesModule.html":{},"modules.html":{},"overview.html":{}}}],["panel",{"_index":738,"title":{},"body":{"components/HeaderComponent.html":{}}}],["paramet",{"_index":21,"title":{},"body":{"injectables/AlertService.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"injectables/LocalStorageService.html":{},"pipes/LocationTextPipe.html":{},"components/LoginComponent.html":{},"classes/Marker.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"pipes/WikipediaUrlMobilePipe.html":{}}}],["password",{"_index":621,"title":{},"body":{"components/ForgotComponent.html":{},"components/LoginComponent.html":{},"components/RegisterComponent.html":{}}}],["path",{"_index":1024,"title":{},"body":{"injectables/RequestService.html":{}}}],["pharetra",{"_index":1184,"title":{},"body":{"components/SupportComponent.html":{}}}],["pie",{"_index":129,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["piechartcolor",{"_index":244,"title":{},"body":{"components/ChartComponent.html":{}}}],["piechartcompon",{"_index":128,"title":{"components/PieChartComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["piechartdata",{"_index":245,"title":{},"body":{"components/ChartComponent.html":{}}}],["piechartlabel",{"_index":246,"title":{},"body":{"components/ChartComponent.html":{}}}],["piecharttyp",{"_index":247,"title":{},"body":{"components/ChartComponent.html":{}}}],["pipe",{"_index":220,"title":{"pipes/CapitalizePipe.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"pipes/LocationTextPipe.html":{},"pipes/RoundPipe.html":{},"pipes/WikipediaUrlMobilePipe.html":{}},"body":{"pipes/CapitalizePipe.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"pipes/LocationTextPipe.html":{},"modules/PagesModule.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"modules/SharedModule.html":{},"pipes/WikipediaUrlMobilePipe.html":{},"coverage.html":{},"overview.html":{},"miscellaneous/variables.html":{}}}],["pipe(map(data",{"_index":492,"title":{},"body":{"injectables/CircuitsService.html":{},"injectables/DriversService.html":{},"injectables/RacesService.html":{},"injectables/SeasonsService.html":{}}}],["pipes/capitalize.pip",{"_index":1109,"title":{},"body":{"modules/SharedModule.html":{}}}],["pipes/googl",{"_index":415,"title":{},"body":{"components/CircuitsComponent.html":{},"modules/PagesModule.html":{}}}],["pipes/loc",{"_index":420,"title":{},"body":{"components/CircuitsComponent.html":{},"modules/PagesModule.html":{}}}],["pipes/round.pip",{"_index":945,"title":{},"body":{"modules/PagesModule.html":{}}}],["pipes/wikipedia",{"_index":947,"title":{},"body":{"modules/PagesModule.html":{}}}],["pipetransform",{"_index":226,"title":{},"body":{"pipes/CapitalizePipe.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"pipes/LocationTextPipe.html":{},"pipes/RoundPipe.html":{},"pipes/WikipediaUrlMobilePipe.html":{}}}],["pleas",{"_index":433,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["pm",{"_index":474,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DriversComponent.html":{}}}],["point",{"_index":897,"title":{},"body":{"components/PagesComponent.html":{}}}],["pointbackgroundcolor",{"_index":316,"title":{},"body":{"components/ChartComponent.html":{}}}],["pointbordercolor",{"_index":317,"title":{},"body":{"components/ChartComponent.html":{}}}],["pointhoverbackgroundcolor",{"_index":319,"title":{},"body":{"components/ChartComponent.html":{}}}],["pointhoverbordercolor",{"_index":320,"title":{},"body":{"components/ChartComponent.html":{}}}],["polar",{"_index":131,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["polarareachartcompon",{"_index":130,"title":{"components/PolarAreaChartComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["post(this.api_url",{"_index":1042,"title":{},"body":{"injectables/RequestService.html":{}}}],["postqueri",{"_index":1017,"title":{},"body":{"injectables/RequestService.html":{}}}],["postquery(resourceurl",{"_index":1029,"title":{},"body":{"injectables/RequestService.html":{}}}],["precipit",{"_index":363,"title":{},"body":{"components/ChartComponent.html":{}}}],["precis",{"_index":1050,"title":{},"body":{"pipes/RoundPipe.html":{}}}],["pretti",{"_index":752,"title":{},"body":{"components/HeaderComponent.html":{}}}],["previou",{"_index":468,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["primari",{"_index":960,"title":{},"body":{"modules/PagesModule.html":{}}}],["privat",{"_index":213,"title":{},"body":{"components/BreadcrumbComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"components/LoginComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{},"injectables/SharedService.html":{}}}],["prix",{"_index":880,"title":{},"body":{"interfaces/MarkerIF.html":{}}}],["prod",{"_index":1300,"title":{},"body":{"index.html":{}}}],["product",{"_index":1301,"title":{},"body":{"index.html":{},"miscellaneous/variables.html":{}}}],["profil",{"_index":740,"title":{},"body":{"components/HeaderComponent.html":{}}}],["project",{"_index":1279,"title":{},"body":{"index.html":{},"miscellaneous/variables.html":{}}}],["properti",{"_index":86,"title":{},"body":{"components/AppComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"interfaces/Circuit.html":{},"components/CircuitsComponent.html":{},"interfaces/Confirm.html":{},"interfaces/Constructor.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"interfaces/Driver.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"injectables/LocalStorageService.html":{},"interfaces/Location.html":{},"interfaces/Login.html":{},"components/LoginComponent.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"interfaces/Race.html":{},"components/RacesComponent.html":{},"injectables/RequestService.html":{},"interfaces/Season.html":{},"components/SeasonsComponent.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"interfaces/User.html":{}}}],["protractor",{"_index":1308,"title":{},"body":{"index.html":{}}}],["provid",{"_index":158,"title":{},"body":{"modules/AppModule.html":{},"modules/LoginModule.html":{},"modules/PagesModule.html":{},"overview.html":{}}}],["providedin",{"_index":36,"title":{},"body":{"injectables/AlertService.html":{},"injectables/CircuitsService.html":{},"injectables/CurrentService.html":{},"injectables/DriversService.html":{},"injectables/LocalStorageService.html":{},"injectables/RacesService.html":{},"injectables/RequestService.html":{},"injectables/SeasonsService.html":{},"injectables/SettingsService.html":{},"injectables/SharedService.html":{},"injectables/SidebarService.html":{}}}],["public",{"_index":231,"title":{},"body":{"components/ChartComponent.html":{},"injectables/RequestService.html":{},"components/SidebarComponent.html":{}}}],["puru",{"_index":1177,"title":{},"body":{"components/SupportComponent.html":{}}}],["quam",{"_index":1190,"title":{},"body":{"components/SupportComponent.html":{}}}],["queri",{"_index":1028,"title":{},"body":{"injectables/RequestService.html":{}}}],["question",{"_index":1276,"title":{},"body":{"miscellaneous/enumerations.html":{}}}],["quintana",{"_index":287,"title":{},"body":{"components/ChartComponent.html":{}}}],["r",{"_index":704,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["race",{"_index":503,"title":{"interfaces/Race.html":{}},"body":{"injectables/CurrentService.html":{},"components/DashboardComponent.html":{},"interfaces/Race.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"injectables/SidebarService.html":{},"coverage.html":{}}}],["race.circuit.loc",{"_index":992,"title":{},"body":{"components/RacesComponent.html":{}}}],["race.d",{"_index":991,"title":{},"body":{"components/RacesComponent.html":{}}}],["race.racenam",{"_index":990,"title":{},"body":{"components/RacesComponent.html":{}}}],["racenam",{"_index":967,"title":{},"body":{"interfaces/Race.html":{}}}],["races'},{'nam",{"_index":134,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["races.component.css",{"_index":972,"title":{},"body":{"components/RacesComponent.html":{}}}],["races.component.html",{"_index":973,"title":{},"body":{"components/RacesComponent.html":{}}}],["races.json",{"_index":1353,"title":{},"body":{"miscellaneous/variables.html":{}}}],["races/races.compon",{"_index":923,"title":{},"body":{"modules/PagesModule.html":{}}}],["races_url",{"_index":997,"title":{},"body":{"injectables/RacesService.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["races_urls.all_races_select",{"_index":1002,"title":{},"body":{"injectables/RacesService.html":{}}}],["racescompon",{"_index":133,"title":{"components/RacesComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["raceslist",{"_index":974,"title":{},"body":{"components/RacesComponent.html":{}}}],["racesservic",{"_index":976,"title":{"injectables/RacesService.html":{}},"body":{"components/RacesComponent.html":{},"injectables/RacesService.html":{},"coverage.html":{}}}],["radar",{"_index":136,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["radarchartcompon",{"_index":135,"title":{"components/RadarChartComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["rank",{"_index":1000,"title":{},"body":{"injectables/RacesService.html":{}}}],["re",{"_index":1046,"title":{},"body":{"injectables/RequestService.html":{}}}],["reach",{"_index":755,"title":{},"body":{"components/HeaderComponent.html":{}}}],["read",{"_index":48,"title":{},"body":{"injectables/AlertService.html":{}}}],["readm",{"_index":1313,"title":{},"body":{"index.html":{}}}],["red",{"_index":354,"title":{},"body":{"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"pipes/GoogleStaticMapUrlPipe.html":{}}}],["regist",{"_index":627,"title":{},"body":{"components/ForgotComponent.html":{},"components/RegisterComponent.html":{}}}],["register'},{'nam",{"_index":138,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["register.component.css",{"_index":1007,"title":{},"body":{"components/RegisterComponent.html":{}}}],["register.component.html",{"_index":1008,"title":{},"body":{"components/RegisterComponent.html":{}}}],["register/register.compon",{"_index":860,"title":{},"body":{"modules/LoginModule.html":{}}}],["registercompon",{"_index":137,"title":{"components/RegisterComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"overview.html":{},"miscellaneous/variables.html":{}}}],["reload",{"_index":1291,"title":{},"body":{"index.html":{}}}],["rememb",{"_index":853,"title":{},"body":{"components/LoginComponent.html":{}}}],["remov",{"_index":1143,"title":{},"body":{"components/SidebarComponent.html":{}}}],["request",{"_index":480,"title":{},"body":{"injectables/CircuitsService.html":{},"injectables/DriversService.html":{},"injectables/RacesService.html":{},"injectables/SeasonsService.html":{}}}],["request.servic",{"_index":487,"title":{},"body":{"injectables/CircuitsService.html":{},"injectables/DriversService.html":{},"injectables/RacesService.html":{},"injectables/SeasonsService.html":{}}}],["requestservic",{"_index":478,"title":{"injectables/RequestService.html":{}},"body":{"injectables/CircuitsService.html":{},"injectables/DriversService.html":{},"injectables/RacesService.html":{},"injectables/RequestService.html":{},"injectables/SeasonsService.html":{},"coverage.html":{}}}],["requir",{"_index":1247,"title":{},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["require.context",{"_index":1359,"title":{},"body":{"miscellaneous/variables.html":{}}}],["reset",{"_index":166,"title":{},"body":{"modules/AppModule.html":{},"components/ForgotComponent.html":{},"modules/LoginModule.html":{},"modules/PagesModule.html":{},"overview.html":{}}}],["resourceurl",{"_index":1031,"title":{},"body":{"injectables/RequestService.html":{}}}],["respons",{"_index":277,"title":{},"body":{"components/ChartComponent.html":{},"components/HeaderComponent.html":{}}}],["result",{"_index":71,"title":{},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"modules/AppModule.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"interfaces/Circuit.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"interfaces/Confirm.html":{},"interfaces/Constructor.html":{},"injectables/CurrentService.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"interfaces/Driver.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"injectables/LocalStorageService.html":{},"interfaces/Location.html":{},"pipes/LocationTextPipe.html":{},"interfaces/Login.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"interfaces/Race.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"interfaces/Season.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SettingsService.html":{},"modules/SharedModule.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"components/SupportComponent.html":{},"interfaces/User.html":{},"pipes/WikipediaUrlMobilePipe.html":{},"coverage.html":{},"dependencies.html":{},"miscellaneous/enumerations.html":{},"index.html":{},"modules.html":{},"overview.html":{},"miscellaneous/variables.html":{}}}],["result.dismiss",{"_index":52,"title":{},"body":{"injectables/AlertService.html":{}}}],["result.valu",{"_index":736,"title":{},"body":{"components/HeaderComponent.html":{}}}],["results.json?limit=1000",{"_index":1350,"title":{},"body":{"miscellaneous/variables.html":{}}}],["return",{"_index":16,"title":{},"body":{"injectables/AlertService.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"injectables/LocalStorageService.html":{},"pipes/LocationTextPipe.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"pipes/WikipediaUrlMobilePipe.html":{}}}],["revert",{"_index":734,"title":{},"body":{"components/HeaderComponent.html":{}}}],["review",{"_index":776,"title":{},"body":{"components/HeaderComponent.html":{}}}],["rgba(148,159,177,0.2",{"_index":313,"title":{},"body":{"components/ChartComponent.html":{}}}],["rgba(148,159,177,0.8",{"_index":321,"title":{},"body":{"components/ChartComponent.html":{}}}],["rgba(148,159,177,1",{"_index":315,"title":{},"body":{"components/ChartComponent.html":{}}}],["rgba(77,83,96,0.2",{"_index":323,"title":{},"body":{"components/ChartComponent.html":{}}}],["rgba(77,83,96,1",{"_index":324,"title":{},"body":{"components/ChartComponent.html":{}}}],["road",{"_index":1156,"title":{},"body":{"injectables/SidebarService.html":{}}}],["roadmap",{"_index":700,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["role",{"_index":850,"title":{},"body":{"components/LoginComponent.html":{},"interfaces/User.html":{}}}],["role_admin",{"_index":851,"title":{},"body":{"components/LoginComponent.html":{}}}],["root",{"_index":37,"title":{},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"injectables/CircuitsService.html":{},"injectables/CurrentService.html":{},"injectables/DriversService.html":{},"injectables/LocalStorageService.html":{},"injectables/RacesService.html":{},"injectables/RequestService.html":{},"injectables/SeasonsService.html":{},"injectables/SettingsService.html":{},"injectables/SharedService.html":{},"injectables/SidebarService.html":{}}}],["root'},{'nam",{"_index":96,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["round",{"_index":968,"title":{},"body":{"interfaces/Race.html":{},"pipes/RoundPipe.html":{}}}],["roundpip",{"_index":944,"title":{"pipes/RoundPipe.html":{}},"body":{"modules/PagesModule.html":{},"pipes/RoundPipe.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["rout",{"_index":905,"title":{},"body":{"modules/PagesModule.html":{},"injectables/SidebarService.html":{}}}],["router",{"_index":514,"title":{},"body":{"components/DashboardComponent.html":{},"components/HeaderComponent.html":{},"components/LoginComponent.html":{}}}],["routermodul",{"_index":862,"title":{},"body":{"modules/LoginModule.html":{},"modules/SharedModule.html":{}}}],["routermodule.forchild(pagesrout",{"_index":1372,"title":{},"body":{"miscellaneous/variables.html":{}}}],["routermodule.forroot(approut",{"_index":1332,"title":{},"body":{"miscellaneous/variables.html":{}}}],["run",{"_index":1284,"title":{},"body":{"index.html":{}}}],["rxj",{"_index":1039,"title":{},"body":{"injectables/RequestService.html":{},"dependencies.html":{}}}],["rxjs/internal/operators/map",{"_index":486,"title":{},"body":{"injectables/CircuitsService.html":{},"injectables/DriversService.html":{},"injectables/RacesService.html":{},"injectables/RequestService.html":{},"injectables/SeasonsService.html":{}}}],["satellit",{"_index":701,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["savedatainloc",{"_index":803,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["savedatainlocal(itemparam",{"_index":811,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["saveusercredenti",{"_index":804,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["saveusercredentials(login",{"_index":813,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["sb",{"_index":750,"title":{},"body":{"components/HeaderComponent.html":{}}}],["scaffold",{"_index":1293,"title":{},"body":{"index.html":{}}}],["scaleshowverticallin",{"_index":275,"title":{},"body":{"components/ChartComponent.html":{}}}],["scroll",{"_index":140,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"modules/SharedModule.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["scrolltopcompon",{"_index":139,"title":{"components/ScrollTopComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"modules/SharedModule.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["season",{"_index":429,"title":{"interfaces/Season.html":{}},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"interfaces/Race.html":{},"injectables/RacesService.html":{},"interfaces/Season.html":{},"components/SeasonsComponent.html":{},"injectables/SidebarService.html":{},"coverage.html":{}}}],["season.season",{"_index":1080,"title":{},"body":{"components/SeasonsComponent.html":{}}}],["seasons'},{'nam",{"_index":143,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["seasons.component.css",{"_index":1065,"title":{},"body":{"components/SeasonsComponent.html":{}}}],["seasons.component.html",{"_index":1066,"title":{},"body":{"components/SeasonsComponent.html":{}}}],["seasons.json?limit=100",{"_index":1355,"title":{},"body":{"miscellaneous/variables.html":{}}}],["seasons/seasons.compon",{"_index":940,"title":{},"body":{"modules/PagesModule.html":{}}}],["seasons_url",{"_index":1085,"title":{},"body":{"injectables/SeasonsService.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["seasonscompon",{"_index":142,"title":{"components/SeasonsComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["seasonsservic",{"_index":1068,"title":{"injectables/SeasonsService.html":{}},"body":{"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"coverage.html":{}}}],["select",{"_index":505,"title":{},"body":{"injectables/CurrentService.html":{},"directives/DefaultImageDirective.html":{},"components/NotpagefoundComponent.html":{},"injectables/RacesService.html":{},"miscellaneous/variables.html":{}}}],["select_driver_all_result",{"_index":1349,"title":{},"body":{"miscellaneous/variables.html":{}}}],["select_driver_before_id",{"_index":1344,"title":{},"body":{"miscellaneous/variables.html":{}}}],["select_year",{"_index":1340,"title":{},"body":{"miscellaneous/variables.html":{}}}],["selector",{"_index":80,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["selectpag",{"_index":205,"title":{},"body":{"components/BreadcrumbComponent.html":{},"injectables/SharedService.html":{}}}],["selectpageservic",{"_index":210,"title":{},"body":{"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SupportComponent.html":{}}}],["selectyear",{"_index":382,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{}}}],["selectyearcircuit",{"_index":387,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["selectyearcircuits(year",{"_index":404,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["selectyeardriv",{"_index":568,"title":{},"body":{"components/DriversComponent.html":{}}}],["selectyeardrivers(year",{"_index":577,"title":{},"body":{"components/DriversComponent.html":{}}}],["sem",{"_index":1178,"title":{},"body":{"components/SupportComponent.html":{}}}],["send",{"_index":625,"title":{},"body":{"components/ForgotComponent.html":{}}}],["sent",{"_index":774,"title":{},"body":{"components/HeaderComponent.html":{}}}],["seri",{"_index":257,"title":{},"body":{"components/ChartComponent.html":{}}}],["serv",{"_index":1286,"title":{},"body":{"index.html":{}}}],["server",{"_index":579,"title":{},"body":{"components/DriversComponent.html":{},"components/HeaderComponent.html":{},"index.html":{}}}],["servic",{"_index":1368,"title":{},"body":{"miscellaneous/variables.html":{}}}],["services/alert.servic",{"_index":411,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/HeaderComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["services/api/circuits.servic",{"_index":412,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["services/api/drivers.servic",{"_index":582,"title":{},"body":{"components/DriversComponent.html":{}}}],["services/api/races.servic",{"_index":983,"title":{},"body":{"components/RacesComponent.html":{}}}],["services/api/seasons.servic",{"_index":1075,"title":{},"body":{"components/SeasonsComponent.html":{}}}],["services/loc",{"_index":519,"title":{},"body":{"components/DashboardComponent.html":{},"components/HeaderComponent.html":{},"components/LoginComponent.html":{}}}],["services/shared.servic",{"_index":212,"title":{},"body":{"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SupportComponent.html":{}}}],["services/sidebar.servic",{"_index":1136,"title":{},"body":{"components/SidebarComponent.html":{}}}],["session",{"_index":70,"title":{},"body":{"injectables/AlertService.html":{},"components/HeaderComponent.html":{}}}],["set",{"_index":1091,"title":{},"body":{"components/SettingsComponent.html":{},"injectables/SidebarService.html":{}}}],["setselectpag",{"_index":1111,"title":{},"body":{"injectables/SharedService.html":{}}}],["setselectpage(pag",{"_index":1113,"title":{},"body":{"injectables/SharedService.html":{}}}],["settings'},{'nam",{"_index":145,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["settings.component.css",{"_index":1092,"title":{},"body":{"components/SettingsComponent.html":{}}}],["settings.component.html",{"_index":1093,"title":{},"body":{"components/SettingsComponent.html":{}}}],["settings/settings.compon",{"_index":936,"title":{},"body":{"modules/PagesModule.html":{}}}],["settingscompon",{"_index":144,"title":{"components/SettingsComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["settingsservic",{"_index":1097,"title":{"injectables/SettingsService.html":{}},"body":{"injectables/SettingsService.html":{},"coverage.html":{}}}],["shared/shared.modul",{"_index":910,"title":{},"body":{"modules/PagesModule.html":{}}}],["sharedmodul",{"_index":903,"title":{"modules/SharedModule.html":{}},"body":{"modules/PagesModule.html":{},"modules/SharedModule.html":{},"modules.html":{},"overview.html":{}}}],["sharedservic",{"_index":208,"title":{"injectables/SharedService.html":{}},"body":{"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"injectables/SharedService.html":{},"components/SupportComponent.html":{},"coverage.html":{}}}],["show",{"_index":549,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["showcancelbutton",{"_index":62,"title":{},"body":{"injectables/AlertService.html":{},"components/CircuitsComponent.html":{},"interfaces/Confirm.html":{},"components/DriversComponent.html":{},"components/HeaderComponent.html":{}}}],["showclosebutton",{"_index":458,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{}}}],["showinfo",{"_index":383,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["side",{"_index":761,"title":{},"body":{"components/HeaderComponent.html":{}}}],["sidebar",{"_index":1120,"title":{},"body":{"components/SidebarComponent.html":{}}}],["sidebar'},{'nam",{"_index":147,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["sidebar.component.css",{"_index":1121,"title":{},"body":{"components/SidebarComponent.html":{}}}],["sidebar.component.html",{"_index":1122,"title":{},"body":{"components/SidebarComponent.html":{}}}],["sidebar/sidebar.compon",{"_index":1102,"title":{},"body":{"modules/SharedModule.html":{}}}],["sidebarcompon",{"_index":146,"title":{"components/SidebarComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"modules/SharedModule.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["sidebarservic",{"_index":1129,"title":{"injectables/SidebarService.html":{}},"body":{"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"coverage.html":{}}}],["sidenav",{"_index":1134,"title":{},"body":{"components/SidebarComponent.html":{}}}],["sign",{"_index":778,"title":{},"body":{"components/HeaderComponent.html":{},"components/LoginComponent.html":{},"components/RegisterComponent.html":{}}}],["sit",{"_index":1170,"title":{},"body":{"components/SupportComponent.html":{}}}],["six",{"_index":365,"title":{},"body":{"components/ChartComponent.html":{}}}],["size",{"_index":689,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["size=${width}x${height",{"_index":699,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["smith",{"_index":763,"title":{},"body":{"components/HeaderComponent.html":{}}}],["soccer",{"_index":299,"title":{},"body":{"components/ChartComponent.html":{}}}],["sodal",{"_index":1180,"title":{},"body":{"components/SupportComponent.html":{}}}],["sourc",{"_index":3,"title":{},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"modules/AppModule.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"interfaces/Circuit.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"interfaces/Confirm.html":{},"interfaces/Constructor.html":{},"injectables/CurrentService.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"interfaces/Driver.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"injectables/LocalStorageService.html":{},"interfaces/Location.html":{},"pipes/LocationTextPipe.html":{},"interfaces/Login.html":{},"components/LoginComponent.html":{},"modules/LoginModule.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"interfaces/Race.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/ScrollTopComponent.html":{},"interfaces/Season.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SettingsService.html":{},"modules/SharedModule.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"components/SupportComponent.html":{},"interfaces/User.html":{},"pipes/WikipediaUrlMobilePipe.html":{},"index.html":{}}}],["spain",{"_index":882,"title":{},"body":{"interfaces/MarkerIF.html":{}}}],["spec\\.t",{"_index":1360,"title":{},"body":{"miscellaneous/variables.html":{}}}],["src",{"_index":536,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["src/.../api",{"_index":1330,"title":{},"body":{"miscellaneous/variables.html":{}}}],["src/.../app.routes.t",{"_index":1322,"title":{},"body":{"miscellaneous/variables.html":{}}}],["src/.../environment.prod.t",{"_index":1329,"title":{},"body":{"miscellaneous/variables.html":{}}}],["src/.../environment.t",{"_index":1328,"title":{},"body":{"miscellaneous/variables.html":{}}}],["src/.../login.module.t",{"_index":1325,"title":{},"body":{"miscellaneous/variables.html":{}}}],["src/.../pages.module.t",{"_index":1324,"title":{},"body":{"miscellaneous/variables.html":{}}}],["src/.../pages.routes.t",{"_index":1331,"title":{},"body":{"miscellaneous/variables.html":{}}}],["src/.../shared.module.t",{"_index":1326,"title":{},"body":{"miscellaneous/variables.html":{}}}],["src/.../test.t",{"_index":1327,"title":{},"body":{"miscellaneous/variables.html":{}}}],["src/.../type",{"_index":1273,"title":{},"body":{"miscellaneous/enumerations.html":{}}}],["src/.../urls.t",{"_index":1323,"title":{},"body":{"miscellaneous/variables.html":{}}}],["src/app/app.component.t",{"_index":78,"title":{},"body":{"components/AppComponent.html":{},"coverage.html":{}}}],["src/app/app.component.ts:9",{"_index":90,"title":{},"body":{"components/AppComponent.html":{}}}],["src/app/app.module.t",{"_index":168,"title":{},"body":{"modules/AppModule.html":{}}}],["src/app/app.routes.t",{"_index":1214,"title":{},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["src/app/components/charts/bar",{"_index":182,"title":{},"body":{"components/BarChartComponent.html":{},"coverage.html":{}}}],["src/app/components/charts/doughnut",{"_index":553,"title":{},"body":{"components/DoughnutChartComponent.html":{},"coverage.html":{}}}],["src/app/components/charts/lin",{"_index":796,"title":{},"body":{"components/LineChartComponent.html":{},"coverage.html":{}}}],["src/app/components/charts/pi",{"_index":962,"title":{},"body":{"components/PieChartComponent.html":{},"coverage.html":{}}}],["src/app/components/charts/polar",{"_index":963,"title":{},"body":{"components/PolarAreaChartComponent.html":{},"coverage.html":{}}}],["src/app/components/charts/radar",{"_index":1005,"title":{},"body":{"components/RadarChartComponent.html":{},"coverage.html":{}}}],["src/app/components/googl",{"_index":630,"title":{},"body":{"components/GoogleMapsComponent.html":{},"coverage.html":{}}}],["src/app/constants/urls.t",{"_index":1221,"title":{},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["src/app/directives/default",{"_index":533,"title":{},"body":{"directives/DefaultImageDirective.html":{},"coverage.html":{}}}],["src/app/enums/typ",{"_index":1275,"title":{},"body":{"miscellaneous/enumerations.html":{}}}],["src/app/interfaces/circuit.interface.t",{"_index":372,"title":{},"body":{"interfaces/Circuit.html":{},"coverage.html":{}}}],["src/app/interfaces/confirm.interface.t",{"_index":495,"title":{},"body":{"interfaces/Confirm.html":{},"coverage.html":{}}}],["src/app/interfaces/constructor.interface.t",{"_index":497,"title":{},"body":{"interfaces/Constructor.html":{},"coverage.html":{}}}],["src/app/interfaces/driver.interface.t",{"_index":559,"title":{},"body":{"interfaces/Driver.html":{},"coverage.html":{}}}],["src/app/interfaces/location.interface.t",{"_index":823,"title":{},"body":{"interfaces/Location.html":{},"coverage.html":{}}}],["src/app/interfaces/marker.interface.t",{"_index":875,"title":{},"body":{"interfaces/MarkerIF.html":{},"coverage.html":{}}}],["src/app/interfaces/race.interface.t",{"_index":966,"title":{},"body":{"interfaces/Race.html":{},"coverage.html":{}}}],["src/app/interfaces/seasons.interface.t",{"_index":1063,"title":{},"body":{"interfaces/Season.html":{},"coverage.html":{}}}],["src/app/interfaces/user.interface.t",{"_index":1201,"title":{},"body":{"interfaces/User.html":{},"coverage.html":{}}}],["src/app/login/forgot/forgot.component.t",{"_index":615,"title":{},"body":{"components/ForgotComponent.html":{},"coverage.html":{}}}],["src/app/login/forgot/forgot.component.ts:12",{"_index":620,"title":{},"body":{"components/ForgotComponent.html":{}}}],["src/app/login/forgot/forgot.component.ts:8",{"_index":619,"title":{},"body":{"components/ForgotComponent.html":{}}}],["src/app/login/login",{"_index":831,"title":{},"body":{"interfaces/Login.html":{},"components/LoginComponent.html":{},"coverage.html":{}}}],["src/app/login/login.module.t",{"_index":858,"title":{},"body":{"modules/LoginModule.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["src/app/login/register/register.component.t",{"_index":1006,"title":{},"body":{"components/RegisterComponent.html":{},"coverage.html":{}}}],["src/app/login/register/register.component.ts:12",{"_index":1010,"title":{},"body":{"components/RegisterComponent.html":{}}}],["src/app/login/register/register.component.ts:8",{"_index":1009,"title":{},"body":{"components/RegisterComponent.html":{}}}],["src/app/models/marker.model.t",{"_index":865,"title":{},"body":{"classes/Marker.html":{},"coverage.html":{}}}],["src/app/models/marker.model.ts:4",{"_index":871,"title":{},"body":{"classes/Marker.html":{}}}],["src/app/models/marker.model.ts:5",{"_index":869,"title":{},"body":{"classes/Marker.html":{}}}],["src/app/models/marker.model.ts:6",{"_index":870,"title":{},"body":{"classes/Marker.html":{}}}],["src/app/models/marker.model.ts:7",{"_index":868,"title":{},"body":{"classes/Marker.html":{}}}],["src/app/pages/charts/chart.component.t",{"_index":230,"title":{},"body":{"components/ChartComponent.html":{},"coverage.html":{}}}],["src/app/pages/charts/chart.component.ts:102",{"_index":249,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:13",{"_index":307,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:41",{"_index":331,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:46",{"_index":338,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:47",{"_index":340,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:50",{"_index":325,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:76",{"_index":339,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:77",{"_index":341,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:80",{"_index":278,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:84",{"_index":273,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:85",{"_index":279,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:86",{"_index":274,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:88",{"_index":265,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:95",{"_index":358,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:96",{"_index":352,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:97",{"_index":346,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/charts/chart.component.ts:98",{"_index":248,"title":{},"body":{"components/ChartComponent.html":{}}}],["src/app/pages/circuits/circuits.component.t",{"_index":378,"title":{},"body":{"components/CircuitsComponent.html":{},"coverage.html":{}}}],["src/app/pages/circuits/circuits.component.ts:17",{"_index":410,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["src/app/pages/circuits/circuits.component.ts:18",{"_index":409,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["src/app/pages/circuits/circuits.component.ts:19",{"_index":391,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["src/app/pages/circuits/circuits.component.ts:26",{"_index":403,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["src/app/pages/circuits/circuits.component.ts:32",{"_index":396,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["src/app/pages/circuits/circuits.component.ts:43",{"_index":405,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["src/app/pages/circuits/circuits.component.ts:62",{"_index":398,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["src/app/pages/circuits/circuits.component.ts:75",{"_index":393,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["src/app/pages/dashboard/dashboard.component.t",{"_index":509,"title":{},"body":{"components/DashboardComponent.html":{},"coverage.html":{}}}],["src/app/pages/dashboard/dashboard.component.ts:12",{"_index":516,"title":{},"body":{"components/DashboardComponent.html":{}}}],["src/app/pages/dashboard/dashboard.component.ts:19",{"_index":517,"title":{},"body":{"components/DashboardComponent.html":{}}}],["src/app/pages/drivers/drivers.component.t",{"_index":564,"title":{},"body":{"components/DriversComponent.html":{},"coverage.html":{}}}],["src/app/pages/drivers/drivers.component.ts:14",{"_index":581,"title":{},"body":{"components/DriversComponent.html":{}}}],["src/app/pages/drivers/drivers.component.ts:15",{"_index":580,"title":{},"body":{"components/DriversComponent.html":{}}}],["src/app/pages/drivers/drivers.component.ts:16",{"_index":571,"title":{},"body":{"components/DriversComponent.html":{}}}],["src/app/pages/drivers/drivers.component.ts:23",{"_index":576,"title":{},"body":{"components/DriversComponent.html":{}}}],["src/app/pages/drivers/drivers.component.ts:29",{"_index":574,"title":{},"body":{"components/DriversComponent.html":{}}}],["src/app/pages/drivers/drivers.component.ts:43",{"_index":578,"title":{},"body":{"components/DriversComponent.html":{}}}],["src/app/pages/drivers/drivers.component.ts:64",{"_index":575,"title":{},"body":{"components/DriversComponent.html":{}}}],["src/app/pages/drivers/drivers.component.ts:75",{"_index":573,"title":{},"body":{"components/DriversComponent.html":{}}}],["src/app/pages/pages.component.t",{"_index":891,"title":{},"body":{"components/PagesComponent.html":{},"coverage.html":{}}}],["src/app/pages/pages.component.ts:12",{"_index":895,"title":{},"body":{"components/PagesComponent.html":{}}}],["src/app/pages/pages.component.ts:8",{"_index":894,"title":{},"body":{"components/PagesComponent.html":{}}}],["src/app/pages/pages.module.t",{"_index":904,"title":{},"body":{"modules/PagesModule.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["src/app/pages/pages.routes.t",{"_index":1235,"title":{},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["src/app/pages/races/races.component.t",{"_index":971,"title":{},"body":{"components/RacesComponent.html":{},"coverage.html":{}}}],["src/app/pages/races/races.component.ts:13",{"_index":982,"title":{},"body":{"components/RacesComponent.html":{}}}],["src/app/pages/races/races.component.ts:14",{"_index":981,"title":{},"body":{"components/RacesComponent.html":{}}}],["src/app/pages/races/races.component.ts:15",{"_index":977,"title":{},"body":{"components/RacesComponent.html":{}}}],["src/app/pages/races/races.component.ts:22",{"_index":980,"title":{},"body":{"components/RacesComponent.html":{}}}],["src/app/pages/races/races.component.ts:27",{"_index":978,"title":{},"body":{"components/RacesComponent.html":{}}}],["src/app/pages/races/races.component.ts:41",{"_index":979,"title":{},"body":{"components/RacesComponent.html":{}}}],["src/app/pages/seasons/seasons.component.t",{"_index":1064,"title":{},"body":{"components/SeasonsComponent.html":{},"coverage.html":{}}}],["src/app/pages/seasons/seasons.component.ts:13",{"_index":1074,"title":{},"body":{"components/SeasonsComponent.html":{}}}],["src/app/pages/seasons/seasons.component.ts:14",{"_index":1069,"title":{},"body":{"components/SeasonsComponent.html":{}}}],["src/app/pages/seasons/seasons.component.ts:21",{"_index":1073,"title":{},"body":{"components/SeasonsComponent.html":{}}}],["src/app/pages/seasons/seasons.component.ts:28",{"_index":1071,"title":{},"body":{"components/SeasonsComponent.html":{}}}],["src/app/pages/seasons/seasons.component.ts:42",{"_index":1072,"title":{},"body":{"components/SeasonsComponent.html":{}}}],["src/app/pages/settings/settings.component.t",{"_index":1090,"title":{},"body":{"components/SettingsComponent.html":{},"coverage.html":{}}}],["src/app/pages/settings/settings.component.ts:13",{"_index":1095,"title":{},"body":{"components/SettingsComponent.html":{}}}],["src/app/pages/settings/settings.component.ts:9",{"_index":1094,"title":{},"body":{"components/SettingsComponent.html":{}}}],["src/app/pages/support/support.component.t",{"_index":1161,"title":{},"body":{"components/SupportComponent.html":{},"coverage.html":{}}}],["src/app/pages/support/support.component.ts:12",{"_index":1165,"title":{},"body":{"components/SupportComponent.html":{}}}],["src/app/pages/support/support.component.ts:9",{"_index":1164,"title":{},"body":{"components/SupportComponent.html":{}}}],["src/app/pipes/capitalize.pipe.t",{"_index":222,"title":{},"body":{"pipes/CapitalizePipe.html":{},"coverage.html":{}}}],["src/app/pipes/capitalize.pipe.ts:8",{"_index":225,"title":{},"body":{"pipes/CapitalizePipe.html":{}}}],["src/app/pipes/googl",{"_index":655,"title":{},"body":{"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"coverage.html":{}}}],["src/app/pipes/loc",{"_index":826,"title":{},"body":{"pipes/LocationTextPipe.html":{},"coverage.html":{}}}],["src/app/pipes/round.pipe.t",{"_index":1048,"title":{},"body":{"pipes/RoundPipe.html":{},"coverage.html":{}}}],["src/app/pipes/round.pipe.ts:7",{"_index":1051,"title":{},"body":{"pipes/RoundPipe.html":{}}}],["src/app/pipes/wikipedia",{"_index":1204,"title":{},"body":{"pipes/WikipediaUrlMobilePipe.html":{},"coverage.html":{}}}],["src/app/services/alert.service.t",{"_index":5,"title":{},"body":{"injectables/AlertService.html":{},"coverage.html":{}}}],["src/app/services/alert.service.ts:11",{"_index":30,"title":{},"body":{"injectables/AlertService.html":{}}}],["src/app/services/alert.service.ts:15",{"_index":28,"title":{},"body":{"injectables/AlertService.html":{}}}],["src/app/services/alert.service.ts:32",{"_index":15,"title":{},"body":{"injectables/AlertService.html":{}}}],["src/app/services/alert.service.ts:36",{"_index":20,"title":{},"body":{"injectables/AlertService.html":{}}}],["src/app/services/alert.service.ts:8",{"_index":14,"title":{},"body":{"injectables/AlertService.html":{}}}],["src/app/services/api/circuits.service.t",{"_index":475,"title":{},"body":{"injectables/CircuitsService.html":{},"coverage.html":{}}}],["src/app/services/api/circuits.service.ts:12",{"_index":482,"title":{},"body":{"injectables/CircuitsService.html":{}}}],["src/app/services/api/circuits.service.ts:19",{"_index":483,"title":{},"body":{"injectables/CircuitsService.html":{}}}],["src/app/services/api/circuits.service.ts:9",{"_index":479,"title":{},"body":{"injectables/CircuitsService.html":{}}}],["src/app/services/api/current.service.t",{"_index":501,"title":{},"body":{"injectables/CurrentService.html":{},"coverage.html":{}}}],["src/app/services/api/current.service.ts:6",{"_index":502,"title":{},"body":{"injectables/CurrentService.html":{}}}],["src/app/services/api/drivers.service.t",{"_index":595,"title":{},"body":{"injectables/DriversService.html":{},"coverage.html":{}}}],["src/app/services/api/drivers.service.ts:15",{"_index":597,"title":{},"body":{"injectables/DriversService.html":{}}}],["src/app/services/api/drivers.service.ts:21",{"_index":598,"title":{},"body":{"injectables/DriversService.html":{}}}],["src/app/services/api/drivers.service.ts:9",{"_index":596,"title":{},"body":{"injectables/DriversService.html":{}}}],["src/app/services/api/races.service.t",{"_index":993,"title":{},"body":{"injectables/RacesService.html":{},"coverage.html":{}}}],["src/app/services/api/races.service.ts:21",{"_index":995,"title":{},"body":{"injectables/RacesService.html":{}}}],["src/app/services/api/races.service.ts:28",{"_index":996,"title":{},"body":{"injectables/RacesService.html":{}}}],["src/app/services/api/races.service.ts:9",{"_index":994,"title":{},"body":{"injectables/RacesService.html":{}}}],["src/app/services/api/request.service.t",{"_index":1012,"title":{},"body":{"injectables/RequestService.html":{},"coverage.html":{}}}],["src/app/services/api/request.service.ts:12",{"_index":1033,"title":{},"body":{"injectables/RequestService.html":{}}}],["src/app/services/api/request.service.ts:13",{"_index":1037,"title":{},"body":{"injectables/RequestService.html":{}}}],["src/app/services/api/request.service.ts:17",{"_index":1020,"title":{},"body":{"injectables/RequestService.html":{}}}],["src/app/services/api/request.service.ts:20",{"_index":1027,"title":{},"body":{"injectables/RequestService.html":{}}}],["src/app/services/api/request.service.ts:24",{"_index":1030,"title":{},"body":{"injectables/RequestService.html":{}}}],["src/app/services/api/request.service.ts:35",{"_index":1023,"title":{},"body":{"injectables/RequestService.html":{}}}],["src/app/services/api/seasons.service.t",{"_index":1081,"title":{},"body":{"injectables/SeasonsService.html":{},"coverage.html":{}}}],["src/app/services/api/seasons.service.ts:12",{"_index":1083,"title":{},"body":{"injectables/SeasonsService.html":{}}}],["src/app/services/api/seasons.service.ts:19",{"_index":1084,"title":{},"body":{"injectables/SeasonsService.html":{}}}],["src/app/services/api/seasons.service.ts:9",{"_index":1082,"title":{},"body":{"injectables/SeasonsService.html":{}}}],["src/app/services/loc",{"_index":798,"title":{},"body":{"injectables/LocalStorageService.html":{},"coverage.html":{}}}],["src/app/services/settings.service.t",{"_index":1098,"title":{},"body":{"injectables/SettingsService.html":{},"coverage.html":{}}}],["src/app/services/settings.service.ts:6",{"_index":1099,"title":{},"body":{"injectables/SettingsService.html":{}}}],["src/app/services/shared.service.t",{"_index":1110,"title":{},"body":{"injectables/SharedService.html":{},"coverage.html":{}}}],["src/app/services/shared.service.ts:13",{"_index":1114,"title":{},"body":{"injectables/SharedService.html":{}}}],["src/app/services/shared.service.ts:7",{"_index":1112,"title":{},"body":{"injectables/SharedService.html":{}}}],["src/app/services/sidebar.service.t",{"_index":1148,"title":{},"body":{"injectables/SidebarService.html":{},"coverage.html":{}}}],["src/app/services/sidebar.service.ts:7",{"_index":1160,"title":{},"body":{"injectables/SidebarService.html":{}}}],["src/app/shared/breadcrumb/breadcrumb.component.t",{"_index":199,"title":{},"body":{"components/BreadcrumbComponent.html":{},"coverage.html":{}}}],["src/app/shared/breadcrumb/breadcrumb.component.ts:10",{"_index":209,"title":{},"body":{"components/BreadcrumbComponent.html":{}}}],["src/app/shared/breadcrumb/breadcrumb.component.ts:13",{"_index":211,"title":{},"body":{"components/BreadcrumbComponent.html":{}}}],["src/app/shared/footer/footer.component.t",{"_index":606,"title":{},"body":{"components/FooterComponent.html":{},"coverage.html":{}}}],["src/app/shared/footer/footer.component.ts:12",{"_index":611,"title":{},"body":{"components/FooterComponent.html":{}}}],["src/app/shared/footer/footer.component.ts:9",{"_index":610,"title":{},"body":{"components/FooterComponent.html":{}}}],["src/app/shared/header/header.component.t",{"_index":713,"title":{},"body":{"components/HeaderComponent.html":{},"coverage.html":{}}}],["src/app/shared/header/header.component.ts:12",{"_index":720,"title":{},"body":{"components/HeaderComponent.html":{}}}],["src/app/shared/header/header.component.ts:15",{"_index":722,"title":{},"body":{"components/HeaderComponent.html":{}}}],["src/app/shared/header/header.component.ts:27",{"_index":721,"title":{},"body":{"components/HeaderComponent.html":{}}}],["src/app/shared/notpagefound/notpagefound.component.t",{"_index":883,"title":{},"body":{"components/NotpagefoundComponent.html":{},"coverage.html":{}}}],["src/app/shared/notpagefound/notpagefound.component.ts:12",{"_index":888,"title":{},"body":{"components/NotpagefoundComponent.html":{}}}],["src/app/shared/notpagefound/notpagefound.component.ts:8",{"_index":887,"title":{},"body":{"components/NotpagefoundComponent.html":{}}}],["src/app/shared/scrol",{"_index":1055,"title":{},"body":{"components/ScrollTopComponent.html":{},"coverage.html":{}}}],["src/app/shared/shared.module.t",{"_index":1100,"title":{},"body":{"modules/SharedModule.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["src/app/shared/sidebar/sidebar.component.t",{"_index":1119,"title":{},"body":{"components/SidebarComponent.html":{},"coverage.html":{}}}],["src/app/shared/sidebar/sidebar.component.ts:10",{"_index":1135,"title":{},"body":{"components/SidebarComponent.html":{}}}],["src/app/shared/sidebar/sidebar.component.ts:11",{"_index":1130,"title":{},"body":{"components/SidebarComponent.html":{}}}],["src/app/shared/sidebar/sidebar.component.ts:12",{"_index":1133,"title":{},"body":{"components/SidebarComponent.html":{}}}],["src/app/shared/sidebar/sidebar.component.ts:26",{"_index":1131,"title":{},"body":{"components/SidebarComponent.html":{}}}],["src/app/shared/sidebar/sidebar.component.ts:30",{"_index":1132,"title":{},"body":{"components/SidebarComponent.html":{}}}],["src/environments/api",{"_index":1239,"title":{},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["src/environments/environment.prod.t",{"_index":1242,"title":{},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["src/environments/environment.t",{"_index":1244,"title":{},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["src/test.t",{"_index":1245,"title":{},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["start",{"_index":896,"title":{"index.html":{}},"body":{"components/PagesComponent.html":{}}}],["starterbootstrapadminangular6",{"_index":1278,"title":{},"body":{"index.html":{}}}],["statement",{"_index":1212,"title":{},"body":{"coverage.html":{}}}],["static",{"_index":416,"title":{},"body":{"components/CircuitsComponent.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"modules/PagesModule.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["static/dev",{"_index":686,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["staticmap",{"_index":678,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["statu",{"_index":795,"title":{},"body":{"components/HeaderComponent.html":{}}}],["status.json",{"_index":1357,"title":{},"body":{"miscellaneous/variables.html":{}}}],["status.json?limit=1000",{"_index":1356,"title":{},"body":{"miscellaneous/variables.html":{}}}],["status_url",{"_index":1225,"title":{},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["storage.servic",{"_index":520,"title":{},"body":{"components/DashboardComponent.html":{},"components/HeaderComponent.html":{},"components/LoginComponent.html":{}}}],["storage.service.t",{"_index":799,"title":{},"body":{"injectables/LocalStorageService.html":{},"coverage.html":{}}}],["storage.service.ts:13",{"_index":810,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["storage.service.ts:18",{"_index":815,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["storage.service.ts:22",{"_index":812,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["storage.service.ts:29",{"_index":808,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["storage.service.ts:7",{"_index":806,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["storage.service.ts:9",{"_index":814,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["store",{"_index":1297,"title":{},"body":{"index.html":{}}}],["string",{"_index":87,"title":{},"body":{"components/AppComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"interfaces/Circuit.html":{},"components/CircuitsComponent.html":{},"interfaces/Confirm.html":{},"interfaces/Constructor.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"interfaces/Driver.html":{},"components/DriversComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"injectables/LocalStorageService.html":{},"interfaces/Location.html":{},"pipes/LocationTextPipe.html":{},"interfaces/Login.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"interfaces/Race.html":{},"components/RacesComponent.html":{},"injectables/RequestService.html":{},"interfaces/Season.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"interfaces/User.html":{},"miscellaneous/variables.html":{}}}],["string(new",{"_index":407,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{}}}],["styleurl",{"_index":82,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["sub.titl",{"_index":1147,"title":{},"body":{"components/SidebarComponent.html":{}}}],["subscribe((data",{"_index":442,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["success",{"_index":44,"title":{},"body":{"injectables/AlertService.html":{},"miscellaneous/enumerations.html":{}}}],["successdata",{"_index":11,"title":{},"body":{"injectables/AlertService.html":{}}}],["support",{"_index":149,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"modules.html":{}}}],["support.component.css",{"_index":1162,"title":{},"body":{"components/SupportComponent.html":{}}}],["support.component.html",{"_index":1163,"title":{},"body":{"components/SupportComponent.html":{}}}],["support/support.compon",{"_index":937,"title":{},"body":{"modules/PagesModule.html":{}}}],["supportcompon",{"_index":148,"title":{"components/SupportComponent.html":{}},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"modules/PagesModule.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["sure",{"_index":732,"title":{},"body":{"components/HeaderComponent.html":{}}}],["svg",{"_index":1314,"title":{},"body":{"modules.html":{}}}],["swal",{"_index":33,"title":{},"body":{"injectables/AlertService.html":{},"components/CircuitsComponent.html":{},"components/DriversComponent.html":{}}}],["swal('good",{"_index":40,"title":{},"body":{"injectables/AlertService.html":{}}}],["swal.clos",{"_index":57,"title":{},"body":{"injectables/AlertService.html":{}}}],["swal.dismissreason.tim",{"_index":53,"title":{},"body":{"injectables/AlertService.html":{}}}],["swal.showload",{"_index":46,"title":{},"body":{"injectables/AlertService.html":{}}}],["sweetalert2",{"_index":34,"title":{},"body":{"injectables/AlertService.html":{},"components/CircuitsComponent.html":{},"interfaces/Confirm.html":{},"components/DriversComponent.html":{},"modules/PagesModule.html":{},"dependencies.html":{}}}],["sweetalert2modul",{"_index":911,"title":{},"body":{"modules/PagesModule.html":{}}}],["sweetalert2module.forroot",{"_index":953,"title":{},"body":{"modules/PagesModule.html":{}}}],["sweetalerttyp",{"_index":496,"title":{},"body":{"interfaces/Confirm.html":{}}}],["system",{"_index":787,"title":{},"body":{"components/HeaderComponent.html":{}}}],["t",{"_index":706,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["tabl",{"_index":916,"title":{},"body":{"modules/PagesModule.html":{},"coverage.html":{},"dependencies.html":{}}}],["tablemodul",{"_index":913,"title":{},"body":{"modules/PagesModule.html":{}}}],["tablesort(document.getelementbyid('coverag",{"_index":1248,"title":{},"body":{"coverage.html":{}}}],["tachomet",{"_index":1152,"title":{},"body":{"injectables/SidebarService.html":{}}}],["take",{"_index":399,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["takeuserlogindata",{"_index":805,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["te",{"_index":1199,"title":{},"body":{"components/SupportComponent.html":{}}}],["templat",{"_index":75,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["templateurl",{"_index":84,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["terrain",{"_index":703,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["test",{"_index":1303,"title":{},"body":{"index.html":{}}}],["text",{"_index":59,"title":{},"body":{"injectables/AlertService.html":{},"interfaces/Confirm.html":{},"components/DashboardComponent.html":{},"components/HeaderComponent.html":{}}}],["text.pip",{"_index":421,"title":{},"body":{"components/CircuitsComponent.html":{},"modules/PagesModule.html":{}}}],["text.pipe.t",{"_index":827,"title":{},"body":{"pipes/LocationTextPipe.html":{},"coverage.html":{}}}],["text.pipe.ts:9",{"_index":828,"title":{},"body":{"pipes/LocationTextPipe.html":{}}}],["thank",{"_index":770,"title":{},"body":{"components/HeaderComponent.html":{}}}],["then(result",{"_index":47,"title":{},"body":{"injectables/AlertService.html":{},"components/HeaderComponent.html":{}}}],["this._alertservice.closealert",{"_index":434,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["this._alertservice.loaddata",{"_index":426,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["this._circuitservic",{"_index":440,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["this._circuitservice.listbyyear(year).subscrib",{"_index":436,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["this._driversservice.listbyyear(year).subscrib",{"_index":585,"title":{},"body":{"components/DriversComponent.html":{}}}],["this._driversservice.loadlistfromlocal().subscribe((data",{"_index":587,"title":{},"body":{"components/DriversComponent.html":{}}}],["this._http",{"_index":1041,"title":{},"body":{"injectables/RequestService.html":{}}}],["this._http.get(`${this.api_url}${queri",{"_index":1040,"title":{},"body":{"injectables/RequestService.html":{}}}],["this._http.get(path",{"_index":1047,"title":{},"body":{"injectables/RequestService.html":{}}}],["this._racesservice.loadlistfromlocal().subscribe((data",{"_index":986,"title":{},"body":{"components/RacesComponent.html":{}}}],["this._seasonservice.loadlistfromlocal().subscribe((data",{"_index":1078,"title":{},"body":{"components/SeasonsComponent.html":{}}}],["this.alertservice.confirm",{"_index":731,"title":{},"body":{"components/HeaderComponent.html":{}}}],["this.change.emit(pag",{"_index":1118,"title":{},"body":{"injectables/SharedService.html":{}}}],["this.circuitsdata.length",{"_index":648,"title":{},"body":{"components/GoogleMapsComponent.html":{}}}],["this.circuitslist",{"_index":438,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["this.default",{"_index":552,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["this.driverslist",{"_index":586,"title":{},"body":{"components/DriversComponent.html":{}}}],["this.getkey",{"_index":695,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["this.getmaptype(typ",{"_index":692,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["this.getsize(width",{"_index":690,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["this.getzoom(zoom",{"_index":694,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["this.httpopt",{"_index":1043,"title":{},"body":{"injectables/RequestService.html":{}}}],["this.lat",{"_index":652,"title":{},"body":{"components/GoogleMapsComponent.html":{},"classes/Marker.html":{}}}],["this.lng",{"_index":653,"title":{},"body":{"components/GoogleMapsComponent.html":{},"classes/Marker.html":{}}}],["this.loaddatadialog",{"_index":435,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["this.loaddatadialog(fals",{"_index":444,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["this.loaddatafromasset",{"_index":425,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["this.loc",{"_index":874,"title":{},"body":{"classes/Marker.html":{}}}],["this.localstorage.clearselectdata('user_credenti",{"_index":728,"title":{},"body":{"components/HeaderComponent.html":{}}}],["this.localstorage.savedatainloc",{"_index":847,"title":{},"body":{"components/LoginComponent.html":{}}}],["this.localstorage.takeuserlogindata",{"_index":724,"title":{},"body":{"components/HeaderComponent.html":{},"components/LoginComponent.html":{}}}],["this.localstorageservice.takeuserlogindata",{"_index":522,"title":{},"body":{"components/DashboardComponent.html":{}}}],["this.markers.push",{"_index":650,"title":{},"body":{"components/GoogleMapsComponent.html":{}}}],["this.nam",{"_index":873,"title":{},"body":{"classes/Marker.html":{}}}],["this.raceslist",{"_index":988,"title":{},"body":{"components/RacesComponent.html":{}}}],["this.request",{"_index":490,"title":{},"body":{"injectables/CircuitsService.html":{},"injectables/RacesService.html":{},"injectables/SeasonsService.html":{}}}],["this.request.getjson('./../../../assets/data/api/drivers2018.json",{"_index":605,"title":{},"body":{"injectables/DriversService.html":{}}}],["this.request.getquery(year",{"_index":603,"title":{},"body":{"injectables/DriversService.html":{}}}],["this.router.navigate(['/dashboard",{"_index":846,"title":{},"body":{"components/LoginComponent.html":{}}}],["this.router.navigate(['/login",{"_index":525,"title":{},"body":{"components/DashboardComponent.html":{},"components/HeaderComponent.html":{}}}],["this.savedatainloc",{"_index":816,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["this.season",{"_index":1079,"title":{},"body":{"components/SeasonsComponent.html":{}}}],["this.selectpag",{"_index":215,"title":{},"body":{"components/BreadcrumbComponent.html":{}}}],["this.selectpageservice.change.subscribe(pag",{"_index":214,"title":{},"body":{"components/BreadcrumbComponent.html":{}}}],["this.selectpageservice.setselectpag",{"_index":437,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/SeasonsComponent.html":{}}}],["this.selectpageservice.setselectpage('chart",{"_index":361,"title":{},"body":{"components/ChartComponent.html":{}}}],["this.selectpageservice.setselectpage('circuit",{"_index":424,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["this.selectpageservice.setselectpage('dashboard",{"_index":523,"title":{},"body":{"components/DashboardComponent.html":{}}}],["this.selectpageservice.setselectpage('driv",{"_index":584,"title":{},"body":{"components/DriversComponent.html":{}}}],["this.selectpageservice.setselectpage('set",{"_index":1096,"title":{},"body":{"components/SettingsComponent.html":{}}}],["this.selectpageservice.setselectpage('support",{"_index":1166,"title":{},"body":{"components/SupportComponent.html":{}}}],["this.selectpageservice.setselectpage(`${this.selectyear",{"_index":987,"title":{},"body":{"components/RacesComponent.html":{}}}],["this.selectpageservice.setselectpage(`circuit",{"_index":443,"title":{},"body":{"components/CircuitsComponent.html":{}}}],["this.selectpageservice.setselectpage(`rac",{"_index":985,"title":{},"body":{"components/RacesComponent.html":{}}}],["this.selectyear",{"_index":428,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{}}}],["this.showinfo",{"_index":423,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["this.src",{"_index":551,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["this.staticmap",{"_index":696,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["this.takeuserlogindata",{"_index":818,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["this.us",{"_index":521,"title":{},"body":{"components/DashboardComponent.html":{}}}],["this.user_credenti",{"_index":817,"title":{},"body":{"injectables/LocalStorageService.html":{}}}],["this.usernamelastnam",{"_index":725,"title":{},"body":{"components/HeaderComponent.html":{}}}],["thumb",{"_index":461,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{}}}],["time",{"_index":969,"title":{},"body":{"interfaces/Race.html":{}}}],["timer",{"_index":56,"title":{},"body":{"injectables/AlertService.html":{}}}],["titl",{"_index":29,"title":{},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"components/CircuitsComponent.html":{},"interfaces/Confirm.html":{},"components/DriversComponent.html":{},"components/HeaderComponent.html":{},"injectables/SidebarService.html":{}}}],["toggl",{"_index":1127,"title":{},"body":{"components/SidebarComponent.html":{}}}],["toggledsidenav",{"_index":1125,"title":{},"body":{"components/SidebarComponent.html":{}}}],["token",{"_index":1203,"title":{},"body":{"interfaces/User.html":{}}}],["top",{"_index":1058,"title":{},"body":{"components/ScrollTopComponent.html":{},"components/SidebarComponent.html":{}}}],["top'},{'nam",{"_index":141,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["top.compon",{"_index":1106,"title":{},"body":{"modules/SharedModule.html":{}}}],["top.component.css",{"_index":1059,"title":{},"body":{"components/ScrollTopComponent.html":{}}}],["top.component.html",{"_index":1060,"title":{},"body":{"components/ScrollTopComponent.html":{}}}],["top.component.t",{"_index":1057,"title":{},"body":{"components/ScrollTopComponent.html":{},"coverage.html":{}}}],["top.component.ts:12",{"_index":1062,"title":{},"body":{"components/ScrollTopComponent.html":{}}}],["top.component.ts:8",{"_index":1061,"title":{},"body":{"components/ScrollTopComponent.html":{}}}],["top/scrol",{"_index":1056,"title":{},"body":{"components/ScrollTopComponent.html":{},"modules/SharedModule.html":{},"coverage.html":{}}}],["touppercas",{"_index":228,"title":{},"body":{"pipes/CapitalizePipe.html":{}}}],["tour",{"_index":293,"title":{},"body":{"components/ChartComponent.html":{}}}],["toverux/ngx",{"_index":912,"title":{},"body":{"modules/PagesModule.html":{},"dependencies.html":{}}}],["transform",{"_index":223,"title":{},"body":{"pipes/CapitalizePipe.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"pipes/LocationTextPipe.html":{},"pipes/RoundPipe.html":{},"pipes/WikipediaUrlMobilePipe.html":{}}}],["transform(input",{"_index":224,"title":{},"body":{"pipes/CapitalizePipe.html":{}}}],["transform(loc",{"_index":657,"title":{},"body":{"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"pipes/LocationTextPipe.html":{}}}],["transform(valu",{"_index":1049,"title":{},"body":{"pipes/RoundPipe.html":{},"pipes/WikipediaUrlMobilePipe.html":{}}}],["tree",{"_index":77,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["true",{"_index":63,"title":{},"body":{"injectables/AlertService.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/HeaderComponent.html":{},"injectables/LocalStorageService.html":{},"components/LoginComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{},"miscellaneous/variables.html":{}}}],["tslint:dis",{"_index":541,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["type",{"_index":23,"title":{},"body":{"injectables/AlertService.html":{},"components/AppComponent.html":{},"components/BreadcrumbComponent.html":{},"pipes/CapitalizePipe.html":{},"components/ChartComponent.html":{},"interfaces/Circuit.html":{},"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"interfaces/Confirm.html":{},"interfaces/Constructor.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"interfaces/Driver.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"components/HeaderComponent.html":{},"injectables/LocalStorageService.html":{},"interfaces/Location.html":{},"pipes/LocationTextPipe.html":{},"interfaces/Login.html":{},"components/LoginComponent.html":{},"classes/Marker.html":{},"interfaces/MarkerIF.html":{},"interfaces/Race.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"interfaces/Season.html":{},"components/SeasonsComponent.html":{},"injectables/SeasonsService.html":{},"components/SettingsComponent.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"components/SupportComponent.html":{},"interfaces/User.html":{},"pipes/WikipediaUrlMobilePipe.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["typeconfirm",{"_index":1272,"title":{},"body":{"miscellaneous/enumerations.html":{}}}],["ullamcorp",{"_index":1188,"title":{},"body":{"components/SupportComponent.html":{}}}],["unit",{"_index":1302,"title":{},"body":{"index.html":{}}}],["up",{"_index":462,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RegisterComponent.html":{}}}],["updat",{"_index":471,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DriversComponent.html":{},"components/HeaderComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["updateurl",{"_index":535,"title":{},"body":{"directives/DefaultImageDirective.html":{}}}],["url",{"_index":376,"title":{},"body":{"interfaces/Circuit.html":{},"interfaces/Constructor.html":{},"interfaces/Driver.html":{},"modules/PagesModule.html":{},"interfaces/Race.html":{},"interfaces/Season.html":{},"pipes/WikipediaUrlMobilePipe.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["url.pip",{"_index":418,"title":{},"body":{"components/CircuitsComponent.html":{},"modules/PagesModule.html":{}}}],["url.pipe.t",{"_index":656,"title":{},"body":{"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"coverage.html":{}}}],["url.pipe.ts:12",{"_index":680,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["url.pipe.ts:16",{"_index":677,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["url.pipe.ts:36",{"_index":664,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["url.pipe.ts:40",{"_index":671,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["url.pipe.ts:44",{"_index":667,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["url.pipe.ts:58",{"_index":675,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["url.pipe.ts:8",{"_index":658,"title":{},"body":{"pipes/GoogleMapsUrlPipe.html":{}}}],["url_localhost",{"_index":1032,"title":{},"body":{"injectables/RequestService.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["us",{"_index":308,"title":{},"body":{"components/ChartComponent.html":{},"components/PagesComponent.html":{},"index.html":{}}}],["usehash",{"_index":1333,"title":{},"body":{"miscellaneous/variables.html":{}}}],["user",{"_index":512,"title":{"interfaces/User.html":{}},"body":{"components/DashboardComponent.html":{},"injectables/LocalStorageService.html":{},"components/LoginComponent.html":{},"interfaces/User.html":{},"coverage.html":{}}}],["user.lastnam",{"_index":528,"title":{},"body":{"components/DashboardComponent.html":{}}}],["user.nam",{"_index":527,"title":{},"body":{"components/DashboardComponent.html":{}}}],["user_credenti",{"_index":800,"title":{},"body":{"injectables/LocalStorageService.html":{},"components/LoginComponent.html":{}}}],["usernam",{"_index":1011,"title":{},"body":{"components/RegisterComponent.html":{},"interfaces/User.html":{}}}],["usernamelastnam",{"_index":717,"title":{},"body":{"components/HeaderComponent.html":{}}}],["valu",{"_index":89,"title":{},"body":{"components/AppComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/GoogleMapsComponent.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"injectables/LocalStorageService.html":{},"components/LoginComponent.html":{},"components/RacesComponent.html":{},"injectables/RequestService.html":{},"pipes/RoundPipe.html":{},"components/SeasonsComponent.html":{},"components/SidebarComponent.html":{},"injectables/SidebarService.html":{},"pipes/WikipediaUrlMobilePipe.html":{},"miscellaneous/enumerations.html":{},"miscellaneous/variables.html":{}}}],["value.replace('wikipedia",{"_index":1208,"title":{},"body":{"pipes/WikipediaUrlMobilePipe.html":{}}}],["var",{"_index":94,"title":{},"body":{"components/AppComponent.html":{},"components/BarChartComponent.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DoughnutChartComponent.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"components/LineChartComponent.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PieChartComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["variabl",{"_index":1215,"title":{"miscellaneous/variables.html":{}},"body":{"coverage.html":{},"miscellaneous/variables.html":{}}}],["vel",{"_index":1185,"title":{},"body":{"components/SupportComponent.html":{}}}],["version",{"_index":749,"title":{},"body":{"components/HeaderComponent.html":{},"index.html":{}}}],["via",{"_index":1305,"title":{},"body":{"index.html":{}}}],["view",{"_index":782,"title":{},"body":{"components/HeaderComponent.html":{}}}],["vincenzo",{"_index":284,"title":{},"body":{"components/ChartComponent.html":{}}}],["void",{"_index":18,"title":{},"body":{"injectables/AlertService.html":{},"components/BreadcrumbComponent.html":{},"components/ChartComponent.html":{},"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"directives/DefaultImageDirective.html":{},"components/DriversComponent.html":{},"components/FooterComponent.html":{},"components/ForgotComponent.html":{},"components/GoogleMapsComponent.html":{},"components/HeaderComponent.html":{},"injectables/LocalStorageService.html":{},"components/LoginComponent.html":{},"components/NotpagefoundComponent.html":{},"components/PagesComponent.html":{},"components/PolarAreaChartComponent.html":{},"components/RacesComponent.html":{},"components/RadarChartComponent.html":{},"components/RegisterComponent.html":{},"components/ScrollTopComponent.html":{},"components/SeasonsComponent.html":{},"components/SettingsComponent.html":{},"injectables/SharedService.html":{},"components/SidebarComponent.html":{},"components/SupportComponent.html":{}}}],["wait",{"_index":431,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DriversComponent.html":{},"components/RacesComponent.html":{},"components/SeasonsComponent.html":{}}}],["warn",{"_index":735,"title":{},"body":{"components/HeaderComponent.html":{},"miscellaneous/enumerations.html":{}}}],["welcom",{"_index":526,"title":{},"body":{"components/DashboardComponent.html":{}}}],["width",{"_index":672,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["wikipediaurlmobil",{"_index":1206,"title":{},"body":{"pipes/WikipediaUrlMobilePipe.html":{}}}],["wikipediaurlmobilepip",{"_index":946,"title":{"pipes/WikipediaUrlMobilePipe.html":{}},"body":{"modules/PagesModule.html":{},"pipes/WikipediaUrlMobilePipe.html":{},"coverage.html":{},"miscellaneous/variables.html":{}}}],["won",{"_index":292,"title":{},"body":{"components/ChartComponent.html":{}}}],["won\\'t",{"_index":733,"title":{},"body":{"components/HeaderComponent.html":{}}}],["wonder",{"_index":764,"title":{},"body":{"components/HeaderComponent.html":{}}}],["work",{"_index":965,"title":{},"body":{"components/PolarAreaChartComponent.html":{},"components/RadarChartComponent.html":{},"components/SettingsComponent.html":{}}}],["world",{"_index":300,"title":{},"body":{"components/ChartComponent.html":{}}}],["wrench",{"_index":1159,"title":{},"body":{"injectables/SidebarService.html":{}}}],["ye",{"_index":69,"title":{},"body":{"injectables/AlertService.html":{},"components/ChartComponent.html":{},"components/HeaderComponent.html":{}}}],["year",{"_index":406,"title":{},"body":{"components/CircuitsComponent.html":{},"injectables/CircuitsService.html":{},"components/DriversComponent.html":{},"injectables/DriversService.html":{},"components/RacesComponent.html":{},"injectables/RacesService.html":{},"injectables/SidebarService.html":{}}}],["yellow",{"_index":355,"title":{},"body":{"components/ChartComponent.html":{}}}],["yesterday",{"_index":472,"title":{},"body":{"components/CircuitsComponent.html":{},"components/DashboardComponent.html":{},"components/DriversComponent.html":{}}}],["you'r",{"_index":777,"title":{},"body":{"components/HeaderComponent.html":{}}}],["you\\'r",{"_index":794,"title":{},"body":{"components/HeaderComponent.html":{}}}],["zone.j",{"_index":1268,"title":{},"body":{"dependencies.html":{}}}],["zoom",{"_index":165,"title":{},"body":{"modules/AppModule.html":{},"pipes/GoogleMapsUrlPipe.html":{},"pipes/GoogleStaticMapUrlPipe.html":{},"modules/LoginModule.html":{},"modules/PagesModule.html":{},"overview.html":{}}}],["zoom=${zoom",{"_index":712,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}],["zoomvalu",{"_index":693,"title":{},"body":{"pipes/GoogleStaticMapUrlPipe.html":{}}}]],"pipeline":["stemmer"]},
+    "store": {"injectables/AlertService.html":{"url":"injectables/AlertService.html","title":"injectable - AlertService","body":"\n                   \n\n\n\n\n\n\n\n\n  Injectables\n  AlertService\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/services/alert.service.ts\n        \n\n\n\n            \n    Index\n    \n        \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                closeAlert\n                            \n                            \n                                confirm\n                            \n                            \n                                loadData\n                            \n                            \n                                successData\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n            \n    Constructor\n        \n            \n                \n                    \nconstructor()\n                    \n                \n                        \n                            \n                                Defined in src/app/services/alert.service.ts:8\n                            \n                        \n\n            \n        \n\n\n            \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            closeAlert\n                            \n                            \n                        \n                    \n                \n                \n                    \ncloseAlert()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/alert.service.ts:32\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            confirm\n                            \n                            \n                        \n                    \n                \n                \n                    \nconfirm(data: Confirm)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/alert.service.ts:36\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        data\n                                                        \n                                                                    Confirm\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     any\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            loadData\n                            \n                            \n                        \n                    \n                \n                \n                    \nloadData(title: , html: )\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/alert.service.ts:15\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        title\n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                                \n                                                        html\n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     void\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            successData\n                            \n                            \n                        \n                    \n                \n                \n                    \nsuccessData()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/alert.service.ts:11\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n\n    \n\n\n    \n        import { Injectable } from '@angular/core';\nimport swal from 'sweetalert2';\nimport { Confirm } from '../interfaces/confirm.interface';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AlertService {\n  constructor() {}\n\n  successData() {\n    swal('Good job!', 'You clicked the button!', 'success');\n  }\n\n  loadData(title, html) {\n    swal({\n      title: title,\n      html: html,\n      onOpen: () => {\n        swal.showLoading();\n      }\n    }).then(result => {\n      if (\n        // Read more about handling dismissals\n        result.dismiss === swal.DismissReason.timer\n      ) {\n        console.log('I was closed by the timer');\n      }\n    });\n  }\n\n  closeAlert() {\n    swal.close();\n  }\n\n  confirm(data: Confirm) {\n    return swal({\n      title: data.title,\n      text: data.text,\n      type: data.type,\n      showCancelButton: true,\n      confirmButtonColor: '#3085d6',\n      cancelButtonColor: '#d33',\n      confirmButtonText: 'Yes, close session!'\n    });\n  }\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/AppComponent.html":{"url":"components/AppComponent.html","title":"component - AppComponent","body":"\n                   \n\n\n\n\n\n  Components\n  AppComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/app.component.ts\n\n\n\n\n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-root\n            \n\n            \n                styleUrls\n                app.component.css\n            \n\n\n\n            \n                templateUrl\n                ./app.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                title\n                            \n                        \n                    \n                \n\n\n\n\n\n\n        \n    \n\n\n\n\n\n\n\n\n    \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            title\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        title:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                    \n                        \n                            Default value : 'app'\n                        \n                    \n                        \n                            \n                                    Defined in src/app/app.component.ts:9\n                            \n                        \n\n\n            \n        \n\n\n\n\n\n    \n        import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n  title = 'app';\n}\n\n    \n\n    \n        \n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = ''\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'AppComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"modules/AppModule.html":{"url":"modules/AppModule.html","title":"module - AppModule","body":"\n                   \n\n\n\n\n  Modules\n  AppModule\n\n\n      \n          \n              \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_AppModule\n\n\n\ncluster_AppModule_declarations\n\n\n\ncluster_AppModule_imports\n\n\n\ncluster_AppModule_bootstrap\n\n\n\n\nAppComponent\n\nAppComponent\n\n\n\nAppModule\n\nAppModule\n\nAppModule -->\n\nAppComponent->AppModule\n\n\n\n\n\nAppComponent \n\nAppComponent \n\nAppComponent  -->\n\nAppModule->AppComponent \n\n\n\n\n\nLoginModule\n\nLoginModule\n\nAppModule -->\n\nLoginModule->AppModule\n\n\n\n\n\nPagesModule\n\nPagesModule\n\nAppModule -->\n\nPagesModule->AppModule\n\n\n\n\n\n\n          \n          \n          \n              Zoom in\n              Reset\n              Zoom out\n          \n      \n      \n      \n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n\n        \n            File\n        \n        \n            src/app/app.module.ts\n        \n\n\n        \n\n        \n            \n                \n                    Declarations\n                    \n                            \n                                AppComponent\n                            \n                    \n                \n                \n                    Imports\n                    \n                            \n                                    LoginModule\n                            \n                            \n                                    PagesModule\n                            \n                    \n                \n                \n                    Bootstrap\n                    \n                            \n                                AppComponent\n                            \n                    \n                \n            \n        \n    \n\n\n    \n        import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { I18nConfigModule } from 'i18n-config';\nimport { PagesModule } from './pages/pages.module';\nimport { LoginModule } from './login/login.module';\n\nimport { AppComponent } from './app.component';\nimport { APP_ROUTES } from './app.routes';\n\n@NgModule({\n  declarations: [\n    AppComponent\n  ],\n  imports: [\n    APP_ROUTES,\n    BrowserModule,\n    I18nConfigModule.forRoot(),\n    PagesModule,\n    LoginModule\n  ],\n  bootstrap: [AppComponent]\n})\nexport class AppModule {}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/BarChartComponent.html":{"url":"components/BarChartComponent.html","title":"component - BarChartComponent","body":"\n                   \n\n\n\n\n\n  Components\n  BarChartComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/components/charts/bar-chart/bar-chart.component.ts\n\n\n\n\n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-bar-chart\n            \n\n            \n                styleUrls\n                bar-chart.component.css\n            \n\n\n\n            \n                templateUrl\n                ./bar-chart.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n\n\n                \n                    \n                        Inputs\n                    \n                \n                \n                    \n                        \n                            \n                                chartType\n                            \n                            \n                                colors\n                            \n                            \n                                datasets\n                            \n                            \n                                labels\n                            \n                            \n                                legend\n                            \n                            \n                                options\n                            \n                        \n                    \n                \n\n\n\n\n        \n    \n\n\n\n    \n    Inputs\n        \n            \n                \n                    \n                        \n                        chartType\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/bar-chart/bar-chart.component.ts:14\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        colors\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/bar-chart/bar-chart.component.ts:12\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        datasets\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/bar-chart/bar-chart.component.ts:9\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        labels\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/bar-chart/bar-chart.component.ts:10\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        legend\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/bar-chart/bar-chart.component.ts:13\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        options\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/bar-chart/bar-chart.component.ts:11\n                            \n                        \n            \n        \n\n\n\n\n\n\n\n\n\n    \n        import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'app-bar-chart',\n  templateUrl: './bar-chart.component.html',\n  styleUrls: ['./bar-chart.component.css']\n})\nexport class BarChartComponent {\n  @Input() datasets;\n  @Input() labels;\n  @Input() options;\n  @Input() colors;\n  @Input() legend;\n  @Input() chartType;\n}\n\n    \n\n    \n        \n    \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '    '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'BarChartComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/BreadcrumbComponent.html":{"url":"components/BreadcrumbComponent.html","title":"component - BreadcrumbComponent","body":"\n                   \n\n\n\n\n\n  Components\n  BreadcrumbComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/shared/breadcrumb/breadcrumb.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-breadcrumb\n            \n\n            \n                styleUrls\n                breadcrumb.component.css\n            \n\n\n\n            \n                templateUrl\n                ./breadcrumb.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                selectPage\n                            \n                        \n                    \n                \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor(selectPageService: SharedService)\n                    \n                \n                        \n                            \n                                Defined in src/app/shared/breadcrumb/breadcrumb.component.ts:10\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        selectPageService\n                                                  \n                                                        \n                                                                    SharedService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/shared/breadcrumb/breadcrumb.component.ts:13\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n    \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            selectPage\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        selectPage:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/shared/breadcrumb/breadcrumb.component.ts:10\n                            \n                        \n\n\n            \n        \n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\nimport { SharedService } from '../../services/shared.service';\n\n@Component({\n  selector: 'app-breadcrumb',\n  templateUrl: './breadcrumb.component.html',\n  styleUrls: ['./breadcrumb.component.css']\n})\nexport class BreadcrumbComponent implements OnInit {\n  selectPage: string;\n  constructor( private selectPageService: SharedService) { }\n\n  ngOnInit() {\n    this.selectPageService.change.subscribe(page => {\n      this.selectPage = page;\n    });\n  }\n\n}\n\n    \n\n    \n        \n  \n    {{ selectPage | capitalize}}\n    Dashboard\n  \n  Blank Page-->\n  \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '      {{ selectPage | capitalize}}    Dashboard    Blank Page-->  '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'BreadcrumbComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"pipes/CapitalizePipe.html":{"url":"pipes/CapitalizePipe.html","title":"pipe - CapitalizePipe","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n  Pipes\n  CapitalizePipe\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n\n        \n            File\n        \n        \n            src/app/pipes/capitalize.pipe.ts\n        \n\n\n\n        \n            Metadata\n            \n                \n                    \n                        Name\n                        capitalize\n                    \n                \n            \n        \n\n            \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            transform\n                            \n                            \n                        \n                    \n                \n                \n                    \ntransform(input: any)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pipes/capitalize.pipe.ts:8\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        input\n                                                        \n                                                                    any\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     string\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n\n\n\n    \n\n\n    \n        import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'capitalize'\n})\nexport class CapitalizePipe implements PipeTransform {\n\n  transform(input: any): string {\n    return !!input ? input\n          .charAt(0)\n          .toUpperCase() + input.substr(1).toLowerCase() : '';\n  }\n\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/ChartComponent.html":{"url":"components/ChartComponent.html","title":"component - ChartComponent","body":"\n                   \n\n\n\n\n\n  Components\n  ChartComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/pages/charts/chart.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-chart\n            \n\n            \n                styleUrls\n                chart.component.css\n            \n\n\n\n            \n                templateUrl\n                ./chart.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                    Public\n                                barChartData\n                            \n                            \n                                    Public\n                                barChartLabels\n                            \n                            \n                                    Public\n                                barChartLegend\n                            \n                            \n                                    Public\n                                barChartOptions\n                            \n                            \n                                    Public\n                                barChartType\n                            \n                            \n                                graphics\n                            \n                            \n                                    Public\n                                lineChartColors\n                            \n                            \n                                    Public\n                                lineChartData\n                            \n                            \n                                    Public\n                                lineChartLabels\n                            \n                            \n                                    Public\n                                lineChartLegend\n                            \n                            \n                                    Public\n                                lineChartOptions\n                            \n                            \n                                    Public\n                                lineChartType\n                            \n                            \n                                    Public\n                                pieChartColors\n                            \n                            \n                                    Public\n                                pieChartData\n                            \n                            \n                                    Public\n                                pieChartLabels\n                            \n                            \n                                    Public\n                                pieChartType\n                            \n                        \n                    \n                \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor(selectPageService: SharedService)\n                    \n                \n                        \n                            \n                                Defined in src/app/pages/charts/chart.component.ts:98\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        selectPageService\n                                                  \n                                                        \n                                                                    SharedService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:102\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n    \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            barChartData\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        barChartData:     any[]\n\n                    \n                \n                    \n                        \n                            Type :     any[]\n\n                        \n                    \n                    \n                        \n                            Default value : [\n    {data: [65, 59, 80, 81, 56, 55, 40], label: 'Series A'},\n    {data: [28, 48, 40, 19, 86, 27, 90], label: 'Series B'}\n  ]\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:88\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            barChartLabels\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        barChartLabels:     string[]\n\n                    \n                \n                    \n                        \n                            Type :     string[]\n\n                        \n                    \n                    \n                        \n                            Default value : ['2006', '2007', '2008', '2009', '2010', '2011', '2012']\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:84\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            barChartLegend\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        barChartLegend:     \n\n                    \n                \n                    \n                        \n                            Default value : true\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:86\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            barChartOptions\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        barChartOptions:     any\n\n                    \n                \n                    \n                        \n                            Type :     any\n\n                        \n                    \n                    \n                        \n                            Default value : {\n    scaleShowVerticalLines: false,\n    responsive: true\n  }\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:80\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            barChartType\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        barChartType:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                    \n                        \n                            Default value : 'bar'\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:85\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            graphics\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        graphics:     any\n\n                    \n                \n                    \n                        \n                            Type :     any\n\n                        \n                    \n                    \n                        \n                            Default value : [\n    {\n      labels: ['Christopher Froome', 'Mikel Landa', 'Vincenzo Niballi', 'Nairo Quintana'],\n      data: [24, 30, 44, 2],\n      type: 'doughnut',\n      legend: 'Who has won the tour of france 2017?'\n    },\n    {\n      labels: ['France', 'Croatia'],\n      data: [65, 35],\n      type: 'doughnut',\n      legend: 'Who has won the 2018 soccer world cup?'\n    },\n    {\n      labels: ['Yes', 'No'],\n      data: [95, 5],\n      type: 'doughnut',\n      legend: 'Do you like Football?'\n    },\n    {\n      labels: ['No', 'Yes'],\n      data: [85, 15],\n      type: 'doughnut',\n      legend: 'Do you like VAR?'\n    }\n  ]\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:13\n                            \n                        \n\n                \n                    \n                        Values to use with dona graphic component\n\n                    \n                \n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            lineChartColors\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        lineChartColors:     Array\n\n                    \n                \n                    \n                        \n                            Type :     Array\n\n                        \n                    \n                    \n                        \n                            Default value : [\n    { // grey\n      backgroundColor: 'rgba(148,159,177,0.2)',\n      borderColor: 'rgba(148,159,177,1)',\n      pointBackgroundColor: 'rgba(148,159,177,1)',\n      pointBorderColor: '#fff',\n      pointHoverBackgroundColor: '#fff',\n      pointHoverBorderColor: 'rgba(148,159,177,0.8)'\n    },\n    { // dark grey\n      backgroundColor: 'rgba(77,83,96,0.2)',\n      borderColor: 'rgba(77,83,96,1)',\n      pointBackgroundColor: 'rgba(77,83,96,1)',\n      pointBorderColor: '#fff',\n      pointHoverBackgroundColor: '#fff',\n      pointHoverBorderColor: 'rgba(77,83,96,1)'\n    },\n    { // grey\n      backgroundColor: 'rgba(148,159,177,0.2)',\n      borderColor: 'rgba(148,159,177,1)',\n      pointBackgroundColor: 'rgba(148,159,177,1)',\n      pointBorderColor: '#fff',\n      pointHoverBackgroundColor: '#fff',\n      pointHoverBorderColor: 'rgba(148,159,177,0.8)'\n    }\n  ]\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:50\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            lineChartData\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        lineChartData:     Array\n\n                    \n                \n                    \n                        \n                            Type :     Array\n\n                        \n                    \n                    \n                        \n                            Default value : [\n    {data: [65, 59, 80, 81, 56, 55, 40], label: '2016'},\n    {data: [28, 48, 40, 19, 86, 27, 90], label: '2017'},\n    {data: [18, 48, 77, 9, 100, 27, 40], label: '2018'}\n  ]\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:41\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            lineChartLabels\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        lineChartLabels:     Array\n\n                    \n                \n                    \n                        \n                            Type :     Array\n\n                        \n                    \n                    \n                        \n                            Default value : ['January', 'February', 'March', 'April', 'May', 'June', 'July']\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:46\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            lineChartLegend\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        lineChartLegend:     \n\n                    \n                \n                    \n                        \n                            Default value : true\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:76\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            lineChartOptions\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        lineChartOptions:     any\n\n                    \n                \n                    \n                        \n                            Type :     any\n\n                        \n                    \n                    \n                        \n                            Default value : {\n    responsive: true\n  }\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:47\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            lineChartType\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        lineChartType:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                    \n                        \n                            Default value : 'line'\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:77\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            pieChartColors\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        pieChartColors:     []\n\n                    \n                \n                    \n                        \n                            Type :     []\n\n                        \n                    \n                    \n                        \n                            Default value : ['#007bff', '#dc3545', '#ffc107', '#28a745']\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:97\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            pieChartData\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        pieChartData:     any[]\n\n                    \n                \n                    \n                        \n                            Type :     any[]\n\n                        \n                    \n                    \n                        \n                            Default value : [12.21, 15.58, 11.25, 8.32, 39]\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:96\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            pieChartLabels\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        pieChartLabels:     string[]\n\n                    \n                \n                    \n                        \n                            Type :     string[]\n\n                        \n                    \n                    \n                        \n                            Default value : ['Blue', 'Red', 'Yellow', 'Green', 'Ok']\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:95\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            pieChartType\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        pieChartType:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                    \n                        \n                            Default value : 'pie'\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/charts/chart.component.ts:98\n                            \n                        \n\n\n            \n        \n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\nimport { SharedService } from '../../services/shared.service';\n\n@Component({\n  selector: 'app-chart',\n  templateUrl: './chart.component.html',\n  styleUrls: ['./chart.component.css']\n})\nexport class ChartComponent implements OnInit {\n  /**\n   * Values to use with dona graphic component\n   */\n  graphics: any = [\n    {\n      labels: ['Christopher Froome', 'Mikel Landa', 'Vincenzo Niballi', 'Nairo Quintana'],\n      data: [24, 30, 44, 2],\n      type: 'doughnut',\n      legend: 'Who has won the tour of france 2017?'\n    },\n    {\n      labels: ['France', 'Croatia'],\n      data: [65, 35],\n      type: 'doughnut',\n      legend: 'Who has won the 2018 soccer world cup?'\n    },\n    {\n      labels: ['Yes', 'No'],\n      data: [95, 5],\n      type: 'doughnut',\n      legend: 'Do you like Football?'\n    },\n    {\n      labels: ['No', 'Yes'],\n      data: [85, 15],\n      type: 'doughnut',\n      legend: 'Do you like VAR?'\n    }\n  ];\n\n  // lineChart\n  public lineChartData: Array = [\n    {data: [65, 59, 80, 81, 56, 55, 40], label: '2016'},\n    {data: [28, 48, 40, 19, 86, 27, 90], label: '2017'},\n    {data: [18, 48, 77, 9, 100, 27, 40], label: '2018'}\n  ];\n  public lineChartLabels: Array = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];\n  public lineChartOptions: any = {\n    responsive: true\n  };\n  public lineChartColors: Array = [\n    { // grey\n      backgroundColor: 'rgba(148,159,177,0.2)',\n      borderColor: 'rgba(148,159,177,1)',\n      pointBackgroundColor: 'rgba(148,159,177,1)',\n      pointBorderColor: '#fff',\n      pointHoverBackgroundColor: '#fff',\n      pointHoverBorderColor: 'rgba(148,159,177,0.8)'\n    },\n    { // dark grey\n      backgroundColor: 'rgba(77,83,96,0.2)',\n      borderColor: 'rgba(77,83,96,1)',\n      pointBackgroundColor: 'rgba(77,83,96,1)',\n      pointBorderColor: '#fff',\n      pointHoverBackgroundColor: '#fff',\n      pointHoverBorderColor: 'rgba(77,83,96,1)'\n    },\n    { // grey\n      backgroundColor: 'rgba(148,159,177,0.2)',\n      borderColor: 'rgba(148,159,177,1)',\n      pointBackgroundColor: 'rgba(148,159,177,1)',\n      pointBorderColor: '#fff',\n      pointHoverBackgroundColor: '#fff',\n      pointHoverBorderColor: 'rgba(148,159,177,0.8)'\n    }\n  ];\n  public lineChartLegend = true;\n  public lineChartType = 'line';\n\n  // Bar chart\n  public barChartOptions: any = {\n    scaleShowVerticalLines: false,\n    responsive: true\n  };\n  public barChartLabels: string[] = ['2006', '2007', '2008', '2009', '2010', '2011', '2012'];\n  public barChartType = 'bar';\n  public barChartLegend = true;\n\n  public barChartData: any[] = [\n    {data: [65, 59, 80, 81, 56, 55, 40], label: 'Series A'},\n    {data: [28, 48, 40, 19, 86, 27, 90], label: 'Series B'}\n  ];\n\n  // Pie Chart\n  // Pie\n  public pieChartLabels: string[] = ['Blue', 'Red', 'Yellow', 'Green', 'Ok'];\n  public pieChartData: any[] =  [12.21, 15.58, 11.25, 8.32, 39];\n  public pieChartColors = ['#007bff', '#dc3545', '#ffc107', '#28a745'];\n  public pieChartType = 'pie';\n\n  constructor(private selectPageService: SharedService) { }\n\n  ngOnInit() {\n    this.selectPageService.setSelectPage('Charts');\n  }\n}\n\n    \n\n    \n        \n\n  \n     Doughnut Chart Examples\n  -->\n  \n    \n    \n        \n          \n          \n        \n    \n    \n  \n\n\n  \n       Line Data Chart Example\n  \n  \n      \n          \n            \n            \n          \n          \n            Precipitations in first six months of 2016, 2017 and 2018\n            \n              \n                {{label}}\n              \n              \n                {{d && d.data[j]}}\n              \n            \n          \n        \n  \n\n\n  \n       &nbsp; Bar chart Data example\n  \n  \n      \n          \n      \n  \n\n\n  \n     &nbsp; Pie Chart\n  \n  \n    \n      \n        \n        \n      \n      \n        \n      \n    \n  \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '       Doughnut Chart Examples  -->                                                                 Line Data Chart Example                                                                            Precipitations in first six months of 2016, 2017 and 2018                                          {{label}}                                            {{d && d.data[j]}}                                                         Bar chart Data example                                     Pie Chart                                                              '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'ChartComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"interfaces/Circuit.html":{"url":"interfaces/Circuit.html","title":"interface - Circuit","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n\n\n  Interfaces\n  Circuit\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/interfaces/circuit.interface.ts\n        \n\n\n\n        \n            Index\n            \n                \n                    \n                        \n                            Properties\n                        \n                    \n                    \n                        \n                            \n                                \n                                        circuitId\n                                \n                                \n                                        circuitName\n                                \n                                \n                                        Location\n                                \n                                \n                                        url\n                                \n                            \n                        \n                    \n                \n            \n        \n\n\n\n            \n                Properties\n                    \n                        \n                                \n                                    \n                                        \n                                        circuitId\n                                    \n                                \n                                \n                                    \n                                        circuitId:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        circuitName\n                                    \n                                \n                                \n                                    \n                                        circuitName:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        Location\n                                    \n                                \n                                \n                                    \n                                        Location:     Location\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     Location\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        url\n                                    \n                                \n                                \n                                    \n                                        url:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n            \n    \n\n\n    \n        import { Location } from './location.interface';\n\nexport interface Circuit {\n  circuitId: string;\n  url: string;\n  circuitName: string;\n  Location: Location;\n}\n\n    \n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/CircuitsComponent.html":{"url":"components/CircuitsComponent.html","title":"component - CircuitsComponent","body":"\n                   \n\n\n\n\n\n  Components\n  CircuitsComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/pages/circuits/circuits.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-circuits\n            \n\n            \n                styleUrls\n                circuits.component.css\n            \n\n\n\n            \n                templateUrl\n                ./circuits.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                circuitsList\n                            \n                            \n                                selectYear\n                            \n                            \n                                showInfo\n                            \n                        \n                    \n                \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                infoAlert\n                            \n                            \n                                    Private\n                                loadDataDialog\n                            \n                            \n                                loadDataFromAssets\n                            \n                            \n                                ngOnInit\n                            \n                            \n                                selectYearCircuits\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor(selectPageService: SharedService, _alertService: AlertService, _circuitService: CircuitsService)\n                    \n                \n                        \n                            \n                                Defined in src/app/pages/circuits/circuits.component.ts:19\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        selectPageService\n                                                  \n                                                        \n                                                                    SharedService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        _alertService\n                                                  \n                                                        \n                                                                    AlertService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        _circuitService\n                                                  \n                                                        \n                                                                    CircuitsService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            infoAlert\n                            \n                            \n                        \n                    \n                \n                \n                    \ninfoAlert(circuit: Circuit)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/circuits/circuits.component.ts:75\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        circuit\n                                                        \n                                                                    Circuit\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     void\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Private\n                            loadDataDialog\n                            \n                            \n                        \n                    \n                \n                \n                    \n                            \n                        loadDataDialog(open: boolean)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/circuits/circuits.component.ts:32\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                                    Default value\n                                            \n                                        \n                                        \n                                                \n                                                        open\n                                                        \n                                                                    boolean\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                                true\n                                                        \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     void\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            loadDataFromAssets\n                            \n                            \n                        \n                    \n                \n                \n                    \nloadDataFromAssets()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/circuits/circuits.component.ts:62\n                            \n                        \n\n\n                \n                    \n                            Take data from a local file in json format\n\n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/circuits/circuits.component.ts:26\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            selectYearCircuits\n                            \n                            \n                        \n                    \n                \n                \n                    \nselectYearCircuits(year: string)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/circuits/circuits.component.ts:43\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                                    Default value\n                                            \n                                        \n                                        \n                                                \n                                                        year\n                                                        \n                                                                    string\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                                String(new Date().getFullYear())\n                                                        \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     void\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n\n\n    \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            circuitsList\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        circuitsList:     Circuit[]\n\n                    \n                \n                    \n                        \n                            Type :     Circuit[]\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/circuits/circuits.component.ts:19\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            selectYear\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        selectYear:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/circuits/circuits.component.ts:18\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            showInfo\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        showInfo:     boolean\n\n                    \n                \n                    \n                        \n                            Type :     boolean\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/circuits/circuits.component.ts:17\n                            \n                        \n\n\n            \n        \n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\nimport { SharedService } from '../../services/shared.service';\nimport { AlertService } from '../../services/alert.service';\nimport { CircuitsService } from '../../services/api/circuits.service';\nimport { Circuit } from '../../interfaces/circuit.interface';\nimport swal from 'sweetalert2';\nimport { GoogleStaticMapUrlPipe } from '../../pipes/google-static-map-url.pipe';\nimport { LocationTextPipe } from '../../pipes/location-text.pipe';\nimport { GoogleMapsUrlPipe } from '../../pipes/google-maps-url.pipe';\n\n@Component({\n  selector: 'app-circuits',\n  templateUrl: './circuits.component.html',\n  styleUrls: ['./circuits.component.css']\n})\nexport class CircuitsComponent implements OnInit {\n  showInfo: boolean;\n  selectYear: string;\n  circuitsList: Circuit[];\n  constructor(\n    private selectPageService: SharedService,\n    private _alertService: AlertService,\n    private _circuitService: CircuitsService\n  ) {}\n\n  ngOnInit() {\n    this.showInfo = false;\n    this.selectPageService.setSelectPage('circuits');\n    this.loadDataFromAssets();\n  }\n\n  private loadDataDialog(open: boolean = true) {\n    if (open) {\n      this._alertService.loadData(\n        `Load ${this.selectYear} season circuits list!!`,\n        'Wait a moment please!!'\n      );\n    } else {\n      this._alertService.closeAlert();\n    }\n  }\n\n  selectYearCircuits(year: string = String(new Date().getFullYear())) {\n    this.selectYear = year;\n    this.loadDataDialog();\n    this._circuitService.listByYear(year).subscribe(\n      (data: Circuit[]) => {\n        this.selectPageService.setSelectPage(\n          `Circuits List to  ${this.selectYear} season`\n        );\n        this.circuitsList = data;\n        this.showInfo = true;\n        this._alertService.closeAlert();\n      },\n      _errorService => {}\n    );\n  }\n\n  /**\n  * Take data from a local file in json format\n  */\n  loadDataFromAssets() {\n    this.selectYear = '2018';\n    this.loadDataDialog();\n    this._circuitService\n      .loadListFromLocal()\n      .subscribe((data: Circuit[]) => {\n        this.showInfo = true;\n        this.selectPageService.setSelectPage(`Circuits List to  ${this.selectYear} season`);\n        this.circuitsList = data;\n        this.loadDataDialog(false);\n      });\n  }\n\n  infoAlert(circuit: Circuit) {\n\n    const googleStaticMapUrl = new GoogleStaticMapUrlPipe().transform(circuit.Location, `h`, `red`, `C`, 1000, 300, 5);\n    const locationText = new LocationTextPipe().transform(circuit.Location);\n    const googleMapsUrl = new GoogleMapsUrlPipe().transform(circuit.Location);\n    swal({\n      title: ` ${circuit.circuitName} `,\n      html: `Location: ${locationText} \n        \n        \n        \n        Open in Google Maps`,\n      showCloseButton: false,\n      showCancelButton: false,\n      focusConfirm: false,\n      confirmButtonText: 'Close',\n      confirmButtonAriaLabel: 'Thumbs up, great!',\n      cancelButtonText: '',\n      cancelButtonAriaLabel: 'Thumbs down'\n    });\n  }\n}\n\n    \n\n    \n        \n\n  \n     circuits List to {{ selectYear }} season\n  -->\n  \n    \n      \n        \n          Circuit\n          Locality\n          More info\n        \n      \n      \n        \n          \n            {{circuit.circuitName}}\n            \n              {{ circuit.Location | locationText }}\n            \n            \n              \n                \n              \n              \n                \n              \n            \n          \n        \n      \n    \n    \n      \n        \n          Previous\n        \n        \n          \n            {{ i + 1}}\n          \n        \n        \n          Next\n        \n      \n    -->\n\n  \n  Updated yesterday at 11:59 PM\n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '       circuits List to {{ selectYear }} season  -->                              Circuit          Locality          More info                                                  {{circuit.circuitName}}                          {{ circuit.Location | locationText }}                                                                                                                                                                                    Previous                                      {{ i + 1}}                                    Next                  -->    Updated yesterday at 11:59 PM'\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'CircuitsComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"injectables/CircuitsService.html":{"url":"injectables/CircuitsService.html","title":"injectable - CircuitsService","body":"\n                   \n\n\n\n\n\n\n\n\n  Injectables\n  CircuitsService\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/services/api/circuits.service.ts\n        \n\n\n\n            \n    Index\n    \n        \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                listByYear\n                            \n                            \n                                loadListFromLocal\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n            \n    Constructor\n        \n            \n                \n                    \nconstructor(request: RequestService)\n                    \n                \n                        \n                            \n                                Defined in src/app/services/api/circuits.service.ts:9\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        request\n                                                  \n                                                        \n                                                                    RequestService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n            \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            listByYear\n                            \n                            \n                        \n                    \n                \n                \n                    \nlistByYear(year: )\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/api/circuits.service.ts:12\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        year\n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     any\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            loadListFromLocal\n                            \n                            \n                        \n                    \n                \n                \n                    \nloadListFromLocal()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/api/circuits.service.ts:19\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     any\n\n                            \n                    \n                \n            \n        \n\n\n\n    \n\n\n    \n        import { Injectable } from '@angular/core';\nimport { CIRCUITS_URLS } from '../../constants/urls';\nimport { map } from 'rxjs/internal/operators/map';\nimport { RequestService } from './request.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CircuitsService {\n  constructor(private request: RequestService) {}\n\n  listByYear(year) {\n    console.log(year + CIRCUITS_URLS.SELECT);\n    return this.request\n      .getQuery(year + CIRCUITS_URLS.SELECT)\n      .pipe(map(data => data['MRData'].CircuitTable.Circuits));\n  }\n\n  loadListFromLocal() {\n    return this.request\n      .getJSON('./../../../assets/data/api/circuits2018.json')\n      .pipe(map(data => data['MRData'].CircuitTable.Circuits));\n  }\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"interfaces/Confirm.html":{"url":"interfaces/Confirm.html","title":"interface - Confirm","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n\n\n  Interfaces\n  Confirm\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/interfaces/confirm.interface.ts\n        \n\n\n\n        \n            Index\n            \n                \n                    \n                        \n                            Properties\n                        \n                    \n                    \n                        \n                            \n                                \n                                        cancelButtonColor\n                                \n                                \n                                        confirmButtonColor\n                                \n                                \n                                        confirmButtonText\n                                \n                                \n                                        showCancelButton\n                                \n                                \n                                        text\n                                \n                                \n                                        title\n                                \n                                \n                                        type\n                                \n                            \n                        \n                    \n                \n            \n        \n\n\n\n            \n                Properties\n                    \n                        \n                                \n                                    \n                                        \n                                        cancelButtonColor\n                                    \n                                \n                                \n                                    \n                                        cancelButtonColor:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        confirmButtonColor\n                                    \n                                \n                                \n                                    \n                                        confirmButtonColor:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        confirmButtonText\n                                    \n                                \n                                \n                                    \n                                        confirmButtonText:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        showCancelButton\n                                    \n                                \n                                \n                                    \n                                        showCancelButton:     Boolean\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     Boolean\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        text\n                                    \n                                \n                                \n                                    \n                                        text:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        title\n                                    \n                                \n                                \n                                    \n                                        title:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        type\n                                    \n                                \n                                \n                                    \n                                        type:     SweetAlertType\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     SweetAlertType\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n            \n    \n\n\n    \n        import { SweetAlertType } from 'sweetalert2';\n\nexport interface Confirm {\n  title: string;\n  text: string;\n  type: SweetAlertType;\n  showCancelButton: Boolean;\n  confirmButtonColor: string;\n  cancelButtonColor: string;\n  confirmButtonText: string;\n}\n\n    \n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"interfaces/Constructor.html":{"url":"interfaces/Constructor.html","title":"interface - Constructor","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n\n\n  Interfaces\n  Constructor\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/interfaces/constructor.interface.ts\n        \n\n\n\n        \n            Index\n            \n                \n                    \n                        \n                            Properties\n                        \n                    \n                    \n                        \n                            \n                                \n                                        constructorId\n                                \n                                \n                                        name\n                                \n                                \n                                        nationality\n                                \n                                \n                                        url\n                                \n                            \n                        \n                    \n                \n            \n        \n\n\n\n            \n                Properties\n                    \n                        \n                                \n                                    \n                                        \n                                        constructorId\n                                    \n                                \n                                \n                                    \n                                        constructorId:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        name\n                                    \n                                \n                                \n                                    \n                                        name:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        nationality\n                                    \n                                \n                                \n                                    \n                                        nationality:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        url\n                                    \n                                \n                                \n                                    \n                                        url:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n            \n    \n\n\n    \n        export interface Constructor {\n    constructorId: string;\n    url: string;\n    name: string;\n    nationality: string;\n}\n\n    \n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"injectables/CurrentService.html":{"url":"injectables/CurrentService.html","title":"injectable - CurrentService","body":"\n                   \n\n\n\n\n\n\n\n\n  Injectables\n  CurrentService\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/services/api/current.service.ts\n        \n\n\n\n\n            \n    Constructor\n        \n            \n                \n                    \nconstructor()\n                    \n                \n                        \n                            \n                                Defined in src/app/services/api/current.service.ts:6\n                            \n                        \n\n            \n        \n\n\n\n\n    \n\n\n    \n        import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CurrentService {\n  constructor() {}\n\n  // Race results\n  // http://ergast.com/api/f1/2018/driverStandings.json\n\n  // Results of select race\n  // http://ergast.com/api/f1/2018/1/driverStandings.json\n\n  // Constructor\n  // http://ergast.com/api/f1/2008/constructorStandings.json\n  // http://ergast.com/api/f1/2008/5/constructorStandings.json\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/DashboardComponent.html":{"url":"components/DashboardComponent.html","title":"component - DashboardComponent","body":"\n                   \n\n\n\n\n\n  Components\n  DashboardComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/pages/dashboard/dashboard.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-dashboard\n            \n\n            \n                styleUrls\n                dashboard.component.css\n            \n\n\n\n            \n                templateUrl\n                ./dashboard.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                user\n                            \n                        \n                    \n                \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor(router: Router, selectPageService: SharedService, localStorageService: LocalStorageService)\n                    \n                \n                        \n                            \n                                Defined in src/app/pages/dashboard/dashboard.component.ts:12\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        router\n                                                  \n                                                        \n                                                                    Router\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        selectPageService\n                                                  \n                                                        \n                                                                    SharedService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        localStorageService\n                                                  \n                                                        \n                                                                    LocalStorageService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/dashboard/dashboard.component.ts:19\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n    \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            user\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        user:     User\n\n                    \n                \n                    \n                        \n                            Type :     User\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/dashboard/dashboard.component.ts:12\n                            \n                        \n\n\n            \n        \n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { SharedService } from '../../services/shared.service';\nimport { LocalStorageService } from '../../services/local-storage.service';\n\n@Component({\n  selector: 'app-dashboard',\n  templateUrl: './dashboard.component.html',\n  styleUrls: ['./dashboard.component.css']\n})\nexport class DashboardComponent implements OnInit {\n  user: User;\n  constructor(\n    private router: Router,\n    private selectPageService: SharedService,\n    private localStorageService: LocalStorageService\n  ) {}\n\n  ngOnInit() {\n    this.user = this.localStorageService.takeUserLoginData();\n    this.selectPageService.setSelectPage('dashboard');\n    if (this.user === null) {\n      this.router.navigate(['/login']);\n    }\n  }\n}\n\n    \n\n    \n        \n  Welcome {{ user.name }} {{ user.lastname }} !!!\n\n\n  \n    \n      \n        \n          &nbsp;\n          &nbsp;\n          -\n          \n            Text\n          \n          \n              Last updated 3 mins ago\n            -->\n        \n      \n      \n        \n          &nbsp;\n          &nbsp;\n          -\n          \n            Text\n          \n          \n                  Last updated 3 mins ago\n                -->\n        \n      \n      \n        \n          &nbsp;\n          &nbsp;\n          -\n          \n            Text\n          \n          \n                  Last updated 3 mins ago\n                -->\n        \n      \n    \n  \n  \n    \n  \n     Next Races\n  \n      \n        \n          \n            &nbsp;\n            &nbsp;\n            -\n            \n              Text\n            \n            \n                      Last updated 3 mins ago\n                    -->\n          \n        \n        \n          \n            &nbsp;\n            &nbsp;\n            -\n            \n              Text\n            \n            \n                          Last updated 3 mins ago\n                        -->\n          \n        \n        \n          \n            &nbsp;\n            &nbsp;\n            -\n            \n              Text\n            \n            \n                          Last updated 3 mins ago\n                        -->\n          \n        \n    \n  \n  Updated yesterday at 11:59 PM\n\n  \n\n\n\n\n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '  Welcome {{ user.name }} {{ user.lastname }} !!!                                                    -                      Text                                  Last updated 3 mins ago            -->                                                            -                      Text                                      Last updated 3 mins ago                -->                                                            -                      Text                                      Last updated 3 mins ago                -->                                 Next Races                                                                -                          Text                                              Last updated 3 mins ago                    -->                                                                          -                          Text                                                  Last updated 3 mins ago                        -->                                                                          -                          Text                                                  Last updated 3 mins ago                        -->                          Updated yesterday at 11:59 PM  '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'DashboardComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"directives/DefaultImageDirective.html":{"url":"directives/DefaultImageDirective.html","title":"directive - DefaultImageDirective","body":"\n                   \n\n\n\n\n\n\n\n  Directives\n  DefaultImageDirective\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/directives/default-image.directive.ts\n        \n\n\n\n\n        \n            Metadata\n            \n                \n\n                    \n                        Selector\n                        img[default]\n                    \n\n                \n            \n        \n\n            \n    Index\n    \n        \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                updateUrl\n                            \n                        \n                    \n                \n\n                \n                    \n                        Inputs\n                    \n                \n                \n                    \n                        \n                            \n                                default\n                            \n                            \n                                src\n                            \n                        \n                    \n                \n\n\n\n\n        \n    \n\n\n\n            \n    Inputs\n        \n            \n                \n                    \n                        \n                        default\n                    \n                    \n                        \n                            Default value : './assets/img/icons/birthday.png'\n                        \n                    \n                \n                        \n                            \n                                    Defined in src/app/directives/default-image.directive.ts:16\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        src\n                    \n                    \n                            \n                            Type :    string\n\n                            \n                    \n                \n                        \n                            \n                                    Defined in src/app/directives/default-image.directive.ts:13\n                            \n                        \n            \n        \n\n\n\n\n            \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            updateUrl\n                            \n                            \n                        \n                    \n                \n                \n                    \nupdateUrl()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/directives/default-image.directive.ts:18\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n\n\n    \n\n\n    \n        import { Directive, Input } from '@angular/core';\n\n@Directive({\n  // tslint:disable-next-line:directive-selector\n  selector: 'img[default]',\n  // tslint:disable-next-line:use-host-property-decorator\n  host: {\n    '(error)': 'updateUrl()', '[src]': 'src'\n  }\n})\nexport class DefaultImageDirective {\n  @Input()\n  src: string;\n  // Add default image to show if not load correct select src\n  @Input()\n  default = './assets/img/icons/birthday.png';\n\n  updateUrl() {\n    this.src = this.default;\n  }\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/DoughnutChartComponent.html":{"url":"components/DoughnutChartComponent.html","title":"component - DoughnutChartComponent","body":"\n                   \n\n\n\n\n\n  Components\n  DoughnutChartComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/components/charts/doughnut-chart/doughnut-chart.component.ts\n\n\n\n\n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-doughnut-chart\n            \n\n            \n                styleUrls\n                doughnut-chart.component.css\n            \n\n\n\n            \n                templateUrl\n                ./doughnut-chart.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                type\n                            \n                        \n                    \n                \n\n\n                \n                    \n                        Inputs\n                    \n                \n                \n                    \n                        \n                            \n                                data\n                            \n                            \n                                labels\n                            \n                            \n                                legend\n                            \n                        \n                    \n                \n\n\n\n\n        \n    \n\n\n\n    \n    Inputs\n        \n            \n                \n                    \n                        \n                        data\n                    \n                    \n                        Take Inputs need values to generate Dona type chart\n\n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/doughnut-chart/doughnut-chart.component.ts:12\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        labels\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/doughnut-chart/doughnut-chart.component.ts:13\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        legend\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/doughnut-chart/doughnut-chart.component.ts:14\n                            \n                        \n            \n        \n\n\n\n\n\n    \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            type\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        type:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                    \n                        \n                            Default value : 'doughnut'\n                        \n                    \n                        \n                            \n                                    Defined in src/app/components/charts/doughnut-chart/doughnut-chart.component.ts:15\n                            \n                        \n\n\n            \n        \n\n\n\n\n\n    \n        import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'app-doughnut-chart',\n  templateUrl: './doughnut-chart.component.html',\n  styleUrls: ['./doughnut-chart.component.css']\n})\nexport class DoughnutChartComponent {\n  /**\n   * Take Inputs need values to generate Dona type chart\n   */\n  @Input() data;\n  @Input() labels;\n  @Input() legend;\n  type = 'doughnut';\n}\n\n    \n\n    \n        \n\n  \n    {{ legend }}\n    \n      \n    \n  \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '      {{ legend }}                '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'DoughnutChartComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"interfaces/Driver.html":{"url":"interfaces/Driver.html","title":"interface - Driver","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n\n\n  Interfaces\n  Driver\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/interfaces/driver.interface.ts\n        \n\n\n\n        \n            Index\n            \n                \n                    \n                        \n                            Properties\n                        \n                    \n                    \n                        \n                            \n                                \n                                        dateOfBirth\n                                \n                                \n                                        driverId\n                                \n                                \n                                        familyName\n                                \n                                \n                                        givenName\n                                \n                                \n                                        nationality\n                                \n                                \n                                        url\n                                \n                            \n                        \n                    \n                \n            \n        \n\n\n\n            \n                Properties\n                    \n                        \n                                \n                                    \n                                        \n                                        dateOfBirth\n                                    \n                                \n                                \n                                    \n                                        dateOfBirth:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        driverId\n                                    \n                                \n                                \n                                    \n                                        driverId:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        familyName\n                                    \n                                \n                                \n                                    \n                                        familyName:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        givenName\n                                    \n                                \n                                \n                                    \n                                        givenName:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        nationality\n                                    \n                                \n                                \n                                    \n                                        nationality:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        url\n                                    \n                                \n                                \n                                    \n                                        url:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n            \n    \n\n\n    \n        export interface Driver {\n    driverId: string;\n    url: string;\n    givenName: string;\n    familyName: string;\n    dateOfBirth: string;\n    nationality: string;\n}\n\n    \n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/DriversComponent.html":{"url":"components/DriversComponent.html","title":"component - DriversComponent","body":"\n                   \n\n\n\n\n\n  Components\n  DriversComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/pages/drivers/drivers.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-drivers\n            \n\n            \n                styleUrls\n                drivers.component.css\n            \n\n\n\n            \n                templateUrl\n                ./drivers.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                driversList\n                            \n                            \n                                selectYear\n                            \n                            \n                                showInfo\n                            \n                        \n                    \n                \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                infoAlert\n                            \n                            \n                                    Private\n                                loadDataDialog\n                            \n                            \n                                loadDataFromAssets\n                            \n                            \n                                ngOnInit\n                            \n                            \n                                selectYearDrivers\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor(selectPageService: SharedService, _driversService: DriversService, _alertService: AlertService)\n                    \n                \n                        \n                            \n                                Defined in src/app/pages/drivers/drivers.component.ts:16\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        selectPageService\n                                                  \n                                                        \n                                                                    SharedService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        _driversService\n                                                  \n                                                        \n                                                                    DriversService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        _alertService\n                                                  \n                                                        \n                                                                    AlertService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            infoAlert\n                            \n                            \n                        \n                    \n                \n                \n                    \ninfoAlert(driver: Driver)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/drivers/drivers.component.ts:75\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        driver\n                                                        \n                                                                    Driver\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     void\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Private\n                            loadDataDialog\n                            \n                            \n                        \n                    \n                \n                \n                    \n                            \n                        loadDataDialog(open: boolean)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/drivers/drivers.component.ts:29\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                                    Default value\n                                            \n                                        \n                                        \n                                                \n                                                        open\n                                                        \n                                                                    boolean\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                                true\n                                                        \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     void\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            loadDataFromAssets\n                            \n                            \n                        \n                    \n                \n                \n                    \nloadDataFromAssets()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/drivers/drivers.component.ts:64\n                            \n                        \n\n\n                \n                    \n                            Take data from a local file in json format\n\n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/drivers/drivers.component.ts:23\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            selectYearDrivers\n                            \n                            \n                        \n                    \n                \n                \n                    \nselectYearDrivers(year: string)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/drivers/drivers.component.ts:43\n                            \n                        \n\n\n                \n                    \n                            Take data from server\n\n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                                    Default value\n                                            \n                                        \n                                        \n                                                \n                                                        year\n                                                        \n                                                                    string\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                                String(new Date().getFullYear())\n                                                        \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     void\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n\n\n    \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            driversList\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        driversList:     Driver[]\n\n                    \n                \n                    \n                        \n                            Type :     Driver[]\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/drivers/drivers.component.ts:15\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            selectYear\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        selectYear:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/drivers/drivers.component.ts:14\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            showInfo\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        showInfo:     boolean\n\n                    \n                \n                    \n                        \n                            Type :     boolean\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/drivers/drivers.component.ts:16\n                            \n                        \n\n\n            \n        \n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\nimport { SharedService } from '../../services/shared.service';\nimport { DriversService } from '../../services/api/drivers.service';\nimport { Driver } from '../../interfaces/driver.interface';\nimport { AlertService } from '../../services/alert.service';\nimport swal from 'sweetalert2';\n\n@Component({\n  selector: 'app-drivers',\n  templateUrl: './drivers.component.html',\n  styleUrls: ['./drivers.component.css']\n})\nexport class DriversComponent implements OnInit {\n  selectYear: string;\n  driversList: Driver[];\n  showInfo: boolean;\n  constructor(\n    private selectPageService: SharedService,\n    private _driversService: DriversService,\n    private _alertService: AlertService\n  ) {}\n\n  ngOnInit() {\n    this.showInfo = false;\n    this.selectPageService.setSelectPage('drivers');\n    this.loadDataFromAssets();\n  }\n\n  private loadDataDialog(open: boolean = true) {\n    if (open) {\n      this._alertService.loadData(\n        `Load ${this.selectYear} season drivers!!`,\n        'Wait a moment please!!'\n      );\n    } else {\n      this._alertService.closeAlert();\n    }\n  }\n\n  /**\n   * Take data from server\n   */\n  selectYearDrivers(year: string = String(new Date().getFullYear())) {\n    this.selectYear = year;\n    this.loadDataDialog();\n    this._driversService.listByYear(year).subscribe(\n      (data: Driver[]) => {\n        this.selectPageService.setSelectPage(\n          `Drivers List to  ${this.selectYear} season`\n        );\n        this.driversList = data;\n        this.showInfo = true;\n        this._alertService.closeAlert();\n      },\n      _errorService => {\n        this.loadDataFromAssets();\n      }\n    );\n  }\n\n  /**\n   * Take data from a local file in json format\n   */\n  loadDataFromAssets() {\n    this.selectYear = '2018';\n    this.loadDataDialog();\n    this._driversService.loadListFromLocal().subscribe((data: Driver[]) => {\n      console.log(data);\n      this.showInfo = true;\n      this.driversList = data;\n      this.loadDataDialog(false);\n    });\n  }\n\n  infoAlert(driver: Driver) {\n\n    swal({\n      title: ` ${driver.givenName} ${driver.familyName} `,\n      html: ``,\n      showCloseButton: false,\n      showCancelButton: false,\n      focusConfirm: false,\n      confirmButtonText: 'Close',\n      confirmButtonAriaLabel: 'Thumbs up, great!',\n      cancelButtonText: '',\n      cancelButtonAriaLabel: 'Thumbs down'\n    });\n  }\n}\n\n    \n\n    \n        \n\n     Drivers List to {{ selectYear }} season\n  -->\n  \n    \n      \n        \n          Driver\n          Date of Birth\n          Nationality\n          More info\n        \n      \n      \n        \n          \n            #{{ driver.permanentNumber }} \n            \n              \n              {{driver.givenName}} {{driver.familyName}}  \n            \n            {{driver.dateOfBirth}}\n            \n              \n            \n            \n              \n                \n              \n              \n              \n              \n            \n          \n        \n      \n    \n  \n  Updated yesterday at 11:59 PM\n-->\n\n\n  \n    \n      \n        &nbsp;\n        &nbsp;#{{ driver.permanentNumber }} \n        {{driver.givenName}} {{driver.familyName}}\n        \n          {{driver.dateOfBirth}}\n          \n            \n          \n          \n            \n          \n        \n        \n          Last updated 3 mins ago\n        -->\n      \n    \n  \n\n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '     Drivers List to {{ selectYear }} season  -->                              Driver          Date of Birth          Nationality          More info                                                  #{{ driver.permanentNumber }}                                         {{driver.givenName}} {{driver.familyName}}                          {{driver.dateOfBirth}}                                                                                                                                                                                    Updated yesterday at 11:59 PM-->                              #{{ driver.permanentNumber }}         {{driver.givenName}} {{driver.familyName}}                  {{driver.dateOfBirth}}                                                                                          Last updated 3 mins ago        -->            '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'DriversComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"injectables/DriversService.html":{"url":"injectables/DriversService.html","title":"injectable - DriversService","body":"\n                   \n\n\n\n\n\n\n\n\n  Injectables\n  DriversService\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/services/api/drivers.service.ts\n        \n\n\n\n            \n    Index\n    \n        \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                listByYear\n                            \n                            \n                                loadListFromLocal\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n            \n    Constructor\n        \n            \n                \n                    \nconstructor(request: RequestService)\n                    \n                \n                        \n                            \n                                Defined in src/app/services/api/drivers.service.ts:9\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        request\n                                                  \n                                                        \n                                                                    RequestService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n            \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            listByYear\n                            \n                            \n                        \n                    \n                \n                \n                    \nlistByYear(year: )\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/api/drivers.service.ts:15\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        year\n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     any\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            loadListFromLocal\n                            \n                            \n                        \n                    \n                \n                \n                    \nloadListFromLocal()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/api/drivers.service.ts:21\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     any\n\n                            \n                    \n                \n            \n        \n\n\n\n    \n\n\n    \n        import { Injectable } from '@angular/core';\nimport { DRIVERS_URLS } from '../../constants/urls';\nimport { RequestService } from './request.service';\nimport { map } from 'rxjs/internal/operators/map';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DriversService {\n  constructor(private request: RequestService) {}\n\n  // https://ergast.com/api/f1/2008/drivers//results.json\n  // https://ergast.com/api/f1/2008/drivers//results/.json\n\n  listByYear(year) {\n    console.log(year + DRIVERS_URLS.ALL_DRIVERS_SELECT);\n    return this.request.getQuery(year + DRIVERS_URLS.ALL_DRIVERS_SELECT)\n      .pipe(map(data => data['MRData'].DriverTable.Drivers));\n  }\n\n  loadListFromLocal() {\n    return this.request.getJSON('./../../../assets/data/api/drivers2018.json')\n      .pipe(map(data => data['MRData'].DriverTable.Drivers));\n  }\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/FooterComponent.html":{"url":"components/FooterComponent.html","title":"component - FooterComponent","body":"\n                   \n\n\n\n\n\n  Components\n  FooterComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/shared/footer/footer.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-footer\n            \n\n            \n                styleUrls\n                footer.component.css\n            \n\n\n\n            \n                templateUrl\n                ./footer.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                date\n                            \n                        \n                    \n                \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor()\n                    \n                \n                        \n                            \n                                Defined in src/app/shared/footer/footer.component.ts:9\n                            \n                        \n\n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/shared/footer/footer.component.ts:12\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n    \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            date\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        date:     \n\n                    \n                \n                    \n                        \n                            Default value : new Date().getFullYear()\n                        \n                    \n                        \n                            \n                                    Defined in src/app/shared/footer/footer.component.ts:9\n                            \n                        \n\n\n            \n        \n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-footer',\n  templateUrl: './footer.component.html',\n  styleUrls: ['./footer.component.css']\n})\nexport class FooterComponent implements OnInit {\n  date = new Date().getFullYear();\n  constructor() {}\n\n  ngOnInit() {}\n}\n\n    \n\n    \n        \n  \n    \n      Copyright © Anartz Mugika {{ date }}\n    \n  \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '            Copyright © Anartz Mugika {{ date }}      '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'FooterComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/ForgotComponent.html":{"url":"components/ForgotComponent.html","title":"component - ForgotComponent","body":"\n                   \n\n\n\n\n\n  Components\n  ForgotComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/login/forgot/forgot.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-forgot\n            \n\n            \n                styleUrls\n                forgot.component.css\n            \n\n\n\n            \n                templateUrl\n                ./forgot.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor()\n                    \n                \n                        \n                            \n                                Defined in src/app/login/forgot/forgot.component.ts:8\n                            \n                        \n\n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/login/forgot/forgot.component.ts:12\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-forgot',\n  templateUrl: './forgot.component.html',\n  styleUrls: ['./forgot.component.css']\n})\nexport class ForgotComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n\n    \n\n    \n        \n  Reset Password\n  \n    \n      Forgot your password?\n      Enter your email address and we will send you instructions on how to reset your password.\n    \n    \n      \n        \n      \n      Reset Password\n    \n    \n      Register an Account\n      Login Page\n    \n  \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '  Reset Password            Forgot your password?      Enter your email address and we will send you instructions on how to reset your password.                                  Reset Password              Register an Account      Login Page      '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'ForgotComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/GoogleMapsComponent.html":{"url":"components/GoogleMapsComponent.html","title":"component - GoogleMapsComponent","body":"\n                   \n\n\n\n\n\n  Components\n  GoogleMapsComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/components/google-maps/google-maps.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-google-maps\n            \n\n            \n                styleUrls\n                google-maps.component.css\n            \n\n\n\n            \n                templateUrl\n                ./google-maps.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                lat\n                            \n                            \n                                lng\n                            \n                            \n                                markers\n                            \n                        \n                    \n                \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n                \n                    \n                        Inputs\n                    \n                \n                \n                    \n                        \n                            \n                                circuitsData\n                            \n                        \n                    \n                \n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor()\n                    \n                \n                        \n                            \n                                Defined in src/app/components/google-maps/google-maps.component.ts:15\n                            \n                        \n\n            \n        \n\n\n    \n    Inputs\n        \n            \n                \n                    \n                        \n                        circuitsData\n                    \n                    \n                            \n                            Type :    Circuit[]\n\n                            \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/google-maps/google-maps.component.ts:15\n                            \n                        \n            \n        \n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/components/google-maps/google-maps.component.ts:17\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n    \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            lat\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        lat:     number\n\n                    \n                \n                    \n                        \n                            Type :     number\n\n                        \n                    \n                    \n                        \n                            Default value : 23.022505\n                        \n                    \n                        \n                            \n                                    Defined in src/app/components/google-maps/google-maps.component.ts:12\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            lng\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        lng:     number\n\n                    \n                \n                    \n                        \n                            Type :     number\n\n                        \n                    \n                    \n                        \n                            Default value : 72.571362\n                        \n                    \n                        \n                            \n                                    Defined in src/app/components/google-maps/google-maps.component.ts:13\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            markers\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        markers:     any\n\n                    \n                \n                    \n                        \n                            Type :     any\n\n                        \n                    \n                    \n                        \n                            Default value : []\n                        \n                    \n                        \n                            \n                                    Defined in src/app/components/google-maps/google-maps.component.ts:11\n                            \n                        \n\n\n            \n        \n\n\n\n\n\n    \n        import { Component, OnInit, Input } from '@angular/core';\nimport { Marker } from '../../models/marker.model';\nimport { Circuit } from '../../interfaces/circuit.interface';\n\n@Component({\n  selector: 'app-google-maps',\n  templateUrl: './google-maps.component.html',\n  styleUrls: ['./google-maps.component.css']\n})\nexport class GoogleMapsComponent implements OnInit {\n  markers: any = [];\n  lat = 23.022505;\n  lng = 72.571362;\n  @Input()\n  circuitsData: Circuit[];\n  constructor() {}\n  ngOnInit() {\n    if (this.circuitsData.length === 0) {\n      this.markers.push(\n        new Marker(\n          'Current Location',\n          this.lat,\n          this.lng,\n          'Location not defined'\n        )\n      );\n    } else {\n      for (let i = 0; i \n    \n\n    \n        \n  \n    \n      {{m.name}}\n    \n  \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '            {{m.name}}      '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'GoogleMapsComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"pipes/GoogleMapsUrlPipe.html":{"url":"pipes/GoogleMapsUrlPipe.html","title":"pipe - GoogleMapsUrlPipe","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n  Pipes\n  GoogleMapsUrlPipe\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n\n        \n            File\n        \n        \n            src/app/pipes/google-maps-url.pipe.ts\n        \n\n\n\n        \n            Metadata\n            \n                \n                    \n                        Name\n                        googleMapsUrl\n                    \n                \n            \n        \n\n            \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            transform\n                            \n                            \n                        \n                    \n                \n                \n                    \ntransform(location: Location, zoom: number)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pipes/google-maps-url.pipe.ts:8\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                                    Default value\n                                            \n                                        \n                                        \n                                                \n                                                        location\n                                                        \n                                                                    Location\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                        \n\n                                                \n                                                \n                                                        zoom\n                                                        \n                                                                    number\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                                10\n                                                        \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     string\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n\n\n\n    \n\n\n    \n        import { Pipe, PipeTransform } from '@angular/core';\nimport { Location } from '../interfaces/location.interface';\n\n@Pipe({\n  name: 'googleMapsUrl'\n})\nexport class GoogleMapsUrlPipe implements PipeTransform {\n  transform(location: Location, zoom: number = 10): string {\n    const locate = `${location.lat},${location.long}`;\n    return `https://www.google.com/maps/@${locate},${zoom}z`;\n  }\n\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"pipes/GoogleStaticMapUrlPipe.html":{"url":"pipes/GoogleStaticMapUrlPipe.html","title":"pipe - GoogleStaticMapUrlPipe","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n  Pipes\n  GoogleStaticMapUrlPipe\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n\n        \n            File\n        \n        \n            src/app/pipes/google-static-map-url.pipe.ts\n        \n\n\n\n        \n            Metadata\n            \n                \n                    \n                        Name\n                        googleStaticMapUrl\n                    \n                \n            \n        \n\n            \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Private\n                            getKey\n                            \n                            \n                        \n                    \n                \n                \n                    \n                            \n                        getKey()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pipes/google-static-map-url.pipe.ts:36\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     string\n\n                            \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Private\n                            getMapType\n                            \n                            \n                        \n                    \n                \n                \n                    \n                            \n                        getMapType(type: string)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pipes/google-static-map-url.pipe.ts:44\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        type\n                                                        \n                                                                    string\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     string\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Private\n                            getSize\n                            \n                            \n                        \n                    \n                \n                \n                    \n                            \n                        getSize(width: number, height: number)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pipes/google-static-map-url.pipe.ts:40\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        width\n                                                        \n                                                                    number\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                                \n                                                        height\n                                                        \n                                                                    number\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     string\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Private\n                            getZoom\n                            \n                            \n                        \n                    \n                \n                \n                    \n                            \n                        getZoom(zoom: number)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pipes/google-static-map-url.pipe.ts:58\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        zoom\n                                                        \n                                                                    number\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     string\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            transform\n                            \n                            \n                        \n                    \n                \n                \n                    \ntransform(location: Location, type: string, markerColor: string, label: string, width: number, height: number, zoom: number)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pipes/google-static-map-url.pipe.ts:16\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                                    Default value\n                                            \n                                        \n                                        \n                                                \n                                                        location\n                                                        \n                                                                    Location\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                        \n\n                                                \n                                                \n                                                        type\n                                                        \n                                                                    string\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                                ``\n                                                        \n\n                                                \n                                                \n                                                        markerColor\n                                                        \n                                                                    string\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                                `red`\n                                                        \n\n                                                \n                                                \n                                                        label\n                                                        \n                                                                    string\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                                `C`\n                                                        \n\n                                                \n                                                \n                                                        width\n                                                        \n                                                                    number\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                                1000\n                                                        \n\n                                                \n                                                \n                                                        height\n                                                        \n                                                                    number\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                                300\n                                                        \n\n                                                \n                                                \n                                                        zoom\n                                                        \n                                                                    number\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                                -1\n                                                        \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     string\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n\n\n            \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            STATICMAP\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        STATICMAP:     \n\n                    \n                \n                    \n                        \n                            Default value : `https://maps.googleapis.com/maps/api/staticmap?`\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pipes/google-static-map-url.pipe.ts:12\n                            \n                        \n\n\n            \n        \n\n\n    \n\n\n    \n        import { Pipe, PipeTransform } from '@angular/core';\nimport { Location } from '../interfaces/location.interface';\nimport { GOOGLEMAPS } from '../../environments/api-keys';\n\n@Pipe({\n  name: `googleStaticMapUrl`\n})\nexport class GoogleStaticMapUrlPipe implements PipeTransform {\n  // Documentation:\n  // https://developers.google.com/maps/documentation/maps-static/dev-guide\n\n  STATICMAP = `https://maps.googleapis.com/maps/api/staticmap?`;\n\n  // value | googleStaticMapUrl::\n\n  transform(\n    location: Location,\n    type: string = ``,\n    markerColor: string = `red`,\n    label: string = `C`,\n    width: number = 1000,\n    height: number = 300,\n    zoom: number = -1\n  ): string {\n    const locate = `${location.lat},${location.long}`;\n    const markers = `&markers=color:${markerColor}|label:${label}|${locate}`;\n    const size = this.getSize(width, height);\n    const mapType = this.getMapType(type);\n    const zoomValue = this.getZoom(zoom);\n    const key = this.getKey();\n    return `${\n      this.STATICMAP\n    }center=${locate}${zoomValue}${size}${mapType}${markers}${key}`;\n  }\n\n  private getKey(): string {\n    return `&key=${GOOGLEMAPS}`;\n  }\n\n  private getSize(width: number, height: number): string {\n    return `&size=${width}x${height}`;\n  }\n\n  private getMapType(type: string): string {\n    const mapType = `&maptype=`;\n    // roadmap, satellite, hybrid, and terrain\n    if (type === `r`) {\n      return `${mapType}roadmap`;\n    } else if (type === `t`) {\n      return `${mapType}terrain`;\n    } else if (type === `h`) {\n      return `${mapType}hybrid`;\n    } else {\n      return `${mapType}satellite`;\n    }\n  }\n\n  private getZoom(zoom: number) {\n    if (zoom  16) {\n      zoom = 13;\n    }\n    return `&zoom=${zoom}`;\n  }\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/HeaderComponent.html":{"url":"components/HeaderComponent.html","title":"component - HeaderComponent","body":"\n                   \n\n\n\n\n\n  Components\n  HeaderComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/shared/header/header.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-header\n            \n\n            \n                styleUrls\n                header.component.css\n            \n\n\n\n            \n                templateUrl\n                ./header.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                userNameLastname\n                            \n                        \n                    \n                \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                logout\n                            \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor(router: Router, alertService: AlertService, localStorage: LocalStorageService)\n                    \n                \n                        \n                            \n                                Defined in src/app/shared/header/header.component.ts:12\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        router\n                                                  \n                                                        \n                                                                    Router\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        alertService\n                                                  \n                                                        \n                                                                    AlertService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        localStorage\n                                                  \n                                                        \n                                                                    LocalStorageService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            logout\n                            \n                            \n                        \n                    \n                \n                \n                    \nlogout()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/shared/header/header.component.ts:27\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/shared/header/header.component.ts:15\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n    \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            userNameLastname\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        userNameLastname:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/shared/header/header.component.ts:12\n                            \n                        \n\n\n            \n        \n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AlertService } from '../../services/alert.service';\nimport { LocalStorageService } from '../../services/local-storage.service';\n\n@Component({\n  selector: 'app-header',\n  templateUrl: './header.component.html',\n  styleUrls: ['./header.component.css']\n})\nexport class HeaderComponent implements OnInit {\n  userNameLastname: string;\n  constructor(private router: Router, private alertService: AlertService, private localStorage: LocalStorageService) { }\n\n  ngOnInit() {\n    const loginData = this.localStorage.takeUserLoginData();\n    if (loginData === null) {\n      this.userNameLastname = '';\n      console.log('go to login...from header');\n      this.localStorage.clearSelectData('user_credentials');\n      this.router.navigate(['/login']);\n    } else {\n      this.userNameLastname = `${loginData.name} ${loginData.lastname}`;\n    }\n  }\n\n  logout() {\n\n    this.alertService.confirm(\n      {\n        title: 'Are you sure ?',\n        text: 'You won\\'t be able to revert this!',\n        type: 'warning',\n        showCancelButton: true,\n        confirmButtonColor: '#3085d6',\n        cancelButtonColor: '#d33',\n        confirmButtonText: 'Yes, close session!'\n      }\n    )\n    .then(result => {\n      if (result.value) {\n        console.log('go to login...');\n        this.localStorage.clearSelectData('user_credentials');\n        this.router.navigate(['/login']);\n      }\n    });\n  }\n}\n\n    \n\n    \n        \n  MuganPro Panel\n  \n    \n  \n  \n    \n    \n      \n        \n          \n          &nbsp;{{ userNameLastname }}\n        \n        \n          \n             &nbsp;&nbsp;Mi profile\n          \n          \n          \n             &nbsp;&nbsp;Configuration\n          \n          \n          \n             &nbsp;&nbsp;Logout\n          \n        \n      \n      \n        \n          \n          Messages\n            12 New\n          \n          \n            \n          \n        \n        \n          New Messages:\n          \n          \n            David Miller\n            11:21 AM\n            Hey there! This new version of SB Admin is pretty awesome! These messages clip off when they reach the end of\n              the box so they don't overflow over to the sides!\n          \n          \n          \n            Jane Smith\n            11:21 AM\n            I was wondering if you could meet for an appointment at 3:00 instead of 4:00. Thanks!\n          \n          \n          \n            John Doe\n            11:21 AM\n            I've sent the final files over to you for review. When you're able to sign off of them let me know and we can\n              discuss distribution.\n          \n          \n          View all messages\n        \n      \n      \n        \n          \n          Alerts\n            6 New\n          \n          \n            \n          \n        \n        \n          New Alerts:\n          \n          \n            \n              \n                   &nbsp;Status Update\n            \n            11:21 AM\n            This is an automated server response message. All systems are online.\n          \n          \n          \n            \n              \n                   &nbsp;Status Update\n            \n            11:21 AM\n            This is an automated server response message. All systems are online.\n          \n          \n          \n            \n              \n                   &nbsp;Status Update\n            \n            11:21 AM\n            This is an automated server response message. All systems are online.\n          \n          \n          View all alerts\n        \n      \n      \n        \n          \n          &nbsp;Support\n        \n      \n      \n        \n          \n            \n            \n              \n                \n              \n            \n          \n        \n      -->\n    \n  \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '  MuganPro Panel                                                     {{ userNameLastname }}                                         Mi profile                                             Configuration                                             Logout                                                          Messages            12 New                                                                    New Messages:                                David Miller            11:21 AM            Hey there! This new version of SB Admin is pretty awesome! These messages clip off when they reach the end of              the box so they don\\'t overflow over to the sides!                                          Jane Smith            11:21 AM            I was wondering if you could meet for an appointment at 3:00 instead of 4:00. Thanks!                                          John Doe            11:21 AM            I\\'ve sent the final files over to you for review. When you\\'re able to sign off of them let me know and we can              discuss distribution.                              View all messages                                                Alerts            6 New                                                                    New Alerts:                                                                  Status Update                        11:21 AM            This is an automated server response message. All systems are online.                                                                            Status Update                        11:21 AM            This is an automated server response message. All systems are online.                                                                            Status Update                        11:21 AM            This is an automated server response message. All systems are online.                              View all alerts                                                 Support                                                                                                                                              -->      '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'HeaderComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/LineChartComponent.html":{"url":"components/LineChartComponent.html","title":"component - LineChartComponent","body":"\n                   \n\n\n\n\n\n  Components\n  LineChartComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/components/charts/line-chart/line-chart.component.ts\n\n\n\n\n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-line-chart\n            \n\n            \n                styleUrls\n                line-chart.component.css\n            \n\n\n\n            \n                templateUrl\n                ./line-chart.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n\n\n                \n                    \n                        Inputs\n                    \n                \n                \n                    \n                        \n                            \n                                chartType\n                            \n                            \n                                colors\n                            \n                            \n                                datasets\n                            \n                            \n                                labels\n                            \n                            \n                                legend\n                            \n                            \n                                options\n                            \n                        \n                    \n                \n\n\n\n\n        \n    \n\n\n\n    \n    Inputs\n        \n            \n                \n                    \n                        \n                        chartType\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/line-chart/line-chart.component.ts:15\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        colors\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/line-chart/line-chart.component.ts:13\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        datasets\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/line-chart/line-chart.component.ts:10\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        labels\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/line-chart/line-chart.component.ts:11\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        legend\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/line-chart/line-chart.component.ts:14\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        options\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/line-chart/line-chart.component.ts:12\n                            \n                        \n            \n        \n\n\n\n\n\n\n\n\n\n    \n        import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'app-line-chart',\n  templateUrl: './line-chart.component.html',\n  styleUrls: ['./line-chart.component.css']\n})\nexport class LineChartComponent {\n\n  @Input() datasets;\n  @Input() labels;\n  @Input() options;\n  @Input() colors;\n  @Input() legend;\n  @Input() chartType;\n}\n\n    \n\n    \n        \n  \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '  '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'LineChartComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"injectables/LocalStorageService.html":{"url":"injectables/LocalStorageService.html","title":"injectable - LocalStorageService","body":"\n                   \n\n\n\n\n\n\n\n\n  Injectables\n  LocalStorageService\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/services/local-storage.service.ts\n        \n\n\n\n            \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                USER_CREDENTIALS\n                            \n                        \n                    \n                \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                clearSelectData\n                            \n                            \n                                getNameLastName\n                            \n                            \n                                saveDataInLocal\n                            \n                            \n                                saveUserCredentials\n                            \n                            \n                                takeUserLoginData\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n            \n    Constructor\n        \n            \n                \n                    \nconstructor()\n                    \n                \n                        \n                            \n                                Defined in src/app/services/local-storage.service.ts:7\n                            \n                        \n\n            \n        \n\n\n            \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            clearSelectData\n                            \n                            \n                        \n                    \n                \n                \n                    \nclearSelectData(itemParam: string)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/local-storage.service.ts:29\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        itemParam\n                                                        \n                                                                    string\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     void\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            getNameLastName\n                            \n                            \n                        \n                    \n                \n                \n                    \ngetNameLastName()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/local-storage.service.ts:13\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     string\n\n                            \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            saveDataInLocal\n                            \n                            \n                        \n                    \n                \n                \n                    \nsaveDataInLocal(itemParam: string, value: any, json: boolean)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/local-storage.service.ts:22\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                                    Default value\n                                            \n                                        \n                                        \n                                                \n                                                        itemParam\n                                                        \n                                                                    string\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                        \n\n                                                \n                                                \n                                                        value\n                                                        \n                                                                    any\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                        \n\n                                                \n                                                \n                                                        json\n                                                        \n                                                                    boolean\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                                false\n                                                        \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     void\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            saveUserCredentials\n                            \n                            \n                        \n                    \n                \n                \n                    \nsaveUserCredentials(login: User)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/local-storage.service.ts:9\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        login\n                                                        \n                                                                    User\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     void\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            takeUserLoginData\n                            \n                            \n                        \n                    \n                \n                \n                    \ntakeUserLoginData()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/local-storage.service.ts:18\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     any\n\n                            \n                    \n                \n            \n        \n\n\n            \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            USER_CREDENTIALS\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        USER_CREDENTIALS:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                    \n                        \n                            Default value : 'user_credentials'\n                        \n                    \n                        \n                            \n                                    Defined in src/app/services/local-storage.service.ts:7\n                            \n                        \n\n\n            \n        \n\n\n    \n\n\n    \n        import { Injectable } from '@angular/core';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class LocalStorageService {\n    USER_CREDENTIALS = 'user_credentials';\n    constructor() { }\n    saveUserCredentials(login: User) {\n        this.saveDataInLocal( this.USER_CREDENTIALS, login, true);\n    }\n\n    getNameLastName() {\n        const loginData = this.takeUserLoginData();\n        return `${loginData.name} ${loginData.lastname}`;\n    }\n\n    takeUserLoginData() {\n        return JSON.parse(localStorage.getItem(this.USER_CREDENTIALS));\n    }\n\n    saveDataInLocal(itemParam: string, value: any, json: boolean = false ) {\n        if (!json) {\n            localStorage.setItem(itemParam, value);\n        }\n        localStorage.setItem(itemParam, JSON.stringify(value));\n    }\n\n    clearSelectData(itemParam: string) {\n        localStorage.removeItem(itemParam);\n    }\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"interfaces/Location.html":{"url":"interfaces/Location.html","title":"interface - Location","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n\n\n  Interfaces\n  Location\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/interfaces/location.interface.ts\n        \n\n\n\n        \n            Index\n            \n                \n                    \n                        \n                            Properties\n                        \n                    \n                    \n                        \n                            \n                                \n                                        country\n                                \n                                \n                                        lat\n                                \n                                \n                                        locality\n                                \n                                \n                                        long\n                                \n                            \n                        \n                    \n                \n            \n        \n\n\n\n            \n                Properties\n                    \n                        \n                                \n                                    \n                                        \n                                        country\n                                    \n                                \n                                \n                                    \n                                        country:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        lat\n                                    \n                                \n                                \n                                    \n                                        lat:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        locality\n                                    \n                                \n                                \n                                    \n                                        locality:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        long\n                                    \n                                \n                                \n                                    \n                                        long:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n            \n    \n\n\n    \n        export interface Location {\n    lat: string;\n    long: string;\n    locality: string;\n    country: string;\n}\n\n    \n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"pipes/LocationTextPipe.html":{"url":"pipes/LocationTextPipe.html","title":"pipe - LocationTextPipe","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n  Pipes\n  LocationTextPipe\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n\n        \n            File\n        \n        \n            src/app/pipes/location-text.pipe.ts\n        \n\n\n\n        \n            Metadata\n            \n                \n                    \n                        Name\n                        locationText\n                    \n                \n            \n        \n\n            \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            transform\n                            \n                            \n                        \n                    \n                \n                \n                    \ntransform(location: Location)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pipes/location-text.pipe.ts:9\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        location\n                                                        \n                                                                    Location\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     string\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n\n\n\n    \n\n\n    \n        import { Pipe, PipeTransform } from '@angular/core';\nimport { Location } from '../interfaces/location.interface';\n\n@Pipe({\n  name: 'locationText'\n})\nexport class LocationTextPipe implements PipeTransform {\n\n  transform(location: Location): string {\n    return `${location.locality} (${location.country})`;\n  }\n\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"interfaces/Login.html":{"url":"interfaces/Login.html","title":"interface - Login","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n\n\n  Interfaces\n  Login\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/login/login-form/login.interface.ts\n        \n\n\n\n        \n            Index\n            \n                \n                    \n                        \n                            Properties\n                        \n                    \n                    \n                        \n                            \n                                \n                                        _failure_path\n                                \n                                \n                                        _password\n                                \n                                \n                                        _target_path\n                                \n                                \n                                        _username\n                                \n                            \n                        \n                    \n                \n            \n        \n\n\n\n            \n                Properties\n                    \n                        \n                                \n                                    \n                                        \n                                        _failure_path\n                                    \n                                \n                                \n                                    \n                                        _failure_path:     String\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     String\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        _password\n                                    \n                                \n                                \n                                    \n                                        _password:     String\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     String\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        _target_path\n                                    \n                                \n                                \n                                    \n                                        _target_path:     String\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     String\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        _username\n                                    \n                                \n                                \n                                    \n                                        _username:     String\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     String\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n            \n    \n\n\n    \n        interface Login {\n    _username: String;\n    _password: String;\n    _target_path: String;\n    _failure_path: String;\n}\n\n    \n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/LoginComponent.html":{"url":"components/LoginComponent.html","title":"component - LoginComponent","body":"\n                   \n\n\n\n\n\n  Components\n  LoginComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/login/login-form/login.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-login\n            \n\n            \n                styleUrls\n                login.component.css\n            \n\n\n\n            \n                templateUrl\n                ./login.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                login\n                            \n                        \n                    \n                \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                makeLogin\n                            \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor(router: Router, localStorage: LocalStorageService)\n                    \n                \n                        \n                            \n                                Defined in src/app/login/login-form/login.component.ts:16\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        router\n                                                  \n                                                        \n                                                                    Router\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        localStorage\n                                                  \n                                                        \n                                                                    LocalStorageService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            makeLogin\n                            \n                            \n                        \n                    \n                \n                \n                    \nmakeLogin()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/login/login-form/login.component.ts:29\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/login/login-form/login.component.ts:22\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n    \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            login\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        login:     Login\n\n                    \n                \n                    \n                        \n                            Type :     Login\n\n                        \n                    \n                    \n                        \n                            Default value : {\n    _username: '',\n    _password: '',\n    _target_path: '',\n    _failure_path: '/api/user/fail'\n  }\n                        \n                    \n                        \n                            \n                                    Defined in src/app/login/login-form/login.component.ts:11\n                            \n                        \n\n\n            \n        \n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LocalStorageService } from '../../services/local-storage.service';\n\n@Component({\n  selector: 'app-login',\n  templateUrl: './login.component.html',\n  styleUrls: ['./login.component.css']\n})\nexport class LoginComponent implements OnInit {\n  login: Login = {\n    _username: '',\n    _password: '',\n    _target_path: '',\n    _failure_path: '/api/user/fail'\n  };\n  constructor(\n    private router: Router,\n    private localStorage: LocalStorageService\n  ) {}\n\n  ngOnInit() {\n    const user = this.localStorage.takeUserLoginData();\n    if (user !== null) {\n      this.router.navigate(['/dashboard']);\n    }\n  }\n\n  makeLogin() {\n    this.localStorage.saveDataInLocal(\n      'user_credentials',\n      {\n        email: 'anartz@compodoc.com',\n        name: 'Anartz',\n        lastname: 'Mugika',\n        role: 'ROLE_ADMIN'\n      },\n      true\n    );\n    this.router.navigate(['/dashboard']);\n  }\n}\n\n    \n\n    \n        \n  \n    \n      \n        Sign In (CLick in SIGN IN. No need input credentials!)\n        \n        \n          \n            Email address\n            \n          \n          \n          \n            Password\n            \n          \n\n          \n            \n            Remember password\n          \n          Sign in\n          \n           Sign in with Google\n           Sign in with Facebook\n        \n      \n    \n  \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '                    Sign In (CLick in SIGN IN. No need input credentials!)                                      Email address                                                      Password                                                        Remember password                    Sign in                     Sign in with Google           Sign in with Facebook                    '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'LoginComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"modules/LoginModule.html":{"url":"modules/LoginModule.html","title":"module - LoginModule","body":"\n                   \n\n\n\n\n  Modules\n  LoginModule\n\n\n      \n          \n              \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LoginModule\n\n\n\ncluster_LoginModule_declarations\n\n\n\ncluster_LoginModule_exports\n\n\n\n\nForgotComponent\n\nForgotComponent\n\n\n\nLoginModule\n\nLoginModule\n\nLoginModule -->\n\nForgotComponent->LoginModule\n\n\n\n\n\nLoginComponent\n\nLoginComponent\n\nLoginModule -->\n\nLoginComponent->LoginModule\n\n\n\n\n\nRegisterComponent\n\nRegisterComponent\n\nLoginModule -->\n\nRegisterComponent->LoginModule\n\n\n\n\n\nForgotComponent \n\nForgotComponent \n\nForgotComponent  -->\n\nLoginModule->ForgotComponent \n\n\n\n\n\nLoginComponent \n\nLoginComponent \n\nLoginComponent  -->\n\nLoginModule->LoginComponent \n\n\n\n\n\nRegisterComponent \n\nRegisterComponent \n\nRegisterComponent  -->\n\nLoginModule->RegisterComponent \n\n\n\n\n\n\n          \n          \n          \n              Zoom in\n              Reset\n              Zoom out\n          \n      \n      \n      \n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n\n        \n            File\n        \n        \n            src/app/login/login.module.ts\n        \n\n\n        \n\n        \n            \n                \n                    Declarations\n                    \n                            \n                                ForgotComponent\n                            \n                            \n                                LoginComponent\n                            \n                            \n                                RegisterComponent\n                            \n                    \n                \n                \n                    Exports\n                    \n                            \n                                    ForgotComponent\n                            \n                            \n                                    LoginComponent\n                            \n                            \n                                    RegisterComponent\n                            \n                    \n                \n            \n        \n    \n\n\n    \n        import { NgModule } from '@angular/core';\nimport { LoginComponent } from './login-form/login.component';\nimport { RegisterComponent } from './register/register.component';\nimport { ForgotComponent } from './forgot/forgot.component';\nimport { RouterModule } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\n\n\n\nconst COMPONENTS = [\n    LoginComponent,\n    RegisterComponent,\n    ForgotComponent\n];\n\n@NgModule({\n  imports: [RouterModule, FormsModule],\n  declarations: COMPONENTS,\n  exports: COMPONENTS\n})\nexport class LoginModule {}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"classes/Marker.html":{"url":"classes/Marker.html","title":"class - Marker","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n\n  Classes\n  Marker\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/models/marker.model.ts\n        \n\n\n\n            \n                Implements\n            \n            \n                        MarkerIF\n            \n\n\n            \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                lat\n                            \n                            \n                                lng\n                            \n                            \n                                locality\n                            \n                            \n                                name\n                            \n                        \n                    \n                \n\n\n\n\n\n\n        \n    \n\n\n            \n    Constructor\n        \n            \n                \n                    \nconstructor(name: string, lat: number, lng: number, locality: string)\n                    \n                \n                        \n                            \n                                Defined in src/app/models/marker.model.ts:7\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        name\n                                                  \n                                                        \n                                                                    string\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        lat\n                                                  \n                                                        \n                                                                    number\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        lng\n                                                  \n                                                        \n                                                                    number\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        locality\n                                                  \n                                                        \n                                                                    string\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n            \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            lat\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        lat:     number\n\n                    \n                \n                    \n                        \n                            Type :     number\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/models/marker.model.ts:5\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            lng\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        lng:     number\n\n                    \n                \n                    \n                        \n                            Type :     number\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/models/marker.model.ts:6\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            locality\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        locality:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/models/marker.model.ts:7\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            name\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        name:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/models/marker.model.ts:4\n                            \n                        \n\n\n            \n        \n\n\n\n\n\n\n\n\n    \n\n\n    \n        import { MarkerIF } from '../interfaces/marker.interface';\n\nexport class Marker implements MarkerIF {\n    name: string;\n    lat: number;\n    lng: number;\n    locality: string;\n    constructor(name: string, lat: number, lng: number, locality: string) {\n        this.name = name;\n        this.lat = lat;\n        this.lng = lng;\n        this.locality = locality;\n    }\n}\n\n    \n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"interfaces/MarkerIF.html":{"url":"interfaces/MarkerIF.html","title":"interface - MarkerIF","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n\n\n  Interfaces\n  MarkerIF\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/interfaces/marker.interface.ts\n        \n\n\n\n        \n            Index\n            \n                \n                    \n                        \n                            Properties\n                        \n                    \n                    \n                        \n                            \n                                \n                                            Optional\n                                        color\n                                \n                                \n                                            Optional\n                                        label\n                                \n                                \n                                        lat\n                                \n                                \n                                        lng\n                                \n                                \n                                        locality\n                                \n                                \n                                        name\n                                \n                            \n                        \n                    \n                \n            \n        \n\n\n\n            \n                Properties\n                    \n                        \n                                \n                                    \n                                        \n                                        color\n                                    \n                                \n                                \n                                    \n                                        color:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n                                    \n                                        \n                                            Optional\n                                        \n                                    \n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        label\n                                    \n                                \n                                \n                                    \n                                        label:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n                                    \n                                        \n                                            Optional\n                                        \n                                    \n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        lat\n                                    \n                                \n                                \n                                    \n                                        lat:     number\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     number\n\n                                        \n                                    \n\n\n\n\n\n                            \n                                \n                                    Marker location.\nlat: Latitude / lng: Longitude\n\n                                \n                            \n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        lng\n                                    \n                                \n                                \n                                    \n                                        lng:     number\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     number\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        locality\n                                    \n                                \n                                \n                                    \n                                        locality:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                            \n                                \n                                    Locality to celebrate Grand Prix. For example: Barcelona (Spain)\n\n                                \n                            \n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        name\n                                    \n                                \n                                \n                                    \n                                        name:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                            \n                                \n                                    Marker name\n\n                                \n                            \n                        \n                    \n            \n    \n\n\n    \n        export interface MarkerIF {\n    /**\n     * Marker name\n     */\n    name: string;\n\n    /**\n     * Marker location.\n     * lat: Latitude / lng: Longitude\n     */\n    lat: number;\n    lng: number;\n\n    /**\n     * Locality to celebrate Grand Prix. For example: Barcelona (Spain)\n     */\n    locality: string;\n    color?: string;\n    label?: string;\n}\n\n    \n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/NotpagefoundComponent.html":{"url":"components/NotpagefoundComponent.html","title":"component - NotpagefoundComponent","body":"\n                   \n\n\n\n\n\n  Components\n  NotpagefoundComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/shared/notpagefound/notpagefound.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-notpagefound\n            \n\n            \n                styleUrls\n                notpagefound.component.css\n            \n\n\n\n            \n                templateUrl\n                ./notpagefound.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor()\n                    \n                \n                        \n                            \n                                Defined in src/app/shared/notpagefound/notpagefound.component.ts:8\n                            \n                        \n\n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/shared/notpagefound/notpagefound.component.ts:12\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-notpagefound',\n  templateUrl: './notpagefound.component.html',\n  styleUrls: ['./notpagefound.component.css']\n})\nexport class NotpagefoundComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n\n    \n\n    \n        \n  Select page not found!!\n  \n    \n    &nbsp;&nbsp;Return to dashboard\n  \n\n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '  Select page not found!!            Return to dashboard  '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'NotpagefoundComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/PagesComponent.html":{"url":"components/PagesComponent.html","title":"component - PagesComponent","body":"\n                   \n\n\n\n\n\n  Components\n  PagesComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/pages/pages.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-pages\n            \n\n            \n                styleUrls\n                pages.component.css\n            \n\n\n\n            \n                templateUrl\n                ./pages.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor()\n                    \n                \n                        \n                            \n                                Defined in src/app/pages/pages.component.ts:8\n                            \n                        \n\n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/pages.component.ts:12\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-pages',\n  templateUrl: './pages.component.html',\n  styleUrls: ['./pages.component.css']\n})\nexport class PagesComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n\n    \n\n    \n        \n\n\n  \n    \n    \n    \n      \n        Blank\n        This is an example of a blank page that you can use as a starting point for creating new ones.\n      \n    -->\n  \n  \n  \n  \n  \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '                            Blank        This is an example of a blank page that you can use as a starting point for creating new ones.          -->          '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'PagesComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"modules/PagesModule.html":{"url":"modules/PagesModule.html","title":"module - PagesModule","body":"\n                   \n\n\n\n\n  Modules\n  PagesModule\n\n\n      \n          \n              \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_PagesModule\n\n\n\ncluster_PagesModule_imports\n\n\n\ncluster_PagesModule_exports\n\n\n\n\nSharedModule\n\nSharedModule\n\n\n\nPagesModule\n\nPagesModule\n\nPagesModule -->\n\nSharedModule->PagesModule\n\n\n\n\n\nForgotComponent \n\nForgotComponent \n\nForgotComponent  -->\n\nPagesModule->ForgotComponent \n\n\n\n\n\nLoginComponent \n\nLoginComponent \n\nLoginComponent  -->\n\nPagesModule->LoginComponent \n\n\n\n\n\nRegisterComponent \n\nRegisterComponent \n\nRegisterComponent  -->\n\nPagesModule->RegisterComponent \n\n\n\n\n\n\n          \n          \n          \n              Zoom in\n              Reset\n              Zoom out\n          \n      \n      \n      \n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n\n        \n            File\n        \n        \n            src/app/pages/pages.module.ts\n        \n\n\n        \n\n        \n            \n                \n                    Imports\n                    \n                            \n                                    SharedModule\n                            \n                    \n                \n                \n                    Exports\n                    \n                            \n                                    ForgotComponent\n                            \n                            \n                                    LoginComponent\n                            \n                            \n                                    RegisterComponent\n                            \n                    \n                \n            \n        \n    \n\n\n    \n        import { NgModule } from '@angular/core';\n// Routes\nimport { PAGE_ROUTES } from './pages.routes';\n// Modules\nimport { I18nConfigModule } from 'i18n-config';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { FormsModule } from '@angular/forms';\nimport { ChartsModule } from 'ng2-charts';\nimport { SharedModule } from '../shared/shared.module';\nimport { SweetAlert2Module } from '@toverux/ngx-sweetalert2';\nimport { TableModule } from 'ngx-easy-table';\nimport { AgmCoreModule } from '@agm/core';\nimport { AgmJsMarkerClustererModule } from '@agm/js-marker-clusterer';\n\n// Components\nimport { PagesComponent } from './pages.component';\nimport { RacesComponent } from './races/races.component';\nimport { ChartComponent } from './charts/chart.component';\nimport { DashboardComponent } from './dashboard/dashboard.component';\nimport { DoughnutChartComponent } from '../components/charts/doughnut-chart/doughnut-chart.component';\nimport { BarChartComponent } from '../components/charts/bar-chart/bar-chart.component';\nimport { PolarAreaChartComponent } from '../components/charts/polar-area-chart/polar-area-chart.component';\nimport { PieChartComponent } from '../components/charts/pie-chart/pie-chart.component';\nimport { RadarChartComponent } from '../components/charts/radar-chart/radar-chart.component';\nimport { LineChartComponent } from '../components/charts/line-chart/line-chart.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { SupportComponent } from './support/support.component';\nimport { CircuitsComponent } from './circuits/circuits.component';\nimport { DriversComponent } from './drivers/drivers.component';\nimport { SeasonsComponent } from './seasons/seasons.component';\nimport { GoogleMapsComponent } from '../components/google-maps/google-maps.component';\n\n// Constants\nimport { GOOGLEMAPS } from '../../environments/api-keys';\n\n// Pipes\nimport { RoundPipe } from '../pipes/round.pipe';\nimport { WikipediaUrlMobilePipe } from '../pipes/wikipedia-url-mobile.pipe';\nimport { GoogleStaticMapUrlPipe } from '../pipes/google-static-map-url.pipe';\nimport { GoogleMapsUrlPipe } from '../pipes/google-maps-url.pipe';\nimport { LocationTextPipe } from '../pipes/location-text.pipe';\n\n// Directives\nimport { DefaultImageDirective } from '../directives/default-image.directive';\n\n\nconst COMPONENTS = [\n  GoogleMapsComponent,\n  SeasonsComponent,\n  CircuitsComponent,\n  DashboardComponent,\n  DriversComponent,\n  LineChartComponent,\n  BarChartComponent,\n  PolarAreaChartComponent,\n  PieChartComponent,\n  RadarChartComponent,\n  DoughnutChartComponent,\n  ChartComponent,\n  RacesComponent,\n  SettingsComponent,\n  SupportComponent\n];\n\nconst PIPES = [\n  RoundPipe,\n  WikipediaUrlMobilePipe,\n  GoogleStaticMapUrlPipe,\n  GoogleMapsUrlPipe,\n  LocationTextPipe\n];\n\nconst DIRECTIVES = [ DefaultImageDirective ];\n\nconst DECLARATIONS = [...[PagesComponent], ...PIPES, ...DIRECTIVES, ...COMPONENTS];\n\n@NgModule({\n  imports: [\n    PAGE_ROUTES,\n    AgmJsMarkerClustererModule,\n    AgmCoreModule.forRoot({\n      apiKey: GOOGLEMAPS\n    }),\n    I18nConfigModule,\n    BrowserModule,\n    FormsModule,\n    ChartsModule,\n    SharedModule,\n    SweetAlert2Module.forRoot({\n      buttonsStyling: false,\n      customClass: 'modal-content',\n      confirmButtonClass: 'btn btn-primary',\n      cancelButtonClass: 'btn'\n    }),\n    TableModule\n  ],\n  exports: COMPONENTS,\n  declarations: DECLARATIONS\n})\nexport class PagesModule {}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/PieChartComponent.html":{"url":"components/PieChartComponent.html","title":"component - PieChartComponent","body":"\n                   \n\n\n\n\n\n  Components\n  PieChartComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/components/charts/pie-chart/pie-chart.component.ts\n\n\n\n\n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-pie-chart\n            \n\n            \n                styleUrls\n                pie-chart.component.css\n            \n\n\n\n            \n                templateUrl\n                ./pie-chart.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n\n\n                \n                    \n                        Inputs\n                    \n                \n                \n                    \n                        \n                            \n                                chartType\n                            \n                            \n                                colors\n                            \n                            \n                                datasets\n                            \n                            \n                                labels\n                            \n                            \n                                legend\n                            \n                            \n                                options\n                            \n                        \n                    \n                \n\n\n\n\n        \n    \n\n\n\n    \n    Inputs\n        \n            \n                \n                    \n                        \n                        chartType\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/pie-chart/pie-chart.component.ts:14\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        colors\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/pie-chart/pie-chart.component.ts:12\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        datasets\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/pie-chart/pie-chart.component.ts:9\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        labels\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/pie-chart/pie-chart.component.ts:10\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        legend\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/pie-chart/pie-chart.component.ts:13\n                            \n                        \n            \n        \n        \n            \n                \n                    \n                        \n                        options\n                    \n                    \n                    \n                \n                        \n                            \n                                    Defined in src/app/components/charts/pie-chart/pie-chart.component.ts:11\n                            \n                        \n            \n        \n\n\n\n\n\n\n\n\n\n    \n        import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'app-pie-chart',\n  templateUrl: './pie-chart.component.html',\n  styleUrls: ['./pie-chart.component.css']\n})\nexport class PieChartComponent {\n  @Input() datasets;\n  @Input() labels;\n  @Input() options;\n  @Input() colors;\n  @Input() legend;\n  @Input() chartType;\n\n}\n\n    \n\n    \n        \n  \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '  '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'PieChartComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/PolarAreaChartComponent.html":{"url":"components/PolarAreaChartComponent.html","title":"component - PolarAreaChartComponent","body":"\n                   \n\n\n\n\n\n  Components\n  PolarAreaChartComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/components/charts/polar-area-chart/polar-area-chart.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-polar-area-chart\n            \n\n            \n                styleUrls\n                polar-area-chart.component.css\n            \n\n\n\n            \n                templateUrl\n                ./polar-area-chart.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor()\n                    \n                \n                        \n                            \n                                Defined in src/app/components/charts/polar-area-chart/polar-area-chart.component.ts:8\n                            \n                        \n\n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/components/charts/polar-area-chart/polar-area-chart.component.ts:12\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-polar-area-chart',\n  templateUrl: './polar-area-chart.component.html',\n  styleUrls: ['./polar-area-chart.component.css']\n})\nexport class PolarAreaChartComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n\n    \n\n    \n        \n  polar-area-chart works!\n\n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '  polar-area-chart works!'\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'PolarAreaChartComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"interfaces/Race.html":{"url":"interfaces/Race.html","title":"interface - Race","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n\n\n  Interfaces\n  Race\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/interfaces/race.interface.ts\n        \n\n\n\n        \n            Index\n            \n                \n                    \n                        \n                            Properties\n                        \n                    \n                    \n                        \n                            \n                                \n                                        Circuit\n                                \n                                \n                                        date\n                                \n                                \n                                        raceName\n                                \n                                \n                                        round\n                                \n                                \n                                        season\n                                \n                                \n                                        time\n                                \n                                \n                                        url\n                                \n                            \n                        \n                    \n                \n            \n        \n\n\n\n            \n                Properties\n                    \n                        \n                                \n                                    \n                                        \n                                        Circuit\n                                    \n                                \n                                \n                                    \n                                        Circuit:     Circuit\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     Circuit\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        date\n                                    \n                                \n                                \n                                    \n                                        date:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        raceName\n                                    \n                                \n                                \n                                    \n                                        raceName:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        round\n                                    \n                                \n                                \n                                    \n                                        round:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        season\n                                    \n                                \n                                \n                                    \n                                        season:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        time\n                                    \n                                \n                                \n                                    \n                                        time:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        url\n                                    \n                                \n                                \n                                    \n                                        url:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n            \n    \n\n\n    \n        import { Circuit } from './circuit.interface';\n\nexport interface Race {\n    season: string;\n    round: string;\n    url: string;\n    raceName: string;\n    Circuit: Circuit;\n    date: string;\n    time: string;\n}\n\n    \n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/RacesComponent.html":{"url":"components/RacesComponent.html","title":"component - RacesComponent","body":"\n                   \n\n\n\n\n\n  Components\n  RacesComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/pages/races/races.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-races\n            \n\n            \n                styleUrls\n                races.component.css\n            \n\n\n\n            \n                templateUrl\n                ./races.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                racesList\n                            \n                            \n                                selectYear\n                            \n                            \n                                showInfo\n                            \n                        \n                    \n                \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                    Private\n                                loadDataDialog\n                            \n                            \n                                loadDataFromAssets\n                            \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor(selectPageService: SharedService, _racesService: RacesService, _alertService: AlertService)\n                    \n                \n                        \n                            \n                                Defined in src/app/pages/races/races.component.ts:15\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        selectPageService\n                                                  \n                                                        \n                                                                    SharedService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        _racesService\n                                                  \n                                                        \n                                                                    RacesService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        _alertService\n                                                  \n                                                        \n                                                                    AlertService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Private\n                            loadDataDialog\n                            \n                            \n                        \n                    \n                \n                \n                    \n                            \n                        loadDataDialog(open: boolean)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/races/races.component.ts:27\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                                    Default value\n                                            \n                                        \n                                        \n                                                \n                                                        open\n                                                        \n                                                                    boolean\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                                true\n                                                        \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     void\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            loadDataFromAssets\n                            \n                            \n                        \n                    \n                \n                \n                    \nloadDataFromAssets()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/races/races.component.ts:41\n                            \n                        \n\n\n                \n                    \n                            Take data from a local file in json format\n\n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/races/races.component.ts:22\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n    \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            racesList\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        racesList:     Race[]\n\n                    \n                \n                    \n                        \n                            Type :     Race[]\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/races/races.component.ts:14\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            selectYear\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        selectYear:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/races/races.component.ts:15\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            showInfo\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        showInfo:     \n\n                    \n                \n                    \n                        \n                            Default value : false\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/races/races.component.ts:13\n                            \n                        \n\n\n            \n        \n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\nimport { SharedService } from '../../services/shared.service';\nimport { AlertService } from '../../services/alert.service';\nimport { RacesService } from '../../services/api/races.service';\nimport { Race } from '../../interfaces/race.interface';\n\n@Component({\n  selector: `app-races`,\n  templateUrl: `./races.component.html`,\n  styleUrls: [`./races.component.css`]\n})\nexport class RacesComponent implements OnInit {\n  showInfo = false;\n  racesList: Race[];\n  selectYear: string;\n  constructor(\n    private selectPageService: SharedService,\n    private _racesService: RacesService,\n    private _alertService: AlertService\n  ) {}\n\n  ngOnInit() {\n    this.selectPageService.setSelectPage(`races`);\n    this.loadDataFromAssets();\n  }\n\n  private loadDataDialog(open: boolean = true) {\n    if (open) {\n      this._alertService.loadData(\n        `Load ${this.selectYear} races list!!`,\n        `Wait a moment please!!`\n      );\n    } else {\n      this._alertService.closeAlert();\n    }\n  }\n\n  /**\n   * Take data from a local file in json format\n   */\n  loadDataFromAssets() {\n    this.selectYear = `2018`;\n    this.loadDataDialog();\n    this._racesService.loadListFromLocal().subscribe((data: Race[]) => {\n      this.selectPageService.setSelectPage(`${this.selectYear} year races`);\n      console.log(data);\n      this.showInfo = true;\n      this.racesList = data;\n      this.loadDataDialog(false);\n    });\n  }\n}\n\n    \n\n    \n        \n  \n    \n      \n      \n        #{{i+1}} {{race.raceName}}\n        \n          &nbsp; {{race.date}}\n           \n           \n          \n             {{ race.Circuit.Location | locationText }}\n          \n          \n          \n           + Info: \n          \n            \n          \n          \n            \n          \n        \n        \n          Last updated 3 mins ago\n        -->\n      \n    \n  \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '                          #{{i+1}} {{race.raceName}}                    {{race.date}}                                             {{ race.Circuit.Location | locationText }}                                         + Info:                                                                                           Last updated 3 mins ago        -->            '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'RacesComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"injectables/RacesService.html":{"url":"injectables/RacesService.html","title":"injectable - RacesService","body":"\n                   \n\n\n\n\n\n\n\n\n  Injectables\n  RacesService\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/services/api/races.service.ts\n        \n\n\n\n            \n    Index\n    \n        \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                listByYear\n                            \n                            \n                                loadListFromLocal\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n            \n    Constructor\n        \n            \n                \n                    \nconstructor(request: RequestService)\n                    \n                \n                        \n                            \n                                Defined in src/app/services/api/races.service.ts:9\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        request\n                                                  \n                                                        \n                                                                    RequestService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n            \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            listByYear\n                            \n                            \n                        \n                    \n                \n                \n                    \nlistByYear(year: )\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/api/races.service.ts:21\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        year\n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     any\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            loadListFromLocal\n                            \n                            \n                        \n                    \n                \n                \n                    \nloadListFromLocal()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/api/races.service.ts:28\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     any\n\n                            \n                    \n                \n            \n        \n\n\n\n    \n\n\n    \n        import { Injectable } from '@angular/core';\nimport { RACES_URLS } from '../../constants/urls';\nimport { RequestService } from './request.service';\nimport { map } from 'rxjs/internal/operators/map';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class RacesService {\n  constructor(private request: RequestService) {}\n\n  // Race list of select season\n  // https://ergast.com/api/f1/.json\n\n  // Select race info in select year\n  // https://ergast.com/api/f1//.json\n\n  // ranking result of select race\n  // https://ergast.com/api/f1///results.json\n\n  listByYear(year) {\n    console.log(year + RACES_URLS.ALL_RACES_SELECT);\n    return this.request\n      .getQuery(year + RACES_URLS.ALL_RACES_SELECT)\n      .pipe(map(data => data['MRData'].RaceTable.Races));\n  }\n\n  loadListFromLocal() {\n    return this.request\n      .getJSON('./../../../assets/data/api/races2018.json')\n      .pipe(map(data => data['MRData'].RaceTable.Races));\n  }\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/RadarChartComponent.html":{"url":"components/RadarChartComponent.html","title":"component - RadarChartComponent","body":"\n                   \n\n\n\n\n\n  Components\n  RadarChartComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/components/charts/radar-chart/radar-chart.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-radar-chart\n            \n\n            \n                styleUrls\n                radar-chart.component.css\n            \n\n\n\n            \n                templateUrl\n                ./radar-chart.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor()\n                    \n                \n                        \n                            \n                                Defined in src/app/components/charts/radar-chart/radar-chart.component.ts:8\n                            \n                        \n\n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/components/charts/radar-chart/radar-chart.component.ts:12\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-radar-chart',\n  templateUrl: './radar-chart.component.html',\n  styleUrls: ['./radar-chart.component.css']\n})\nexport class RadarChartComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n\n    \n\n    \n        \n  radar-chart works!\n\n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '  radar-chart works!'\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'RadarChartComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/RegisterComponent.html":{"url":"components/RegisterComponent.html","title":"component - RegisterComponent","body":"\n                   \n\n\n\n\n\n  Components\n  RegisterComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/login/register/register.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-register\n            \n\n            \n                styleUrls\n                register.component.css\n            \n\n\n\n            \n                templateUrl\n                ./register.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor()\n                    \n                \n                        \n                            \n                                Defined in src/app/login/register/register.component.ts:8\n                            \n                        \n\n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/login/register/register.component.ts:12\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-register',\n  templateUrl: './register.component.html',\n  styleUrls: ['./register.component.css']\n})\nexport class RegisterComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n\n    \n\n    \n        \n    \n      \n        \n          \n             \n          \n          \n            Register\n            \n              \n                \n                Username\n              \n\n              \n                \n                Email address\n              \n              \n              \n\n              \n                \n                Password\n              \n              \n              \n                \n                Confirm password\n              \n\n              Register\n              Sign In\n              \n               Sign up with Google\n               Sign up with Facebook\n            \n          \n        \n      \n    \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '                                                                         Register                                                          Username                                                            Email address                                                                                        Password                                                                          Confirm password                            Register              Sign In                             Sign up with Google               Sign up with Facebook                                        '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'RegisterComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"injectables/RequestService.html":{"url":"injectables/RequestService.html","title":"injectable - RequestService","body":"\n                   \n\n\n\n\n\n\n\n\n  Injectables\n  RequestService\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/services/api/request.service.ts\n        \n\n\n\n            \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                API_URL\n                            \n                            \n                                httpOptions\n                            \n                        \n                    \n                \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                    Public\n                                getJSON\n                            \n                            \n                                getQuery\n                            \n                            \n                                postQuery\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n            \n    Constructor\n        \n            \n                \n                    \nconstructor(_http: HttpClient)\n                    \n                \n                        \n                            \n                                Defined in src/app/services/api/request.service.ts:17\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        _http\n                                                  \n                                                        \n                                                                    HttpClient\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n            \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            getJSON\n                            \n                            \n                        \n                    \n                \n                \n                    \n                            \n                        getJSON(path: string)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/api/request.service.ts:35\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        path\n                                                        \n                                                                    string\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     Observable\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            getQuery\n                            \n                            \n                        \n                    \n                \n                \n                    \ngetQuery(query: String)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/api/request.service.ts:20\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        query\n                                                        \n                                                                    String\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     any\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            postQuery\n                            \n                            \n                        \n                    \n                \n                \n                    \npostQuery(resourceUrl: string, data: any)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/api/request.service.ts:24\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        resourceUrl\n                                                        \n                                                                    string\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                                \n                                                        data\n                                                        \n                                                                    any\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     any\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n\n\n            \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            API_URL\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        API_URL:     \n\n                    \n                \n                    \n                        \n                            Default value : URL_LOCALHOST\n                        \n                    \n                        \n                            \n                                    Defined in src/app/services/api/request.service.ts:12\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            httpOptions\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        httpOptions:     object\n\n                    \n                \n                    \n                        \n                            Type :     object\n\n                        \n                    \n                    \n                        \n                            Default value : {\n    headers: new HttpHeaders({\n      'Content-Type': 'application/json'\n    })\n  }\n                        \n                    \n                        \n                            \n                                    Defined in src/app/services/api/request.service.ts:13\n                            \n                        \n\n\n            \n        \n\n\n    \n\n\n    \n        import { Injectable } from '@angular/core';\nimport { URL_LOCALHOST } from '../../constants/urls';\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/internal/operators/map';\nimport { Observable } from 'rxjs';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class RequestService {\n  API_URL = URL_LOCALHOST;\n  httpOptions = {\n    headers: new HttpHeaders({\n      'Content-Type': 'application/json'\n    })\n  };\n  constructor(private _http: HttpClient) {}\n\n  getQuery(query: String) {\n    return this._http.get(`${this.API_URL}${query}`);\n  }\n\n  postQuery(resourceUrl: string, data: any) {\n    return this._http\n      .post(this.API_URL + resourceUrl, data, this.httpOptions)\n      .pipe(\n        map((res: any) => {\n          console.log(res);\n          return res;\n        })\n      );\n  }\n\n  public getJSON(path: string): Observable {\n    return this._http.get(path);\n  }\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"pipes/RoundPipe.html":{"url":"pipes/RoundPipe.html","title":"pipe - RoundPipe","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n  Pipes\n  RoundPipe\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n\n        \n            File\n        \n        \n            src/app/pipes/round.pipe.ts\n        \n\n\n\n        \n            Metadata\n            \n                \n                    \n                        Name\n                        round\n                    \n                \n            \n        \n\n            \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            transform\n                            \n                            \n                        \n                    \n                \n                \n                    \ntransform(value: number, precision: number)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pipes/round.pipe.ts:7\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        value\n                                                        \n                                                                    number\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                                \n                                                        precision\n                                                        \n                                                                    number\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     number\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n\n\n\n    \n\n\n    \n        import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'round'\n})\nexport class RoundPipe implements PipeTransform {\n  transform(value: number, precision: number): number {\n    const multiplier = Math.pow(10, precision || 0);\n    return Math.round(value * multiplier) / multiplier;\n  }\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/ScrollTopComponent.html":{"url":"components/ScrollTopComponent.html","title":"component - ScrollTopComponent","body":"\n                   \n\n\n\n\n\n  Components\n  ScrollTopComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/shared/scroll-top/scroll-top.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-scroll-top\n            \n\n            \n                styleUrls\n                scroll-top.component.css\n            \n\n\n\n            \n                templateUrl\n                ./scroll-top.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor()\n                    \n                \n                        \n                            \n                                Defined in src/app/shared/scroll-top/scroll-top.component.ts:8\n                            \n                        \n\n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/shared/scroll-top/scroll-top.component.ts:12\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'app-scroll-top',\n  templateUrl: './scroll-top.component.html',\n  styleUrls: ['./scroll-top.component.css']\n})\nexport class ScrollTopComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n\n    \n\n    \n        \n\n  \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '  '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'ScrollTopComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"interfaces/Season.html":{"url":"interfaces/Season.html","title":"interface - Season","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n\n\n  Interfaces\n  Season\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/interfaces/seasons.interface.ts\n        \n\n\n\n        \n            Index\n            \n                \n                    \n                        \n                            Properties\n                        \n                    \n                    \n                        \n                            \n                                \n                                        season\n                                \n                                \n                                        url\n                                \n                            \n                        \n                    \n                \n            \n        \n\n\n\n            \n                Properties\n                    \n                        \n                                \n                                    \n                                        \n                                        season\n                                    \n                                \n                                \n                                    \n                                        season:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        url\n                                    \n                                \n                                \n                                    \n                                        url:     string\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     string\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n            \n    \n\n\n    \n        export interface Season {\n    url: string;\n    season: string;\n}\n\n    \n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/SeasonsComponent.html":{"url":"components/SeasonsComponent.html","title":"component - SeasonsComponent","body":"\n                   \n\n\n\n\n\n  Components\n  SeasonsComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/pages/seasons/seasons.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-seasons\n            \n\n            \n                styleUrls\n                seasons.component.css\n            \n\n\n\n            \n                templateUrl\n                ./seasons.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                seasons\n                            \n                            \n                                showInfo\n                            \n                        \n                    \n                \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                    Private\n                                loadDataDialog\n                            \n                            \n                                loadDataFromAssets\n                            \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor(_seasonService: SeasonsService, _alertService: AlertService, selectPageService: SharedService)\n                    \n                \n                        \n                            \n                                Defined in src/app/pages/seasons/seasons.component.ts:14\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        _seasonService\n                                                  \n                                                        \n                                                                    SeasonsService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        _alertService\n                                                  \n                                                        \n                                                                    AlertService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                                \n                                                        selectPageService\n                                                  \n                                                        \n                                                                    SharedService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Private\n                            loadDataDialog\n                            \n                            \n                        \n                    \n                \n                \n                    \n                            \n                        loadDataDialog(open: boolean)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/seasons/seasons.component.ts:28\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                                    Default value\n                                            \n                                        \n                                        \n                                                \n                                                        open\n                                                        \n                                                                    boolean\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                        \n                                                                true\n                                                        \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     void\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            loadDataFromAssets\n                            \n                            \n                        \n                    \n                \n                \n                    \nloadDataFromAssets()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/seasons/seasons.component.ts:42\n                            \n                        \n\n\n                \n                    \n                            Take data from a local file in json format\n\n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/seasons/seasons.component.ts:21\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n    \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            seasons\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        seasons:     Season[]\n\n                    \n                \n                    \n                        \n                            Type :     Season[]\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/seasons/seasons.component.ts:13\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            showInfo\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        showInfo:     \n\n                    \n                \n                    \n                        \n                            Default value : false\n                        \n                    \n                        \n                            \n                                    Defined in src/app/pages/seasons/seasons.component.ts:14\n                            \n                        \n\n\n            \n        \n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\nimport { SeasonsService } from '../../services/api/seasons.service';\nimport { Season } from '../../interfaces/seasons.interface';\nimport { AlertService } from '../../services/alert.service';\nimport { SharedService } from '../../services/shared.service';\n\n@Component({\n  selector: `app-seasons`,\n  templateUrl: `./seasons.component.html`,\n  styleUrls: [`./seasons.component.css`]\n})\nexport class SeasonsComponent implements OnInit {\n  seasons: Season[];\n  showInfo = false;\n  constructor(\n    private _seasonService: SeasonsService,\n    private _alertService: AlertService,\n    private selectPageService: SharedService\n  ) {}\n\n  ngOnInit() {\n    this.selectPageService.setSelectPage(\n      `All history seasons list`\n    );\n    this.loadDataFromAssets();\n  }\n\n  private loadDataDialog(open: boolean = true) {\n    if (open) {\n      this._alertService.loadData(\n        `Load seasons list!!`,\n        `Wait a moment please!!`\n      );\n    } else {\n      this._alertService.closeAlert();\n    }\n  }\n\n  /**\n   * Take data from a local file in json format\n   */\n  loadDataFromAssets() {\n    this.loadDataDialog();\n    this._seasonService.loadListFromLocal().subscribe((data: Season[]) => {\n      console.log(data);\n      this.showInfo = true;\n      this.seasons = data;\n      this.loadDataDialog(false);\n    });\n  }\n}\n\n    \n\n    \n        \n  \n    \n      \n        {{season.season}}\n        \n          \n            \n          \n          \n            \n          \n        \n        \n          Last updated 3 mins ago\n        -->\n      \n    \n  \n\n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '                    {{season.season}}                                                                                                  Last updated 3 mins ago        -->            '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'SeasonsComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"injectables/SeasonsService.html":{"url":"injectables/SeasonsService.html","title":"injectable - SeasonsService","body":"\n                   \n\n\n\n\n\n\n\n\n  Injectables\n  SeasonsService\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/services/api/seasons.service.ts\n        \n\n\n\n            \n    Index\n    \n        \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                list\n                            \n                            \n                                loadListFromLocal\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n            \n    Constructor\n        \n            \n                \n                    \nconstructor(request: RequestService)\n                    \n                \n                        \n                            \n                                Defined in src/app/services/api/seasons.service.ts:9\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        request\n                                                  \n                                                        \n                                                                    RequestService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n            \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            list\n                            \n                            \n                        \n                    \n                \n                \n                    \nlist()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/api/seasons.service.ts:12\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     any\n\n                            \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            loadListFromLocal\n                            \n                            \n                        \n                    \n                \n                \n                    \nloadListFromLocal()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/api/seasons.service.ts:19\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     any\n\n                            \n                    \n                \n            \n        \n\n\n\n    \n\n\n    \n        import { Injectable } from '@angular/core';\nimport { SEASONS_URLS } from '../../constants/urls';\nimport { RequestService } from './request.service';\nimport { map } from 'rxjs/internal/operators/map';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SeasonsService {\n  constructor(private request: RequestService) {}\n\n  list() {\n    console.log(SEASONS_URLS.ALL_SEASONS_URL);\n    return this.request\n      .getQuery(SEASONS_URLS.ALL_SEASONS_URL)\n      .pipe(map(data => data['MRData'].SeasonTable.Seasons));\n  }\n\n  loadListFromLocal() {\n    return this.request\n      .getJSON('./../../../assets/data/api/seasons.json')\n      .pipe(map(data => data['MRData'].SeasonTable.Seasons));\n  }\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/SettingsComponent.html":{"url":"components/SettingsComponent.html","title":"component - SettingsComponent","body":"\n                   \n\n\n\n\n\n  Components\n  SettingsComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/pages/settings/settings.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-settings\n            \n\n            \n                styleUrls\n                settings.component.css\n            \n\n\n\n            \n                templateUrl\n                ./settings.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor(selectPageService: SharedService)\n                    \n                \n                        \n                            \n                                Defined in src/app/pages/settings/settings.component.ts:9\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        selectPageService\n                                                  \n                                                        \n                                                                    SharedService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/settings/settings.component.ts:13\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\nimport { SharedService } from '../../services/shared.service';\n\n@Component({\n  selector: 'app-settings',\n  templateUrl: './settings.component.html',\n  styleUrls: ['./settings.component.css']\n})\nexport class SettingsComponent implements OnInit {\n\n  constructor(private selectPageService: SharedService) { }\n\n  ngOnInit() {\n    this.selectPageService.setSelectPage('settings');\n  }\n\n}\n\n    \n\n    \n        \n  settings works!\n\n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '  settings works!'\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'SettingsComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"injectables/SettingsService.html":{"url":"injectables/SettingsService.html","title":"injectable - SettingsService","body":"\n                   \n\n\n\n\n\n\n\n\n  Injectables\n  SettingsService\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/services/settings.service.ts\n        \n\n\n\n\n            \n    Constructor\n        \n            \n                \n                    \nconstructor()\n                    \n                \n                        \n                            \n                                Defined in src/app/services/settings.service.ts:6\n                            \n                        \n\n            \n        \n\n\n\n\n    \n\n\n    \n        import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SettingsService {\n\n  constructor() { }\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"modules/SharedModule.html":{"url":"modules/SharedModule.html","title":"module - SharedModule","body":"\n                   \n\n\n\n\n  Modules\n  SharedModule\n\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n\n        \n            File\n        \n        \n            src/app/shared/shared.module.ts\n        \n\n\n        \n\n        \n            \n            \n        \n    \n\n\n    \n        import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { HeaderComponent } from './header/header.component';\nimport { SidebarComponent } from './sidebar/sidebar.component';\nimport { NotpagefoundComponent } from './notpagefound/notpagefound.component';\nimport { BreadcrumbComponent } from './breadcrumb/breadcrumb.component';\nimport { FooterComponent } from './footer/footer.component';\nimport { ScrollTopComponent } from './scroll-top/scroll-top.component';\nimport { CommonModule } from '@angular/common';\nimport { CapitalizePipe } from '../pipes/capitalize.pipe';\n\nconst COMPONENTS = [HeaderComponent, SidebarComponent, BreadcrumbComponent, NotpagefoundComponent, FooterComponent, ScrollTopComponent];\nconst PIPES = [CapitalizePipe];\n\nconst DECLARATIONS = [...PIPES, ...COMPONENTS];\n@NgModule({\n  imports: [CommonModule, RouterModule],\n  declarations: DECLARATIONS,\n    exports: DECLARATIONS\n})\nexport class SharedModule {}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"injectables/SharedService.html":{"url":"injectables/SharedService.html","title":"injectable - SharedService","body":"\n                   \n\n\n\n\n\n\n\n\n  Injectables\n  SharedService\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/services/shared.service.ts\n        \n\n\n\n            \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                    Private\n                                selectPage\n                            \n                        \n                    \n                \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                setSelectPage\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n            \n    Constructor\n        \n            \n                \n                    \nconstructor()\n                    \n                \n                        \n                            \n                                Defined in src/app/services/shared.service.ts:7\n                            \n                        \n\n            \n        \n\n\n            \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            setSelectPage\n                            \n                            \n                        \n                    \n                \n                \n                    \nsetSelectPage(page: string)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/services/shared.service.ts:13\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        page\n                                                        \n                                                                    string\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     void\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n\n\n            \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Private\n                            selectPage\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        selectPage:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/services/shared.service.ts:7\n                            \n                        \n\n\n            \n        \n\n\n    \n\n\n    \n        import { Injectable, Output, EventEmitter } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SharedService {\n  private selectPage: string;\n  constructor() {}\n\n  @Output()\n  change: EventEmitter = new EventEmitter();\n\n  setSelectPage(page: string) {\n    this.change.emit(page);\n  }\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/SidebarComponent.html":{"url":"components/SidebarComponent.html","title":"component - SidebarComponent","body":"\n                   \n\n\n\n\n\n  Components\n  SidebarComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/shared/sidebar/sidebar.component.ts\n\n\n\n\n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-sidebar\n            \n\n            \n                styleUrls\n                sidebar.component.css\n            \n\n\n\n            \n                templateUrl\n                ./sidebar.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                    Public\n                                _sidebar\n                            \n                            \n                                findClassToggled\n                            \n                            \n                                toggledSideNav\n                            \n                        \n                    \n                \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                hello\n                            \n                            \n                                toggled\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor(_sidebar: SidebarService)\n                    \n                \n                        \n                            \n                                Defined in src/app/shared/sidebar/sidebar.component.ts:11\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        _sidebar\n                                                  \n                                                        \n                                                                    SidebarService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            hello\n                            \n                            \n                        \n                    \n                \n                \n                    \nhello()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/shared/sidebar/sidebar.component.ts:26\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            toggled\n                            \n                            \n                        \n                    \n                \n                \n                    \ntoggled()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/shared/sidebar/sidebar.component.ts:30\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n    \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                                Public\n                            _sidebar\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        _sidebar:     SidebarService\n\n                    \n                \n                    \n                        \n                            Type :     SidebarService\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/shared/sidebar/sidebar.component.ts:12\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            findClassToggled\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        findClassToggled:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                    \n                        \n                            Default value : 'sidenav-toggled'\n                        \n                    \n                        \n                            \n                                    Defined in src/app/shared/sidebar/sidebar.component.ts:10\n                            \n                        \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            toggledSideNav\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        toggledSideNav:     boolean\n\n                    \n                \n                    \n                        \n                            Type :     boolean\n\n                        \n                    \n                        \n                            \n                                    Defined in src/app/shared/sidebar/sidebar.component.ts:11\n                            \n                        \n\n\n            \n        \n\n\n\n\n\n    \n        import { Component } from '@angular/core';\nimport { SidebarService } from '../../services/sidebar.service';\n\n@Component({\n  selector: 'app-sidebar',\n  templateUrl: './sidebar.component.html',\n  styleUrls: ['./sidebar.component.css']\n})\nexport class SidebarComponent {\n  findClassToggled = 'sidenav-toggled';\n  toggledSideNav: boolean;\n  constructor( public _sidebar: SidebarService) {\n    if (localStorage.getItem('toggleSideNav') === '1') {\n      document\n        .getElementById('page-top')\n        .classList.add(this.findClassToggled);\n    } else {\n      document\n        .getElementById('page-top')\n        .classList.remove(this.findClassToggled);\n    }\n  }\n\n  // sidenav-toggled\n\n  hello() {\n    console.log('hello');\n  }\n\n  toggled() {\n    const find = localStorage.getItem('toggleSideNav');\n    if (find === '1') {\n      // remove\n      document\n        .getElementById('page-top')\n        .classList.remove(this.findClassToggled);\n      localStorage.setItem('toggleSideNav', '0');\n    } else {\n      document\n        .getElementById('page-top')\n        .classList.add(this.findClassToggled);\n      localStorage.setItem('toggleSideNav', '1');\n    }\n  }\n}\n\n    \n\n    \n        \n  \n      \n        \n        &nbsp;&nbsp;{{ m.title }}\n      \n      \n        \n        &nbsp;&nbsp;{{ m.title }}\n      \n      \n        \n          &nbsp;{{ sub.title }}\n        \n      \n  \n\n\n  \n    \n      \n    \n  \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = '                          {{ m.title }}                              {{ m.title }}                               {{ sub.title }}                                  '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'SidebarComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"injectables/SidebarService.html":{"url":"injectables/SidebarService.html","title":"injectable - SidebarService","body":"\n                   \n\n\n\n\n\n\n\n\n  Injectables\n  SidebarService\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/services/sidebar.service.ts\n        \n\n\n\n            \n    Index\n    \n        \n                \n                    \n                        Properties\n                    \n                \n                \n                    \n                        \n                            \n                                menu\n                            \n                        \n                    \n                \n\n\n\n\n\n\n        \n    \n\n\n\n\n            \n    \n        \n            Properties\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            menu\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        menu:     any\n\n                    \n                \n                    \n                        \n                            Type :     any\n\n                        \n                    \n                    \n                        \n                            Default value : [\n    {\n      title: 'Current Year',\n      icon: 'fas fa-tachometer-alt',\n      route: '/dashboard'\n    },\n    {\n      title: 'Seasons',\n      icon: 'fas fa-award',\n      route: '/seasons'\n    },\n    {\n      title: 'Charts',\n      icon: 'fas fa-chart-line',\n      route: '/charts'\n    },\n    {\n      title: 'Drivers',\n      icon: 'fas fa-car',\n      route: '/drivers'\n    },\n    {\n      title: 'Circuits',\n      icon: 'fas fa-road',\n      route: '/circuits'\n    },\n    {\n      title: 'Races',\n      icon: 'fas fa-flag-checkered',\n      route: '/races'\n    },\n    {\n      title: 'Settings',\n      icon: 'fas fa-wrench',\n      route: '/settings'\n    }\n  ]\n                        \n                    \n                        \n                            \n                                    Defined in src/app/services/sidebar.service.ts:7\n                            \n                        \n\n\n            \n        \n\n\n    \n\n\n    \n        import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SidebarService {\n  menu: any = [\n    {\n      title: 'Current Year',\n      icon: 'fas fa-tachometer-alt',\n      route: '/dashboard'\n    },\n    {\n      title: 'Seasons',\n      icon: 'fas fa-award',\n      route: '/seasons'\n    },\n    {\n      title: 'Charts',\n      icon: 'fas fa-chart-line',\n      route: '/charts'\n    },\n    {\n      title: 'Drivers',\n      icon: 'fas fa-car',\n      route: '/drivers'\n    },\n    {\n      title: 'Circuits',\n      icon: 'fas fa-road',\n      route: '/circuits'\n    },\n    {\n      title: 'Races',\n      icon: 'fas fa-flag-checkered',\n      route: '/races'\n    },\n    {\n      title: 'Settings',\n      icon: 'fas fa-wrench',\n      route: '/settings'\n    }\n  ];\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"components/SupportComponent.html":{"url":"components/SupportComponent.html","title":"component - SupportComponent","body":"\n                   \n\n\n\n\n\n  Components\n  SupportComponent\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n        \n            Template\n        \n        \n            DOM Tree\n        \n\n\n\n    \n    File\n\n\n    src/app/pages/support/support.component.ts\n\n\n\n\n    \n        Implements\n    \n    \n                OnInit\n    \n\n\n\n    Metadata\n    \n        \n\n\n\n\n\n\n\n\n\n\n\n            \n                selector\n                app-support\n            \n\n            \n                styleUrls\n                support.component.css\n            \n\n\n\n            \n                templateUrl\n                ./support.component.html\n            \n\n\n        \n    \n\n\n    \n    Index\n    \n        \n\n                \n                    \n                        Methods\n                    \n                \n                \n                    \n                        \n                            \n                                ngOnInit\n                            \n                        \n                    \n                \n\n\n\n\n\n        \n    \n\n\n    \n    Constructor\n        \n            \n                \n                    \nconstructor(selectPageService: SharedService)\n                    \n                \n                        \n                            \n                                Defined in src/app/pages/support/support.component.ts:9\n                            \n                        \n\n                \n                    \n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        selectPageService\n                                                  \n                                                        \n                                                                    SharedService\n                                                        \n                                                  \n                                                    \n                                                            No\n                                                    \n                                                    \n                                                \n                                        \n                                    \n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            ngOnInit\n                            \n                            \n                        \n                    \n                \n                \n                    \nngOnInit()\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pages/support/support.component.ts:12\n                            \n                        \n\n\n                \n                    \n\n                            \n                                Returns :     void\n\n                            \n                    \n                \n            \n        \n\n\n\n\n\n\n    \n        import { Component, OnInit } from '@angular/core';\nimport { SharedService } from '../../services/shared.service';\n\n@Component({\n  selector: 'app-support',\n  templateUrl: './support.component.html',\n  styleUrls: ['./support.component.css']\n})\nexport class SupportComponent implements OnInit {\n  constructor(private selectPageService: SharedService) {}\n\n  ngOnInit() {\n    this.selectPageService.setSelectPage('Support');\n  }\n}\n\n    \n\n    \n        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris interdum purus at sem ornare sodales. Morbi leo nulla, pharetra\n  vel felis nec, ullamcorper condimentum quam.\n\n  \n  \n    \n      \n        \n        call us\n        +34 666-66-66-66\n      \n    \n  \n  \n    \n      \n        \n        email\n        mugan86@gmail.com\n      \n    \n  \n  \n    \n    \n      \n        \n          \n            \n               Contactanos\n            Con gusto te ayudaremos\n          \n        \n        \n\n          \n          \n            \n              \n                \n                  \n                \n              \n              \n            \n          \n          \n            \n              \n                \n                  \n                \n              \n              \n            \n          \n\n          \n            \n              \n                \n                  \n                \n              \n              \n            \n          \n\n          \n            \n          \n        \n\n      \n    \n  \n  \n\n    \n\n    \n        \n        \n            \n                Legend\n            \n            \n                Html element\n            \n            \n                Component\n            \n            \n                Html element with directive\n            \n        \n    \n\n    \n\n\n\n\n\n\n        var COMPONENT_TEMPLATE = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris interdum purus at sem ornare sodales. Morbi leo nulla, pharetra  vel felis nec, ullamcorper condimentum quam.                              call us        +34 666-66-66-66                                        email        mugan86@gmail.com                                                                         Contactanos            Con gusto te ayudaremos                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  '\n    var COMPONENTS = [{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BarChartComponent', 'selector': 'app-bar-chart'},{'name': 'BreadcrumbComponent', 'selector': 'app-breadcrumb'},{'name': 'ChartComponent', 'selector': 'app-chart'},{'name': 'CircuitsComponent', 'selector': 'app-circuits'},{'name': 'DashboardComponent', 'selector': 'app-dashboard'},{'name': 'DoughnutChartComponent', 'selector': 'app-doughnut-chart'},{'name': 'DriversComponent', 'selector': 'app-drivers'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'ForgotComponent', 'selector': 'app-forgot'},{'name': 'GoogleMapsComponent', 'selector': 'app-google-maps'},{'name': 'HeaderComponent', 'selector': 'app-header'},{'name': 'LineChartComponent', 'selector': 'app-line-chart'},{'name': 'LoginComponent', 'selector': 'app-login'},{'name': 'NotpagefoundComponent', 'selector': 'app-notpagefound'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PolarAreaChartComponent', 'selector': 'app-polar-area-chart'},{'name': 'RacesComponent', 'selector': 'app-races'},{'name': 'RadarChartComponent', 'selector': 'app-radar-chart'},{'name': 'RegisterComponent', 'selector': 'app-register'},{'name': 'ScrollTopComponent', 'selector': 'app-scroll-top'},{'name': 'SeasonsComponent', 'selector': 'app-seasons'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SupportComponent', 'selector': 'app-support'}];\n    var DIRECTIVES = [{'name': 'DefaultImageDirective', 'selector': 'img[default]'}];\n    var ACTUAL_COMPONENT = {'name': 'SupportComponent'};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"interfaces/User.html":{"url":"interfaces/User.html","title":"interface - User","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n\n\n  Interfaces\n  User\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n        \n            File\n        \n        \n            src/app/interfaces/user.interface.ts\n        \n\n\n\n        \n            Index\n            \n                \n                    \n                        \n                            Properties\n                        \n                    \n                    \n                        \n                            \n                                \n                                        email\n                                \n                                \n                                        id\n                                \n                                \n                                        lastname\n                                \n                                \n                                        name\n                                \n                                \n                                        role\n                                \n                                \n                                        token\n                                \n                                \n                                        username\n                                \n                            \n                        \n                    \n                \n            \n        \n\n\n\n            \n                Properties\n                    \n                        \n                                \n                                    \n                                        \n                                        email\n                                    \n                                \n                                \n                                    \n                                        email:     String\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     String\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        id\n                                    \n                                \n                                \n                                    \n                                        id:     number\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     number\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        lastname\n                                    \n                                \n                                \n                                    \n                                        lastname:     String\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     String\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        name\n                                    \n                                \n                                \n                                    \n                                        name:     String\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     String\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        role\n                                    \n                                \n                                \n                                    \n                                        role:     String\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     String\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        token\n                                    \n                                \n                                \n                                    \n                                        token:     String\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     String\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n                    \n                        \n                                \n                                    \n                                        \n                                        username\n                                    \n                                \n                                \n                                    \n                                        username:     String\n\n                                    \n                                \n\n\n                                    \n                                        \n                                            Type :     String\n\n                                        \n                                    \n\n\n\n\n\n                        \n                    \n            \n    \n\n\n    \n        interface User {\n    email: String;\n    id: number;\n    lastname: String;\n    name: String;\n    role: String;\n    token: String;\n    username: String;\n}\n\n    \n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"pipes/WikipediaUrlMobilePipe.html":{"url":"pipes/WikipediaUrlMobilePipe.html","title":"pipe - WikipediaUrlMobilePipe","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n  Pipes\n  WikipediaUrlMobilePipe\n\n\n\n        \n            Info\n        \n        \n            Source\n        \n\n\n\n    \n\n        \n            File\n        \n        \n            src/app/pipes/wikipedia-url-mobile.pipe.ts\n        \n\n\n\n        \n            Metadata\n            \n                \n                    \n                        Name\n                        wikipediaUrlMobile\n                    \n                \n            \n        \n\n            \n    \n        \n            Methods\n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            transform\n                            \n                            \n                        \n                    \n                \n                \n                    \ntransform(value: any)\n                    \n                \n\n\n                        \n                            \n                                    Defined in src/app/pipes/wikipedia-url-mobile.pipe.ts:8\n                            \n                        \n\n\n                \n                    \n\n                            \n                                    Parameters :\n                                    \n                                        \n                                            \n                                                Name\n                                                    Type\n                                                Optional\n                                            \n                                        \n                                        \n                                                \n                                                        value\n                                                        \n                                                                    any\n                                                        \n                                                    \n                                                    \n                                                            No\n                                                    \n                                                    \n\n                                                \n                                        \n                                    \n                            \n                            \n                            \n                            \n                                Returns :     any\n\n                            \n                                \n                                    \n                                \n                    \n                \n            \n        \n\n\n\n    \n\n\n    \n        import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'wikipediaUrlMobile'\n})\nexport class WikipediaUrlMobilePipe implements PipeTransform {\n\n  transform(value: any): any {\n    return value.replace('wikipedia', 'm.wikipedia');\n  }\n\n}\n\n    \n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"coverage.html":{"url":"coverage.html","title":"coverage - coverage","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n    Documentation coverage\n\n\n\n    \n\n\n\n    \n        \n            File\n            Type\n            Identifier\n            Statements\n        \n    \n    \n        \n            \n                \n                src/app/app.component.ts\n            \n            \n                component\n            \n            \n                AppComponent\n            \n            \n                0 %\n                (0/2)\n            \n        \n        \n            \n                \n                src/app/app.routes.ts\n            \n            \n                variable\n            \n            \n                APP_ROUTES\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/components/charts/bar-chart/bar-chart.component.ts\n            \n            \n                component\n            \n            \n                BarChartComponent\n            \n            \n                0 %\n                (0/7)\n            \n        \n        \n            \n                \n                src/app/components/charts/doughnut-chart/doughnut-chart.component.ts\n            \n            \n                component\n            \n            \n                DoughnutChartComponent\n            \n            \n                20 %\n                (1/5)\n            \n        \n        \n            \n                \n                src/app/components/charts/line-chart/line-chart.component.ts\n            \n            \n                component\n            \n            \n                LineChartComponent\n            \n            \n                0 %\n                (0/7)\n            \n        \n        \n            \n                \n                src/app/components/charts/pie-chart/pie-chart.component.ts\n            \n            \n                component\n            \n            \n                PieChartComponent\n            \n            \n                0 %\n                (0/7)\n            \n        \n        \n            \n                \n                src/app/components/charts/polar-area-chart/polar-area-chart.component.ts\n            \n            \n                component\n            \n            \n                PolarAreaChartComponent\n            \n            \n                0 %\n                (0/3)\n            \n        \n        \n            \n                \n                src/app/components/charts/radar-chart/radar-chart.component.ts\n            \n            \n                component\n            \n            \n                RadarChartComponent\n            \n            \n                0 %\n                (0/3)\n            \n        \n        \n            \n                \n                src/app/components/google-maps/google-maps.component.ts\n            \n            \n                component\n            \n            \n                GoogleMapsComponent\n            \n            \n                0 %\n                (0/7)\n            \n        \n        \n            \n                \n                src/app/constants/urls.ts\n            \n            \n                variable\n            \n            \n                CIRCUITS_URLS\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/constants/urls.ts\n            \n            \n                variable\n            \n            \n                CONSTRUCTORS_URLS\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/constants/urls.ts\n            \n            \n                variable\n            \n            \n                DRIVERS_URLS\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/constants/urls.ts\n            \n            \n                variable\n            \n            \n                IMG_PATH_COMPLETE\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/constants/urls.ts\n            \n            \n                variable\n            \n            \n                IMG_URLS_PRINCIPAL\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/constants/urls.ts\n            \n            \n                variable\n            \n            \n                RACES_URLS\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/constants/urls.ts\n            \n            \n                variable\n            \n            \n                SEASONS_URLS\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/constants/urls.ts\n            \n            \n                variable\n            \n            \n                STATUS_URLS\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/constants/urls.ts\n            \n            \n                variable\n            \n            \n                URL_LOCALHOST\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/directives/default-image.directive.ts\n            \n            \n                directive\n            \n            \n                DefaultImageDirective\n            \n            \n                0 %\n                (0/4)\n            \n        \n        \n            \n                \n                src/app/interfaces/circuit.interface.ts\n            \n            \n                interface\n            \n            \n                Circuit\n            \n            \n                0 %\n                (0/5)\n            \n        \n        \n            \n                \n                src/app/interfaces/confirm.interface.ts\n            \n            \n                interface\n            \n            \n                Confirm\n            \n            \n                0 %\n                (0/8)\n            \n        \n        \n            \n                \n                src/app/interfaces/constructor.interface.ts\n            \n            \n                interface\n            \n            \n                Constructor\n            \n            \n                0 %\n                (0/5)\n            \n        \n        \n            \n                \n                src/app/interfaces/driver.interface.ts\n            \n            \n                interface\n            \n            \n                Driver\n            \n            \n                0 %\n                (0/7)\n            \n        \n        \n            \n                \n                src/app/interfaces/location.interface.ts\n            \n            \n                interface\n            \n            \n                Location\n            \n            \n                0 %\n                (0/5)\n            \n        \n        \n            \n                \n                src/app/interfaces/marker.interface.ts\n            \n            \n                interface\n            \n            \n                MarkerIF\n            \n            \n                42 %\n                (3/7)\n            \n        \n        \n            \n                \n                src/app/interfaces/race.interface.ts\n            \n            \n                interface\n            \n            \n                Race\n            \n            \n                0 %\n                (0/8)\n            \n        \n        \n            \n                \n                src/app/interfaces/seasons.interface.ts\n            \n            \n                interface\n            \n            \n                Season\n            \n            \n                0 %\n                (0/3)\n            \n        \n        \n            \n                \n                src/app/interfaces/user.interface.ts\n            \n            \n                interface\n            \n            \n                User\n            \n            \n                0 %\n                (0/8)\n            \n        \n        \n            \n                \n                src/app/login/forgot/forgot.component.ts\n            \n            \n                component\n            \n            \n                ForgotComponent\n            \n            \n                0 %\n                (0/3)\n            \n        \n        \n            \n                \n                src/app/login/login-form/login.component.ts\n            \n            \n                component\n            \n            \n                LoginComponent\n            \n            \n                0 %\n                (0/5)\n            \n        \n        \n            \n                \n                src/app/login/login-form/login.interface.ts\n            \n            \n                interface\n            \n            \n                Login\n            \n            \n                0 %\n                (0/5)\n            \n        \n        \n            \n                \n                src/app/login/login.module.ts\n            \n            \n                variable\n            \n            \n                COMPONENTS\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/login/register/register.component.ts\n            \n            \n                component\n            \n            \n                RegisterComponent\n            \n            \n                0 %\n                (0/3)\n            \n        \n        \n            \n                \n                src/app/models/marker.model.ts\n            \n            \n                class\n            \n            \n                Marker\n            \n            \n                0 %\n                (0/6)\n            \n        \n        \n            \n                \n                src/app/pages/charts/chart.component.ts\n            \n            \n                component\n            \n            \n                ChartComponent\n            \n            \n                5 %\n                (1/19)\n            \n        \n        \n            \n                \n                src/app/pages/circuits/circuits.component.ts\n            \n            \n                component\n            \n            \n                CircuitsComponent\n            \n            \n                10 %\n                (1/10)\n            \n        \n        \n            \n                \n                src/app/pages/dashboard/dashboard.component.ts\n            \n            \n                component\n            \n            \n                DashboardComponent\n            \n            \n                0 %\n                (0/4)\n            \n        \n        \n            \n                \n                src/app/pages/drivers/drivers.component.ts\n            \n            \n                component\n            \n            \n                DriversComponent\n            \n            \n                20 %\n                (2/10)\n            \n        \n        \n            \n                \n                src/app/pages/pages.component.ts\n            \n            \n                component\n            \n            \n                PagesComponent\n            \n            \n                0 %\n                (0/3)\n            \n        \n        \n            \n                \n                src/app/pages/pages.module.ts\n            \n            \n                variable\n            \n            \n                COMPONENTS\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/pages/pages.module.ts\n            \n            \n                variable\n            \n            \n                DECLARATIONS\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/pages/pages.module.ts\n            \n            \n                variable\n            \n            \n                DIRECTIVES\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/pages/pages.module.ts\n            \n            \n                variable\n            \n            \n                PIPES\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/pages/pages.routes.ts\n            \n            \n                variable\n            \n            \n                PAGE_ROUTES\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/pages/races/races.component.ts\n            \n            \n                component\n            \n            \n                RacesComponent\n            \n            \n                12 %\n                (1/8)\n            \n        \n        \n            \n                \n                src/app/pages/seasons/seasons.component.ts\n            \n            \n                component\n            \n            \n                SeasonsComponent\n            \n            \n                14 %\n                (1/7)\n            \n        \n        \n            \n                \n                src/app/pages/settings/settings.component.ts\n            \n            \n                component\n            \n            \n                SettingsComponent\n            \n            \n                0 %\n                (0/3)\n            \n        \n        \n            \n                \n                src/app/pages/support/support.component.ts\n            \n            \n                component\n            \n            \n                SupportComponent\n            \n            \n                0 %\n                (0/3)\n            \n        \n        \n            \n                \n                src/app/pipes/capitalize.pipe.ts\n            \n            \n                pipe\n            \n            \n                CapitalizePipe\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/pipes/google-maps-url.pipe.ts\n            \n            \n                pipe\n            \n            \n                GoogleMapsUrlPipe\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/pipes/google-static-map-url.pipe.ts\n            \n            \n                pipe\n            \n            \n                GoogleStaticMapUrlPipe\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/pipes/location-text.pipe.ts\n            \n            \n                pipe\n            \n            \n                LocationTextPipe\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/pipes/round.pipe.ts\n            \n            \n                pipe\n            \n            \n                RoundPipe\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/pipes/wikipedia-url-mobile.pipe.ts\n            \n            \n                pipe\n            \n            \n                WikipediaUrlMobilePipe\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/services/alert.service.ts\n            \n            \n                injectable\n            \n            \n                AlertService\n            \n            \n                0 %\n                (0/6)\n            \n        \n        \n            \n                \n                src/app/services/api/circuits.service.ts\n            \n            \n                injectable\n            \n            \n                CircuitsService\n            \n            \n                0 %\n                (0/4)\n            \n        \n        \n            \n                \n                src/app/services/api/current.service.ts\n            \n            \n                injectable\n            \n            \n                CurrentService\n            \n            \n                0 %\n                (0/2)\n            \n        \n        \n            \n                \n                src/app/services/api/drivers.service.ts\n            \n            \n                injectable\n            \n            \n                DriversService\n            \n            \n                0 %\n                (0/4)\n            \n        \n        \n            \n                \n                src/app/services/api/races.service.ts\n            \n            \n                injectable\n            \n            \n                RacesService\n            \n            \n                0 %\n                (0/4)\n            \n        \n        \n            \n                \n                src/app/services/api/request.service.ts\n            \n            \n                injectable\n            \n            \n                RequestService\n            \n            \n                0 %\n                (0/7)\n            \n        \n        \n            \n                \n                src/app/services/api/seasons.service.ts\n            \n            \n                injectable\n            \n            \n                SeasonsService\n            \n            \n                0 %\n                (0/4)\n            \n        \n        \n            \n                \n                src/app/services/local-storage.service.ts\n            \n            \n                injectable\n            \n            \n                LocalStorageService\n            \n            \n                0 %\n                (0/8)\n            \n        \n        \n            \n                \n                src/app/services/settings.service.ts\n            \n            \n                injectable\n            \n            \n                SettingsService\n            \n            \n                0 %\n                (0/2)\n            \n        \n        \n            \n                \n                src/app/services/shared.service.ts\n            \n            \n                injectable\n            \n            \n                SharedService\n            \n            \n                0 %\n                (0/4)\n            \n        \n        \n            \n                \n                src/app/services/sidebar.service.ts\n            \n            \n                injectable\n            \n            \n                SidebarService\n            \n            \n                0 %\n                (0/2)\n            \n        \n        \n            \n                \n                src/app/shared/breadcrumb/breadcrumb.component.ts\n            \n            \n                component\n            \n            \n                BreadcrumbComponent\n            \n            \n                0 %\n                (0/4)\n            \n        \n        \n            \n                \n                src/app/shared/footer/footer.component.ts\n            \n            \n                component\n            \n            \n                FooterComponent\n            \n            \n                0 %\n                (0/4)\n            \n        \n        \n            \n                \n                src/app/shared/header/header.component.ts\n            \n            \n                component\n            \n            \n                HeaderComponent\n            \n            \n                0 %\n                (0/5)\n            \n        \n        \n            \n                \n                src/app/shared/notpagefound/notpagefound.component.ts\n            \n            \n                component\n            \n            \n                NotpagefoundComponent\n            \n            \n                0 %\n                (0/3)\n            \n        \n        \n            \n                \n                src/app/shared/scroll-top/scroll-top.component.ts\n            \n            \n                component\n            \n            \n                ScrollTopComponent\n            \n            \n                0 %\n                (0/3)\n            \n        \n        \n            \n                \n                src/app/shared/shared.module.ts\n            \n            \n                variable\n            \n            \n                COMPONENTS\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/shared/shared.module.ts\n            \n            \n                variable\n            \n            \n                DECLARATIONS\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/shared/shared.module.ts\n            \n            \n                variable\n            \n            \n                PIPES\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/app/shared/sidebar/sidebar.component.ts\n            \n            \n                component\n            \n            \n                SidebarComponent\n            \n            \n                0 %\n                (0/7)\n            \n        \n        \n            \n                \n                src/environments/api-keys.ts\n            \n            \n                variable\n            \n            \n                GOOGLEMAPS\n            \n            \n                100 %\n                (1/1)\n            \n        \n        \n            \n                \n                src/environments/environment.prod.ts\n            \n            \n                variable\n            \n            \n                environment\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/environments/environment.ts\n            \n            \n                variable\n            \n            \n                environment\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/test.ts\n            \n            \n                variable\n            \n            \n                context\n            \n            \n                0 %\n                (0/1)\n            \n        \n        \n            \n                \n                src/test.ts\n            \n            \n                variable\n            \n            \n                require\n            \n            \n                0 %\n                (0/1)\n            \n        \n    \n\n\n\n\n\n    new Tablesort(document.getElementById('coverage-table'));\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"dependencies.html":{"url":"dependencies.html","title":"package-dependencies - dependencies","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n    \n        Dependencies\n    \n    \n        \n            @agm/core : ^1.0.0-beta.3\n        \n            @agm/js-marker-clusterer : ^1.0.0-beta.3\n        \n            @angular/animations : ^6.0.3\n        \n            @angular/common : ^6.0.3\n        \n            @angular/compiler : ^6.0.3\n        \n            @angular/core : ^6.0.3\n        \n            @angular/forms : ^6.0.3\n        \n            @angular/http : ^6.0.3\n        \n            @angular/platform-browser : ^6.0.3\n        \n            @angular/platform-browser-dynamic : ^6.0.3\n        \n            @angular/router : ^6.0.3\n        \n            @toverux/ngx-sweetalert2 : ^4.0.0\n        \n            chart.js : ^2.7.2\n        \n            core-js : ^2.5.4\n        \n            i18n-config : ^1.0.3\n        \n            js-marker-clusterer : ^1.0.0\n        \n            ng2-charts : ^1.6.0\n        \n            ngx-easy-table : ^5.1.0\n        \n            rxjs : ^6.0.0\n        \n            sweetalert2 : ^7.25.3\n        \n            zone.js : ^0.8.26\n    \n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"miscellaneous/enumerations.html":{"url":"miscellaneous/enumerations.html","title":"miscellaneous-enumerations - enumerations","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  Miscellaneous\n  Enumerations\n\n\n\n    Index\n    \n        \n            \n                \n                    \n                        \n                            TypeConfirm   (src/.../type-confirm.enum.ts)\n                        \n                    \n                \n            \n        \n    \n\n\n    src/app/enums/type-confirm.enum.ts\n    \n        \n            \n                \n                    \n                        \n                        TypeConfirm\n                    \n                \n                        \n                            \n                                 WARNING\n                            \n                        \n                        \n                            \n                                Value : warning\n                            \n                        \n                        \n                            \n                                 ERROR\n                            \n                        \n                        \n                            \n                                Value : error\n                            \n                        \n                        \n                            \n                                 SUCCESS\n                            \n                        \n                        \n                            \n                                Value : success\n                            \n                        \n                        \n                            \n                                 INFO\n                            \n                        \n                        \n                            \n                                Value : info\n                            \n                        \n                        \n                            \n                                 QUESTION\n                            \n                        \n                        \n                            \n                                Value : question\n                            \n                        \n            \n        \n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"index.html":{"url":"index.html","title":"getting-started - index","body":"\n                   \n\nStarterBootstrapAdminAngular6\nThis project was generated with Angular CLI version 6.0.8.\nDevelopment server\nRun ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.\nCode scaffolding\nRun ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.\nBuild\nRun ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the --prod flag for a production build.\nRunning unit tests\nRun ng test to execute the unit tests via Karma.\nRunning end-to-end tests\nRun ng e2e to execute the end-to-end tests via Protractor.\nFurther help\nTo get more help on the Angular CLI use ng help or go check out the Angular CLI README.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"modules.html":{"url":"modules.html","title":"modules - modules","body":"\n                   \n\n\n\n\n    Modules\n\n\n    \n            \n                \n                    \n                        AppModule\n                    \n                    \n                                \n                                    \n                                        Your browser does not support SVG\n                                    \n                                \n                        \n                            Browse\n                        \n                    \n                \n            \n            \n                \n                    \n                        LoginModule\n                    \n                    \n                                \n                                    \n                                        Your browser does not support SVG\n                                    \n                                \n                        \n                            Browse\n                        \n                    \n                \n            \n            \n                \n                    \n                        PagesModule\n                    \n                    \n                                \n                                    \n                                        Your browser does not support SVG\n                                    \n                                \n                        \n                            Browse\n                        \n                    \n                \n            \n            \n                \n                    \n                        SharedModule\n                    \n                    \n                                \n                                    No graph available.\n                                \n                        \n                            Browse\n                        \n                    \n                \n            \n    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"overview.html":{"url":"overview.html","title":"overview - overview","body":"\n                   \n\n\n\n    Overview\n\n  \n\n    \n        \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_AppModule\n\n\n\ncluster_AppModule_declarations\n\n\n\ncluster_AppModule_imports\n\n\n\ncluster_AppModule_bootstrap\n\n\n\ncluster_LoginModule\n\n\n\ncluster_LoginModule_declarations\n\n\n\ncluster_LoginModule_exports\n\n\n\ncluster_PagesModule\n\n\n\ncluster_PagesModule_imports\n\n\n\n\nAppComponent\n\nAppComponent\n\n\n\nAppModule\n\nAppModule\n\nAppModule -->\n\nAppComponent->AppModule\n\n\n\n\n\nAppComponent \n\nAppComponent \n\nAppComponent  -->\n\nAppModule->AppComponent \n\n\n\n\n\nLoginModule\n\nLoginModule\n\nAppModule -->\n\nLoginModule->AppModule\n\n\n\n\n\nForgotComponent \n\nForgotComponent \n\nForgotComponent  -->\n\nLoginModule->ForgotComponent \n\n\n\n\n\nLoginComponent \n\nLoginComponent \n\nLoginComponent  -->\n\nLoginModule->LoginComponent \n\n\n\n\n\nRegisterComponent \n\nRegisterComponent \n\nRegisterComponent  -->\n\nLoginModule->RegisterComponent \n\n\n\n\n\nPagesModule\n\nPagesModule\n\nAppModule -->\n\nPagesModule->AppModule\n\n\n\nForgotComponent  -->\n\nPagesModule->ForgotComponent \n\n\n\nLoginComponent  -->\n\nPagesModule->LoginComponent \n\n\n\nRegisterComponent  -->\n\nPagesModule->RegisterComponent \n\n\n\n\n\nForgotComponent\n\nForgotComponent\n\nLoginModule -->\n\nForgotComponent->LoginModule\n\n\n\n\n\nLoginComponent\n\nLoginComponent\n\nLoginModule -->\n\nLoginComponent->LoginModule\n\n\n\n\n\nRegisterComponent\n\nRegisterComponent\n\nLoginModule -->\n\nRegisterComponent->LoginModule\n\n\n\n\n\nSharedModule\n\nSharedModule\n\nPagesModule -->\n\nSharedModule->PagesModule\n\n\n\n\n\n\n    \n    \n    \n        Zoom in\n        Reset\n        Zoom out\n    \n\n  \n\n    \n        \n            \n                \n                    \n                    \n                        4 Modules\n                    \n                \n            \n        \n        \n            \n                \n                    \n                    26 Components\n                \n            \n        \n        \n            \n                \n                    \n                    1 Directive\n                \n            \n        \n        \n            \n                \n                    \n                    11 Injectables\n                \n            \n        \n        \n            \n                \n                    \n                    6 Pipes\n                \n            \n        \n        \n            \n                \n                    \n                    1 Class\n                \n            \n        \n        \n            \n                \n                    \n                    10 Interfaces\n                \n            \n        \n    \n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"},"miscellaneous/variables.html":{"url":"miscellaneous/variables.html","title":"miscellaneous-variables - variables","body":"\n                   \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  Miscellaneous\n  Variables\n\n\n\n    Index\n    \n        \n            \n                \n                    \n                        \n                            APP_ROUTES   (src/.../app.routes.ts)\n                        \n                        \n                            CIRCUITS_URLS   (src/.../urls.ts)\n                        \n                        \n                            COMPONENTS   (src/.../pages.module.ts)\n                        \n                        \n                            COMPONENTS   (src/.../login.module.ts)\n                        \n                        \n                            COMPONENTS   (src/.../shared.module.ts)\n                        \n                        \n                            CONSTRUCTORS_URLS   (src/.../urls.ts)\n                        \n                        \n                            context   (src/.../test.ts)\n                        \n                        \n                            DECLARATIONS   (src/.../shared.module.ts)\n                        \n                        \n                            DECLARATIONS   (src/.../pages.module.ts)\n                        \n                        \n                            DIRECTIVES   (src/.../pages.module.ts)\n                        \n                        \n                            DRIVERS_URLS   (src/.../urls.ts)\n                        \n                        \n                            environment   (src/.../environment.ts)\n                        \n                        \n                            environment   (src/.../environment.prod.ts)\n                        \n                        \n                            GOOGLEMAPS   (src/.../api-keys.ts)\n                        \n                        \n                            IMG_PATH_COMPLETE   (src/.../urls.ts)\n                        \n                        \n                            IMG_URLS_PRINCIPAL   (src/.../urls.ts)\n                        \n                        \n                            PAGE_ROUTES   (src/.../pages.routes.ts)\n                        \n                        \n                            PIPES   (src/.../pages.module.ts)\n                        \n                        \n                            PIPES   (src/.../shared.module.ts)\n                        \n                        \n                            RACES_URLS   (src/.../urls.ts)\n                        \n                        \n                            require   (src/.../test.ts)\n                        \n                        \n                            SEASONS_URLS   (src/.../urls.ts)\n                        \n                        \n                            STATUS_URLS   (src/.../urls.ts)\n                        \n                        \n                            URL_LOCALHOST   (src/.../urls.ts)\n                        \n                    \n                \n            \n        \n    \n\n\n    src/app/app.routes.ts\n    \n            \n            \n                \n                    \n                        \n                        \n                            \n                            APP_ROUTES\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        APP_ROUTES:     \n\n                    \n                \n                    \n                        \n                            Default value : RouterModule.forRoot(appRoutes, { useHash: true })\n                        \n                    \n\n\n            \n        \n\n    src/app/constants/urls.ts\n    \n            \n            \n                \n                    \n                        \n                        \n                            \n                            CIRCUITS_URLS\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        CIRCUITS_URLS:     object\n\n                    \n                \n                    \n                        \n                            Type :     object\n\n                        \n                    \n                    \n                        \n                            Default value : {\n    ALL_HISTORY: 'circuits.json?limit=100',\n    SELECT: '/circuits.json'\n}\n                        \n                    \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            CONSTRUCTORS_URLS\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        CONSTRUCTORS_URLS:     object\n\n                    \n                \n                    \n                        \n                            Type :     object\n\n                        \n                    \n                    \n                        \n                            Default value : {\n    ALL_HISTORY: 'constructors.json?limit=1000',\n    CURRENT_YEAR: 'current/constructors.json',\n    SELECT_YEAR: '/constructors.json'\n}\n                        \n                    \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            DRIVERS_URLS\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        DRIVERS_URLS:     object\n\n                    \n                \n                    \n                        \n                            Type :     object\n\n                        \n                    \n                    \n                        \n                            Default value : {\n    ALL_DRIVERS_SELECT: '/drivers.json',\n    SELECT_DRIVER_BEFORE_ID: 'drivers/',\n    ONE_TIME_WORLD_CHAMPION_F1: 'driverStandings/1/drivers.json?limit=100',\n    LAST_GRAND_PRIX_RESULTS: 'current/last/results.json',\n    SELECT_DRIVER_ALL_RESULTS: '/results.json?limit=1000'\n}\n                        \n                    \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            IMG_PATH_COMPLETE\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        IMG_PATH_COMPLETE:     object\n\n                    \n                \n                    \n                        \n                            Type :     object\n\n                        \n                    \n                    \n                        \n                            Default value : {\n    CIRCUITS: 'circuits/',\n    DRIVERS: 'drivers/',\n    FLAGS: 'flags/'\n}\n                        \n                    \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            IMG_URLS_PRINCIPAL\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        IMG_URLS_PRINCIPAL:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                    \n                        \n                            Default value : 'https://mugan86.com/amugika/img/f1/'\n                        \n                    \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            RACES_URLS\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        RACES_URLS:     object\n\n                    \n                \n                    \n                        \n                            Type :     object\n\n                        \n                    \n                    \n                        \n                            Default value : {\n    ALL_RACES_SELECT: '/races.json'\n}\n                        \n                    \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            SEASONS_URLS\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        SEASONS_URLS:     object\n\n                    \n                \n                    \n                        \n                            Type :     object\n\n                        \n                    \n                    \n                        \n                            Default value : {\n    ALL_SEASONS_URL: 'seasons.json?limit=100'\n}\n                        \n                    \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            STATUS_URLS\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        STATUS_URLS:     object\n\n                    \n                \n                    \n                        \n                            Type :     object\n\n                        \n                    \n                    \n                        \n                            Default value : {\n    ALL_HISTORY: 'status.json?limit=1000',\n    SELECT_YEAR: '/status.json'\n}\n                        \n                    \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            URL_LOCALHOST\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        URL_LOCALHOST:     \n\n                    \n                \n                    \n                        \n                            Default value : environment.url\n                        \n                    \n\n\n            \n        \n\n    src/app/pages/pages.module.ts\n    \n            \n            \n                \n                    \n                        \n                        \n                            \n                            COMPONENTS\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        COMPONENTS:     []\n\n                    \n                \n                    \n                        \n                            Type :     []\n\n                        \n                    \n                    \n                        \n                            Default value : [\n  GoogleMapsComponent,\n  SeasonsComponent,\n  CircuitsComponent,\n  DashboardComponent,\n  DriversComponent,\n  LineChartComponent,\n  BarChartComponent,\n  PolarAreaChartComponent,\n  PieChartComponent,\n  RadarChartComponent,\n  DoughnutChartComponent,\n  ChartComponent,\n  RacesComponent,\n  SettingsComponent,\n  SupportComponent\n]\n                        \n                    \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            DECLARATIONS\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        DECLARATIONS:     []\n\n                    \n                \n                    \n                        \n                            Type :     []\n\n                        \n                    \n                    \n                        \n                            Default value : [...[PagesComponent], ...PIPES, ...DIRECTIVES, ...COMPONENTS]\n                        \n                    \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            DIRECTIVES\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        DIRECTIVES:     []\n\n                    \n                \n                    \n                        \n                            Type :     []\n\n                        \n                    \n                    \n                        \n                            Default value : [ DefaultImageDirective ]\n                        \n                    \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            PIPES\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        PIPES:     []\n\n                    \n                \n                    \n                        \n                            Type :     []\n\n                        \n                    \n                    \n                        \n                            Default value : [\n  RoundPipe,\n  WikipediaUrlMobilePipe,\n  GoogleStaticMapUrlPipe,\n  GoogleMapsUrlPipe,\n  LocationTextPipe\n]\n                        \n                    \n\n\n            \n        \n\n    src/app/login/login.module.ts\n    \n            \n            \n                \n                    \n                        \n                        \n                            \n                            COMPONENTS\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        COMPONENTS:     []\n\n                    \n                \n                    \n                        \n                            Type :     []\n\n                        \n                    \n                    \n                        \n                            Default value : [\n    LoginComponent,\n    RegisterComponent,\n    ForgotComponent\n]\n                        \n                    \n\n\n            \n        \n\n    src/app/shared/shared.module.ts\n    \n            \n            \n                \n                    \n                        \n                        \n                            \n                            COMPONENTS\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        COMPONENTS:     []\n\n                    \n                \n                    \n                        \n                            Type :     []\n\n                        \n                    \n                    \n                        \n                            Default value : [HeaderComponent, SidebarComponent, BreadcrumbComponent, NotpagefoundComponent, FooterComponent, ScrollTopComponent]\n                        \n                    \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            DECLARATIONS\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        DECLARATIONS:     []\n\n                    \n                \n                    \n                        \n                            Type :     []\n\n                        \n                    \n                    \n                        \n                            Default value : [...PIPES, ...COMPONENTS]\n                        \n                    \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            PIPES\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        PIPES:     []\n\n                    \n                \n                    \n                        \n                            Type :     []\n\n                        \n                    \n                    \n                        \n                            Default value : [CapitalizePipe]\n                        \n                    \n\n\n            \n        \n\n    src/test.ts\n    \n            \n            \n                \n                    \n                        \n                        \n                            \n                            context\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        context:     \n\n                    \n                \n                    \n                        \n                            Default value : require.context('./', true, /\\.spec\\.ts$/)\n                        \n                    \n\n\n            \n        \n        \n            \n                \n                    \n                        \n                        \n                            \n                            require\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        require:     any\n\n                    \n                \n                    \n                        \n                            Type :     any\n\n                        \n                    \n\n\n            \n        \n\n    src/environments/environment.ts\n    \n            \n            \n                \n                    \n                        \n                        \n                            \n                            environment\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        environment:     object\n\n                    \n                \n                    \n                        \n                            Type :     object\n\n                        \n                    \n                    \n                        \n                            Default value : {\n  production: false,\n  url: 'https://ergast.com/api/f1/'\n}\n                        \n                    \n\n\n            \n        \n\n    src/environments/environment.prod.ts\n    \n            \n            \n                \n                    \n                        \n                        \n                            \n                            environment\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        environment:     object\n\n                    \n                \n                    \n                        \n                            Type :     object\n\n                        \n                    \n                    \n                        \n                            Default value : {\n  production: true,\n  url: 'https://ergast.com/api/f1/'\n}\n                        \n                    \n\n\n            \n        \n\n    src/environments/api-keys.ts\n    \n            \n            \n                \n                    \n                        \n                        \n                            \n                            GOOGLEMAPS\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        GOOGLEMAPS:     string\n\n                    \n                \n                    \n                        \n                            Type :     string\n\n                        \n                    \n                    \n                        \n                            Default value : 'ADD_YOUR_BROWSER_API_KEY_WITH_FOLLOW_INSTRUCTIONS'\n                        \n                    \n\n                \n                    \n                        You need activate APIS:\nGoogle Static Map API.\nGoogle Maps JavaScript API.\nTo enable, go to -> Google API Console.\nSelect Project.\nAPIs and services -> Library (Biblioteca)\nSelect Google Maps APIs:\nhttps://console.developers.google.com/apis/library?filter=category:maps&project=[your_project]&folder&organizationId\nSelect and enable need activate APIs\n\n                    \n                \n\n            \n        \n\n    src/app/pages/pages.routes.ts\n    \n            \n            \n                \n                    \n                        \n                        \n                            \n                            PAGE_ROUTES\n                            \n                            \n                        \n                    \n                \n                \n                    \n                        PAGE_ROUTES:     \n\n                    \n                \n                    \n                        \n                            Default value : RouterModule.forChild(pagesRoutes)\n                        \n                    \n\n\n            \n        \n\n\n\n\n                   \n    \n         result-matching \"\"\n        \n    \n    \n        No results matching \"\"\n    \n\n"}}
+}
diff --git a/src/docs/js/sourceCode.js b/src/docs/js/sourceCode.js
new file mode 100644
index 0000000..541dbd1
--- /dev/null
+++ b/src/docs/js/sourceCode.js
@@ -0,0 +1,58 @@
+document.addEventListener('DOMContentLoaded', function() {
+    var $tabSource = document.querySelector('#source-tab'),
+        $tabInfo = document.querySelector('#info-tab'),
+        $tabReadme = document.querySelector('#readme-tab'),
+        $tabTemplate = document.querySelector('#templateData-tab'),
+        $tabTree = document.querySelector('#tree-tab'),
+        $tabExample = document.querySelector('#example-tab'),
+        $prismPre = document.querySelector('pre.compodoc-sourcecode');
+    if ($tabSource && $prismPre) {
+        $prismCode = $prismPre.querySelector('code'),
+        $content = document.querySelector('.content'),
+        prismLinks = document.querySelectorAll('.link-to-prism')
+
+        for (var i = 0; i < prismLinks.length; i++) {
+            prismLinks[i].addEventListener('click', linkToPrism, false);
+        }
+
+        function linkToPrism(event) {
+            var targetLine = event.target.getAttribute('data-line');
+            event.preventDefault();
+
+            $prismPre.setAttribute('data-line', targetLine);
+            Prism.highlightElement($prismCode, function() {});
+
+            $tabSource.click();
+
+            setTimeout(function() {
+                var $prismHighlightLine = document.querySelector('.line-highlight'),
+                    top = parseInt(getComputedStyle($prismHighlightLine)['top']);
+                $content.scrollTop = top;
+            }, 500);
+        };
+
+        window.onhashchange = function(event) {
+            switch (window.location.hash) {
+                case '':
+                case '#info':
+                    $tabInfo.click();
+                    break;
+                case '#readme':
+                    $tabReadme.click();
+                    break;
+                case '#source':
+                    $tabSource.click();
+                    break;
+                case '#template':
+                    $tabTemplate.click();
+                    break;
+                case '#dom-tree':
+                    $tabTree.click();
+                    break;
+                case '#example':
+                    $tabExample.click();
+                    break;
+            }
+        }
+    }
+});
diff --git a/src/docs/js/svg-pan-zoom.controls.js b/src/docs/js/svg-pan-zoom.controls.js
new file mode 100644
index 0000000..ea6d138
--- /dev/null
+++ b/src/docs/js/svg-pan-zoom.controls.js
@@ -0,0 +1,53 @@
+document.addEventListener('DOMContentLoaded', function() {
+    if (document.getElementById('module-graph-svg')) {
+        panZoom = svgPanZoom(document.getElementById('module-graph-svg').querySelector('svg'), {
+            zoomEnabled: true,
+            minZoom: 1,
+            maxZoom: 5
+        });
+    
+        document.getElementById('zoom-in').addEventListener('click', function(ev) {
+            ev.preventDefault();
+            panZoom.zoomIn();
+        });
+    
+        document.getElementById('zoom-out').addEventListener('click', function(ev) {
+            ev.preventDefault();
+            panZoom.zoomOut();
+        });
+    
+        document.getElementById('reset').addEventListener('click', function(ev) {
+            ev.preventDefault();
+            panZoom.resetZoom();
+            panZoom.resetPan();
+        });
+    
+        var overviewFullscreen = false,
+            originalOverviewHeight;
+    
+        document.getElementById('fullscreen').addEventListener('click', function(ev) {
+            if (overviewFullscreen) {
+                document.getElementById('module-graph-svg').style.height = originalOverviewHeight;
+                overviewFullscreen = false;
+                if (ev.target) {
+                    ev.target.classList.remove('ion-md-close');
+                    ev.target.classList.add('ion-ios-resize');
+                }
+            } else {
+                originalOverviewHeight = document.getElementById('module-graph-svg').style.height;
+                document.getElementById('module-graph-svg').style.height = '85vh';
+                overviewFullscreen = true;
+                if (ev.target) {
+                    ev.target.classList.remove('ion-ios-resize');
+                    ev.target.classList.add('ion-md-close');
+                }
+            }
+            document.getElementById('module-graph-svg').querySelector('svg').style.height = document.getElementById('module-graph-svg').clientHeight;
+            setTimeout(function() {
+                panZoom.resize();
+                panZoom.fit();
+                panZoom.center();
+            }, 0)
+        });
+    }
+});
diff --git a/src/docs/js/tabs.js b/src/docs/js/tabs.js
new file mode 100644
index 0000000..dbe4c28
--- /dev/null
+++ b/src/docs/js/tabs.js
@@ -0,0 +1,21 @@
+document.addEventListener('DOMContentLoaded', function() {
+    var tabs = document.getElementsByClassName('nav-tabs'),
+        updateAddress = function(e) {
+            if(history.pushState && e.target.dataset.link) {
+                history.pushState(null, null, '#' + e.target.dataset.link);
+            }
+        };
+    if (tabs.length > 0) {
+        tabs = tabs[0].querySelectorAll('li');
+        for (var i = 0; i < tabs.length; i++) {
+            tabs[i].addEventListener('click', updateAddress);
+            var linkTag = tabs[i].querySelector('a');
+            if (location.hash !== '') {
+                var currentHash = location.hash.substr(1);
+                if (currentHash === linkTag.dataset.link) {
+                    linkTag.click();
+                }
+            }
+        }
+    }
+});
diff --git a/src/docs/js/tree.js b/src/docs/js/tree.js
new file mode 100644
index 0000000..f79e1d7
--- /dev/null
+++ b/src/docs/js/tree.js
@@ -0,0 +1,147 @@
+document.addEventListener('DOMContentLoaded', function() {
+    var tabs = document.getElementsByClassName('nav-tabs')[0],
+        tabsCollection = tabs.getElementsByTagName('A'),
+        treeTab;
+    var len = tabsCollection.length;
+    for(var i = 0; i < len; i++) {
+        if (tabsCollection[i].getAttribute('id') === 'tree-tab') {
+            treeTab = tabsCollection[i];
+        }
+    }
+
+    // short-circuit if no tree tab
+    if (!treeTab) return;
+
+    var handler = new Tautologistics.NodeHtmlParser.HtmlBuilder(function(error, dom) {
+        if (error) {
+            console.log('handler ko');
+        }
+    }),
+        parser = new Tautologistics.NodeHtmlParser.Parser(handler),
+        currentLocation = window.location;
+    parser.parseComplete(COMPONENT_TEMPLATE);
+
+    var newNodes = [],
+        newEdges = [],
+        parsedHtml = handler.dom[0],
+        nodeCount = 0,
+        nodeLevel = 0;
+
+    newNodes.push({
+        _id: 0,
+        label: parsedHtml.name,
+        type: parsedHtml.type
+    })
+    //Add id for nodes
+    var traverseIds = function(o) {
+        for (i in o) {
+            if (!!o[i] && typeof(o[i]) == "object") {
+                if (!o[i].length && o[i].type === 'tag') {
+                    nodeCount += 1;
+                    o[i]._id = nodeCount;
+                }
+                traverseIds(o[i]);
+            }
+        }
+    }
+    parsedHtml._id = 0;
+    traverseIds(parsedHtml);
+
+
+    var DeepIterator = deepIterator.default,
+        it = DeepIterator(parsedHtml);
+    for (let {
+            value,
+            parent,
+            parentNode,
+            key,
+            type
+        } of it) {
+        if (type === 'NonIterableObject' && typeof key !== 'undefined' && value.type === 'tag') {
+            var newNode = {
+                id: value._id,
+                label: value.name,
+                type: value.type
+            };
+            for(var i = 0; i < COMPONENTS.length; i++) {
+                if (COMPONENTS[i].selector === value.name) {
+                    newNode.font = {
+                        multi: 'html'
+                    };
+                    newNode.label = '<b>' + newNode.label + '</b>';
+                    newNode.color = '#FB7E81';
+                    newNode.name = COMPONENTS[i].name;
+                }
+            }
+            for(var i = 0; i < DIRECTIVES.length; i++) {
+                if (value.attributes) {
+                    for(attr in value.attributes) {
+                        if (DIRECTIVES[i].selector.indexOf(attr) !== -1) {
+                            newNode.font = {
+                                multi: 'html'
+                            };
+                            newNode.label = '<b>' + newNode.label + '</b>';
+                            newNode.color = '#FF9800';
+                            newNode.name = DIRECTIVES[i].name;
+                        }
+                    }
+                }
+            }
+            newNodes.push(newNode);
+            newEdges.push({
+                from: parentNode._parent._id,
+                to: value._id,
+                arrows: 'to'
+            });
+        }
+    }
+
+    newNodes.shift();
+
+    var container = document.getElementById('tree-container'),
+        data = {
+            nodes: newNodes,
+            edges: newEdges
+        },
+        options = {
+            layout: {
+                hierarchical: {
+                    sortMethod: 'directed',
+                    enabled: true
+                }
+            },
+            nodes: {
+                shape: 'ellipse',
+                fixed: true
+            }
+        },
+
+        handleClickNode = function(params) {
+            var clickeNodeId;
+            if (params.nodes.length > 0) {
+                clickeNodeId = params.nodes[0];
+                for(var i = 0; i < newNodes.length; i++) {
+                    if (newNodes[i].id === clickeNodeId) {
+                        for(var j = 0; j < COMPONENTS.length; j++) {
+                            if (COMPONENTS[j].name === newNodes[i].name) {
+                                document.location.href = currentLocation.origin + currentLocation.pathname.replace(ACTUAL_COMPONENT.name, newNodes[i].name);
+                            }
+                        }
+                    }
+                }
+            }
+        },
+        
+        loadTree = function () {
+            setTimeout(function() {
+                container.style.height = document.getElementsByClassName('content')[0].offsetHeight - 140 + 'px';
+                var network = new vis.Network(container, data, options);
+                network.on('click', handleClickNode);
+            }, 200); // Fade is 0.150
+        };
+
+    loadTree();
+    treeTab.addEventListener('click', function() {
+        loadTree();
+    });
+});
diff --git a/src/docs/miscellaneous/enumerations.html b/src/docs/miscellaneous/enumerations.html
new file mode 100644
index 0000000..78c7623
--- /dev/null
+++ b/src/docs/miscellaneous/enumerations.html
@@ -0,0 +1,184 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content miscellaneous-enumerations">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Miscellaneous</li>
+  <li>Enumerations</li>
+</ol>
+
+<section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <ul class="index-list">
+                        <li>
+                            <a href="#TypeConfirm" title="src/app/enums/type-confirm.enum.ts"><b>TypeConfirm</b>&nbsp;&nbsp;&nbsp;(src/.../type-confirm.enum.ts)</a>
+                        </li>
+                    </ul>
+                </td>
+            </tr>
+        </tbody>
+    </table>
+</section>
+
+    <h3>src/app/enums/type-confirm.enum.ts</h3>
+    <section>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="TypeConfirm"></a>
+                        <span class="name"><b>TypeConfirm</b><a href="#TypeConfirm"><span class="icon ion-ios-link"></span></a></span>
+                    </td>
+                </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                &nbsp;WARNING
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <i>Value : </i><code>warning</code>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                &nbsp;ERROR
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <i>Value : </i><code>error</code>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                &nbsp;SUCCESS
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <i>Value : </i><code>success</code>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                &nbsp;INFO
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <i>Value : </i><code>info</code>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                &nbsp;QUESTION
+                            </td>
+                        </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                <i>Value : </i><code>question</code>
+                            </td>
+                        </tr>
+            </tbody>
+        </table>
+</section>
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'miscellaneous-enumerations';
+            var COMPODOC_CURRENT_PAGE_URL = 'enumerations.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/miscellaneous/variables.html b/src/docs/miscellaneous/variables.html
new file mode 100644
index 0000000..6349ebb
--- /dev/null
+++ b/src/docs/miscellaneous/variables.html
@@ -0,0 +1,1077 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content miscellaneous-variables">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Miscellaneous</li>
+  <li>Variables</li>
+</ol>
+
+<section>
+    <h3 id="index">Index</h3>
+    <table class="table table-sm table-bordered index-table">
+        <tbody>
+            <tr>
+                <td class="col-md-4">
+                    <ul class="index-list">
+                        <li>
+                            <a href="#APP_ROUTES" title="src/app/app.routes.ts"><b>APP_ROUTES</b>&nbsp;&nbsp;&nbsp;(src/.../app.routes.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#CIRCUITS_URLS" title="src/app/constants/urls.ts"><b>CIRCUITS_URLS</b>&nbsp;&nbsp;&nbsp;(src/.../urls.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#COMPONENTS" title="src/app/pages/pages.module.ts"><b>COMPONENTS</b>&nbsp;&nbsp;&nbsp;(src/.../pages.module.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#COMPONENTS" title="src/app/login/login.module.ts"><b>COMPONENTS</b>&nbsp;&nbsp;&nbsp;(src/.../login.module.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#COMPONENTS" title="src/app/shared/shared.module.ts"><b>COMPONENTS</b>&nbsp;&nbsp;&nbsp;(src/.../shared.module.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#CONSTRUCTORS_URLS" title="src/app/constants/urls.ts"><b>CONSTRUCTORS_URLS</b>&nbsp;&nbsp;&nbsp;(src/.../urls.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#context" title="src/test.ts"><b>context</b>&nbsp;&nbsp;&nbsp;(src/.../test.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#DECLARATIONS" title="src/app/shared/shared.module.ts"><b>DECLARATIONS</b>&nbsp;&nbsp;&nbsp;(src/.../shared.module.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#DECLARATIONS" title="src/app/pages/pages.module.ts"><b>DECLARATIONS</b>&nbsp;&nbsp;&nbsp;(src/.../pages.module.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#DIRECTIVES" title="src/app/pages/pages.module.ts"><b>DIRECTIVES</b>&nbsp;&nbsp;&nbsp;(src/.../pages.module.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#DRIVERS_URLS" title="src/app/constants/urls.ts"><b>DRIVERS_URLS</b>&nbsp;&nbsp;&nbsp;(src/.../urls.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#environment" title="src/environments/environment.ts"><b>environment</b>&nbsp;&nbsp;&nbsp;(src/.../environment.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#environment" title="src/environments/environment.prod.ts"><b>environment</b>&nbsp;&nbsp;&nbsp;(src/.../environment.prod.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#GOOGLEMAPS" title="src/environments/api-keys.ts"><b>GOOGLEMAPS</b>&nbsp;&nbsp;&nbsp;(src/.../api-keys.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#IMG_PATH_COMPLETE" title="src/app/constants/urls.ts"><b>IMG_PATH_COMPLETE</b>&nbsp;&nbsp;&nbsp;(src/.../urls.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#IMG_URLS_PRINCIPAL" title="src/app/constants/urls.ts"><b>IMG_URLS_PRINCIPAL</b>&nbsp;&nbsp;&nbsp;(src/.../urls.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#PAGE_ROUTES" title="src/app/pages/pages.routes.ts"><b>PAGE_ROUTES</b>&nbsp;&nbsp;&nbsp;(src/.../pages.routes.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#PIPES" title="src/app/pages/pages.module.ts"><b>PIPES</b>&nbsp;&nbsp;&nbsp;(src/.../pages.module.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#PIPES" title="src/app/shared/shared.module.ts"><b>PIPES</b>&nbsp;&nbsp;&nbsp;(src/.../shared.module.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#RACES_URLS" title="src/app/constants/urls.ts"><b>RACES_URLS</b>&nbsp;&nbsp;&nbsp;(src/.../urls.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#require" title="src/test.ts"><b>require</b>&nbsp;&nbsp;&nbsp;(src/.../test.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#SEASONS_URLS" title="src/app/constants/urls.ts"><b>SEASONS_URLS</b>&nbsp;&nbsp;&nbsp;(src/.../urls.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#STATUS_URLS" title="src/app/constants/urls.ts"><b>STATUS_URLS</b>&nbsp;&nbsp;&nbsp;(src/.../urls.ts)</a>
+                        </li>
+                        <li>
+                            <a href="#URL_LOCALHOST" title="src/app/constants/urls.ts"><b>URL_LOCALHOST</b>&nbsp;&nbsp;&nbsp;(src/.../urls.ts)</a>
+                        </li>
+                    </ul>
+                </td>
+            </tr>
+        </tbody>
+    </table>
+</section>
+
+    <h3>src/app/app.routes.ts</h3>
+    <section>
+    <h3></h3>        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="APP_ROUTES"></a>
+                        <span class="name">
+                            <b>
+                            APP_ROUTES
+                            </b>
+                            <a href="#APP_ROUTES"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>APP_ROUTES:     <code></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>RouterModule.forRoot(appRoutes, { useHash: true })</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+</section>
+    <h3>src/app/constants/urls.ts</h3>
+    <section>
+    <h3></h3>        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="CIRCUITS_URLS"></a>
+                        <span class="name">
+                            <b>
+                            CIRCUITS_URLS
+                            </b>
+                            <a href="#CIRCUITS_URLS"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>CIRCUITS_URLS:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>{
+    ALL_HISTORY: &#x27;circuits.json?limit&#x3D;100&#x27;,
+    SELECT: &#x27;/circuits.json&#x27;
+}</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="CONSTRUCTORS_URLS"></a>
+                        <span class="name">
+                            <b>
+                            CONSTRUCTORS_URLS
+                            </b>
+                            <a href="#CONSTRUCTORS_URLS"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>CONSTRUCTORS_URLS:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>{
+    ALL_HISTORY: &#x27;constructors.json?limit&#x3D;1000&#x27;,
+    CURRENT_YEAR: &#x27;current/constructors.json&#x27;,
+    SELECT_YEAR: &#x27;/constructors.json&#x27;
+}</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="DRIVERS_URLS"></a>
+                        <span class="name">
+                            <b>
+                            DRIVERS_URLS
+                            </b>
+                            <a href="#DRIVERS_URLS"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>DRIVERS_URLS:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>{
+    ALL_DRIVERS_SELECT: &#x27;/drivers.json&#x27;,
+    SELECT_DRIVER_BEFORE_ID: &#x27;drivers/&#x27;,
+    ONE_TIME_WORLD_CHAMPION_F1: &#x27;driverStandings/1/drivers.json?limit&#x3D;100&#x27;,
+    LAST_GRAND_PRIX_RESULTS: &#x27;current/last/results.json&#x27;,
+    SELECT_DRIVER_ALL_RESULTS: &#x27;/results.json?limit&#x3D;1000&#x27;
+}</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="IMG_PATH_COMPLETE"></a>
+                        <span class="name">
+                            <b>
+                            IMG_PATH_COMPLETE
+                            </b>
+                            <a href="#IMG_PATH_COMPLETE"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>IMG_PATH_COMPLETE:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>{
+    CIRCUITS: &#x27;circuits/&#x27;,
+    DRIVERS: &#x27;drivers/&#x27;,
+    FLAGS: &#x27;flags/&#x27;
+}</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="IMG_URLS_PRINCIPAL"></a>
+                        <span class="name">
+                            <b>
+                            IMG_URLS_PRINCIPAL
+                            </b>
+                            <a href="#IMG_URLS_PRINCIPAL"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>IMG_URLS_PRINCIPAL:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>&#x27;https://mugan86.com/amugika/img/f1/&#x27;</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="RACES_URLS"></a>
+                        <span class="name">
+                            <b>
+                            RACES_URLS
+                            </b>
+                            <a href="#RACES_URLS"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>RACES_URLS:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>{
+    ALL_RACES_SELECT: &#x27;/races.json&#x27;
+}</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="SEASONS_URLS"></a>
+                        <span class="name">
+                            <b>
+                            SEASONS_URLS
+                            </b>
+                            <a href="#SEASONS_URLS"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>SEASONS_URLS:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>{
+    ALL_SEASONS_URL: &#x27;seasons.json?limit&#x3D;100&#x27;
+}</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="STATUS_URLS"></a>
+                        <span class="name">
+                            <b>
+                            STATUS_URLS
+                            </b>
+                            <a href="#STATUS_URLS"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>STATUS_URLS:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>{
+    ALL_HISTORY: &#x27;status.json?limit&#x3D;1000&#x27;,
+    SELECT_YEAR: &#x27;/status.json&#x27;
+}</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="URL_LOCALHOST"></a>
+                        <span class="name">
+                            <b>
+                            URL_LOCALHOST
+                            </b>
+                            <a href="#URL_LOCALHOST"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>URL_LOCALHOST:     <code></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>environment.url</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+</section>
+    <h3>src/app/pages/pages.module.ts</h3>
+    <section>
+    <h3></h3>        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="COMPONENTS"></a>
+                        <span class="name">
+                            <b>
+                            COMPONENTS
+                            </b>
+                            <a href="#COMPONENTS"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>COMPONENTS:     <code>[]</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>[]</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[
+  GoogleMapsComponent,
+  SeasonsComponent,
+  CircuitsComponent,
+  DashboardComponent,
+  DriversComponent,
+  LineChartComponent,
+  BarChartComponent,
+  PolarAreaChartComponent,
+  PieChartComponent,
+  RadarChartComponent,
+  DoughnutChartComponent,
+  ChartComponent,
+  RacesComponent,
+  SettingsComponent,
+  SupportComponent
+]</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="DECLARATIONS"></a>
+                        <span class="name">
+                            <b>
+                            DECLARATIONS
+                            </b>
+                            <a href="#DECLARATIONS"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>DECLARATIONS:     <code>[]</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>[]</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[...[PagesComponent], ...PIPES, ...DIRECTIVES, ...COMPONENTS]</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="DIRECTIVES"></a>
+                        <span class="name">
+                            <b>
+                            DIRECTIVES
+                            </b>
+                            <a href="#DIRECTIVES"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>DIRECTIVES:     <code>[]</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>[]</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[ DefaultImageDirective ]</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="PIPES"></a>
+                        <span class="name">
+                            <b>
+                            PIPES
+                            </b>
+                            <a href="#PIPES"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>PIPES:     <code>[]</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>[]</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[
+  RoundPipe,
+  WikipediaUrlMobilePipe,
+  GoogleStaticMapUrlPipe,
+  GoogleMapsUrlPipe,
+  LocationTextPipe
+]</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+</section>
+    <h3>src/app/login/login.module.ts</h3>
+    <section>
+    <h3></h3>        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="COMPONENTS"></a>
+                        <span class="name">
+                            <b>
+                            COMPONENTS
+                            </b>
+                            <a href="#COMPONENTS"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>COMPONENTS:     <code>[]</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>[]</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[
+    LoginComponent,
+    RegisterComponent,
+    ForgotComponent
+]</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+</section>
+    <h3>src/app/shared/shared.module.ts</h3>
+    <section>
+    <h3></h3>        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="COMPONENTS"></a>
+                        <span class="name">
+                            <b>
+                            COMPONENTS
+                            </b>
+                            <a href="#COMPONENTS"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>COMPONENTS:     <code>[]</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>[]</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[HeaderComponent, SidebarComponent, BreadcrumbComponent, NotpagefoundComponent, FooterComponent, ScrollTopComponent]</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="DECLARATIONS"></a>
+                        <span class="name">
+                            <b>
+                            DECLARATIONS
+                            </b>
+                            <a href="#DECLARATIONS"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>DECLARATIONS:     <code>[]</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>[]</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[...PIPES, ...COMPONENTS]</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="PIPES"></a>
+                        <span class="name">
+                            <b>
+                            PIPES
+                            </b>
+                            <a href="#PIPES"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>PIPES:     <code>[]</code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code>[]</code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>[CapitalizePipe]</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+</section>
+    <h3>src/test.ts</h3>
+    <section>
+    <h3></h3>        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="context"></a>
+                        <span class="name">
+                            <b>
+                            context
+                            </b>
+                            <a href="#context"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>context:     <code></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>require.context(&#x27;./&#x27;, true, /\.spec\.ts$/)</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="require"></a>
+                        <span class="name">
+                            <b>
+                            require
+                            </b>
+                            <a href="#require"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>require:     <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+</section>
+    <h3>src/environments/environment.ts</h3>
+    <section>
+    <h3></h3>        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="environment"></a>
+                        <span class="name">
+                            <b>
+                            environment
+                            </b>
+                            <a href="#environment"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>environment:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>{
+  production: false,
+  url: &#x27;https://ergast.com/api/f1/&#x27;
+}</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+</section>
+    <h3>src/environments/environment.prod.ts</h3>
+    <section>
+    <h3></h3>        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="environment"></a>
+                        <span class="name">
+                            <b>
+                            environment
+                            </b>
+                            <a href="#environment"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>environment:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/object" target="_blank" >object</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>{
+  production: true,
+  url: &#x27;https://ergast.com/api/f1/&#x27;
+}</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+</section>
+    <h3>src/environments/api-keys.ts</h3>
+    <section>
+    <h3></h3>        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="GOOGLEMAPS"></a>
+                        <span class="name">
+                            <b>
+                            GOOGLEMAPS
+                            </b>
+                            <a href="#GOOGLEMAPS"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>GOOGLEMAPS:     <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Type : </i>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>&#x27;ADD_YOUR_BROWSER_API_KEY_WITH_FOLLOW_INSTRUCTIONS&#x27;</code>
+                        </td>
+                    </tr>
+
+                <tr>
+                    <td class="col-md-4">
+                        <div class="io-description"><p>You need activate APIS:
+Google Static Map API.
+Google Maps JavaScript API.
+To enable, go to -&gt; Google API Console.
+Select Project.
+APIs and services -&gt; Library (Biblioteca)
+Select Google Maps APIs:
+<a href="https://console.developers.google.com/apis/library?filter=category:maps&amp;project=%5Byour_project%5D&amp;folder&amp;organizationId">https://console.developers.google.com/apis/library?filter=category:maps&amp;project=[your_project]&amp;folder&amp;organizationId</a>
+Select and enable need activate APIs</p>
+</div>
+                    </td>
+                </tr>
+
+            </tbody>
+        </table>
+</section>
+    <h3>src/app/pages/pages.routes.ts</h3>
+    <section>
+    <h3></h3>        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="PAGE_ROUTES"></a>
+                        <span class="name">
+                            <b>
+                            PAGE_ROUTES
+                            </b>
+                            <a href="#PAGE_ROUTES"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>PAGE_ROUTES:     <code></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>RouterModule.forChild(pagesRoutes)</code>
+                        </td>
+                    </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'miscellaneous-variables';
+            var COMPODOC_CURRENT_PAGE_URL = 'variables.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/modules.html b/src/docs/modules.html
new file mode 100644
index 0000000..887a659
--- /dev/null
+++ b/src/docs/modules.html
@@ -0,0 +1,172 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="./images/favicon.ico">
+	      <link rel="stylesheet" href="./styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="./" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content modules">
+                   <div class="content-data">
+
+
+
+<ol class="breadcrumb">
+    <li>Modules</li>
+</ol>
+<div class="container-fluid modules">
+    <div class="row">
+            <div class="col-sm-4">
+                <div class="card card-module">
+                    <div class="card-header">
+                        <h4 class="card-title">AppModule</h4>
+                    </div>
+                    <div class="card-block">
+                                <p>
+                                    <object id="demo-svg" type="image/svg+xml" lazy="./modules/AppModule/dependencies.svg" style="width: 100%; height: 175px;">
+                                        Your browser does not support SVG
+                                    </object>
+                                </p>
+                        <footer class="text-center">
+                            <a href="./modules/AppModule.html" class="btn btn-default">Browse</a>
+                        </footer>
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-4">
+                <div class="card card-module">
+                    <div class="card-header">
+                        <h4 class="card-title">LoginModule</h4>
+                    </div>
+                    <div class="card-block">
+                                <p>
+                                    <object id="demo-svg" type="image/svg+xml" lazy="./modules/LoginModule/dependencies.svg" style="width: 100%; height: 175px;">
+                                        Your browser does not support SVG
+                                    </object>
+                                </p>
+                        <footer class="text-center">
+                            <a href="./modules/LoginModule.html" class="btn btn-default">Browse</a>
+                        </footer>
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-4">
+                <div class="card card-module">
+                    <div class="card-header">
+                        <h4 class="card-title">PagesModule</h4>
+                    </div>
+                    <div class="card-block">
+                                <p>
+                                    <object id="demo-svg" type="image/svg+xml" lazy="./modules/PagesModule/dependencies.svg" style="width: 100%; height: 175px;">
+                                        Your browser does not support SVG
+                                    </object>
+                                </p>
+                        <footer class="text-center">
+                            <a href="./modules/PagesModule.html" class="btn btn-default">Browse</a>
+                        </footer>
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-4">
+                <div class="card card-module">
+                    <div class="card-header">
+                        <h4 class="card-title">SharedModule</h4>
+                    </div>
+                    <div class="card-block">
+                                <p class="no-graph">
+                                    No graph available.
+                                </p>
+                        <footer class="text-center">
+                            <a href="./modules/SharedModule.html" class="btn btn-default">Browse</a>
+                        </footer>
+                    </div>
+                </div>
+            </div>
+    </div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 0;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'modules';
+            var COMPODOC_CURRENT_PAGE_URL = 'modules.html';
+       </script>
+
+       <script src="./js/libs/custom-elements.min.js"></script>
+       <script src="./js/libs/lit-html.js"></script>
+       <script src="./js/menu-wc.js"></script>
+
+       <script src="./js/libs/bootstrap-native.js"></script>
+
+       <script src="./js/libs/es6-shim.min.js"></script>
+       <script src="./js/libs/EventDispatcher.js"></script>
+       <script src="./js/libs/promise.min.js"></script>
+       <script src="./js/libs/zepto.min.js"></script>
+
+       <script src="./js/compodoc.js"></script>
+
+       <script src="./js/tabs.js"></script>
+       <script src="./js/menu.js"></script>
+       <script src="./js/libs/clipboard.min.js"></script>
+       <script src="./js/libs/prism.js"></script>
+       <script src="./js/sourceCode.js"></script>
+          <script src="./js/search/search.js"></script>
+          <script src="./js/search/lunr.min.js"></script>
+          <script src="./js/search/search-lunr.js"></script>
+          <script src="./js/search/search_index.js"></script>
+       <script src="./js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/modules/AppModule.html b/src/docs/modules/AppModule.html
new file mode 100644
index 0000000..3af2412
--- /dev/null
+++ b/src/docs/modules/AppModule.html
@@ -0,0 +1,295 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content module">
+                   <div class="content-data">
+
+
+
+<ol class="breadcrumb">
+  <li>Modules</li>
+  <li>AppModule</li>
+</ol>
+
+      <div class="text-center module-graph-container">
+          <div id="module-graph-svg">
+              <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: dependencies Pages: 1 -->
+<svg width="504pt" height="284pt"
+ viewBox="0.00 0.00 504.00 284.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 280)">
+<title>dependencies</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-280 500,-280 500,4 -4,4"/>
+<text text-anchor="start" x="227.0091" y="-42.4" font-family="sans-serif" font-weight="bold" font-size="14.00" fill="#000000">Legend</text>
+<polygon fill="#ffffb3" stroke="transparent" points="14,-10 14,-30 34,-30 34,-10 14,-10"/>
+<text text-anchor="start" x="37.629" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Declarations</text>
+<polygon fill="#8dd3c7" stroke="transparent" points="127,-10 127,-30 147,-30 147,-10 127,-10"/>
+<text text-anchor="start" x="150.7251" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Module</text>
+<polygon fill="#80b1d3" stroke="transparent" points="213,-10 213,-30 233,-30 233,-10 213,-10"/>
+<text text-anchor="start" x="236.7812" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Bootstrap</text>
+<polygon fill="#fdb462" stroke="transparent" points="310,-10 310,-30 330,-30 330,-10 310,-10"/>
+<text text-anchor="start" x="333.6732" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Providers</text>
+<polygon fill="#fb8072" stroke="transparent" points="406,-10 406,-30 426,-30 426,-10 406,-10"/>
+<text text-anchor="start" x="429.7258" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Exports</text>
+<g id="clust1" class="cluster">
+<title>cluster_AppModule</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="65.5,-70 65.5,-268 430.5,-268 430.5,-70 65.5,-70"/>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_AppModule_declarations</title>
+<polygon fill="none" stroke="#000000" points="300.5,-78 300.5,-130 422.5,-130 422.5,-78 300.5,-78"/>
+</g>
+<g id="clust4" class="cluster">
+<title>cluster_AppModule_imports</title>
+<polygon fill="none" stroke="#000000" points="73.5,-78 73.5,-130 292.5,-130 292.5,-78 73.5,-78"/>
+</g>
+<g id="clust6" class="cluster">
+<title>cluster_AppModule_bootstrap</title>
+<polygon fill="none" stroke="#000000" points="176.5,-208 176.5,-260 300.5,-260 300.5,-208 176.5,-208"/>
+</g>
+<!-- AppComponent -->
+<g id="node1" class="node">
+<title>AppComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="414.4399,-122 308.5601,-122 308.5601,-86 414.4399,-86 414.4399,-122"/>
+<text text-anchor="middle" x="361.5" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">AppComponent</text>
+</g>
+<!-- AppModule -->
+<g id="node2" class="node">
+<title>AppModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="280.1571,-187 277.1571,-191 256.1571,-191 253.1571,-187 196.8429,-187 196.8429,-151 280.1571,-151 280.1571,-187"/>
+<text text-anchor="middle" x="238.5" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000">AppModule</text>
+</g>
+<!-- AppComponent&#45;&gt;AppModule -->
+<g id="edge1" class="edge">
+<title>AppComponent&#45;&gt;AppModule</title>
+<path fill="none" stroke="#000000" d="M361.5,-122.1061C361.5,-141.3391 361.5,-169 361.5,-169 361.5,-169 290.4856,-169 290.4856,-169"/>
+<polygon fill="#000000" stroke="#000000" points="290.4856,-165.5001 280.4856,-169 290.4856,-172.5001 290.4856,-165.5001"/>
+</g>
+<!-- AppComponent  -->
+<g id="node5" class="node">
+<title>AppComponent </title>
+<polygon fill="#80b1d3" stroke="#000000" points="292.939,-252 184.061,-252 184.061,-216 292.939,-216 292.939,-252"/>
+<text text-anchor="middle" x="238.5" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">AppComponent </text>
+</g>
+<!-- AppModule&#45;&gt;AppComponent  -->
+<g id="edge4" class="edge">
+<title>AppModule&#45;&gt;AppComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M238.5,-187.1061C238.5,-187.1061 238.5,-205.991 238.5,-205.991"/>
+<polygon fill="#000000" stroke="#000000" points="235.0001,-205.9909 238.5,-215.991 242.0001,-205.991 235.0001,-205.9909"/>
+</g>
+<!-- LoginModule -->
+<g id="node3" class="node">
+<title>LoginModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="284.993,-122 281.993,-126 260.993,-126 257.993,-122 192.007,-122 192.007,-86 284.993,-86 284.993,-122"/>
+<text text-anchor="middle" x="238.5" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginModule</text>
+</g>
+<!-- LoginModule&#45;&gt;AppModule -->
+<g id="edge2" class="edge">
+<title>LoginModule&#45;&gt;AppModule</title>
+<path fill="none" stroke="#000000" d="M238.5,-122.1061C238.5,-122.1061 238.5,-140.991 238.5,-140.991"/>
+<polygon fill="#000000" stroke="#000000" points="235.0001,-140.9909 238.5,-150.991 242.0001,-140.991 235.0001,-140.9909"/>
+</g>
+<!-- PagesModule -->
+<g id="node4" class="node">
+<title>PagesModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="173.7064,-122 170.7064,-126 149.7064,-126 146.7064,-122 81.2936,-122 81.2936,-86 173.7064,-86 173.7064,-122"/>
+<text text-anchor="middle" x="127.5" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">PagesModule</text>
+</g>
+<!-- PagesModule&#45;&gt;AppModule -->
+<g id="edge3" class="edge">
+<title>PagesModule&#45;&gt;AppModule</title>
+<path fill="none" stroke="#000000" d="M127.5,-122.1061C127.5,-141.3391 127.5,-169 127.5,-169 127.5,-169 186.5357,-169 186.5357,-169"/>
+<polygon fill="#000000" stroke="#000000" points="186.5357,-172.5001 196.5357,-169 186.5356,-165.5001 186.5357,-172.5001"/>
+</g>
+</g>
+</svg>
+
+          </div>
+          <i id="fullscreen" class="icon ion-ios-resize module-graph-fullscreen-btn" aria-hidden="true"></i>
+          <div class="btn-group">
+              <button id="zoom-in" class="btn btn-default btn-sm">Zoom in</button>
+              <button id="reset" class="btn btn-default btn-sm">Reset</button>
+              <button id="zoom-out" class="btn btn-default btn-sm">Zoom out</button>
+          </div>
+      </div>
+      <script src="../js/libs/svg-pan-zoom.min.js"></script>
+      <script src="../js/svg-pan-zoom.controls.js"></script>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/app.module.ts</code>
+        </p>
+
+
+        
+
+        <div class="container-fluid module">
+            <div class="row">
+                <div class="col-sm-3">
+                    <h3>Declarations<a href="https://angular.io/api/core/NgModule#declarations" target="_blank" title="Official documentation about module declarations"><span class="icon ion-ios-information-circle-outline"></span></a></h3>
+                    <ul class="list-group">
+                            <li class="list-group-item">
+                                <a href="../components/AppComponent.html">AppComponent</a>
+                            </li>
+                    </ul>
+                </div>
+                <div class="col-sm-3">
+                    <h3>Imports<a href="https://angular.io/api/core/NgModule#imports" target="_blank" title="Official documentation about module imports"><span class="icon ion-ios-information-circle-outline"></a></h3>
+                    <ul class="list-group">
+                            <li class="list-group-item">
+                                    <a href="../modules/LoginModule.html" >LoginModule</a>
+                            </li>
+                            <li class="list-group-item">
+                                    <a href="../modules/PagesModule.html" >PagesModule</a>
+                            </li>
+                    </ul>
+                </div>
+                <div class="col-sm-3">
+                    <h3>Bootstrap<a href="https://angular.io/api/core/NgModule#bootstrap" target="_blank" title="Official documentation about module bootstrap"><span class="icon ion-ios-information-circle-outline"></a></h3>
+                    <ul class="list-group">
+                            <li class="list-group-item">
+                                <a href="../components/AppComponent.html" >AppComponent</a>
+                            </li>
+                    </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { BrowserModule } from &#x27;@angular/platform-browser&#x27;;
+import { NgModule } from &#x27;@angular/core&#x27;;
+import { I18nConfigModule } from &#x27;i18n-config&#x27;;
+import { PagesModule } from &#x27;./pages/pages.module&#x27;;
+import { LoginModule } from &#x27;./login/login.module&#x27;;
+
+import { AppComponent } from &#x27;./app.component&#x27;;
+import { APP_ROUTES } from &#x27;./app.routes&#x27;;
+
+@NgModule({
+  declarations: [
+    AppComponent
+  ],
+  imports: [
+    APP_ROUTES,
+    BrowserModule,
+    I18nConfigModule.forRoot(),
+    PagesModule,
+    LoginModule
+  ],
+  bootstrap: [AppComponent]
+})
+export class AppModule {}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'module';
+            var COMPODOC_CURRENT_PAGE_URL = 'AppModule.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/modules/AppModule/dependencies.svg b/src/docs/modules/AppModule/dependencies.svg
new file mode 100644
index 0000000..a1ab07a
--- /dev/null
+++ b/src/docs/modules/AppModule/dependencies.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: dependencies Pages: 1 -->
+<svg width="504pt" height="284pt"
+ viewBox="0.00 0.00 504.00 284.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 280)">
+<title>dependencies</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-280 500,-280 500,4 -4,4"/>
+<text text-anchor="start" x="227.0091" y="-42.4" font-family="sans-serif" font-weight="bold" font-size="14.00" fill="#000000">Legend</text>
+<polygon fill="#ffffb3" stroke="transparent" points="14,-10 14,-30 34,-30 34,-10 14,-10"/>
+<text text-anchor="start" x="37.629" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Declarations</text>
+<polygon fill="#8dd3c7" stroke="transparent" points="127,-10 127,-30 147,-30 147,-10 127,-10"/>
+<text text-anchor="start" x="150.7251" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Module</text>
+<polygon fill="#80b1d3" stroke="transparent" points="213,-10 213,-30 233,-30 233,-10 213,-10"/>
+<text text-anchor="start" x="236.7812" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Bootstrap</text>
+<polygon fill="#fdb462" stroke="transparent" points="310,-10 310,-30 330,-30 330,-10 310,-10"/>
+<text text-anchor="start" x="333.6732" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Providers</text>
+<polygon fill="#fb8072" stroke="transparent" points="406,-10 406,-30 426,-30 426,-10 406,-10"/>
+<text text-anchor="start" x="429.7258" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Exports</text>
+<g id="clust1" class="cluster">
+<title>cluster_AppModule</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="65.5,-70 65.5,-268 430.5,-268 430.5,-70 65.5,-70"/>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_AppModule_declarations</title>
+<polygon fill="none" stroke="#000000" points="300.5,-78 300.5,-130 422.5,-130 422.5,-78 300.5,-78"/>
+</g>
+<g id="clust4" class="cluster">
+<title>cluster_AppModule_imports</title>
+<polygon fill="none" stroke="#000000" points="73.5,-78 73.5,-130 292.5,-130 292.5,-78 73.5,-78"/>
+</g>
+<g id="clust6" class="cluster">
+<title>cluster_AppModule_bootstrap</title>
+<polygon fill="none" stroke="#000000" points="176.5,-208 176.5,-260 300.5,-260 300.5,-208 176.5,-208"/>
+</g>
+<!-- AppComponent -->
+<g id="node1" class="node">
+<title>AppComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="414.4399,-122 308.5601,-122 308.5601,-86 414.4399,-86 414.4399,-122"/>
+<text text-anchor="middle" x="361.5" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">AppComponent</text>
+</g>
+<!-- AppModule -->
+<g id="node2" class="node">
+<title>AppModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="280.1571,-187 277.1571,-191 256.1571,-191 253.1571,-187 196.8429,-187 196.8429,-151 280.1571,-151 280.1571,-187"/>
+<text text-anchor="middle" x="238.5" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000">AppModule</text>
+</g>
+<!-- AppComponent&#45;&gt;AppModule -->
+<g id="edge1" class="edge">
+<title>AppComponent&#45;&gt;AppModule</title>
+<path fill="none" stroke="#000000" d="M361.5,-122.1061C361.5,-141.3391 361.5,-169 361.5,-169 361.5,-169 290.4856,-169 290.4856,-169"/>
+<polygon fill="#000000" stroke="#000000" points="290.4856,-165.5001 280.4856,-169 290.4856,-172.5001 290.4856,-165.5001"/>
+</g>
+<!-- AppComponent  -->
+<g id="node5" class="node">
+<title>AppComponent </title>
+<polygon fill="#80b1d3" stroke="#000000" points="292.939,-252 184.061,-252 184.061,-216 292.939,-216 292.939,-252"/>
+<text text-anchor="middle" x="238.5" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">AppComponent </text>
+</g>
+<!-- AppModule&#45;&gt;AppComponent  -->
+<g id="edge4" class="edge">
+<title>AppModule&#45;&gt;AppComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M238.5,-187.1061C238.5,-187.1061 238.5,-205.991 238.5,-205.991"/>
+<polygon fill="#000000" stroke="#000000" points="235.0001,-205.9909 238.5,-215.991 242.0001,-205.991 235.0001,-205.9909"/>
+</g>
+<!-- LoginModule -->
+<g id="node3" class="node">
+<title>LoginModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="284.993,-122 281.993,-126 260.993,-126 257.993,-122 192.007,-122 192.007,-86 284.993,-86 284.993,-122"/>
+<text text-anchor="middle" x="238.5" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginModule</text>
+</g>
+<!-- LoginModule&#45;&gt;AppModule -->
+<g id="edge2" class="edge">
+<title>LoginModule&#45;&gt;AppModule</title>
+<path fill="none" stroke="#000000" d="M238.5,-122.1061C238.5,-122.1061 238.5,-140.991 238.5,-140.991"/>
+<polygon fill="#000000" stroke="#000000" points="235.0001,-140.9909 238.5,-150.991 242.0001,-140.991 235.0001,-140.9909"/>
+</g>
+<!-- PagesModule -->
+<g id="node4" class="node">
+<title>PagesModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="173.7064,-122 170.7064,-126 149.7064,-126 146.7064,-122 81.2936,-122 81.2936,-86 173.7064,-86 173.7064,-122"/>
+<text text-anchor="middle" x="127.5" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">PagesModule</text>
+</g>
+<!-- PagesModule&#45;&gt;AppModule -->
+<g id="edge3" class="edge">
+<title>PagesModule&#45;&gt;AppModule</title>
+<path fill="none" stroke="#000000" d="M127.5,-122.1061C127.5,-141.3391 127.5,-169 127.5,-169 127.5,-169 186.5357,-169 186.5357,-169"/>
+<polygon fill="#000000" stroke="#000000" points="186.5357,-172.5001 196.5357,-169 186.5356,-165.5001 186.5357,-172.5001"/>
+</g>
+</g>
+</svg>
diff --git a/src/docs/modules/LoginModule.html b/src/docs/modules/LoginModule.html
new file mode 100644
index 0000000..aaa8873
--- /dev/null
+++ b/src/docs/modules/LoginModule.html
@@ -0,0 +1,314 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content module">
+                   <div class="content-data">
+
+
+
+<ol class="breadcrumb">
+  <li>Modules</li>
+  <li>LoginModule</li>
+</ol>
+
+      <div class="text-center module-graph-container">
+          <div id="module-graph-svg">
+              <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: dependencies Pages: 1 -->
+<svg width="504pt" height="284pt"
+ viewBox="0.00 0.00 504.00 284.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 280)">
+<title>dependencies</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-280 500,-280 500,4 -4,4"/>
+<text text-anchor="start" x="227.0091" y="-42.4" font-family="sans-serif" font-weight="bold" font-size="14.00" fill="#000000">Legend</text>
+<polygon fill="#ffffb3" stroke="transparent" points="14,-10 14,-30 34,-30 34,-10 14,-10"/>
+<text text-anchor="start" x="37.629" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Declarations</text>
+<polygon fill="#8dd3c7" stroke="transparent" points="127,-10 127,-30 147,-30 147,-10 127,-10"/>
+<text text-anchor="start" x="150.7251" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Module</text>
+<polygon fill="#80b1d3" stroke="transparent" points="213,-10 213,-30 233,-30 233,-10 213,-10"/>
+<text text-anchor="start" x="236.7812" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Bootstrap</text>
+<polygon fill="#fdb462" stroke="transparent" points="310,-10 310,-30 330,-30 330,-10 310,-10"/>
+<text text-anchor="start" x="333.6732" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Providers</text>
+<polygon fill="#fb8072" stroke="transparent" points="406,-10 406,-30 426,-30 426,-10 406,-10"/>
+<text text-anchor="start" x="429.7258" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Exports</text>
+<g id="clust1" class="cluster">
+<title>cluster_LoginModule</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="28,-70 28,-268 468,-268 468,-70 28,-70"/>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_LoginModule_declarations</title>
+<polygon fill="none" stroke="#000000" points="42,-78 42,-130 455,-130 455,-78 42,-78"/>
+</g>
+<g id="clust7" class="cluster">
+<title>cluster_LoginModule_exports</title>
+<polygon fill="none" stroke="#000000" points="36,-208 36,-260 460,-260 460,-208 36,-208"/>
+</g>
+<!-- ForgotComponent -->
+<g id="node1" class="node">
+<title>ForgotComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="447.1667,-122 328.8333,-122 328.8333,-86 447.1667,-86 447.1667,-122"/>
+<text text-anchor="middle" x="388" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">ForgotComponent</text>
+</g>
+<!-- LoginModule -->
+<g id="node4" class="node">
+<title>LoginModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="299.493,-187 296.493,-191 275.493,-191 272.493,-187 206.507,-187 206.507,-151 299.493,-151 299.493,-187"/>
+<text text-anchor="middle" x="253" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginModule</text>
+</g>
+<!-- ForgotComponent&#45;&gt;LoginModule -->
+<g id="edge1" class="edge">
+<title>ForgotComponent&#45;&gt;LoginModule</title>
+<path fill="none" stroke="#000000" d="M408.1944,-122.0225C408.1944,-139.3734 408.1944,-163 408.1944,-163 408.1944,-163 309.5634,-163 309.5634,-163"/>
+<polygon fill="#000000" stroke="#000000" points="309.5635,-159.5001 299.5634,-163 309.5634,-166.5001 309.5635,-159.5001"/>
+</g>
+<!-- LoginComponent -->
+<g id="node2" class="node">
+<title>LoginComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="310.2758,-122 195.7242,-122 195.7242,-86 310.2758,-86 310.2758,-122"/>
+<text text-anchor="middle" x="253" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginComponent</text>
+</g>
+<!-- LoginComponent&#45;&gt;LoginModule -->
+<g id="edge2" class="edge">
+<title>LoginComponent&#45;&gt;LoginModule</title>
+<path fill="none" stroke="#000000" d="M253,-122.1061C253,-122.1061 253,-140.991 253,-140.991"/>
+<polygon fill="#000000" stroke="#000000" points="249.5001,-140.9909 253,-150.991 256.5001,-140.991 249.5001,-140.9909"/>
+</g>
+<!-- RegisterComponent -->
+<g id="node3" class="node">
+<title>RegisterComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="177.9846,-122 50.0154,-122 50.0154,-86 177.9846,-86 177.9846,-122"/>
+<text text-anchor="middle" x="114" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">RegisterComponent</text>
+</g>
+<!-- RegisterComponent&#45;&gt;LoginModule -->
+<g id="edge3" class="edge">
+<title>RegisterComponent&#45;&gt;LoginModule</title>
+<path fill="none" stroke="#000000" d="M133.8308,-122.0225C133.8308,-139.3734 133.8308,-163 133.8308,-163 133.8308,-163 196.2432,-163 196.2432,-163"/>
+<polygon fill="#000000" stroke="#000000" points="196.2432,-166.5001 206.2432,-163 196.2432,-159.5001 196.2432,-166.5001"/>
+</g>
+<!-- ForgotComponent  -->
+<g id="node5" class="node">
+<title>ForgotComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="452.1663,-252 329.8337,-252 329.8337,-216 452.1663,-216 452.1663,-252"/>
+<text text-anchor="middle" x="391" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">ForgotComponent </text>
+</g>
+<!-- LoginModule&#45;&gt;ForgotComponent  -->
+<g id="edge4" class="edge">
+<title>LoginModule&#45;&gt;ForgotComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M299.5356,-175C331.8231,-175 369.0556,-175 369.0556,-175 369.0556,-175 369.0556,-205.9775 369.0556,-205.9775"/>
+<polygon fill="#000000" stroke="#000000" points="365.5557,-205.9774 369.0556,-215.9775 372.5557,-205.9775 365.5557,-205.9774"/>
+</g>
+<!-- LoginComponent  -->
+<g id="node6" class="node">
+<title>LoginComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="312.2759,-252 193.7241,-252 193.7241,-216 312.2759,-216 312.2759,-252"/>
+<text text-anchor="middle" x="253" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginComponent </text>
+</g>
+<!-- LoginModule&#45;&gt;LoginComponent  -->
+<g id="edge5" class="edge">
+<title>LoginModule&#45;&gt;LoginComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M253,-187.1061C253,-187.1061 253,-205.991 253,-205.991"/>
+<polygon fill="#000000" stroke="#000000" points="249.5001,-205.9909 253,-215.991 256.5001,-205.991 249.5001,-205.9909"/>
+</g>
+<!-- RegisterComponent  -->
+<g id="node7" class="node">
+<title>RegisterComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="175.9855,-252 44.0145,-252 44.0145,-216 175.9855,-216 175.9855,-252"/>
+<text text-anchor="middle" x="110" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">RegisterComponent </text>
+</g>
+<!-- LoginModule&#45;&gt;RegisterComponent  -->
+<g id="edge6" class="edge">
+<title>LoginModule&#45;&gt;RegisterComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M206.4088,-175C158.8355,-175 91.9192,-175 91.9192,-175 91.9192,-175 91.9192,-205.9775 91.9192,-205.9775"/>
+<polygon fill="#000000" stroke="#000000" points="88.4193,-205.9774 91.9192,-215.9775 95.4193,-205.9775 88.4193,-205.9774"/>
+</g>
+</g>
+</svg>
+
+          </div>
+          <i id="fullscreen" class="icon ion-ios-resize module-graph-fullscreen-btn" aria-hidden="true"></i>
+          <div class="btn-group">
+              <button id="zoom-in" class="btn btn-default btn-sm">Zoom in</button>
+              <button id="reset" class="btn btn-default btn-sm">Reset</button>
+              <button id="zoom-out" class="btn btn-default btn-sm">Zoom out</button>
+          </div>
+      </div>
+      <script src="../js/libs/svg-pan-zoom.min.js"></script>
+      <script src="../js/svg-pan-zoom.controls.js"></script>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/login/login.module.ts</code>
+        </p>
+
+
+        
+
+        <div class="container-fluid module">
+            <div class="row">
+                <div class="col-sm-3">
+                    <h3>Declarations<a href="https://angular.io/api/core/NgModule#declarations" target="_blank" title="Official documentation about module declarations"><span class="icon ion-ios-information-circle-outline"></span></a></h3>
+                    <ul class="list-group">
+                            <li class="list-group-item">
+                                <a href="../components/ForgotComponent.html">ForgotComponent</a>
+                            </li>
+                            <li class="list-group-item">
+                                <a href="../components/LoginComponent.html">LoginComponent</a>
+                            </li>
+                            <li class="list-group-item">
+                                <a href="../components/RegisterComponent.html">RegisterComponent</a>
+                            </li>
+                    </ul>
+                </div>
+                <div class="col-sm-3">
+                    <h3>Exports<a href="https://angular.io/api/core/NgModule#exports" target="_blank" title="Official documentation about module exports"><span class="icon ion-ios-information-circle-outline"></a></h3>
+                    <ul class="list-group">
+                            <li class="list-group-item">
+                                    <a href="../components/ForgotComponent.html" >ForgotComponent</a>
+                            </li>
+                            <li class="list-group-item">
+                                    <a href="../components/LoginComponent.html" >LoginComponent</a>
+                            </li>
+                            <li class="list-group-item">
+                                    <a href="../components/RegisterComponent.html" >RegisterComponent</a>
+                            </li>
+                    </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { NgModule } from &#x27;@angular/core&#x27;;
+import { LoginComponent } from &#x27;./login-form/login.component&#x27;;
+import { RegisterComponent } from &#x27;./register/register.component&#x27;;
+import { ForgotComponent } from &#x27;./forgot/forgot.component&#x27;;
+import { RouterModule } from &#x27;@angular/router&#x27;;
+import { FormsModule } from &#x27;@angular/forms&#x27;;
+
+
+
+const COMPONENTS &#x3D; [
+    LoginComponent,
+    RegisterComponent,
+    ForgotComponent
+];
+
+@NgModule({
+  imports: [RouterModule, FormsModule],
+  declarations: COMPONENTS,
+  exports: COMPONENTS
+})
+export class LoginModule {}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'module';
+            var COMPODOC_CURRENT_PAGE_URL = 'LoginModule.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/modules/LoginModule/dependencies.svg b/src/docs/modules/LoginModule/dependencies.svg
new file mode 100644
index 0000000..72c519b
--- /dev/null
+++ b/src/docs/modules/LoginModule/dependencies.svg
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: dependencies Pages: 1 -->
+<svg width="504pt" height="284pt"
+ viewBox="0.00 0.00 504.00 284.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 280)">
+<title>dependencies</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-280 500,-280 500,4 -4,4"/>
+<text text-anchor="start" x="227.0091" y="-42.4" font-family="sans-serif" font-weight="bold" font-size="14.00" fill="#000000">Legend</text>
+<polygon fill="#ffffb3" stroke="transparent" points="14,-10 14,-30 34,-30 34,-10 14,-10"/>
+<text text-anchor="start" x="37.629" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Declarations</text>
+<polygon fill="#8dd3c7" stroke="transparent" points="127,-10 127,-30 147,-30 147,-10 127,-10"/>
+<text text-anchor="start" x="150.7251" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Module</text>
+<polygon fill="#80b1d3" stroke="transparent" points="213,-10 213,-30 233,-30 233,-10 213,-10"/>
+<text text-anchor="start" x="236.7812" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Bootstrap</text>
+<polygon fill="#fdb462" stroke="transparent" points="310,-10 310,-30 330,-30 330,-10 310,-10"/>
+<text text-anchor="start" x="333.6732" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Providers</text>
+<polygon fill="#fb8072" stroke="transparent" points="406,-10 406,-30 426,-30 426,-10 406,-10"/>
+<text text-anchor="start" x="429.7258" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Exports</text>
+<g id="clust1" class="cluster">
+<title>cluster_LoginModule</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="28,-70 28,-268 468,-268 468,-70 28,-70"/>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_LoginModule_declarations</title>
+<polygon fill="none" stroke="#000000" points="42,-78 42,-130 455,-130 455,-78 42,-78"/>
+</g>
+<g id="clust7" class="cluster">
+<title>cluster_LoginModule_exports</title>
+<polygon fill="none" stroke="#000000" points="36,-208 36,-260 460,-260 460,-208 36,-208"/>
+</g>
+<!-- ForgotComponent -->
+<g id="node1" class="node">
+<title>ForgotComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="447.1667,-122 328.8333,-122 328.8333,-86 447.1667,-86 447.1667,-122"/>
+<text text-anchor="middle" x="388" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">ForgotComponent</text>
+</g>
+<!-- LoginModule -->
+<g id="node4" class="node">
+<title>LoginModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="299.493,-187 296.493,-191 275.493,-191 272.493,-187 206.507,-187 206.507,-151 299.493,-151 299.493,-187"/>
+<text text-anchor="middle" x="253" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginModule</text>
+</g>
+<!-- ForgotComponent&#45;&gt;LoginModule -->
+<g id="edge1" class="edge">
+<title>ForgotComponent&#45;&gt;LoginModule</title>
+<path fill="none" stroke="#000000" d="M408.1944,-122.0225C408.1944,-139.3734 408.1944,-163 408.1944,-163 408.1944,-163 309.5634,-163 309.5634,-163"/>
+<polygon fill="#000000" stroke="#000000" points="309.5635,-159.5001 299.5634,-163 309.5634,-166.5001 309.5635,-159.5001"/>
+</g>
+<!-- LoginComponent -->
+<g id="node2" class="node">
+<title>LoginComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="310.2758,-122 195.7242,-122 195.7242,-86 310.2758,-86 310.2758,-122"/>
+<text text-anchor="middle" x="253" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginComponent</text>
+</g>
+<!-- LoginComponent&#45;&gt;LoginModule -->
+<g id="edge2" class="edge">
+<title>LoginComponent&#45;&gt;LoginModule</title>
+<path fill="none" stroke="#000000" d="M253,-122.1061C253,-122.1061 253,-140.991 253,-140.991"/>
+<polygon fill="#000000" stroke="#000000" points="249.5001,-140.9909 253,-150.991 256.5001,-140.991 249.5001,-140.9909"/>
+</g>
+<!-- RegisterComponent -->
+<g id="node3" class="node">
+<title>RegisterComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="177.9846,-122 50.0154,-122 50.0154,-86 177.9846,-86 177.9846,-122"/>
+<text text-anchor="middle" x="114" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">RegisterComponent</text>
+</g>
+<!-- RegisterComponent&#45;&gt;LoginModule -->
+<g id="edge3" class="edge">
+<title>RegisterComponent&#45;&gt;LoginModule</title>
+<path fill="none" stroke="#000000" d="M133.8308,-122.0225C133.8308,-139.3734 133.8308,-163 133.8308,-163 133.8308,-163 196.2432,-163 196.2432,-163"/>
+<polygon fill="#000000" stroke="#000000" points="196.2432,-166.5001 206.2432,-163 196.2432,-159.5001 196.2432,-166.5001"/>
+</g>
+<!-- ForgotComponent  -->
+<g id="node5" class="node">
+<title>ForgotComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="452.1663,-252 329.8337,-252 329.8337,-216 452.1663,-216 452.1663,-252"/>
+<text text-anchor="middle" x="391" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">ForgotComponent </text>
+</g>
+<!-- LoginModule&#45;&gt;ForgotComponent  -->
+<g id="edge4" class="edge">
+<title>LoginModule&#45;&gt;ForgotComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M299.5356,-175C331.8231,-175 369.0556,-175 369.0556,-175 369.0556,-175 369.0556,-205.9775 369.0556,-205.9775"/>
+<polygon fill="#000000" stroke="#000000" points="365.5557,-205.9774 369.0556,-215.9775 372.5557,-205.9775 365.5557,-205.9774"/>
+</g>
+<!-- LoginComponent  -->
+<g id="node6" class="node">
+<title>LoginComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="312.2759,-252 193.7241,-252 193.7241,-216 312.2759,-216 312.2759,-252"/>
+<text text-anchor="middle" x="253" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginComponent </text>
+</g>
+<!-- LoginModule&#45;&gt;LoginComponent  -->
+<g id="edge5" class="edge">
+<title>LoginModule&#45;&gt;LoginComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M253,-187.1061C253,-187.1061 253,-205.991 253,-205.991"/>
+<polygon fill="#000000" stroke="#000000" points="249.5001,-205.9909 253,-215.991 256.5001,-205.991 249.5001,-205.9909"/>
+</g>
+<!-- RegisterComponent  -->
+<g id="node7" class="node">
+<title>RegisterComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="175.9855,-252 44.0145,-252 44.0145,-216 175.9855,-216 175.9855,-252"/>
+<text text-anchor="middle" x="110" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">RegisterComponent </text>
+</g>
+<!-- LoginModule&#45;&gt;RegisterComponent  -->
+<g id="edge6" class="edge">
+<title>LoginModule&#45;&gt;RegisterComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M206.4088,-175C158.8355,-175 91.9192,-175 91.9192,-175 91.9192,-175 91.9192,-205.9775 91.9192,-205.9775"/>
+<polygon fill="#000000" stroke="#000000" points="88.4193,-205.9774 91.9192,-215.9775 95.4193,-205.9775 88.4193,-205.9774"/>
+</g>
+</g>
+</svg>
diff --git a/src/docs/modules/PagesModule.html b/src/docs/modules/PagesModule.html
new file mode 100644
index 0000000..5fd3563
--- /dev/null
+++ b/src/docs/modules/PagesModule.html
@@ -0,0 +1,363 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content module">
+                   <div class="content-data">
+
+
+
+<ol class="breadcrumb">
+  <li>Modules</li>
+  <li>PagesModule</li>
+</ol>
+
+      <div class="text-center module-graph-container">
+          <div id="module-graph-svg">
+              <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: dependencies Pages: 1 -->
+<svg width="504pt" height="284pt"
+ viewBox="0.00 0.00 504.00 284.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 280)">
+<title>dependencies</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-280 500,-280 500,4 -4,4"/>
+<text text-anchor="start" x="227.0091" y="-42.4" font-family="sans-serif" font-weight="bold" font-size="14.00" fill="#000000">Legend</text>
+<polygon fill="#ffffb3" stroke="transparent" points="14,-10 14,-30 34,-30 34,-10 14,-10"/>
+<text text-anchor="start" x="37.629" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Declarations</text>
+<polygon fill="#8dd3c7" stroke="transparent" points="127,-10 127,-30 147,-30 147,-10 127,-10"/>
+<text text-anchor="start" x="150.7251" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Module</text>
+<polygon fill="#80b1d3" stroke="transparent" points="213,-10 213,-30 233,-30 233,-10 213,-10"/>
+<text text-anchor="start" x="236.7812" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Bootstrap</text>
+<polygon fill="#fdb462" stroke="transparent" points="310,-10 310,-30 330,-30 330,-10 310,-10"/>
+<text text-anchor="start" x="333.6732" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Providers</text>
+<polygon fill="#fb8072" stroke="transparent" points="406,-10 406,-30 426,-30 426,-10 406,-10"/>
+<text text-anchor="start" x="429.7258" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Exports</text>
+<g id="clust1" class="cluster">
+<title>cluster_PagesModule</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="28,-70 28,-268 468,-268 468,-70 28,-70"/>
+</g>
+<g id="clust3" class="cluster">
+<title>cluster_PagesModule_imports</title>
+<polygon fill="none" stroke="#000000" points="196,-78 196,-130 310,-130 310,-78 196,-78"/>
+</g>
+<g id="clust4" class="cluster">
+<title>cluster_PagesModule_exports</title>
+<polygon fill="none" stroke="#000000" points="36,-208 36,-260 460,-260 460,-208 36,-208"/>
+</g>
+<!-- SharedModule -->
+<g id="node1" class="node">
+<title>SharedModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="302.4231,-122 299.4231,-126 278.4231,-126 275.4231,-122 203.5769,-122 203.5769,-86 302.4231,-86 302.4231,-122"/>
+<text text-anchor="middle" x="253" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">SharedModule</text>
+</g>
+<!-- PagesModule -->
+<g id="node2" class="node">
+<title>PagesModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="299.2064,-187 296.2064,-191 275.2064,-191 272.2064,-187 206.7936,-187 206.7936,-151 299.2064,-151 299.2064,-187"/>
+<text text-anchor="middle" x="253" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000">PagesModule</text>
+</g>
+<!-- SharedModule&#45;&gt;PagesModule -->
+<g id="edge1" class="edge">
+<title>SharedModule&#45;&gt;PagesModule</title>
+<path fill="none" stroke="#000000" d="M253,-122.1061C253,-122.1061 253,-140.991 253,-140.991"/>
+<polygon fill="#000000" stroke="#000000" points="249.5001,-140.9909 253,-150.991 256.5001,-140.991 249.5001,-140.9909"/>
+</g>
+<!-- ForgotComponent  -->
+<g id="node3" class="node">
+<title>ForgotComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="452.1663,-252 329.8337,-252 329.8337,-216 452.1663,-216 452.1663,-252"/>
+<text text-anchor="middle" x="391" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">ForgotComponent </text>
+</g>
+<!-- PagesModule&#45;&gt;ForgotComponent  -->
+<g id="edge2" class="edge">
+<title>PagesModule&#45;&gt;ForgotComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M299.3359,-169C339.4264,-169 391,-169 391,-169 391,-169 391,-205.8939 391,-205.8939"/>
+<polygon fill="#000000" stroke="#000000" points="387.5001,-205.8938 391,-215.8939 394.5001,-205.8939 387.5001,-205.8938"/>
+</g>
+<!-- LoginComponent  -->
+<g id="node4" class="node">
+<title>LoginComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="312.2759,-252 193.7241,-252 193.7241,-216 312.2759,-216 312.2759,-252"/>
+<text text-anchor="middle" x="253" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginComponent </text>
+</g>
+<!-- PagesModule&#45;&gt;LoginComponent  -->
+<g id="edge3" class="edge">
+<title>PagesModule&#45;&gt;LoginComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M253,-187.1061C253,-187.1061 253,-205.991 253,-205.991"/>
+<polygon fill="#000000" stroke="#000000" points="249.5001,-205.9909 253,-215.991 256.5001,-205.991 249.5001,-205.9909"/>
+</g>
+<!-- RegisterComponent  -->
+<g id="node5" class="node">
+<title>RegisterComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="175.9855,-252 44.0145,-252 44.0145,-216 175.9855,-216 175.9855,-252"/>
+<text text-anchor="middle" x="110" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">RegisterComponent </text>
+</g>
+<!-- PagesModule&#45;&gt;RegisterComponent  -->
+<g id="edge4" class="edge">
+<title>PagesModule&#45;&gt;RegisterComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M206.572,-169C164.8169,-169 110,-169 110,-169 110,-169 110,-205.8939 110,-205.8939"/>
+<polygon fill="#000000" stroke="#000000" points="106.5001,-205.8938 110,-215.8939 113.5001,-205.8939 106.5001,-205.8938"/>
+</g>
+</g>
+</svg>
+
+          </div>
+          <i id="fullscreen" class="icon ion-ios-resize module-graph-fullscreen-btn" aria-hidden="true"></i>
+          <div class="btn-group">
+              <button id="zoom-in" class="btn btn-default btn-sm">Zoom in</button>
+              <button id="reset" class="btn btn-default btn-sm">Reset</button>
+              <button id="zoom-out" class="btn btn-default btn-sm">Zoom out</button>
+          </div>
+      </div>
+      <script src="../js/libs/svg-pan-zoom.min.js"></script>
+      <script src="../js/svg-pan-zoom.controls.js"></script>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/pages/pages.module.ts</code>
+        </p>
+
+
+        
+
+        <div class="container-fluid module">
+            <div class="row">
+                <div class="col-sm-3">
+                    <h3>Imports<a href="https://angular.io/api/core/NgModule#imports" target="_blank" title="Official documentation about module imports"><span class="icon ion-ios-information-circle-outline"></a></h3>
+                    <ul class="list-group">
+                            <li class="list-group-item">
+                                    <a href="../modules/SharedModule.html" >SharedModule</a>
+                            </li>
+                    </ul>
+                </div>
+                <div class="col-sm-3">
+                    <h3>Exports<a href="https://angular.io/api/core/NgModule#exports" target="_blank" title="Official documentation about module exports"><span class="icon ion-ios-information-circle-outline"></a></h3>
+                    <ul class="list-group">
+                            <li class="list-group-item">
+                                    <a href="../components/ForgotComponent.html" >ForgotComponent</a>
+                            </li>
+                            <li class="list-group-item">
+                                    <a href="../components/LoginComponent.html" >LoginComponent</a>
+                            </li>
+                            <li class="list-group-item">
+                                    <a href="../components/RegisterComponent.html" >RegisterComponent</a>
+                            </li>
+                    </ul>
+                </div>
+            </div>
+        </div>
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { NgModule } from &#x27;@angular/core&#x27;;
+// Routes
+import { PAGE_ROUTES } from &#x27;./pages.routes&#x27;;
+// Modules
+import { I18nConfigModule } from &#x27;i18n-config&#x27;;
+import { BrowserModule } from &#x27;@angular/platform-browser&#x27;;
+import { FormsModule } from &#x27;@angular/forms&#x27;;
+import { ChartsModule } from &#x27;ng2-charts&#x27;;
+import { SharedModule } from &#x27;../shared/shared.module&#x27;;
+import { SweetAlert2Module } from &#x27;@toverux/ngx-sweetalert2&#x27;;
+import { TableModule } from &#x27;ngx-easy-table&#x27;;
+import { AgmCoreModule } from &#x27;@agm/core&#x27;;
+import { AgmJsMarkerClustererModule } from &#x27;@agm/js-marker-clusterer&#x27;;
+
+// Components
+import { PagesComponent } from &#x27;./pages.component&#x27;;
+import { RacesComponent } from &#x27;./races/races.component&#x27;;
+import { ChartComponent } from &#x27;./charts/chart.component&#x27;;
+import { DashboardComponent } from &#x27;./dashboard/dashboard.component&#x27;;
+import { DoughnutChartComponent } from &#x27;../components/charts/doughnut-chart/doughnut-chart.component&#x27;;
+import { BarChartComponent } from &#x27;../components/charts/bar-chart/bar-chart.component&#x27;;
+import { PolarAreaChartComponent } from &#x27;../components/charts/polar-area-chart/polar-area-chart.component&#x27;;
+import { PieChartComponent } from &#x27;../components/charts/pie-chart/pie-chart.component&#x27;;
+import { RadarChartComponent } from &#x27;../components/charts/radar-chart/radar-chart.component&#x27;;
+import { LineChartComponent } from &#x27;../components/charts/line-chart/line-chart.component&#x27;;
+import { SettingsComponent } from &#x27;./settings/settings.component&#x27;;
+import { SupportComponent } from &#x27;./support/support.component&#x27;;
+import { CircuitsComponent } from &#x27;./circuits/circuits.component&#x27;;
+import { DriversComponent } from &#x27;./drivers/drivers.component&#x27;;
+import { SeasonsComponent } from &#x27;./seasons/seasons.component&#x27;;
+import { GoogleMapsComponent } from &#x27;../components/google-maps/google-maps.component&#x27;;
+
+// Constants
+import { GOOGLEMAPS } from &#x27;../../environments/api-keys&#x27;;
+
+// Pipes
+import { RoundPipe } from &#x27;../pipes/round.pipe&#x27;;
+import { WikipediaUrlMobilePipe } from &#x27;../pipes/wikipedia-url-mobile.pipe&#x27;;
+import { GoogleStaticMapUrlPipe } from &#x27;../pipes/google-static-map-url.pipe&#x27;;
+import { GoogleMapsUrlPipe } from &#x27;../pipes/google-maps-url.pipe&#x27;;
+import { LocationTextPipe } from &#x27;../pipes/location-text.pipe&#x27;;
+
+// Directives
+import { DefaultImageDirective } from &#x27;../directives/default-image.directive&#x27;;
+
+
+const COMPONENTS &#x3D; [
+  GoogleMapsComponent,
+  SeasonsComponent,
+  CircuitsComponent,
+  DashboardComponent,
+  DriversComponent,
+  LineChartComponent,
+  BarChartComponent,
+  PolarAreaChartComponent,
+  PieChartComponent,
+  RadarChartComponent,
+  DoughnutChartComponent,
+  ChartComponent,
+  RacesComponent,
+  SettingsComponent,
+  SupportComponent
+];
+
+const PIPES &#x3D; [
+  RoundPipe,
+  WikipediaUrlMobilePipe,
+  GoogleStaticMapUrlPipe,
+  GoogleMapsUrlPipe,
+  LocationTextPipe
+];
+
+const DIRECTIVES &#x3D; [ DefaultImageDirective ];
+
+const DECLARATIONS &#x3D; [...[PagesComponent], ...PIPES, ...DIRECTIVES, ...COMPONENTS];
+
+@NgModule({
+  imports: [
+    PAGE_ROUTES,
+    AgmJsMarkerClustererModule,
+    AgmCoreModule.forRoot({
+      apiKey: GOOGLEMAPS
+    }),
+    I18nConfigModule,
+    BrowserModule,
+    FormsModule,
+    ChartsModule,
+    SharedModule,
+    SweetAlert2Module.forRoot({
+      buttonsStyling: false,
+      customClass: &#x27;modal-content&#x27;,
+      confirmButtonClass: &#x27;btn btn-primary&#x27;,
+      cancelButtonClass: &#x27;btn&#x27;
+    }),
+    TableModule
+  ],
+  exports: COMPONENTS,
+  declarations: DECLARATIONS
+})
+export class PagesModule {}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'module';
+            var COMPODOC_CURRENT_PAGE_URL = 'PagesModule.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/modules/PagesModule/dependencies.svg b/src/docs/modules/PagesModule/dependencies.svg
new file mode 100644
index 0000000..c61e218
--- /dev/null
+++ b/src/docs/modules/PagesModule/dependencies.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: dependencies Pages: 1 -->
+<svg width="504pt" height="284pt"
+ viewBox="0.00 0.00 504.00 284.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 280)">
+<title>dependencies</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-280 500,-280 500,4 -4,4"/>
+<text text-anchor="start" x="227.0091" y="-42.4" font-family="sans-serif" font-weight="bold" font-size="14.00" fill="#000000">Legend</text>
+<polygon fill="#ffffb3" stroke="transparent" points="14,-10 14,-30 34,-30 34,-10 14,-10"/>
+<text text-anchor="start" x="37.629" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Declarations</text>
+<polygon fill="#8dd3c7" stroke="transparent" points="127,-10 127,-30 147,-30 147,-10 127,-10"/>
+<text text-anchor="start" x="150.7251" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Module</text>
+<polygon fill="#80b1d3" stroke="transparent" points="213,-10 213,-30 233,-30 233,-10 213,-10"/>
+<text text-anchor="start" x="236.7812" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Bootstrap</text>
+<polygon fill="#fdb462" stroke="transparent" points="310,-10 310,-30 330,-30 330,-10 310,-10"/>
+<text text-anchor="start" x="333.6732" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Providers</text>
+<polygon fill="#fb8072" stroke="transparent" points="406,-10 406,-30 426,-30 426,-10 406,-10"/>
+<text text-anchor="start" x="429.7258" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Exports</text>
+<g id="clust1" class="cluster">
+<title>cluster_PagesModule</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="28,-70 28,-268 468,-268 468,-70 28,-70"/>
+</g>
+<g id="clust3" class="cluster">
+<title>cluster_PagesModule_imports</title>
+<polygon fill="none" stroke="#000000" points="196,-78 196,-130 310,-130 310,-78 196,-78"/>
+</g>
+<g id="clust4" class="cluster">
+<title>cluster_PagesModule_exports</title>
+<polygon fill="none" stroke="#000000" points="36,-208 36,-260 460,-260 460,-208 36,-208"/>
+</g>
+<!-- SharedModule -->
+<g id="node1" class="node">
+<title>SharedModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="302.4231,-122 299.4231,-126 278.4231,-126 275.4231,-122 203.5769,-122 203.5769,-86 302.4231,-86 302.4231,-122"/>
+<text text-anchor="middle" x="253" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">SharedModule</text>
+</g>
+<!-- PagesModule -->
+<g id="node2" class="node">
+<title>PagesModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="299.2064,-187 296.2064,-191 275.2064,-191 272.2064,-187 206.7936,-187 206.7936,-151 299.2064,-151 299.2064,-187"/>
+<text text-anchor="middle" x="253" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000">PagesModule</text>
+</g>
+<!-- SharedModule&#45;&gt;PagesModule -->
+<g id="edge1" class="edge">
+<title>SharedModule&#45;&gt;PagesModule</title>
+<path fill="none" stroke="#000000" d="M253,-122.1061C253,-122.1061 253,-140.991 253,-140.991"/>
+<polygon fill="#000000" stroke="#000000" points="249.5001,-140.9909 253,-150.991 256.5001,-140.991 249.5001,-140.9909"/>
+</g>
+<!-- ForgotComponent  -->
+<g id="node3" class="node">
+<title>ForgotComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="452.1663,-252 329.8337,-252 329.8337,-216 452.1663,-216 452.1663,-252"/>
+<text text-anchor="middle" x="391" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">ForgotComponent </text>
+</g>
+<!-- PagesModule&#45;&gt;ForgotComponent  -->
+<g id="edge2" class="edge">
+<title>PagesModule&#45;&gt;ForgotComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M299.3359,-169C339.4264,-169 391,-169 391,-169 391,-169 391,-205.8939 391,-205.8939"/>
+<polygon fill="#000000" stroke="#000000" points="387.5001,-205.8938 391,-215.8939 394.5001,-205.8939 387.5001,-205.8938"/>
+</g>
+<!-- LoginComponent  -->
+<g id="node4" class="node">
+<title>LoginComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="312.2759,-252 193.7241,-252 193.7241,-216 312.2759,-216 312.2759,-252"/>
+<text text-anchor="middle" x="253" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginComponent </text>
+</g>
+<!-- PagesModule&#45;&gt;LoginComponent  -->
+<g id="edge3" class="edge">
+<title>PagesModule&#45;&gt;LoginComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M253,-187.1061C253,-187.1061 253,-205.991 253,-205.991"/>
+<polygon fill="#000000" stroke="#000000" points="249.5001,-205.9909 253,-215.991 256.5001,-205.991 249.5001,-205.9909"/>
+</g>
+<!-- RegisterComponent  -->
+<g id="node5" class="node">
+<title>RegisterComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="175.9855,-252 44.0145,-252 44.0145,-216 175.9855,-216 175.9855,-252"/>
+<text text-anchor="middle" x="110" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">RegisterComponent </text>
+</g>
+<!-- PagesModule&#45;&gt;RegisterComponent  -->
+<g id="edge4" class="edge">
+<title>PagesModule&#45;&gt;RegisterComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M206.572,-169C164.8169,-169 110,-169 110,-169 110,-169 110,-205.8939 110,-205.8939"/>
+<polygon fill="#000000" stroke="#000000" points="106.5001,-205.8938 110,-215.8939 113.5001,-205.8939 106.5001,-205.8938"/>
+</g>
+</g>
+</svg>
diff --git a/src/docs/modules/SharedModule.html b/src/docs/modules/SharedModule.html
new file mode 100644
index 0000000..3588793
--- /dev/null
+++ b/src/docs/modules/SharedModule.html
@@ -0,0 +1,160 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content module">
+                   <div class="content-data">
+
+
+
+<ol class="breadcrumb">
+  <li>Modules</li>
+  <li>SharedModule</li>
+</ol>
+
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/shared/shared.module.ts</code>
+        </p>
+
+
+        
+
+        <div class="container-fluid module">
+            <div class="row">
+            </div>
+        </div>
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { NgModule } from &#x27;@angular/core&#x27;;
+import { RouterModule } from &#x27;@angular/router&#x27;;
+
+import { HeaderComponent } from &#x27;./header/header.component&#x27;;
+import { SidebarComponent } from &#x27;./sidebar/sidebar.component&#x27;;
+import { NotpagefoundComponent } from &#x27;./notpagefound/notpagefound.component&#x27;;
+import { BreadcrumbComponent } from &#x27;./breadcrumb/breadcrumb.component&#x27;;
+import { FooterComponent } from &#x27;./footer/footer.component&#x27;;
+import { ScrollTopComponent } from &#x27;./scroll-top/scroll-top.component&#x27;;
+import { CommonModule } from &#x27;@angular/common&#x27;;
+import { CapitalizePipe } from &#x27;../pipes/capitalize.pipe&#x27;;
+
+const COMPONENTS &#x3D; [HeaderComponent, SidebarComponent, BreadcrumbComponent, NotpagefoundComponent, FooterComponent, ScrollTopComponent];
+const PIPES &#x3D; [CapitalizePipe];
+
+const DECLARATIONS &#x3D; [...PIPES, ...COMPONENTS];
+@NgModule({
+  imports: [CommonModule, RouterModule],
+  declarations: DECLARATIONS,
+    exports: DECLARATIONS
+})
+export class SharedModule {}
+</code></pre>
+    </div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'module';
+            var COMPODOC_CURRENT_PAGE_URL = 'SharedModule.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/overview.html b/src/docs/overview.html
new file mode 100644
index 0000000..a91c2a3
--- /dev/null
+++ b/src/docs/overview.html
@@ -0,0 +1,394 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="./images/favicon.ico">
+	      <link rel="stylesheet" href="./styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="./" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content overview">
+                   <div class="content-data">
+
+
+<ol class="breadcrumb">
+    <li>Overview</li>
+</ol>
+  
+<div class="text-center module-graph-container">
+    <div id="module-graph-svg">
+        <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: dependencies Pages: 1 -->
+<svg width="1257pt" height="366pt"
+ viewBox="0.00 0.00 1257.00 366.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 362)">
+<title>dependencies</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-362 1253,-362 1253,4 -4,4"/>
+<text text-anchor="start" x="603.5091" y="-42.4" font-family="sans-serif" font-weight="bold" font-size="14.00" fill="#000000">Legend</text>
+<polygon fill="#ffffb3" stroke="transparent" points="390.5,-10 390.5,-30 410.5,-30 410.5,-10 390.5,-10"/>
+<text text-anchor="start" x="414.129" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Declarations</text>
+<polygon fill="#8dd3c7" stroke="transparent" points="503.5,-10 503.5,-30 523.5,-30 523.5,-10 503.5,-10"/>
+<text text-anchor="start" x="527.2251" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Module</text>
+<polygon fill="#80b1d3" stroke="transparent" points="589.5,-10 589.5,-30 609.5,-30 609.5,-10 589.5,-10"/>
+<text text-anchor="start" x="613.2812" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Bootstrap</text>
+<polygon fill="#fdb462" stroke="transparent" points="686.5,-10 686.5,-30 706.5,-30 706.5,-10 686.5,-10"/>
+<text text-anchor="start" x="710.1732" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Providers</text>
+<polygon fill="#fb8072" stroke="transparent" points="782.5,-10 782.5,-30 802.5,-30 802.5,-10 782.5,-10"/>
+<text text-anchor="start" x="806.2258" y="-15.4" font-family="sans-serif" font-size="14.00" fill="#000000"> &#160;Exports</text>
+<g id="clust1" class="cluster">
+<title>cluster_AppModule</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="8,-146 8,-350 373,-350 373,-146 8,-146"/>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_AppModule_declarations</title>
+<polygon fill="none" stroke="#000000" points="16,-154 16,-206 138,-206 138,-154 16,-154"/>
+</g>
+<g id="clust4" class="cluster">
+<title>cluster_AppModule_imports</title>
+<polygon fill="none" stroke="#000000" points="146,-154 146,-206 365,-206 365,-154 146,-154"/>
+</g>
+<g id="clust6" class="cluster">
+<title>cluster_AppModule_bootstrap</title>
+<polygon fill="none" stroke="#000000" points="138,-290 138,-342 262,-342 262,-290 138,-290"/>
+</g>
+<g id="clust8" class="cluster">
+<title>cluster_LoginModule</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="381,-214 381,-282 1241,-282 1241,-214 381,-214"/>
+</g>
+<g id="clust9" class="cluster">
+<title>cluster_LoginModule_declarations</title>
+<polygon fill="none" stroke="#000000" points="821,-222 821,-274 1233,-274 1233,-222 821,-222"/>
+</g>
+<g id="clust14" class="cluster">
+<title>cluster_LoginModule_exports</title>
+<polygon fill="none" stroke="#000000" points="389,-222 389,-274 813,-274 813,-222 389,-222"/>
+</g>
+<g id="clust17" class="cluster">
+<title>cluster_PagesModule</title>
+<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="135,-70 135,-138 265,-138 265,-70 135,-70"/>
+</g>
+<g id="clust19" class="cluster">
+<title>cluster_PagesModule_imports</title>
+<polygon fill="none" stroke="#000000" points="143,-78 143,-130 257,-130 257,-78 143,-78"/>
+</g>
+<!-- AppComponent -->
+<g id="node1" class="node">
+<title>AppComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="129.9399,-198 24.0601,-198 24.0601,-162 129.9399,-162 129.9399,-198"/>
+<text text-anchor="middle" x="77" y="-175.8" font-family="Times,serif" font-size="14.00" fill="#000000">AppComponent</text>
+</g>
+<!-- AppModule -->
+<g id="node2" class="node">
+<title>AppModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="241.6571,-266 238.6571,-270 217.6571,-270 214.6571,-266 158.3429,-266 158.3429,-230 241.6571,-230 241.6571,-266"/>
+<text text-anchor="middle" x="200" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">AppModule</text>
+</g>
+<!-- AppComponent&#45;&gt;AppModule -->
+<g id="edge1" class="edge">
+<title>AppComponent&#45;&gt;AppModule</title>
+<path fill="none" stroke="#000000" d="M77,-198.2228C77,-218.3652 77,-248 77,-248 77,-248 148.0144,-248 148.0144,-248"/>
+<polygon fill="#000000" stroke="#000000" points="148.0144,-251.5001 158.0144,-248 148.0144,-244.5001 148.0144,-251.5001"/>
+</g>
+<!-- AppComponent  -->
+<g id="node5" class="node">
+<title>AppComponent </title>
+<polygon fill="#80b1d3" stroke="#000000" points="254.439,-334 145.561,-334 145.561,-298 254.439,-298 254.439,-334"/>
+<text text-anchor="middle" x="200" y="-311.8" font-family="Times,serif" font-size="14.00" fill="#000000">AppComponent </text>
+</g>
+<!-- AppModule&#45;&gt;AppComponent  -->
+<g id="edge4" class="edge">
+<title>AppModule&#45;&gt;AppComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M200,-266.2228C200,-266.2228 200,-287.7269 200,-287.7269"/>
+<polygon fill="#000000" stroke="#000000" points="196.5001,-287.7269 200,-297.7269 203.5001,-287.727 196.5001,-287.7269"/>
+</g>
+<!-- LoginModule -->
+<g id="node3" class="node">
+<title>LoginModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="357.493,-198 354.493,-202 333.493,-202 330.493,-198 264.507,-198 264.507,-162 357.493,-162 357.493,-198"/>
+<text text-anchor="middle" x="311" y="-175.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginModule</text>
+</g>
+<!-- LoginModule&#45;&gt;AppModule -->
+<g id="edge2" class="edge">
+<title>LoginModule&#45;&gt;AppModule</title>
+<path fill="none" stroke="#000000" d="M295.5012,-198.2479C295.5012,-221.0179 295.5012,-257 295.5012,-257 295.5012,-257 251.8882,-257 251.8882,-257"/>
+<polygon fill="#000000" stroke="#000000" points="251.8882,-253.5001 241.8882,-257 251.8882,-260.5001 251.8882,-253.5001"/>
+</g>
+<!-- ForgotComponent  -->
+<g id="node9" class="node">
+<title>ForgotComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="655.1663,-266 532.8337,-266 532.8337,-230 655.1663,-230 655.1663,-266"/>
+<text text-anchor="middle" x="594" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">ForgotComponent </text>
+</g>
+<!-- LoginModule&#45;&gt;ForgotComponent  -->
+<g id="edge8" class="edge">
+<title>LoginModule&#45;&gt;ForgotComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M357.7353,-192C442.8305,-192 614.361,-192 614.361,-192 614.361,-192 614.361,-219.973 614.361,-219.973"/>
+<polygon fill="#000000" stroke="#000000" points="610.8611,-219.973 614.361,-229.973 617.8611,-219.973 610.8611,-219.973"/>
+</g>
+<!-- LoginComponent  -->
+<g id="node10" class="node">
+<title>LoginComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="515.2759,-266 396.7241,-266 396.7241,-230 515.2759,-230 515.2759,-266"/>
+<text text-anchor="middle" x="456" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginComponent </text>
+</g>
+<!-- LoginModule&#45;&gt;LoginComponent  -->
+<g id="edge9" class="edge">
+<title>LoginModule&#45;&gt;LoginComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M326.4988,-198.0225C326.4988,-215.3734 326.4988,-239 326.4988,-239 326.4988,-239 386.5557,-239 386.5557,-239"/>
+<polygon fill="#000000" stroke="#000000" points="386.5557,-242.5001 396.5557,-239 386.5557,-235.5001 386.5557,-242.5001"/>
+</g>
+<!-- RegisterComponent  -->
+<g id="node11" class="node">
+<title>RegisterComponent </title>
+<polygon fill="#fb8072" stroke="#000000" points="804.9855,-266 673.0145,-266 673.0145,-230 804.9855,-230 804.9855,-266"/>
+<text text-anchor="middle" x="739" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">RegisterComponent </text>
+</g>
+<!-- LoginModule&#45;&gt;RegisterComponent  -->
+<g id="edge10" class="edge">
+<title>LoginModule&#45;&gt;RegisterComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M357.8755,-186C473.1097,-186 760.9141,-186 760.9141,-186 760.9141,-186 760.9141,-219.7333 760.9141,-219.7333"/>
+<polygon fill="#000000" stroke="#000000" points="757.4142,-219.7333 760.9141,-229.7333 764.4142,-219.7333 757.4142,-219.7333"/>
+</g>
+<!-- PagesModule -->
+<g id="node4" class="node">
+<title>PagesModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="246.2064,-198 243.2064,-202 222.2064,-202 219.2064,-198 153.7936,-198 153.7936,-162 246.2064,-162 246.2064,-198"/>
+<text text-anchor="middle" x="200" y="-175.8" font-family="Times,serif" font-size="14.00" fill="#000000">PagesModule</text>
+</g>
+<!-- PagesModule&#45;&gt;AppModule -->
+<g id="edge3" class="edge">
+<title>PagesModule&#45;&gt;AppModule</title>
+<path fill="none" stroke="#000000" d="M179.0859,-198.2228C179.0859,-198.2228 179.0859,-219.7269 179.0859,-219.7269"/>
+<polygon fill="#000000" stroke="#000000" points="175.586,-219.7269 179.0859,-229.7269 182.586,-219.727 175.586,-219.7269"/>
+</g>
+<!-- PagesModule&#45;&gt;ForgotComponent  -->
+<g id="edge12" class="edge">
+<title>PagesModule&#45;&gt;ForgotComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M200,-198.1274C200,-208.7109 200,-220 200,-220 200,-220 573.639,-220 573.639,-220 573.639,-220 573.639,-220.9793 573.639,-220.9793"/>
+<polygon fill="#000000" stroke="#000000" points="570.1391,-219.793 573.639,-229.793 577.1391,-219.7931 570.1391,-219.793"/>
+</g>
+<!-- PagesModule&#45;&gt;LoginComponent  -->
+<g id="edge13" class="edge">
+<title>PagesModule&#45;&gt;LoginComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M246.2845,-180C253.9641,-180 259.4865,-180 259.4865,-180 259.4865,-180 259.4865,-248 259.4865,-248 259.4865,-248 386.773,-248 386.773,-248"/>
+<polygon fill="#000000" stroke="#000000" points="386.773,-251.5001 396.773,-248 386.7729,-244.5001 386.773,-251.5001"/>
+</g>
+<!-- PagesModule&#45;&gt;RegisterComponent  -->
+<g id="edge14" class="edge">
+<title>PagesModule&#45;&gt;RegisterComponent </title>
+<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M220.9141,-198.2015C220.9141,-204.028 220.9141,-209 220.9141,-209 220.9141,-209 717.0859,-209 717.0859,-209 717.0859,-209 717.0859,-219.8701 717.0859,-219.8701"/>
+<polygon fill="#000000" stroke="#000000" points="713.586,-219.8701 717.0859,-229.8701 720.586,-219.8701 713.586,-219.8701"/>
+</g>
+<!-- ForgotComponent -->
+<g id="node6" class="node">
+<title>ForgotComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="947.1667,-266 828.8333,-266 828.8333,-230 947.1667,-230 947.1667,-266"/>
+<text text-anchor="middle" x="888" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">ForgotComponent</text>
+</g>
+<!-- ForgotComponent&#45;&gt;LoginModule -->
+<g id="edge5" class="edge">
+<title>ForgotComponent&#45;&gt;LoginModule</title>
+<path fill="none" stroke="#000000" d="M888,-229.7772C888,-209.6348 888,-180 888,-180 888,-180 367.7296,-180 367.7296,-180"/>
+<polygon fill="#000000" stroke="#000000" points="367.7296,-176.5001 357.7296,-180 367.7295,-183.5001 367.7296,-176.5001"/>
+</g>
+<!-- LoginComponent -->
+<g id="node7" class="node">
+<title>LoginComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="1225.2758,-266 1110.7242,-266 1110.7242,-230 1225.2758,-230 1225.2758,-266"/>
+<text text-anchor="middle" x="1168" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">LoginComponent</text>
+</g>
+<!-- LoginComponent&#45;&gt;LoginModule -->
+<g id="edge6" class="edge">
+<title>LoginComponent&#45;&gt;LoginModule</title>
+<path fill="none" stroke="#000000" d="M1168,-229.8468C1168,-206.2434 1168,-168 1168,-168 1168,-168 367.6846,-168 367.6846,-168"/>
+<polygon fill="#000000" stroke="#000000" points="367.6847,-164.5001 357.6846,-168 367.6846,-171.5001 367.6847,-164.5001"/>
+</g>
+<!-- RegisterComponent -->
+<g id="node8" class="node">
+<title>RegisterComponent</title>
+<polygon fill="#ffffb3" stroke="#000000" points="1092.9846,-266 965.0154,-266 965.0154,-230 1092.9846,-230 1092.9846,-266"/>
+<text text-anchor="middle" x="1029" y="-243.8" font-family="Times,serif" font-size="14.00" fill="#000000">RegisterComponent</text>
+</g>
+<!-- RegisterComponent&#45;&gt;LoginModule -->
+<g id="edge7" class="edge">
+<title>RegisterComponent&#45;&gt;LoginModule</title>
+<path fill="none" stroke="#000000" d="M1029,-229.7079C1029,-207.7943 1029,-174 1029,-174 1029,-174 367.5568,-174 367.5568,-174"/>
+<polygon fill="#000000" stroke="#000000" points="367.5568,-170.5001 357.5568,-174 367.5567,-177.5001 367.5568,-170.5001"/>
+</g>
+<!-- SharedModule -->
+<g id="node12" class="node">
+<title>SharedModule</title>
+<polygon fill="#8dd3c7" stroke="#000000" points="249.4231,-122 246.4231,-126 225.4231,-126 222.4231,-122 150.5769,-122 150.5769,-86 249.4231,-86 249.4231,-122"/>
+<text text-anchor="middle" x="200" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">SharedModule</text>
+</g>
+<!-- SharedModule&#45;&gt;PagesModule -->
+<g id="edge11" class="edge">
+<title>SharedModule&#45;&gt;PagesModule</title>
+<path fill="none" stroke="#000000" d="M200,-122.0109C200,-122.0109 200,-151.855 200,-151.855"/>
+<polygon fill="#000000" stroke="#000000" points="196.5001,-151.8549 200,-161.855 203.5001,-151.855 196.5001,-151.8549"/>
+</g>
+</g>
+</svg>
+
+    </div>
+    <i id="fullscreen" class="icon ion-ios-resize module-graph-fullscreen-btn" aria-hidden="true"></i>
+    <div class="btn-group">
+        <button id="zoom-in" class="btn btn-default btn-sm">Zoom in</button>
+        <button id="reset" class="btn btn-default btn-sm">Reset</button>
+        <button id="zoom-out" class="btn btn-default btn-sm">Zoom out</button>
+    </div>
+</div>
+  
+<div class="container-fluid overview">
+    <div class="row">
+        <div class="col-sm-3">
+            <div class="card text-center">
+                <div class="card-block">
+                    <h4 class="card-title"><span class="icon ion-ios-archive"></span></h4>
+                    <p class="card-text">
+                        <a href="./modules.html">4 Modules</a>
+                    </p>
+                </div>
+            </div>
+        </div>
+        <div class="col-sm-3">
+            <div class="card text-center">
+                <div class="card-block">
+                    <h4 class="card-title"><span class="icon ion-md-cog"></span></h4>
+                    <p class="card-text">26 Components</p>
+                </div>
+            </div>
+        </div>
+        <div class="col-sm-3">
+            <div class="card text-center">
+                <div class="card-block">
+                    <h4 class="card-title"><span class="icon ion-md-code-working"></span></h4>
+                    <p class="card-text">1 Directive</p>
+                </div>
+            </div>
+        </div>
+        <div class="col-sm-3">
+            <div class="card text-center">
+                <div class="card-block">
+                    <h4 class="card-title"><span class="icon ion-md-arrow-round-down"></span></h4>
+                    <p class="card-text">11 Injectables</p>
+                </div>
+            </div>
+        </div>
+        <div class="col-sm-3">
+            <div class="card text-center">
+                <div class="card-block">
+                    <h4 class="card-title"><span class="icon ion-md-add"></span></h4>
+                    <p class="card-text">6 Pipes</p>
+                </div>
+            </div>
+        </div>
+        <div class="col-sm-3">
+            <div class="card text-center">
+                <div class="card-block">
+                    <h4 class="card-title"><span class="icon ion-ios-paper"></span></h4>
+                    <p class="card-text">1 Class</p>
+                </div>
+            </div>
+        </div>
+        <div class="col-sm-3">
+            <div class="card text-center">
+                <div class="card-block">
+                    <h4 class="card-title"><span class="icon ion-md-information-circle-outline"></span></h4>
+                    <p class="card-text">10 Interfaces</p>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="js/libs/svg-pan-zoom.min.js"></script>
+<script src="js/svg-pan-zoom.controls.js"></script> 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 0;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'overview';
+            var COMPODOC_CURRENT_PAGE_URL = 'overview.html';
+       </script>
+
+       <script src="./js/libs/custom-elements.min.js"></script>
+       <script src="./js/libs/lit-html.js"></script>
+       <script src="./js/menu-wc.js"></script>
+
+       <script src="./js/libs/bootstrap-native.js"></script>
+
+       <script src="./js/libs/es6-shim.min.js"></script>
+       <script src="./js/libs/EventDispatcher.js"></script>
+       <script src="./js/libs/promise.min.js"></script>
+       <script src="./js/libs/zepto.min.js"></script>
+
+       <script src="./js/compodoc.js"></script>
+
+       <script src="./js/tabs.js"></script>
+       <script src="./js/menu.js"></script>
+       <script src="./js/libs/clipboard.min.js"></script>
+       <script src="./js/libs/prism.js"></script>
+       <script src="./js/sourceCode.js"></script>
+          <script src="./js/search/search.js"></script>
+          <script src="./js/search/lunr.min.js"></script>
+          <script src="./js/search/search-lunr.js"></script>
+          <script src="./js/search/search_index.js"></script>
+       <script src="./js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/pipes/CapitalizePipe.html b/src/docs/pipes/CapitalizePipe.html
new file mode 100644
index 0000000..bedf2aa
--- /dev/null
+++ b/src/docs/pipes/CapitalizePipe.html
@@ -0,0 +1,236 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content pipe">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Pipes</li>
+  <li>CapitalizePipe</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/pipes/capitalize.pipe.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3>Metadata</h3>
+            <table class="table table-sm table-hover">
+                <tbody>
+                    <tr>
+                        <td class="col-md-3">Name</td>
+                        <td class="col-md-9">capitalize</td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+            <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="transform"></a>
+                        <span class="name">
+                            <b>
+                            transform
+                            </b>
+                            <a href="#transform"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>transform(input: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/pipes/capitalize.pipe.ts:8</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>input</td>
+                                                        <td>
+                                                                    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Pipe, PipeTransform } from &#x27;@angular/core&#x27;;
+
+@Pipe({
+  name: &#x27;capitalize&#x27;
+})
+export class CapitalizePipe implements PipeTransform {
+
+  transform(input: any): string {
+    return !!input ? input
+          .charAt(0)
+          .toUpperCase() + input.substr(1).toLowerCase() : &#x27;&#x27;;
+  }
+
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'pipe';
+            var COMPODOC_CURRENT_PAGE_URL = 'CapitalizePipe.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/pipes/GoogleMapsUrlPipe.html b/src/docs/pipes/GoogleMapsUrlPipe.html
new file mode 100644
index 0000000..87d09a1
--- /dev/null
+++ b/src/docs/pipes/GoogleMapsUrlPipe.html
@@ -0,0 +1,253 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content pipe">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Pipes</li>
+  <li>GoogleMapsUrlPipe</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/pipes/google-maps-url.pipe.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3>Metadata</h3>
+            <table class="table table-sm table-hover">
+                <tbody>
+                    <tr>
+                        <td class="col-md-3">Name</td>
+                        <td class="col-md-9">googleMapsUrl</td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+            <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="transform"></a>
+                        <span class="name">
+                            <b>
+                            transform
+                            </b>
+                            <a href="#transform"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>transform(location: <a href="../interfaces/Location.html">Location</a>, zoom: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/pipes/google-maps-url.pipe.ts:8</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                                    <td>Default value</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>location</td>
+                                                        <td>
+                                                                    <code><a href="../interfaces/Location.html" target="_self" >Location</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                        </td>
+
+                                                </tr>
+                                                <tr>
+                                                        <td>zoom</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                                <code>10</code>
+                                                        </td>
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Pipe, PipeTransform } from &#x27;@angular/core&#x27;;
+import { Location } from &#x27;../interfaces/location.interface&#x27;;
+
+@Pipe({
+  name: &#x27;googleMapsUrl&#x27;
+})
+export class GoogleMapsUrlPipe implements PipeTransform {
+  transform(location: Location, zoom: number &#x3D; 10): string {
+    const locate &#x3D; &#x60;${location.lat},${location.long}&#x60;;
+    return &#x60;https://www.google.com/maps/@${locate},${zoom}z&#x60;;
+  }
+
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'pipe';
+            var COMPODOC_CURRENT_PAGE_URL = 'GoogleMapsUrlPipe.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/pipes/GoogleStaticMapUrlPipe.html b/src/docs/pipes/GoogleStaticMapUrlPipe.html
new file mode 100644
index 0000000..927cc87
--- /dev/null
+++ b/src/docs/pipes/GoogleStaticMapUrlPipe.html
@@ -0,0 +1,683 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content pipe">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Pipes</li>
+  <li>GoogleStaticMapUrlPipe</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/pipes/google-static-map-url.pipe.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3>Metadata</h3>
+            <table class="table table-sm table-hover">
+                <tbody>
+                    <tr>
+                        <td class="col-md-3">Name</td>
+                        <td class="col-md-9">googleStaticMapUrl</td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+            <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="getKey"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Private</span>
+                            getKey
+                            </b>
+                            <a href="#getKey"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                            <span class="modifier-icon icon ion-ios-reset"></span>
+                        <code>getKey()</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="36" class="link-to-prism">src/app/pipes/google-static-map-url.pipe.ts:36</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                            </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="getMapType"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Private</span>
+                            getMapType
+                            </b>
+                            <a href="#getMapType"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                            <span class="modifier-icon icon ion-ios-reset"></span>
+                        <code>getMapType(type: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="44" class="link-to-prism">src/app/pipes/google-static-map-url.pipe.ts:44</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>type</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="getSize"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Private</span>
+                            getSize
+                            </b>
+                            <a href="#getSize"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                            <span class="modifier-icon icon ion-ios-reset"></span>
+                        <code>getSize(width: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>, height: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="40" class="link-to-prism">src/app/pipes/google-static-map-url.pipe.ts:40</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>width</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                                <tr>
+                                                        <td>height</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="getZoom"></a>
+                        <span class="name">
+                            <b>
+                                <span class="modifier">Private</span>
+                            getZoom
+                            </b>
+                            <a href="#getZoom"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                            <span class="modifier-icon icon ion-ios-reset"></span>
+                        <code>getZoom(zoom: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="58" class="link-to-prism">src/app/pipes/google-static-map-url.pipe.ts:58</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>zoom</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="transform"></a>
+                        <span class="name">
+                            <b>
+                            transform
+                            </b>
+                            <a href="#transform"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>transform(location: <a href="../interfaces/Location.html">Location</a>, type: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, markerColor: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, label: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, width: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>, height: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>, zoom: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="16" class="link-to-prism">src/app/pipes/google-static-map-url.pipe.ts:16</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                                    <td>Default value</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>location</td>
+                                                        <td>
+                                                                    <code><a href="../interfaces/Location.html" target="_self" >Location</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                        </td>
+
+                                                </tr>
+                                                <tr>
+                                                        <td>type</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                                <code>&#x60;&#x60;</code>
+                                                        </td>
+
+                                                </tr>
+                                                <tr>
+                                                        <td>markerColor</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                                <code>&#x60;red&#x60;</code>
+                                                        </td>
+
+                                                </tr>
+                                                <tr>
+                                                        <td>label</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                                <code>&#x60;C&#x60;</code>
+                                                        </td>
+
+                                                </tr>
+                                                <tr>
+                                                        <td>width</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                                <code>1000</code>
+                                                        </td>
+
+                                                </tr>
+                                                <tr>
+                                                        <td>height</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                                <code>300</code>
+                                                        </td>
+
+                                                </tr>
+                                                <tr>
+                                                        <td>zoom</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+                                                        <td>
+                                                                <code>-1</code>
+                                                        </td>
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+            <section>
+    
+        <h3 id="inputs">
+            Properties
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="STATICMAP"></a>
+                        <span class="name">
+                            <b>
+                            STATICMAP
+                            </b>
+                            <a href="#STATICMAP"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+                        <code>STATICMAP:     <code></code>
+</code>
+                    </td>
+                </tr>
+                    <tr>
+                        <td class="col-md-4">
+                            <i>Default value : </i><code>&#x60;https://maps.googleapis.com/maps/api/staticmap?&#x60;</code>
+                        </td>
+                    </tr>
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="12" class="link-to-prism">src/app/pipes/google-static-map-url.pipe.ts:12</a></div>
+                            </td>
+                        </tr>
+
+
+            </tbody>
+        </table>
+</section>
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Pipe, PipeTransform } from &#x27;@angular/core&#x27;;
+import { Location } from &#x27;../interfaces/location.interface&#x27;;
+import { GOOGLEMAPS } from &#x27;../../environments/api-keys&#x27;;
+
+@Pipe({
+  name: &#x60;googleStaticMapUrl&#x60;
+})
+export class GoogleStaticMapUrlPipe implements PipeTransform {
+  // Documentation:
+  // https://developers.google.com/maps/documentation/maps-static/dev-guide
+
+  STATICMAP &#x3D; &#x60;https://maps.googleapis.com/maps/api/staticmap?&#x60;;
+
+  // value | googleStaticMapUrl:&lt;location: Location&gt;:&lt;type(r, t, h, s)&gt;&lt;markerColor&gt;&lt;label&gt;
+
+  transform(
+    location: Location,
+    type: string &#x3D; &#x60;&#x60;,
+    markerColor: string &#x3D; &#x60;red&#x60;,
+    label: string &#x3D; &#x60;C&#x60;,
+    width: number &#x3D; 1000,
+    height: number &#x3D; 300,
+    zoom: number &#x3D; -1
+  ): string {
+    const locate &#x3D; &#x60;${location.lat},${location.long}&#x60;;
+    const markers &#x3D; &#x60;&amp;markers&#x3D;color:${markerColor}|label:${label}|${locate}&#x60;;
+    const size &#x3D; this.getSize(width, height);
+    const mapType &#x3D; this.getMapType(type);
+    const zoomValue &#x3D; this.getZoom(zoom);
+    const key &#x3D; this.getKey();
+    return &#x60;${
+      this.STATICMAP
+    }center&#x3D;${locate}${zoomValue}${size}${mapType}${markers}${key}&#x60;;
+  }
+
+  private getKey(): string {
+    return &#x60;&amp;key&#x3D;${GOOGLEMAPS}&#x60;;
+  }
+
+  private getSize(width: number, height: number): string {
+    return &#x60;&amp;size&#x3D;${width}x${height}&#x60;;
+  }
+
+  private getMapType(type: string): string {
+    const mapType &#x3D; &#x60;&amp;maptype&#x3D;&#x60;;
+    // roadmap, satellite, hybrid, and terrain
+    if (type &#x3D;&#x3D;&#x3D; &#x60;r&#x60;) {
+      return &#x60;${mapType}roadmap&#x60;;
+    } else if (type &#x3D;&#x3D;&#x3D; &#x60;t&#x60;) {
+      return &#x60;${mapType}terrain&#x60;;
+    } else if (type &#x3D;&#x3D;&#x3D; &#x60;h&#x60;) {
+      return &#x60;${mapType}hybrid&#x60;;
+    } else {
+      return &#x60;${mapType}satellite&#x60;;
+    }
+  }
+
+  private getZoom(zoom: number) {
+    if (zoom &lt; 5 || zoom &gt; 16) {
+      zoom &#x3D; 13;
+    }
+    return &#x60;&amp;zoom&#x3D;${zoom}&#x60;;
+  }
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'pipe';
+            var COMPODOC_CURRENT_PAGE_URL = 'GoogleStaticMapUrlPipe.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/pipes/LocationTextPipe.html b/src/docs/pipes/LocationTextPipe.html
new file mode 100644
index 0000000..5872584
--- /dev/null
+++ b/src/docs/pipes/LocationTextPipe.html
@@ -0,0 +1,235 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content pipe">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Pipes</li>
+  <li>LocationTextPipe</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/pipes/location-text.pipe.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3>Metadata</h3>
+            <table class="table table-sm table-hover">
+                <tbody>
+                    <tr>
+                        <td class="col-md-3">Name</td>
+                        <td class="col-md-9">locationText</td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+            <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="transform"></a>
+                        <span class="name">
+                            <b>
+                            transform
+                            </b>
+                            <a href="#transform"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>transform(location: <a href="../interfaces/Location.html">Location</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/pipes/location-text.pipe.ts:9</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>location</td>
+                                                        <td>
+                                                                    <code><a href="../interfaces/Location.html" target="_self" >Location</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Pipe, PipeTransform } from &#x27;@angular/core&#x27;;
+import { Location } from &#x27;../interfaces/location.interface&#x27;;
+
+@Pipe({
+  name: &#x27;locationText&#x27;
+})
+export class LocationTextPipe implements PipeTransform {
+
+  transform(location: Location): string {
+    return &#x60;${location.locality} (${location.country})&#x60;;
+  }
+
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'pipe';
+            var COMPODOC_CURRENT_PAGE_URL = 'LocationTextPipe.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/pipes/RoundPipe.html b/src/docs/pipes/RoundPipe.html
new file mode 100644
index 0000000..84990aa
--- /dev/null
+++ b/src/docs/pipes/RoundPipe.html
@@ -0,0 +1,245 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content pipe">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Pipes</li>
+  <li>RoundPipe</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/pipes/round.pipe.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3>Metadata</h3>
+            <table class="table table-sm table-hover">
+                <tbody>
+                    <tr>
+                        <td class="col-md-3">Name</td>
+                        <td class="col-md-9">round</td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+            <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="transform"></a>
+                        <span class="name">
+                            <b>
+                            transform
+                            </b>
+                            <a href="#transform"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>transform(value: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>, precision: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="7" class="link-to-prism">src/app/pipes/round.pipe.ts:7</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>value</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                                <tr>
+                                                        <td>precision</td>
+                                                        <td>
+                                                                    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Pipe, PipeTransform } from &#x27;@angular/core&#x27;;
+
+@Pipe({
+  name: &#x27;round&#x27;
+})
+export class RoundPipe implements PipeTransform {
+  transform(value: number, precision: number): number {
+    const multiplier &#x3D; Math.pow(10, precision || 0);
+    return Math.round(value * multiplier) / multiplier;
+  }
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'pipe';
+            var COMPODOC_CURRENT_PAGE_URL = 'RoundPipe.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/pipes/WikipediaUrlMobilePipe.html b/src/docs/pipes/WikipediaUrlMobilePipe.html
new file mode 100644
index 0000000..fa22a76
--- /dev/null
+++ b/src/docs/pipes/WikipediaUrlMobilePipe.html
@@ -0,0 +1,234 @@
+<!doctype html>
+<html class="no-js" lang="">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="x-ua-compatible" content="ie=edge">
+        <title>starter-bootstrap-admin-angular6 documentation</title>
+        <meta name="description" content="">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+
+        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
+	      <link rel="stylesheet" href="../styles/style.css">
+    </head>
+    <body>
+
+        <div class="navbar navbar-default navbar-fixed-top visible-xs">
+            <a href="../" class="navbar-brand">starter-bootstrap-admin-angular6 documentation</a>
+            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
+        </div>
+
+        <div class="xs-menu menu" id="mobile-menu">
+                <div id="book-search-input" role="search">
+    <input type="text" placeholder="Type to search">
+</div>
+            <compodoc-menu></compodoc-menu>
+        </div>
+
+        <div class="container-fluid main">
+           <div class="row main">
+               <div class="hidden-xs menu">
+                   <compodoc-menu mode="normal"></compodoc-menu>
+               </div>
+               <!-- START CONTENT -->
+               <div class="content pipe">
+                   <div class="content-data">
+
+
+
+
+
+
+
+
+
+
+<ol class="breadcrumb">
+  <li>Pipes</li>
+  <li>WikipediaUrlMobilePipe</li>
+</ol>
+
+<ul class="nav nav-tabs" role="tablist">
+        <li class="active">
+            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
+        </li>
+        <li >
+            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
+        </li>
+</ul>
+
+<div class="tab-content">
+    <div class="tab-pane fade active in" id="c-info">
+
+        <p class="comment">
+            <h3>File</h3>
+        </p>
+        <p class="comment">
+            <code>src/app/pipes/wikipedia-url-mobile.pipe.ts</code>
+        </p>
+
+
+
+        <section>
+            <h3>Metadata</h3>
+            <table class="table table-sm table-hover">
+                <tbody>
+                    <tr>
+                        <td class="col-md-3">Name</td>
+                        <td class="col-md-9">wikipediaUrlMobile</td>
+                    </tr>
+                </tbody>
+            </table>
+        </section>
+
+            <section>
+    
+        <h3 id="methods">
+            Methods
+        </h3>
+        <table class="table table-sm table-bordered">
+            <tbody>
+                <tr>
+                    <td class="col-md-4">
+                        <a name="transform"></a>
+                        <span class="name">
+                            <b>
+                            transform
+                            </b>
+                            <a href="#transform"><span class="icon ion-ios-link"></span></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="col-md-4">
+<code>transform(value: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
+                    </td>
+                </tr>
+
+
+                        <tr>
+                            <td class="col-md-4">
+                                    <div class="io-line">Defined in <a href="" data-line="8" class="link-to-prism">src/app/pipes/wikipedia-url-mobile.pipe.ts:8</a></div>
+                            </td>
+                        </tr>
+
+
+                <tr>
+                    <td class="col-md-4">
+
+                            <div class="io-description">
+                                    <b>Parameters :</b>
+                                    <table class="params">
+                                        <thead>
+                                            <tr>
+                                                <td>Name</td>
+                                                    <td>Type</td>
+                                                <td>Optional</td>
+                                            </tr>
+                                        </thead>
+                                        <tbody>
+                                                <tr>
+                                                        <td>value</td>
+                                                        <td>
+                                                                    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+                                                        </td>
+                                                    
+                                                    <td>
+                                                            No
+                                                    </td>
+                                                    
+
+                                                </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div>
+                            </div>
+                            <div class="io-description">
+                                <b>Returns : </b>    <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
+
+                            </div>
+                                <div class="io-description">
+                                    
+                                </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+</section>
+
+
+    </div>
+
+
+    <div class="tab-pane fade  tab-source-code" id="c-source">
+        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Pipe, PipeTransform } from &#x27;@angular/core&#x27;;
+
+@Pipe({
+  name: &#x27;wikipediaUrlMobile&#x27;
+})
+export class WikipediaUrlMobilePipe implements PipeTransform {
+
+  transform(value: any): any {
+    return value.replace(&#x27;wikipedia&#x27;, &#x27;m.wikipedia&#x27;);
+  }
+
+}
+</code></pre>
+    </div>
+
+</div>
+
+
+
+
+
+
+
+
+                   </div><div class="search-results">
+    <div class="has-results">
+        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
+        <ul class="search-results-list"></ul>
+    </div>
+    <div class="no-results">
+        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+    </div>
+</div>
+</div>
+               <!-- END CONTENT -->
+           </div>
+       </div>
+
+       <script>
+            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
+            var COMPODOC_CURRENT_PAGE_CONTEXT = 'pipe';
+            var COMPODOC_CURRENT_PAGE_URL = 'WikipediaUrlMobilePipe.html';
+       </script>
+
+       <script src="../js/libs/custom-elements.min.js"></script>
+       <script src="../js/libs/lit-html.js"></script>
+       <script src="../js/menu-wc.js"></script>
+
+       <script src="../js/libs/bootstrap-native.js"></script>
+
+       <script src="../js/libs/es6-shim.min.js"></script>
+       <script src="../js/libs/EventDispatcher.js"></script>
+       <script src="../js/libs/promise.min.js"></script>
+       <script src="../js/libs/zepto.min.js"></script>
+
+       <script src="../js/compodoc.js"></script>
+
+       <script src="../js/tabs.js"></script>
+       <script src="../js/menu.js"></script>
+       <script src="../js/libs/clipboard.min.js"></script>
+       <script src="../js/libs/prism.js"></script>
+       <script src="../js/sourceCode.js"></script>
+          <script src="../js/search/search.js"></script>
+          <script src="../js/search/lunr.min.js"></script>
+          <script src="../js/search/search-lunr.js"></script>
+          <script src="../js/search/search_index.js"></script>
+       <script src="../js/lazy-load-graphs.js"></script>
+
+
+    </body>
+</html>
diff --git a/src/docs/styles/bootstrap-card.css b/src/docs/styles/bootstrap-card.css
new file mode 100644
index 0000000..0869c68
--- /dev/null
+++ b/src/docs/styles/bootstrap-card.css
@@ -0,0 +1,219 @@
+.card {
+  position: relative;
+  display: block;
+  margin-bottom: 20px;
+  background-color: #fff;
+  border: 1px solid #ddd;
+  border-radius: 4px;
+}
+
+.card-block {
+  padding: 15px;
+}
+.card-block:before, .card-block:after {
+  content: " ";
+  display: table;
+}
+.card-block:after {
+  clear: both;
+}
+
+.card-title {
+  margin: 5px;
+  margin-bottom: 2px;
+  text-align: center;
+}
+
+.card-subtitle {
+  margin-top: -10px;
+  margin-bottom: 0;
+}
+
+.card-text:last-child {
+  margin-bottom: 0;
+  margin-top: 10px;
+}
+
+.card-link:hover {
+  text-decoration: none;
+}
+.card-link + .card-link {
+  margin-left: 15px;
+}
+
+.card > .list-group:first-child .list-group-item:first-child {
+  border-top-right-radius: 4px;
+  border-top-left-radius: 4px;
+}
+.card > .list-group:last-child .list-group-item:last-child {
+  border-bottom-right-radius: 4px;
+  border-bottom-left-radius: 4px;
+}
+
+.card-header {
+  padding: 10px 15px;
+  background-color: #f5f5f5;
+  border-bottom: 1px solid #ddd;
+}
+.card-header:before, .card-header:after {
+  content: " ";
+  display: table;
+}
+.card-header:after {
+  clear: both;
+}
+.card-header:first-child {
+  border-radius: 4px 4px 0 0;
+}
+
+.card-footer {
+  padding: 10px 15px;
+  background-color: #f5f5f5;
+  border-top: 1px solid #ddd;
+}
+.card-footer:before, .card-footer:after {
+  content: " ";
+  display: table;
+}
+.card-footer:after {
+  clear: both;
+}
+.card-footer:last-child {
+  border-radius: 0 0 4px 4px;
+}
+
+.card-header-tabs {
+  margin-right: -5px;
+  margin-bottom: -10px;
+  margin-left: -5px;
+  border-bottom: 0;
+}
+
+.card-header-pills {
+  margin-right: -5px;
+  margin-left: -5px;
+}
+
+.card-primary {
+  background-color: #337ab7;
+  border-color: #337ab7;
+}
+.card-primary .card-header,
+.card-primary .card-footer {
+  background-color: transparent;
+}
+
+.card-success {
+  background-color: #5cb85c;
+  border-color: #5cb85c;
+}
+.card-success .card-header,
+.card-success .card-footer {
+  background-color: transparent;
+}
+
+.card-info {
+  background-color: #5bc0de;
+  border-color: #5bc0de;
+}
+.card-info .card-header,
+.card-info .card-footer {
+  background-color: transparent;
+}
+
+.card-warning {
+  background-color: #f0ad4e;
+  border-color: #f0ad4e;
+}
+.card-warning .card-header,
+.card-warning .card-footer {
+  background-color: transparent;
+}
+
+.card-danger {
+  background-color: #d9534f;
+  border-color: #d9534f;
+}
+.card-danger .card-header,
+.card-danger .card-footer {
+  background-color: transparent;
+}
+
+.card-outline-primary {
+  background-color: transparent;
+  border-color: #337ab7;
+}
+
+.card-outline-secondary {
+  background-color: transparent;
+  border-color: #ccc;
+}
+
+.card-outline-info {
+  background-color: transparent;
+  border-color: #5bc0de;
+}
+
+.card-outline-success {
+  background-color: transparent;
+  border-color: #5cb85c;
+}
+
+.card-outline-warning {
+  background-color: transparent;
+  border-color: #f0ad4e;
+}
+
+.card-outline-danger {
+  background-color: transparent;
+  border-color: #d9534f;
+}
+
+.card-inverse .card-header,
+.card-inverse .card-footer {
+  border-color: rgba(255, 255, 255, 0.2);
+}
+.card-inverse .card-header,
+.card-inverse .card-footer,
+.card-inverse .card-title,
+.card-inverse .card-blockquote {
+  color: #fff;
+}
+.card-inverse .card-link,
+.card-inverse .card-text,
+.card-inverse .card-subtitle,
+.card-inverse .card-blockquote .blockquote-footer {
+  color: rgba(255, 255, 255, 0.65);
+}
+.card-inverse .card-link:hover, .card-inverse .card-link:focus {
+  color: #fff;
+}
+
+.card-blockquote {
+  padding: 0;
+  margin-bottom: 0;
+  border-left: 0;
+}
+
+.card-img {
+  border-radius: .25em;
+}
+
+.card-img-overlay {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  padding: 15px;
+}
+
+.card-img-top {
+  border-top-right-radius: 4px;
+  border-top-left-radius: 4px;
+}
+
+.card-img-bottom {
+  border-bottom-right-radius: 4px;
+  border-bottom-left-radius: 4px;
+}
diff --git a/src/docs/styles/bootstrap.min.css b/src/docs/styles/bootstrap.min.css
new file mode 100644
index 0000000..a9558eb
--- /dev/null
+++ b/src/docs/styles/bootstrap.min.css
@@ -0,0 +1,5 @@
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
\ No newline at end of file
diff --git a/src/docs/styles/compodoc.css b/src/docs/styles/compodoc.css
new file mode 100644
index 0000000..9e46f79
--- /dev/null
+++ b/src/docs/styles/compodoc.css
@@ -0,0 +1,974 @@
+body {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    font-family: 'Roboto', sans-serif;
+}
+
+/* roboto-300 - latin */
+
+@font-face {
+    font-family: 'Roboto';
+    font-style: normal;
+    font-weight: 300;
+    src: url('../fonts/roboto-v15-latin-300.eot');
+    /* IE9 Compat Modes */
+    src: local('Roboto Light'), local('Roboto-Light'), url('../fonts/roboto-v15-latin-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
+    url('../fonts/roboto-v15-latin-300.woff2') format('woff2'), /* Super Modern Browsers */
+    url('../fonts/roboto-v15-latin-300.woff') format('woff'), /* Modern Browsers */
+    url('../fonts/roboto-v15-latin-300.ttf') format('truetype'), /* Safari, Android, iOS */
+    url('../fonts/roboto-v15-latin-300.svg#Roboto') format('svg');
+    /* Legacy iOS */
+}
+
+/* roboto-regular - latin */
+
+@font-face {
+    font-family: 'Roboto';
+    font-style: normal;
+    font-weight: 400;
+    src: url('../fonts/roboto-v15-latin-regular.eot');
+    /* IE9 Compat Modes */
+    src: local('Roboto'), local('Roboto-Regular'), url('../fonts/roboto-v15-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
+    url('../fonts/roboto-v15-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
+    url('../fonts/roboto-v15-latin-regular.woff') format('woff'), /* Modern Browsers */
+    url('../fonts/roboto-v15-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
+    url('../fonts/roboto-v15-latin-regular.svg#Roboto') format('svg');
+    /* Legacy iOS */
+}
+
+/* roboto-700 - latin */
+
+@font-face {
+    font-family: 'Roboto';
+    font-style: normal;
+    font-weight: 700;
+    src: url('../fonts/roboto-v15-latin-700.eot');
+    /* IE9 Compat Modes */
+    src: local('Roboto Bold'), local('Roboto-Bold'), url('../fonts/roboto-v15-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
+    url('../fonts/roboto-v15-latin-700.woff2') format('woff2'), /* Super Modern Browsers */
+    url('../fonts/roboto-v15-latin-700.woff') format('woff'), /* Modern Browsers */
+    url('../fonts/roboto-v15-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */
+    url('../fonts/roboto-v15-latin-700.svg#Roboto') format('svg');
+    /* Legacy iOS */
+}
+
+h1 {
+    font-size: 26px;
+}
+
+h2 {
+    font-size: 22px;
+}
+
+h3 {
+    font-size: 20px;
+    font-weight: bold;
+}
+
+h4,
+h5 {
+    font-size: 18px;
+}
+
+h6 {
+    font-size: 16px;
+}
+
+a[href] {
+    cursor: pointer;
+}
+
+/**
+ * Mobile navbar
+ */
+
+.navbar {
+    min-height: 50px;
+}
+
+.navbar-brand {
+    height: 50px;
+    font-size: 14px;
+    line-height: 20px;
+    padding: 15px;
+}
+
+.navbar-static-top {
+    margin-bottom: 0;
+    height: 50px;
+}
+
+/**
+ * Main container
+ */
+
+.container-fluid {
+    overflow-y: hidden;
+    overflow-x: hidden;
+}
+
+.container-fluid.main {
+    height: 100%;
+    padding: 0;
+}
+
+.container-fluid.overview {
+    margin-top: 50px;
+}
+
+.container-fluid.modules,
+.container-fluid.components,
+.container-fluid.directives,
+.container-fluid.classes,
+.container-fluid.injectables,
+.container-fluid.pipes,
+.content.routes table {
+    margin-top: 25px;
+}
+
+.container-fluid.modules {
+    overflow-y: scroll;
+}
+
+.container-fluid.module {
+    padding: 0;
+    margin-top: 0;
+}
+
+.container-fluid.module h3 a {
+    margin-left: 10px;
+    color: #333;
+}
+
+.row.main {
+    height: 100%;
+    margin: 0;
+}
+
+/**
+ * Copyright
+ */
+
+.copyright {
+    margin: 0;
+    padding: 15px;
+    text-align: center;
+    display: flex;
+    flex-direction: column;
+    display: -webkit-flex;
+    -webkit-flex-direction: column;
+    align-items: center;
+    -webkit-align-items: center;
+    z-index: 1;
+}
+
+.copyright img {
+    width: 80px;
+    margin-top: 10px;
+}
+
+.copyright a {
+    color: #009dff;
+    text-decoration: underline;
+}
+
+/**
+ * Content
+ */
+
+.content {
+    height: 100%;
+    overflow-y: auto;
+    -webkit-overflow-scrolling: touch;
+    width: calc(100% - 320px);
+    position: absolute;
+    top: 0;
+    left: 320px;
+    padding: 15px 30px;
+}
+
+.content>h1:first-of-type {
+    margin-top: 15px
+}
+
+.content>h3:first-of-type {
+    margin-top: 5px;
+}
+
+.content.readme h1:first-of-type {
+    margin-top: 0;
+}
+
+.content table {
+    margin-top: 20px;
+}
+
+.content-data {
+    display: flex;
+    flex-direction: column;
+    height: 100%;
+}
+
+.content-data .tab-content {
+    flex: 1;
+}
+
+.content-data .tab-pane {
+    height: 100%;
+}
+
+.content-data .exampleContainer {
+    height: 100%;
+    width: 100%;
+}
+
+/**
+ * Icons
+ */
+
+.glyphicon,
+.icon {
+    margin-right: 10px;
+}
+
+/**
+ * Menu
+ */
+
+#book-search-input {
+    padding: 6px;
+    background: 0 0;
+    transition: top .5s ease;
+    background: #fff;
+    border-bottom: 1px solid rgba(0, 0, 0, .07);
+    border-top: 1px solid rgba(0, 0, 0, .07);
+    margin-bottom: 5px;
+    margin-top: -1px
+}
+
+#book-search-input input,
+#book-search-input input:focus,
+#book-search-input input:hover {
+    width: 100%;
+    background: 0 0;
+    border: 1px solid transparent;
+    box-shadow: none;
+    outline: 0;
+    line-height: 22px;
+    padding: 7px 7px;
+    color: inherit
+}
+
+.panel-body {
+    padding: 0px;
+}
+
+.panel-group .panel-heading+.panel-collapse>.list-group,
+.panel-group .panel-heading+.panel-collapse>.panel-body {
+    border-top: 0;
+}
+
+.panel-body table tr td {
+    padding-left: 15px
+}
+
+.panel-body .table {
+    margin-bottom: 0px;
+}
+
+.panel-group .panel:first-child {
+    border-top: 0;
+}
+
+.menu {
+    background: #fafafa;
+    border-right: 1px solid #e7e7e7;
+    height: 100%;
+    padding: 0;
+    width: 320px;
+    overflow-y: auto;
+    -webkit-overflow-scrolling: touch;
+}
+
+.menu ul.list {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+
+.menu ul.list li a {
+    display: block;
+    padding: 10px 15px;
+    border-bottom: none;
+    color: #364149;
+    background: 0 0;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    white-space: nowrap;
+    position: relative
+}
+
+.menu ul.list li a.active {
+    color: #008cff;
+}
+
+.menu ul.list li.divider {
+    height: 1px;
+    margin: 7px 0;
+    overflow: hidden;
+    background: rgba(0, 0, 0, .07)
+}
+
+.menu ul.list li.chapter ul.links {
+    padding-left: 20px;
+}
+
+.menu ul.list li.for-chapter2 {
+    padding-left: 20px;
+}
+
+.menu ul.list li.for-chapter3 {
+    padding-left: 40px;
+}
+
+.menu ul.list li.for-chapter4 {
+    padding-left: 60px;
+}
+
+.menu ul.list li.for-chapter5 {
+    padding-left: 80px;
+}
+
+.menu ul.list li.chapter .simple {
+    padding: 10px 15px;
+    position: relative;
+}
+
+.menu ul.list li.chapter .inner .simple {
+    padding-left: 35px;
+}
+
+.menu ul.list li.chapter .inner ul.links {
+    padding-left: 40px;
+}
+
+.menu .panel-group {
+    width: 100%;
+    height: 100%;
+    overflow-y: auto;
+}
+
+.menu .panel-default {
+    border-right: none;
+    border-left: none;
+    border-bottom: none;
+}
+
+.menu .panel-group .panel-heading+.panel-collapse>.panel-body {
+    border-top: none;
+    overflow-y: auto;
+    max-height: 350px;
+}
+
+.menu .panel-default:last-of-type {
+    border-bottom: 1px solid #ddd;
+}
+
+.panel-group .panel+.panel {
+    margin-top: 0;
+}
+
+.panel-group .panel {
+    z-index: 2;
+    position: relative;
+    border-radius: 0;
+    box-shadow: none;
+    border-left: 0;
+    border-right: 0;
+}
+
+.menu a {
+    color: #3c3c3c;
+}
+
+.xs-menu ul.list li:nth-child(2) {
+    margin: 0;
+    background: none;
+}
+
+.menu ul.list li:nth-child(2) {
+    margin: 0;
+    background: none;
+}
+
+.menu .title {
+    padding: 8px 0;
+}
+
+.menu-toggler {
+    cursor: pointer;
+}
+
+.menu-toggler .ion-ios-arrow-down,
+.menu-toggler .ion-ios-arrow-up {
+    cursor: pointer;
+    padding: 5px 10px;
+    font-size: 16px;
+    position: absolute;
+    right: 0;
+    top: 7px;
+}
+
+.overview .card-title .icon {
+    font-size: 50px;
+}
+
+.overview .card-text a {
+    text-decoration: underline;
+    color: black;
+}
+
+.overview .col-sm-3 {
+    width: 200px;
+}
+
+.breadcrumb {
+    background: none;
+    padding-left: 0 !important;
+    margin-bottom: 10px;
+    font-size: 24px;
+    padding-top: 0;
+}
+
+.breadcrumb a {
+    text-decoration: underline;
+    color: #333;
+}
+
+.comment {
+    margin: 15px 0;
+}
+
+.io-description {
+    margin: 10px 0;
+}
+
+.io-file {
+    margin: 20px 0;
+}
+
+.navbar .btn-menu {
+    position: absolute;
+    right: 0;
+    margin: 10px;
+}
+
+.content ul.nav {
+    padding-left: 0;
+}
+
+.xs-menu {
+    height: calc(100% - 50px);
+    display: none;
+    width: 100%;
+    overflow-y: scroll;
+    z-index: 1;
+    top: 50px;
+    position: absolute;
+}
+
+.xs-menu .copyright {
+    margin-top: 20px;
+    position: relative;
+}
+
+.tab-source-code {
+    padding: 10px 0;
+}
+
+pre {
+    padding: 12px 12px;
+    border: none;
+    background: #23241f;
+}
+
+code {
+    background: none;
+    padding: 2px 0;
+}
+
+@media (max-width: 767px) {
+    .container-fluid {
+        margin-top: 50px;
+    }
+    .container-fluid.main {
+        height: calc(100% - 50px);
+    }
+    .content {
+        width: 100%;
+        left: 0;
+        position: relative;
+    }
+    .menu ul.list li.title {
+        display: none;
+    }
+}
+
+/**
+ * Search
+ */
+
+.search-results {
+    display: none;
+    max-width: 800px;
+    margin: 0 auto;
+    padding: 20px 15px 40px 15px
+}
+
+.search-results .no-results {
+    display: none;
+}
+
+.with-search .search-results {
+    display: block;
+}
+
+.with-search .content-data {
+    display: none;
+}
+
+.with-search .xs-menu {
+    height: 51px;
+}
+
+.with-search .xs-menu nav {
+    display: none;
+}
+
+.search-results.no-results .has-results {
+    display: none;
+}
+
+.search-results.no-results .no-results {
+    display: block;
+}
+
+.search-results .search-results-title {
+    text-transform: uppercase;
+    text-align: center;
+    font-weight: 200;
+    margin-bottom: 35px;
+    opacity: .6
+}
+
+.search-results ul.search-results-list {
+    list-style-type: none;
+    padding-left: 0;
+}
+
+.search-results ul.search-results-list li {
+    margin-bottom: 1.5rem;
+    padding-bottom: 0.5rem;
+}
+
+.search-results ul.search-results-list li p em {
+    background-color: rgba(255, 220, 0, 0.4);
+    font-style: normal;
+}
+
+.search-results-item {
+    margin-bottom: 1rem !important;
+    margin-top: 1rem;
+    padding-bottom: 0 !important;
+}
+
+.search-results-item a {
+    font-size: 18px;
+}
+
+.search-results-group,
+.search-results-group .search-results-list {
+    margin-bottom: 0 !important;
+}
+
+.search-results-group h3 {
+    margin-top: 10px;
+}
+
+.jsdoc-params {
+    list-style: square;
+    margin-top: 10px;
+    margin-bottom: 0 !important;
+}
+
+.jsdoc-params li {
+    padding-bottom: 10px;
+}
+
+.jsdoc-example-ul ul {
+    padding-left: 20px;
+}
+
+example-url {
+    display: none;
+}
+
+i {
+    font-style: italic;
+}
+
+.coverage a {
+    color: #333;
+    text-decoration: underline;
+}
+
+.coverage tr.low,
+.coverage td.low {
+    background: rgba(216, 96, 75, 0.75);
+}
+
+.coverage tr.medium,
+.coverage td.medium {
+    background: rgba(218, 178, 38, 0.75);
+}
+
+.coverage tr.good,
+.coverage td.good {
+    background: rgba(143, 189, 8, 0.75);
+}
+
+.coverage tr.very-good,
+.coverage td.very-good {
+    background: rgba(77, 199, 31, 0.75);
+}
+
+.coverage td.uncovered {
+    background: rgba(221, 221, 221, 0.75);
+}
+
+.coverage-header {
+    background: #fafafa;
+}
+
+thead.coverage-header>tr>td,
+thead.coverage-header>tr>th {
+    border-bottom-width: 0;
+}
+
+th[role=columnheader].statements:not(.no-sort):after {
+    margin-left: 10px;
+}
+
+.coverage-count {
+    color: grey;
+    font-size: 12px;
+    margin-left: 10px;
+    display: inline-block;
+    width: 50px;
+}
+
+.coverage-badge {
+    background: #5d5d5d;
+    border-radius: 4px;
+    display: inline-block;
+    color: white;
+    padding: 4px;
+    padding-right: 0;
+    padding-left: 8px;
+}
+
+.coverage-badge .count {
+    padding: 6px;
+    margin-left: 5px;
+    border-top-right-radius: 4px;
+    border-bottom-right-radius: 4px;
+}
+
+.coverage-badge .count.low {
+    background: #d8624c;
+}
+
+.coverage-badge .count.medium {
+    background: #dab226;
+}
+
+.coverage-badge .count.good {
+    background: #8fbd08;
+}
+
+.coverage-badge .count.very-good {
+    background: #4dc71f;
+}
+
+.content ol {
+    list-style-type: decimal;
+    margin-top: 0;
+    padding-left: 20px;
+    margin-bottom: 16px;
+}
+
+.content ul {
+    list-style: disc;
+    margin-top: 0;
+    padding-left: 20px;
+    margin-bottom: 16px;
+}
+
+.content ul.list-group {
+    padding-left: 0;
+}
+
+.content ul.list-group li.list-group-item a {
+    display: inline-block;
+    max-width: 100%;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+
+.content ul ul {
+    list-style-type: circle;
+}
+
+.compodoc-table {
+    width: inherit;
+}
+
+.compodoc-table thead {
+    font-weight: bold;
+}
+
+.modifier {
+    background: #9a9a9a;
+    padding: 1px 5px;
+    color: white;
+    border-radius: 4px;
+}
+
+.modifier-icon {
+    color: #c7254e;
+}
+
+.modifier-icon.method {
+    color: white;
+    background: #c7254e;
+    padding: 4px;
+    border-radius: 8px;
+    font-size: 10px;
+    margin-right: 2px;
+}
+
+.modifier-icon.method.square {
+    border-radius: 4px;
+}
+
+.modifier-icon.method.export {
+    display: none;
+}
+
+.modifier-icon.method .ion-ios-radio-button-off,
+.modifier-icon.method .ion-ios-square-outline {
+    display: none;
+}
+
+.modifier-icon.method .ion-ios-lock {
+    margin-right: 0;
+}
+
+/**
+ * Modules
+ */
+
+.card-module {
+    min-height: 323px
+}
+
+/**
+ * Routes graph
+ */
+
+.node text {
+    font-size: 12px;
+}
+
+.node .icon {
+    font-size: 15px;
+    cursor: default;
+}
+
+.node .icon.has-children {
+    cursor: pointer;
+}
+
+path.link {
+    fill: none;
+    stroke: #9ecae1;
+    stroke-width: 1.5px;
+}
+
+#body-routes a {
+    text-decoration: underline;
+}
+
+#body-routes svg {
+    overflow: visible;
+}
+
+/**
+ * Miscellaneous
+ */
+
+.content.miscellaneous h2 {
+    margin-bottom: 20px;
+}
+
+.content.miscellaneous h4 {
+    padding-top: 20px;
+}
+
+/* highlight line */
+
+.line-highlight {
+    background: linear-gradient(to right, hsla(0, 0%, 100%, .1) 70%, hsla(24, 20%, 50%, 0));
+}
+
+#tree-container {
+    width: 100%;
+    height: 100%;
+}
+
+#tree {
+    position: relative;
+}
+
+.tree-legend {
+    position: absolute;
+    bottom: 10px;
+    left: 10px;
+    border: 1px solid #ddd;
+    padding: 5px 10px;
+}
+
+.tree-legend .title {
+    margin-bottom: 8px;
+}
+
+.tree-legend .color {
+    width: 20px;
+    height: 12px;
+    display: inline-block;
+    margin-right: 5px;
+}
+
+.tree-legend .htmlelement {
+    background: #97c2fc;
+}
+
+.tree-legend .component {
+    background: #fb7e81;
+}
+
+.tree-legend .directive {
+    background: #FF9800;
+}
+
+#module-graph-svg {
+    width: 100%;
+    height: 250px;
+}
+
+#module-graph-svg svg {
+    width: 100%;
+    height: 100%;
+}
+
+.content ul.type-parameters {
+    margin-bottom: 5px;
+}
+
+table.params {
+    width: 100%;
+    margin: 10px 0;
+    border-spacing: 0;
+    border: 0;
+    border-collapse: collapse;
+}
+
+table.params thead {
+    background: #f5f5f5;
+    color: #525252;
+}
+
+table.params td {
+    padding: 4px;
+    border: solid 1px #ddd;
+}
+
+table.params td p {
+    margin: 0;
+}
+
+.img-responsive {
+    display: inline-block;
+}
+
+.index-table h6 {
+    margin-top: 5px;
+    margin-bottom: 5px;
+}
+
+ul.index-list {
+    list-style: none;
+    padding: 0;
+    column-gap: 20px;
+    column-count: 3;
+    line-height: 25px;
+    margin-bottom: 0;
+}
+
+.no-graph {
+    text-align: center;
+    height: 175px;
+    line-height: 175px;
+}
+
+.name a {
+    display: none;
+    color: #6e6e6e;
+    margin-left: 5px;
+}
+
+.name:hover a {
+    display: inline-block;
+}
+
+.accessor b {
+    color: #808080;
+    margin-right: 8px;
+    font-weight: normal;
+}
+
+.module-graph-container {
+    position: relative;
+}
+
+.module-graph-fullscreen-btn {
+    position: absolute;
+    right: 5px;
+    top: 0;
+    cursor: pointer;
+}
+
+/**
+ * Dependencies
+ */
+
+.package-dependencies ul {
+    list-style: none;
+    margin: 0;
+}
+
+.package-dependencies li {
+    margin: 5px 0;
+}
\ No newline at end of file
diff --git a/src/docs/styles/ionicons.min.css b/src/docs/styles/ionicons.min.css
new file mode 100644
index 0000000..e50e1bb
--- /dev/null
+++ b/src/docs/styles/ionicons.min.css
@@ -0,0 +1,11 @@
+﻿/*!
+  Ionicons, v4.1.2
+  Created by Ben Sperry for the Ionic Framework, http://ionicons.com/
+  https://twitter.com/benjsperry  https://twitter.com/ionicframework
+  MIT License: https://github.com/driftyco/ionicons
+
+  Android-style icons originally built by Google’s
+  Material Design Icons: https://github.com/google/material-design-icons
+  used under CC BY http://creativecommons.org/licenses/by/4.0/
+  Modified icons to fit ionicon’s grid from original.
+*/@font-face{font-family:"Ionicons";src:url("../fonts/ionicons.eot?v=4.1.2");src:url("../fonts/ionicons.eot?v=4.1.2#iefix") format("embedded-opentype"),url("../fonts/ionicons.woff2?v=4.1.2") format("woff2"),url("../fonts/ionicons.woff?v=4.1.2") format("woff"),url("../fonts/ionicons.ttf?v=4.1.2") format("truetype"),url("../fonts/ionicons.svg?v=4.1.2#Ionicons") format("svg");font-weight:normal;font-style:normal}.ion,.ionicons,.ion-ios-add:before,.ion-ios-add-circle:before,.ion-ios-add-circle-outline:before,.ion-ios-airplane:before,.ion-ios-alarm:before,.ion-ios-albums:before,.ion-ios-alert:before,.ion-ios-american-football:before,.ion-ios-analytics:before,.ion-ios-aperture:before,.ion-ios-apps:before,.ion-ios-appstore:before,.ion-ios-archive:before,.ion-ios-arrow-back:before,.ion-ios-arrow-down:before,.ion-ios-arrow-dropdown:before,.ion-ios-arrow-dropdown-circle:before,.ion-ios-arrow-dropleft:before,.ion-ios-arrow-dropleft-circle:before,.ion-ios-arrow-dropright:before,.ion-ios-arrow-dropright-circle:before,.ion-ios-arrow-dropup:before,.ion-ios-arrow-dropup-circle:before,.ion-ios-arrow-forward:before,.ion-ios-arrow-round-back:before,.ion-ios-arrow-round-down:before,.ion-ios-arrow-round-forward:before,.ion-ios-arrow-round-up:before,.ion-ios-arrow-up:before,.ion-ios-at:before,.ion-ios-attach:before,.ion-ios-backspace:before,.ion-ios-barcode:before,.ion-ios-baseball:before,.ion-ios-basket:before,.ion-ios-basketball:before,.ion-ios-battery-charging:before,.ion-ios-battery-dead:before,.ion-ios-battery-full:before,.ion-ios-beaker:before,.ion-ios-bed:before,.ion-ios-beer:before,.ion-ios-bicycle:before,.ion-ios-bluetooth:before,.ion-ios-boat:before,.ion-ios-body:before,.ion-ios-bonfire:before,.ion-ios-book:before,.ion-ios-bookmark:before,.ion-ios-bookmarks:before,.ion-ios-bowtie:before,.ion-ios-briefcase:before,.ion-ios-browsers:before,.ion-ios-brush:before,.ion-ios-bug:before,.ion-ios-build:before,.ion-ios-bulb:before,.ion-ios-bus:before,.ion-ios-business:before,.ion-ios-cafe:before,.ion-ios-calculator:before,.ion-ios-calendar:before,.ion-ios-call:before,.ion-ios-camera:before,.ion-ios-car:before,.ion-ios-card:before,.ion-ios-cart:before,.ion-ios-cash:before,.ion-ios-cellular:before,.ion-ios-chatboxes:before,.ion-ios-chatbubbles:before,.ion-ios-checkbox:before,.ion-ios-checkbox-outline:before,.ion-ios-checkmark:before,.ion-ios-checkmark-circle:before,.ion-ios-checkmark-circle-outline:before,.ion-ios-clipboard:before,.ion-ios-clock:before,.ion-ios-close:before,.ion-ios-close-circle:before,.ion-ios-close-circle-outline:before,.ion-ios-cloud:before,.ion-ios-cloud-circle:before,.ion-ios-cloud-done:before,.ion-ios-cloud-download:before,.ion-ios-cloud-outline:before,.ion-ios-cloud-upload:before,.ion-ios-cloudy:before,.ion-ios-cloudy-night:before,.ion-ios-code:before,.ion-ios-code-download:before,.ion-ios-code-working:before,.ion-ios-cog:before,.ion-ios-color-fill:before,.ion-ios-color-filter:before,.ion-ios-color-palette:before,.ion-ios-color-wand:before,.ion-ios-compass:before,.ion-ios-construct:before,.ion-ios-contact:before,.ion-ios-contacts:before,.ion-ios-contract:before,.ion-ios-contrast:before,.ion-ios-copy:before,.ion-ios-create:before,.ion-ios-crop:before,.ion-ios-cube:before,.ion-ios-cut:before,.ion-ios-desktop:before,.ion-ios-disc:before,.ion-ios-document:before,.ion-ios-done-all:before,.ion-ios-download:before,.ion-ios-easel:before,.ion-ios-egg:before,.ion-ios-exit:before,.ion-ios-expand:before,.ion-ios-eye:before,.ion-ios-eye-off:before,.ion-ios-fastforward:before,.ion-ios-female:before,.ion-ios-filing:before,.ion-ios-film:before,.ion-ios-finger-print:before,.ion-ios-fitness:before,.ion-ios-flag:before,.ion-ios-flame:before,.ion-ios-flash:before,.ion-ios-flash-off:before,.ion-ios-flashlight:before,.ion-ios-flask:before,.ion-ios-flower:before,.ion-ios-folder:before,.ion-ios-folder-open:before,.ion-ios-football:before,.ion-ios-funnel:before,.ion-ios-gift:before,.ion-ios-git-branch:before,.ion-ios-git-commit:before,.ion-ios-git-compare:before,.ion-ios-git-merge:before,.ion-ios-git-network:before,.ion-ios-git-pull-request:before,.ion-ios-glasses:before,.ion-ios-globe:before,.ion-ios-grid:before,.ion-ios-hammer:before,.ion-ios-hand:before,.ion-ios-happy:before,.ion-ios-headset:before,.ion-ios-heart:before,.ion-ios-heart-dislike:before,.ion-ios-heart-empty:before,.ion-ios-heart-half:before,.ion-ios-help:before,.ion-ios-help-buoy:before,.ion-ios-help-circle:before,.ion-ios-help-circle-outline:before,.ion-ios-home:before,.ion-ios-hourglass:before,.ion-ios-ice-cream:before,.ion-ios-image:before,.ion-ios-images:before,.ion-ios-infinite:before,.ion-ios-information:before,.ion-ios-information-circle:before,.ion-ios-information-circle-outline:before,.ion-ios-jet:before,.ion-ios-journal:before,.ion-ios-key:before,.ion-ios-keypad:before,.ion-ios-laptop:before,.ion-ios-leaf:before,.ion-ios-link:before,.ion-ios-list:before,.ion-ios-list-box:before,.ion-ios-locate:before,.ion-ios-lock:before,.ion-ios-log-in:before,.ion-ios-log-out:before,.ion-ios-magnet:before,.ion-ios-mail:before,.ion-ios-mail-open:before,.ion-ios-mail-unread:before,.ion-ios-male:before,.ion-ios-man:before,.ion-ios-map:before,.ion-ios-medal:before,.ion-ios-medical:before,.ion-ios-medkit:before,.ion-ios-megaphone:before,.ion-ios-menu:before,.ion-ios-mic:before,.ion-ios-mic-off:before,.ion-ios-microphone:before,.ion-ios-moon:before,.ion-ios-more:before,.ion-ios-move:before,.ion-ios-musical-note:before,.ion-ios-musical-notes:before,.ion-ios-navigate:before,.ion-ios-notifications:before,.ion-ios-notifications-off:before,.ion-ios-notifications-outline:before,.ion-ios-nuclear:before,.ion-ios-nutrition:before,.ion-ios-open:before,.ion-ios-options:before,.ion-ios-outlet:before,.ion-ios-paper:before,.ion-ios-paper-plane:before,.ion-ios-partly-sunny:before,.ion-ios-pause:before,.ion-ios-paw:before,.ion-ios-people:before,.ion-ios-person:before,.ion-ios-person-add:before,.ion-ios-phone-landscape:before,.ion-ios-phone-portrait:before,.ion-ios-photos:before,.ion-ios-pie:before,.ion-ios-pin:before,.ion-ios-pint:before,.ion-ios-pizza:before,.ion-ios-planet:before,.ion-ios-play:before,.ion-ios-play-circle:before,.ion-ios-podium:before,.ion-ios-power:before,.ion-ios-pricetag:before,.ion-ios-pricetags:before,.ion-ios-print:before,.ion-ios-pulse:before,.ion-ios-qr-scanner:before,.ion-ios-quote:before,.ion-ios-radio:before,.ion-ios-radio-button-off:before,.ion-ios-radio-button-on:before,.ion-ios-rainy:before,.ion-ios-recording:before,.ion-ios-redo:before,.ion-ios-refresh:before,.ion-ios-refresh-circle:before,.ion-ios-remove:before,.ion-ios-remove-circle:before,.ion-ios-remove-circle-outline:before,.ion-ios-reorder:before,.ion-ios-repeat:before,.ion-ios-resize:before,.ion-ios-restaurant:before,.ion-ios-return-left:before,.ion-ios-return-right:before,.ion-ios-reverse-camera:before,.ion-ios-rewind:before,.ion-ios-ribbon:before,.ion-ios-rocket:before,.ion-ios-rose:before,.ion-ios-sad:before,.ion-ios-save:before,.ion-ios-school:before,.ion-ios-search:before,.ion-ios-send:before,.ion-ios-settings:before,.ion-ios-share:before,.ion-ios-share-alt:before,.ion-ios-shirt:before,.ion-ios-shuffle:before,.ion-ios-skip-backward:before,.ion-ios-skip-forward:before,.ion-ios-snow:before,.ion-ios-speedometer:before,.ion-ios-square:before,.ion-ios-square-outline:before,.ion-ios-star:before,.ion-ios-star-half:before,.ion-ios-star-outline:before,.ion-ios-stats:before,.ion-ios-stopwatch:before,.ion-ios-subway:before,.ion-ios-sunny:before,.ion-ios-swap:before,.ion-ios-switch:before,.ion-ios-sync:before,.ion-ios-tablet-landscape:before,.ion-ios-tablet-portrait:before,.ion-ios-tennisball:before,.ion-ios-text:before,.ion-ios-thermometer:before,.ion-ios-thumbs-down:before,.ion-ios-thumbs-up:before,.ion-ios-thunderstorm:before,.ion-ios-time:before,.ion-ios-timer:before,.ion-ios-today:before,.ion-ios-train:before,.ion-ios-transgender:before,.ion-ios-trash:before,.ion-ios-trending-down:before,.ion-ios-trending-up:before,.ion-ios-trophy:before,.ion-ios-tv:before,.ion-ios-umbrella:before,.ion-ios-undo:before,.ion-ios-unlock:before,.ion-ios-videocam:before,.ion-ios-volume-high:before,.ion-ios-volume-low:before,.ion-ios-volume-mute:before,.ion-ios-volume-off:before,.ion-ios-walk:before,.ion-ios-wallet:before,.ion-ios-warning:before,.ion-ios-watch:before,.ion-ios-water:before,.ion-ios-wifi:before,.ion-ios-wine:before,.ion-ios-woman:before,.ion-logo-android:before,.ion-logo-angular:before,.ion-logo-apple:before,.ion-logo-bitbucket:before,.ion-logo-bitcoin:before,.ion-logo-buffer:before,.ion-logo-chrome:before,.ion-logo-closed-captioning:before,.ion-logo-codepen:before,.ion-logo-css3:before,.ion-logo-designernews:before,.ion-logo-dribbble:before,.ion-logo-dropbox:before,.ion-logo-euro:before,.ion-logo-facebook:before,.ion-logo-flickr:before,.ion-logo-foursquare:before,.ion-logo-freebsd-devil:before,.ion-logo-game-controller-a:before,.ion-logo-game-controller-b:before,.ion-logo-github:before,.ion-logo-google:before,.ion-logo-googleplus:before,.ion-logo-hackernews:before,.ion-logo-html5:before,.ion-logo-instagram:before,.ion-logo-ionic:before,.ion-logo-ionitron:before,.ion-logo-javascript:before,.ion-logo-linkedin:before,.ion-logo-markdown:before,.ion-logo-model-s:before,.ion-logo-no-smoking:before,.ion-logo-nodejs:before,.ion-logo-npm:before,.ion-logo-octocat:before,.ion-logo-pinterest:before,.ion-logo-playstation:before,.ion-logo-polymer:before,.ion-logo-python:before,.ion-logo-reddit:before,.ion-logo-rss:before,.ion-logo-sass:before,.ion-logo-skype:before,.ion-logo-slack:before,.ion-logo-snapchat:before,.ion-logo-steam:before,.ion-logo-tumblr:before,.ion-logo-tux:before,.ion-logo-twitch:before,.ion-logo-twitter:before,.ion-logo-usd:before,.ion-logo-vimeo:before,.ion-logo-vk:before,.ion-logo-whatsapp:before,.ion-logo-windows:before,.ion-logo-wordpress:before,.ion-logo-xbox:before,.ion-logo-xing:before,.ion-logo-yahoo:before,.ion-logo-yen:before,.ion-logo-youtube:before,.ion-md-add:before,.ion-md-add-circle:before,.ion-md-add-circle-outline:before,.ion-md-airplane:before,.ion-md-alarm:before,.ion-md-albums:before,.ion-md-alert:before,.ion-md-american-football:before,.ion-md-analytics:before,.ion-md-aperture:before,.ion-md-apps:before,.ion-md-appstore:before,.ion-md-archive:before,.ion-md-arrow-back:before,.ion-md-arrow-down:before,.ion-md-arrow-dropdown:before,.ion-md-arrow-dropdown-circle:before,.ion-md-arrow-dropleft:before,.ion-md-arrow-dropleft-circle:before,.ion-md-arrow-dropright:before,.ion-md-arrow-dropright-circle:before,.ion-md-arrow-dropup:before,.ion-md-arrow-dropup-circle:before,.ion-md-arrow-forward:before,.ion-md-arrow-round-back:before,.ion-md-arrow-round-down:before,.ion-md-arrow-round-forward:before,.ion-md-arrow-round-up:before,.ion-md-arrow-up:before,.ion-md-at:before,.ion-md-attach:before,.ion-md-backspace:before,.ion-md-barcode:before,.ion-md-baseball:before,.ion-md-basket:before,.ion-md-basketball:before,.ion-md-battery-charging:before,.ion-md-battery-dead:before,.ion-md-battery-full:before,.ion-md-beaker:before,.ion-md-bed:before,.ion-md-beer:before,.ion-md-bicycle:before,.ion-md-bluetooth:before,.ion-md-boat:before,.ion-md-body:before,.ion-md-bonfire:before,.ion-md-book:before,.ion-md-bookmark:before,.ion-md-bookmarks:before,.ion-md-bowtie:before,.ion-md-briefcase:before,.ion-md-browsers:before,.ion-md-brush:before,.ion-md-bug:before,.ion-md-build:before,.ion-md-bulb:before,.ion-md-bus:before,.ion-md-business:before,.ion-md-cafe:before,.ion-md-calculator:before,.ion-md-calendar:before,.ion-md-call:before,.ion-md-camera:before,.ion-md-car:before,.ion-md-card:before,.ion-md-cart:before,.ion-md-cash:before,.ion-md-cellular:before,.ion-md-chatboxes:before,.ion-md-chatbubbles:before,.ion-md-checkbox:before,.ion-md-checkbox-outline:before,.ion-md-checkmark:before,.ion-md-checkmark-circle:before,.ion-md-checkmark-circle-outline:before,.ion-md-clipboard:before,.ion-md-clock:before,.ion-md-close:before,.ion-md-close-circle:before,.ion-md-close-circle-outline:before,.ion-md-cloud:before,.ion-md-cloud-circle:before,.ion-md-cloud-done:before,.ion-md-cloud-download:before,.ion-md-cloud-outline:before,.ion-md-cloud-upload:before,.ion-md-cloudy:before,.ion-md-cloudy-night:before,.ion-md-code:before,.ion-md-code-download:before,.ion-md-code-working:before,.ion-md-cog:before,.ion-md-color-fill:before,.ion-md-color-filter:before,.ion-md-color-palette:before,.ion-md-color-wand:before,.ion-md-compass:before,.ion-md-construct:before,.ion-md-contact:before,.ion-md-contacts:before,.ion-md-contract:before,.ion-md-contrast:before,.ion-md-copy:before,.ion-md-create:before,.ion-md-crop:before,.ion-md-cube:before,.ion-md-cut:before,.ion-md-desktop:before,.ion-md-disc:before,.ion-md-document:before,.ion-md-done-all:before,.ion-md-download:before,.ion-md-easel:before,.ion-md-egg:before,.ion-md-exit:before,.ion-md-expand:before,.ion-md-eye:before,.ion-md-eye-off:before,.ion-md-fastforward:before,.ion-md-female:before,.ion-md-filing:before,.ion-md-film:before,.ion-md-finger-print:before,.ion-md-fitness:before,.ion-md-flag:before,.ion-md-flame:before,.ion-md-flash:before,.ion-md-flash-off:before,.ion-md-flashlight:before,.ion-md-flask:before,.ion-md-flower:before,.ion-md-folder:before,.ion-md-folder-open:before,.ion-md-football:before,.ion-md-funnel:before,.ion-md-gift:before,.ion-md-git-branch:before,.ion-md-git-commit:before,.ion-md-git-compare:before,.ion-md-git-merge:before,.ion-md-git-network:before,.ion-md-git-pull-request:before,.ion-md-glasses:before,.ion-md-globe:before,.ion-md-grid:before,.ion-md-hammer:before,.ion-md-hand:before,.ion-md-happy:before,.ion-md-headset:before,.ion-md-heart:before,.ion-md-heart-dislike:before,.ion-md-heart-empty:before,.ion-md-heart-half:before,.ion-md-help:before,.ion-md-help-buoy:before,.ion-md-help-circle:before,.ion-md-help-circle-outline:before,.ion-md-home:before,.ion-md-hourglass:before,.ion-md-ice-cream:before,.ion-md-image:before,.ion-md-images:before,.ion-md-infinite:before,.ion-md-information:before,.ion-md-information-circle:before,.ion-md-information-circle-outline:before,.ion-md-jet:before,.ion-md-journal:before,.ion-md-key:before,.ion-md-keypad:before,.ion-md-laptop:before,.ion-md-leaf:before,.ion-md-link:before,.ion-md-list:before,.ion-md-list-box:before,.ion-md-locate:before,.ion-md-lock:before,.ion-md-log-in:before,.ion-md-log-out:before,.ion-md-magnet:before,.ion-md-mail:before,.ion-md-mail-open:before,.ion-md-mail-unread:before,.ion-md-male:before,.ion-md-man:before,.ion-md-map:before,.ion-md-medal:before,.ion-md-medical:before,.ion-md-medkit:before,.ion-md-megaphone:before,.ion-md-menu:before,.ion-md-mic:before,.ion-md-mic-off:before,.ion-md-microphone:before,.ion-md-moon:before,.ion-md-more:before,.ion-md-move:before,.ion-md-musical-note:before,.ion-md-musical-notes:before,.ion-md-navigate:before,.ion-md-notifications:before,.ion-md-notifications-off:before,.ion-md-notifications-outline:before,.ion-md-nuclear:before,.ion-md-nutrition:before,.ion-md-open:before,.ion-md-options:before,.ion-md-outlet:before,.ion-md-paper:before,.ion-md-paper-plane:before,.ion-md-partly-sunny:before,.ion-md-pause:before,.ion-md-paw:before,.ion-md-people:before,.ion-md-person:before,.ion-md-person-add:before,.ion-md-phone-landscape:before,.ion-md-phone-portrait:before,.ion-md-photos:before,.ion-md-pie:before,.ion-md-pin:before,.ion-md-pint:before,.ion-md-pizza:before,.ion-md-planet:before,.ion-md-play:before,.ion-md-play-circle:before,.ion-md-podium:before,.ion-md-power:before,.ion-md-pricetag:before,.ion-md-pricetags:before,.ion-md-print:before,.ion-md-pulse:before,.ion-md-qr-scanner:before,.ion-md-quote:before,.ion-md-radio:before,.ion-md-radio-button-off:before,.ion-md-radio-button-on:before,.ion-md-rainy:before,.ion-md-recording:before,.ion-md-redo:before,.ion-md-refresh:before,.ion-md-refresh-circle:before,.ion-md-remove:before,.ion-md-remove-circle:before,.ion-md-remove-circle-outline:before,.ion-md-reorder:before,.ion-md-repeat:before,.ion-md-resize:before,.ion-md-restaurant:before,.ion-md-return-left:before,.ion-md-return-right:before,.ion-md-reverse-camera:before,.ion-md-rewind:before,.ion-md-ribbon:before,.ion-md-rocket:before,.ion-md-rose:before,.ion-md-sad:before,.ion-md-save:before,.ion-md-school:before,.ion-md-search:before,.ion-md-send:before,.ion-md-settings:before,.ion-md-share:before,.ion-md-share-alt:before,.ion-md-shirt:before,.ion-md-shuffle:before,.ion-md-skip-backward:before,.ion-md-skip-forward:before,.ion-md-snow:before,.ion-md-speedometer:before,.ion-md-square:before,.ion-md-square-outline:before,.ion-md-star:before,.ion-md-star-half:before,.ion-md-star-outline:before,.ion-md-stats:before,.ion-md-stopwatch:before,.ion-md-subway:before,.ion-md-sunny:before,.ion-md-swap:before,.ion-md-switch:before,.ion-md-sync:before,.ion-md-tablet-landscape:before,.ion-md-tablet-portrait:before,.ion-md-tennisball:before,.ion-md-text:before,.ion-md-thermometer:before,.ion-md-thumbs-down:before,.ion-md-thumbs-up:before,.ion-md-thunderstorm:before,.ion-md-time:before,.ion-md-timer:before,.ion-md-today:before,.ion-md-train:before,.ion-md-transgender:before,.ion-md-trash:before,.ion-md-trending-down:before,.ion-md-trending-up:before,.ion-md-trophy:before,.ion-md-tv:before,.ion-md-umbrella:before,.ion-md-undo:before,.ion-md-unlock:before,.ion-md-videocam:before,.ion-md-volume-high:before,.ion-md-volume-low:before,.ion-md-volume-mute:before,.ion-md-volume-off:before,.ion-md-walk:before,.ion-md-wallet:before,.ion-md-warning:before,.ion-md-watch:before,.ion-md-water:before,.ion-md-wifi:before,.ion-md-wine:before,.ion-md-woman:before{display:inline-block;font-family:"Ionicons";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-ios-add:before{content:"\f102"}.ion-ios-add-circle:before{content:"\f101"}.ion-ios-add-circle-outline:before{content:"\f100"}.ion-ios-airplane:before{content:"\f137"}.ion-ios-alarm:before{content:"\f3c8"}.ion-ios-albums:before{content:"\f3ca"}.ion-ios-alert:before{content:"\f104"}.ion-ios-american-football:before{content:"\f106"}.ion-ios-analytics:before{content:"\f3ce"}.ion-ios-aperture:before{content:"\f108"}.ion-ios-apps:before{content:"\f10a"}.ion-ios-appstore:before{content:"\f10c"}.ion-ios-archive:before{content:"\f10e"}.ion-ios-arrow-back:before{content:"\f3cf"}.ion-ios-arrow-down:before{content:"\f3d0"}.ion-ios-arrow-dropdown:before{content:"\f110"}.ion-ios-arrow-dropdown-circle:before{content:"\f125"}.ion-ios-arrow-dropleft:before{content:"\f112"}.ion-ios-arrow-dropleft-circle:before{content:"\f129"}.ion-ios-arrow-dropright:before{content:"\f114"}.ion-ios-arrow-dropright-circle:before{content:"\f12b"}.ion-ios-arrow-dropup:before{content:"\f116"}.ion-ios-arrow-dropup-circle:before{content:"\f12d"}.ion-ios-arrow-forward:before{content:"\f3d1"}.ion-ios-arrow-round-back:before{content:"\f117"}.ion-ios-arrow-round-down:before{content:"\f118"}.ion-ios-arrow-round-forward:before{content:"\f119"}.ion-ios-arrow-round-up:before{content:"\f11a"}.ion-ios-arrow-up:before{content:"\f3d8"}.ion-ios-at:before{content:"\f3da"}.ion-ios-attach:before{content:"\f11b"}.ion-ios-backspace:before{content:"\f11d"}.ion-ios-barcode:before{content:"\f3dc"}.ion-ios-baseball:before{content:"\f3de"}.ion-ios-basket:before{content:"\f11f"}.ion-ios-basketball:before{content:"\f3e0"}.ion-ios-battery-charging:before{content:"\f120"}.ion-ios-battery-dead:before{content:"\f121"}.ion-ios-battery-full:before{content:"\f122"}.ion-ios-beaker:before{content:"\f124"}.ion-ios-bed:before{content:"\f139"}.ion-ios-beer:before{content:"\f126"}.ion-ios-bicycle:before{content:"\f127"}.ion-ios-bluetooth:before{content:"\f128"}.ion-ios-boat:before{content:"\f12a"}.ion-ios-body:before{content:"\f3e4"}.ion-ios-bonfire:before{content:"\f12c"}.ion-ios-book:before{content:"\f3e8"}.ion-ios-bookmark:before{content:"\f12e"}.ion-ios-bookmarks:before{content:"\f3ea"}.ion-ios-bowtie:before{content:"\f130"}.ion-ios-briefcase:before{content:"\f3ee"}.ion-ios-browsers:before{content:"\f3f0"}.ion-ios-brush:before{content:"\f132"}.ion-ios-bug:before{content:"\f134"}.ion-ios-build:before{content:"\f136"}.ion-ios-bulb:before{content:"\f138"}.ion-ios-bus:before{content:"\f13a"}.ion-ios-business:before{content:"\f1a3"}.ion-ios-cafe:before{content:"\f13c"}.ion-ios-calculator:before{content:"\f3f2"}.ion-ios-calendar:before{content:"\f3f4"}.ion-ios-call:before{content:"\f13e"}.ion-ios-camera:before{content:"\f3f6"}.ion-ios-car:before{content:"\f140"}.ion-ios-card:before{content:"\f142"}.ion-ios-cart:before{content:"\f3f8"}.ion-ios-cash:before{content:"\f144"}.ion-ios-cellular:before{content:"\f13d"}.ion-ios-chatboxes:before{content:"\f3fa"}.ion-ios-chatbubbles:before{content:"\f146"}.ion-ios-checkbox:before{content:"\f148"}.ion-ios-checkbox-outline:before{content:"\f147"}.ion-ios-checkmark:before{content:"\f3ff"}.ion-ios-checkmark-circle:before{content:"\f14a"}.ion-ios-checkmark-circle-outline:before{content:"\f149"}.ion-ios-clipboard:before{content:"\f14c"}.ion-ios-clock:before{content:"\f403"}.ion-ios-close:before{content:"\f406"}.ion-ios-close-circle:before{content:"\f14e"}.ion-ios-close-circle-outline:before{content:"\f14d"}.ion-ios-cloud:before{content:"\f40c"}.ion-ios-cloud-circle:before{content:"\f152"}.ion-ios-cloud-done:before{content:"\f154"}.ion-ios-cloud-download:before{content:"\f408"}.ion-ios-cloud-outline:before{content:"\f409"}.ion-ios-cloud-upload:before{content:"\f40b"}.ion-ios-cloudy:before{content:"\f410"}.ion-ios-cloudy-night:before{content:"\f40e"}.ion-ios-code:before{content:"\f157"}.ion-ios-code-download:before{content:"\f155"}.ion-ios-code-working:before{content:"\f156"}.ion-ios-cog:before{content:"\f412"}.ion-ios-color-fill:before{content:"\f159"}.ion-ios-color-filter:before{content:"\f414"}.ion-ios-color-palette:before{content:"\f15b"}.ion-ios-color-wand:before{content:"\f416"}.ion-ios-compass:before{content:"\f15d"}.ion-ios-construct:before{content:"\f15f"}.ion-ios-contact:before{content:"\f41a"}.ion-ios-contacts:before{content:"\f161"}.ion-ios-contract:before{content:"\f162"}.ion-ios-contrast:before{content:"\f163"}.ion-ios-copy:before{content:"\f41c"}.ion-ios-create:before{content:"\f165"}.ion-ios-crop:before{content:"\f41e"}.ion-ios-cube:before{content:"\f168"}.ion-ios-cut:before{content:"\f16a"}.ion-ios-desktop:before{content:"\f16c"}.ion-ios-disc:before{content:"\f16e"}.ion-ios-document:before{content:"\f170"}.ion-ios-done-all:before{content:"\f171"}.ion-ios-download:before{content:"\f420"}.ion-ios-easel:before{content:"\f173"}.ion-ios-egg:before{content:"\f175"}.ion-ios-exit:before{content:"\f177"}.ion-ios-expand:before{content:"\f178"}.ion-ios-eye:before{content:"\f425"}.ion-ios-eye-off:before{content:"\f17a"}.ion-ios-fastforward:before{content:"\f427"}.ion-ios-female:before{content:"\f17b"}.ion-ios-filing:before{content:"\f429"}.ion-ios-film:before{content:"\f42b"}.ion-ios-finger-print:before{content:"\f17c"}.ion-ios-fitness:before{content:"\f1ab"}.ion-ios-flag:before{content:"\f42d"}.ion-ios-flame:before{content:"\f42f"}.ion-ios-flash:before{content:"\f17e"}.ion-ios-flash-off:before{content:"\f12f"}.ion-ios-flashlight:before{content:"\f141"}.ion-ios-flask:before{content:"\f431"}.ion-ios-flower:before{content:"\f433"}.ion-ios-folder:before{content:"\f435"}.ion-ios-folder-open:before{content:"\f180"}.ion-ios-football:before{content:"\f437"}.ion-ios-funnel:before{content:"\f182"}.ion-ios-gift:before{content:"\f191"}.ion-ios-git-branch:before{content:"\f183"}.ion-ios-git-commit:before{content:"\f184"}.ion-ios-git-compare:before{content:"\f185"}.ion-ios-git-merge:before{content:"\f186"}.ion-ios-git-network:before{content:"\f187"}.ion-ios-git-pull-request:before{content:"\f188"}.ion-ios-glasses:before{content:"\f43f"}.ion-ios-globe:before{content:"\f18a"}.ion-ios-grid:before{content:"\f18c"}.ion-ios-hammer:before{content:"\f18e"}.ion-ios-hand:before{content:"\f190"}.ion-ios-happy:before{content:"\f192"}.ion-ios-headset:before{content:"\f194"}.ion-ios-heart:before{content:"\f443"}.ion-ios-heart-dislike:before{content:"\f13f"}.ion-ios-heart-empty:before{content:"\f19b"}.ion-ios-heart-half:before{content:"\f19d"}.ion-ios-help:before{content:"\f446"}.ion-ios-help-buoy:before{content:"\f196"}.ion-ios-help-circle:before{content:"\f198"}.ion-ios-help-circle-outline:before{content:"\f197"}.ion-ios-home:before{content:"\f448"}.ion-ios-hourglass:before{content:"\f103"}.ion-ios-ice-cream:before{content:"\f19a"}.ion-ios-image:before{content:"\f19c"}.ion-ios-images:before{content:"\f19e"}.ion-ios-infinite:before{content:"\f44a"}.ion-ios-information:before{content:"\f44d"}.ion-ios-information-circle:before{content:"\f1a0"}.ion-ios-information-circle-outline:before{content:"\f19f"}.ion-ios-jet:before{content:"\f1a5"}.ion-ios-journal:before{content:"\f189"}.ion-ios-key:before{content:"\f1a7"}.ion-ios-keypad:before{content:"\f450"}.ion-ios-laptop:before{content:"\f1a8"}.ion-ios-leaf:before{content:"\f1aa"}.ion-ios-link:before{content:"\f22a"}.ion-ios-list:before{content:"\f454"}.ion-ios-list-box:before{content:"\f143"}.ion-ios-locate:before{content:"\f1ae"}.ion-ios-lock:before{content:"\f1b0"}.ion-ios-log-in:before{content:"\f1b1"}.ion-ios-log-out:before{content:"\f1b2"}.ion-ios-magnet:before{content:"\f1b4"}.ion-ios-mail:before{content:"\f1b8"}.ion-ios-mail-open:before{content:"\f1b6"}.ion-ios-mail-unread:before{content:"\f145"}.ion-ios-male:before{content:"\f1b9"}.ion-ios-man:before{content:"\f1bb"}.ion-ios-map:before{content:"\f1bd"}.ion-ios-medal:before{content:"\f1bf"}.ion-ios-medical:before{content:"\f45c"}.ion-ios-medkit:before{content:"\f45e"}.ion-ios-megaphone:before{content:"\f1c1"}.ion-ios-menu:before{content:"\f1c3"}.ion-ios-mic:before{content:"\f461"}.ion-ios-mic-off:before{content:"\f45f"}.ion-ios-microphone:before{content:"\f1c6"}.ion-ios-moon:before{content:"\f468"}.ion-ios-more:before{content:"\f1c8"}.ion-ios-move:before{content:"\f1cb"}.ion-ios-musical-note:before{content:"\f46b"}.ion-ios-musical-notes:before{content:"\f46c"}.ion-ios-navigate:before{content:"\f46e"}.ion-ios-notifications:before{content:"\f1d3"}.ion-ios-notifications-off:before{content:"\f1d1"}.ion-ios-notifications-outline:before{content:"\f133"}.ion-ios-nuclear:before{content:"\f1d5"}.ion-ios-nutrition:before{content:"\f470"}.ion-ios-open:before{content:"\f1d7"}.ion-ios-options:before{content:"\f1d9"}.ion-ios-outlet:before{content:"\f1db"}.ion-ios-paper:before{content:"\f472"}.ion-ios-paper-plane:before{content:"\f1dd"}.ion-ios-partly-sunny:before{content:"\f1df"}.ion-ios-pause:before{content:"\f478"}.ion-ios-paw:before{content:"\f47a"}.ion-ios-people:before{content:"\f47c"}.ion-ios-person:before{content:"\f47e"}.ion-ios-person-add:before{content:"\f1e1"}.ion-ios-phone-landscape:before{content:"\f1e2"}.ion-ios-phone-portrait:before{content:"\f1e3"}.ion-ios-photos:before{content:"\f482"}.ion-ios-pie:before{content:"\f484"}.ion-ios-pin:before{content:"\f1e5"}.ion-ios-pint:before{content:"\f486"}.ion-ios-pizza:before{content:"\f1e7"}.ion-ios-planet:before{content:"\f1eb"}.ion-ios-play:before{content:"\f488"}.ion-ios-play-circle:before{content:"\f113"}.ion-ios-podium:before{content:"\f1ed"}.ion-ios-power:before{content:"\f1ef"}.ion-ios-pricetag:before{content:"\f48d"}.ion-ios-pricetags:before{content:"\f48f"}.ion-ios-print:before{content:"\f1f1"}.ion-ios-pulse:before{content:"\f493"}.ion-ios-qr-scanner:before{content:"\f1f3"}.ion-ios-quote:before{content:"\f1f5"}.ion-ios-radio:before{content:"\f1f9"}.ion-ios-radio-button-off:before{content:"\f1f6"}.ion-ios-radio-button-on:before{content:"\f1f7"}.ion-ios-rainy:before{content:"\f495"}.ion-ios-recording:before{content:"\f497"}.ion-ios-redo:before{content:"\f499"}.ion-ios-refresh:before{content:"\f49c"}.ion-ios-refresh-circle:before{content:"\f135"}.ion-ios-remove:before{content:"\f1fc"}.ion-ios-remove-circle:before{content:"\f1fb"}.ion-ios-remove-circle-outline:before{content:"\f1fa"}.ion-ios-reorder:before{content:"\f1fd"}.ion-ios-repeat:before{content:"\f1fe"}.ion-ios-resize:before{content:"\f1ff"}.ion-ios-restaurant:before{content:"\f201"}.ion-ios-return-left:before{content:"\f202"}.ion-ios-return-right:before{content:"\f203"}.ion-ios-reverse-camera:before{content:"\f49f"}.ion-ios-rewind:before{content:"\f4a1"}.ion-ios-ribbon:before{content:"\f205"}.ion-ios-rocket:before{content:"\f14b"}.ion-ios-rose:before{content:"\f4a3"}.ion-ios-sad:before{content:"\f207"}.ion-ios-save:before{content:"\f1a6"}.ion-ios-school:before{content:"\f209"}.ion-ios-search:before{content:"\f4a5"}.ion-ios-send:before{content:"\f20c"}.ion-ios-settings:before{content:"\f4a7"}.ion-ios-share:before{content:"\f211"}.ion-ios-share-alt:before{content:"\f20f"}.ion-ios-shirt:before{content:"\f213"}.ion-ios-shuffle:before{content:"\f4a9"}.ion-ios-skip-backward:before{content:"\f215"}.ion-ios-skip-forward:before{content:"\f217"}.ion-ios-snow:before{content:"\f218"}.ion-ios-speedometer:before{content:"\f4b0"}.ion-ios-square:before{content:"\f21a"}.ion-ios-square-outline:before{content:"\f15c"}.ion-ios-star:before{content:"\f4b3"}.ion-ios-star-half:before{content:"\f4b1"}.ion-ios-star-outline:before{content:"\f4b2"}.ion-ios-stats:before{content:"\f21c"}.ion-ios-stopwatch:before{content:"\f4b5"}.ion-ios-subway:before{content:"\f21e"}.ion-ios-sunny:before{content:"\f4b7"}.ion-ios-swap:before{content:"\f21f"}.ion-ios-switch:before{content:"\f221"}.ion-ios-sync:before{content:"\f222"}.ion-ios-tablet-landscape:before{content:"\f223"}.ion-ios-tablet-portrait:before{content:"\f24e"}.ion-ios-tennisball:before{content:"\f4bb"}.ion-ios-text:before{content:"\f250"}.ion-ios-thermometer:before{content:"\f252"}.ion-ios-thumbs-down:before{content:"\f254"}.ion-ios-thumbs-up:before{content:"\f256"}.ion-ios-thunderstorm:before{content:"\f4bd"}.ion-ios-time:before{content:"\f4bf"}.ion-ios-timer:before{content:"\f4c1"}.ion-ios-today:before{content:"\f14f"}.ion-ios-train:before{content:"\f258"}.ion-ios-transgender:before{content:"\f259"}.ion-ios-trash:before{content:"\f4c5"}.ion-ios-trending-down:before{content:"\f25a"}.ion-ios-trending-up:before{content:"\f25b"}.ion-ios-trophy:before{content:"\f25d"}.ion-ios-tv:before{content:"\f115"}.ion-ios-umbrella:before{content:"\f25f"}.ion-ios-undo:before{content:"\f4c7"}.ion-ios-unlock:before{content:"\f261"}.ion-ios-videocam:before{content:"\f4cd"}.ion-ios-volume-high:before{content:"\f11c"}.ion-ios-volume-low:before{content:"\f11e"}.ion-ios-volume-mute:before{content:"\f263"}.ion-ios-volume-off:before{content:"\f264"}.ion-ios-walk:before{content:"\f266"}.ion-ios-wallet:before{content:"\f18b"}.ion-ios-warning:before{content:"\f268"}.ion-ios-watch:before{content:"\f269"}.ion-ios-water:before{content:"\f26b"}.ion-ios-wifi:before{content:"\f26d"}.ion-ios-wine:before{content:"\f26f"}.ion-ios-woman:before{content:"\f271"}.ion-logo-android:before{content:"\f225"}.ion-logo-angular:before{content:"\f227"}.ion-logo-apple:before{content:"\f229"}.ion-logo-bitbucket:before{content:"\f193"}.ion-logo-bitcoin:before{content:"\f22b"}.ion-logo-buffer:before{content:"\f22d"}.ion-logo-chrome:before{content:"\f22f"}.ion-logo-closed-captioning:before{content:"\f105"}.ion-logo-codepen:before{content:"\f230"}.ion-logo-css3:before{content:"\f231"}.ion-logo-designernews:before{content:"\f232"}.ion-logo-dribbble:before{content:"\f233"}.ion-logo-dropbox:before{content:"\f234"}.ion-logo-euro:before{content:"\f235"}.ion-logo-facebook:before{content:"\f236"}.ion-logo-flickr:before{content:"\f107"}.ion-logo-foursquare:before{content:"\f237"}.ion-logo-freebsd-devil:before{content:"\f238"}.ion-logo-game-controller-a:before{content:"\f13b"}.ion-logo-game-controller-b:before{content:"\f181"}.ion-logo-github:before{content:"\f239"}.ion-logo-google:before{content:"\f23a"}.ion-logo-googleplus:before{content:"\f23b"}.ion-logo-hackernews:before{content:"\f23c"}.ion-logo-html5:before{content:"\f23d"}.ion-logo-instagram:before{content:"\f23e"}.ion-logo-ionic:before{content:"\f150"}.ion-logo-ionitron:before{content:"\f151"}.ion-logo-javascript:before{content:"\f23f"}.ion-logo-linkedin:before{content:"\f240"}.ion-logo-markdown:before{content:"\f241"}.ion-logo-model-s:before{content:"\f153"}.ion-logo-no-smoking:before{content:"\f109"}.ion-logo-nodejs:before{content:"\f242"}.ion-logo-npm:before{content:"\f195"}.ion-logo-octocat:before{content:"\f243"}.ion-logo-pinterest:before{content:"\f244"}.ion-logo-playstation:before{content:"\f245"}.ion-logo-polymer:before{content:"\f15e"}.ion-logo-python:before{content:"\f246"}.ion-logo-reddit:before{content:"\f247"}.ion-logo-rss:before{content:"\f248"}.ion-logo-sass:before{content:"\f249"}.ion-logo-skype:before{content:"\f24a"}.ion-logo-slack:before{content:"\f10b"}.ion-logo-snapchat:before{content:"\f24b"}.ion-logo-steam:before{content:"\f24c"}.ion-logo-tumblr:before{content:"\f24d"}.ion-logo-tux:before{content:"\f2ae"}.ion-logo-twitch:before{content:"\f2af"}.ion-logo-twitter:before{content:"\f2b0"}.ion-logo-usd:before{content:"\f2b1"}.ion-logo-vimeo:before{content:"\f2c4"}.ion-logo-vk:before{content:"\f10d"}.ion-logo-whatsapp:before{content:"\f2c5"}.ion-logo-windows:before{content:"\f32f"}.ion-logo-wordpress:before{content:"\f330"}.ion-logo-xbox:before{content:"\f34c"}.ion-logo-xing:before{content:"\f10f"}.ion-logo-yahoo:before{content:"\f34d"}.ion-logo-yen:before{content:"\f34e"}.ion-logo-youtube:before{content:"\f34f"}.ion-md-add:before{content:"\f273"}.ion-md-add-circle:before{content:"\f272"}.ion-md-add-circle-outline:before{content:"\f158"}.ion-md-airplane:before{content:"\f15a"}.ion-md-alarm:before{content:"\f274"}.ion-md-albums:before{content:"\f275"}.ion-md-alert:before{content:"\f276"}.ion-md-american-football:before{content:"\f277"}.ion-md-analytics:before{content:"\f278"}.ion-md-aperture:before{content:"\f279"}.ion-md-apps:before{content:"\f27a"}.ion-md-appstore:before{content:"\f27b"}.ion-md-archive:before{content:"\f27c"}.ion-md-arrow-back:before{content:"\f27d"}.ion-md-arrow-down:before{content:"\f27e"}.ion-md-arrow-dropdown:before{content:"\f280"}.ion-md-arrow-dropdown-circle:before{content:"\f27f"}.ion-md-arrow-dropleft:before{content:"\f282"}.ion-md-arrow-dropleft-circle:before{content:"\f281"}.ion-md-arrow-dropright:before{content:"\f284"}.ion-md-arrow-dropright-circle:before{content:"\f283"}.ion-md-arrow-dropup:before{content:"\f286"}.ion-md-arrow-dropup-circle:before{content:"\f285"}.ion-md-arrow-forward:before{content:"\f287"}.ion-md-arrow-round-back:before{content:"\f288"}.ion-md-arrow-round-down:before{content:"\f289"}.ion-md-arrow-round-forward:before{content:"\f28a"}.ion-md-arrow-round-up:before{content:"\f28b"}.ion-md-arrow-up:before{content:"\f28c"}.ion-md-at:before{content:"\f28d"}.ion-md-attach:before{content:"\f28e"}.ion-md-backspace:before{content:"\f28f"}.ion-md-barcode:before{content:"\f290"}.ion-md-baseball:before{content:"\f291"}.ion-md-basket:before{content:"\f292"}.ion-md-basketball:before{content:"\f293"}.ion-md-battery-charging:before{content:"\f294"}.ion-md-battery-dead:before{content:"\f295"}.ion-md-battery-full:before{content:"\f296"}.ion-md-beaker:before{content:"\f297"}.ion-md-bed:before{content:"\f160"}.ion-md-beer:before{content:"\f298"}.ion-md-bicycle:before{content:"\f299"}.ion-md-bluetooth:before{content:"\f29a"}.ion-md-boat:before{content:"\f29b"}.ion-md-body:before{content:"\f29c"}.ion-md-bonfire:before{content:"\f29d"}.ion-md-book:before{content:"\f29e"}.ion-md-bookmark:before{content:"\f29f"}.ion-md-bookmarks:before{content:"\f2a0"}.ion-md-bowtie:before{content:"\f2a1"}.ion-md-briefcase:before{content:"\f2a2"}.ion-md-browsers:before{content:"\f2a3"}.ion-md-brush:before{content:"\f2a4"}.ion-md-bug:before{content:"\f2a5"}.ion-md-build:before{content:"\f2a6"}.ion-md-bulb:before{content:"\f2a7"}.ion-md-bus:before{content:"\f2a8"}.ion-md-business:before{content:"\f1a4"}.ion-md-cafe:before{content:"\f2a9"}.ion-md-calculator:before{content:"\f2aa"}.ion-md-calendar:before{content:"\f2ab"}.ion-md-call:before{content:"\f2ac"}.ion-md-camera:before{content:"\f2ad"}.ion-md-car:before{content:"\f2b2"}.ion-md-card:before{content:"\f2b3"}.ion-md-cart:before{content:"\f2b4"}.ion-md-cash:before{content:"\f2b5"}.ion-md-cellular:before{content:"\f164"}.ion-md-chatboxes:before{content:"\f2b6"}.ion-md-chatbubbles:before{content:"\f2b7"}.ion-md-checkbox:before{content:"\f2b9"}.ion-md-checkbox-outline:before{content:"\f2b8"}.ion-md-checkmark:before{content:"\f2bc"}.ion-md-checkmark-circle:before{content:"\f2bb"}.ion-md-checkmark-circle-outline:before{content:"\f2ba"}.ion-md-clipboard:before{content:"\f2bd"}.ion-md-clock:before{content:"\f2be"}.ion-md-close:before{content:"\f2c0"}.ion-md-close-circle:before{content:"\f2bf"}.ion-md-close-circle-outline:before{content:"\f166"}.ion-md-cloud:before{content:"\f2c9"}.ion-md-cloud-circle:before{content:"\f2c2"}.ion-md-cloud-done:before{content:"\f2c3"}.ion-md-cloud-download:before{content:"\f2c6"}.ion-md-cloud-outline:before{content:"\f2c7"}.ion-md-cloud-upload:before{content:"\f2c8"}.ion-md-cloudy:before{content:"\f2cb"}.ion-md-cloudy-night:before{content:"\f2ca"}.ion-md-code:before{content:"\f2ce"}.ion-md-code-download:before{content:"\f2cc"}.ion-md-code-working:before{content:"\f2cd"}.ion-md-cog:before{content:"\f2cf"}.ion-md-color-fill:before{content:"\f2d0"}.ion-md-color-filter:before{content:"\f2d1"}.ion-md-color-palette:before{content:"\f2d2"}.ion-md-color-wand:before{content:"\f2d3"}.ion-md-compass:before{content:"\f2d4"}.ion-md-construct:before{content:"\f2d5"}.ion-md-contact:before{content:"\f2d6"}.ion-md-contacts:before{content:"\f2d7"}.ion-md-contract:before{content:"\f2d8"}.ion-md-contrast:before{content:"\f2d9"}.ion-md-copy:before{content:"\f2da"}.ion-md-create:before{content:"\f2db"}.ion-md-crop:before{content:"\f2dc"}.ion-md-cube:before{content:"\f2dd"}.ion-md-cut:before{content:"\f2de"}.ion-md-desktop:before{content:"\f2df"}.ion-md-disc:before{content:"\f2e0"}.ion-md-document:before{content:"\f2e1"}.ion-md-done-all:before{content:"\f2e2"}.ion-md-download:before{content:"\f2e3"}.ion-md-easel:before{content:"\f2e4"}.ion-md-egg:before{content:"\f2e5"}.ion-md-exit:before{content:"\f2e6"}.ion-md-expand:before{content:"\f2e7"}.ion-md-eye:before{content:"\f2e9"}.ion-md-eye-off:before{content:"\f2e8"}.ion-md-fastforward:before{content:"\f2ea"}.ion-md-female:before{content:"\f2eb"}.ion-md-filing:before{content:"\f2ec"}.ion-md-film:before{content:"\f2ed"}.ion-md-finger-print:before{content:"\f2ee"}.ion-md-fitness:before{content:"\f1ac"}.ion-md-flag:before{content:"\f2ef"}.ion-md-flame:before{content:"\f2f0"}.ion-md-flash:before{content:"\f2f1"}.ion-md-flash-off:before{content:"\f169"}.ion-md-flashlight:before{content:"\f16b"}.ion-md-flask:before{content:"\f2f2"}.ion-md-flower:before{content:"\f2f3"}.ion-md-folder:before{content:"\f2f5"}.ion-md-folder-open:before{content:"\f2f4"}.ion-md-football:before{content:"\f2f6"}.ion-md-funnel:before{content:"\f2f7"}.ion-md-gift:before{content:"\f199"}.ion-md-git-branch:before{content:"\f2fa"}.ion-md-git-commit:before{content:"\f2fb"}.ion-md-git-compare:before{content:"\f2fc"}.ion-md-git-merge:before{content:"\f2fd"}.ion-md-git-network:before{content:"\f2fe"}.ion-md-git-pull-request:before{content:"\f2ff"}.ion-md-glasses:before{content:"\f300"}.ion-md-globe:before{content:"\f301"}.ion-md-grid:before{content:"\f302"}.ion-md-hammer:before{content:"\f303"}.ion-md-hand:before{content:"\f304"}.ion-md-happy:before{content:"\f305"}.ion-md-headset:before{content:"\f306"}.ion-md-heart:before{content:"\f308"}.ion-md-heart-dislike:before{content:"\f167"}.ion-md-heart-empty:before{content:"\f1a1"}.ion-md-heart-half:before{content:"\f1a2"}.ion-md-help:before{content:"\f30b"}.ion-md-help-buoy:before{content:"\f309"}.ion-md-help-circle:before{content:"\f30a"}.ion-md-help-circle-outline:before{content:"\f16d"}.ion-md-home:before{content:"\f30c"}.ion-md-hourglass:before{content:"\f111"}.ion-md-ice-cream:before{content:"\f30d"}.ion-md-image:before{content:"\f30e"}.ion-md-images:before{content:"\f30f"}.ion-md-infinite:before{content:"\f310"}.ion-md-information:before{content:"\f312"}.ion-md-information-circle:before{content:"\f311"}.ion-md-information-circle-outline:before{content:"\f16f"}.ion-md-jet:before{content:"\f315"}.ion-md-journal:before{content:"\f18d"}.ion-md-key:before{content:"\f316"}.ion-md-keypad:before{content:"\f317"}.ion-md-laptop:before{content:"\f318"}.ion-md-leaf:before{content:"\f319"}.ion-md-link:before{content:"\f22e"}.ion-md-list:before{content:"\f31b"}.ion-md-list-box:before{content:"\f31a"}.ion-md-locate:before{content:"\f31c"}.ion-md-lock:before{content:"\f31d"}.ion-md-log-in:before{content:"\f31e"}.ion-md-log-out:before{content:"\f31f"}.ion-md-magnet:before{content:"\f320"}.ion-md-mail:before{content:"\f322"}.ion-md-mail-open:before{content:"\f321"}.ion-md-mail-unread:before{content:"\f172"}.ion-md-male:before{content:"\f323"}.ion-md-man:before{content:"\f324"}.ion-md-map:before{content:"\f325"}.ion-md-medal:before{content:"\f326"}.ion-md-medical:before{content:"\f327"}.ion-md-medkit:before{content:"\f328"}.ion-md-megaphone:before{content:"\f329"}.ion-md-menu:before{content:"\f32a"}.ion-md-mic:before{content:"\f32c"}.ion-md-mic-off:before{content:"\f32b"}.ion-md-microphone:before{content:"\f32d"}.ion-md-moon:before{content:"\f32e"}.ion-md-more:before{content:"\f1c9"}.ion-md-move:before{content:"\f331"}.ion-md-musical-note:before{content:"\f332"}.ion-md-musical-notes:before{content:"\f333"}.ion-md-navigate:before{content:"\f334"}.ion-md-notifications:before{content:"\f338"}.ion-md-notifications-off:before{content:"\f336"}.ion-md-notifications-outline:before{content:"\f337"}.ion-md-nuclear:before{content:"\f339"}.ion-md-nutrition:before{content:"\f33a"}.ion-md-open:before{content:"\f33b"}.ion-md-options:before{content:"\f33c"}.ion-md-outlet:before{content:"\f33d"}.ion-md-paper:before{content:"\f33f"}.ion-md-paper-plane:before{content:"\f33e"}.ion-md-partly-sunny:before{content:"\f340"}.ion-md-pause:before{content:"\f341"}.ion-md-paw:before{content:"\f342"}.ion-md-people:before{content:"\f343"}.ion-md-person:before{content:"\f345"}.ion-md-person-add:before{content:"\f344"}.ion-md-phone-landscape:before{content:"\f346"}.ion-md-phone-portrait:before{content:"\f347"}.ion-md-photos:before{content:"\f348"}.ion-md-pie:before{content:"\f349"}.ion-md-pin:before{content:"\f34a"}.ion-md-pint:before{content:"\f34b"}.ion-md-pizza:before{content:"\f354"}.ion-md-planet:before{content:"\f356"}.ion-md-play:before{content:"\f357"}.ion-md-play-circle:before{content:"\f174"}.ion-md-podium:before{content:"\f358"}.ion-md-power:before{content:"\f359"}.ion-md-pricetag:before{content:"\f35a"}.ion-md-pricetags:before{content:"\f35b"}.ion-md-print:before{content:"\f35c"}.ion-md-pulse:before{content:"\f35d"}.ion-md-qr-scanner:before{content:"\f35e"}.ion-md-quote:before{content:"\f35f"}.ion-md-radio:before{content:"\f362"}.ion-md-radio-button-off:before{content:"\f360"}.ion-md-radio-button-on:before{content:"\f361"}.ion-md-rainy:before{content:"\f363"}.ion-md-recording:before{content:"\f364"}.ion-md-redo:before{content:"\f365"}.ion-md-refresh:before{content:"\f366"}.ion-md-refresh-circle:before{content:"\f228"}.ion-md-remove:before{content:"\f368"}.ion-md-remove-circle:before{content:"\f367"}.ion-md-remove-circle-outline:before{content:"\f176"}.ion-md-reorder:before{content:"\f369"}.ion-md-repeat:before{content:"\f36a"}.ion-md-resize:before{content:"\f36b"}.ion-md-restaurant:before{content:"\f36c"}.ion-md-return-left:before{content:"\f36d"}.ion-md-return-right:before{content:"\f36e"}.ion-md-reverse-camera:before{content:"\f36f"}.ion-md-rewind:before{content:"\f370"}.ion-md-ribbon:before{content:"\f371"}.ion-md-rocket:before{content:"\f179"}.ion-md-rose:before{content:"\f372"}.ion-md-sad:before{content:"\f373"}.ion-md-save:before{content:"\f1a9"}.ion-md-school:before{content:"\f374"}.ion-md-search:before{content:"\f375"}.ion-md-send:before{content:"\f376"}.ion-md-settings:before{content:"\f377"}.ion-md-share:before{content:"\f379"}.ion-md-share-alt:before{content:"\f378"}.ion-md-shirt:before{content:"\f37a"}.ion-md-shuffle:before{content:"\f37b"}.ion-md-skip-backward:before{content:"\f37c"}.ion-md-skip-forward:before{content:"\f37d"}.ion-md-snow:before{content:"\f37e"}.ion-md-speedometer:before{content:"\f37f"}.ion-md-square:before{content:"\f381"}.ion-md-square-outline:before{content:"\f380"}.ion-md-star:before{content:"\f384"}.ion-md-star-half:before{content:"\f382"}.ion-md-star-outline:before{content:"\f383"}.ion-md-stats:before{content:"\f385"}.ion-md-stopwatch:before{content:"\f386"}.ion-md-subway:before{content:"\f387"}.ion-md-sunny:before{content:"\f388"}.ion-md-swap:before{content:"\f389"}.ion-md-switch:before{content:"\f38a"}.ion-md-sync:before{content:"\f38b"}.ion-md-tablet-landscape:before{content:"\f38c"}.ion-md-tablet-portrait:before{content:"\f38d"}.ion-md-tennisball:before{content:"\f38e"}.ion-md-text:before{content:"\f38f"}.ion-md-thermometer:before{content:"\f390"}.ion-md-thumbs-down:before{content:"\f391"}.ion-md-thumbs-up:before{content:"\f392"}.ion-md-thunderstorm:before{content:"\f393"}.ion-md-time:before{content:"\f394"}.ion-md-timer:before{content:"\f395"}.ion-md-today:before{content:"\f17d"}.ion-md-train:before{content:"\f396"}.ion-md-transgender:before{content:"\f397"}.ion-md-trash:before{content:"\f398"}.ion-md-trending-down:before{content:"\f399"}.ion-md-trending-up:before{content:"\f39a"}.ion-md-trophy:before{content:"\f39b"}.ion-md-tv:before{content:"\f17f"}.ion-md-umbrella:before{content:"\f39c"}.ion-md-undo:before{content:"\f39d"}.ion-md-unlock:before{content:"\f39e"}.ion-md-videocam:before{content:"\f39f"}.ion-md-volume-high:before{content:"\f123"}.ion-md-volume-low:before{content:"\f131"}.ion-md-volume-mute:before{content:"\f3a1"}.ion-md-volume-off:before{content:"\f3a2"}.ion-md-walk:before{content:"\f3a4"}.ion-md-wallet:before{content:"\f18f"}.ion-md-warning:before{content:"\f3a5"}.ion-md-watch:before{content:"\f3a6"}.ion-md-water:before{content:"\f3a7"}.ion-md-wifi:before{content:"\f3a8"}.ion-md-wine:before{content:"\f3a9"}.ion-md-woman:before{content:"\f3aa"}
diff --git a/src/docs/styles/laravel.css b/src/docs/styles/laravel.css
new file mode 100644
index 0000000..fc53842
--- /dev/null
+++ b/src/docs/styles/laravel.css
@@ -0,0 +1,69 @@
+.navbar-default .navbar-brand {
+    color: #f4645f;
+    text-decoration: none;
+    font-size: 16px;
+}
+
+.menu ul.list li a[data-type="chapter-link"], .menu ul.list li.chapter .simple {
+    color: #525252;
+    border-bottom: 1px dashed rgba(0,0,0,.1);
+}
+
+.content h1, .content h2, .content h3, .content h4, .content h5 {
+    color: #292e31;
+    font-weight: normal;
+}
+
+.content {
+    color: #4c555a;
+}
+
+a {
+    color: #f4645f;
+    text-decoration: underline;
+}
+a:hover {
+    color: #f1362f;
+}
+
+.menu ul.list li:nth-child(2) {
+    margin-top: 0;
+}
+
+.menu ul.list li.title a {
+    color: #f4645f;
+    text-decoration: none;
+    font-size: 16px;
+}
+
+.menu ul.list li a {
+    color: #f4645f;
+    text-decoration: none;
+}
+.menu ul.list li a.active {
+    color: #f4645f;
+    font-weight: bold;
+}
+
+code {
+    box-sizing: border-box;
+    display: inline-block;
+    padding: 0 5px;
+    background: #f0f2f1;
+    border-radius: 3px;
+    color: #b93d6a;
+    font-size: 13px;
+    line-height: 20px;
+    box-shadow: 0 1px 1px rgba(0,0,0,.125);
+}
+
+pre {
+    margin: 0;
+    padding: 12px 12px;
+    background: rgba(238,238,238,.35);
+    border-radius: 3px;
+    font-size: 13px;
+    line-height: 1.5em;
+    font-weight: 500;
+    box-shadow: 0 1px 1px rgba(0,0,0,.125);
+}
diff --git a/src/docs/styles/material.css b/src/docs/styles/material.css
new file mode 100644
index 0000000..a8dfd3f
--- /dev/null
+++ b/src/docs/styles/material.css
@@ -0,0 +1,109 @@
+.menu {
+    background: none;
+}
+
+a:hover {
+    text-decoration: none;
+}
+
+/** LINK **/
+
+.menu ul.list li a {
+    text-decoration: none;
+}
+
+.menu ul.list li a:hover, .menu ul.list li.chapter .simple:hover {
+    background-color: #f8f9fa;
+    text-decoration: none;
+}
+
+#book-search-input {
+    margin-bottom: 0;
+}
+
+.menu ul.list li.divider {
+    margin-top: 0;
+    background: #e9ecef;
+}
+
+.menu .title:hover {
+    background-color: #f8f9fa;
+}
+
+/** CARD **/
+
+.card {
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+    border-radius: 0.125rem;
+    border: 0;
+    margin-top: 1px;
+}
+
+.card-header {
+    background: none;
+}
+
+/** BUTTON **/
+
+.btn {
+    border-radius: 0.125rem;
+}
+
+/** NAV BAR **/
+
+.nav {
+    border: 0;
+}
+.nav-tabs > li > a {
+    border: 0;
+    border-bottom: 0.214rem solid transparent;
+    color: rgba(0, 0, 0, 0.54);
+    margin-right: 0;
+}
+.nav-tabs>li.active>a, .nav-tabs>li.active>a:focus, .nav-tabs>li.active>a:hover {
+    color: rgba(0, 0, 0, 0.87);
+    border-top: 0;
+    border-left: 0;
+    border-right: 0;
+    border-bottom: 0.214rem solid transparent;
+    border-color: #008cff;
+    font-weight: bold;
+}
+.nav>li>a:focus, .nav>li>a:hover {
+    background: none;
+}
+
+/** LIST **/
+
+.list-group-item:first-child {
+    border-top-left-radius: 0.125rem;
+    border-top-right-radius: 0.125rem;
+}
+.list-group-item:last-child {
+    border-bottom-left-radius: 0.125rem;
+    border-bottom-right-radius: 0.125rem;
+}
+
+/** MISC **/
+
+.modifier {
+    border-radius: 0.125rem;
+}
+
+pre[class*="language-"] {
+    border-radius: 0.125rem;
+}
+
+/** TABLE **/
+
+.table-hover>tbody>tr:hover {
+    background: rgba(0, 0, 0, 0.075);
+}
+
+table.params thead {
+    background: none;
+}
+table.params thead td {
+    color: rgba(0, 0, 0, 0.54);
+    font-weight: bold;
+}
\ No newline at end of file
diff --git a/src/docs/styles/original.css b/src/docs/styles/original.css
new file mode 100644
index 0000000..735dcd9
--- /dev/null
+++ b/src/docs/styles/original.css
@@ -0,0 +1,47 @@
+.navbar-default .navbar-brand, .menu ul.list li.title {
+    font-weight: bold;
+    color: #3c3c3c;
+    padding-bottom: 5px;
+}
+
+.menu ul.list li a[data-type="chapter-link"], .menu ul.list li.chapter .simple {
+    font-weight: bold;
+    border-top: 1px solid #ddd;
+    border-bottom: 1px solid #ddd;
+    font-size: 14px;
+}
+
+.menu ul.list li a[href="./routes.html"] {
+    border-bottom: none;
+}
+
+.menu ul.list > li:nth-child(2) {
+    display: none;
+}
+
+.menu ul.list li.chapter ul.links {
+    background: #fff;
+    padding-left: 0;
+}
+
+.menu ul.list li.chapter ul.links li {
+    border-bottom: 1px solid #ddd;
+    padding-left: 20px;
+}
+
+.menu ul.list li.chapter ul.links li:last-child {
+    border-bottom: none;
+}
+
+.menu ul.list li a.active {
+    color: inherit;
+    font-weight: bold;
+}
+
+#book-search-input {
+    margin-bottom: 0;
+    border-bottom: none;
+}
+.menu ul.list li.divider {
+    margin: 0;
+}
diff --git a/src/docs/styles/postmark.css b/src/docs/styles/postmark.css
new file mode 100644
index 0000000..4a996c1
--- /dev/null
+++ b/src/docs/styles/postmark.css
@@ -0,0 +1,210 @@
+.navbar-default {
+    background: #FFDE00;
+    border: none;
+}
+.navbar-default .navbar-brand {
+    color: #333;
+    font-weight: bold;
+}
+.menu {
+    background: #333;
+    color: #fcfcfc;
+}
+.menu ul.list li a {
+    color: #333;
+}
+
+.menu ul.list li.title {
+    background: #FFDE00;
+    color: #333;
+    padding-bottom: 5px;
+}
+
+.menu ul.list li:nth-child(2) {
+    margin-top: 0;
+}
+
+.menu ul.list li.chapter a, .menu ul.list li.chapter .simple {
+    color: white;
+    text-decoration: none;
+}
+
+.menu ul.list li.chapter ul.links a {
+    color: #949494;
+    text-transform: none;
+    padding-left: 35px;
+}
+.menu ul.list li.chapter ul.links a:hover, .menu ul.list li.chapter ul.links a.active {
+    color: #FFDE00;
+}
+
+.menu ul.list li.chapter ul.links {
+    padding-left: 0;
+}
+
+.menu ul.list li.divider {
+    background: rgba(255, 255, 255, 0.07);
+}
+
+#book-search-input input, #book-search-input input:focus, #book-search-input input:hover {
+    color: #949494;
+}
+
+.copyright {
+    color: #b3b3b3;
+}
+
+.content {
+    background: #fcfcfc;
+}
+
+.content a {
+    color: #007DCC;
+}
+.content a:visited {
+    color: #0165a5;
+}
+.copyright {
+    background: #272525;
+}
+.menu ul.list li:nth-last-child(2) {
+    background: none;
+}
+.list-group-item:first-child, .list-group-item:last-child {
+    border-radius: 0;
+}
+
+.menu ul.list li.title a {
+    text-decoration: none;
+    font-weight: bold;
+}
+.menu ul.list li.title a:hover {
+    background: rgba(255,255,255,0.1);
+}
+
+.breadcrumb>li+li:before {
+     content: "»\00a0"
+}
+
+.breadcrumb {
+    padding-bottom: 15px;
+    border-bottom: 1px solid #e1e4e5;
+}
+code {
+    white-space: nowrap;
+    max-width: 100%;
+    background: #F5F5F5;
+    padding: 2px 5px;
+    color: #666666;
+    overflow-x: auto;
+    border-radius: 0;
+}
+pre {
+    white-space: pre;
+    margin: 0;
+    padding: 12px 12px;
+    font-size: 12px;
+    line-height: 1.5;
+    display: block;
+    overflow: auto;
+    color: #404040;
+    background: #f3f3f3;
+}
+pre code.hljs {
+    border: none;
+    background: inherit;
+}
+
+/*
+Atom One Light by Daniel Gamage
+Original One Light Syntax theme from https://github.com/atom/one-light-syntax
+base:    #fafafa
+mono-1:  #383a42
+mono-2:  #686b77
+mono-3:  #a0a1a7
+hue-1:   #0184bb
+hue-2:   #4078f2
+hue-3:   #a626a4
+hue-4:   #50a14f
+hue-5:   #e45649
+hue-5-2: #c91243
+hue-6:   #986801
+hue-6-2: #c18401
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  color: #383a42;
+  background: #fafafa;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #a0a1a7;
+  font-style: italic;
+}
+
+.hljs-doctag,
+.hljs-keyword,
+.hljs-formula {
+  color: #a626a4;
+}
+
+.hljs-section,
+.hljs-name,
+.hljs-selector-tag,
+.hljs-deletion,
+.hljs-subst {
+  color: #e45649;
+}
+
+.hljs-literal {
+  color: #0184bb;
+}
+
+.hljs-string,
+.hljs-regexp,
+.hljs-addition,
+.hljs-attribute,
+.hljs-meta-string {
+  color: #50a14f;
+}
+
+.hljs-built_in,
+.hljs-class .hljs-title {
+  color: #c18401;
+}
+
+.hljs-attr,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-type,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-number {
+  color: #986801;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link,
+.hljs-meta,
+.hljs-selector-id,
+.hljs-title {
+  color: #4078f2;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-link {
+  text-decoration: underline;
+}
diff --git a/src/docs/styles/prism.css b/src/docs/styles/prism.css
new file mode 100644
index 0000000..b069d18
--- /dev/null
+++ b/src/docs/styles/prism.css
@@ -0,0 +1,267 @@
+/* http://prismjs.com/download.html?themes=prism-okaidia&languages=markup+css+clike+javascript+json+markdown+typescript&plugins=line-highlight+line-numbers+toolbar+copy-to-clipboard */
+/**
+ * okaidia theme for JavaScript, CSS and HTML
+ * Loosely based on Monokai textmate theme by http://www.monokai.nl/
+ * @author ocodia
+ */
+
+ code[class*="language-"],
+pre[class*="language-"] {
+	color: #f8f8f2;
+	background: none;
+	text-shadow: 0 1px rgba(0, 0, 0, 0.3);
+	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+	text-align: left;
+	white-space: pre;
+	word-spacing: normal;
+	word-break: normal;
+	word-wrap: normal;
+	line-height: 1.5;
+
+	-moz-tab-size: 4;
+	-o-tab-size: 4;
+	tab-size: 4;
+
+	-webkit-hyphens: none;
+	-moz-hyphens: none;
+	-ms-hyphens: none;
+	hyphens: none;
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+	padding: 1em;
+	margin: .5em 0;
+	overflow: auto;
+	border-radius: 0.3em;
+}
+
+:not(pre) > code[class*="language-"],
+pre[class*="language-"] {
+	background: #272822;
+}
+
+/* Inline code */
+:not(pre) > code[class*="language-"] {
+	padding: .1em;
+	border-radius: .3em;
+	white-space: normal;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+	color: slategray;
+}
+
+.token.punctuation {
+	color: #f8f8f2;
+}
+
+.namespace {
+	opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.constant,
+.token.symbol,
+.token.deleted {
+	color: #f92672;
+}
+
+.token.boolean,
+.token.number {
+	color: #ae81ff;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+	color: #a6e22e;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string,
+.token.variable {
+	color: #f8f8f2;
+}
+
+.token.atrule,
+.token.attr-value,
+.token.function {
+	color: #e6db74;
+}
+
+.token.keyword {
+	color: #66d9ef;
+}
+
+.token.regex,
+.token.important {
+	color: #fd971f;
+}
+
+.token.important,
+.token.bold {
+	font-weight: bold;
+}
+.token.italic {
+	font-style: italic;
+}
+
+.token.entity {
+	cursor: help;
+}
+
+pre[data-line] {
+	position: relative;
+	padding: 1em 0 1em 3em;
+}
+
+.line-highlight {
+	position: absolute;
+	left: 0;
+	right: 0;
+	padding: inherit 0;
+	margin-top: 1em; /* Same as .prism’s padding-top */
+
+	background: hsla(24, 20%, 50%,.08);
+	background: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
+
+	pointer-events: none;
+
+	line-height: inherit;
+	white-space: pre;
+}
+
+.line-highlight:before,
+.line-highlight[data-end]:after {
+	content: attr(data-start);
+	position: absolute;
+	top: .4em;
+	left: .6em;
+	min-width: 1em;
+	padding: 0 .5em;
+	background-color: hsla(24, 20%, 50%,.4);
+	color: hsl(24, 20%, 95%);
+	font: bold 65%/1.5 sans-serif;
+	text-align: center;
+	vertical-align: .3em;
+	border-radius: 999px;
+	text-shadow: none;
+	box-shadow: 0 1px white;
+}
+
+.line-highlight[data-end]:after {
+	content: attr(data-end);
+	top: auto;
+	bottom: .4em;
+}
+
+pre.line-numbers {
+	position: relative;
+	padding-left: 3.8em;
+	counter-reset: linenumber;
+}
+
+pre.line-numbers > code {
+	position: relative;
+	white-space: inherit;
+}
+
+.line-numbers .line-numbers-rows {
+	position: absolute;
+	pointer-events: none;
+	top: 0;
+	font-size: 100%;
+	left: -3.8em;
+	width: 3em; /* works for line-numbers below 1000 lines */
+	letter-spacing: -1px;
+	border-right: 1px solid #999;
+
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+
+}
+
+.line-numbers-rows > span {
+	pointer-events: none;
+	display: block;
+	counter-increment: linenumber;
+}
+
+.line-numbers-rows > span:before {
+	content: counter(linenumber);
+	color: #999;
+	display: block;
+	padding-right: 0.8em;
+	text-align: right;
+}
+div.code-toolbar {
+	position: relative;
+}
+
+div.code-toolbar > .toolbar {
+	position: absolute;
+	top: .3em;
+	right: .2em;
+	transition: opacity 0.3s ease-in-out;
+	opacity: 0;
+}
+
+div.code-toolbar:hover > .toolbar {
+	opacity: 1;
+}
+
+div.code-toolbar > .toolbar .toolbar-item {
+	display: inline-block;
+}
+
+div.code-toolbar > .toolbar a {
+	cursor: pointer;
+}
+
+div.code-toolbar > .toolbar button {
+	background: none;
+	border: 0;
+	color: inherit;
+	font: inherit;
+	line-height: normal;
+	overflow: visible;
+	padding: 0;
+	-webkit-user-select: none; /* for button */
+	-moz-user-select: none;
+	-ms-user-select: none;
+}
+
+div.code-toolbar > .toolbar a,
+div.code-toolbar > .toolbar button,
+div.code-toolbar > .toolbar span {
+	color: #bbb;
+	font-size: .8em;
+	padding: 0 .5em;
+	background: #f5f2f0;
+	background: rgba(224, 224, 224, 0.2);
+	box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
+	border-radius: .5em;
+}
+
+div.code-toolbar > .toolbar a:hover,
+div.code-toolbar > .toolbar a:focus,
+div.code-toolbar > .toolbar button:hover,
+div.code-toolbar > .toolbar button:focus,
+div.code-toolbar > .toolbar span:hover,
+div.code-toolbar > .toolbar span:focus {
+	color: inherit;
+	text-decoration: none;
+}
\ No newline at end of file
diff --git a/src/docs/styles/readthedocs.css b/src/docs/styles/readthedocs.css
new file mode 100644
index 0000000..a101f20
--- /dev/null
+++ b/src/docs/styles/readthedocs.css
@@ -0,0 +1,98 @@
+.navbar-default {
+    background: #2980B9;
+    border: none;
+}
+.navbar-default .navbar-brand {
+    color: #fcfcfc;
+}
+.menu {
+    background: #343131;
+    color: #fcfcfc;
+}
+.menu ul.list li a {
+    color: #fcfcfc;
+}
+
+.menu ul.list li a.active {
+    color: #0099e5;
+}
+
+.menu ul.list li.title {
+    background: #2980B9;
+    padding-bottom: 5px;
+}
+
+.menu ul.list li:nth-child(2) {
+    margin-top: 0;
+}
+
+.menu ul.list li.chapter a, .menu ul.list li.chapter .simple {
+    color: #555;
+    text-transform: uppercase;
+    text-decoration: none;
+}
+
+.menu ul.list li.chapter ul.links a {
+    color: #b3b3b3;
+    text-transform: none;
+    padding-left: 35px;
+}
+.menu ul.list li.chapter ul.links a:hover {
+    background: #4E4A4A;
+}
+
+.menu ul.list li.chapter ul.links {
+    padding-left: 0;
+}
+
+.menu ul.list li.divider {
+    background: rgba(255, 255, 255, 0.07);
+}
+
+#book-search-input input, #book-search-input input:focus, #book-search-input input:hover {
+    color: #949494;
+}
+
+.copyright {
+    color: #b3b3b3;
+}
+
+.content {
+    background: #fcfcfc;
+}
+
+.content a {
+    color: #2980B9;
+}
+.content a:hover {
+    color: #3091d1;
+}
+.content a:visited {
+    color: #9B59B6;
+}
+.copyright {
+    background: #272525;
+}
+.menu ul.list li:nth-last-child(2) {
+    background: none;
+}
+code {
+    white-space: nowrap;
+    max-width: 100%;
+    background: #fff;
+    padding: 2px 5px;
+    color: #E74C3C;
+    overflow-x: auto;
+    border-radius: 0;
+}
+pre {
+    white-space: pre;
+    margin: 0;
+    padding: 12px 12px;
+    font-size: 12px;
+    line-height: 1.5;
+    display: block;
+    overflow: auto;
+    color: #404040;
+    background: rgba(238,238,238,.35);
+}
diff --git a/src/docs/styles/reset.css b/src/docs/styles/reset.css
new file mode 100644
index 0000000..af94440
--- /dev/null
+++ b/src/docs/styles/reset.css
@@ -0,0 +1,48 @@
+/* http://meyerweb.com/eric/tools/css/reset/ 
+   v2.0 | 20110126
+   License: none (public domain)
+*/
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed, 
+figure, figcaption, footer, header, hgroup, 
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	font-size: 100%;
+	font: inherit;
+	vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure, 
+footer, header, hgroup, menu, nav, section {
+	display: block;
+}
+body {
+	line-height: 1;
+}
+ol, ul {
+	list-style: none;
+}
+blockquote, q {
+	quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+	content: '';
+	content: none;
+}
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+}
\ No newline at end of file
diff --git a/src/docs/styles/stripe.css b/src/docs/styles/stripe.css
new file mode 100644
index 0000000..2b33376
--- /dev/null
+++ b/src/docs/styles/stripe.css
@@ -0,0 +1,65 @@
+.navbar-default .navbar-brand {
+    color: #0099e5;
+}
+
+.menu ul.list li a[data-type="chapter-link"], .menu ul.list li.chapter .simple {
+    color: #939da3;
+    text-transform: uppercase;
+}
+
+.content h1, .content h2, .content h3, .content h4, .content h5 {
+    color: #292e31;
+    font-weight: normal;
+}
+
+.content {
+    color: #4c555a;
+}
+
+.menu ul.list li.title {
+    padding: 5px 0;
+}
+
+a {
+    color: #0099e5;
+    text-decoration: none;
+}
+a:hover {
+    color: #292e31;
+    text-decoration: none;
+}
+
+.menu ul.list li:nth-child(2) {
+    margin-top: 0;
+}
+
+.menu ul.list li.title a, .navbar a {
+    color: #0099e5;
+    text-decoration: none;
+    font-size: 16px;
+}
+
+.menu ul.list li a.active {
+    color: #0099e5;
+}
+
+code {
+    box-sizing: border-box;
+    display: inline-block;
+    padding: 0 5px;
+    background: #fafcfc;
+    border-radius: 4px;
+    color: #b93d6a;
+    font-size: 13px;
+    line-height: 20px
+}
+
+pre {
+    margin: 0;
+    padding: 12px 12px;
+    background: #272b2d;
+    border-radius: 5px;
+    font-size: 13px;
+    line-height: 1.5em;
+    font-weight: 500
+}
diff --git a/src/docs/styles/style.css b/src/docs/styles/style.css
new file mode 100644
index 0000000..09e9f1e
--- /dev/null
+++ b/src/docs/styles/style.css
@@ -0,0 +1,7 @@
+@import "./reset.css";
+@import "./bootstrap.min.css";
+@import "./bootstrap-card.css";
+@import "./prism.css";
+@import "./ionicons.min.css";
+@import "./compodoc.css";
+@import "./tablesort.css";
diff --git a/src/docs/styles/tablesort.css b/src/docs/styles/tablesort.css
new file mode 100644
index 0000000..f715483
--- /dev/null
+++ b/src/docs/styles/tablesort.css
@@ -0,0 +1,33 @@
+th[role=columnheader]:not(.no-sort) {
+	cursor: pointer;
+}
+
+th[role=columnheader]:not(.no-sort):after {
+	content: '';
+	float: right;
+	margin-top: 7px;
+	border-width: 0 4px 4px;
+	border-style: solid;
+	border-color: #404040 transparent;
+	visibility: visible;
+	opacity: 1;
+	-ms-user-select: none;
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	user-select: none;
+}
+
+th[aria-sort=ascending]:not(.no-sort):after {
+	border-bottom: none;
+	border-width: 4px 4px 0;
+}
+
+th[aria-sort]:not(.no-sort):after {
+	visibility: visible;
+	opacity: 0.4;
+}
+
+th[role=columnheader]:not(.no-sort):hover:after {
+	visibility: visible;
+	opacity: 1;
+}
diff --git a/src/docs/styles/vagrant.css b/src/docs/styles/vagrant.css
new file mode 100644
index 0000000..c1c35b1
--- /dev/null
+++ b/src/docs/styles/vagrant.css
@@ -0,0 +1,96 @@
+.navbar-default .navbar-brand {
+    background: white;
+    color: #8d9ba8;
+}
+
+.menu .list {
+    background: #0c5593;
+}
+
+.menu .chapter {
+    padding: 0 20px;
+}
+
+.menu ul.list li a[data-type="chapter-link"], .menu ul.list li.chapter .simple {
+    color: white;
+    text-transform: uppercase;
+    border-bottom: 1px solid rgba(255,255,255,0.4);
+}
+
+.content h1, .content h2, .content h3, .content h4, .content h5 {
+    color: #292e31;
+    font-weight: normal;
+}
+
+.content {
+    color: #4c555a;
+}
+
+a {
+    color: #0094bf;
+    text-decoration: underline;
+}
+a:hover {
+    color: #f1362f;
+}
+
+.menu ul.list li.title {
+    background: white;
+    padding-bottom: 5px;
+}
+
+.menu ul.list li:nth-child(2) {
+    margin-top: 0;
+}
+
+.menu ul.list li:nth-last-child(2) {
+    background: none;
+}
+
+.menu ul.list li.title a {
+    padding: 10px 15px;
+}
+
+.menu ul.list li.title a, .navbar a {
+    color: #8d9ba8;
+    text-decoration: none;
+    font-size: 16px;
+    font-weight: 300;
+}
+
+.menu ul.list li a {
+    color: white;
+    padding: 10px;
+    font-weight: 300;
+    text-decoration: none;
+}
+.menu ul.list li a.active {
+    color: white;
+    font-weight: bold;
+}
+
+.copyright {
+    color: white;
+    background: #000;
+}
+
+code {
+    box-sizing: border-box;
+    display: inline-block;
+    padding: 0 5px;
+    background: rgba(0,148,191,0.1);
+    border-radius: 3px;
+    color: #0094bf;
+    font-size: 13px;
+    line-height: 20px;
+}
+
+pre {
+    margin: 0;
+    padding: 12px 12px;
+    background: rgba(238,238,238,.35);
+    border-radius: 3px;
+    font-size: 13px;
+    line-height: 1.5em;
+    font-weight: 500;
+}

From c3abd39fb936180115344fd5a29d2f854c0f5f31 Mon Sep 17 00:00:00 2001
From: Anartz Mugika <mugan86@gmail.com>
Date: Wed, 31 Oct 2018 18:42:55 +0100
Subject: [PATCH 5/7] Update package

---
 package.json | 84 ++++++++++++++++++++++++++--------------------------
 1 file changed, 42 insertions(+), 42 deletions(-)

diff --git a/package.json b/package.json
index 1493f31..29ae396 100644
--- a/package.json
+++ b/package.json
@@ -10,52 +10,52 @@
     "e2e": "ng e2e",
     "prod": "ng build --prod --base-href='./'",
     "firebase": "ng build --prod && firebase deploy",
-    "compodoc": "./node_modules/.bin/compodoc -p src/tsconfig.app.json"
+    "compodoc": "./node_modules/.bin/compodoc -p src/tsconfig.app.json --output src/docs --serve --open"
   },
   "private": true,
   "dependencies": {
-    "@agm/core": "^1.0.0-beta.3",
-    "@agm/js-marker-clusterer": "^1.0.0-beta.3",
-    "@angular/animations": "^6.0.3",
-    "@angular/common": "^6.0.3",
-    "@angular/compiler": "^6.0.3",
-    "@angular/core": "^6.0.3",
-    "@angular/forms": "^6.0.3",
-    "@angular/http": "^6.0.3",
-    "@angular/platform-browser": "^6.0.3",
-    "@angular/platform-browser-dynamic": "^6.0.3",
-    "@angular/router": "^6.0.3",
-    "@toverux/ngx-sweetalert2": "^4.0.0",
-    "chart.js": "^2.7.2",
-    "core-js": "^2.5.4",
-    "i18n-config": "^1.0.3",
-    "js-marker-clusterer": "^1.0.0",
-    "ng2-charts": "^1.6.0",
-    "ngx-easy-table": "^5.1.0",
-    "rxjs": "^6.0.0",
-    "sweetalert2": "^7.25.3",
-    "zone.js": "^0.8.26"
+    "@agm/core": "1.0.0-beta.3",
+    "@agm/js-marker-clusterer": "1.0.0-beta.3",
+    "@angular/animations": "6.0.3",
+    "@angular/common": "6.0.3",
+    "@angular/compiler": "6.0.3",
+    "@angular/core": "6.0.3",
+    "@angular/forms": "6.0.3",
+    "@angular/http": "6.0.3",
+    "@angular/platform-browser": "6.0.3",
+    "@angular/platform-browser-dynamic": "6.0.3",
+    "@angular/router": "6.0.3",
+    "@toverux/ngx-sweetalert2": "4.0.0",
+    "chart.js": "2.7.3",
+    "core-js": "2.5.4",
+    "i18n-config": "1.0.4",
+    "js-marker-clusterer": "1.0.0",
+    "ng2-charts": "1.6.0",
+    "ngx-easy-table": "5.1.0",
+    "rxjs": "6.0.0",
+    "sweetalert2": "7.25.3",
+    "zone.js": "0.8.26"
   },
   "devDependencies": {
-    "@angular-devkit/build-angular": "~0.6.8",
-    "@angular/cli": "~6.0.8",
-    "@angular/compiler-cli": "^6.0.3",
-    "@angular/language-service": "^6.0.3",
-    "@compodoc/compodoc": "^1.1.5",
-    "@types/jasmine": "~2.8.6",
-    "@types/jasminewd2": "~2.0.3",
-    "@types/node": "~8.9.4",
-    "codelyzer": "~4.2.1",
-    "jasmine-core": "~2.99.1",
-    "jasmine-spec-reporter": "~4.2.1",
-    "karma": "~1.7.1",
-    "karma-chrome-launcher": "~2.2.0",
-    "karma-coverage-istanbul-reporter": "~2.0.0",
-    "karma-jasmine": "~1.1.1",
-    "karma-jasmine-html-reporter": "^0.2.2",
-    "protractor": "~5.3.0",
-    "ts-node": "~5.0.1",
-    "tslint": "~5.9.1",
-    "typescript": "~2.7.2"
+    "@angular-devkit/build-angular": "0.6.8",
+    "@angular/cli": "6.0.8",
+    "@angular/compiler-cli": "6.0.3",
+    "@angular/language-service": "6.0.3",
+    "@compodoc/compodoc": "1.1.6",
+    "@types/jasmine": "2.8.6",
+    "@types/jasminewd2": "2.0.3",
+    "@types/node": "8.9.4",
+    "codelyzer": "4.2.1",
+    "jasmine-core": "2.99.1",
+    "jasmine-spec-reporter": "4.2.1",
+    "karma": "3.1.1",
+    "karma-chrome-launcher": "2.2.0",
+    "karma-coverage-istanbul-reporter": "2.0.0",
+    "karma-jasmine": "1.1.1",
+    "karma-jasmine-html-reporter": "0.2.2",
+    "protractor": "5.4.1",
+    "ts-node": "5.0.1",
+    "tslint": "5.9.1",
+    "typescript": "2.7.2"
   }
 }

From e832e689e6bacd35ca0213004a27f9b6f6ceb3ea Mon Sep 17 00:00:00 2001
From: Anartz Mugika <mugan86@gmail.com>
Date: Wed, 31 Oct 2018 18:43:12 +0100
Subject: [PATCH 6/7] Apply changes

---
 src/app/pages/circuits/circuits.component.ts | 54 ++++++--------------
 1 file changed, 17 insertions(+), 37 deletions(-)

diff --git a/src/app/pages/circuits/circuits.component.ts b/src/app/pages/circuits/circuits.component.ts
index 48b211b..a343e30 100644
--- a/src/app/pages/circuits/circuits.component.ts
+++ b/src/app/pages/circuits/circuits.component.ts
@@ -25,34 +25,21 @@ export class CircuitsComponent implements OnInit {
 
   ngOnInit() {
     this.showInfo = false;
-    this.selectPageService.setSelectPage(`circuits`);
+    this.selectPageService.setSelectPage('circuits');
     this.loadDataFromAssets();
   }
-  /**
-   * @example
-   * Example to open dialog with pass info.
-   * loadDataDialog(true)
-   *
-   * @param {boolean }open use boolean value to open or close select load data dialog
-   */
+
   private loadDataDialog(open: boolean = true) {
     if (open) {
       this._alertService.loadData(
         `Load ${this.selectYear} season circuits list!!`,
-        `Wait a moment please!!`
+        'Wait a moment please!!'
       );
     } else {
       this._alertService.closeAlert();
     }
   }
-  /**
-   * @example
-   * This is a good example. Add years from 1950 to 2018
-   * selectYearCircuits("2017")
-   *
-   * @param {string} year  The year to take select circuits to show
-   * @returns
-   */
+
   selectYearCircuits(year: string = String(new Date().getFullYear())) {
     this.selectYear = year;
     this.loadDataDialog();
@@ -70,38 +57,31 @@ export class CircuitsComponent implements OnInit {
   }
 
   /**
-   * Take data from a local file in json format
-   */
+  * Take data from a local file in json format
+  */
   loadDataFromAssets() {
     this.selectYear = '2018';
     this.loadDataDialog();
-    this._circuitService.loadListFromLocal().subscribe((data: Circuit[]) => {
-      this.showInfo = true;
-      this.selectPageService.setSelectPage(
-        `Circuits List to  ${this.selectYear} season`
-      );
-      this.circuitsList = data;
-      this.loadDataDialog(false);
-    });
+    this._circuitService
+      .loadListFromLocal()
+      .subscribe((data: Circuit[]) => {
+        this.showInfo = true;
+        this.selectPageService.setSelectPage(`Circuits List to  ${this.selectYear} season`);
+        this.circuitsList = data;
+        this.loadDataDialog(false);
+      });
   }
 
   infoAlert(circuit: Circuit) {
-    const googleStaticMapUrl = new GoogleStaticMapUrlPipe().transform(
-      circuit.Location,
-      `h`,
-      `red`,
-      `C`,
-      1000,
-      300,
-      5
-    );
+
+    const googleStaticMapUrl = new GoogleStaticMapUrlPipe().transform(circuit.Location, `h`, `red`, `C`, 1000, 300, 5);
     const locationText = new LocationTextPipe().transform(circuit.Location);
     const googleMapsUrl = new GoogleMapsUrlPipe().transform(circuit.Location);
     swal({
       title: `<br/><strong> ${circuit.circuitName} </strong>`,
       html: `Location: ${locationText} <br/><br/>
         <img class="card-img-top animated fadeIn" style="width:100%" src="${googleStaticMapUrl}"
-        alt="${circuit.circuitName} circuit image">
+        alt="Card image">
         <br/><br/>
         <a href="${googleMapsUrl}" target="_blank">
         Open in Google Maps</a>`,

From 931a18be62f88708359b2628a96045b962df6a01 Mon Sep 17 00:00:00 2001
From: Anartz Mugika <mugan86@gmail.com>
Date: Wed, 31 Oct 2018 18:43:22 +0100
Subject: [PATCH 7/7] Update

---
 src/assets/vendor/chart.js/Chart.bundle.js | 304 ++++++++++-----------
 src/assets/vendor/chart.js/Chart.js        | 304 ++++++++++-----------
 2 files changed, 304 insertions(+), 304 deletions(-)

diff --git a/src/assets/vendor/chart.js/Chart.bundle.js b/src/assets/vendor/chart.js/Chart.bundle.js
index aa0a9ca..86eee28 100755
--- a/src/assets/vendor/chart.js/Chart.bundle.js
+++ b/src/assets/vendor/chart.js/Chart.bundle.js
@@ -1511,158 +1511,158 @@ Converter.prototype.getValues = function(space) {
 
 module.exports = convert;
 },{"3":3}],5:[function(require,module,exports){
-'use strict'
-
-module.exports = {
-	"aliceblue": [240, 248, 255],
-	"antiquewhite": [250, 235, 215],
-	"aqua": [0, 255, 255],
-	"aquamarine": [127, 255, 212],
-	"azure": [240, 255, 255],
-	"beige": [245, 245, 220],
-	"bisque": [255, 228, 196],
-	"black": [0, 0, 0],
-	"blanchedalmond": [255, 235, 205],
-	"blue": [0, 0, 255],
-	"blueviolet": [138, 43, 226],
-	"brown": [165, 42, 42],
-	"burlywood": [222, 184, 135],
-	"cadetblue": [95, 158, 160],
-	"chartreuse": [127, 255, 0],
-	"chocolate": [210, 105, 30],
-	"coral": [255, 127, 80],
-	"cornflowerblue": [100, 149, 237],
-	"cornsilk": [255, 248, 220],
-	"crimson": [220, 20, 60],
-	"cyan": [0, 255, 255],
-	"darkblue": [0, 0, 139],
-	"darkcyan": [0, 139, 139],
-	"darkgoldenrod": [184, 134, 11],
-	"darkgray": [169, 169, 169],
-	"darkgreen": [0, 100, 0],
-	"darkgrey": [169, 169, 169],
-	"darkkhaki": [189, 183, 107],
-	"darkmagenta": [139, 0, 139],
-	"darkolivegreen": [85, 107, 47],
-	"darkorange": [255, 140, 0],
-	"darkorchid": [153, 50, 204],
-	"darkred": [139, 0, 0],
-	"darksalmon": [233, 150, 122],
-	"darkseagreen": [143, 188, 143],
-	"darkslateblue": [72, 61, 139],
-	"darkslategray": [47, 79, 79],
-	"darkslategrey": [47, 79, 79],
-	"darkturquoise": [0, 206, 209],
-	"darkviolet": [148, 0, 211],
-	"deeppink": [255, 20, 147],
-	"deepskyblue": [0, 191, 255],
-	"dimgray": [105, 105, 105],
-	"dimgrey": [105, 105, 105],
-	"dodgerblue": [30, 144, 255],
-	"firebrick": [178, 34, 34],
-	"floralwhite": [255, 250, 240],
-	"forestgreen": [34, 139, 34],
-	"fuchsia": [255, 0, 255],
-	"gainsboro": [220, 220, 220],
-	"ghostwhite": [248, 248, 255],
-	"gold": [255, 215, 0],
-	"goldenrod": [218, 165, 32],
-	"gray": [128, 128, 128],
-	"green": [0, 128, 0],
-	"greenyellow": [173, 255, 47],
-	"grey": [128, 128, 128],
-	"honeydew": [240, 255, 240],
-	"hotpink": [255, 105, 180],
-	"indianred": [205, 92, 92],
-	"indigo": [75, 0, 130],
-	"ivory": [255, 255, 240],
-	"khaki": [240, 230, 140],
-	"lavender": [230, 230, 250],
-	"lavenderblush": [255, 240, 245],
-	"lawngreen": [124, 252, 0],
-	"lemonchiffon": [255, 250, 205],
-	"lightblue": [173, 216, 230],
-	"lightcoral": [240, 128, 128],
-	"lightcyan": [224, 255, 255],
-	"lightgoldenrodyellow": [250, 250, 210],
-	"lightgray": [211, 211, 211],
-	"lightgreen": [144, 238, 144],
-	"lightgrey": [211, 211, 211],
-	"lightpink": [255, 182, 193],
-	"lightsalmon": [255, 160, 122],
-	"lightseagreen": [32, 178, 170],
-	"lightskyblue": [135, 206, 250],
-	"lightslategray": [119, 136, 153],
-	"lightslategrey": [119, 136, 153],
-	"lightsteelblue": [176, 196, 222],
-	"lightyellow": [255, 255, 224],
-	"lime": [0, 255, 0],
-	"limegreen": [50, 205, 50],
-	"linen": [250, 240, 230],
-	"magenta": [255, 0, 255],
-	"maroon": [128, 0, 0],
-	"mediumaquamarine": [102, 205, 170],
-	"mediumblue": [0, 0, 205],
-	"mediumorchid": [186, 85, 211],
-	"mediumpurple": [147, 112, 219],
-	"mediumseagreen": [60, 179, 113],
-	"mediumslateblue": [123, 104, 238],
-	"mediumspringgreen": [0, 250, 154],
-	"mediumturquoise": [72, 209, 204],
-	"mediumvioletred": [199, 21, 133],
-	"midnightblue": [25, 25, 112],
-	"mintcream": [245, 255, 250],
-	"mistyrose": [255, 228, 225],
-	"moccasin": [255, 228, 181],
-	"navajowhite": [255, 222, 173],
-	"navy": [0, 0, 128],
-	"oldlace": [253, 245, 230],
-	"olive": [128, 128, 0],
-	"olivedrab": [107, 142, 35],
-	"orange": [255, 165, 0],
-	"orangered": [255, 69, 0],
-	"orchid": [218, 112, 214],
-	"palegoldenrod": [238, 232, 170],
-	"palegreen": [152, 251, 152],
-	"paleturquoise": [175, 238, 238],
-	"palevioletred": [219, 112, 147],
-	"papayawhip": [255, 239, 213],
-	"peachpuff": [255, 218, 185],
-	"peru": [205, 133, 63],
-	"pink": [255, 192, 203],
-	"plum": [221, 160, 221],
-	"powderblue": [176, 224, 230],
-	"purple": [128, 0, 128],
-	"rebeccapurple": [102, 51, 153],
-	"red": [255, 0, 0],
-	"rosybrown": [188, 143, 143],
-	"royalblue": [65, 105, 225],
-	"saddlebrown": [139, 69, 19],
-	"salmon": [250, 128, 114],
-	"sandybrown": [244, 164, 96],
-	"seagreen": [46, 139, 87],
-	"seashell": [255, 245, 238],
-	"sienna": [160, 82, 45],
-	"silver": [192, 192, 192],
-	"skyblue": [135, 206, 235],
-	"slateblue": [106, 90, 205],
-	"slategray": [112, 128, 144],
-	"slategrey": [112, 128, 144],
-	"snow": [255, 250, 250],
-	"springgreen": [0, 255, 127],
-	"steelblue": [70, 130, 180],
-	"tan": [210, 180, 140],
-	"teal": [0, 128, 128],
-	"thistle": [216, 191, 216],
-	"tomato": [255, 99, 71],
-	"turquoise": [64, 224, 208],
-	"violet": [238, 130, 238],
-	"wheat": [245, 222, 179],
-	"white": [255, 255, 255],
-	"whitesmoke": [245, 245, 245],
-	"yellow": [255, 255, 0],
-	"yellowgreen": [154, 205, 50]
-};
+'use strict'
+
+module.exports = {
+	"aliceblue": [240, 248, 255],
+	"antiquewhite": [250, 235, 215],
+	"aqua": [0, 255, 255],
+	"aquamarine": [127, 255, 212],
+	"azure": [240, 255, 255],
+	"beige": [245, 245, 220],
+	"bisque": [255, 228, 196],
+	"black": [0, 0, 0],
+	"blanchedalmond": [255, 235, 205],
+	"blue": [0, 0, 255],
+	"blueviolet": [138, 43, 226],
+	"brown": [165, 42, 42],
+	"burlywood": [222, 184, 135],
+	"cadetblue": [95, 158, 160],
+	"chartreuse": [127, 255, 0],
+	"chocolate": [210, 105, 30],
+	"coral": [255, 127, 80],
+	"cornflowerblue": [100, 149, 237],
+	"cornsilk": [255, 248, 220],
+	"crimson": [220, 20, 60],
+	"cyan": [0, 255, 255],
+	"darkblue": [0, 0, 139],
+	"darkcyan": [0, 139, 139],
+	"darkgoldenrod": [184, 134, 11],
+	"darkgray": [169, 169, 169],
+	"darkgreen": [0, 100, 0],
+	"darkgrey": [169, 169, 169],
+	"darkkhaki": [189, 183, 107],
+	"darkmagenta": [139, 0, 139],
+	"darkolivegreen": [85, 107, 47],
+	"darkorange": [255, 140, 0],
+	"darkorchid": [153, 50, 204],
+	"darkred": [139, 0, 0],
+	"darksalmon": [233, 150, 122],
+	"darkseagreen": [143, 188, 143],
+	"darkslateblue": [72, 61, 139],
+	"darkslategray": [47, 79, 79],
+	"darkslategrey": [47, 79, 79],
+	"darkturquoise": [0, 206, 209],
+	"darkviolet": [148, 0, 211],
+	"deeppink": [255, 20, 147],
+	"deepskyblue": [0, 191, 255],
+	"dimgray": [105, 105, 105],
+	"dimgrey": [105, 105, 105],
+	"dodgerblue": [30, 144, 255],
+	"firebrick": [178, 34, 34],
+	"floralwhite": [255, 250, 240],
+	"forestgreen": [34, 139, 34],
+	"fuchsia": [255, 0, 255],
+	"gainsboro": [220, 220, 220],
+	"ghostwhite": [248, 248, 255],
+	"gold": [255, 215, 0],
+	"goldenrod": [218, 165, 32],
+	"gray": [128, 128, 128],
+	"green": [0, 128, 0],
+	"greenyellow": [173, 255, 47],
+	"grey": [128, 128, 128],
+	"honeydew": [240, 255, 240],
+	"hotpink": [255, 105, 180],
+	"indianred": [205, 92, 92],
+	"indigo": [75, 0, 130],
+	"ivory": [255, 255, 240],
+	"khaki": [240, 230, 140],
+	"lavender": [230, 230, 250],
+	"lavenderblush": [255, 240, 245],
+	"lawngreen": [124, 252, 0],
+	"lemonchiffon": [255, 250, 205],
+	"lightblue": [173, 216, 230],
+	"lightcoral": [240, 128, 128],
+	"lightcyan": [224, 255, 255],
+	"lightgoldenrodyellow": [250, 250, 210],
+	"lightgray": [211, 211, 211],
+	"lightgreen": [144, 238, 144],
+	"lightgrey": [211, 211, 211],
+	"lightpink": [255, 182, 193],
+	"lightsalmon": [255, 160, 122],
+	"lightseagreen": [32, 178, 170],
+	"lightskyblue": [135, 206, 250],
+	"lightslategray": [119, 136, 153],
+	"lightslategrey": [119, 136, 153],
+	"lightsteelblue": [176, 196, 222],
+	"lightyellow": [255, 255, 224],
+	"lime": [0, 255, 0],
+	"limegreen": [50, 205, 50],
+	"linen": [250, 240, 230],
+	"magenta": [255, 0, 255],
+	"maroon": [128, 0, 0],
+	"mediumaquamarine": [102, 205, 170],
+	"mediumblue": [0, 0, 205],
+	"mediumorchid": [186, 85, 211],
+	"mediumpurple": [147, 112, 219],
+	"mediumseagreen": [60, 179, 113],
+	"mediumslateblue": [123, 104, 238],
+	"mediumspringgreen": [0, 250, 154],
+	"mediumturquoise": [72, 209, 204],
+	"mediumvioletred": [199, 21, 133],
+	"midnightblue": [25, 25, 112],
+	"mintcream": [245, 255, 250],
+	"mistyrose": [255, 228, 225],
+	"moccasin": [255, 228, 181],
+	"navajowhite": [255, 222, 173],
+	"navy": [0, 0, 128],
+	"oldlace": [253, 245, 230],
+	"olive": [128, 128, 0],
+	"olivedrab": [107, 142, 35],
+	"orange": [255, 165, 0],
+	"orangered": [255, 69, 0],
+	"orchid": [218, 112, 214],
+	"palegoldenrod": [238, 232, 170],
+	"palegreen": [152, 251, 152],
+	"paleturquoise": [175, 238, 238],
+	"palevioletred": [219, 112, 147],
+	"papayawhip": [255, 239, 213],
+	"peachpuff": [255, 218, 185],
+	"peru": [205, 133, 63],
+	"pink": [255, 192, 203],
+	"plum": [221, 160, 221],
+	"powderblue": [176, 224, 230],
+	"purple": [128, 0, 128],
+	"rebeccapurple": [102, 51, 153],
+	"red": [255, 0, 0],
+	"rosybrown": [188, 143, 143],
+	"royalblue": [65, 105, 225],
+	"saddlebrown": [139, 69, 19],
+	"salmon": [250, 128, 114],
+	"sandybrown": [244, 164, 96],
+	"seagreen": [46, 139, 87],
+	"seashell": [255, 245, 238],
+	"sienna": [160, 82, 45],
+	"silver": [192, 192, 192],
+	"skyblue": [135, 206, 235],
+	"slateblue": [106, 90, 205],
+	"slategray": [112, 128, 144],
+	"slategrey": [112, 128, 144],
+	"snow": [255, 250, 250],
+	"springgreen": [0, 255, 127],
+	"steelblue": [70, 130, 180],
+	"tan": [210, 180, 140],
+	"teal": [0, 128, 128],
+	"thistle": [216, 191, 216],
+	"tomato": [255, 99, 71],
+	"turquoise": [64, 224, 208],
+	"violet": [238, 130, 238],
+	"wheat": [245, 222, 179],
+	"white": [255, 255, 255],
+	"whitesmoke": [245, 245, 245],
+	"yellow": [255, 255, 0],
+	"yellowgreen": [154, 205, 50]
+};
 
 },{}],6:[function(require,module,exports){
 //! moment.js
diff --git a/src/assets/vendor/chart.js/Chart.js b/src/assets/vendor/chart.js/Chart.js
index 0825ec7..32c747f 100755
--- a/src/assets/vendor/chart.js/Chart.js
+++ b/src/assets/vendor/chart.js/Chart.js
@@ -1513,158 +1513,158 @@ Converter.prototype.getValues = function(space) {
 
 module.exports = convert;
 },{"4":4}],6:[function(require,module,exports){
-'use strict'
-
-module.exports = {
-	"aliceblue": [240, 248, 255],
-	"antiquewhite": [250, 235, 215],
-	"aqua": [0, 255, 255],
-	"aquamarine": [127, 255, 212],
-	"azure": [240, 255, 255],
-	"beige": [245, 245, 220],
-	"bisque": [255, 228, 196],
-	"black": [0, 0, 0],
-	"blanchedalmond": [255, 235, 205],
-	"blue": [0, 0, 255],
-	"blueviolet": [138, 43, 226],
-	"brown": [165, 42, 42],
-	"burlywood": [222, 184, 135],
-	"cadetblue": [95, 158, 160],
-	"chartreuse": [127, 255, 0],
-	"chocolate": [210, 105, 30],
-	"coral": [255, 127, 80],
-	"cornflowerblue": [100, 149, 237],
-	"cornsilk": [255, 248, 220],
-	"crimson": [220, 20, 60],
-	"cyan": [0, 255, 255],
-	"darkblue": [0, 0, 139],
-	"darkcyan": [0, 139, 139],
-	"darkgoldenrod": [184, 134, 11],
-	"darkgray": [169, 169, 169],
-	"darkgreen": [0, 100, 0],
-	"darkgrey": [169, 169, 169],
-	"darkkhaki": [189, 183, 107],
-	"darkmagenta": [139, 0, 139],
-	"darkolivegreen": [85, 107, 47],
-	"darkorange": [255, 140, 0],
-	"darkorchid": [153, 50, 204],
-	"darkred": [139, 0, 0],
-	"darksalmon": [233, 150, 122],
-	"darkseagreen": [143, 188, 143],
-	"darkslateblue": [72, 61, 139],
-	"darkslategray": [47, 79, 79],
-	"darkslategrey": [47, 79, 79],
-	"darkturquoise": [0, 206, 209],
-	"darkviolet": [148, 0, 211],
-	"deeppink": [255, 20, 147],
-	"deepskyblue": [0, 191, 255],
-	"dimgray": [105, 105, 105],
-	"dimgrey": [105, 105, 105],
-	"dodgerblue": [30, 144, 255],
-	"firebrick": [178, 34, 34],
-	"floralwhite": [255, 250, 240],
-	"forestgreen": [34, 139, 34],
-	"fuchsia": [255, 0, 255],
-	"gainsboro": [220, 220, 220],
-	"ghostwhite": [248, 248, 255],
-	"gold": [255, 215, 0],
-	"goldenrod": [218, 165, 32],
-	"gray": [128, 128, 128],
-	"green": [0, 128, 0],
-	"greenyellow": [173, 255, 47],
-	"grey": [128, 128, 128],
-	"honeydew": [240, 255, 240],
-	"hotpink": [255, 105, 180],
-	"indianred": [205, 92, 92],
-	"indigo": [75, 0, 130],
-	"ivory": [255, 255, 240],
-	"khaki": [240, 230, 140],
-	"lavender": [230, 230, 250],
-	"lavenderblush": [255, 240, 245],
-	"lawngreen": [124, 252, 0],
-	"lemonchiffon": [255, 250, 205],
-	"lightblue": [173, 216, 230],
-	"lightcoral": [240, 128, 128],
-	"lightcyan": [224, 255, 255],
-	"lightgoldenrodyellow": [250, 250, 210],
-	"lightgray": [211, 211, 211],
-	"lightgreen": [144, 238, 144],
-	"lightgrey": [211, 211, 211],
-	"lightpink": [255, 182, 193],
-	"lightsalmon": [255, 160, 122],
-	"lightseagreen": [32, 178, 170],
-	"lightskyblue": [135, 206, 250],
-	"lightslategray": [119, 136, 153],
-	"lightslategrey": [119, 136, 153],
-	"lightsteelblue": [176, 196, 222],
-	"lightyellow": [255, 255, 224],
-	"lime": [0, 255, 0],
-	"limegreen": [50, 205, 50],
-	"linen": [250, 240, 230],
-	"magenta": [255, 0, 255],
-	"maroon": [128, 0, 0],
-	"mediumaquamarine": [102, 205, 170],
-	"mediumblue": [0, 0, 205],
-	"mediumorchid": [186, 85, 211],
-	"mediumpurple": [147, 112, 219],
-	"mediumseagreen": [60, 179, 113],
-	"mediumslateblue": [123, 104, 238],
-	"mediumspringgreen": [0, 250, 154],
-	"mediumturquoise": [72, 209, 204],
-	"mediumvioletred": [199, 21, 133],
-	"midnightblue": [25, 25, 112],
-	"mintcream": [245, 255, 250],
-	"mistyrose": [255, 228, 225],
-	"moccasin": [255, 228, 181],
-	"navajowhite": [255, 222, 173],
-	"navy": [0, 0, 128],
-	"oldlace": [253, 245, 230],
-	"olive": [128, 128, 0],
-	"olivedrab": [107, 142, 35],
-	"orange": [255, 165, 0],
-	"orangered": [255, 69, 0],
-	"orchid": [218, 112, 214],
-	"palegoldenrod": [238, 232, 170],
-	"palegreen": [152, 251, 152],
-	"paleturquoise": [175, 238, 238],
-	"palevioletred": [219, 112, 147],
-	"papayawhip": [255, 239, 213],
-	"peachpuff": [255, 218, 185],
-	"peru": [205, 133, 63],
-	"pink": [255, 192, 203],
-	"plum": [221, 160, 221],
-	"powderblue": [176, 224, 230],
-	"purple": [128, 0, 128],
-	"rebeccapurple": [102, 51, 153],
-	"red": [255, 0, 0],
-	"rosybrown": [188, 143, 143],
-	"royalblue": [65, 105, 225],
-	"saddlebrown": [139, 69, 19],
-	"salmon": [250, 128, 114],
-	"sandybrown": [244, 164, 96],
-	"seagreen": [46, 139, 87],
-	"seashell": [255, 245, 238],
-	"sienna": [160, 82, 45],
-	"silver": [192, 192, 192],
-	"skyblue": [135, 206, 235],
-	"slateblue": [106, 90, 205],
-	"slategray": [112, 128, 144],
-	"slategrey": [112, 128, 144],
-	"snow": [255, 250, 250],
-	"springgreen": [0, 255, 127],
-	"steelblue": [70, 130, 180],
-	"tan": [210, 180, 140],
-	"teal": [0, 128, 128],
-	"thistle": [216, 191, 216],
-	"tomato": [255, 99, 71],
-	"turquoise": [64, 224, 208],
-	"violet": [238, 130, 238],
-	"wheat": [245, 222, 179],
-	"white": [255, 255, 255],
-	"whitesmoke": [245, 245, 245],
-	"yellow": [255, 255, 0],
-	"yellowgreen": [154, 205, 50]
-};
+'use strict'
+
+module.exports = {
+	"aliceblue": [240, 248, 255],
+	"antiquewhite": [250, 235, 215],
+	"aqua": [0, 255, 255],
+	"aquamarine": [127, 255, 212],
+	"azure": [240, 255, 255],
+	"beige": [245, 245, 220],
+	"bisque": [255, 228, 196],
+	"black": [0, 0, 0],
+	"blanchedalmond": [255, 235, 205],
+	"blue": [0, 0, 255],
+	"blueviolet": [138, 43, 226],
+	"brown": [165, 42, 42],
+	"burlywood": [222, 184, 135],
+	"cadetblue": [95, 158, 160],
+	"chartreuse": [127, 255, 0],
+	"chocolate": [210, 105, 30],
+	"coral": [255, 127, 80],
+	"cornflowerblue": [100, 149, 237],
+	"cornsilk": [255, 248, 220],
+	"crimson": [220, 20, 60],
+	"cyan": [0, 255, 255],
+	"darkblue": [0, 0, 139],
+	"darkcyan": [0, 139, 139],
+	"darkgoldenrod": [184, 134, 11],
+	"darkgray": [169, 169, 169],
+	"darkgreen": [0, 100, 0],
+	"darkgrey": [169, 169, 169],
+	"darkkhaki": [189, 183, 107],
+	"darkmagenta": [139, 0, 139],
+	"darkolivegreen": [85, 107, 47],
+	"darkorange": [255, 140, 0],
+	"darkorchid": [153, 50, 204],
+	"darkred": [139, 0, 0],
+	"darksalmon": [233, 150, 122],
+	"darkseagreen": [143, 188, 143],
+	"darkslateblue": [72, 61, 139],
+	"darkslategray": [47, 79, 79],
+	"darkslategrey": [47, 79, 79],
+	"darkturquoise": [0, 206, 209],
+	"darkviolet": [148, 0, 211],
+	"deeppink": [255, 20, 147],
+	"deepskyblue": [0, 191, 255],
+	"dimgray": [105, 105, 105],
+	"dimgrey": [105, 105, 105],
+	"dodgerblue": [30, 144, 255],
+	"firebrick": [178, 34, 34],
+	"floralwhite": [255, 250, 240],
+	"forestgreen": [34, 139, 34],
+	"fuchsia": [255, 0, 255],
+	"gainsboro": [220, 220, 220],
+	"ghostwhite": [248, 248, 255],
+	"gold": [255, 215, 0],
+	"goldenrod": [218, 165, 32],
+	"gray": [128, 128, 128],
+	"green": [0, 128, 0],
+	"greenyellow": [173, 255, 47],
+	"grey": [128, 128, 128],
+	"honeydew": [240, 255, 240],
+	"hotpink": [255, 105, 180],
+	"indianred": [205, 92, 92],
+	"indigo": [75, 0, 130],
+	"ivory": [255, 255, 240],
+	"khaki": [240, 230, 140],
+	"lavender": [230, 230, 250],
+	"lavenderblush": [255, 240, 245],
+	"lawngreen": [124, 252, 0],
+	"lemonchiffon": [255, 250, 205],
+	"lightblue": [173, 216, 230],
+	"lightcoral": [240, 128, 128],
+	"lightcyan": [224, 255, 255],
+	"lightgoldenrodyellow": [250, 250, 210],
+	"lightgray": [211, 211, 211],
+	"lightgreen": [144, 238, 144],
+	"lightgrey": [211, 211, 211],
+	"lightpink": [255, 182, 193],
+	"lightsalmon": [255, 160, 122],
+	"lightseagreen": [32, 178, 170],
+	"lightskyblue": [135, 206, 250],
+	"lightslategray": [119, 136, 153],
+	"lightslategrey": [119, 136, 153],
+	"lightsteelblue": [176, 196, 222],
+	"lightyellow": [255, 255, 224],
+	"lime": [0, 255, 0],
+	"limegreen": [50, 205, 50],
+	"linen": [250, 240, 230],
+	"magenta": [255, 0, 255],
+	"maroon": [128, 0, 0],
+	"mediumaquamarine": [102, 205, 170],
+	"mediumblue": [0, 0, 205],
+	"mediumorchid": [186, 85, 211],
+	"mediumpurple": [147, 112, 219],
+	"mediumseagreen": [60, 179, 113],
+	"mediumslateblue": [123, 104, 238],
+	"mediumspringgreen": [0, 250, 154],
+	"mediumturquoise": [72, 209, 204],
+	"mediumvioletred": [199, 21, 133],
+	"midnightblue": [25, 25, 112],
+	"mintcream": [245, 255, 250],
+	"mistyrose": [255, 228, 225],
+	"moccasin": [255, 228, 181],
+	"navajowhite": [255, 222, 173],
+	"navy": [0, 0, 128],
+	"oldlace": [253, 245, 230],
+	"olive": [128, 128, 0],
+	"olivedrab": [107, 142, 35],
+	"orange": [255, 165, 0],
+	"orangered": [255, 69, 0],
+	"orchid": [218, 112, 214],
+	"palegoldenrod": [238, 232, 170],
+	"palegreen": [152, 251, 152],
+	"paleturquoise": [175, 238, 238],
+	"palevioletred": [219, 112, 147],
+	"papayawhip": [255, 239, 213],
+	"peachpuff": [255, 218, 185],
+	"peru": [205, 133, 63],
+	"pink": [255, 192, 203],
+	"plum": [221, 160, 221],
+	"powderblue": [176, 224, 230],
+	"purple": [128, 0, 128],
+	"rebeccapurple": [102, 51, 153],
+	"red": [255, 0, 0],
+	"rosybrown": [188, 143, 143],
+	"royalblue": [65, 105, 225],
+	"saddlebrown": [139, 69, 19],
+	"salmon": [250, 128, 114],
+	"sandybrown": [244, 164, 96],
+	"seagreen": [46, 139, 87],
+	"seashell": [255, 245, 238],
+	"sienna": [160, 82, 45],
+	"silver": [192, 192, 192],
+	"skyblue": [135, 206, 235],
+	"slateblue": [106, 90, 205],
+	"slategray": [112, 128, 144],
+	"slategrey": [112, 128, 144],
+	"snow": [255, 250, 250],
+	"springgreen": [0, 255, 127],
+	"steelblue": [70, 130, 180],
+	"tan": [210, 180, 140],
+	"teal": [0, 128, 128],
+	"thistle": [216, 191, 216],
+	"tomato": [255, 99, 71],
+	"turquoise": [64, 224, 208],
+	"violet": [238, 130, 238],
+	"wheat": [245, 222, 179],
+	"white": [255, 255, 255],
+	"whitesmoke": [245, 245, 245],
+	"yellow": [255, 255, 0],
+	"yellowgreen": [154, 205, 50]
+};
 
 },{}],7:[function(require,module,exports){
 /**
