Index: modules/open-science-observatory-ui/branches/gradient/src/app/shared/footer/footer.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/shared/footer/footer.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/shared/footer/footer.component.ts	(revision 60863)
@@ -0,0 +1,9 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-footer',
+  templateUrl: './footer.component.html',
+})
+
+export class FooterComponent {
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/read-more.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/read-more.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/read-more.component.ts	(revision 60863)
@@ -0,0 +1,73 @@
+/**
+ * Created by stefania on 4/6/17.
+ */
+import {AfterContentInit, AfterViewInit, Component, ElementRef, Input, OnChanges, ViewChild} from "@angular/core";
+
+@Component({
+    selector: "read-more",
+    template: `
+        <div [class.collapsed]="isCollapsed" [style.height]="isCollapsed ? maxHeight+'px' : 'auto'" #readMoreDiv>
+            <ng-content></ng-content>
+        </div>
+        <a *ngIf="isCollapsable" (click)="isCollapsed =! isCollapsed">View {{isCollapsed ? 'more' : 'less'}}...</a>
+    `,
+    styles: [`
+        div.collapsed {
+            overflow: hidden;
+        }
+    `]
+})
+export class ReadMoreComponent implements AfterContentInit {
+    //the text that need to be put in the container
+    //@Input() text: string;
+    //maximum height of the container
+    @Input("maxHeight") maxHeight: number = 100;
+    @ViewChild("readMoreDiv")
+    readMoreDiv: ElementRef;
+    //set these to false to get the height of the expended container
+    public isCollapsed: boolean = false;
+    public isCollapsable: boolean = false;
+
+    constructor(public elementRef: ElementRef) {
+    }
+
+    ngAfterContentInit() {
+        setTimeout(_ => {
+            let currentHeight = this.readMoreDiv.nativeElement.offsetHeight;
+            //collapsable only if the contents make container exceed the max height
+            if (currentHeight > this.maxHeight) {
+                this.isCollapsed = true;
+                this.isCollapsable = true;
+            } else {
+            }
+        }, 200);
+    }
+}
+
+@Component({
+    selector: "read-more-text",
+    template: `
+        <div [innerHTML]="text" [class.collapsed]="isCollapsed" [style.height]="isCollapsed ? maxHeight+'px' : 'auto'" #readMoreDiv>
+            <!--{{text}}-->
+        </div>
+        <a *ngIf="isCollapsable" (click)="isCollapsed =! isCollapsed">View {{isCollapsed ? 'more' : 'less'}}...</a>
+    `,
+    styles: [`
+        div.collapsed {
+            overflow: hidden;
+        }
+    `]
+})
+export class ReadMoreTextComponent extends ReadMoreComponent implements OnChanges, AfterViewInit {
+    @Input()
+    text: string = "";
+
+    ngAfterViewInit(): void {
+        this.ngAfterContentInit();
+    }
+
+    ngOnChanges(): void {
+        this.ngAfterContentInit();
+    }
+}
+
Index: modules/open-science-observatory-ui/branches/gradient/src/app/services/data-handler.service.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/services/data-handler.service.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/services/data-handler.service.ts	(revision 60863)
@@ -0,0 +1,995 @@
+import { Injectable } from '@angular/core';
+import { RawData, Row } from '../domain/raw-data';
+import {
+  CountryOverviewData,
+  CountryMapData,
+  EuropeData,
+  OverviewMapData,
+  CountryTableData,
+  CountryPageOverviewData, RnDExpenditure
+} from '../domain/overview-map-data';
+import {Indicator} from '../domain/overview-data';
+import {TreemapHighchartsData} from '../domain/treemap-highcharts-data';
+
+@Injectable ()
+export class DataHandlerService {
+
+  public convertRawDataToLastUpdateDate(rawData: RawData) {
+
+    let lastUpdateDate: string;
+
+    for (const series of rawData.datasets) {
+
+      if (series.series.query.name === 'creation_date') {
+        lastUpdateDate = series.series.result[0].row[0];
+      }
+    }
+
+    return lastUpdateDate;
+  }
+
+  public convertRawMapDataToMapData(rawData: RawData) {
+
+    const overviewMapData: OverviewMapData = new OverviewMapData();
+
+    for (const series of rawData.datasets) {
+
+      if (series.series.query.name === 'new.oso.publications.affiliated') {
+        overviewMapData.publications = this.rawResultToCountryMapData(series.series.result);
+      } else if (series.series.query.name === 'new.oso.datasets.affiliated') {
+        overviewMapData.datasets = this.rawResultToCountryMapData(series.series.result);
+      } else if (series.series.query.name === 'new.oso.repositories.doar_re3data') {
+        overviewMapData.repositories = this.rawResultToCountryMapData(series.series.result);
+      } else if (series.series.query.name === 'new.oso.journals.doaj') {
+        overviewMapData.journals = this.rawResultToCountryMapData(series.series.result);
+      } else if (series.series.query.name === 'new.oso.oa_policies') {
+        overviewMapData.policies = this.rawResultToCountryMapData(series.series.result);
+      }
+    }
+
+    // console.log('Overview map data (data-handler)', overviewMapData);
+
+    return overviewMapData;
+  }
+
+  public createJoinedPublicationsCountryMap(rawData: RawData) {
+
+    const joinedPublicationsMap = new Map();
+
+    for (const series of rawData.datasets) {
+      if (series.series.query.name === 'new.oso.publications.affiliated') {
+
+        for (const rowResult of series.series.result) {
+          if (joinedPublicationsMap.has(rowResult.row[1])) {
+            const deposited = joinedPublicationsMap.get(rowResult.row[1]).deposited;
+            joinedPublicationsMap.delete(rowResult.row[1]);
+            joinedPublicationsMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2],
+              affiliated: Number(rowResult.row[0]), deposited: deposited});
+          } else {
+            joinedPublicationsMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2],
+              affiliated: Number(rowResult.row[0]), deposited: 0});
+          }
+        }
+
+      } else if (series.series.query.name === 'new.oso.publications.deposited') {
+
+        for (const rowResult of series.series.result) {
+          if (joinedPublicationsMap.has(rowResult.row[1])) {
+            const affiliated = joinedPublicationsMap.get(rowResult.row[1]).affiliated;
+            joinedPublicationsMap.delete(rowResult.row[1]);
+            joinedPublicationsMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2],
+              affiliated: affiliated, deposited: Number(rowResult.row[0])});
+          }
+          joinedPublicationsMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2],
+            affiliated: 0, deposited: Number(rowResult.row[0])});
+        }
+      }
+    }
+
+    return joinedPublicationsMap;
+  }
+
+  public createJoinedDatasetsCountryMap(rawData: RawData) {
+
+    const joinedDatasetsMap = new Map();
+
+    for (const series of rawData.datasets) {
+      if (series.series.query.name === 'new.oso.datasets.affiliated') {
+
+        for (const rowResult of series.series.result) {
+          if (joinedDatasetsMap.has(rowResult.row[1])) {
+            const deposited = joinedDatasetsMap.get(rowResult.row[1]).deposited;
+            joinedDatasetsMap.delete(rowResult.row[1]);
+            joinedDatasetsMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2],
+              affiliated: Number(rowResult.row[0]), deposited: deposited});
+          } else {
+            joinedDatasetsMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2],
+              affiliated: Number(rowResult.row[0]), deposited: 0});
+          }
+        }
+
+      } else if (series.series.query.name === 'new.oso.datasets.deposited') {
+
+        for (const rowResult of series.series.result) {
+          if (joinedDatasetsMap.has(rowResult.row[1])) {
+            const affiliated = joinedDatasetsMap.get(rowResult.row[1]).affiliated;
+            joinedDatasetsMap.delete(rowResult.row[1]);
+            joinedDatasetsMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2],
+              affiliated: affiliated, deposited: Number(rowResult.row[0])});
+          }
+          joinedDatasetsMap.set(rowResult.row[1], { countryName: rowResult.row[1], countryCode: rowResult.row[2],
+            affiliated: 0, deposited: Number(rowResult.row[0])});
+        }
+      }
+    }
+
+    return joinedDatasetsMap;
+
+  }
+
+  public createJoinedRepositoriesCountryMap(rawData: RawData) {
+
+    const joinedRepositoriesMap = new Map();
+
+    for (const series of rawData.datasets) {
+      if (series.series.query.name === 'new.oso.repositories.doar_re3data') {
+
+        for (const rowResult of series.series.result) {
+          if (joinedRepositoriesMap.has(rowResult.row[1])) {
+            const simple = joinedRepositoriesMap.get(rowResult.row[1]).simple;
+            joinedRepositoriesMap.delete(rowResult.row[1]);
+            joinedRepositoriesMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2],
+              doar_re3data: Number(rowResult.row[0]), simple: simple});
+          } else {
+            joinedRepositoriesMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2],
+              doar_re3data: Number(rowResult.row[0]), simple: 0});
+          }
+        }
+
+      } else if (series.series.query.name === 'new.oso.repositories') {
+
+        for (const rowResult of series.series.result) {
+          if (joinedRepositoriesMap.has(rowResult.row[1])) {
+            const doar_re3data = joinedRepositoriesMap.get(rowResult.row[1]).doar_re3data;
+            joinedRepositoriesMap.delete(rowResult.row[1]);
+            joinedRepositoriesMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2],
+              doar_re3data: doar_re3data, simple: Number(rowResult.row[0])});
+          }
+          joinedRepositoriesMap.set(rowResult.row[1], { countryName: rowResult.row[1], countryCode: rowResult.row[2],
+            doar_re3data: 0, simple: Number(rowResult.row[0])});
+        }
+      }
+    }
+
+    return joinedRepositoriesMap;
+
+  }
+
+  public createJoinedJournalsCountryMap(rawData: RawData) {
+
+    const joinedJournalsMap = new Map();
+
+    for (const series of rawData.datasets) {
+      if (series.series.query.name === 'new.oso.journals.doaj') {
+
+        for (const rowResult of series.series.result) {
+          if (joinedJournalsMap.has(rowResult.row[1])) {
+            const simple = joinedJournalsMap.get(rowResult.row[1]).simple;
+            joinedJournalsMap.delete(rowResult.row[1]);
+            joinedJournalsMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2],
+              doaj: Number(rowResult.row[0]), simple: simple});
+          } else {
+            joinedJournalsMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2],
+              doaj: Number(rowResult.row[0]), simple: 0});
+          }
+        }
+
+      } else if (series.series.query.name === 'new.oso.journals') {
+
+        for (const rowResult of series.series.result) {
+          if (joinedJournalsMap.has(rowResult.row[1])) {
+            const doaj = joinedJournalsMap.get(rowResult.row[1]).doaj;
+            joinedJournalsMap.delete(rowResult.row[1]);
+            joinedJournalsMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2],
+              doaj: doaj, simple: Number(rowResult.row[0])});
+          }
+          joinedJournalsMap.set(rowResult.row[1], { countryName: rowResult.row[1], countryCode: rowResult.row[2],
+            doaj: 0, simple: Number(rowResult.row[0])});
+        }
+      }
+    }
+
+    return joinedJournalsMap;
+
+  }
+
+  public convertRawDataToCountryOverviewData(rawData: RawData) {
+
+    const countryData: CountryOverviewData = new CountryOverviewData();
+
+    for (const series of rawData.datasets) {
+
+      if (series.series.query.name === 'new.oso.publications.affiliated.country') {
+        countryData.publicationsAffiliated = Number(series.series.result[0].row[0]);
+      } else if (series.series.query.name === 'new.oso.publications.deposited.country') {
+        countryData.publicationsDeposited = Number(series.series.result[0].row[0]);
+      } else if (series.series.query.name === 'new.oso.datasets.affiliated.country') {
+        countryData.datasetsAffiliated = Number(series.series.result[0].row[0]);
+      } else if (series.series.query.name === 'new.oso.datasets.deposited.country') {
+        countryData.datasetsDeposited = Number(series.series.result[0].row[0]);
+      } else if (series.series.query.name === 'new.oso.repositories.doar_re3data.country') {
+        countryData.repositories = Number(series.series.result[0].row[0]);
+      } else if (series.series.query.name === 'new.oso.journals.doaj.country') {
+        countryData.journals = Number(series.series.result[0].row[0]);
+      } else if (series.series.query.name === 'new.oso.oa_policies.country') {
+        countryData.policies = Number(series.series.result[0].row[0]);
+      }
+    }
+
+    return countryData;
+  }
+
+  public convertRawDataToEuropeOverviewData(rawData: RawData) {
+
+    const europeData: EuropeData = new EuropeData();
+
+    for (const series of rawData.datasets) {
+
+      if (series.series.query.name === 'new.oso.publications.oa_percentage') {
+
+        const publicationsIndicator: Indicator = new Indicator();
+        publicationsIndicator.percentage = Number(series.series.result[0].row[0]);
+        publicationsIndicator.oa = Number(series.series.result[0].row[1]);
+        publicationsIndicator.total = Number(series.series.result[0].row[2]);
+        europeData.publications = publicationsIndicator;
+
+      } else if (series.series.query.name === 'new.oso.datasets.oa_percentage') {
+
+        const datasetsIndicator: Indicator = new Indicator();
+        datasetsIndicator.percentage = Number(series.series.result[0].row[0]);
+        datasetsIndicator.oa = Number(series.series.result[0].row[1]);
+        datasetsIndicator.total = Number(series.series.result[0].row[2]);
+        europeData.datasets = datasetsIndicator;
+
+      } else if (series.series.query.name === 'new.oso.software.oa_percentage') {
+
+        const softwareIndicator: Indicator = new Indicator();
+        softwareIndicator.percentage = Number(series.series.result[0].row[0]);
+        softwareIndicator.oa = Number(series.series.result[0].row[1]);
+        softwareIndicator.total = Number(series.series.result[0].row[2]);
+        europeData.software = softwareIndicator;
+
+      } else if (series.series.query.name === 'new.oso.other.oa_percentage') {
+
+        const otherIndicator: Indicator = new Indicator();
+        otherIndicator.percentage = Number(series.series.result[0].row[0]);
+        otherIndicator.oa = Number(series.series.result[0].row[1]);
+        otherIndicator.total = Number(series.series.result[0].row[2]);
+        europeData.other = otherIndicator;
+
+      } else if (series.series.query.name === 'new.oso.repositories.doar_re3data.validated') {
+
+        const repositoriesIndicator: Indicator = new Indicator();
+        repositoriesIndicator.percentage = Number(series.series.result[0].row[0]);
+        repositoriesIndicator.oa = Number(series.series.result[0].row[1]);
+        repositoriesIndicator.total = Number(series.series.result[0].row[2]);
+        europeData.repositories = repositoriesIndicator;
+
+      } else if (series.series.query.name === 'new.oso.journals.doaj.validated') {
+
+        const journalsIndicator: Indicator = new Indicator();
+        journalsIndicator.percentage = Number(series.series.result[0].row[0]);
+        journalsIndicator.oa = Number(series.series.result[0].row[1]);
+        journalsIndicator.total = Number(series.series.result[0].row[2]);
+        europeData.journals = journalsIndicator;
+
+      } else if (series.series.query.name === 'new.oso.oa_policies.europe') {
+
+        const policiesIndicator: Indicator = new Indicator();
+        policiesIndicator.percentage = Number(series.series.result[0].row[0]);
+        policiesIndicator.oa = Number(series.series.result[0].row[1]);
+        policiesIndicator.total = Number(series.series.result[0].row[2]);
+        europeData.policies = policiesIndicator;
+
+      }
+    }
+
+    return europeData;
+  }
+
+  public convertRawDataToAbsoluteTableData(rawData: RawData) {
+
+    const mapTableData: Map<string, CountryTableData> = new Map();
+
+    for (const series of rawData.datasets) {
+
+      if (series.series.query.name.includes('new.oso.publications')) {
+        for (const rowResult of series.series.result) {
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[2])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[2])) {
+            const countryTableData = mapTableData.get(rowResult.row[2]);
+            countryTableData.publications = Number(rowResult.row[0]);
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            countryTableData.publications = Number(rowResult.row[0]);
+            countryTableData.name = rowResult.row[1];
+            countryTableData.code = rowResult.row[2];
+            mapTableData.set(rowResult.row[2], countryTableData);
+          }
+        }
+
+      } else if (series.series.query.name.includes('new.oso.datasets')) {
+
+        for (const rowResult of series.series.result) {
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[2])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[2])) {
+            const countryTableData = mapTableData.get(rowResult.row[2]);
+            countryTableData.datasets = Number(rowResult.row[0]);
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            countryTableData.datasets = Number(rowResult.row[0]);
+            countryTableData.name = rowResult.row[1];
+            countryTableData.code = rowResult.row[2];
+            mapTableData.set(rowResult.row[2], countryTableData);
+          }
+        }
+      } else if (series.series.query.name.includes('new.oso.software')) {
+
+        for (const rowResult of series.series.result) {
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[2])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[2])) {
+            const countryTableData = mapTableData.get(rowResult.row[2]);
+            countryTableData.software = Number(rowResult.row[0]);
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            countryTableData.software = Number(rowResult.row[0]);
+            countryTableData.name = rowResult.row[1];
+            countryTableData.code = rowResult.row[2];
+            mapTableData.set(rowResult.row[2], countryTableData);
+          }
+        }
+      } else if (series.series.query.name.includes('new.oso.other')) {
+
+        for (const rowResult of series.series.result) {
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[2])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[2])) {
+            const countryTableData = mapTableData.get(rowResult.row[2]);
+            countryTableData.other = Number(rowResult.row[0]);
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            countryTableData.other = Number(rowResult.row[0]);
+            countryTableData.name = rowResult.row[1];
+            countryTableData.code = rowResult.row[2];
+            mapTableData.set(rowResult.row[2], countryTableData);
+          }
+        }
+      } else if (series.series.query.name.includes('new.oso.repositories')) {
+
+        for (const rowResult of series.series.result) {
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[2])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[2])) {
+            const countryTableData = mapTableData.get(rowResult.row[2]);
+            countryTableData.repositories = Number(rowResult.row[0]);
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            countryTableData.repositories = Number(rowResult.row[0]);
+            countryTableData.name = rowResult.row[1];
+            countryTableData.code = rowResult.row[2];
+            mapTableData.set(rowResult.row[2], countryTableData);
+          }
+        }
+      } else if (series.series.query.name.includes('new.oso.journals')) {
+
+        for (const rowResult of series.series.result) {
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[2])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[2])) {
+            const countryTableData = mapTableData.get(rowResult.row[2]);
+            countryTableData.journals = Number(rowResult.row[0]);
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            countryTableData.journals = Number(rowResult.row[0]);
+            countryTableData.name = rowResult.row[1];
+            countryTableData.code = rowResult.row[2];
+            mapTableData.set(rowResult.row[2], countryTableData);
+          }
+        }
+      }
+    }
+
+    const tableData: CountryTableData[] = [];
+
+    mapTableData.forEach((value: CountryTableData, key: string) => {
+      // console.log(key, value);
+      tableData.push(value);
+    });
+
+    return tableData;
+  }
+
+  public convertRawDataToPercentageTableData(rawData: RawData) {
+
+    const mapTableData: Map<string, CountryTableData> = new Map();
+
+    for (const series of rawData.datasets) {
+
+      if (series.series.query.name.includes('new.oso.results')
+        && series.series.query.parameters && series.series.query.parameters[0] === 'publication') {
+        for (const rowResult of series.series.result) {
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[4])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[4])) {
+            const countryTableData = mapTableData.get(rowResult.row[4]);
+            if (rowResult.row[0] !== 'NaN') {
+              countryTableData.publications = Number(rowResult.row[0]);
+            }
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            if (rowResult.row[0] !== 'NaN') {
+              countryTableData.publications = Number(rowResult.row[0]);
+            }
+            countryTableData.name = rowResult.row[3];
+            countryTableData.code = rowResult.row[4];
+            mapTableData.set(rowResult.row[4], countryTableData);
+          }
+        }
+
+      } else if (series.series.query.name.includes('new.oso.results')
+        && series.series.query.parameters && series.series.query.parameters[0] === 'dataset') {
+
+        for (const rowResult of series.series.result) {
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[4])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[4])) {
+            const countryTableData = mapTableData.get(rowResult.row[4]);
+            if (rowResult.row[0] !== 'NaN') {
+              countryTableData.datasets = Number(rowResult.row[0]);
+            }
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            if (rowResult.row[0] !== 'NaN') {
+              countryTableData.datasets = Number(rowResult.row[0]);
+            }
+            countryTableData.name = rowResult.row[3];
+            countryTableData.code = rowResult.row[4];
+            mapTableData.set(rowResult.row[4], countryTableData);
+          }
+        }
+      } else if (series.series.query.name.includes('new.oso.results')
+        && series.series.query.parameters && series.series.query.parameters[0] === 'software') {
+
+        for (const rowResult of series.series.result) {
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[4])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[4])) {
+            const countryTableData = mapTableData.get(rowResult.row[4]);
+            if (rowResult.row[0] !== 'NaN') {
+              countryTableData.software = Number(rowResult.row[0]);
+            }
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            if (rowResult.row[0] !== 'NaN') {
+              countryTableData.software = Number(rowResult.row[0]);
+            }
+            countryTableData.name = rowResult.row[3];
+            countryTableData.code = rowResult.row[4];
+            mapTableData.set(rowResult.row[4], countryTableData);
+          }
+        }
+      } else if (series.series.query.name.includes('new.oso.results')
+        && series.series.query.parameters && series.series.query.parameters[0] === 'other') {
+
+        for (const rowResult of series.series.result) {
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[4])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[4])) {
+            const countryTableData = mapTableData.get(rowResult.row[4]);
+            if (rowResult.row[0] !== 'NaN') {
+              countryTableData.other = Number(rowResult.row[0]);
+            }
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            if (rowResult.row[0] !== 'NaN') {
+              countryTableData.other = Number(rowResult.row[0]);
+            }
+            countryTableData.name = rowResult.row[3];
+            countryTableData.code = rowResult.row[4];
+            mapTableData.set(rowResult.row[4], countryTableData);
+          }
+        }
+      } else if (series.series.query.name.includes('new.oso.repositories')) {
+
+        for (const rowResult of series.series.result) {
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[4])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[4])) {
+            const countryTableData = mapTableData.get(rowResult.row[4]);
+            countryTableData.repositories = Number(rowResult.row[0]);
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            countryTableData.repositories = Number(rowResult.row[0]);
+            countryTableData.name = rowResult.row[3];
+            countryTableData.code = rowResult.row[4];
+            mapTableData.set(rowResult.row[4], countryTableData);
+          }
+        }
+      } else if (series.series.query.name.includes('new.oso.journals')) {
+
+        for (const rowResult of series.series.result) {
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[4])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[4])) {
+            const countryTableData = mapTableData.get(rowResult.row[4]);
+            countryTableData.journals = Number(rowResult.row[0]);
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            countryTableData.journals = Number(rowResult.row[0]);
+            countryTableData.name = rowResult.row[3];
+            countryTableData.code = rowResult.row[4];
+            mapTableData.set(rowResult.row[4], countryTableData);
+          }
+        }
+      }
+    }
+
+    const tableData: CountryTableData[] = [];
+
+    mapTableData.forEach((value: CountryTableData, key: string) => {
+      // console.log(key, value);
+      tableData.push(value);
+    });
+
+    return tableData;
+  }
+
+  public convertRawDataToIndicatorsTableData(rawData: RawData) {
+
+    const mapTableData: Map<string, CountryTableData> = new Map();
+
+    for (const series of rawData.datasets) {
+
+      if (series.series.query.name.includes('new.oso.results.pid_percentage')) {
+        for (const rowResult of series.series.result) {
+
+          const pidIndicator = new Indicator();
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[3])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[3])) {
+            const countryTableData = mapTableData.get(rowResult.row[3]);
+            if (rowResult.row[0] !== 'NaN') {
+              pidIndicator.total = Number(rowResult.row[2]);
+              pidIndicator.oa = Number(rowResult.row[1]);
+              pidIndicator.percentage = Number(rowResult.row[0]);
+              countryTableData.pid = pidIndicator;
+            }
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            if (rowResult.row[0] !== 'NaN') {
+              pidIndicator.total = Number(rowResult.row[2]);
+              pidIndicator.oa = Number(rowResult.row[1]);
+              pidIndicator.percentage = Number(rowResult.row[0]);
+              countryTableData.pid = pidIndicator;
+            }
+            countryTableData.name = rowResult.row[4];
+            countryTableData.code = rowResult.row[3];
+            mapTableData.set(rowResult.row[3], countryTableData);
+          }
+        }
+
+      } else if (series.series.query.name.includes('new.oso.results.licence_percentage')) {
+
+        for (const rowResult of series.series.result) {
+
+          const licenceIndicator = new Indicator();
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[3])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[3])) {
+            const countryTableData = mapTableData.get(rowResult.row[3]);
+            if (rowResult.row[0] !== 'NaN') {
+              licenceIndicator.total = Number(rowResult.row[2]);
+              licenceIndicator.oa = Number(rowResult.row[1]);
+              licenceIndicator.percentage = Number(rowResult.row[0]);
+              countryTableData.licence = licenceIndicator;
+            }
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            if (rowResult.row[0] !== 'NaN') {
+              licenceIndicator.total = Number(rowResult.row[2]);
+              licenceIndicator.oa = Number(rowResult.row[1]);
+              licenceIndicator.percentage = Number(rowResult.row[0]);
+              countryTableData.licence = licenceIndicator;
+            }
+            countryTableData.name = rowResult.row[4];
+            countryTableData.code = rowResult.row[3];
+            mapTableData.set(rowResult.row[3], countryTableData);
+          }
+        }
+      } else if (series.series.query.name.includes('new.oso.results.green_percentage')) {
+
+        for (const rowResult of series.series.result) {
+
+          const greenIndicator = new Indicator();
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[3])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[3])) {
+            const countryTableData = mapTableData.get(rowResult.row[3]);
+            if (rowResult.row[0] !== 'NaN') {
+              greenIndicator.total = Number(rowResult.row[2]);
+              greenIndicator.oa = Number(rowResult.row[1]);
+              greenIndicator.percentage = Number(rowResult.row[0]);
+              countryTableData.green = greenIndicator;
+            }
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            if (rowResult.row[0] !== 'NaN') {
+              greenIndicator.total = Number(rowResult.row[2]);
+              greenIndicator.oa = Number(rowResult.row[1]);
+              greenIndicator.percentage = Number(rowResult.row[0]);
+              countryTableData.green = greenIndicator;
+            }
+            countryTableData.name = rowResult.row[4];
+            countryTableData.code = rowResult.row[3];
+            mapTableData.set(rowResult.row[3], countryTableData);
+          }
+        }
+      } else if (series.series.query.name.includes('new.oso.results.gold_percentage')) {
+
+        for (const rowResult of series.series.result) {
+
+          const goldIndicator = new Indicator();
+
+          // remove unwanted countries
+          if (this.isCountryToBeRemoved(rowResult.row[3])) {
+            continue;
+          }
+
+          if (mapTableData.has(rowResult.row[3])) {
+            const countryTableData = mapTableData.get(rowResult.row[3]);
+            if (rowResult.row[0] !== 'NaN') {
+              goldIndicator.total = Number(rowResult.row[2]);
+              goldIndicator.oa = Number(rowResult.row[1]);
+              goldIndicator.percentage = Number(rowResult.row[0]);
+              countryTableData.gold = goldIndicator;
+            }
+          } else {
+            const countryTableData: CountryTableData = new CountryTableData();
+            if (rowResult.row[0] !== 'NaN') {
+              goldIndicator.total = Number(rowResult.row[2]);
+              goldIndicator.oa = Number(rowResult.row[1]);
+              goldIndicator.percentage = Number(rowResult.row[0]);
+              countryTableData.gold = goldIndicator;
+            }
+            countryTableData.name = rowResult.row[4];
+            countryTableData.code = rowResult.row[3];
+            mapTableData.set(rowResult.row[3], countryTableData);
+          }
+        }
+      }
+    }
+
+    const tableData: CountryTableData[] = [];
+
+    mapTableData.forEach((value: CountryTableData, key: string) => {
+      // console.log(key, value);
+      tableData.push(value);
+    });
+
+    return tableData;
+  }
+
+  public convertRawDataToLeadingOpenScienceData(rawData: RawData) {
+
+    const leadingOpenScienceData: CountryOverviewData[] = [];
+
+    for (const series of rawData.datasets) {
+      if (series.series.query.name === 'new.oso.mobile.overview') {
+        for (const rowResult of series.series.result) {
+
+          const countryOverviewData: CountryOverviewData = new CountryOverviewData();
+          countryOverviewData.name = rowResult.row[1];
+          countryOverviewData.code = rowResult.row[0];
+          countryOverviewData.publicationsAffiliated = Number(rowResult.row[2]);
+          countryOverviewData.publicationsDeposited = Number(rowResult.row[3]);
+
+          leadingOpenScienceData.push(countryOverviewData);
+        }
+      }
+    }
+
+    return leadingOpenScienceData;
+  }
+
+  public convertRawDataToCountryPageOverviewData(rawData: RawData) {
+
+    const countryPageOverviewData: CountryPageOverviewData = new CountryPageOverviewData();
+
+    for (const series of rawData.datasets) {
+
+      if ((series.series.query.name === 'new.oso.results.oa_percentage.country')
+        && series.series.query.parameters && series.series.query.parameters[0] === 'publication'
+        && series.series.result && series.series.result.length > 0 && series.series.result[0].row) {
+
+        countryPageOverviewData.name = series.series.result[0].row[3];
+        countryPageOverviewData.code = series.series.result[0].row[4];
+
+        const publicationsAffiliatedIndicator: Indicator = new Indicator();
+        publicationsAffiliatedIndicator.percentage = Number(series.series.result[0].row[0]);
+        publicationsAffiliatedIndicator.oa = Number(series.series.result[0].row[1]);
+        publicationsAffiliatedIndicator.total = Number(series.series.result[0].row[2]);
+        countryPageOverviewData.publicationsAffiliated = publicationsAffiliatedIndicator;
+
+      } else if ((series.series.query.name === 'new.oso.results.oa_percentage.deposited.country')
+        && series.series.query.parameters && series.series.query.parameters[0] === 'publication'
+        && series.series.result && series.series.result.length > 0 && series.series.result[0].row) {
+
+        countryPageOverviewData.name = series.series.result[0].row[3];
+        countryPageOverviewData.code = series.series.result[0].row[4];
+
+        const publicationsDepositedIndicator: Indicator = new Indicator();
+        publicationsDepositedIndicator.percentage = Number(series.series.result[0].row[0]);
+        publicationsDepositedIndicator.oa = Number(series.series.result[0].row[1]);
+        publicationsDepositedIndicator.total = Number(series.series.result[0].row[2]);
+        countryPageOverviewData.publicationsDeposited = publicationsDepositedIndicator;
+
+      } else if ((series.series.query.name === 'new.oso.results.oa_percentage.country')
+        && series.series.query.parameters && series.series.query.parameters[0] === 'dataset'
+        && series.series.result && series.series.result.length > 0 && series.series.result[0].row) {
+
+        countryPageOverviewData.name = series.series.result[0].row[3];
+        countryPageOverviewData.code = series.series.result[0].row[4];
+
+        const datasetsAffiliatedIndicator: Indicator = new Indicator();
+        datasetsAffiliatedIndicator.percentage = Number(series.series.result[0].row[0]);
+        datasetsAffiliatedIndicator.oa = Number(series.series.result[0].row[1]);
+        datasetsAffiliatedIndicator.total = Number(series.series.result[0].row[2]);
+        countryPageOverviewData.datasetsAffiliated = datasetsAffiliatedIndicator;
+
+      } else if ((series.series.query.name === 'new.oso.results.oa_percentage.deposited.country')
+        && series.series.query.parameters && series.series.query.parameters[0] === 'dataset'
+        && series.series.result && series.series.result.length > 0 && series.series.result[0].row) {
+
+        countryPageOverviewData.name = series.series.result[0].row[3];
+        countryPageOverviewData.code = series.series.result[0].row[4];
+
+        const datasetsDepositedIndicator: Indicator = new Indicator();
+        datasetsDepositedIndicator.percentage = Number(series.series.result[0].row[0]);
+        datasetsDepositedIndicator.oa = Number(series.series.result[0].row[1]);
+        datasetsDepositedIndicator.total = Number(series.series.result[0].row[2]);
+        countryPageOverviewData.datasetsDeposited = datasetsDepositedIndicator;
+
+      } else if (series.series.query.name === 'new.oso.repositories.doar_re3data.validated.country'
+        && series.series.result && series.series.result.length > 0 && series.series.result[0].row) {
+
+        countryPageOverviewData.name = series.series.result[0].row[3];
+        countryPageOverviewData.code = series.series.result[0].row[4];
+
+        const repositoriesIndicator: Indicator = new Indicator();
+        repositoriesIndicator.percentage = Number(series.series.result[0].row[0]);
+        repositoriesIndicator.oa = Number(series.series.result[0].row[1]);
+        repositoriesIndicator.total = Number(series.series.result[0].row[2]);
+        countryPageOverviewData.repositories = repositoriesIndicator;
+
+      } else if (series.series.query.name === 'new.oso.journals.doaj.validated.country'
+        && series.series.result && series.series.result.length > 0 && series.series.result[0].row) {
+
+        countryPageOverviewData.name = series.series.result[0].row[3];
+        countryPageOverviewData.code = series.series.result[0].row[4];
+
+        const journalsIndicator: Indicator = new Indicator();
+        journalsIndicator.percentage = Number(series.series.result[0].row[0]);
+        journalsIndicator.oa = Number(series.series.result[0].row[1]);
+        journalsIndicator.total = Number(series.series.result[0].row[2]);
+        countryPageOverviewData.journals = journalsIndicator;
+
+      } else if (series.series.query.name === 'new.oso.oa_policies.country'
+        && series.series.result && series.series.result.length > 0 && series.series.result[0].row) {
+
+        countryPageOverviewData.policies = Number(series.series.result[0].row[0]);
+
+      } else if (series.series.query.name === 'new.oso.rnd.country'
+        && series.series.result && series.series.result.length > 0 && series.series.result[0].row) {
+
+        const rndExpenditure: RnDExpenditure = new RnDExpenditure();
+        rndExpenditure.expenditure = Number(series.series.result[0].row[0]);
+        rndExpenditure.year = Number(series.series.result[0].row[1]);
+        countryPageOverviewData.rndExpenditure = rndExpenditure;
+
+      } else if (series.series.query.name === 'new.oso.funder.country'
+        && series.series.result && series.series.result.length > 0 && series.series.result[0].row) {
+
+        countryPageOverviewData.funders = Number(series.series.result[0].row[0]);
+
+      } else if (series.series.query.name === 'new.oso.funding_organizations.country'
+        && series.series.result && series.series.result.length > 0 && series.series.result[0].row) {
+
+        countryPageOverviewData.fundingOrganizations = Number(series.series.result[0].row[0]);
+
+      } else if (series.series.query.name === 'new.oso.ec_funded_organizations.country'
+        && series.series.result && series.series.result.length > 0 && series.series.result[0].row) {
+
+        countryPageOverviewData.ec_fundedOrganizations = Number(series.series.result[0].row[0]);
+      }
+    }
+
+    return countryPageOverviewData;
+  }
+
+  public convertRawDataToCountryPageOAData(rawData: RawData) {
+
+    const countryPageOverviewData: CountryPageOverviewData = new CountryPageOverviewData();
+
+    for (const series of rawData.datasets) {
+
+      if ((series.series.query.name === 'new.oso.results.oa_percentage.country')
+        && series.series.query.parameters && series.series.query.parameters[0] === 'publication'
+        && series.series.result && series.series.result.length > 0 && series.series.result[0].row) {
+
+        countryPageOverviewData.name = series.series.result[0].row[3];
+        countryPageOverviewData.code = series.series.result[0].row[4];
+
+        const publicationsAffiliatedIndicator: Indicator = new Indicator();
+        publicationsAffiliatedIndicator.percentage = Number(series.series.result[0].row[0]);
+        publicationsAffiliatedIndicator.oa = Number(series.series.result[0].row[1]);
+        publicationsAffiliatedIndicator.total = Number(series.series.result[0].row[2]);
+        countryPageOverviewData.publicationsAffiliated = publicationsAffiliatedIndicator;
+
+      } else  if ((series.series.query.name === 'new.oso.results.oa_percentage.country')
+        && series.series.query.parameters && series.series.query.parameters[0] === 'dataset'
+        && series.series.result && series.series.result.length > 0 && series.series.result[0].row) {
+
+        countryPageOverviewData.name = series.series.result[0].row[3];
+        countryPageOverviewData.code = series.series.result[0].row[4];
+
+        const datasetsAffiliatedIndicator: Indicator = new Indicator();
+        datasetsAffiliatedIndicator.percentage = Number(series.series.result[0].row[0]);
+        datasetsAffiliatedIndicator.oa = Number(series.series.result[0].row[1]);
+        datasetsAffiliatedIndicator.total = Number(series.series.result[0].row[2]);
+        countryPageOverviewData.datasetsAffiliated = datasetsAffiliatedIndicator;
+
+      } else if ((series.series.query.name === 'new.oso.results.oa_percentage.country')
+        && series.series.query.parameters && series.series.query.parameters[0] === 'software'
+        && series.series.result && series.series.result.length > 0 && series.series.result[0].row) {
+
+        countryPageOverviewData.name = series.series.result[0].row[3];
+        countryPageOverviewData.code = series.series.result[0].row[4];
+
+        const softwareIndicator: Indicator = new Indicator();
+        softwareIndicator.percentage = Number(series.series.result[0].row[0]);
+        softwareIndicator.oa = Number(series.series.result[0].row[1]);
+        softwareIndicator.total = Number(series.series.result[0].row[2]);
+        countryPageOverviewData.software = softwareIndicator;
+
+      } else if ((series.series.query.name === 'new.oso.results.oa_percentage.country')
+        && series.series.query.parameters && series.series.query.parameters[0] === 'other'
+        && series.series.result && series.series.result.length > 0 && series.series.result[0].row) {
+
+        countryPageOverviewData.name = series.series.result[0].row[3];
+        countryPageOverviewData.code = series.series.result[0].row[4];
+
+        const otherIndicator: Indicator = new Indicator();
+        otherIndicator.percentage = Number(series.series.result[0].row[0]);
+        otherIndicator.oa = Number(series.series.result[0].row[1]);
+        otherIndicator.total = Number(series.series.result[0].row[2]);
+        countryPageOverviewData.other = otherIndicator;
+
+      }
+    }
+
+    return countryPageOverviewData;
+  }
+
+  public convertRawDataToTreemapHighchartsData(rawData: RawData) {
+
+    const treeMapData: TreemapHighchartsData[] = [];
+
+    for (const series of rawData.datasets) {
+      // let index = 1;
+      for (const rowResult of series.series.result) {
+
+        const treeMapItemData: TreemapHighchartsData = new TreemapHighchartsData();
+        treeMapItemData.name = rowResult.row[1];
+        treeMapItemData.value = Number(rowResult.row[0]);
+        treeMapItemData.colorValue = Number(rowResult.row[0]);
+        // treeMapItemData.colorValue = index;
+
+        treeMapData.push(treeMapItemData);
+
+        // index = index + 1;
+      }
+    }
+
+    return treeMapData;
+  }
+
+  private rawResultToCountryMapData(result: Row[]) {
+
+    const entityMapData: CountryMapData[] = [];
+    for (const rowResult of result) {
+
+      // remove unwanted countries
+      if (this.isCountryToBeRemoved(rowResult.row[2])) {
+        continue;
+      }
+
+      const countryMapData: CountryMapData = new CountryMapData();
+      countryMapData.value = Number(rowResult.row[0]);
+      countryMapData.name = rowResult.row[1];
+      countryMapData.code = rowResult.row[2];
+
+      entityMapData.push(countryMapData);
+    }
+
+    return entityMapData;
+  }
+
+  private isCountryToBeRemoved(countryCode: string) {
+    return (countryCode === 'GG' || countryCode === 'FO' || countryCode === 'GI' || countryCode === 'VA' || countryCode === 'IM'
+      || countryCode === 'JE' || countryCode === 'LI' || countryCode === 'MC' || countryCode === 'SM' || countryCode === 'SJ'
+      || countryCode === 'AX');
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/app-routing.module.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/app-routing.module.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/app-routing.module.ts	(revision 60863)
@@ -0,0 +1,46 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { HomeComponent } from './pages/home/home.component';
+import { CountriesMapOverviewComponent } from './pages/home/countries-map-overview.component';
+import { CountryPageComponent } from './pages/countrypage/country-page.component';
+import { MethodologyPageComponent } from './pages/methodology/methodology.component';
+import { ContinentOverviewComponent } from './pages/continentoverview/continent-overview.component';
+
+const routes: Routes = [
+  {
+    path: '',
+    redirectTo: '/home',
+    pathMatch: 'full'
+  },
+  {
+    path: 'home',
+    component: HomeComponent
+  },
+  {
+    path: 'overview-map-embed',
+    component: CountriesMapOverviewComponent
+  },
+  {
+    path: 'overview/:continentName',
+    component: ContinentOverviewComponent
+  },
+  {
+    path: 'countryDashboard/:countryCode',
+    component: CountryPageComponent
+  },
+  {
+    path: 'methodology',
+    component: MethodologyPageComponent
+  },
+];
+
+@NgModule({
+  imports: [RouterModule.forRoot(routes, {
+    // preloadingStrategy: PreloadAllModules,
+    // scrollPositionRestoration: 'top',
+    onSameUrlNavigation: 'reload',
+    // relativeLinkResolution: 'corrected'
+  })],
+  exports: [RouterModule]
+})
+export class AppRoutingModule { }
Index: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/icons.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/icons.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/icons.ts	(revision 60863)
@@ -0,0 +1,13 @@
+/**
+ * angular2-cookie-law
+ *
+ * Copyright 2016-2017, @andreasonny83, All rights reserved.
+ *
+ * @author: @andreasonny83 <andreasonny83@gmail.com>
+ */
+
+export const closeIcon: string = `
+  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+    <path d="M377.047 184.198q0 8.26-6.037 14.297L313.505 256l57.505 57.505q6.037 6.037 6.037 14.297 0 8.578-6.037 14.615l-28.593 28.593q-6.037 6.037-14.615 6.037-8.26 0-14.297-6.037L256 313.505l-57.505 57.505q-6.037 6.037-14.297 6.037-8.578 0-14.615-6.037l-28.593-28.593q-6.037-6.037-6.037-14.615 0-8.26 6.037-14.297L198.495 256l-57.505-57.505q-6.037-6.037-6.037-14.297 0-8.578 6.037-14.615l28.593-28.593q6.037-6.037 14.615-6.037 8.26 0 14.297 6.037L256 198.495l57.505-57.505q6.037-6.037 14.297-6.037 8.578 0 14.615 6.037l28.593 28.593q6.037 6.037 6.037 14.615zM500 256q0-66.401-32.724-122.477-32.724-56.075-88.799-88.799Q322.401 12 256 12q-66.401 0-122.477 32.724-56.075 32.724-88.799 88.799Q12 189.599 12 256q0 66.401 32.724 122.477 32.724 56.075 88.799 88.799Q189.599 500 256 500q66.401 0 122.477-32.724 56.075-32.724 88.799-88.799Q500 322.401 500 256z"></path>
+  </svg>
+`;

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/icons.ts
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.css
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.css	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.css	(revision 60863)
@@ -0,0 +1,77 @@
+.cookie-law-wrapper a {
+  color: #bbb;
+  -webkit-transition: color .2s;
+  transition: color .2s;
+}
+.cookie-law-wrapper a:hover {
+  color: #fff;
+}
+.cookie-law-wrapper a:hover svg {
+  fill: #fff;
+}
+.cookie-law-wrapper {
+  background: #333;
+  color: #bbb;
+  display: block;
+  /*font-family: Helvetica Neue,Helvetica,Arial,sans-serif;
+  font-size: 15px;
+  font-weight: 200;
+  line-height: 20px;*/
+  position: fixed;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  z-index: 100;
+  font-smooth: always;
+  -webkit-font-smoothing: antialiased;
+  text-align: center;
+}
+.dismiss {
+  display: block;
+  box-sizing: border-box;
+  padding: 10px;
+  position: absolute;
+  top: 0;
+  right: 10px;
+  text-decoration: none;
+  line-height: 20px;
+}
+.dismiss svg {
+  display: block;
+  fill: #bbb;
+  width: 20px;
+  height: 20px;
+  -webkit-transition: fill .2s;
+  transition: fill .2s;
+}
+.copy {
+  box-sizing: border-box;
+  padding: 10px 60px 10px 10px;
+}
+.copy span {
+  color: #fff;
+  /*font-weight: 400;*/
+}
+.copy a {
+  text-decoration: underline;
+}
+.copy a:active, .copy a:hover {
+    outline: 0;
+}
+
+@media (min-width: 600px) {
+  /* For bigger devices: */
+  .copy {
+    padding: 20px 60px 20px 20px;
+    /*font-size: 18px;
+    line-height: 24px;*/
+  }
+  .dismiss {
+    top: 10px;
+    right: 15px;
+  }
+  .dismiss svg {
+    width: 24px;
+    height: 24px;
+  }
+}

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.html	(revision 60863)
@@ -0,0 +1,25 @@
+<div class="cookie-law-wrapper"
+    [ngStyle]="currentStyles"
+    *ngIf="!cookieLawSeen"
+    [@state]="animation"
+    (@state.done)="afterDismissAnimation($event)">
+
+  <div class="copy">
+    <span #ref><ng-content></ng-content></span>
+    <span *ngIf="ref.childNodes.length == 0">
+      By continuing to browse the site, you're agreeing to our use of cookies.
+      <span *ngIf="learnMore">
+        Learn more in our <a [href]="learnMore" [target]="target">privacy policy</a>.
+      </span>
+    </span>
+
+    <a href="#" role="button" class="dismiss" (click)="dismiss($event)">
+      <span class="clickable uk-icon">
+        <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="1">
+          <path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path>
+          <path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path>
+        </svg>
+      </span>
+    </a>
+  </div>
+</div>

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.html
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/app/domain/countries-lat-lon.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/domain/countries-lat-lon.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/domain/countries-lat-lon.ts	(revision 60863)
@@ -0,0 +1,244 @@
+export const latlong = new Map()
+  .set('AD', {latitude: 42.5, longitude: 1.5})
+  .set('AE', {latitude: 24, longitude: 54})
+  .set('AD', {latitude: 42.5, longitude: 1.5})
+  .set('AE', {latitude: 24, longitude: 54})
+  .set('AF', {latitude: 33, longitude: 65})
+  .set('AG', {latitude: 17.05, longitude: -61.8})
+  .set('AI', {latitude: 18.25, longitude: -63.1667})
+  .set('AL', {latitude: 41, longitude: 20})
+  .set('AM', {latitude: 40, longitude: 45})
+  .set('AN', {latitude: 12.25, longitude: -68.75})
+  .set('AO', {latitude: -12.5, longitude: 18.5})
+  .set('AP', {latitude: 35, longitude: 105})
+  .set('AQ', {latitude: -90, longitude: 0})
+  .set('AR', {latitude: -34, longitude: -64})
+  .set('AS', {latitude: -14.3333, longitude: -170})
+  .set('AT', {latitude: 47.3333, longitude: 13.3333})
+  .set('AU', {latitude: -27, longitude: 133})
+  .set('AW', {latitude: 12.5, longitude: -69.9667})
+  .set('AZ', {latitude: 40.5, longitude: 47.5})
+  .set('BA', {latitude: 44, longitude: 18})
+  .set('BB', {latitude: 13.1667, longitude: -59.5333})
+  .set('BD', {latitude: 24, longitude: 90})
+  .set('BE', {latitude: 50.8333, longitude: 4})
+  .set('BF', {latitude: 13, longitude: -2})
+  .set('BG', {latitude: 43, longitude: 25})
+  .set('BH', {latitude: 26, longitude: 50.55})
+  .set('BI', {latitude: -3.5, longitude: 30})
+  .set('BJ', {latitude: 9.5, longitude: 2.25})
+  .set('BM', {latitude: 32.3333, longitude: -64.75})
+  .set('BN', {latitude: 4.5, longitude: 114.6667})
+  .set('BO', {latitude: -17, longitude: -65})
+  .set('BR', {latitude: -10, longitude: -55})
+  .set('BS', {latitude: 24.25, longitude: -76})
+  .set('BT', {latitude: 27.5, longitude: 90.5})
+  .set('BV', {latitude: -54.4333, longitude: 3.4})
+  .set('BW', {latitude: -22, longitude: 24})
+  .set('BY', {latitude: 53, longitude: 28})
+  .set('BZ', {latitude: 17.25, longitude: -88.75})
+  .set('CA', {latitude: 54, longitude: -100})
+  .set('CC', {latitude: -12.5, longitude: 96.8333})
+  .set('CD', {latitude: 0, longitude: 25})
+  .set('CF', {latitude: 7, longitude: 21})
+  .set('CG', {latitude: -1, longitude: 15})
+  .set('CH', {latitude: 47, longitude: 8})
+  .set('CI', {latitude: 8, longitude: -5})
+  .set('CK', {latitude: -21.2333, longitude: -159.7667})
+  .set('CL', {latitude: -30, longitude: -71})
+  .set('CM', {latitude: 6, longitude: 12})
+  .set('CN', {latitude: 35, longitude: 105})
+  .set('CO', {latitude: 4, longitude: -72})
+  .set('CR', {latitude: 10, longitude: -84})
+  .set('CU', {latitude: 21.5, longitude: -80})
+  .set('CV', {latitude: 16, longitude: -24})
+  .set('CX', {latitude: -10.5, longitude: 105.6667})
+  .set('CY', {latitude: 35, longitude: 33})
+  .set('CZ', {latitude: 49.75, longitude: 15.5})
+  .set('DE', {latitude: 51, longitude: 9})
+  .set('DJ', {latitude: 11.5, longitude: 43})
+  .set('DK', {latitude: 56, longitude: 10})
+  .set('DM', {latitude: 15.4167, longitude: -61.3333})
+  .set('DO', {latitude: 19, longitude: -70.6667})
+  .set('DZ', {latitude: 28, longitude: 3})
+  .set('EC', {latitude: -2, longitude: -77.5})
+  .set('EE', {latitude: 59, longitude: 26})
+  .set('EG', {latitude: 27, longitude: 30})
+  .set('EH', {latitude: 24.5, longitude: -13})
+  .set('ER', {latitude: 15, longitude: 39})
+  .set('ES', {latitude: 40, longitude: -4})
+  .set('ET', {latitude: 8, longitude: 38})
+  .set('EU', {latitude: 47, longitude: 8})
+  .set('FI', {latitude: 62, longitude: 26})
+  .set('FJ', {latitude: -18, longitude: 175})
+  .set('FK', {latitude: -51.75, longitude: -59})
+  .set('FM', {latitude: 6.9167, longitude: 158.25})
+  .set('FO', {latitude: 62, longitude: -7})
+  .set('FR', {latitude: 46, longitude: 2})
+  .set('GA', {latitude: -1, longitude: 11.75})
+  .set('GB', {latitude: 54, longitude: -2})
+  .set('GD', {latitude: 12.1167, longitude: -61.6667})
+  .set('GE', {latitude: 42, longitude: 43.5})
+  .set('GF', {latitude: 4, longitude: -53})
+  .set('GH', {latitude: 8, longitude: -2})
+  .set('GI', {latitude: 36.1833, longitude: -5.3667})
+  .set('GL', {latitude: 72, longitude: -40})
+  .set('GM', {latitude: 13.4667, longitude: -16.5667})
+  .set('GN', {latitude: 11, longitude: -10})
+  .set('GP', {latitude: 16.25, longitude: -61.5833})
+  .set('GQ', {latitude: 2, longitude: 10})
+  .set('GR', {latitude: 39, longitude: 22})
+  .set('GS', {latitude: -54.5, longitude: -37})
+  .set('GT', {latitude: 15.5, longitude: -90.25})
+  .set('GU', {latitude: 13.4667, longitude: 144.7833})
+  .set('GW', {latitude: 12, longitude: -15})
+  .set('GY', {latitude: 5, longitude: -59})
+  .set('HK', {latitude: 22.25, longitude: 114.1667})
+  .set('HM', {latitude: -53.1, longitude: 72.5167})
+  .set('HN', {latitude: 15, longitude: -86.5})
+  .set('HR', {latitude: 45.1667, longitude: 15.5})
+  .set('HT', {latitude: 19, longitude: -72.4167})
+  .set('HU', {latitude: 47, longitude: 20})
+  .set('ID', {latitude: -5, longitude: 120})
+  .set('IE', {latitude: 53, longitude: -8})
+  .set('IL', {latitude: 31.5, longitude: 34.75})
+  .set('IN', {latitude: 20, longitude: 77})
+  .set('IO', {latitude: -6, longitude: 71.5})
+  .set('IQ', {latitude: 33, longitude: 44})
+  .set('IR', {latitude: 32, longitude: 53})
+  .set('IS', {latitude: 65, longitude: -18})
+  .set('IT', {latitude: 42.8333, longitude: 12.8333})
+  .set('JM', {latitude: 18.25, longitude: -77.5})
+  .set('JO', {latitude: 31, longitude: 36})
+  .set('JP', {latitude: 36, longitude: 138})
+  .set('KE', {latitude: 1, longitude: 38})
+  .set('KG', {latitude: 41, longitude: 75})
+  .set('KH', {latitude: 13, longitude: 105})
+  .set('KI', {latitude: 1.4167, longitude: 173})
+  .set('KM', {latitude: -12.1667, longitude: 44.25})
+  .set('KN', {latitude: 17.3333, longitude: -62.75})
+  .set('KP', {latitude: 40, longitude: 127})
+  .set('KR', {latitude: 37, longitude: 127.5})
+  .set('KW', {latitude: 29.3375, longitude: 47.6581})
+  .set('KY', {latitude: 19.5, longitude: -80.5})
+  .set('KZ', {latitude: 48, longitude: 68})
+  .set('LA', {latitude: 18, longitude: 105})
+  .set('LB', {latitude: 33.8333, longitude: 35.8333})
+  .set('LC', {latitude: 13.8833, longitude: -61.1333})
+  .set('LI', {latitude: 47.1667, longitude: 9.5333})
+  .set('LK', {latitude: 7, longitude: 81})
+  .set('LR', {latitude: 6.5, longitude: -9.5})
+  .set('LS', {latitude: -29.5, longitude: 28.5})
+  .set('LT', {latitude: 55, longitude: 24})
+  .set('LU', {latitude: 49.75, longitude: 6})
+  .set('LV', {latitude: 57, longitude: 25})
+  .set('LY', {latitude: 25, longitude: 17})
+  .set('MA', {latitude: 32, longitude: -5})
+  .set('MC', {latitude: 43.7333, longitude: 7.4})
+  .set('MD', {latitude: 47, longitude: 29})
+  .set('ME', {latitude: 42.5, longitude: 19.4})
+  .set('MG', {latitude: -20, longitude: 47})
+  .set('MH', {latitude: 9, longitude: 168})
+  .set('MK', {latitude: 41.8333, longitude: 22})
+  .set('ML', {latitude: 17, longitude: -4})
+  .set('MM', {latitude: 22, longitude: 98})
+  .set('MN', {latitude: 46, longitude: 105})
+  .set('MO', {latitude: 22.1667, longitude: 113.55})
+  .set('MP', {latitude: 15.2, longitude: 145.75})
+  .set('MQ', {latitude: 14.6667, longitude: -61})
+  .set('MR', {latitude: 20, longitude: -12})
+  .set('MS', {latitude: 16.75, longitude: -62.2})
+  .set('MT', {latitude: 35.8333, longitude: 14.5833})
+  .set('MU', {latitude: -20.2833, longitude: 57.55})
+  .set('MV', {latitude: 3.25, longitude: 73})
+  .set('MW', {latitude: -13.5, longitude: 34})
+  .set('MX', {latitude: 23, longitude: -102})
+  .set('MY', {latitude: 2.5, longitude: 112.5})
+  .set('MZ', {latitude: -18.25, longitude: 35})
+  .set('NA', {latitude: -22, longitude: 17})
+  .set('NC', {latitude: -21.5, longitude: 165.5})
+  .set('NE', {latitude: 16, longitude: 8})
+  .set('NF', {latitude: -29.0333, longitude: 167.95})
+  .set('NG', {latitude: 10, longitude: 8})
+  .set('NI', {latitude: 13, longitude: -85})
+  .set('NL', {latitude: 52.5, longitude: 5.75})
+  .set('NO', {latitude: 62, longitude: 10})
+  .set('NP', {latitude: 28, longitude: 84})
+  .set('NR', {latitude: -0.5333, longitude: 166.9167})
+  .set('NU', {latitude: -19.0333, longitude: -169.8667})
+  .set('NZ', {latitude: -41, longitude: 174})
+  .set('OM', {latitude: 21, longitude: 57})
+  .set('PA', {latitude: 9, longitude: -80})
+  .set('PE', {latitude: -10, longitude: -76})
+  .set('PF', {latitude: -15, longitude: -140})
+  .set('PG', {latitude: -6, longitude: 147})
+  .set('PH', {latitude: 13, longitude: 122})
+  .set('PK', {latitude: 30, longitude: 70})
+  .set('PL', {latitude: 52, longitude: 20})
+  .set('PM', {latitude: 46.8333, longitude: -56.3333})
+  .set('PR', {latitude: 18.25, longitude: -66.5})
+  .set('PS', {latitude: 32, longitude: 35.25})
+  .set('PT', {latitude: 39.5, longitude: -8})
+  .set('PW', {latitude: 7.5, longitude: 134.5})
+  .set('PY', {latitude: -23, longitude: -58})
+  .set('QA', {latitude: 25.5, longitude: 51.25})
+  .set('RE', {latitude: -21.1, longitude: 55.6})
+  .set('RO', {latitude: 46, longitude: 25})
+  .set('RS', {latitude: 44, longitude: 21})
+  // .set('RU', {latitude: 60, longitude: 100})
+  .set('RU', {latitude: 55, longitude: 40})
+  .set('RW', {latitude: -2, longitude: 30})
+  .set('SA', {latitude: 25, longitude: 45})
+  .set('SB', {latitude: -8, longitude: 159})
+  .set('SC', {latitude: -4.5833, longitude: 55.6667})
+  .set('SD', {latitude: 15, longitude: 30})
+  .set('SE', {latitude: 62, longitude: 15})
+  .set('SG', {latitude: 1.3667, longitude: 103.8})
+  .set('SH', {latitude: -15.9333, longitude: -5.7})
+  .set('SI', {latitude: 46, longitude: 15})
+  .set('SJ', {latitude: 78, longitude: 20})
+  .set('SK', {latitude: 48.6667, longitude: 19.5})
+  .set('SL', {latitude: 8.5, longitude: -11.5})
+  .set('SM', {latitude: 43.7667, longitude: 12.4167})
+  .set('SN', {latitude: 14, longitude: -14})
+  .set('SO', {latitude: 10, longitude: 49})
+  .set('SR', {latitude: 4, longitude: -56})
+  .set('ST', {latitude: 1, longitude: 7})
+  .set('SV', {latitude: 13.8333, longitude: -88.9167})
+  .set('SY', {latitude: 35, longitude: 38})
+  .set('SZ', {latitude: -26.5, longitude: 31.5})
+  .set('TC', {latitude: 21.75, longitude: -71.5833})
+  .set('TD', {latitude: 15, longitude: 19})
+  .set('TF', {latitude: -43, longitude: 67})
+  .set('TG', {latitude: 8, longitude: 1.1667})
+  .set('TH', {latitude: 15, longitude: 100})
+  .set('TJ', {latitude: 39, longitude: 71})
+  .set('TK', {latitude: -9, longitude: -172})
+  .set('TM', {latitude: 40, longitude: 60})
+  .set('TN', {latitude: 34, longitude: 9})
+  .set('TO', {latitude: -20, longitude: -175})
+  .set('TR', {latitude: 39, longitude: 35})
+  .set('TT', {latitude: 11, longitude: -61})
+  .set('TV', {latitude: -8, longitude: 178})
+  .set('TW', {latitude: 23.5, longitude: 121})
+  .set('TZ', {latitude: -6, longitude: 35})
+  .set('UA', {latitude: 49, longitude: 32})
+  .set('UG', {latitude: 1, longitude: 32})
+  .set('UM', {latitude: 19.2833, longitude: 166.6})
+  .set('US', {latitude: 38, longitude: -97})
+  .set('UY', {latitude: -33, longitude: -56})
+  .set('UZ', {latitude: 41, longitude: 64})
+  .set('VA', {latitude: 41.9, longitude: 12.45})
+  .set('VC', {latitude: 13.25, longitude: -61.2})
+  .set('VE', {latitude: 8, longitude: -66})
+  .set('VG', {latitude: 18.5, longitude: -64.5})
+  .set('VI', {latitude: 18.3333, longitude: -64.8333})
+  .set('VN', {latitude: 16, longitude: 106})
+  .set('VU', {latitude: -16, longitude: 167})
+  .set('WF', {latitude: -13.3, longitude: -176.2})
+  .set('WS', {latitude: -13.5833, longitude: -172.3333})
+  .set('YE', {latitude: 15, longitude: 48})
+  .set('YT', {latitude: -12.8333, longitude: 45.1667})
+  .set('ZA', {latitude: -29, longitude: 24})
+  .set('ZM', {latitude: -15, longitude: 30})
+  .set('ZW', {latitude: -20, longitude: 30});
Index: modules/open-science-observatory-ui/branches/gradient/src/app/domain/overview-data.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/domain/overview-data.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/domain/overview-data.ts	(revision 60863)
@@ -0,0 +1,35 @@
+export class OverviewData {
+  overview: OverviewIndicators;
+  countries: CountryOverview[];
+}
+
+export class OverviewIndicators {
+  publications: Indicator;
+  datasets: Indicator;
+  repositories: Indicator;
+  journals: Indicator;
+  policies: Indicator;
+  software: Indicator;
+  otherProducts: Indicator;
+  funders: Indicator;
+  ecFundedOrganizations: Indicator;
+}
+
+export class CountryOverview {
+  country: string;
+  repositories: Indicator;
+  journals: Indicator;
+  policies: Indicator;
+  publications: Indicator;
+  datasets: Indicator;
+  software: Indicator;
+  otherProducts: Indicator;
+  funders: Indicator;
+  ecFundedOrganizations: Indicator;
+}
+
+export class Indicator {
+  oa: number;
+  total: number;
+  percentage: number;
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/shared/footer/footer.component.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/shared/footer/footer.component.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/shared/footer/footer.component.html	(revision 60863)
@@ -0,0 +1,163 @@
+<div class="uk-section footerSection">
+  <div class="uk-container uk-container-small uk-container-center">
+
+    <div class="uk-grid">
+
+      <div class="uk-width-1-4@m uk-width-1-4@l uk-width-1-1@s">
+        <div>
+          <img src="../../../assets/img/Logo_Horizontal_white_small.png">
+        </div>
+        <div class="uk-text-meta uk-text-small uk-margin-top">
+          <span class="uk-margin-right footerImage">
+            <img src="../../../assets/img/Open_Research_Graph.svg">
+          </span>
+          <span>Powered by <a target="_blank" href="" style="text-decoration: underline">OpenAIRE Open Research Graph</a></span>
+        </div>
+      </div>
+
+      <div class="uk-width-3-4@m uk-width-3-4@l uk-width-1-1@s uk-margin">
+        <div class="">
+          <span class="uk-margin-right footerImage">
+            <img src="../../../assets/img/EU_footer_flag.png">
+          </span>
+          <span>OpenAIRE-Advance receives funding from the European Union’s Horizon 2020 Research and Innovation programme
+            under Grant Agreement No. 777541.</span>
+        </div>
+
+        <!--MOBILE & PAD PORTRAIT-->
+        <div class="uk-hidden@m">
+          <div class="uk-margin-top">
+            <a class="footerLink uk-display-block">Terms of use & privacy policy</a>
+            <a class="footerLink uk-display-block uk-margin-small-top">Sources and methodology</a>
+          </div>
+
+          <div class="uk-margin-medium-top uk-text-left@s uk-text-center">
+            <div class="uk-child-width-auto uk-grid-small uk-flex-left@s uk-flex-center uk-grid" uk-grid="">
+              <div class="uk-first-column">
+                <a href="http://www.facebook.com/groups/openaire/" target="_blank" class="el-link uk-icon-button uk-icon">
+                  <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
+                    <path d="M11,10h2.6l0.4-3H11V5.3c0-0.9,0.2-1.5,1.5-1.5H14V1.1c-0.3,0-1-0.1-2.1-0.1C9.6,1,8,2.4,8,5v2H5.5v3H8v8h3V10z"></path>
+                  </svg>
+                </a>
+              </div>
+              <div>
+                <a href="http://www.twitter.com/OpenAIRE_eu" target="_blank" class="el-link uk-icon-button uk-icon">
+                  <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
+                    <path d="M19,4.74 C18.339,5.029 17.626,5.229 16.881,5.32 C17.644,4.86 18.227,4.139 18.503,3.28 C17.79,3.7 17.001,4.009 16.159,4.17 C15.485,3.45 14.526,3 13.464,3 C11.423,3 9.771,4.66 9.771,6.7 C9.771,6.99 9.804,7.269 9.868,7.539 C6.795,7.38 4.076,5.919 2.254,3.679 C1.936,4.219 1.754,4.86 1.754,5.539 C1.754,6.82 2.405,7.95 3.397,8.61 C2.79,8.589 2.22,8.429 1.723,8.149 L1.723,8.189 C1.723,9.978 2.997,11.478 4.686,11.82 C4.376,11.899 4.049,11.939 3.713,11.939 C3.475,11.939 3.245,11.919 3.018,11.88 C3.49,13.349 4.852,14.419 6.469,14.449 C5.205,15.429 3.612,16.019 1.882,16.019 C1.583,16.019 1.29,16.009 1,15.969 C2.635,17.019 4.576,17.629 6.662,17.629 C13.454,17.629 17.17,12 17.17,7.129 C17.17,6.969 17.166,6.809 17.157,6.649 C17.879,6.129 18.504,5.478 19,4.74"></path>
+                  </svg>
+                </a>
+              </div>
+              <div class="">
+                <a href="http://www.linkedin.com/groups/OpenAIRE-3893548" target="_blank" class="el-link uk-icon-button uk-icon">
+                  <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
+                    <path d="M5.77,17.89 L5.77,7.17 L2.21,7.17 L2.21,17.89 L5.77,17.89 L5.77,17.89 Z M3.99,5.71 C5.23,5.71 6.01,4.89 6.01,3.86 C5.99,2.8 5.24,2 4.02,2 C2.8,2 2,2.8 2,3.85 C2,4.88 2.77,5.7 3.97,5.7 L3.99,5.7 L3.99,5.71 L3.99,5.71 Z"></path>
+                    <path d="M7.75,17.89 L11.31,17.89 L11.31,11.9 C11.31,11.58 11.33,11.26 11.43,11.03 C11.69,10.39 12.27,9.73 13.26,9.73 C14.55,9.73 15.06,10.71 15.06,12.15 L15.06,17.89 L18.62,17.89 L18.62,11.74 C18.62,8.45 16.86,6.92 14.52,6.92 C12.6,6.92 11.75,7.99 11.28,8.73 L11.3,8.73 L11.3,7.17 L7.75,7.17 C7.79,8.17 7.75,17.89 7.75,17.89 L7.75,17.89 L7.75,17.89 Z"></path>
+                  </svg>
+                </a>
+              </div>
+              <div class="">
+                <a href="https://www.youtube.com/channel/UChFYqizc-S6asNjQSoWuwjw" target="_blank" class="el-link uk-icon-button uk-icon">
+                  <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
+                    <path d="M15,4.1c1,0.1,2.3,0,3,0.8c0.8,0.8,0.9,2.1,0.9,3.1C19,9.2,19,10.9,19,12c-0.1,1.1,0,2.4-0.5,3.4c-0.5,1.1-1.4,1.5-2.5,1.6 c-1.2,0.1-8.6,0.1-11,0c-1.1-0.1-2.4-0.1-3.2-1c-0.7-0.8-0.7-2-0.8-3C1,11.8,1,10.1,1,8.9c0-1.1,0-2.4,0.5-3.4C2,4.5,3,4.3,4.1,4.2 C5.3,4.1,12.6,4,15,4.1z M8,7.5v6l5.5-3L8,7.5z"></path>
+                  </svg>
+                </a>
+              </div>
+
+            </div>
+            <div class="uk-margin-medium-top">
+              <h5 class="el-title uk-margin-medium-right uk-h5 uk-inline uk-margin-remove">Newsletter</h5>
+              <a class="el-link footerLink" href="/newsletter/listing">
+                <span class="el-image uk-icon" uk-icon="icon: rss; ratio: 1;">
+                </span>
+              </a>
+
+            </div>
+          </div>
+        </div>
+
+        <!--LAPTOP & PAD LANDSCAPE-->
+        <div class="uk-visible@m">
+          <div class="uk-margin-top">
+            <a class="footerLink uk-margin-medium-right">Terms of use & privacy policy</a>
+            <a class="footerLink">Sources and methodology</a>
+          </div>
+
+          <div class="uk-margin-top uk-text-left@s uk-text-center">
+            <div class="uk-child-width-auto uk-grid-small uk-flex-left@s uk-flex-center uk-grid" uk-grid="">
+              <div class="uk-first-column">
+                <a href="http://www.facebook.com/groups/openaire/" target="_blank" class="el-link uk-icon-button uk-icon">
+                  <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
+                    <path d="M11,10h2.6l0.4-3H11V5.3c0-0.9,0.2-1.5,1.5-1.5H14V1.1c-0.3,0-1-0.1-2.1-0.1C9.6,1,8,2.4,8,5v2H5.5v3H8v8h3V10z"></path>
+                  </svg>
+                </a>
+              </div>
+              <div>
+                <a href="http://www.twitter.com/OpenAIRE_eu" target="_blank" class="el-link uk-icon-button uk-icon">
+                  <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
+                    <path d="M19,4.74 C18.339,5.029 17.626,5.229 16.881,5.32 C17.644,4.86 18.227,4.139 18.503,3.28 C17.79,3.7 17.001,4.009 16.159,4.17 C15.485,3.45 14.526,3 13.464,3 C11.423,3 9.771,4.66 9.771,6.7 C9.771,6.99 9.804,7.269 9.868,7.539 C6.795,7.38 4.076,5.919 2.254,3.679 C1.936,4.219 1.754,4.86 1.754,5.539 C1.754,6.82 2.405,7.95 3.397,8.61 C2.79,8.589 2.22,8.429 1.723,8.149 L1.723,8.189 C1.723,9.978 2.997,11.478 4.686,11.82 C4.376,11.899 4.049,11.939 3.713,11.939 C3.475,11.939 3.245,11.919 3.018,11.88 C3.49,13.349 4.852,14.419 6.469,14.449 C5.205,15.429 3.612,16.019 1.882,16.019 C1.583,16.019 1.29,16.009 1,15.969 C2.635,17.019 4.576,17.629 6.662,17.629 C13.454,17.629 17.17,12 17.17,7.129 C17.17,6.969 17.166,6.809 17.157,6.649 C17.879,6.129 18.504,5.478 19,4.74"></path>
+                  </svg>
+                </a>
+              </div>
+              <div class="">
+                <a href="http://www.linkedin.com/groups/OpenAIRE-3893548" target="_blank" class="el-link uk-icon-button uk-icon">
+                  <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
+                    <path d="M5.77,17.89 L5.77,7.17 L2.21,7.17 L2.21,17.89 L5.77,17.89 L5.77,17.89 Z M3.99,5.71 C5.23,5.71 6.01,4.89 6.01,3.86 C5.99,2.8 5.24,2 4.02,2 C2.8,2 2,2.8 2,3.85 C2,4.88 2.77,5.7 3.97,5.7 L3.99,5.7 L3.99,5.71 L3.99,5.71 Z"></path>
+                    <path d="M7.75,17.89 L11.31,17.89 L11.31,11.9 C11.31,11.58 11.33,11.26 11.43,11.03 C11.69,10.39 12.27,9.73 13.26,9.73 C14.55,9.73 15.06,10.71 15.06,12.15 L15.06,17.89 L18.62,17.89 L18.62,11.74 C18.62,8.45 16.86,6.92 14.52,6.92 C12.6,6.92 11.75,7.99 11.28,8.73 L11.3,8.73 L11.3,7.17 L7.75,7.17 C7.79,8.17 7.75,17.89 7.75,17.89 L7.75,17.89 L7.75,17.89 Z"></path>
+                  </svg>
+                </a>
+              </div>
+              <div class="">
+                <a href="https://www.youtube.com/channel/UChFYqizc-S6asNjQSoWuwjw" target="_blank" class="el-link uk-icon-button uk-icon">
+                  <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
+                    <path d="M15,4.1c1,0.1,2.3,0,3,0.8c0.8,0.8,0.9,2.1,0.9,3.1C19,9.2,19,10.9,19,12c-0.1,1.1,0,2.4-0.5,3.4c-0.5,1.1-1.4,1.5-2.5,1.6 c-1.2,0.1-8.6,0.1-11,0c-1.1-0.1-2.4-0.1-3.2-1c-0.7-0.8-0.7-2-0.8-3C1,11.8,1,10.1,1,8.9c0-1.1,0-2.4,0.5-3.4C2,4.5,3,4.3,4.1,4.2 C5.3,4.1,12.6,4,15,4.1z M8,7.5v6l5.5-3L8,7.5z"></path>
+                  </svg>
+                </a>
+              </div>
+
+              <div class="uk-margin-medium-left" style="margin-top: 7px;">
+                <h5 class="el-title uk-margin-medium-right uk-h5 uk-inline uk-margin-remove">Newsletter</h5>
+                <a class="el-link footerLink" href="/newsletter/listing">
+                <span class="el-image uk-icon" uk-icon="icon: rss; ratio: 1;">
+                </span>
+                </a>
+
+              </div>
+
+            </div>
+          </div>
+        </div>
+
+
+      </div>
+
+    </div>
+
+    <div class="uk-grid" uk-grid="">
+      <div class="uk-width-expand@m uk-width-expand@l uk-width-expand@s">
+        <div id="footer#22" class=" uk-text-small uk-margin uk-margin-remove-bottom uk-text-center@m uk-text-center uk-text-lead">
+          <a href="http://creativecommons.org/licenses/by/4.0/" rel="license">
+            <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" class=" uk-svg uk-margin-small-right">
+              <title></title>
+              <g data-name="Creative Commons" id="Creative_Commons">
+                <circle cx="12" cy="12" r="11.5" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round"></circle>
+                <path d="M10.87,10a3.5,3.5,0,1,0,0,4" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round"></path>
+                <path d="M18.87,10a3.5,3.5,0,1,0,0,4" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round"></path>
+              </g>
+            </svg>
+            <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" class=" uk-svg">
+              <title></title>
+              <g id="Attribution">
+                <g data-name="<Group>" id="_Group_">
+                  <circle cx="12" cy="5" data-name="<Path>" id="_Path_" r="1.5" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round"></circle>
+                  <path d="M12,8a5,5,0,0,0-3.07.71,1,1,0,0,0-.43.83V15H10v5.5h4V15h1.5V9.54a1,1,0,0,0-.43-.83A5,5,0,0,0,12,8Z" data-name="<Path>" id="_Path_2" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round"></path>
+                </g>
+                <circle cx="12" cy="12" r="11.5" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round"></circle>
+              </g>
+            </svg>
+          </a>
+          &nbsp;Unless otherwise indicated, all materials created by OpenAIRE are licenced under&nbsp;<a href="http://creativecommons.org/licenses/by/4.0/" rel="license" class="footerLink">CC ATTRIBUTION 4.0 INTERNATIONAL LICENSE</a>.
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/countrypage/country-page.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/countrypage/country-page.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/countrypage/country-page.component.ts	(revision 60863)
@@ -0,0 +1,443 @@
+import { Component, OnInit } from '@angular/core';
+import { DataService } from '../../services/data.service';
+import { ActivatedRoute } from '@angular/router';
+import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
+import { DataHandlerService } from '../../services/data-handler.service';
+import { CountryPageOverviewData } from '../../domain/overview-map-data';
+import { TreemapHighchartsData } from '../../domain/treemap-highcharts-data';
+import { environment } from '../../../environments/environment';
+import {
+  datasetPalette,
+  otherResearchProductsPalette,
+  publicationPalette,
+  softwarePalette,
+  resultsPalette,
+  datasetColor, publicationColor, otherResearchProductsColor, softwareColor
+} from '../../chart-palettes';
+
+@Component({
+  selector: 'app-country-page',
+  templateUrl: './country-page.component.html',
+})
+
+export class CountryPageComponent implements OnInit {
+
+  private chartsURL = environment.API_ENDPOINT + 'chart?json=';
+  private profileName = environment.profileName;
+
+  private publicationPalette = publicationPalette;
+  private datasetPalette = datasetPalette;
+  private softwarePalette = softwarePalette;
+  private otherResearchProductsPalette = otherResearchProductsPalette;
+  private resultsPalette = resultsPalette;
+
+  publicationColor = publicationColor;
+  datasetColor = datasetColor;
+  softwareColor = softwareColor;
+  otherResearchProductsColor = otherResearchProductsColor;
+
+  lastUpdateDate: string;
+
+  countryCode: string;
+
+  activeTopView: string = 'overview';
+  activeInnerView: string = 'publications';
+
+  linkToCountryInOpenAIRE: string;
+
+  countryPageOverviewData: CountryPageOverviewData;
+
+  // Overview Tab
+  overviewTabIsInitialised: boolean = false;
+
+  countryPageOAData: CountryPageOverviewData;
+
+  resultsByTypeOANonOAChartURL: SafeResourceUrl;
+
+  oaNonOAPublicationsTimelineChartURL: SafeResourceUrl;
+  publicationsByDatasourceChartURL: SafeResourceUrl;
+  publicationsByOrganizationChartURL: SafeResourceUrl;
+
+  oaNonOADatasetsTimelineChartURL: SafeResourceUrl;
+  datasetsByDatasourceChartURL: SafeResourceUrl;
+  datasetsByOrganizationChartURL: SafeResourceUrl;
+
+  oaNonOASoftwareTimelineChartURL: SafeResourceUrl;
+  softwareByDatasourceChartURL: SafeResourceUrl;
+  softwareByOrganizationChartURL: SafeResourceUrl;
+
+  oaNonOAOtherTimelineChartURL: SafeResourceUrl;
+  otherByDatasourceChartURL: SafeResourceUrl;
+  otherByOrganizationChartURL: SafeResourceUrl;
+
+  publicationsByFunderData: TreemapHighchartsData[];
+  datasetsByFunderData: TreemapHighchartsData[];
+  softwareByFunderData: TreemapHighchartsData[];
+  otherByFunderData: TreemapHighchartsData[];
+
+  // Open Science Tab
+  // publications subtab
+  openSciencePubsTabIsInitialised: boolean = false;
+
+  publicationsWithPIDTimeline: SafeResourceUrl;
+  publicationsWithLicenceTimeline: SafeResourceUrl;
+  goldPublicationsTimeline: SafeResourceUrl;
+  greenPublicationsTimeline: SafeResourceUrl;
+
+  publicationsWithPIDByDatasourceChartURL: SafeResourceUrl;
+  publicationsWithLicenceByDatasourceChartURL: SafeResourceUrl;
+  goldPublicationsByDatasourceChartURL: SafeResourceUrl;
+  greenPublicationsByDatasourceChartURL: SafeResourceUrl;
+
+  publicationsWithPIDByOrganizationChartURL: SafeResourceUrl;
+  publicationsWithLicenceByOrganizationChartURL: SafeResourceUrl;
+  goldPublicationsByOrganizationChartURL: SafeResourceUrl;
+  greenPublicationsByOrganizationChartURL: SafeResourceUrl;
+
+  publicationsWithPIDByFunderData: TreemapHighchartsData[];
+  publicationsWithLicenceByFunderData: TreemapHighchartsData[];
+  goldPublicationsByFunderData: TreemapHighchartsData[];
+  greenPublicationsByFunderData: TreemapHighchartsData[];
+
+  greenVsGoldPublicationsChartURL: SafeResourceUrl;
+
+  // Open Science Tab
+  // datasets subtab
+  openScienceDatasetsTabIsInitialised: boolean = false;
+
+  datasetsWithPIDTimeline: SafeResourceUrl;
+  datasetsWithLicenceTimeline: SafeResourceUrl;
+
+  datasetsWithPIDByDatasourceChartURL: SafeResourceUrl;
+  datasetsWithLicenceByDatasourceChartURL: SafeResourceUrl;
+
+  datasetsWithPIDByOrganizationChartURL: SafeResourceUrl;
+  datasetsWithLicenceByOrganizationChartURL: SafeResourceUrl;
+
+  datasetsWithPIDByFunderData: TreemapHighchartsData[];
+  datasetsWithLicenceByFunderData: TreemapHighchartsData[];
+
+  // Open Science Tab
+  // software subtab
+  openScienceSoftwareTabIsInitialised: boolean = false;
+
+  softwareWithPIDTimeline: SafeResourceUrl;
+  softwareWithLicenceTimeline: SafeResourceUrl;
+
+  softwareWithPIDByDatasourceChartURL: SafeResourceUrl;
+  softwareWithLicenceByDatasourceChartURL: SafeResourceUrl;
+
+  softwareWithPIDByOrganizationChartURL: SafeResourceUrl;
+  softwareWithLicenceByOrganizationChartURL: SafeResourceUrl;
+
+  softwareWithPIDByFunderData: TreemapHighchartsData[];
+  softwareWithLicenceByFunderData: TreemapHighchartsData[];
+
+  // Open Science Tab
+  // other research products subtab
+  openScienceOtherTabIsInitialised: boolean = false;
+
+  otherWithLicenceTimeline: SafeResourceUrl;
+  otherWithPIDTimeline: SafeResourceUrl;
+
+  otherWithPIDByDatasourceChartURL: SafeResourceUrl;
+  otherWithLicenceByDatasourceChartURL: SafeResourceUrl;
+
+  otherWithPIDByOrganizationChartURL: SafeResourceUrl;
+  otherWithLicenceByOrganizationChartURL: SafeResourceUrl;
+
+  otherWithPIDByFunderData: TreemapHighchartsData[];
+  otherWithLicenceByFunderData: TreemapHighchartsData[];
+
+  constructor(private dataService: DataService,
+              private dataHandlerService: DataHandlerService,
+              private route: ActivatedRoute,
+              private sanitizer: DomSanitizer) { }
+
+  ngOnInit(): void {
+
+    window.scroll(0, 0);
+
+    this.dataService.getLastUpdateDate().subscribe(
+      rawData => {
+        this.lastUpdateDate = this.dataHandlerService.convertRawDataToLastUpdateDate(rawData);
+      }, error => {
+        console.log(error);
+      }
+    );
+
+    this.route.params.subscribe(params => {
+
+      this.countryCode = params['countryCode'];
+
+      this.dataService.getCountryPageOverviewData(this.countryCode).subscribe(
+        rawData => {
+          this.countryPageOverviewData = this.dataHandlerService.convertRawDataToCountryPageOverviewData(rawData);
+          if (this.countryPageOverviewData && this.countryPageOverviewData.name) {
+            this.linkToCountryInOpenAIRE = 'https://www.openaire.eu/item/' + this.countryPageOverviewData.name.replace(' ', '-');
+            // this.createChartURLs();
+          }
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.createOverviewContent();
+    });
+
+
+
+  }
+
+  changeTopView(view: string) {
+    this.activeTopView = view;
+    // console.log('top view: ', view);
+    if (view === 'overview') {
+      this.createOverviewContent();
+    } else if (view === 'openScience') {
+      this.createOpenScienceContent();
+    }
+  }
+
+  changeInnerView(view: string) {
+    this.activeInnerView = view;
+    // console.log('view: ', view);
+    if (view === 'publications') {
+      this.createPublicationsViewForOpenScience();
+    } else if (view === 'datasets') {
+      this.createDatasetsViewForOpenScience();
+    } else if (view === 'software') {
+      this.createSoftwareViewForOpenScience();
+    } else if (view === 'other') {
+      this.createOtherViewForOpenScience();
+    }
+  }
+
+  createOverviewContent() {
+
+    if (!this.overviewTabIsInitialised) {
+
+      this.dataService.getCountryOAData(this.countryCode).subscribe(
+        rawData => {
+          this.countryPageOAData = this.dataHandlerService.convertRawDataToCountryPageOAData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.oaNonOAPublicationsTimelineChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA","type":"column","query":{"select":[{"field":"publication","aggregate":"count"},{"field":"publication.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"publication.access mode","type":"=","values":["Open Access"]},{"field":"publication.access mode","type":"=","values":["Open Source"]}],"op":"OR"},{"groupFilters":[{"field":"publication.organization.country.code","type":"=","values":["${this.countryCode}"]}],"op":"AND"},{"groupFilters":[{"field":"publication.year","type":">","values":["2010"]},{"field":"publication.year","type":"<=","values":["2020"]}],"op":"AND"}],"entity":"publication","profile":"${this.profileName}","limit":"30"}},{"name":"Non-OA","type":"column","query":{"select":[{"field":"publication","aggregate":"count"},{"field":"publication.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"publication.organization.country.code","type":"=","values":["${this.countryCode}"]}],"op":"AND"},{"groupFilters":[{"field":"publication.year","type":">","values":["2010"]},{"field":"publication.year","type":"<=","values":["2020"]}],"op":"AND"},{"groupFilters":[{"field":"publication.access mode","type":"!=","values":["Open Access"]},{"field":"publication.access mode","type":"!=","values":["Open Source"]}],"op":"AND"}],"entity":"publication","profile":"${this.profileName}","limit":"30"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Publications","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false},"stacking":"normal"}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.oaNonOADatasetsTimelineChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA","type":"column","query":{"select":[{"field":"dataset","aggregate":"count"},{"field":"dataset.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"dataset.access mode","type":"=","values":["Open Access"]},{"field":"dataset.access mode","type":"=","values":["Open Source"]}],"op":"OR"},{"groupFilters":[{"field":"dataset.organization.country.code","type":"=","values":["${this.countryCode}"]}],"op":"AND"},{"groupFilters":[{"field":"dataset.year","type":">","values":["2010"]},{"field":"dataset.year","type":"<=","values":["2020"]}],"op":"AND"}],"entity":"dataset","profile":"${this.profileName}","limit":"30"}},{"name":"Non-OA","type":"column","query":{"select":[{"field":"dataset","aggregate":"count"},{"field":"dataset.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"dataset.organization.country.code","type":"=","values":["${this.countryCode}"]}],"op":"AND"},{"groupFilters":[{"field":"dataset.year","type":">","values":["2010"]},{"field":"dataset.year","type":"<=","values":["2020"]}],"op":"AND"},{"groupFilters":[{"field":"dataset.access mode","type":"!=","values":["Open Access"]},{"field":"dataset.access mode","type":"!=","values":["Open Source"]}],"op":"AND"}],"entity":"dataset","profile":"${this.profileName}","limit":"30"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Datasets","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false},"stacking":"normal"}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+      this.oaNonOASoftwareTimelineChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA","type":"column","query":{"select":[{"field":"software","aggregate":"count"},{"field":"software.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"software.access mode","type":"=","values":["Open Access"]},{"field":"software.access mode","type":"=","values":["Open Source"]}],"op":"OR"},{"groupFilters":[{"field":"software.organization.country.code","type":"=","values":["${this.countryCode}"]}],"op":"AND"},{"groupFilters":[{"field":"software.year","type":">","values":["2010"]},{"field":"software.year","type":"<=","values":["2020"]}],"op":"AND"}],"entity":"software","profile":"${this.profileName}","limit":"30"}},{"name":"Non-OA","type":"column","query":{"select":[{"field":"software","aggregate":"count"},{"field":"software.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"software.organization.country.code","type":"=","values":["${this.countryCode}"]}],"op":"AND"},{"groupFilters":[{"field":"software.year","type":">","values":["2010"]},{"field":"software.year","type":"<=","values":["2020"]}],"op":"AND"},{"groupFilters":[{"field":"software.access mode","type":"!=","values":["Open Access"]},{"field":"software.access mode","type":"!=","values":["Open Source"]}],"op":"AND"}],"entity":"software","profile":"${this.profileName}","limit":"30"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Software","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false},"stacking":"normal"}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+      this.oaNonOAOtherTimelineChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA","type":"column","query":{"select":[{"field":"other","aggregate":"count"},{"field":"other.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"other.access mode","type":"=","values":["Open Access"]},{"field":"other.access mode","type":"=","values":["Open Source"]}],"op":"OR"},{"groupFilters":[{"field":"other.organization.country.code","type":"=","values":["${this.countryCode}"]}],"op":"AND"},{"groupFilters":[{"field":"other.year","type":">","values":["2010"]},{"field":"other.year","type":"<=","values":["2020"]}],"op":"AND"}],"entity":"other","profile":"${this.profileName}","limit":"30"}},{"name":"Non-OA","type":"column","query":{"select":[{"field":"other","aggregate":"count"},{"field":"other.year","aggregate":null}],"filters":[{"groupFilters":[{"field":"other.organization.country.code","type":"=","values":["${this.countryCode}"]}],"op":"AND"},{"groupFilters":[{"field":"other.year","type":">","values":["2010"]},{"field":"other.year","type":"<=","values":["2020"]}],"op":"AND"},{"groupFilters":[{"field":"other.access mode","type":"!=","values":["Open Access"]},{"field":"other.access mode","type":"!=","values":["Open Source"]}],"op":"AND"}],"entity":"other","profile":"${this.profileName}","limit":"30"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Other research products","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false},"stacking":"normal"}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+
+      this.publicationsByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.affiliated.bydatasource.country","parameters":["${this.countryCode}","publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Publications","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.publicationsByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.affiliated.byorganization.country","parameters":["${this.countryCode}","publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Publications","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+
+      this.datasetsByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.affiliated.bydatasource.country","parameters":["${this.countryCode}","dataset"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+      this.datasetsByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"datasets","type":"bar","query":{"name":"new.oso.results.affiliated.byorganization.country","parameters":["${this.countryCode}","dataset"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+
+      this.softwareByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"software","type":"bar","query":{"name":"new.oso.results.affiliated.bydatasource.country","parameters":["${this.countryCode}","software"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+      this.softwareByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"software","type":"bar","query":{"name":"new.oso.results.affiliated.byorganization.country","parameters":["${this.countryCode}","software"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+
+      this.otherByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"other","type":"bar","query":{"name":"new.oso.results.affiliated.bydatasource.country","parameters":["${this.countryCode}","other"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+      this.otherByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"other","type":"bar","query":{"name":"new.oso.results.affiliated.byorganization.country","parameters":["${this.countryCode}","other"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+
+      // fixme use the profileName variable when this chart is available for the same profile as the rest (in 2 places)
+      this.resultsByTypeOANonOAChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA","type":"column","query":{"select":[{"field":"result","aggregate":"count"},{"field":"result.type","aggregate":null}],"filters":[{"groupFilters":[{"field":"result.access mode","type":"=","values":["Open Access"]},{"field":"result.access mode","type":"=","values":["Open Source"]}],"op":"OR"},{"groupFilters":[{"field":"result.organization.country.code","type":"=","values":["${this.countryCode}"]}],"op":"AND"}],"entity":"result","profile":"OpenAIRE original","limit":"30"}},{"name":"Non-OA","type":"column","query":{"select":[{"field":"result","aggregate":"count"},{"field":"result.type","aggregate":null}],"filters":[{"groupFilters":[{"field":"result.access mode","type":"!=","values":["Open Access"]},{"field":"result.access mode","type":"!=","values":["Open Source"]}],"op":"AND"},{"groupFilters":[{"field":"result.organization.country.code","type":"=","values":["${this.countryCode}"]}],"op":"AND"}],"entity":"result","profile":"OpenAIRE original","limit":"30"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Research results by type","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":false},"colors":[\"${this.resultsPalette.join('","')}\"]}}`));
+
+      this.dataService.getFundersResultsByTypeForCountry('publication', this.countryCode).subscribe(
+        rawData => {
+          this.publicationsByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByTypeForCountry('dataset', this.countryCode).subscribe(
+        rawData => {
+          this.datasetsByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByTypeForCountry('software', this.countryCode).subscribe(
+        rawData => {
+          this.softwareByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByTypeForCountry('other', this.countryCode).subscribe(
+        rawData => {
+          this.otherByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.overviewTabIsInitialised = true;
+    }
+  }
+
+  createOpenScienceContent() {
+    this.createPublicationsViewForOpenScience();
+  }
+
+  createPublicationsViewForOpenScience() {
+
+    if (!this.openSciencePubsTabIsInitialised) {
+
+      this.publicationsWithPIDTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.pid_timeline.affiliated.country","parameters":["publication","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Publications with PID","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.publicationsWithLicenceTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.licence_timeline.affiliated.country","parameters":["publication","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Publications with licence","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.goldPublicationsTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.gold_timeline.affiliated.country","parameters":["publication","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Gold OA Publications","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.greenPublicationsTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.green_timeline.affiliated.country","parameters":["publication","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Green OA Publications","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+
+      this.publicationsWithPIDByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.bydatasource.country","parameters":["publication","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Publications with PID","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.publicationsWithLicenceByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.bydatasource.country","parameters":["publication","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Publications with licence","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.goldPublicationsByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.gold.affiliated.bydatasource.country","parameters":["publication","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Gold Publications","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.greenPublicationsByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.green.affiliated.bydatasource.country","parameters":["publication","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Green Publications","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+
+      this.publicationsWithPIDByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.byorganization.country","parameters":["publication","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Publications with PID","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.publicationsWithLicenceByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.byorganization.country","parameters":["publication","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Publications with licence","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.goldPublicationsByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.gold.affiliated.byorganization.country","parameters":["publication","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Gold Publications","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.greenPublicationsByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.green.affiliated.byorganization.country","parameters":["publication","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Green Publications","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+
+      this.greenVsGoldPublicationsChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.publications.greenvsgold.country","parameters":["${this.countryCode}","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Green vs Gold","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+
+      this.dataService.getFundersResultsByTypeForIndicatorForCountry('publication', 'pid', this.countryCode).subscribe(
+        rawData => {
+          this.publicationsWithPIDByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByTypeForIndicatorForCountry('publication', 'licence', this.countryCode).subscribe(
+        rawData => {
+          this.publicationsWithLicenceByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByTypeForIndicatorForCountry('publication', 'gold', this.countryCode).subscribe(
+        rawData => {
+          this.goldPublicationsByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByTypeForIndicatorForCountry('publication', 'green', this.countryCode).subscribe(
+        rawData => {
+          this.greenPublicationsByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.openSciencePubsTabIsInitialised = true;
+    }
+  }
+
+  createDatasetsViewForOpenScience() {
+
+    if (!this.openScienceDatasetsTabIsInitialised) {
+
+      this.datasetsWithPIDTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.pid_timeline.affiliated.country","parameters":["dataset","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets with PID","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+      this.datasetsWithLicenceTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.licence_timeline.affiliated.country","parameters":["dataset","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets with licence","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+
+      this.datasetsWithPIDByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.bydatasource.country","parameters":["dataset","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets with PID","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+      this.datasetsWithLicenceByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.bydatasource.country","parameters":["dataset","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets with licence","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+
+      this.datasetsWithPIDByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.byorganization.country","parameters":["dataset","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets with PID","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+      this.datasetsWithLicenceByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.byorganization.country","parameters":["dataset","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets with licence","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+
+      this.dataService.getFundersResultsByTypeForIndicatorForCountry('dataset', 'pid', this.countryCode).subscribe(
+        rawData => {
+          this.datasetsWithPIDByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByTypeForIndicatorForCountry('dataset', 'licence', this.countryCode).subscribe(
+        rawData => {
+          this.datasetsWithLicenceByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.openSciencePubsTabIsInitialised = true;
+    }
+  }
+
+  createSoftwareViewForOpenScience() {
+
+    if (!this.openScienceSoftwareTabIsInitialised) {
+
+      this.softwareWithPIDTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.pid_timeline.affiliated.country","parameters":["software","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software with PID","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+      this.softwareWithLicenceTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.licence_timeline.affiliated.country","parameters":["software","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software with licence","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+
+      this.softwareWithPIDByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.bydatasource.country","parameters":["software","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software with PID","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+      this.softwareWithLicenceByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.bydatasource.country","parameters":["software","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software with licence","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+
+      this.softwareWithPIDByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.byorganization.country","parameters":["software","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software with PID","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+      this.softwareWithLicenceByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.byorganization.country","parameters":["software","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software with licence","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+
+      this.dataService.getFundersResultsByTypeForIndicatorForCountry('software', 'pid', this.countryCode).subscribe(
+        rawData => {
+          this.softwareWithPIDByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByTypeForIndicatorForCountry('software', 'licence', this.countryCode).subscribe(
+        rawData => {
+          this.softwareWithLicenceByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.openScienceSoftwareTabIsInitialised = true;
+    }
+  }
+
+  createOtherViewForOpenScience() {
+
+    if (!this.openScienceOtherTabIsInitialised) {
+
+      this.otherWithPIDTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.pid_timeline.affiliated.country","parameters":["other","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products with PID","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+      this.otherWithLicenceTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.licence_timeline.affiliated.country","parameters":["other","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products with licence","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+
+      this.otherWithPIDByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.bydatasource.country","parameters":["other","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products with PID","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+      this.otherWithLicenceByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.bydatasource.country","parameters":["other","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products with licence","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+
+      this.otherWithPIDByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.byorganization.country","parameters":["other","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products with PID","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+      this.otherWithLicenceByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.byorganization.country","parameters":["other","${this.countryCode}"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products with licence","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+
+      this.dataService.getFundersResultsByTypeForIndicatorForCountry('other', 'pid', this.countryCode).subscribe(
+        rawData => {
+          this.otherWithPIDByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByTypeForIndicatorForCountry('other', 'licence', this.countryCode).subscribe(
+        rawData => {
+          this.otherWithLicenceByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.openScienceOtherTabIsInitialised = true;
+    }
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/services/data.service.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/services/data.service.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/services/data.service.ts	(revision 60863)
@@ -0,0 +1,155 @@
+import { HttpClient, HttpHeaders } from '@angular/common/http';
+import { Injectable } from '@angular/core';
+import { Observable } from 'rxjs';
+import { OverviewData } from '../domain/overview-data';
+import { environment } from '../../environments/environment';
+import { RawData } from '../domain/raw-data';
+
+const headerOptions = {
+  headers : new HttpHeaders().set('Content-Type', 'application/json')
+    .set('Accept', 'application/json'),
+};
+
+@Injectable ()
+export class DataService {
+
+  private _jsonURl = 'http://esperos.di.uoa.gr/oss.json';
+
+  private apiURL = environment.API_ENDPOINT + 'raw?json=';
+  private profileName = environment.profileName;
+
+  constructor(private httpClient: HttpClient) {
+  }
+
+  public getLastUpdateDate(): Observable<RawData> {
+    const lastUpdateDateQuery = `{"series":[{"query":{"name":"creation_date","profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(lastUpdateDateQuery), headerOptions);
+  }
+
+  public getOverviewMapData(): Observable<RawData> {
+    const mapDataQuery = `{"series":[{"query":{"name":"new.oso.publications.affiliated","profile":"${this.profileName}"}},{"query":{"name":"new.oso.publications.deposited","profile":"${this.profileName}"}},{"query":{"name":"new.oso.datasets.affiliated","profile":"${this.profileName}"}},{"query":{"name":"new.oso.datasets.deposited","profile":"${this.profileName}"}},{"query":{"name":"new.oso.repositories","profile":"${this.profileName}"}},{"query":{"name":"new.oso.repositories.doar_re3data","profile":"${this.profileName}"}},{"query":{"name":"new.oso.journals","profile":"${this.profileName}"}},{"query":{"name":"new.oso.journals.doaj","profile":"${this.profileName}"}},{"query":{"name":"new.oso.oa_policies","profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(mapDataQuery), headerOptions);
+  }
+
+  public getCountryOverviewData(countryCode: string): Observable<RawData> {
+    const countryOverviewDataQuery = `{"series":[{"query":{"name":"new.oso.publications.affiliated.country", "parameters":["${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.publications.deposited.country", "parameters":["${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.datasets.affiliated.country", "parameters":["${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.datasets.deposited.country", "parameters":["${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.repositories.doar_re3data.country", "parameters":["${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.journals.doaj.country", "parameters":["${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.oa_policies.country", "parameters":["${countryCode}"],"profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(countryOverviewDataQuery), headerOptions);
+  }
+
+  public getCountryOAData(countryCode: string): Observable<RawData> {
+    const countryOADataQuery = `{"series":[{"query":{"name":"new.oso.results.oa_percentage.country", "parameters":["publication","${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.country", "parameters":["dataset","${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.country", "parameters":["software","${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.country", "parameters":["other","${countryCode}"],"profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(countryOADataQuery), headerOptions);
+  }
+
+  public getEuropeOverviewData(): Observable<RawData> {
+    const overviewRawDataQuery = `{"series":[{"query":{"name":"new.oso.publications.oa_percentage","profile":"${this.profileName}"}},{"query":{"name":"new.oso.datasets.oa_percentage","profile":"${this.profileName}"}},{"query":{"name":"new.oso.repositories.doar_re3data.validated","profile":"${this.profileName}"}},{"query":{"name":"new.oso.journals.doaj.validated","profile":"${this.profileName}"}},{"query":{"name":"new.oso.oa_policies.europe","profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(overviewRawDataQuery), headerOptions);
+  }
+
+  public getOverviewTableAbsoluteData(content: string): Observable<RawData> {
+    let overviewTableAbsoluteDataQuery = '';
+    if (content === 'affiliated') {
+      overviewTableAbsoluteDataQuery = `{"series":[{"query":{"name":"new.oso.publications.affiliated","profile":"${this.profileName}"}},{"query":{"name":"new.oso.datasets.affiliated","profile":"${this.profileName}"}},{"query":{"name":"new.oso.software.affiliated","profile":"${this.profileName}"}},{"query":{"name":"new.oso.other.affiliated","profile":"${this.profileName}"}},{"query":{"name":"new.oso.repositories","profile":"${this.profileName}"}},{"query":{"name":"new.oso.journals","profile":"${this.profileName}"}},{"query":{"name":"new.oso.oa_policies","profile":"${this.profileName}"}}],"verbose":true}`;
+    } else if (content === 'affiliated_peer_reviewed') {
+      overviewTableAbsoluteDataQuery = `{"series":[{"query":{"name":"new.oso.publications.affiliated.peer_reviewed","profile":"${this.profileName}"}},{"query":{"name":"new.oso.datasets.affiliated.peer_reviewed","profile":"${this.profileName}"}},{"query":{"name":"new.oso.software.affiliated.peer_reviewed","profile":"${this.profileName}"}},{"query":{"name":"new.oso.other.affiliated.peer_reviewed","profile":"${this.profileName}"}},{"query":{"name":"new.oso.repositories","profile":"${this.profileName}"}},{"query":{"name":"new.oso.journals","profile":"${this.profileName}"}},{"query":{"name":"new.oso.oa_policies","profile":"${this.profileName}"}}],"verbose":true}`;
+    } else if (content === 'deposited') {
+      overviewTableAbsoluteDataQuery = `{"series":[{"query":{"name":"new.oso.publications.deposited","profile":"${this.profileName}"}},{"query":{"name":"new.oso.datasets.deposited","profile":"${this.profileName}"}},{"query":{"name":"new.oso.software.deposited","profile":"${this.profileName}"}},{"query":{"name":"new.oso.other.deposited","profile":"${this.profileName}"}},{"query":{"name":"new.oso.repositories","profile":"${this.profileName}"}},{"query":{"name":"new.oso.journals","profile":"${this.profileName}"}},{"query":{"name":"new.oso.oa_policies","profile":"${this.profileName}"}}],"verbose":true}`;
+    } else if (content === 'deposited_peer_reviewed') {
+      overviewTableAbsoluteDataQuery = `{"series":[{"query":{"name":"new.oso.publications.deposited.peer_reviewed","profile":"${this.profileName}"}},{"query":{"name":"new.oso.datasets.deposited.peer_reviewed","profile":"${this.profileName}"}},{"query":{"name":"new.oso.software.deposited.peer_reviewed","profile":"${this.profileName}"}},{"query":{"name":"new.oso.other.deposited.peer_reviewed","profile":"${this.profileName}"}},{"query":{"name":"new.oso.repositories","profile":"${this.profileName}"}},{"query":{"name":"new.oso.journals","profile":"${this.profileName}"}},{"query":{"name":"new.oso.oa_policies","profile":"${this.profileName}"}}],"verbose":true}`;
+    }
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(overviewTableAbsoluteDataQuery), headerOptions);
+  }
+
+  public getOverviewTablePercentageData(content: string): Observable<RawData> {
+    let overviewTablePercentageDataQuery = '';
+    if (content === 'affiliated') {
+      overviewTablePercentageDataQuery = `{"series":[{"query":{"name":"new.oso.results.oa_percentage.bycountry","parameters":["publication"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.bycountry","parameters":["dataset"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.bycountry","parameters":["software"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.bycountry","parameters":["other"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.repositories.doar_re3data.validated.bycountry","profile":"${this.profileName}"}},{"query":{"name":"new.oso.journals.doaj.validated.bycountry","profile":"${this.profileName}"}}],"verbose":true}`;
+    } else if (content === 'affiliated_peer_reviewed') {
+      overviewTablePercentageDataQuery = `{"series":[{"query":{"name":"new.oso.results.oa_percentage.affiliated.peer_reviewed.bycountry","parameters":["publication"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.affiliated.peer_reviewed.bycountry","parameters":["dataset"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.affiliated.peer_reviewed.bycountry","parameters":["software"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.affiliated.peer_reviewed.bycountry","parameters":["other"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.repositories.doar_re3data.validated.bycountry","profile":"${this.profileName}"}},{"query":{"name":"new.oso.journals.doaj.validated.bycountry","profile":"${this.profileName}"}}],"verbose":true}`;
+    } else if (content === 'deposited') {
+      overviewTablePercentageDataQuery = `{"series":[{"query":{"name":"new.oso.results.oa_percentage.deposited.bycountry","parameters":["publication"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.deposited.bycountry","parameters":["dataset"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.deposited.bycountry","parameters":["software"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.deposited.bycountry","parameters":["other"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.repositories.doar_re3data.validated.bycountry","profile":"${this.profileName}"}},{"query":{"name":"new.oso.journals.doaj.validated.bycountry","profile":"${this.profileName}"}}],"verbose":true}`;
+    } else if (content === 'deposited_peer_reviewed') {
+      overviewTablePercentageDataQuery = `{"series":[{"query":{"name":"new.oso.results.oa_percentage.deposited.peer_reviewed.bycountry","parameters":["publication"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.deposited.peer_reviewed.bycountry","parameters":["dataset"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.deposited.peer_reviewed.bycountry","parameters":["software"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.deposited.peer_reviewed.bycountry","parameters":["other"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.repositories.doar_re3data.validated.bycountry","profile":"${this.profileName}"}},{"query":{"name":"new.oso.journals.doaj.validated.bycountry","profile":"${this.profileName}"}}],"verbose":true}`;
+    }
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(overviewTablePercentageDataQuery), headerOptions);
+  }
+
+  public getLeadingOpenScienceMobileData(): Observable<RawData> {
+    const leadingOpenScienceMobileDataQuery = `{"series":[{"query":{"name":"new.oso.mobile.overview","profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(leadingOpenScienceMobileDataQuery), headerOptions);
+  }
+
+  public getEuropeOAPercentages(): Observable<RawData> {
+    const europeOAPercentagesQuery = `{"series":[{"query":{"name":"new.oso.publications.oa_percentage","profile":"${this.profileName}"}},{"query":{"name":"new.oso.datasets.oa_percentage","profile":"${this.profileName}"}},{"query":{"name":"new.oso.software.oa_percentage","profile":"${this.profileName}"}},{"query":{"name":"new.oso.other.oa_percentage","profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(europeOAPercentagesQuery), headerOptions);
+  }
+
+  public getCountryPageOverviewData(countryCode: string): Observable<RawData> {
+    const countryPageOverviewDataQuery = `{"series":[{"query":{"name":"new.oso.results.oa_percentage.country", "parameters":["publication","${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.deposited.country", "parameters":["publication","${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.country", "parameters":["dataset","${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.oa_percentage.deposited.country", "parameters":["dataset","${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.repositories.doar_re3data.validated.country", "parameters":["${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.journals.doaj.validated.country", "parameters":["${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.oa_policies.country", "parameters":["${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.rnd.country", "parameters":["${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.funder.country", "parameters":["${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.funding_organizations.country", "parameters":["${countryCode}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.ec_funded_organizations.country", "parameters":["${countryCode}"],"profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(countryPageOverviewDataQuery), headerOptions);
+  }
+
+  public getFundersResults(): Observable<RawData> {
+    const fundersResultsQuery = `{"series":[{"query":{"name":"new.oso.funders.results","profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(fundersResultsQuery), headerOptions);
+  }
+
+  public getFundersResultsByType(type: string): Observable<RawData> {
+    const fundersResultsByTypeQuery = `{"series":[{"query":{"name":"new.oso.funders.results.type", "parameters":["${type}"],"profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(fundersResultsByTypeQuery), headerOptions);
+  }
+
+  public getFundersResultsByTypeForPID(type: string): Observable<RawData> {
+    const fundersResultsByTypeForPIDQuery = `{"series":[{"query":{"name":"new.oso.results.pid.affiliated.byfunder", "parameters":["${type}"],"profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(fundersResultsByTypeForPIDQuery), headerOptions);
+  }
+
+  public getFundersResultsByTypeForLicence(type: string): Observable<RawData> {
+    const fundersResultsByTypeForLicenceQuery = `{"series":[{"query":{"name":"new.oso.results.licence.affiliated.byfunder", "parameters":["${type}"],"profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(fundersResultsByTypeForLicenceQuery), headerOptions);
+  }
+
+  public getFundersResultsByTypeForGold(type: string): Observable<RawData> {
+    const fundersResultsByTypeForGoldQuery = `{"series":[{"query":{"name":"new.oso.results.gold.affiliated.byfunder", "parameters":["${type}"],"profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(fundersResultsByTypeForGoldQuery), headerOptions);
+  }
+
+  public getFundersResultsByTypeForGreen(type: string): Observable<RawData> {
+    const fundersResultsByTypeForGreenQuery = `{"series":[{"query":{"name":"new.oso.results.green.affiliated.byfunder", "parameters":["${type}"],"profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(fundersResultsByTypeForGreenQuery), headerOptions);
+  }
+
+  public getFundersResultsByTypeForCountry(type: string, countryCode: string): Observable<RawData> {
+    const fundersResultsByTypeForCountryQuery = `{"series":[{"query":{"name":"new.oso.results.affiliated.byfunder.country", "parameters":["${countryCode}","${type}"],"profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(fundersResultsByTypeForCountryQuery), headerOptions);
+  }
+
+  public getFundersResultsByTypeForIndicatorForCountry(type: string, indicator: string, countryCode: string): Observable<RawData> {
+    const fundersResultsByTypeForPIDForCountryQuery = `{"series":[{"query":{"name":"new.oso.results.${indicator}.affiliated.byfunder.country", "parameters":["${type}","${countryCode}"],"profile":"${this.profileName}"}}],"verbose":true}`;
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(fundersResultsByTypeForPIDForCountryQuery), headerOptions);
+  }
+
+  public getIndicatorsTableData(type: string, content: string): Observable<RawData> {
+
+    let indicatorsTableDataQuery = '';
+    if (content === 'affiliated') {
+      indicatorsTableDataQuery = `{"series":[{"query":{"name":"new.oso.results.pid_percentage.affiliated.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.licence_percentage.affiliated.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.green_percentage.affiliated.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.gold_percentage.affiliated.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}}],"verbose":true}`;
+    } else if (content === 'affiliated_peer_reviewed') {
+      indicatorsTableDataQuery = `{"series":[{"query":{"name":"new.oso.results.pid_percentage.affiliated.peer_reviewed.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.licence_percentage.affiliated.peer_reviewed.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.green_percentage.affiliated.peer_reviewed.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.gold_percentage.affiliated.peer_reviewed.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}}],"verbose":true}`;
+    } else if (content === 'deposited') {
+      indicatorsTableDataQuery = `{"series":[{"query":{"name":"new.oso.results.pid_percentage.deposited.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.licence_percentage.deposited.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.green_percentage.deposited.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.gold_percentage.deposited.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}}],"verbose":true}`;
+    } else if (content === 'deposited_peer_reviewed') {
+      indicatorsTableDataQuery = `{"series":[{"query":{"name":"new.oso.results.pid_percentage.deposited.peer_reviewed.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.licence_percentage.deposited.peer_reviewed.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.green_percentage.deposited.peer_reviewed.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}},{"query":{"name":"new.oso.results.gold_percentage.deposited.peer_reviewed.bycountry","parameters":["${type}","${type}"],"profile":"${this.profileName}"}}],"verbose":true}`;
+    }
+    return this.httpClient.get<RawData>(this.apiURL + encodeURIComponent(indicatorsTableDataQuery), headerOptions);
+  }
+
+
+  public getOverviewData(): Observable<OverviewData> {
+    return this.httpClient.get<OverviewData>(this._jsonURl, headerOptions);
+  }
+
+  public getCountryData(countryName: string) {
+    return this.httpClient.get<OverviewData>(this._jsonURl, headerOptions);
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/app.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/app.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/app.component.ts	(revision 60863)
@@ -0,0 +1,21 @@
+import { Component } from '@angular/core';
+import { Router } from '@angular/router';
+import { SmoothScroll } from './services/smooth-scroll';
+
+@Component({
+  selector: 'app-root',
+  templateUrl: './app.component.html',
+  styleUrls: ['./app.component.css']
+})
+export class AppComponent {
+  title = 'open-science-observatory-ui';
+
+  constructor(private router: Router, private smoothScroll: SmoothScroll) {
+  }
+
+  isEmbedRoute() {
+    // console.log('Is embed route? Route is: ' + this.router.url);
+    return (this.router.url === '/overview-map-embed');
+  }
+
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/domain/overview-map-data.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/domain/overview-map-data.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/domain/overview-map-data.ts	(revision 60863)
@@ -0,0 +1,91 @@
+import {Indicator} from './overview-data';
+
+export class OverviewMapData {
+  publications: CountryMapData[];
+  datasets: CountryMapData[];
+  repositories: CountryMapData[];
+  journals: CountryMapData[];
+  policies: CountryMapData[];
+}
+
+export class CountryMapData {
+  code: string;
+  name: string;
+  value: number;
+}
+
+export class JoinedMapData {
+  countryName: string;
+  countryCode: string;
+  affiliated: number;
+  deposited: number;
+  doar_re3data: number;
+  doaj: number;
+  simple: number;
+}
+
+export class SelectedCountry {
+  name: string;
+  code: string;
+}
+
+export class CountryOverviewData {
+  name: string = null;
+  code: string = null;
+  publicationsAffiliated: number = null;
+  publicationsDeposited: number = null;
+  datasetsAffiliated: number = null;
+  datasetsDeposited: number = null;
+  repositories: number = null;
+  journals: number = null;
+  policies: number = null;
+}
+
+export class EuropeData {
+  publications: Indicator;
+  datasets: Indicator;
+  software: Indicator;
+  other: Indicator;
+  repositories: Indicator;
+  journals: Indicator;
+  policies: Indicator;
+}
+
+export class CountryTableData {
+  name: string = null;
+  code: string = null;
+  publications: number = null;
+  datasets: number = null;
+  software: number = null;
+  other: number = null;
+  repositories: number = null;
+  journals: number = null;
+  policies: number = null;
+  pid: Indicator;
+  licence: Indicator;
+  gold: Indicator;
+  green: Indicator;
+}
+
+export class CountryPageOverviewData {
+  name: string = null;
+  code: string = null;
+  publicationsAffiliated: Indicator;
+  publicationsDeposited: Indicator ;
+  datasetsAffiliated: Indicator;
+  datasetsDeposited: Indicator;
+  software: Indicator;
+  other: Indicator;
+  repositories: Indicator;
+  journals: Indicator;
+  policies: number = null;
+  rndExpenditure: RnDExpenditure;
+  funders: number = null;
+  fundingOrganizations: number = null;
+  ec_fundedOrganizations: number = null;
+}
+
+export class RnDExpenditure {
+  expenditure: number;
+  year: number;
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/domain/treemap-highcharts-data.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/domain/treemap-highcharts-data.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/domain/treemap-highcharts-data.ts	(revision 60863)
@@ -0,0 +1,5 @@
+export class TreemapHighchartsData {
+  name: string;
+  value: number;
+  colorValue: number;
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/domain/map-country-data.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/domain/map-country-data.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/domain/map-country-data.ts	(revision 60863)
@@ -0,0 +1,5 @@
+export class MapCountryData {
+  id: string;
+  country: string;
+  z: number;
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/app.component.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/app.component.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/app.component.html	(revision 60863)
@@ -0,0 +1,12 @@
+<div *ngIf="!isEmbedRoute() ; else embed" class="">
+  <!--<div *ngIf="!isHomeRoute() ; else landing" class="sidebar_main_open sidebar_main_swipe uk-height-1-1">-->
+  <app-top-menu></app-top-menu>
+  <router-outlet></router-outlet>
+  <app-footer></app-footer>
+</div>
+
+<ng-template #embed>
+  <div uk-height-viewport="offset-bottom: 20">
+    <router-outlet></router-outlet>
+  </div>
+</ng-template>
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/countrypage/country-page.component.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/countrypage/country-page.component.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/countrypage/country-page.component.html	(revision 60863)
@@ -0,0 +1,1293 @@
+<div class="greySection">
+  <section class="uk-padding-small" id="sect-country-page">
+    <div class="uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up uk-padding-remove" data-uk-scrollspy="{cls:'uk-animation-scale-up uk-invisible',delay:300,topoffset:-100}">
+      <!--<div class="uk-container uk-container-expand uk-container-center uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up uk-padding-remove" data-uk-scrollspy="{cls:'uk-animation-scale-up uk-invisible',delay:300,topoffset:-100}">-->
+
+      <div class="uk-grid uk-grid-match uk-grid-small">
+
+        <div class="uk-width-4-5@m uk-width-4-5@l uk-width-1-1@s">
+
+          <div class="uk-container uk-container-expand uk-margin-medium-top">
+
+            <!--LAPTOP & PAD LANDSCAPE-->
+            <div class="uk-visible@m">
+              <ul *ngIf="countryPageOverviewData && countryPageOverviewData.name" class="uk-breadcrumb">
+                <li><a routerLink="/home">Home</a></li>
+                <li><span>{{countryPageOverviewData.name}}</span></li>
+              </ul>
+
+
+              <div class="countryPageHeader">
+                <div *ngIf="countryPageOverviewData && countryPageOverviewData.name" class="">
+                  <img src="../../../assets/img/flags/{{countryCode | lowercase}}-flag-round.png" class="flag-image" width="132" height="132">
+                  <div class="uk-inline uk-margin-left">
+                    <h1>{{countryPageOverviewData.name}}</h1>
+                    <span class="lastUpdateInfo">Info Last Updated: </span>
+                    <span *ngIf="lastUpdateDate" class="lastUpdateInfo">{{lastUpdateDate}}</span>
+                  </div>
+                </div>
+
+                <!-- TODO uncomment when implemented -->
+                <!--<div class="actionButtonsCountryPage uk-text-right">-->
+                  <!--<a class=""><i class="fas fa-code uk-margin-small-right"></i>Embed</a>-->
+                  <!--&lt;!&ndash;<a class="uk-margin-left"><i class="fas fa-download uk-margin-small-right"></i>Download CSV</a>&ndash;&gt;-->
+                  <!--<a class="uk-margin-left"><i class="fas fa-file-pdf uk-margin-small-right"></i>Download PDF</a>-->
+                <!--</div>-->
+              </div>
+            </div>
+
+            <!--MOBILE & PAD PORTRAIT-->
+            <div class="uk-hidden@m uk-text-center">
+              <div *ngIf="countryPageOverviewData && countryPageOverviewData.name" class="">
+                <img src="../../../assets/img/flags/{{countryCode | lowercase}}-flag-round.png" class="flag-image uk-display-block uk-margin-auto-left uk-margin-auto-right" width="103" height="103">
+                <div class="uk-margin-top">
+                  <h1 class="uk-margin-small-bottom">{{countryPageOverviewData.name}}</h1>
+                  <span class="lastUpdateInfo">Info Last Updated: 21 May 2020</span>
+                </div>
+              </div>
+            </div>
+
+
+
+          </div>
+
+
+          <div class="uk-container uk-container-expand uk-margin-large-top">
+
+            <!--Overview cards-->
+            <!--LAPTOP & PAD LANDSCAPE-->
+            <div class="uk-visible@m">
+              <div class="uk-width-1-1 indicatorCards">
+                <div class="uk-grid uk-grid-small uk-child-width-1-2@s uk-child-width-1-4@m uk-child-width-1-4@l uk-margin-top uk-grid-match" data-uk-grid-margin="">
+                  <!--<div class="uk-grid uk-grid-small uk-grid-width-small-1-2 uk-grid-width-medium-1-3 uk-grid-width-large-1-5 uk-margin-top uk-grid-match" data-uk-grid-margin="">-->
+
+                  <div class="uk-row-first">
+                    <div class="md-card">
+                      <div class="md-card-content">
+
+                        <!--top number-->
+                        <div class="uk-margin-top">
+                          <!--<div class="uk-float-right uk-margin-small-right">-->
+                          <!--<img src="../../../assets/img/icons/publications-icon.svg" width="40" height="40">-->
+                          <!--</div>-->
+                          <h3 class="uk-margin-remove">
+                            <span *ngIf="!countryPageOverviewData || !countryPageOverviewData.publicationsAffiliated || !countryPageOverviewData.publicationsAffiliated.oa" class="number">--</span>
+                            <span *ngIf="countryPageOverviewData?.publicationsAffiliated?.oa" class="number">{{countryPageOverviewData.publicationsAffiliated.oa | number}}</span>
+                          </h3>
+                        </div>
+                        <div class="uk-margin-top">
+                          <span class=""><i>OA publications affiliated to an organization in the country</i></span>
+                        </div>
+                        <div *ngIf="countryPageOverviewData?.publicationsAffiliated?.percentage" class="uk-margin-top">
+                          <span class="number">{{countryPageOverviewData.publicationsAffiliated.percentage | number :'1.0-1'}}%</span> OA
+                          <div class="progress uk-margin-small-top">
+                            <div [ngStyle]="{'width': countryPageOverviewData.publicationsAffiliated.percentage+'%'}" class="progress-bar progress-bar-publications animate-progress-bar"></div>
+                          </div>
+                        </div>
+
+                        <hr class="greyBoldDivider uk-margin-medium-top uk-margin-medium-bottom">
+
+                        <!--bottom number-->
+                        <div class="uk-margin-top">
+                          <div class="uk-float-right uk-margin-small-right">
+                            <img src="../../../assets/img/icons/publications-icon.svg" width="40" height="40">
+                          </div>
+                          <h3 class="uk-margin-remove">
+                            <span *ngIf="!countryPageOverviewData || !countryPageOverviewData.publicationsDeposited || !countryPageOverviewData.publicationsDeposited.oa" class="number">--</span>
+                            <span *ngIf="countryPageOverviewData?.publicationsDeposited?.oa" class="number">{{countryPageOverviewData.publicationsDeposited.oa | number}}</span>
+                          </h3>
+                        </div>
+                        <div class="uk-margin-top">
+                          <span class=""><i>OA publications from institutional repositories</i></span>
+                        </div>
+                        <div *ngIf="countryPageOverviewData?.publicationsDeposited?.percentage" class="uk-margin-top">
+                          <span class="number">{{countryPageOverviewData.publicationsDeposited.percentage | number :'1.0-1'}}%</span> OA
+                          <div class="progress uk-margin-small-top">
+                            <div [ngStyle]="{'width': countryPageOverviewData.publicationsDeposited.percentage+'%'}" class="progress-bar progress-bar-publications animate-progress-bar"></div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+                  </div>
+
+                  <div class="">
+                    <div class="md-card">
+                      <div class="md-card-content">
+
+                        <!--top number-->
+                        <div class="uk-margin-top">
+                          <!--<div class="uk-float-right uk-margin-small-right">-->
+                          <!--<img src="../../../assets/img/icons/datasets-icon.svg" width="33" height="40">-->
+                          <!--</div>-->
+                          <h3 class="uk-margin-remove">
+                            <span *ngIf="!countryPageOverviewData || !countryPageOverviewData.datasetsAffiliated || !countryPageOverviewData.datasetsAffiliated.oa" class="number">--</span>
+                            <span *ngIf="countryPageOverviewData?.datasetsAffiliated?.oa" class="number">{{countryPageOverviewData.datasetsAffiliated.oa | number}}</span>
+                          </h3>
+                        </div>
+                        <div class="uk-margin-top">
+                          <span class=""><i>OA datasets affiliated to an organization in the country</i></span>
+                        </div>
+                        <div *ngIf="countryPageOverviewData?.datasetsAffiliated?.percentage" class="uk-margin-top">
+                          <span class="number">{{countryPageOverviewData.datasetsAffiliated.percentage | number :'1.0-1'}}%</span> OA
+                          <div class="progress uk-margin-small-top">
+                            <div [ngStyle]="{'width': countryPageOverviewData.datasetsAffiliated.percentage+'%'}" class="progress-bar progress-bar-datasets animate-progress-bar"></div>
+                          </div>
+                        </div>
+
+                        <hr class="greyBoldDivider uk-margin-medium-top uk-margin-medium-bottom">
+
+                        <!--bottom number-->
+                        <div class="uk-margin-top">
+                          <div class="uk-float-right uk-margin-small-right">
+                            <img src="../../../assets/img/icons/datasets-icon.svg" width="33" height="40">
+                          </div>
+                          <h3 class="uk-margin-remove">
+                            <span *ngIf="!countryPageOverviewData || !countryPageOverviewData.datasetsDeposited || !countryPageOverviewData.datasetsDeposited.oa" class="number">--</span>
+                            <span *ngIf="countryPageOverviewData?.datasetsDeposited?.oa" class="number">{{countryPageOverviewData.datasetsDeposited.oa | number}}</span>
+                          </h3>
+                        </div>
+                        <div class="uk-margin-top">
+                          <span class=""><i>OA datasets from institutional repositories</i></span>
+                        </div>
+                        <div *ngIf="countryPageOverviewData?.datasetsDeposited?.percentage" class="uk-margin-top">
+                          <span class="number">{{countryPageOverviewData.datasetsDeposited.percentage | number :'1.0-1'}}%</span> OA
+                          <div class="progress uk-margin-small-top">
+                            <div [ngStyle]="{'width': countryPageOverviewData.datasetsDeposited.percentage+'%'}" class="progress-bar progress-bar-datasets animate-progress-bar"></div>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+
+                  <div class="">
+                    <div class="md-card" style="height: 47%">
+                      <div class="md-card-content">
+                        <div class="uk-margin-top">
+                          <div class="uk-float-right uk-margin-small-right">
+                            <img src="../../../assets/img/icons/journals-icon.svg" width="43" height="40">
+                          </div>
+                          <h3 class="uk-margin-remove">
+                            <span *ngIf="!countryPageOverviewData || !countryPageOverviewData.journals || !countryPageOverviewData.journals.total" class="number">--</span>
+                            <span *ngIf="countryPageOverviewData?.journals?.total" class="number">{{countryPageOverviewData.journals.total | number}}</span>
+                            <!--<span *ngIf="overviewData.overview.journals?.oa" class="number">{{overviewData.overview.journals.oa | number}}</span>-->
+                            <!--<span *ngIf="!overviewData.overview.journals || !overviewData.overview.journals.oa" class="number">--</span>-->
+                          </h3>
+                        </div>
+                        <div class="uk-margin-top">
+                          <span class=""><i>OA journals</i> from DOAJ</span>
+                        </div>
+                        <div *ngIf="countryPageOverviewData?.journals?.percentage" class="uk-margin-top">
+                          <span class="number">{{countryPageOverviewData.journals.percentage | number :'1.0-1'}}%</span> Validated
+                          <div class="progress uk-margin-small-top">
+                            <div [ngStyle]="{'width': countryPageOverviewData.journals.percentage+'%'}" class="progress-bar progress-bar-journals animate-progress-bar"></div>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+
+                  <div class="">
+
+                    <div class="md-card" style="height: 47%">
+                      <div class="md-card-content">
+                        <div class="uk-margin-top">
+                          <div class="uk-float-right uk-margin-small-right">
+                            <img src="../../../assets/img/icons/repositories-icon.svg" width="43" height="40">
+                          </div>
+                          <h3 class="uk-margin-remove">
+                            <span *ngIf="!countryPageOverviewData || !countryPageOverviewData.repositories || !countryPageOverviewData.repositories.total" class="number">--</span>
+                            <span *ngIf="countryPageOverviewData?.repositories?.total" class="number">{{countryPageOverviewData.repositories.total | number}}</span>
+                          </h3>
+                        </div>
+                        <div class="uk-margin-top">
+                          <span class=""><i>repositories</i> from openDOAR & re3data</span>
+                        </div>
+                        <div *ngIf="countryPageOverviewData?.repositories?.percentage" class="uk-margin-top">
+                          <span class="number">{{countryPageOverviewData.repositories.percentage | number :'1.0-1'}}%</span> Validated
+                          <div class="progress uk-margin-small-top">
+                            <div [ngStyle]="{'width': countryPageOverviewData.repositories.percentage+'%'}" class="progress-bar progress-bar-repositories animate-progress-bar"></div>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+
+                    <!--<div class="md-card">-->
+                      <!--<div class="md-card-content">-->
+                        <!--<div class="uk-margin-top">-->
+                          <!--<div class="uk-float-right uk-margin-small-right">-->
+                            <!--<img src="../../../assets/img/icons/journals-icon.svg" width="43" height="40">-->
+                          <!--</div>-->
+                          <!--<h3 class="uk-margin-remove">-->
+                            <!--<span *ngIf="!countryPageOverviewData || !countryPageOverviewData.journals || !countryPageOverviewData.journals.total" class="number">&#45;&#45;</span>-->
+                            <!--<span *ngIf="countryPageOverviewData?.journals?.total" class="number">{{countryPageOverviewData.journals.total | number}}</span>-->
+                            <!--&lt;!&ndash;<span *ngIf="overviewData.overview.journals?.oa" class="number">{{overviewData.overview.journals.oa | number}}</span>&ndash;&gt;-->
+                            <!--&lt;!&ndash;<span *ngIf="!overviewData.overview.journals || !overviewData.overview.journals.oa" class="number">&#45;&#45;</span>&ndash;&gt;-->
+                          <!--</h3>-->
+                        <!--</div>-->
+                        <!--<div class="uk-margin-top">-->
+                          <!--<span class=""><i>OA journals</i> from DOAJ</span>-->
+                        <!--</div>-->
+                        <!--<div *ngIf="countryPageOverviewData?.journals?.percentage" class="uk-margin-top">-->
+                          <!--<span class="number">{{countryPageOverviewData.journals.percentage | number :'1.0-1'}}%</span> Validated-->
+                          <!--<div class="progress uk-margin-small-top">-->
+                            <!--<div [ngStyle]="{'width': countryPageOverviewData.journals.percentage+'%'}" class="progress-bar progress-bar-journals animate-progress-bar"></div>-->
+                          <!--</div>-->
+                        <!--</div>-->
+                      <!--</div>-->
+                    <!--</div>-->
+
+                  </div>
+
+
+                  <!--<div class="">-->
+
+                    <!--<div class="md-card" style="height: 47%">-->
+                      <!--<div class="md-card-content">-->
+                        <!--<div class="uk-margin-top">-->
+                          <!--<div class="uk-float-right uk-margin-small-right">-->
+                            <!--<img src="../../../assets/img/icons/policies-icon.svg" width="36" height="40">-->
+                          <!--</div>-->
+                          <!--<h3 class="uk-margin-remove">-->
+                            <!--<span class="number">&#45;&#45;</span>-->
+                            <!--&lt;!&ndash;<span *ngIf="overviewData.overview.policies?.oa" class="number">{{overviewData.overview.policies.oa | number}}</span>&ndash;&gt;-->
+                            <!--&lt;!&ndash;<span *ngIf="!overviewData.overview.policies || !overviewData.overview.policies.oa" class="number">&#45;&#45;</span>&ndash;&gt;-->
+                          <!--</h3>-->
+                        <!--</div>-->
+                        <!--<div class="uk-margin-top">-->
+                          <!--<span class="">organizations with <i>OA policies</i></span>-->
+                        <!--</div>-->
+                      <!--</div>-->
+                    <!--</div>-->
+
+                    <!--<div></div>-->
+                  <!--</div>-->
+                </div>
+              </div>
+            </div>
+
+            <!--MOBILE & PAD PORTRAIT-->
+            <div class="uk-hidden@m uk-text-center uk-margin-medium-top">
+              <div *ngIf="countryPageOverviewData" class="md-card chartCard overviewMobile">
+                <div class="md-card-content">
+
+
+                  <div class="uk-grid uk-margin-top">
+                    <div class="uk-width-1-5">
+                      <img src="../../../assets/img/icons/publications-icon.svg" width="30" height="30">
+                    </div>
+                    <div class="uk-width-2-5">
+                      <div *ngIf="countryPageOverviewData.publicationsAffiliated?.oa" class="number big">{{countryPageOverviewData.publicationsAffiliated.oa | number}}</div>
+                      <div *ngIf="!countryPageOverviewData.publicationsAffiliated || !countryPageOverviewData.publicationsAffiliated.oa" class="number big">--</div>
+                      <div class="uk-margin-small-top">OA PUBLICATIONS AFFILIATED TO AN ORGANIZATION IN THE COUNTRY</div>
+                    </div>
+                    <div *ngIf="countryPageOverviewData.publicationsAffiliated?.percentage" class="uk-width-2-5">
+                      <div class="progress">
+                        <div [ngStyle]="{'width': countryPageOverviewData.publicationsAffiliated.percentage+'%'}" class="progress-bar progress-bar-publications animate-progress-bar"></div>
+                      </div>
+                      <div class="uk-margin-small-top">
+                        <span class="number">{{countryPageOverviewData.publicationsAffiliated.percentage | number :'1.0-1'}}%</span> OA
+                      </div>
+                    </div>
+                  </div>
+                  <div class="uk-grid uk-margin-top">
+                    <div class="uk-width-1-5">
+                    </div>
+                    <div class="uk-width-2-5">
+                      <div *ngIf="countryPageOverviewData.publicationsDeposited?.oa" class="number big">{{countryPageOverviewData.publicationsDeposited.oa | number}}</div>
+                      <div *ngIf="!countryPageOverviewData.publicationsDeposited || !countryPageOverviewData.publicationsDeposited.oa" class="number big">--</div>
+                      <div class="uk-margin-small-top">OA PUBLICATIONS FROM INSTITUTIONAL REPOSITORIES</div>
+                    </div>
+                    <div *ngIf="countryPageOverviewData.publicationsDeposited?.percentage" class="uk-width-2-5">
+                      <div class="progress">
+                        <div [ngStyle]="{'width': countryPageOverviewData.publicationsDeposited.percentage+'%'}" class="progress-bar progress-bar-publications animate-progress-bar"></div>
+                      </div>
+                      <div class="uk-margin-small-top">
+                        <span class="number">{{countryPageOverviewData.publicationsDeposited.percentage | number :'1.0-1'}}%</span> OA
+                      </div>
+                    </div>
+                  </div>
+
+                  <div class="uk-grid uk-margin-medium-top">
+                    <div class="uk-width-1-5">
+                      <img src="../../../assets/img/icons/datasets-icon.svg" width="30" height="30">
+                    </div>
+                    <div class="uk-width-2-5">
+                      <div *ngIf="countryPageOverviewData.datasetsAffiliated?.oa" class="number big">{{countryPageOverviewData.datasetsAffiliated.oa | number}}</div>
+                      <div *ngIf="!countryPageOverviewData.datasetsAffiliated || !countryPageOverviewData.datasetsAffiliated.oa" class="number big">--</div>
+                      <div class="uk-margin-small-top">OA DATASETS AFFILIATED TO AN ORGANIZATION IN THE COUNTRY</div>
+                    </div>
+                    <div *ngIf="countryPageOverviewData.datasetsAffiliated?.percentage" class="uk-width-2-5">
+                      <div class="progress">
+                        <div [ngStyle]="{'width': countryPageOverviewData.datasetsAffiliated.percentage+'%'}" class="progress-bar progress-bar-datasets animate-progress-bar"></div>
+                      </div>
+                      <div class="uk-margin-small-top">
+                        <span class="number">{{countryPageOverviewData.datasetsAffiliated.percentage | number :'1.0-1'}}%</span> OA
+                      </div>
+                    </div>
+                  </div>
+                  <div class="uk-grid uk-margin-medium-top">
+                    <div class="uk-width-1-5">
+                    </div>
+                    <div class="uk-width-2-5">
+                      <div *ngIf="countryPageOverviewData.datasetsDeposited?.oa" class="number big">{{countryPageOverviewData.datasetsDeposited.oa | number}}</div>
+                      <div *ngIf="!countryPageOverviewData.datasetsDeposited || !countryPageOverviewData.datasetsDeposited.oa" class="number big">--</div>
+                      <div class="uk-margin-small-top">OA DATASETS FROM INSTITUTIONAL REPOSITORIES</div>
+                    </div>
+                    <div *ngIf="countryPageOverviewData.datasetsDeposited?.percentage" class="uk-width-2-5">
+                      <div class="progress">
+                        <div [ngStyle]="{'width': countryPageOverviewData.datasetsDeposited.percentage+'%'}" class="progress-bar progress-bar-datasets animate-progress-bar"></div>
+                      </div>
+                      <div class="uk-margin-small-top">
+                        <span class="number">{{countryPageOverviewData.datasetsDeposited.percentage | number :'1.0-1'}}%</span> OA
+                      </div>
+                    </div>
+                  </div>
+
+                  <div class="uk-grid uk-margin-medium-top">
+                    <div class="uk-width-1-5">
+                      <img src="../../../assets/img/icons/repositories-icon.svg" width="30" height="30">
+                    </div>
+                    <div class="uk-width-2-5">
+                      <div *ngIf="countryPageOverviewData.repositories?.oa" class="number big">{{countryPageOverviewData.repositories.oa | number}}</div>
+                      <div *ngIf="!countryPageOverviewData.repositories || !countryPageOverviewData.repositories.oa" class="number big">--</div>
+                      <div class="uk-margin-small-top">VALIDATED REPOSITORIES</div>
+                    </div>
+                    <div *ngIf="countryPageOverviewData.repositories?.percentage" class="uk-width-2-5">
+                      <div class="progress">
+                        <div [ngStyle]="{'width': countryPageOverviewData.repositories.percentage+'%'}" class="progress-bar progress-bar-repositories animate-progress-bar"></div>
+                      </div>
+                      <div class="uk-margin-small-top">
+                        <span class="number">{{countryPageOverviewData.repositories.percentage | number :'1.0-1'}}%</span> VALIDATED
+                      </div>
+                    </div>
+                  </div>
+
+                  <div class="uk-grid uk-margin-medium-top">
+                    <div class="uk-width-1-5">
+                      <img src="../../../assets/img/icons/journals-icon.svg" width="30" height="30">
+                    </div>
+                    <div class="uk-width-2-5">
+                      <div *ngIf="countryPageOverviewData.journals?.oa" class="number big">{{countryPageOverviewData.journals.oa | number}}</div>
+                      <div *ngIf="!countryPageOverviewData.journals || !countryPageOverviewData.journals.oa" class="number big">--</div>
+                      <div class="uk-margin-small-top">VALIDATED JOURNALS</div>
+                    </div>
+                    <div *ngIf="countryPageOverviewData.journals?.percentage" class="uk-width-2-5">
+                      <div class="progress">
+                        <div [ngStyle]="{'width': countryPageOverviewData.journals.percentage+'%'}" class="progress-bar progress-bar-journals animate-progress-bar"></div>
+                      </div>
+                      <div class="uk-margin-small-top">
+                        <span class="number">{{countryPageOverviewData.journals.percentage | number : '1.0-1'}}%</span> Validated
+                      </div>
+                    </div>
+                  </div>
+
+                  <!--<div class="uk-grid uk-margin-medium-top uk-margin-bottom">-->
+                    <!--<div class="uk-width-1-5">-->
+                      <!--<img src="../../../assets/img/icons/policies-icon.svg" width="30" height="30">-->
+                    <!--</div>-->
+                    <!--<div class="uk-width-2-5">-->
+                      <!--<div *ngIf="countryPageOverviewData.policies?.oa" class="number big">{{countryPageOverviewData.policies.oa | number}}</div>-->
+                      <!--<div *ngIf="!countryPageOverviewData.policies || !countryPageOverviewData.policies.oa" class="number big">&#45;&#45;</div>-->
+                      <!--<div class="uk-margin-small-top">OA POLICIES</div>-->
+                    <!--</div>-->
+                    <!--<div class="uk-width-2-5">-->
+
+                    <!--</div>-->
+                  <!--</div>-->
+
+                </div>
+              </div>
+            </div>
+
+
+          </div>
+
+        </div>
+
+        <!--Research Overview-->
+        <!--LAPTOP & PAD LANDSCAPE-->
+        <div class="uk-visible@m uk-width-1-5@m uk-width-1-5@l">
+          <div class="md-card infoBox">
+
+            <div class="md-card-toolbar">
+              <h3 class="uk-text-center uk-margin-small-top">
+                Research overview
+              </h3>
+            </div>
+
+            <div class="md-card-content">
+              <div class="numbers">
+
+                <div class="indicator uk-margin-small-top">
+                  <ng-container *ngIf="countryPageOverviewData?.rndExpenditure">
+                    <span class="number primary">{{countryPageOverviewData.rndExpenditure.expenditure}}%</span>
+                    <span>
+                      <span><i> of gdp for </i></span>
+                      <span class="number primary">{{countryPageOverviewData.rndExpenditure.year}}</span>
+                      <div><i> R&D expenditure</i></div>
+                    </span>
+                  </ng-container>
+                  <ng-container *ngIf="!countryPageOverviewData || !countryPageOverviewData.rndExpenditure">
+                    <span class="number primary">--</span>
+                    <span><i>R&D expenditure</i></span>
+                  </ng-container>
+                </div>
+
+                <hr class="greyBoldDivider uk-margin-medium-top uk-margin-medium-bottom">
+
+                <div class="indicator">
+                  <span class="number primary" *ngIf="countryPageOverviewData?.funders">{{countryPageOverviewData.funders}}</span>
+                  <span class="number primary" *ngIf="!countryPageOverviewData || !countryPageOverviewData.funders">--</span>
+                  <span><i>funding sources</i></span>
+                </div>
+
+                <hr class="greyBoldDivider uk-margin-medium-top uk-margin-medium-bottom">
+
+                <div class="indicator">
+                  <span class="number primary" *ngIf="countryPageOverviewData?.fundingOrganizations">{{countryPageOverviewData.fundingOrganizations}}</span>
+                  <span class="number primary" *ngIf="!countryPageOverviewData || !countryPageOverviewData.fundingOrganizations">--</span>
+                  <span><i>funding organizations</i></span>
+                </div>
+
+                <hr class="greyBoldDivider uk-margin-medium-top uk-margin-medium-bottom">
+
+                <div class="indicator">
+                  <span class="number primary" *ngIf="countryPageOverviewData?.ec_fundedOrganizations">{{countryPageOverviewData.ec_fundedOrganizations}}</span>
+                  <span class="number primary" *ngIf="!countryPageOverviewData || !countryPageOverviewData.ec_fundedOrganizations">--</span>
+                  <span><i>organizations funded by the European commission since 2013</i></span>
+                </div>
+
+              </div>
+
+
+              <div class="uk-text-center uk-margin-xlarge-top">
+
+                <div class="uk-text-center uk-margin-medium-bottom">
+                <span class="openaire-symbol-wrapper">
+                  <img class="" src="https://www.openaire.eu/images/OpenAIRE_branding/Symbol.png" height="30px" width="30px">
+                </span>
+                </div>
+                <a class="uk-link" href="{{linkToCountryInOpenAIRE}}" target="_blank">Country page in <strong>OpenAIRE</strong><i class="fas fa-long-arrow-alt-right uk-margin-left"></i></a>
+              </div>
+
+            </div>
+          </div>
+        </div>
+
+        <!--Research Overview-->
+        <!--MOBILE & PAD PORTRAIT-->
+        <div class="uk-hidden@m uk-width-1-1@s uk-margin-medium-top">
+          <div class="uk-container uk-container-expand">
+            <div *ngIf="countryPageOverviewData" class="md-card chartCard overviewMobile">
+              <div class="md-card-content">
+                <div class="numbers">
+
+                  <div class="">
+                    <ng-container *ngIf="countryPageOverviewData?.rndExpenditure">
+                      <span class="number big primary">{{countryPageOverviewData.rndExpenditure.expenditure}}%</span>
+                      <span>
+                      <span class="uk-margin-small-right uk-margin-small-left"> OF DGP FOR </span>
+                      <span class="number big primary">{{countryPageOverviewData.rndExpenditure.year}}</span>
+                      <div class="uk-margin-small-top"> R&D EXPENDITURE</div>
+                    </span>
+                    </ng-container>
+                    <ng-container *ngIf="!countryPageOverviewData || !countryPageOverviewData.rndExpenditure">
+                      <div class="number big primary">--</div>
+                      <div class="uk-margin-small-top">R&D EXPENDITURE</div>
+                    </ng-container>
+                  </div>
+
+                  <div class="uk-margin-medium-top">
+                    <div class="number big primary" *ngIf="countryPageOverviewData?.funders">{{countryPageOverviewData.funders}}</div>
+                    <div class="number big primary" *ngIf="!countryPageOverviewData || !countryPageOverviewData.funders">--</div>
+                    <div class="uk-margin-small-top">FUNDING SOURCES</div>
+                  </div>
+
+                  <div class="uk-margin-medium-top">
+                    <div class="number big primary" *ngIf="countryPageOverviewData?.fundingOrganizations">{{countryPageOverviewData.fundingOrganizations}}</div>
+                    <div class="number big primary" *ngIf="!countryPageOverviewData || !countryPageOverviewData.fundingOrganizations">--</div>
+                    <div class="uk-margin-small-top">FUNDING ORGANIZATIONS</div>
+                  </div>
+
+                  <div class=" uk-margin-medium-top">
+                    <div class="number big primary" *ngIf="countryPageOverviewData?.ec_fundedOrganizations">{{countryPageOverviewData.ec_fundedOrganizations}}</div>
+                    <div class="number big primary" *ngIf="!countryPageOverviewData || !countryPageOverviewData.ec_fundedOrganizations">--</div>
+                    <div class="uk-margin-small-top">ORGANIZATIONS FUNDED BY THE EUROPEAN COMMISSION SINCE 2013</div>
+                  </div>
+
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+
+
+      </div>
+
+    </div>
+  </section>
+
+  <!--TABS SECTION-->
+  <section class="section uk-margin-large-top" id="sect-tabs">
+    <div class="uk-container uk-container-expand uk-container-center uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up" data-uk-scrollspy="{cls:'uk-animation-scale-up uk-invisible',delay:300,topoffset:-100}">
+
+      <div class="">
+
+        <!--LAPTOP & PAD LANDSCAPE-->
+        <ul class="uk-visible@m uk-tab uk-tab-large uk-flex-center" data-uk-tab="{connect:'#team_tabbed',animation: 'slide-bottom'}">
+          <li class="uk-active" aria-expanded="true"><a (click)="changeTopView('overview')">Overview</a></li>
+          <li aria-expanded="false"><a (click)="changeTopView('openScience')">Open Science</a></li>
+          <li class="uk-disabled" aria-expanded="false"><a href="#" data-uk-tooltip="{title: Stay tuned..; pos: top-left}">Collaboration</a></li>
+          <li class="uk-disabled" aria-expanded="false" data-uk-tooltip="Stay tuned.."><a href="#">Impact</a></li>
+          <li class="uk-disabled" aria-expanded="false" data-uk-tooltip="Stay tuned.."><a href="#">Innovation</a></li>
+          <!--<li class="uk-tab-responsive uk-active uk-hidden" aria-haspopup="true" aria-expanded="false"><a>Developers</a><div class="uk-dropdown uk-dropdown-small" aria-hidden="true"><ul class="uk-nav uk-nav-dropdown"></ul><div></div></div></li>-->
+        </ul>
+
+        <!--MOBILE & PAD PORTRAIT-->
+        <ul class="uk-hidden@m uk-tab" data-uk-tab="{connect:'#team_tabbed',animation: 'slide-bottom'}">
+          <li class="uk-active" aria-expanded="true"><a (click)="changeTopView('overview')">Overview</a></li>
+          <li aria-expanded="false"><a (click)="changeTopView('openScience')">Open Science</a></li>
+          <li class="uk-disabled" aria-expanded="false"><a href="#" data-uk-tooltip="{title: Stay tuned..; pos: top-left}">Collaboration</a></li>
+          <li class="uk-disabled" aria-expanded="false" data-uk-tooltip="Stay tuned.."><a href="#">Impact</a></li>
+          <li class="uk-disabled" aria-expanded="false" data-uk-tooltip="Stay tuned.."><a href="#">Innovation</a></li>
+          <!--<li class="uk-tab-responsive uk-active uk-hidden" aria-haspopup="true" aria-expanded="false"><a>Developers</a><div class="uk-dropdown uk-dropdown-small" aria-hidden="true"><ul class="uk-nav uk-nav-dropdown"></ul><div></div></div></li>-->
+        </ul>
+
+        <ul id="team_tabbed" class="uk-switcher dataContainer">
+
+          <!--OVERVIEW tab-->
+          <li aria-hidden="false" class="uk-active" style="animation-duration: 200ms;">
+            <div class="uk-margin tabContent">
+
+              <div *ngIf="countryPageOAData" class="uk-grid uk-child-width-1-4@m uk-child-width-1-4@l uk-child-width-1-2@s uk-grid-match">
+
+                <div>
+                  <div class="md-card">
+                    <div class="md-card-content">
+                      <svg viewBox="0 0 36 36" class="circular-chart publications">
+                        <path class="circle-bg" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                        <path *ngIf="countryPageOAData.publicationsAffiliated?.percentage" class="circle" attr.stroke-dasharray="{{countryPageOAData.publicationsAffiliated.percentage}}, 100" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                        <text *ngIf="countryPageOAData.publicationsAffiliated?.percentage" x="18" y="20.35" class="percentage">{{countryPageOAData.publicationsAffiliated.percentage | number : '1.0-1'}}%</text>
+                        <text *ngIf="!countryPageOAData.publicationsAffiliated || !countryPageOAData.publicationsAffiliated.percentage" x="18" y="20.35" class="percentage">0%</text>
+                      </svg>
+                      <div class="uk-margin-small-top uk-text-center">OA publications</div>
+                    </div>
+                  </div>
+                </div>
+
+                <div>
+                  <div class="md-card">
+                    <div class="md-card-content">
+                      <svg viewBox="0 0 36 36" class="circular-chart datasets">
+                        <path class="circle-bg" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                        <path *ngIf="countryPageOAData.datasetsAffiliated?.percentage" class="circle" attr.stroke-dasharray="{{countryPageOAData.datasetsAffiliated.percentage}}, 100" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                        <text *ngIf="countryPageOAData.datasetsAffiliated?.percentage" x="18" y="20.35" class="percentage">{{countryPageOAData.datasetsAffiliated.percentage | number : '1.0-1'}}%</text>
+                        <text *ngIf="!countryPageOAData.datasetsAffiliated || !countryPageOAData.datasetsAffiliated.percentage" x="18" y="20.35" class="percentage">0%</text>
+                      </svg>
+                      <div class="uk-margin-small-top uk-text-center">OA datasets</div>
+                    </div>
+                  </div>
+                </div>
+
+                <div>
+                  <div class="md-card">
+                    <div class="md-card-content">
+                      <svg viewBox="0 0 36 36" class="circular-chart software">
+                        <path class="circle-bg" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                        <path *ngIf="countryPageOAData.software?.percentage" class="circle" attr.stroke-dasharray="{{countryPageOAData.software.percentage}}, 100" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                        <text *ngIf="countryPageOAData.software?.percentage" x="18" y="20.35" class="percentage">{{countryPageOAData.software.percentage | number : '1.0-1'}}%</text>
+                        <text *ngIf="!countryPageOAData.software || !countryPageOAData.software.percentage" x="18" y="20.35" class="percentage">0%</text>
+                      </svg>
+                      <div class="uk-margin-small-top uk-text-center">OS software</div>
+                    </div>
+                  </div>
+                </div>
+
+                <div>
+                  <div class="md-card">
+                    <div class="md-card-content">
+                      <svg viewBox="0 0 36 36" class="circular-chart other">
+                        <path class="circle-bg" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                        <path *ngIf="countryPageOAData.other?.percentage" class="circle" attr.stroke-dasharray="{{countryPageOAData.other.percentage}}, 100" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                        <text *ngIf="countryPageOAData.other?.percentage" x="18" y="20.35" class="percentage">{{countryPageOAData.other.percentage | number : '1.0-1'}}%</text>
+                        <text *ngIf="!countryPageOAData.other || !countryPageOAData.other.percentage" x="18" y="20.35" class="percentage">0%</text>
+                      </svg>
+                      <div class="uk-margin-small-top uk-text-center">OA other research products</div>
+                    </div>
+                  </div>
+                </div>
+
+              </div>
+
+              <div class="uk-grid uk-grid-row-medium uk-margin-small-top uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe *ngIf="oaNonOAPublicationsTimelineChartURL" width="100%" height="350" [src]="oaNonOAPublicationsTimelineChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe *ngIf="oaNonOADatasetsTimelineChartURL" width="100%" height="350" [src]="oaNonOADatasetsTimelineChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe *ngIf="oaNonOASoftwareTimelineChartURL" width="100%" height="350" [src]="oaNonOASoftwareTimelineChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe *ngIf="oaNonOAOtherTimelineChartURL" width="100%" height="350" [src]="oaNonOAOtherTimelineChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+
+              </div>
+
+              <div class="uk-grid uk-child-width-1-3@m uk-child-width-1-3@l uk-child-width-1-1@s">
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe *ngIf="publicationsByDatasourceChartURL" width="100%" height="550" [src]="publicationsByDatasourceChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe *ngIf="publicationsByOrganizationChartURL" width="100%" height="550" [src]="publicationsByOrganizationChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <app-treemap-highchart *ngIf="publicationsByFunderData" [chartTitle]="'OA Publications by funder'"
+                                             [chartData]="publicationsByFunderData" [color]="publicationColor"></app-treemap-highchart>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe *ngIf="datasetsByDatasourceChartURL" width="100%" height="550" [src]="datasetsByDatasourceChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe *ngIf="datasetsByOrganizationChartURL" width="100%" height="550" [src]="datasetsByOrganizationChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <app-treemap-highchart *ngIf="datasetsByFunderData" [chartTitle]="'OA Datasets by funder'"
+                                             [chartData]="datasetsByFunderData" [color]="datasetColor"></app-treemap-highchart>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe *ngIf="softwareByDatasourceChartURL" width="100%" height="550" [src]="softwareByDatasourceChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe *ngIf="softwareByOrganizationChartURL" width="100%" height="550" [src]="softwareByOrganizationChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <app-treemap-highchart *ngIf="softwareByFunderData" [chartTitle]="'OS Software by funder'"
+                                             [chartData]="softwareByFunderData" [color]="softwareColor"></app-treemap-highchart>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe *ngIf="otherByDatasourceChartURL" width="100%" height="550" [src]="otherByDatasourceChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe *ngIf="otherByOrganizationChartURL" width="100%" height="550" [src]="otherByOrganizationChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <app-treemap-highchart *ngIf="otherByFunderData" [chartTitle]="'OA Other research products by funder'"
+                                             [chartData]="otherByFunderData" [color]="otherResearchProductsColor"></app-treemap-highchart>
+                    </div>
+                  </div>
+                </div>
+
+              </div>
+
+              <div class="uk-grid uk-child-width-1-1@m uk-child-width-1-1@l uk-child-width-1-1@s">
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe *ngIf="resultsByTypeOANonOAChartURL" width="100%" height="550" [src]="resultsByTypeOANonOAChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+              </div>
+
+            </div>
+          </li>
+
+          <!--OPEN SCIENCE tab-->
+          <li aria-hidden="true" style="animation-duration: 200ms;">
+            <div class="uk-margin tabContent">
+
+              <ul class="uk-subnav uk-subnav-pill dataView uk-flex uk-flex-center" data-uk-switcher="{connect:'#switcher-content-a-fade', animation: 'fade'}">
+                <li aria-expanded="true" class="uk-active">
+                  <a class="publicationsSubnav" (click)="changeInnerView('publications')" uk-tooltip="title: Publication; duration: 2000">
+                    <img src="../../../assets/img/icons/publications-icon.svg" width="15">
+                  </a>
+                </li>
+                <li aria-expanded="false" class="">
+                  <a class="datasetsSubnav" (click)="changeInnerView('datasets')" uk-tooltip="title: Datasets; duration: 2000">
+                    <img src="../../../assets/img/icons/datasets-icon.svg" width="15">
+                  </a>
+                </li>
+                <li aria-expanded="false" class="">
+                  <a class="softwareSubnav" (click)="changeInnerView('software')" uk-tooltip="title: Software; duration: 2000">
+                    <img src="../../../assets/img/icons/software-icon.svg" width="15">
+                  </a>
+                </li>
+                <li aria-expanded="false" class="">
+                  <a class="otherSubnav" (click)="changeInnerView('other')" uk-tooltip="title: Other research products; duration: 2000">
+                    <img src="../../../assets/img/icons/other-icon.svg" width="15">
+                  </a>
+                </li>
+              </ul>
+
+              <hr class="uk-visible@m">
+
+              <ul id="switcher-content-a-fade" class="uk-switcher uk-margin" >
+                <li aria-hidden="false" class="uk-active" style="animation-duration: 200ms;">
+
+                  <div>
+
+                    <div class="pidIndicator">
+                      <h3 class="uk-margin-remove">PID</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="publicationsWithPIDTimeline" width="100%" height="550" [src]="publicationsWithPIDTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="publicationsWithPIDByDatasourceChartURL" width="100%" height="550" [src]="publicationsWithPIDByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="publicationsWithPIDByOrganizationChartURL" width="100%" height="550" [src]="publicationsWithPIDByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="publicationsWithPIDByFunderData" [chartTitle]="'OA Publications with PID by funder'"
+                                                     [chartData]="publicationsWithPIDByFunderData" [color]="publicationColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="licenceIndicator uk-margin-large-top">
+                      <h3 class="uk-margin-remove">Licence</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="publicationsWithLicenceTimeline" width="100%" height="550" [src]="publicationsWithLicenceTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="publicationsWithLicenceByDatasourceChartURL" width="100%" height="550" [src]="publicationsWithLicenceByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="publicationsWithLicenceByOrganizationChartURL" width="100%" height="550" [src]="publicationsWithLicenceByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="publicationsWithLicenceByFunderData" [chartTitle]="'OA Publications with licence by funder'"
+                                                     [chartData]="publicationsWithLicenceByFunderData" [color]="publicationColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="goldIndicator uk-margin-large-top">
+                      <h3 class="uk-margin-remove">Gold</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="goldPublicationsTimeline" width="100%" height="550" [src]="goldPublicationsTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="goldPublicationsByDatasourceChartURL" width="100%" height="550" [src]="goldPublicationsByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="goldPublicationsByOrganizationChartURL" width="100%" height="550" [src]="goldPublicationsByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="goldPublicationsByFunderData" [chartTitle]="'Gold OA publications by funder'"
+                                                     [chartData]="goldPublicationsByFunderData" [color]="publicationColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="greenIndicator uk-margin-large-top">
+                      <h3 class="uk-margin-remove">Green</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="greenPublicationsTimeline" width="100%" height="550" [src]="greenPublicationsTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="greenPublicationsByDatasourceChartURL" width="100%" height="550" [src]="greenPublicationsByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="greenPublicationsByOrganizationChartURL" width="100%" height="550" [src]="greenPublicationsByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="greenPublicationsByFunderData" [chartTitle]="'Green OA publications by funder'"
+                                                     [chartData]="greenPublicationsByFunderData" [color]="publicationColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="greenVsGoldIndicator uk-margin-large-top">
+                      <h3 class="uk-margin-remove">Green vs. Gold</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="greenVsGoldPublicationsChartURL" width="100%" height="550" [src]="greenVsGoldPublicationsChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                  </div>
+
+                </li>
+                <li aria-hidden="true" style="animation-duration: 200ms;" class="">
+
+                  <div>
+
+                    <div class="pidIndicator">
+                      <h3 class="uk-margin-remove">PID</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="datasetsWithPIDTimeline" width="100%" height="550" [src]="datasetsWithPIDTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="datasetsWithPIDByDatasourceChartURL" width="100%" height="550" [src]="datasetsWithPIDByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="datasetsWithPIDByOrganizationChartURL" width="100%" height="550" [src]="datasetsWithPIDByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="datasetsWithPIDByFunderData" [chartTitle]="'OA Datasets with PID by funder'"
+                                                     [chartData]="datasetsWithPIDByFunderData" [color]="datasetColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="licenceIndicator uk-margin-large-top">
+                      <h3 class="uk-margin-remove">Licence</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="datasetsWithLicenceTimeline" width="100%" height="550" [src]="datasetsWithLicenceTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="datasetsWithLicenceByDatasourceChartURL" width="100%" height="550" [src]="datasetsWithLicenceByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="datasetsWithLicenceByOrganizationChartURL" width="100%" height="550" [src]="datasetsWithLicenceByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="datasetsWithLicenceByFunderData" [chartTitle]="'OA Datasets with licence by funder'"
+                                                     [chartData]="datasetsWithLicenceByFunderData" [color]="datasetColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                  </div>
+
+                </li>
+                <li aria-hidden="true" style="animation-duration: 200ms;" class="">
+
+                  <div>
+
+                    <div class="pidIndicator">
+                      <h3 class="uk-margin-remove">PID</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="softwareWithPIDTimeline" width="100%" height="550" [src]="softwareWithPIDTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="softwareWithPIDByDatasourceChartURL" width="100%" height="550" [src]="softwareWithPIDByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="softwareWithPIDByOrganizationChartURL" width="100%" height="550" [src]="softwareWithPIDByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="softwareWithPIDByFunderData" [chartTitle]="'OS Software with PID by funder'"
+                                                     [chartData]="softwareWithPIDByFunderData" [color]="softwareColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="licenceIndicator uk-margin-large-top">
+                      <h3 class="uk-margin-remove">Licence</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="softwareWithLicenceTimeline" width="100%" height="550" [src]="softwareWithLicenceTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="softwareWithLicenceByDatasourceChartURL" width="100%" height="550" [src]="softwareWithLicenceByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="softwareWithLicenceByOrganizationChartURL" width="100%" height="550" [src]="softwareWithLicenceByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="softwareWithLicenceByFunderData" [chartTitle]="'OS Software with licence by funder'"
+                                                     [chartData]="softwareWithLicenceByFunderData" [color]="softwareColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                  </div>
+
+                </li>
+                <li aria-hidden="true" style="animation-duration: 200ms;" class="">
+
+                  <div>
+
+                    <div class="pidIndicator">
+                      <h3 class="uk-margin-remove">PID</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="otherWithPIDTimeline" width="100%" height="550" [src]="otherWithPIDTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="otherWithPIDByDatasourceChartURL" width="100%" height="550" [src]="otherWithPIDByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="otherWithPIDByOrganizationChartURL" width="100%" height="550" [src]="otherWithPIDByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="otherWithPIDByFunderData" [chartTitle]="'OA Other research products with PID by funder'"
+                                                     [chartData]="otherWithPIDByFunderData" [color]="otherResearchProductsColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="licenceIndicator uk-margin-large-top">
+                      <h3 class="uk-margin-remove">Licence</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="otherWithLicenceTimeline" width="100%" height="550" [src]="otherWithLicenceTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="otherWithLicenceByDatasourceChartURL" width="100%" height="550" [src]="otherWithLicenceByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="otherWithLicenceByOrganizationChartURL" width="100%" height="550" [src]="otherWithLicenceByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="otherWithLicenceByFunderData" [chartTitle]="'OA Other research products with licence by funder'"
+                                                     [chartData]="otherWithLicenceByFunderData" [color]="otherResearchProductsColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                  </div>
+
+                </li>
+              </ul>
+
+            </div>
+          </li>
+
+          <li aria-hidden="true">
+            <div class="uk-grid uk-grid-medium uk-grid-width-small-1-2 uk-grid-width-medium-1-3 uk-grid-width-large-1-4" data-uk-grid-margin="">
+            </div>
+          </li>
+
+          <li aria-hidden="true">
+            <div class="uk-grid uk-grid-medium uk-grid-width-small-1-2 uk-grid-width-medium-1-3 uk-grid-width-large-1-4" data-uk-grid-margin="">
+            </div>
+          </li>
+
+          <li aria-hidden="true">
+            <div class="uk-grid uk-grid-medium uk-grid-width-small-1-2 uk-grid-width-medium-1-3 uk-grid-width-large-1-4" data-uk-grid-margin="">
+            </div>
+          </li>
+        </ul>
+      </div>
+
+    </div>
+  </section>
+
+
+  <!--link to OpenAIRE page-->
+  <!--MOBILE & PAD PORTRAIT-->
+  <div class="uk-hidden@m">
+    <div class="uk-text-center uk-margin-xlarge-top uk-margin-large-bottom">
+
+      <div class="uk-text-center uk-margin-medium-bottom">
+                <span class="openaire-symbol-wrapper">
+                  <img class="" src="https://www.openaire.eu/images/OpenAIRE_branding/Symbol.png" height="30px" width="30px">
+                </span>
+      </div>
+      <a class="uk-link primary" href="{{linkToCountryInOpenAIRE}}" target="_blank">Country page in <strong>OpenAIRE</strong><i class="fas fa-long-arrow-alt-right uk-margin-left"></i></a>
+    </div>
+  </div>
+
+</div>
+
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/countrypage/country-map.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/countrypage/country-map.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/countrypage/country-map.component.ts	(revision 60863)
@@ -0,0 +1,137 @@
+import { MapCountryData } from '../../domain/map-country-data';
+
+declare var require: any;
+
+import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';
+
+import * as Highcharts from 'highcharts';
+import MapModule from 'highcharts/modules/map';
+import {CountryOverview} from '../../domain/overview-data';
+
+const mapWorld = require('@highcharts/map-collection/custom/world.geo.json');
+const mapEurope = require('@highcharts/map-collection/custom/europe.geo.json');
+
+MapModule(Highcharts);
+
+@Component({
+  selector: 'app-country-map',
+  templateUrl: './country-map.component.html',
+  encapsulation: ViewEncapsulation.None
+})
+
+export class CountryMapComponent implements OnInit {
+
+  @Input() country: string;
+
+  Highcharts: typeof Highcharts = Highcharts;
+
+  chartMapOptions: Highcharts.Options;
+
+  mapCountryData: MapCountryData[] = [];
+  seriesColor: string = '#ff9800';
+  seriesName: string = 'OA publications';
+
+  europe: string[] = [];
+  countryNames: string[] = [];
+
+  constructor() {}
+
+  ngOnInit(): void {
+    this.countryNames.push(this.country);
+    console.log('this.country', this.country);
+    console.log('this.countryNames', this.countryNames);
+    this.mapCountryData.push(this.overviewToMapData());
+    this.loadMap(this.mapCountryData, this.seriesColor, this.seriesName, this.country);
+  }
+
+  overviewToMapData(): MapCountryData {
+    this.seriesColor = '#A26C0A';
+    this.seriesName = 'OA policies';
+    return {
+      id: this.country,
+      country: this.country,
+      z: 5
+    };
+  }
+
+  loadMap(mapCountryData: MapCountryData[], seriesColor: string, seriesName: string, countryName: string) {
+    this.chartMapOptions = {
+      chart: {
+        map: mapWorld,
+        events: {
+          load: function() {
+            this.series[0].data = this.series[0].data.map((el) => {
+              if ((el.name === countryName)) {
+                el.color = 'rgba(139,151,167,0.6)';
+                return el;
+              }
+              return el;
+            });
+            this.update({
+              series: [{
+                data: this.series[0].data as Highcharts.SeriesMapbubbleDataOptions,
+              } as Highcharts.SeriesMapbubbleOptions]
+            });
+            let x, y;
+            for (let i = 0; i < mapCountryData.length; i++) {
+              if (mapCountryData[i].hasOwnProperty('name')) {
+                if (mapCountryData[i]['name'] === countryName) {
+                  console.log(mapCountryData[i]);
+                  if (mapCountryData[i].hasOwnProperty('_midX')) {
+                    x = mapCountryData[i]['_midX'];
+                  }
+                  if (mapCountryData[i].hasOwnProperty('_midY')) {
+                    y = mapCountryData[i]['_midY'];
+                  }
+                  break;
+                }
+              }
+            }
+            this.mapZoom(0.1, x, y);
+          }
+        }
+      },
+      title: {
+        text: ''
+      },
+      legend: {
+        enabled: false
+      },
+      colorAxis: {
+        min: 0
+      },
+      series: [{
+        // name: 'Countries',
+        // borderColor: '#fff',
+        // negativeColor: 'rgba(139,151,167,0.2)',
+        // enableMouseTracking: false,
+        // type: 'map'
+        // }, {
+        name: 'Random data',
+        type: 'map',
+        // joinBy: ['name', 'country'],
+        data : mapCountryData,
+        // data: [
+        //   ['is', 1],
+        //   ['no', 1],
+        //   ['se', 1],
+        //   ['dk', 1],
+        //   ['fi', 1]
+        // ],
+        // states: {
+        //   hover: {
+        //     color: '#BADA55'
+        //   }
+        // },
+        // dataLabels: {
+        //   enabled: true,
+        //   format: '{point.name}'
+        // },
+        // allAreas: false,
+        // joinBy: ['name', 'country'],
+        // data : mapCountryData
+      } as Highcharts.SeriesMapOptions]
+    };
+
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/countrypage/country-map.component.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/countrypage/country-map.component.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/countrypage/country-map.component.html	(revision 60863)
@@ -0,0 +1,9 @@
+<div class="">
+  <highcharts-chart
+    [Highcharts]="Highcharts"
+    [constructorType]="'mapChart'"
+    [options]="chartMapOptions"
+    style="width: 100%; height: 200px; display: block;"
+  ></highcharts-chart>
+</div>
+
Index: modules/open-science-observatory-ui/branches/gradient/src/app/chart-components/treemap-highcharts/treemap-highcharts.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/chart-components/treemap-highcharts/treemap-highcharts.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/chart-components/treemap-highcharts/treemap-highcharts.component.ts	(revision 60863)
@@ -0,0 +1,69 @@
+import { Component, Input, OnInit } from '@angular/core';
+
+import * as  Highcharts from 'highcharts';
+import More from 'highcharts/highcharts-more';
+import Tree from 'highcharts/modules/treemap';
+import Heatmap from 'highcharts/modules/heatmap';
+import { TreemapHighchartsData } from '../../domain/treemap-highcharts-data';
+
+More(Highcharts);
+Tree(Highcharts);
+Heatmap(Highcharts);
+
+@Component({
+  selector: 'app-treemap-highchart',
+  templateUrl: './treemap-highcharts.component.html',
+})
+
+export class TreemapHighchartsComponent implements OnInit {
+
+  @Input() chartTitle: string;
+  @Input() chartData: TreemapHighchartsData[];
+  @Input() color: string;
+
+  Highcharts: typeof Highcharts = Highcharts;
+
+  treeMapChartOptions = {};
+
+  constructor() {}
+
+  ngOnInit(): void {
+
+    this.treeMapChartOptions = {
+      chart: {
+        type: 'treemap'
+      },
+      title: {
+        text: this.chartTitle,
+        align: 'left',
+        margin: 25,
+        // style: {
+        //   color: '#7A7A7A',
+        //   fontSize: '18px'
+        // }
+      },
+      tooltip: {
+        enabled: true
+      },
+      credits: {
+        enabled: false
+      },
+      exporting: {
+        enabled : true
+      },
+      colorAxis: {
+        minColor: '#FFFFFF',
+        maxColor: this.color,
+        // maxColor: Highcharts.getOptions().colors[0]
+      },
+      series: [
+        {
+          type: 'treemap',
+          layoutAlgorithm: 'squarified',
+          data: this.chartData
+        }
+      ]
+    };
+  }
+
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/css/os-observatory-custom.css
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/css/os-observatory-custom.css	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/css/os-observatory-custom.css	(revision 60863)
@@ -0,0 +1,1735 @@
+@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&display=swap');
+
+:root {
+  --primary-color: #EC4386;
+  /*fixme I need a pinkish color*/
+  /*--primary-color-background: #eff6e6;*/
+  --primary-color-background: #F6D6E5;
+  --secondary-color: #CA4D9A;
+
+  --link-color: #EC4386;
+  --link-hover-color: #CA4D9A;
+
+  --publication-color: #F17AA9;
+  --publication-background-color: #f8d5e3;
+  /*--publication-color: #0d6b96;*/
+  /*--publication-background-color: #8197D9;*/
+
+  --dataset-color: #A98BD4;
+  --dataset-background-color: #e2daf0;
+  /*--dataset-color: #2ec0f9;*/
+  /*--dataset-background-color: #e2daf0;*/
+
+  --software-color: #C2155A;
+  --software-background-color: #F2D0DE;
+  /*--software-color: #8affc1;*/
+  /*--software-background-color: #F2D0DE;*/
+
+  --other-color: #00CCCC;
+  --other-background-color: #CCF4F4;
+  /*--other-color: #4ea699;*/
+  /*--other-background-color: #CCF4F4;*/
+
+  --repository-color: #708AA5;
+  --repository-background-color: #ADD3E0;
+  /*--repository-color: #639C66;*/
+  /*--repository-background-color: #D4ECD6;*/
+
+  --journal-color: #FFCE4E;
+  --journal-background-color: #FBE8B1;
+  /*--journal-color: #FFCE4E;*/
+  /*--journal-background-color: #FBE8B1;*/
+
+  --policies-color: #639C66;
+  --policies-background-color: #D4ECD6;
+
+  --muted-color: #4d4d4d;
+}
+
+html {
+  color: #292929;
+}
+
+body {
+  font: 400 14px/19px 'Open Sans';
+}
+
+h1, h2, h3, h4, h5, h6 {
+  font-family: 'Open Sans', sans-serif;
+}
+
+h3 {
+  font-weight: 600;
+  font-size: 24px;
+}
+
+.uk-h6, h6 {
+  font-size: 18px;
+  font-weight: 400;
+}
+
+.uk-flex-space-between {
+  justify-content: space-between;
+}
+
+.uk-container-large {
+  max-width: 1600px;
+}
+
+.uk-container-expand {
+  max-width: none;
+}
+
+.uk-container-center {
+  margin-left: auto;
+  margin-right: auto;
+}
+
+.uk-navbar-nav > li > a, .uk-navbar-nav > li.uk-active > a {
+  font-size: 14px;
+  font-weight: bold;
+  letter-spacing: 0px;
+  color: #000;
+}
+
+.large-beta-indication {
+  height: 83px;
+  position: fixed;
+  top: 0;
+  left: 0;
+  z-index: 10000;
+}
+
+.medium-beta-indication-nonFixed {
+  height: 65px;
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: 10000;
+}
+
+.medium-beta-indication-fixed {
+  height: 65px;
+  position: fixed;
+  top: 0;
+  left: 0;
+  z-index: 10000;
+}
+
+.uk-text-muted {
+  color: var(--muted-color) !important;
+}
+
+/*#sect-overview, #sect-tabs {*/
+  /*padding: 20px 0;*/
+/*}*/
+
+.greySection {
+  /*background-color: #F0F0F0;*/
+  background-color: #F9FBFC;
+}
+
+a {
+  color: var(--link-color);
+}
+
+a:hover, a:focus, a:active {
+  color: var(--link-hover-color);
+}
+
+.mapContainer {
+  /*background: #F7F7F7 0% 0% no-repeat padding-box;*/
+  /*border: 1px solid #E0E0E0;*/
+  /*opacity: 0.4;*/
+  /*padding: 15px;*/
+  position: relative;
+  height: 100%;
+}
+
+.mapContainerEmbed {
+  height: 100%;
+}
+
+.map {
+  /*height: 398px;*/
+  /*border: 1px solid #707070;*/
+  /*margin: 15px;*/
+  position: absolute;
+  height: 88%;
+  width: 100%;
+}
+
+.mapControls {
+  /*position: absolute;*/
+  bottom: 20px;
+}
+
+.uk-nav-label {
+  width: 12px;
+  height: 12px;
+  display: inline-block;
+  vertical-align: -1px;
+  margin-right: 8px;
+  border-radius: 50%;
+}
+
+.uk-nav-horizontal li {
+  display: inline-block;
+}
+
+.uk-nav > li > a {
+  padding: 5px 15px;
+}
+
+.uk-nav-side > li > a {
+  color: #444;
+}
+
+.mapControls .text {
+  opacity: 0.5;
+}
+
+.mapControls .text.active {
+  opacity: 1;
+}
+
+.dark-blue-box {
+  background: #002D60 0% 0% no-repeat padding-box;
+  border: 1px solid #707070;
+  border-radius: 2px;
+  opacity: 1;
+  color: #fff;
+}
+
+.dark-blue-box a, .dark-blue-box a:hover, .dark-blue-box a:focus {
+  color: #fff;
+}
+
+.dark-grey-box {
+  background: #2A2D34 0% 0% no-repeat padding-box;
+  border: 1px solid #707070;
+  border-radius: 2px;
+  opacity: 1;
+  color: #fff;
+}
+
+.dark-grey-box h3 {
+  color: #fff;
+}
+
+.dark-grey-box a, .dark-grey-box a:hover, .dark-grey-box a:focus {
+  color: #fff;
+}
+
+.openaire-symbol-wrapper {
+  background-color: #fff;
+  border-radius: 50%;
+  padding: 12px 10px 17px 13px;
+}
+
+
+.infoBox {
+  /*font-weight: 300;*/
+  /*font-size: 15px;*/
+
+  background: #FFFFFF 0% 0% no-repeat padding-box;
+  box-shadow: 0px 2px 6px #00000038;
+  border-radius: 3px;
+  opacity: 1;
+}
+
+.infoBox h3 {
+  font-weight: bold;
+}
+
+.infoBox ul {
+  padding-left: 18px;
+}
+
+.infoBox ul li {
+  margin-bottom: 20px;
+  letter-spacing: 0px;
+  line-height: 27px;
+}
+
+.dark-blue-box h3 {
+  color: #fff;
+}
+
+a.backToOriginalInfoBox, a.backToOriginalInfoBox:hover, a.backToOriginalInfoBox:focus  {
+  color: #fff;
+}
+
+.greyBoldDivider {
+  border: 1px solid #E0E0E0;
+}
+
+.numbers .number {
+  font-size: 16px;
+}
+
+div.indicator {
+  display: flex;
+}
+
+div.indicator span {
+  padding-right: 10px;
+}
+
+.primary {
+  color: var(--primary-color);
+}
+
+.publications {
+  color: var(--publication-color);
+}
+
+.datasets {
+  color: var(--dataset-color);
+}
+
+.software {
+  color: var(--software-color);
+}
+
+.other {
+  color: var(--other-color);
+}
+
+.repositories {
+  color: var(--repository-color);
+}
+
+.journals {
+  color: var(--journal-color);
+}
+
+.policies {
+  color: var(--policies-color);
+}
+
+.indicatorCards {
+  font-size: 13px;
+}
+
+.indicatorCards .md-card {
+  box-shadow: 0px 2px 6px #00000038;
+  border: 1px solid #E0E0E0;
+  border-radius: 3px;
+}
+
+/********* Mock chart for country **********/
+.epc_chart {
+  display: block;
+  position: relative;
+}
+
+.epc_chart_text {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  text-align: center;
+  font: 400 20px/110px Roboto,sans-serif;
+}
+
+/********************************************/
+
+/*.md-btn-primary {*/
+  /*background: #1F73F7 0% 0% no-repeat padding-box;*/
+  /*box-shadow: 0px 3px 6px #00000029;*/
+  /*border-radius: 26px;*/
+  /*opacity: 1;*/
+  /*text-align: left;*/
+  /*font: 14px/19px Open Sans;*/
+  /*font-weight: 400;*/
+  /*letter-spacing: 0;*/
+  /*color: #FFFFFF;*/
+  /*text-transform: none;*/
+  /*!*padding: 10px 30px;*!*/
+/*}*/
+
+.md-btn {
+  border-radius: 23px;
+  padding: 7px 25px;
+  font: 500 14px / 31px 'Open Sans', sans-serif !important;
+}
+
+.md-btn-primary {
+  background: var(--primary-color) 0% 0% no-repeat padding-box;
+  box-shadow: 0px 3px 6px #00000029;
+  border-radius: 23px;
+  opacity: 1;
+  text-align: left;
+  font: 14px/19px Open Sans;
+  font-weight: 400;
+  letter-spacing: 0;
+  color: #FFFFFF;
+  text-transform: none;
+  /*padding: 10px 30px;*/
+}
+
+.md-btn-primary:hover, .md-btn-primary:focus, .md-btn-primary:active {
+  background: var(--secondary-color) 0% 0% no-repeat padding-box;
+}
+
+.md-btn-secondary {
+  background: var(--secondary-color) 0% 0% no-repeat padding-box;
+  box-shadow: 0px 2px 6px #00000038;
+  border-radius: 23px;
+  opacity: 1;
+  opacity: 1;
+  text-align: left;
+  font: 14px/19px Open Sans;
+  font-weight: 400;
+  letter-spacing: 0;
+  color: #FFFFFF;
+  text-transform: none;
+  /*padding: 7px 30px;*/
+}
+
+.number {
+  font-weight: bold;
+}
+
+#sect-tabs .uk-tab > li > a {
+  text-transform: none;
+}
+
+.uk-tab > li.uk-active > a {
+  border-bottom-color: var(--primary-color);
+}
+
+.uk-tab > li > a:hover, .uk-tab > li > a:focus {
+  background: none;
+  color: #212121;
+  border-bottom-color: var(--secondary-color);
+}
+
+.uk-tab::before {
+  border-bottom: none;
+}
+
+.dataContainer {
+  background: #F9fbfc 0% 0% no-repeat padding-box;
+  border: 1px solid #E0E0E0;
+}
+
+.tabContent {
+  padding: 30px 50px;
+}
+
+.uk-tab {
+  display: flex;
+}
+
+.uk-tab > li.uk-active > a {
+  font-weight: bold;
+}
+/*.uk-tab-center.uk-tab {*/
+
+  /*position: relative;*/
+  /*right: 50%;*/
+  /*border: none;*/
+  /*float: right;*/
+
+/*}*/
+
+.uk-subnav-pill > .uk-active > a {
+  /*background: #1F73F7;*/
+  background: var(--primary-color);
+}
+
+.dataView.uk-subnav-pill > * > * {
+  width: 16px;
+  height: 16px;
+  padding: 8px;
+  border-radius: 50%;
+  border: 1px solid;
+  display: inline-block;
+}
+
+.tabContent hr {
+  margin: 30px 0;
+}
+
+.dataContent {
+  background-color: #FFFFFF;
+  border: 1px solid #E0E0E0;
+  padding: 30px;
+}
+
+.goToDetailedViewLink {
+  margin-top: -50px;
+}
+
+.actionButtons a, .actionButtonsCountryPage a {
+  color: #000000;
+}
+
+.actionButtons a i, .actionButtonsCountryPage a i {
+  color: var(--primary-color);
+}
+
+.md-card .md-card-toolbar {
+  /*height: 48px;*/
+}
+
+.infoBox.md-card .md-card-toolbar {
+  /*height: 48px;*/
+  background: transparent linear-gradient(115deg, var(--primary-color) 0%, var(--secondary-color) 100%) 0% 0% no-repeat padding-box;
+  border-radius: 3px 3px 0px 0px;
+  opacity: 1;
+  padding: 16px 25px 0;
+  color: #292929;
+}
+
+.infoBox.md-card .md-card-toolbar h3 {
+  color: #fff;
+  font-size: 16px;
+}
+
+.md-card .md-card-toolbar .md-card-toolbar-actions {
+  padding-top: 15px;
+}
+
+.md-card .md-card-content {
+  padding: 20px;
+}
+
+/*.uk-table td {*/
+  /*border-bottom: 1px solid #e0e0e0;*/
+/*}*/
+
+.uk-table th {
+  text-transform: none;
+}
+
+
+a.publicationsSubnav {
+  color: var(--publication-color) !important;
+}
+
+.uk-subnav-pill > .uk-active > a.publicationsSubnav {
+  background: var(--publication-background-color);
+}
+
+a.datasetsSubnav {
+  color: var(--dataset-color) !important;
+}
+
+.uk-subnav-pill > .uk-active > a.datasetsSubnav {
+  background: var(--dataset-background-color);
+}
+
+a.softwareSubnav {
+  color: var(--software-color) !important;
+}
+
+.uk-subnav-pill > .uk-active > a.softwareSubnav {
+  background: var(--software-background-color);
+}
+
+a.otherSubnav {
+  color: var(--other-color) !important;
+}
+
+.uk-subnav-pill > .uk-active > a.otherSubnav {
+  background: var(--other-background-color);
+}
+
+/*a.publicationsSubnav, a.datasetsSubnav, a.softwareSubnav, a.otherSubnav {*/
+  /*width: 16px;*/
+  /*height: 16px;*/
+  /*padding: 8px;*/
+  /*!*border-radius: 50%;*!*/
+  /*!*border: 1px solid;*!*/
+  /*display: inline-block;*/
+/*}*/
+
+a.publicationsSubnav img, a.datasetsSubnav img, a.softwareSubnav img, a.otherSubnav img {
+  vertical-align: baseline;
+}
+
+
+/**************** HEADER ****************/
+
+/*.tm-header .uk-navbar-container {*/
+  /*padding-top: 10px;*/
+  /*padding-bottom: 15px;*/
+/*}*/
+
+.tm-header .uk-navbar-left {
+  position: relative;
+  z-index: 9999 !important;
+}
+
+.navbar .brand, .uk-logo {
+  font-size: 24px;
+  font-family: 'Open Sans';
+  color: #666;
+  text-decoration: none;
+}
+
+.tm-header .uk-logo {
+  position: relative;
+  z-index: 1000 !important;
+  /*padding-left: 100px;*/
+}
+
+.uk-logo > img {
+  max-height: 70px;
+}
+
+/********************************************/
+
+/**************** FOOTER ****************/
+
+.footerLink {
+  color: #000;
+  text-decoration: underline;
+}
+
+.footerImage {
+  opacity: 0.8;
+  float: left;
+  margin-top: 7px;
+}
+
+/********************************************/
+
+
+#sidebar_main {
+  position: fixed;
+  right: 0;
+  top:0;
+  bottom:0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  /*background-color: #222;*/
+  /*width: 260px;*/
+  width: 20%;
+  z-index:1;
+}
+
+#left-col {
+  position: fixed;
+  left: 0;
+  top:0;
+  bottom:0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  background-color: #222;
+  width: 260px;
+  z-index:1;
+}
+.bar-wrap {
+  padding: 2rem;
+}
+#right-col {
+  margin-left: 260px;
+}
+
+
+
+/*#sc-sidebar-main {*/
+
+  /*position: fixed;*/
+  /*top: 48px;*/
+  /*left: 0;*/
+  /*bottom: 0;*/
+  /*-webkit-box-sizing: border-box;*/
+  /*box-sizing: border-box;*/
+  /*width: 260px;*/
+  /*z-index: 1300;*/
+  /*border-right: 1px solid*/
+
+  /*rgba(0,0,0,.08);*/
+
+  /*background:*/
+
+    /*#fff;*/
+  /*display: -webkit-box;*/
+  /*display: -ms-flexbox;*/
+  /*display: flex;*/
+  /*-webkit-box-orient: vertical;*/
+  /*-webkit-box-direction: normal;*/
+  /*-ms-flex-direction: column;*/
+  /*flex-direction: column;*/
+
+/*}*/
+
+/*#sc-sidebar-main .uk-offcanvas-bar {*/
+
+  /*padding: 0;*/
+
+/*}*/
+
+/*#sc-sidebar-main .uk-offcanvas-bar {*/
+
+  /*top: 0;*/
+  /*display: -webkit-box;*/
+  /*display: -ms-flexbox;*/
+  /*display: flex;*/
+  /*-webkit-box-orient: vertical;*/
+  /*-webkit-box-direction: normal;*/
+  /*-ms-flex-direction: column;*/
+  /*flex-direction: column;*/
+  /*position: static;*/
+  /*background: 0 0;*/
+  /*-webkit-box-shadow: none;*/
+  /*box-shadow: none;*/
+  /*-webkit-transform: none;*/
+  /*transform: none;*/
+  /*overflow-x: hidden;*/
+  /*overflow-y: visible;*/
+  /*height: 100%;*/
+  /*width: 260px;*/
+
+/*}*/
+
+/*#sc-page-wrapper {*/
+
+  /*height: calc(100% - 48px);*/
+  /*-webkit-box-flex: 1;*/
+  /*-ms-flex: 1;*/
+  /*flex: 1;*/
+
+/*}*/
+
+/*#sc-page-wrapper {*/
+
+  /*padding-left: 260px;*/
+  /*-webkit-transition: padding 140ms ease-out;*/
+  /*transition: padding 140ms ease-out;*/
+
+/*}*/
+
+
+
+
+/********************************************/
+
+/*.contentSectionContainer .md-card-content {*/
+  /*max-height: 300px;*/
+/*}*/
+
+.contentSectionContainer .md-card-content img {
+  height:  350px;
+  width: 100%;
+}
+
+/*.contentSectionContainer .md-card-content {*/
+  /*text-align: center;*/
+/*}*/
+
+
+
+.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 {
+  height: 12px;
+  background-color: #e9ecee;
+  background-image: none;
+  box-shadow: none;
+  filter: none;
+}
+
+.progress {
+  /*margin-bottom: 10px;*/
+}
+
+.progress {
+  /*margin-top: 3px;*/
+  /*width: 85px;*/
+  /*display: inline-block;*/
+  width: 50%;
+}
+
+.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 {
+
+  box-shadow: none;
+  border-radius: 3px;
+  background-color: #0090D9;
+  background-image: none;
+  -webkit-transition: all 1000ms cubic-bezier(0.785, 0.135, 0.15, 0.86);
+  transition: all 1000ms cubic-bezier(0.785, 0.135, 0.15, 0.86);
+  transition-timing-function: cubic-bezier(0.785, 0.135, 0.15, 0.86);
+  -webkit-transition-timing-function: cubic-bezier(0.785, 0.135, 0.15, 0.86);
+  -moz-transition-timing-function: cubic-bezier(0.785, 0.135, 0.15, 0.86);
+  -ms-transition-timing-function: cubic-bezier(0.785, 0.135, 0.15, 0.86);
+  -o-transition-timing-function: cubic-bezier(0.785, 0.135, 0.15, 0.86);
+  transition-timing-function: cubic-bezier(0.785, 0.135, 0.15, 0.86);
+  float: left;
+  filter: none;
+
+}
+
+.progress-bar-publications {
+  /*background-color: #F6C4D8;*/
+  background-color: var(--publication-background-color);
+  background-image: none;
+}
+
+.progress-bar-datasets {
+  /*background-color: #D6CBEB;*/
+  background-color: var(--dataset-background-color);
+  background-image: none;
+}
+
+.progress-bar-repositories {
+  /*background-color: #ADD3E0;*/
+  background-color: var(--repository-background-color);
+  background-image: none;
+}
+
+.progress-bar-journals {
+  /*background-color: #FBE8B1;*/
+  background-color: var(--journal-background-color);
+  background-image: none;
+}
+
+
+/*.progress-bar-software {*/
+  /*background-color: #F88306;*/
+  /*background-image: none;*/
+/*}*/
+
+/*.progress-bar-otherProducts {*/
+  /*background-color: #987CD6;*/
+  /*background-image: none;*/
+/*}*/
+
+
+/**************** BREADCRUMB ****************/
+
+.uk-breadcrumb > :last-child > * {
+  color: var(--primary-color);
+}
+
+.uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before {
+  content: ">";
+}
+
+/********************************************/
+
+.small-flag-image {
+  border: 2px solid #eee;
+  border-radius: 100px;
+}
+
+.flag-image {
+  border: 10px solid #eee;
+  border-radius: 100px;
+}
+
+
+.demo-chart {
+  /*max-height: 600px;*/
+  height: 65vh;
+}
+
+/********* LOADERS *********/
+
+.loader {
+  color: var(--primary-color);
+  margin: 25% auto;
+}
+
+.whiteFilm {
+  background: #ffffff;
+  z-index: 105;
+  width: 100%;
+  height: 100%;
+  opacity: 0.7;
+  position: absolute;
+  top: 0;
+  left: 0;
+
+  display: flex;
+  align-items: center;
+}
+
+.transparentFilm {
+  background: transparent;
+  z-index: 105;
+  width: 100%;
+  height: 100%;
+  opacity: 0.7;
+  position: absolute;
+  top: 0;
+  left: 0;
+
+  display: flex;
+  align-items: center;
+}
+/**************************/
+
+.lastUpdateInfo {
+  opacity: 0.4;
+  color: #000;
+  letter-spacing: 0px;
+}
+
+.entitiesContainer {
+  height: 300px;
+  display: flex;
+  align-items: flex-end;
+}
+
+.publicationsColumn {
+  /*background-color: #f181ae;*/
+  background-color: var(--publication-color);
+  box-shadow: 3px 3px 6px #00000029;
+  opacity: 1;
+  z-index: 10;
+}
+
+.publicationsDot {
+  background-color: var(--publication-color);
+  /*width: 50px;*/
+  width: 35px;
+  height: 33px;
+  border-radius: 50%;
+}
+
+.datasetsColumn {
+  background-color: var(--dataset-color);
+  box-shadow: 3px 3px 6px #00000029;
+  opacity: 1;
+  z-index: 8;
+}
+
+.datasetsDot {
+  background-color: var(--dataset-color);
+  /*width: 50px;*/
+  width: 35px;
+  height: 33px;
+  border-radius: 50%;
+}
+
+.softwareColumn {
+  background-color: var(--software-color);
+  box-shadow: 3px 3px 6px #00000029;
+  opacity: 1;
+  z-index: 6;
+}
+
+.softwareDot {
+  background-color: var(--software-color);
+  /*width: 50px;*/
+  width: 35px;
+  height: 33px;
+  border-radius: 50%;
+}
+
+.otherColumn {
+  background-color: var(--other-color);
+  box-shadow: 3px 3px 6px #00000029;
+  opacity: 1;
+  z-index: 4;
+}
+
+.otherDot {
+  background-color: var(--other-color);
+  /*width: 50px;*/
+  width: 35px;
+  height: 33px;
+  border-radius: 50%;
+}
+
+.entityColumnContent {
+  color: #fff;
+  width: 100%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  text-align: center;
+}
+
+hr.entitiesDivider {
+  border: 2px solid #B4B4B4;
+  margin-left: -90px;
+  margin-right: -50px;
+  margin-top: 0px;
+}
+
+.entityLegendContent {
+  display: flex;
+  padding-right: 40px;
+
+}
+
+
+
+
+.countryPageHeader {
+  display: flex;
+  justify-content: space-between;
+}
+
+
+.chartCard.md-card {
+  box-shadow: 1px 10px 12px #00000026;
+  border: 1px solid #E0E0E0;
+  border-radius: 5px;
+}
+
+
+/********* DONUT - CIRCLE ********/
+
+.circular-chart {
+  display: block;
+  margin: 10px auto;
+  max-width: 80%;
+  /*max-height: 250px;*/
+  max-height: 110px;
+}
+
+.circle-bg {
+  fill: none;
+  stroke: #eee;
+  stroke-width: 3.8;
+}
+
+.circle {
+  fill: none;
+  /*stroke-width: 2.8;*/
+  stroke-width: 4.2;
+  stroke-linecap: round;
+  animation: progress 1s ease-out forwards;
+}
+
+@keyframes progress {
+  0% {
+    stroke-dasharray: 0 100;
+  }
+}
+
+.circular-chart.publications .circle {
+  stroke: var(--publication-color);
+}
+
+.circular-chart.datasets .circle {
+  /*stroke: #BB9CE6;*/
+  stroke: var(--dataset-color);
+}
+
+.circular-chart.software .circle {
+  stroke: var(--software-color);
+}
+
+.circular-chart.other .circle {
+  stroke: var(--other-color);
+}
+
+.percentage {
+  fill: #666;
+  font-family: sans-serif;
+  font-size: 0.5em;
+  text-anchor: middle;
+}
+
+/*********************************/
+
+/********* MAP ********/
+
+.publicationMapControlLabel {
+  background-color: var(--publication-background-color) !important;
+  border: 1px solid var(--publication-color);
+}
+
+.datasetMapControlLabel {
+  background-color: var(--dataset-background-color) !important;
+  border: 1px solid var(--dataset-color);
+}
+
+.repositoryMapControlLabel {
+  background-color: var(--repository-background-color) !important;
+  border: 1px solid var(--repository-color);
+}
+
+.journalMapControlLabel {
+  background-color: var(--journal-background-color) !important;
+  border: 1px solid var(--journal-color);
+}
+
+/*********************************/
+
+/********* MENU ********/
+
+.uk-navbar-dropdown {
+  width: 280px;
+  padding: 25px 0px;
+}
+
+.uk-navbar-dropdown-nav > li {
+  padding: 0px 25px;
+}
+
+.uk-navbar-dropdown-nav > li > a, .uk-navbar-dropdown-nav > li > a:hover {
+  color: #212121;
+}
+
+.uk-navbar-dropdown-nav > li:hover {
+  color: #212121;
+  background: var(--primary-color-background) 0% 0% no-repeat padding-box;
+  opacity: 1;
+}
+
+
+/*********************************/
+
+
+/**************** OFF-Canvas menu ****************/
+
+.custom-offcanvas-close {
+  position: relative;
+  right: 0;
+  top: 0;
+}
+
+.uk-offcanvas-bar-light {
+  text-transform: uppercase;
+}
+
+.uk-offcanvas-bar-light {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  left: -270px;
+  box-sizing: border-box;
+  width: 270px;
+  padding: 20px 20px;
+  background: #fff;
+  overflow-y: auto;
+  -webkit-overflow-scrolling: touch;
+}
+
+.uk-nav-sub a {
+  padding: 2px 15px;
+}
+
+.uk-offcanvas-bar-light .uk-nav-default > li > a, .uk-offcanvas-bar-light .uk-nav-default .uk-nav-sub a {
+  color: #333;
+}
+
+.uk-nav-default .uk-nav-sub a:hover {
+  color: var(--secondary-color);
+}
+
+.uk-offcanvas-bar-light .uk-nav-default > li.uk-active > a, .uk-offcanvas-bar-light .uk-nav-default > li > a:hover,
+.uk-offcanvas-bar-light .uk-nav-default > li > a.uk-active, .uk-offcanvas-bar-light .uk-nav-default > li > a:focus,
+.uk-offcanvas-bar-light .uk-nav-default > li > a:active {
+  color: var(--secondary-color);
+}
+
+.uk-offcanvas-bar-animation {
+  transition: left 0.3s ease-out;
+}
+
+@media (min-width: 960px) {
+  .uk-offcanvas-bar-light {
+    left: -350px;
+    width: 350px;
+    padding: 40px 40px;
+  }
+}
+
+.uk-offcanvas-flip .uk-offcanvas-bar-light {
+  left: auto;
+  right: -270px;
+}
+
+.uk-offcanvas-flip .uk-offcanvas-bar-animation {
+  transition-property: right;
+}
+
+.uk-offcanvas-flip .uk-open > .uk-offcanvas-bar-light {
+  left: auto;
+  right: 0;
+}
+
+@media (min-width: 960px) {
+  .uk-offcanvas-flip .uk-offcanvas-bar-light {
+    right: -350px;
+  }
+}
+
+.uk-offcanvas-flip .uk-offcanvas-reveal .uk-offcanvas-bar-light {
+  left: auto;
+  right: 0;
+}
+
+.uk-offcanvas-reveal .uk-offcanvas-bar-light {
+  left: 0;
+}
+
+.uk-open > .uk-offcanvas-bar-light {
+  left: 0;
+}
+
+.uk-close::after {
+  opacity: 0 !important;
+  color: #fff;
+  content: '';
+  font-family: "Material Icons";
+}
+
+/********************************************/
+
+
+/********* METHODOLOGY ********/
+
+/********* Terminology ********/
+
+.terminologySection table {
+  font-size: 14px;
+  background-color: #FFFFFF;
+  width:100%;
+  table-layout: fixed;
+  overflow-wrap: break-word;
+}
+
+.terminologySection table th {
+  width: 20%;
+}
+
+.terminologySection table th, .terminologySection table td {
+  border: 1px solid #DEDEDE;
+  padding: 25px 40px;
+  vertical-align: top;
+  text-align: start;
+}
+
+.terminologySection table th.important {
+  background-color: var(--primary-color-background);
+}
+
+.terminologySection ul.portal-circle {
+  list-style: none;
+  padding-left: 40px;
+  font-family: "Open Sans", sans-serif;
+}
+
+.terminologySection ul.portal-circle li {
+  margin: 0 0 2px 0;
+  position: relative;
+}
+
+.terminologySection ul.portal-circle li:before {
+  content: "";
+  border: 5px var(--primary-color) solid !important;
+  border-radius: 50px;
+  line-height: 21px;
+  margin-left: -20px;
+  position: absolute;
+  top: 7px;
+}
+
+@media only screen and (max-width: 959px) {
+  /*.terminologySection table th {*/
+    /*width: 50%;*/
+  /*}*/
+
+  .terminologySection ul.portal-circle {
+    padding-left: 20px;
+  }
+}
+
+/********* Overview ********/
+
+@media only screen and (min-width: 640px) {
+  .how .first > div:first-child {
+    position: relative;
+  }
+
+  .how .first > div:first-child:after {
+    content: "we";
+    text-align: center;
+    padding-bottom: 5%;
+    position: absolute;
+    background-image: url("../img/methodology/arrows/1.svg");
+    right: -21%;
+    top: 33%;
+    width: 20%;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: bottom center;
+  }
+
+  .how .second > div:first-child {
+    position: relative;
+    padding: 0 22% 0 22%;
+  }
+
+  .how .second > div:first-child:after {
+    content: "and";
+    text-align: center;
+    padding-bottom: 5%;
+    position: absolute;
+    background-image: url("../img/methodology/arrows/2.svg");
+    right: -10%;
+    top: 31%;
+    width: 30%;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: bottom center;
+  }
+
+  .how .third {
+    position:  relative;
+  }
+
+  .how .third > div:first-child {
+    padding: 0 12% 0 12%;
+  }
+
+  .how .third:after {
+    content: "on which";
+    padding-right: 30%;
+    padding-top: 5%;
+    padding-bottom: 5%;
+    position: absolute;
+    background-image: url("../img/methodology/arrows/3.svg");
+    bottom: 6%;
+    left: 6%;
+    transform: translateY(100%);
+    width: 55%;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: center;
+  }
+
+  .how .fourth {
+    padding: 10% 3% 0 3%;
+  }
+
+  .how .fourth > div:first-child {
+    position:  relative;
+    padding: 0 15% 0 15%;
+  }
+
+  .how .fourth> div:first-child:after {
+    content: "and";
+    text-align: center;
+    padding-bottom: 5%;
+    position: absolute;
+    background-image: url("../img/methodology/arrows/4.svg");
+    left: -18%;
+    top: 35%;
+    width: 30%;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: bottom center;
+  }
+
+  .how .fifth {
+    padding: 10% 2% 0 2%;
+  }
+
+  .how .fifth > div:first-child {
+    position:  relative;
+  }
+
+  .how .fifth > div:first-child:after {
+    content: "We";
+    text-align: center;
+    padding-bottom: 5%;
+    position: absolute;
+    background-image: url("../img/methodology/arrows/5.svg");
+    left: -35%;
+    top: 36%;
+    width: 30%;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: bottom center;
+  }
+
+  .how .sixth {
+    padding: 10% 5% 0 0;
+  }
+
+  .how .sixth > div:first-child {
+    padding: 0 15% 0 15%;
+  }
+
+  .how .final {
+    padding: 10% 20% 0 20%;
+  }
+
+  .how .final > div:first-child {
+    position: relative;
+  }
+
+  .how .final img {
+    display: block;
+    margin-left: auto;
+    margin-right: auto;
+  }
+
+  .how .final > div:first-child:before {
+    content: "";
+    position: absolute;
+    background-image: url("../img/methodology/arrows/6.svg");
+    left: -20%;
+    /*top: -20%;*/
+    /*height: 70%;*/
+    top: -8%;
+    height: 42%;
+    /*width: 30%;*/
+    width: 34%;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: bottom center;
+  }
+
+  .how .final > div:first-child:after {
+    content: "We make visualizations, graphs, reports and deliver all in a customisable tool";
+    position: absolute;
+    background-image: url("../img/methodology/circle.png");
+    /*right: -220px;*/
+    /*top: -20%;*/
+    right: -203px;
+    top: -8%;
+    width: 300px;
+    padding: 8% 0 5% 220px;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: bottom center;
+  }
+}
+
+@media only screen and (min-width: 960px) {
+  .how .third:after {
+    bottom: -6%;
+  }
+}
+
+@media only screen and (min-width: 1200px) {
+  .how .third:after {
+    bottom: -10%;
+    left: 25%;
+    width: 25%;
+  }
+}
+
+@media only screen and (max-width: 639px) {
+  .how .first {
+    position: relative;
+    padding-bottom: 30%;
+  }
+
+  .how .first:after {
+    content: "we";
+    text-align: center;
+    padding: 25px 105px 25px 0;
+    position: absolute;
+    background-image: url("../img/methodology/arrows/3.svg");
+    /*left: 26%;*/
+    left: 33%;
+    top: 72%;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: center;
+  }
+
+  .how .second {
+    position: relative;
+    padding: 0 15% 30% 15%;
+  }
+
+  .how .second:after {
+    content: "and";
+    text-align: center;
+    padding: 25px 105px 25px 0;
+    position: absolute;
+    background-image: url("../img/methodology/arrows/3.svg");
+    /*left: 25%;*/
+    left: 32%;
+    top: 70%;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: center;
+  }
+
+  .how .third {
+    position:  relative;
+    padding: 0 5% 30% 5%;
+  }
+
+  .how .third:after {
+    content: "on which";
+    text-align: center;
+    padding: 25px 105px 25px 0;
+    position: absolute;
+    background-image: url("../img/methodology/arrows/3.svg");
+    /*left: 17%;*/
+    left: 27%;
+    top: 75%;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: center;
+  }
+
+  .how .fourth {
+    position:  relative;
+    padding: 0 0 30% 0;
+  }
+
+  .how .fourth > div:first-child {
+    padding: 0 10% 0 10%;
+  }
+
+  .how .fourth:after {
+    content: "and";
+    text-align: center;
+    padding: 25px 105px 25px 0;
+    position: absolute;
+    background-image: url("../img/methodology/arrows/3.svg");
+    /*left: 26%;*/
+    left: 32%;
+    top: 79%;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: center;
+  }
+
+  .how .fifth {
+    position:  relative;
+    padding: 0 2% 30% 2%;
+  }
+
+  .how .fifth:after {
+    content: "We";
+    text-align: center;
+    padding: 25px 105px 25px 0;
+    position: absolute;
+    background-image: url("../img/methodology/arrows/3.svg");
+    /*left: 27%;*/
+    left: 33%;
+    top: 76%;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: center;
+  }
+
+  .how .sixth {
+    padding: 0 5% 30% 0;
+  }
+
+  .how .sixth > div:first-child {
+    padding: 0 15% 0 15%;
+  }
+
+  .how .final {
+    padding: 20% 0 20% 0;
+  }
+
+  .how .final > div:first-child {
+    position: relative;
+  }
+
+  .how .final > div:first-child:before {
+    content: "";
+    position: absolute;
+    background-image: url("../img/methodology/arrows/6.svg");
+    left: 32%;
+    /*top: -80%;*/
+    /*height: 70%;*/
+    top: -37%;
+    height: 33%;
+    width: 30%;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: center;
+  }
+
+  .how .final > div:first-child:after {
+    content: "We make visualizations, graphs, reports and deliver all in a customisable tool";
+    position: absolute;
+    background-image: url("../img/methodology/circle.png");
+    /*left: -62%;*/
+    /*top: 85%;*/
+    left: -52%;
+    top: 91%;
+    width: 300px;
+    padding: 12% 0 0 70%;
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: center;
+  }
+}
+
+
+/*********************************/
+
+/********* MOBILE ********/
+@media only screen and (max-width: 960px) {
+
+  body {
+    background: #F9FBFC;
+  }
+
+  ::-webkit-scrollbar {
+    width: 0px;
+    background: transparent; /* make scrollbar transparent */
+  }
+
+  .uk-navbar-container:not(.uk-navbar-transparent) {
+    background: #F9FBFC;
+  }
+
+  .uk-navbar-item, .uk-navbar-nav>li>a, .uk-navbar-toggle {
+    min-height: 60px;
+  }
+
+  .uk-logo > img {
+    max-height: 125px;
+  }
+
+  .uk-navbar-toggle-icon {
+    color: var(--primary-color);
+  }
+
+  .searchForCountry.uk-search.uk-search-default {
+    width: 100%;
+    background: #FFFFFF 0% 0% no-repeat padding-box;
+    border: 1px solid #C7C7C7;
+    border-radius: 4px;
+  }
+
+  .searchForCountry.uk-search .uk-search-icon {
+    color: #4687f4;
+    z-index: 10;
+  }
+
+  .progress {
+    width: 100%;
+  }
+
+  .overviewMobile .number.big {
+    font-size: 24px;
+  }
+
+  .overviewMobile {
+    font-size: 12px;
+  }
+
+  .goToDetailedViewLink {
+    text-align: center;
+    margin-top: 0px;
+  }
+
+  .leadingOpenScienceCard {
+    font-size: 10px;
+  }
+
+  .leadingOpenScienceCard .number {
+    font-size: 14px;
+  }
+
+  .leadingOpenScienceCard .countryName {
+    font-size: 16px;
+    font-weight: bold;
+  }
+
+  .footerSection {
+    text-align: center;
+    background-color: #fff;
+  }
+
+  .footerImage {
+    opacity: 0.8;
+    float: none;
+    margin-top: 0px;
+  }
+
+  [class*="uk-navbar-dropdown-bottom"] {
+    margin-top: -5px;
+    left: 200px !important;
+  }
+
+  .tm-header-mobile .uk-nav-divider {
+    margin: 15px 0;
+  }
+
+  .tm-header-mobile .smallHeader {
+    background: #FFFFFF 0% 0% no-repeat padding-box;
+    box-shadow: 0px 3px 6px #00000029;
+    opacity: 1;
+  }
+
+  .continentPageEntitiesOverview .number.big {
+    font-size: 24px;
+  }
+
+  .continentPageEntitiesOverview .entityName {
+    font-size: 16px;
+    font-weight: 600;
+  }
+
+  .uk-tab {
+    flex-wrap: nowrap;
+    overflow-x: auto;
+    background: #fff;
+    padding-bottom: 15px;
+    padding-top: 10px;
+    margin-right: -20px;
+  }
+
+  .entitiesContainer {
+    margin-left: 0px;
+    height: 200px;
+  }
+
+  hr.entitiesDivider {
+    margin-left: -15px;
+    margin-right: -15px;
+  }
+
+  .dataContainer {
+    border: none;
+  }
+
+  .tabContent {
+    padding: 30px 0px;
+  }
+
+  .dataContainer .tabContent {
+    padding: 0px;
+  }
+
+  .autocomplete-container .input-container input {
+    padding: 0 15px 0 40px !important;
+  }
+}
+
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/europe-map-overview.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/europe-map-overview.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/europe-map-overview.component.ts	(revision 60863)
@@ -0,0 +1,391 @@
+import { MapCountryData } from '../../domain/map-country-data';;
+
+import { Component, EventEmitter, OnInit, Output } from '@angular/core';
+import { CountryOverview } from '../../domain/overview-data';
+
+import { DataService } from '../../services/data.service';
+import { Router } from '@angular/router';
+import {CountryMapData, JoinedMapData, OverviewMapData, SelectedCountry} from '../../domain/overview-map-data';
+import { latlong } from '../../domain/countries-lat-lon';
+import { DataHandlerService } from '../../services/data-handler.service';
+
+import * as echarts from 'echarts';
+import {
+  datasetColor, datasetBackgroundColor,
+  datasetTooltipColor, journalsColor, journalsTooltipColor, journalsBackgroundColor, policiesColor, policiesTooltipColor,
+  publicationColor, publicationBackgroundColor,
+  publicationTooltipColor,
+  repositoriesColor, repositoriesBackgroundColor,
+  repositoriesTooltipColor,
+} from '../../chart-palettes';
+
+declare var require: any;
+
+const mapWorld = require('echarts/map/json/world.json');
+
+@Component({
+  selector: 'app-europe-map-overview',
+  templateUrl: './europe-map-overview.component.html',
+})
+
+export class EuropeMapOverviewComponent implements OnInit {
+
+  countries: CountryOverview[];
+
+  @Output() emitSelectedCountry: EventEmitter<any> = new EventEmitter();
+
+  activeView: string = 'publications';
+  seriesColor: string = publicationColor;
+  seriesName: string = 'OA publications';
+
+  // tooltipBackgroundColor: string = '#EC4386';
+  tooltipBackgroundColor: string = publicationTooltipColor;
+  tooltipBorderColor: string = '#000';
+
+  options = {};
+
+  overviewMapData: OverviewMapData;
+
+  countriesLatLong = latlong;
+
+  joinedPublicationsMap: Map<string, JoinedMapData>;
+  joinedDatasetsMap: Map<string, JoinedMapData>;
+  joinedRepositoriesMap: Map<string, JoinedMapData>;
+  joinedJournalsMap: Map<string, JoinedMapData>;
+
+  constructor(private dataService: DataService,
+              private dataHandlerService: DataHandlerService,
+              private router: Router) {}
+
+  ngOnInit(): void {
+
+    echarts.registerMap('world', mapWorld);
+
+    if (this.isEmbedRoute()) {
+      const body = document.getElementsByTagName('body')[0];
+      body.classList.remove('header_sticky');
+    }
+
+    this.dataService.getOverviewMapData().subscribe(
+      rawData => {
+        // console.log('==== Map RawData ====', rawData);
+        this.overviewMapData = this.dataHandlerService.convertRawMapDataToMapData(rawData);
+        this.joinedPublicationsMap = this.dataHandlerService.createJoinedPublicationsCountryMap(rawData);
+        this.joinedDatasetsMap = this.dataHandlerService.createJoinedDatasetsCountryMap(rawData);
+        this.joinedRepositoriesMap = this.dataHandlerService.createJoinedRepositoriesCountryMap(rawData);
+        this.joinedJournalsMap = this.dataHandlerService.createJoinedJournalsCountryMap(rawData);
+
+        // console.log('Country map data', this.overviewMapData[this.activeView]);
+        this.loadMap(this.overviewMapData[this.activeView], this.seriesColor, this.seriesColor);
+      },
+      error => {
+        console.log(error);
+      }
+    );
+  }
+
+  changeView(view: string) {
+    this.activeView = view;
+
+    if (this.activeView === 'publications') {
+      this.seriesColor = publicationColor;
+      this.seriesName = 'OA publications';
+      this.tooltipBackgroundColor = publicationTooltipColor;
+      this.tooltipBorderColor = '#000';
+    } else if (this.activeView === 'datasets') {
+      this.seriesColor = datasetColor;
+      this.seriesName = 'OA datasets';
+      this.tooltipBackgroundColor = datasetTooltipColor;
+      this.tooltipBorderColor = '#000';
+    } else if (this.activeView === 'repositories') {
+      this.seriesColor = repositoriesColor;
+      this.seriesName = 'OA repositories';
+      this.tooltipBackgroundColor = repositoriesTooltipColor;
+      this.tooltipBorderColor = '#000';
+    } else if (this.activeView === 'journals') {
+      this.seriesColor = journalsColor;
+      this.seriesName = 'OA journals';
+      this.tooltipBackgroundColor = journalsTooltipColor;
+      this.tooltipBorderColor = '#000';
+    } else {
+      this.seriesColor = policiesColor;
+      this.seriesName = 'OA policies';
+      this.tooltipBackgroundColor = policiesTooltipColor;
+      this.tooltipBorderColor = '#000';
+    }
+    this.loadMap(this.overviewMapData[view], this.seriesColor, this.seriesName);
+  }
+
+  loadMap(countryMapData: CountryMapData[], seriesColor: string, seriesName: string) {
+
+    this.options = {
+      title : {
+        // text: 'World Population (2011)',
+        // subtext: 'From Gapminder',
+        left: 'center',
+        top: 'top',
+        textStyle: {
+          color:  '#fff'
+        }
+      },
+      responsive: true,
+      tooltip : {
+        trigger: 'item',
+        // position: 'top',
+        // formatter: '<strong>{b}</strong><br> {c2} {a}',
+        // backgroundColor: '#f6c4d8',
+        // borderColor: '#bf1d5e',
+        // borderWidth: 0.2
+      },
+      visualMap: {
+        show: false,
+        min: 0,
+        // max: max,
+        max: 80000,
+        inRange: {
+          // symbolSize: [6, 60]
+          // symbolSize: [0, 6]
+        }
+      },
+      geo: {
+        // name:  'World Population (2010)',
+        type: 'map',
+        map: 'world',
+        // center: [15.2551, 54.5260],
+        center: [14, 51],
+        // zoom: 4.7,
+        // zoom: 4.3,
+        zoom: 6,
+        // roam: true,
+        label: {
+          emphasis: {
+            show: false
+          }
+        },
+        itemStyle: {
+          normal: {
+            // color: 'rgba(139,151,167,0.4)',
+            // borderColor: '#000',
+            borderColor: '#fff',
+            borderWidth: 0.5,
+            areaColor: 'rgba(139,151,167,0.6)',
+            // areaStyle: {
+            //   color: 'rgba(139,151,167,0.2)'
+            // }
+          },
+          emphasis: {
+            // color: 'rgba(139,151,167,0.4)',
+            // borderColor: '#000',
+            borderColor: '#fff',
+            borderWidth: 0.5,
+            areaColor: 'rgba(139,151,167,0.8)',
+            // areaStyle: {
+            //   color: 'rgba(139,151,167,0.2)'
+            // }
+          }
+        }
+        // itemStyle: {
+        //   // areacolor: '#ffffff',
+        //   // bordercolor: '#111',
+        //   // borderWidth: 1,
+        //   // normal: {
+        //   //   // areacolor: '#323c48',
+        //   //   areacolor: '#ffffff',
+        //   //   bordercolor: '#111'
+        //   // },
+        //   // emphasis: {
+        //   //   areacolor: '#2a333d'
+        //   // }
+        // }
+      },
+      series : [
+        {
+          type: 'scatter',
+          coordinateSystem: 'geo',
+          name: seriesName,
+          label: {
+            show: true,
+            position: 'inside',
+            color: '#fff',
+            opacity: 1,
+            // formatter: '{@[2]}',
+            formatter: (params => {
+              return params.data.value[2].toLocaleString();
+            }),
+            textBorderColor: '#000',
+            textBorderWidth: '2',
+            fontSize: 15
+            // formatter: '{b}: {@score}'
+          },
+          // activeOpacity: 0.6,
+          data: countryMapData.map((itemOpt) => {
+            // console.log('itemOpt.code', itemOpt.code);
+            return {
+              name: itemOpt.name,
+              value: [
+                this.countriesLatLong.get(itemOpt.code).longitude,
+                this.countriesLatLong.get(itemOpt.code).latitude,
+                itemOpt.value
+              ],
+              // label: {
+              //   emphasis: {
+              //     position: 'right',
+              //     show: true
+              //   }
+              // },
+              itemStyle: {
+                normal: {
+                  color:  seriesColor,
+                  // color:  {
+                  //   type: 'linear',
+                  //   x: 0,
+                  //   y: 0,
+                  //   x2: 0,
+                  //   y2: 1,
+                  //   colorStops: [{
+                  //     offset: 0, color: '#A1AAB8' // color at 0% position
+                  //   }, {
+                  //     offset: 1, color: seriesColor // color at 100% position
+                  //   }],
+                  //   global: false // false by default
+                  // },
+                  // color:  '#f8d5e3',
+                  // opacity: 0.5,
+                  borderColor: seriesColor,
+                  borderWidth: 2
+                }
+              }
+            };
+          }),
+          symbolSize: value => {
+            // console.log('Math.sqrt(value[2]) / 1000: ' + (Math.sqrt(value[2]) / 1000) );
+            // return Math.sqrt(value[2]) / 10;
+            return Math.sqrt(value[2]) / 10 * this.resizeFactor(countryMapData);
+            // return Math.sqrt(value[2]) / 10;
+          },
+          tooltip : {
+            trigger: 'item',
+            position: 'top',
+            formatter: (params => {
+              // console.log('params: ', params);
+              // let bla = '<strong>' + params.data.name + '</strong><br>';
+              // bla += params.data.value[2].toLocaleString() + ' ' + params.seriesName;
+              // return bla;
+              return this.createTooltip(params);
+            }),
+            backgroundColor: this.tooltipBackgroundColor,
+            borderColor: this.tooltipBorderColor,
+            borderWidth: 0.2
+          },
+        }
+      ]
+    };
+  }
+
+  onChartClick(event: any, type: string) {
+    // console.log('chart event:', type, event);
+    // console.log('country:', event.name);
+
+    const selectedCountry: SelectedCountry = new SelectedCountry();
+    selectedCountry.name = event.name;
+    selectedCountry.code = this.joinedPublicationsMap.get(event.name).countryCode;
+
+    // console.log('Selected country', selectedCountry);
+    this.emitSelectedCountry.emit(selectedCountry);
+  }
+
+  // selectedCountry(countryName: string) {
+  //   this.emitSelectedCountry.emit(countryName);
+  // }
+
+  isEmbedRoute() {
+    return (this.router.url === '/overview-map-embed');
+  }
+
+  resizeFactor(countryMapData: CountryMapData[]) {
+
+    let max = 0;
+    for (const countryData of countryMapData) {
+      if (countryData.value > max) {
+        max = countryData.value;
+      }
+    }
+    // console.log('resizeFactor', 100 / (Math.sqrt(max) / 10));
+    return 100 / (Math.sqrt(max) / 10);
+  }
+
+  createTooltip(params: any) {
+
+    // console.log('params: ', params);
+    // console.log('params.name: ', params.name);
+
+    let tooltip = '<div style="padding:10px">';
+
+    tooltip += '<div class="uk-margin-small" style="font-weight: 600;">' + params.name + '</div>';
+
+    if (this.activeView === 'publications') {
+
+      tooltip += '<div class="numbers">';
+      tooltip += '<div class="indicator">' +
+        '<span class="number">' + params.data.value[2].toLocaleString() + '</span>' +
+        '<span><i>OA publications</i> affiliated <br>to an organization in the country</span></div>';
+
+      tooltip += '<div class="indicator uk-margin-small-top">' +
+        '<span class="number">' + this.joinedPublicationsMap.get(params.name).deposited.toLocaleString() + '</span>' +
+        '<span><i>OA publications</i> from <br>institutional repositories</span></div>';
+
+      tooltip += '</div>';
+
+    } else if (this.activeView === 'datasets') {
+
+      tooltip += '<div class="numbers">';
+      tooltip += '<div class="indicator">' +
+        '<span class="number">' + params.data.value[2].toLocaleString() + '</span>' +
+        '<span><i>OA datasets</i> affiliated <br>to an organization in the country</span></div>';
+
+      tooltip += '<div class="indicator uk-margin-small-top">' +
+        '<span class="number">' + this.joinedDatasetsMap.get(params.name).deposited.toLocaleString() + '</span>' +
+        '<span><i>OA datasets</i> from <br>institutional repositories</span></div>';
+
+      tooltip += '</div>';
+
+    } else if (this.activeView === 'repositories') {
+
+      tooltip += '<div class="numbers">';
+      tooltip += '<div class="indicator">' +
+        '<span class="number">' + params.data.value[2].toLocaleString() + '</span>' +
+        '<span><i>repositories</i> from <br>openDOAR & re3data</span></div>';
+
+      tooltip += '<div class="indicator uk-margin-small-top">' +
+        '<span class="number">' + this.joinedRepositoriesMap.get(params.name).simple.toLocaleString() + '</span>' +
+        '<span><i>repositories</i></span></div>';
+
+      tooltip += '</div>';
+
+    } else if (this.activeView === 'journals') {
+
+      tooltip += '<div class="numbers">';
+      tooltip += '<div class="indicator">' +
+        '<span class="number">' + params.data.value[2].toLocaleString() + '</span>' +
+        '<span><i>journals</i> from DOAJ</span></div>';
+
+      tooltip += '<div class="indicator uk-margin-small-top">' +
+        '<span class="number">' + this.joinedJournalsMap.get(params.name).simple.toLocaleString() + '</span>' +
+        '<span><i>journals</i></span></div>';
+
+      tooltip += '</div>';
+
+    } else {
+
+      tooltip += '<div class="numbers">';
+      tooltip += '<div class="indicator">' +
+        '<span class="number">' + params.data.value[2].toLocaleString() + '</span>' +
+        '<span>organizations with <br><i>OA policies</i></span></div>';
+
+      tooltip += '</div>';
+    }
+
+    tooltip += '</div>';
+    return tooltip;
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/data-view.component.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/data-view.component.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/data-view.component.html	(revision 60863)
@@ -0,0 +1,168 @@
+<ul class="uk-subnav uk-subnav-pill dataView uk-flex uk-flex-center" data-uk-switcher="{connect:'#switcher-content-a-fade', animation: 'fade'}">
+  <li aria-expanded="true" class="uk-active">
+    <a href="#" (click)="changeView('absolute')">
+      <i class="fas fa-hashtag"></i>
+    </a>
+  </li>
+  <li aria-expanded="false" class="">
+    <a href="#" (click)="changeView('percentage')">
+      <i class="fas fa-percentage"></i>
+    </a>
+  </li>
+  <li aria-expanded="false" class="">
+    <a href="#" (click)="changeView('graph')">
+      <i class="fas fa-chart-line"></i>
+    </a>
+  </li>
+</ul>
+
+<div class="goToDetailedViewLink uk-text-right">
+  <a class="" [routerLink]="['/overview', 'europe']">Detailed View of OA in Europe<i class="fas fa-arrow-right uk-margin-small-left"></i></a>
+</div>
+
+<hr>
+
+<ul id="switcher-content-a-fade" class="uk-switcher uk-margin" >
+  <li aria-hidden="false" class="uk-active" style="animation-duration: 200ms;">
+    <div id="table-absolute" class="">
+      <div class="uk-margin-bottom">
+        <label class="uk-margin-right">Show: </label>
+        <select class="md-input" #selectContentAbsolute (change)="getContentAbsolute(selectContentAbsolute.value)" style="width: 230px; display: inline-block">
+          <option value="affiliated">affiliated</option>
+          <option value="affiliated_peer_reviewed">affiliated peer reviewed</option>
+          <option value="deposited">deposited</option>
+          <option value="deposited_peer_reviewed">deposited peer reviewed</option>
+        </select>
+        <!--<span class="md-input-bar"></span>-->
+      </div>
+      <div *ngIf="loadingAbsoluteTable" class="whiteFilm"><i class="fa fa-spinner fa-spin fa-2x loader" aria-hidden="true"></i></div>
+      <app-countries-table *ngIf="tableAbsoluteData" [isPercentage]="false" [countries]="tableAbsoluteData" [view]="'overview'"></app-countries-table>
+    </div>
+  </li>
+  <li aria-hidden="true" style="animation-duration: 200ms;" class="">
+
+    <div id="table-percentage" class="">
+      <div class="uk-margin-bottom">
+        <label class="uk-margin-right">Show: </label>
+        <select class="md-input" #selectContentPercentage (change)="getContentPercentage(selectContentPercentage.value)" style="width: 230px; display: inline-block">
+          <option value="affiliated">affiliated</option>
+          <option value="affiliated_peer_reviewed">affiliated peer reviewed</option>
+          <option value="deposited">deposited</option>
+          <option value="deposited_peer_reviewed">deposited peer reviewed</option>
+        </select>
+        <!--<span class="md-input-bar"></span>-->
+      </div>
+      <div *ngIf="loadingPercentageTable" class="whiteFilm"><i class="fa fa-spinner fa-spin fa-2x loader" aria-hidden="true"></i></div>
+      <app-countries-table *ngIf="tablePercentageData" [isPercentage]="true" [countries]="tablePercentageData" [view]="'overview'"></app-countries-table>
+    </div>
+  </li>
+  <li aria-hidden="true" style="animation-duration: 200ms;" class="">
+    <div id="graphs">
+
+      <div *ngIf="europeOverviewData" class="uk-grid uk-child-width-1-4@m uk-child-width-1-4@l uk-child-width-1-2@s uk-grid-match">
+
+        <div>
+          <div class="md-card">
+            <div class="md-card-content">
+              <svg *ngIf="europeOverviewData.publications?.percentage" viewBox="0 0 36 36" class="circular-chart publications">
+                <path class="circle-bg" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                <path class="circle" attr.stroke-dasharray="{{europeOverviewData.publications.percentage}}, 100" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                <text x="18" y="20.35" class="percentage">{{europeOverviewData.publications.percentage | number : '1.0-1'}}%</text>
+              </svg>
+              <div class="uk-margin-small-top uk-text-center">OA publications</div>
+            </div>
+          </div>
+        </div>
+
+        <div>
+          <div class="md-card">
+            <div class="md-card-content">
+              <svg *ngIf="europeOverviewData.datasets?.percentage" viewBox="0 0 36 36" class="circular-chart datasets">
+                <path class="circle-bg" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                <path class="circle" attr.stroke-dasharray="{{europeOverviewData.datasets.percentage}}, 100" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                <text x="18" y="20.35" class="percentage">{{europeOverviewData.datasets.percentage | number : '1.0-1'}}%</text>
+              </svg>
+              <div class="uk-margin-small-top uk-text-center">OA datasets</div>
+            </div>
+          </div>
+        </div>
+
+        <div>
+          <div class="md-card">
+            <div class="md-card-content">
+              <svg *ngIf="europeOverviewData.software?.percentage" viewBox="0 0 36 36" class="circular-chart software">
+                <path class="circle-bg" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                <path class="circle" attr.stroke-dasharray="{{europeOverviewData.software.percentage}}, 100" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                <text x="18" y="20.35" class="percentage">{{europeOverviewData.software.percentage | number : '1.0-1'}}%</text>
+              </svg>
+              <div class="uk-margin-small-top uk-text-center">OS software</div>
+            </div>
+          </div>
+        </div>
+
+        <div>
+          <div class="md-card">
+            <div class="md-card-content">
+              <svg *ngIf="europeOverviewData.other?.percentage" viewBox="0 0 36 36" class="circular-chart other">
+                <path class="circle-bg" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                <path class="circle" attr.stroke-dasharray="{{europeOverviewData.other.percentage}}, 100" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"></path>
+                <text x="18" y="20.35" class="percentage">{{europeOverviewData.other.percentage | number : '1.0-1'}}%</text>
+              </svg>
+              <div class="uk-margin-small-top uk-text-center">OA other research products</div>
+            </div>
+          </div>
+        </div>
+
+      </div>
+
+      <div class="uk-grid uk-grid-row-medium uk-margin-small-top uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+        <div class="uk-grid-margin">
+          <div class="md-card chartCard">
+            <div class="md-card-content">
+              <iframe *ngIf="oaNoaPublicationsTimelineURL" width="100%" height="350" [src]="oaNoaPublicationsTimelineURL"></iframe>
+            </div>
+          </div>
+        </div>
+
+        <div class="uk-grid-margin">
+          <div class="md-card chartCard">
+            <div class="md-card-content">
+              <iframe *ngIf="oaNoaDatasetsTimelineURL" width="100%" height="350" [src]="oaNoaDatasetsTimelineURL"></iframe>
+            </div>
+          </div>
+        </div>
+
+        <div class="uk-grid-margin">
+          <div class="md-card chartCard">
+            <div class="md-card-content">
+              <iframe *ngIf="oaNoaSoftwareTimelineURL" width="100%" height="350" [src]="oaNoaSoftwareTimelineURL"></iframe>
+            </div>
+          </div>
+        </div>
+
+        <div class="uk-grid-margin">
+          <div class="md-card chartCard">
+            <div class="md-card-content">
+              <iframe *ngIf="oaNoaOtherTimelineURL" width="100%" height="350" [src]="oaNoaOtherTimelineURL"></iframe>
+            </div>
+          </div>
+        </div>
+
+
+      </div>
+
+      <div class="uk-grid uk-grid-row-medium uk-margin-small-top uk-child-width-1-1@m uk-child-width-1-1@l uk-child-width-1-1@s">
+        <div class="uk-grid-margin">
+          <div class="md-card chartCard">
+            <div class="md-card-content">
+              <app-treemap-highchart *ngIf="fundersResultsData" [chartTitle]="'Research results by funder'"
+                                     [chartData]="fundersResultsData" [color]="resultColor"></app-treemap-highchart>
+            </div>
+          </div>
+        </div>
+      </div>
+
+    </div>
+  </li>
+</ul>
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/data-view.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/data-view.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/data-view.component.ts	(revision 60863)
@@ -0,0 +1,138 @@
+import { Component, OnInit } from '@angular/core';
+import { printPage } from '../../shared/reusablecomponents/print-function';
+import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
+import { DataService } from '../../services/data.service';
+import { DataHandlerService } from '../../services/data-handler.service';
+import { CountryTableData, EuropeData } from '../../domain/overview-map-data';
+import { environment } from '../../../environments/environment';
+import { TreemapHighchartsData } from '../../domain/treemap-highcharts-data';
+import { publicationPalette, datasetPalette, softwarePalette, otherResearchProductsPalette, resultColor } from '../../chart-palettes';
+
+@Component({
+  selector: 'app-data-view',
+  templateUrl: './data-view.component.html',
+})
+
+export class DataViewComponent implements OnInit {
+
+  // @Input() type: string;
+  // @Input() countries: CountryOverview[];
+
+  private chartsURL = environment.API_ENDPOINT + 'chart?json=';
+  private profileName = environment.profileName;
+
+  private publicationPalette = publicationPalette;
+  private datasetPalette = datasetPalette;
+  private softwarePalette = softwarePalette;
+  private otherResearchProductsPalette = otherResearchProductsPalette;
+  private resultColor = resultColor;
+
+  activeView: string = 'absolute';
+  contentAbsoluteSelection: string = 'affiliated';
+  contentPercentageSelection: string = 'affiliated';
+
+  tableAbsoluteData: CountryTableData[];
+  tablePercentageData: CountryTableData[];
+
+  loadingAbsoluteTable: boolean = true;
+  loadingPercentageTable: boolean = true;
+
+  europeOverviewData: EuropeData;
+
+  oaNoaPublicationsTimelineURL: SafeResourceUrl;
+  oaNoaDatasetsTimelineURL: SafeResourceUrl;
+  oaNoaSoftwareTimelineURL: SafeResourceUrl;
+  oaNoaOtherTimelineURL: SafeResourceUrl;
+
+  fundersResultsData: TreemapHighchartsData[];
+
+  constructor(private sanitizer: DomSanitizer,
+              private dataService: DataService,
+              private dataHandlerService: DataHandlerService) {}
+
+  ngOnInit(): void {
+    this.getAbsoluteData();
+    this.getPercentageData();
+    this.getEuropeOverviewData();
+    this.getFundersResults();
+  }
+
+  getAbsoluteData() {
+    this.loadingAbsoluteTable = true;
+    this.dataService.getOverviewTableAbsoluteData(this.contentAbsoluteSelection).subscribe(
+      rawData => {
+        this.tableAbsoluteData = this.dataHandlerService.convertRawDataToAbsoluteTableData(rawData);
+        this.loadingAbsoluteTable = false;
+      }, error => {
+        console.log(error);
+        this.loadingAbsoluteTable = false;
+      }
+    );
+  }
+
+  getPercentageData() {
+    this.loadingPercentageTable = true;
+    this.dataService.getOverviewTablePercentageData(this.contentPercentageSelection).subscribe(
+      rawData => {
+        this.tablePercentageData = this.dataHandlerService.convertRawDataToPercentageTableData(rawData);
+        this.loadingPercentageTable = false;
+      }, error => {
+        console.log(error);
+        this.loadingPercentageTable = false;
+      }
+    );
+  }
+
+  getEuropeOverviewData() {
+    this.dataService.getEuropeOAPercentages().subscribe(
+      rawData => {
+        this.europeOverviewData = this.dataHandlerService.convertRawDataToEuropeOverviewData(rawData);
+      }, error => {
+        console.log(error);
+      }
+    );
+  }
+
+  getFundersResults() {
+    this.dataService.getFundersResults().subscribe(
+      rawData => {
+        this.fundersResultsData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+      }, error => {
+        console.log(error);
+      }
+    );
+  }
+
+  getContentAbsolute(contentSelection: string): void {
+    this.contentAbsoluteSelection = contentSelection;
+    this.getAbsoluteData();
+  }
+
+  getContentPercentage(contentSelection: string): void {
+    this.contentPercentageSelection = contentSelection;
+    this.getPercentageData();
+  }
+
+  changeView(view: string) {
+    this.activeView = view;
+    if (view === 'graph') {
+
+      if (!this.oaNoaPublicationsTimelineURL) {
+        this.oaNoaPublicationsTimelineURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA","type":"column","query":{"name":"new.oso.result_timeline.results.oa","parameters":["publication"],"profile":"${this.profileName}"}},{"name":"Non-OA","type":"column","query":{"name":"new.oso.result_timeline.results.non_oa","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Publications","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false},"stacking":"normal"}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      }
+      if (!this.oaNoaDatasetsTimelineURL) {
+        this.oaNoaDatasetsTimelineURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA","type":"column","query":{"name":"new.oso.result_timeline.results.oa","parameters":["dataset"],"profile":"${this.profileName}"}},{"name":"Non-OA","type":"column","query":{"name":"new.oso.result_timeline.results.non_oa","parameters":["dataset"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Datasets","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false},"stacking":"normal"}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+      }
+      if (!this.oaNoaSoftwareTimelineURL) {
+        this.oaNoaSoftwareTimelineURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA","type":"column","query":{"name":"new.oso.result_timeline.results.oa","parameters":["software"],"profile":"${this.profileName}"}},{"name":"Non-OA","type":"column","query":{"name":"new.oso.result_timeline.results.non_oa","parameters":["software"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Software","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false},"stacking":"normal"}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+      }
+      if (!this.oaNoaOtherTimelineURL) {
+        this.oaNoaOtherTimelineURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA Other Research Products","type":"column","query":{"name":"new.oso.result_timeline.results.oa","parameters":["other"],"profile":"${this.profileName}"}},{"name":"Non-OA Other Research Products","type":"column","query":{"name":"new.oso.result_timeline.results.non_oa","parameters":["other"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Other Research Products","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false},"stacking":"normal"}},"legend":{"enabled":true,"align":"center","verticalAlign":"bottom","layout":"horizontal"},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+      }
+    }
+  }
+
+  printOverviewData(sectionID: string) {
+    printPage(sectionID);
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/europe-map-overview.component.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/europe-map-overview.component.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/europe-map-overview.component.html	(revision 60863)
@@ -0,0 +1,54 @@
+<div class="{{isEmbedRoute()? 'mapContainerEmbed' : 'mapContainer'}}">
+  <!--Map-->
+  <ng-container>
+    <div *ngIf="overviewMapData" echarts [options]="options" class="demo-chart" (chartClick)="onChartClick($event, 'chartClick')"></div>
+    <div *ngIf="!overviewMapData" class="loading-big">
+      <div uk-spinner="ratio: 2" class="uk-overlay uk-position-center uk-dark" style="margin: auto"></div>
+      <!--<div class="loader-big" style="text-align: center; padding-top: 170px; color: rgb(47, 64, 80); font-weight: bold;">-->
+      <!--{{ loadingMessage }}-->
+      <!--</div>-->
+      <div class="transparentFilm"></div>
+    </div>
+  </ng-container>
+
+
+  <!--Map Controls-->
+  <div class="uk-width-large-1-1 uk-container-center uk-text-center uk-margin-top mapControls">
+    <ul class="uk-nav uk-nav-side uk-nav-horizontal uk-nav-parent-icon" data-uk-nav="{multiple:true}">
+      <li>
+        <a (click)="changeView('publications')">
+          <span class="uk-nav-label publicationMapControlLabel"></span>
+          <span class="text {{activeView=='publications' ? 'active' : ''}}">OA publications</span>
+        </a>
+      </li>
+      <li>
+        <a (click)="changeView('datasets')">
+          <span class="uk-nav-label datasetMapControlLabel"></span>
+          <span class="text {{activeView=='datasets' ? 'active' : ''}}">OA datasets</span>
+        </a>
+      </li>
+      <li>
+        <a (click)="changeView('repositories')">
+          <span class="uk-nav-label repositoryMapControlLabel"></span>
+          <span class="text {{activeView=='repositories' ? 'active' : ''}}">repositories</span>
+        </a>
+      </li>
+      <li>
+        <a (click)="changeView('journals')">
+          <span class="uk-nav-label journalMapControlLabel"></span>
+          <span class="text {{activeView=='journals' ? 'active' : ''}}">journals</span>
+        </a>
+      </li>
+      <!--<li>-->
+        <!--<a (click)="changeView('policies')">-->
+          <!--<span class="uk-nav-label" style="background-color: #D4ECD6 !important; border: 1px solid #639C66;"></span>-->
+          <!--<span class="text {{activeView=='policies' ? 'active' : ''}}">OA policies</span>-->
+        <!--</a>-->
+      <!--</li>-->
+    </ul>
+    <!--<h2 class="heading_b">-->
+    <!--Our Team-->
+    <!--<span class="sub-heading">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</span>-->
+    <!--</h2>-->
+  </div>
+</div>
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cy-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cy-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cy-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cy-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cy-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/home.component.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/home.component.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/home.component.html	(revision 60863)
@@ -0,0 +1,500 @@
+<!--LAPTOP & PAD LANDSCAPE-->
+<div class="uk-visible@m">
+  <!--MAP AND OVERVIEW NUMBERS SECTION-->
+  <section class="section greySection" id="sect-overview">
+    <div class="uk-container uk-container-expand uk-container-center uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up uk-margin-bottom" data-uk-scrollspy="{cls:'uk-animation-scale-up uk-invisible',delay:300,topoffset:-100}">
+
+      <div class="uk-grid uk-grid-small uk-margin-bottom uk-grid-match" uk-height-viewport="offset-bottom: 25">
+
+        <div class="uk-width-4-5">
+
+          <!--Map Container-->
+          <app-europe-map-overview (emitSelectedCountry)="countrySelected($event)"></app-europe-map-overview>
+          <!--<app-map-overview *ngIf="overviewData?.countries" (emitSelectedCountry)="selectedCountry($event)"></app-map-overview>-->
+
+
+
+        </div>
+
+        <div class="uk-width-1-5">
+          <div class="md-card infoBox">
+            <ng-container *ngIf="!selectedCountry">
+              <div class="md-card-toolbar">
+                <h3 class="uk-text-center">OPENAIRE MONITOR OBSERVATORY</h3>
+              </div>
+              <div *ngIf="!selectedCountry" class="md-card-content">
+                <div>An OpenAIRE service to:</div>
+                <ul>
+                  <li>
+                    Better understand the European open research landscape
+                  </li>
+                  <li>
+                    Track trends for open access to publications, data, software
+                  </li>
+                  <li>
+                    Reveal hidden potential on existing resources
+                  </li>
+                  <li>
+                    View open collaboration patterns
+                  </li>
+                </ul>
+                <div class="uk-text-center uk-margin-medium-top uk-margin-medium-bottom">
+                  <button class="md-btn md-btn-primary">Learn More</button>
+                </div>
+
+              </div>
+              <div></div>
+            </ng-container>
+
+            <ng-container *ngIf="selectedCountry">
+              <div class="md-card-toolbar">
+                <h3 class="uk-text-center uk-margin-small-top">
+                  <a class="backToOriginalInfoBox uk-float-left" (click)="deselectCountry()"><i class="fas fa-angle-left"></i></a>
+                  <img src="../../../assets/img/flags/{{selectedCountry.code | lowercase}}-flag-round.png" class="small-flag-image uk-margin-small-right" width="24" style="margin-top: -3px">
+                  <span>{{selectedCountry.name | uppercase}}</span>
+                </h3>
+              </div>
+              <div *ngIf="!selectedCountryData" class="whiteFilm"><i class="fa fa-spinner fa-spin fa-5x loader" aria-hidden="true"></i></div>
+              <!--<div *ngIf="!selectedCountryData" class="loading-big">-->
+              <!--<div uk-spinner="ratio: 2" class="uk-overlay uk-position-center uk-dark" style="margin: auto"></div>-->
+              <!--&lt;!&ndash;<div class="loader-big" style="text-align: center; padding-top: 170px; color: rgb(47, 64, 80); font-weight: bold;">&ndash;&gt;-->
+              <!--&lt;!&ndash;{{ loadingMessage }}&ndash;&gt;-->
+              <!--&lt;!&ndash;</div>&ndash;&gt;-->
+              <!--<div class="transparentFilm"></div>-->
+              <!--</div>-->
+              <div *ngIf="selectedCountryData" class="md-card-content">
+                <div class="numbers">
+                  <div class="uk-margin-small-top">
+
+                    <div class="indicator">
+                      <span class="number publications" *ngIf="selectedCountryData.publicationsAffiliated!=null">{{selectedCountryData.publicationsAffiliated | number}}</span>
+                      <span class="number publications" *ngIf="selectedCountryData.publicationsAffiliated===null">--</span>
+                      <span><i>OA publications</i> affiliated to an organization in the country</span>
+                    </div>
+
+                    <div class="indicator uk-margin-small-top">
+                      <span class="number publications" *ngIf="selectedCountryData.publicationsDeposited!=null">{{selectedCountryData.publicationsDeposited | number}}</span>
+                      <span class="number publications" *ngIf="selectedCountryData.publicationsDeposited===null">--</span>
+                      <span><i>OA publications</i> from institutional repositories</span>
+                    </div>
+
+                    <hr class="greyBoldDivider uk-margin-top uk-margin-bottom">
+
+                    <div class="indicator">
+                      <span class="number datasets" *ngIf="selectedCountryData.datasetsAffiliated!=null">{{selectedCountryData.datasetsAffiliated | number}}</span>
+                      <span class="number datasets" *ngIf="selectedCountryData.datasetsAffiliated===null">--</span>
+                      <span><i>OA datasets</i> affiliated to an organization in the country</span>
+                    </div>
+
+                    <div class="indicator uk-margin-small-top">
+                      <span class="number datasets" *ngIf="selectedCountryData.datasetsDeposited!=null">{{selectedCountryData.datasetsDeposited | number}}</span>
+                      <span class="number datasets" *ngIf="selectedCountryData.datasetsDeposited===null">--</span>
+                      <span><i>OA datasets</i> from institutional repositories</span>
+                    </div>
+
+                    <hr class="greyBoldDivider uk-margin-top uk-margin-bottom">
+
+                    <div class="indicator">
+                      <span class="number repositories" *ngIf="selectedCountryData.repositories!=null">{{selectedCountryData.repositories | number}}</span>
+                      <span class="number repositories" *ngIf="selectedCountryData.repositories===null">--</span>
+                      <span><i>repositories</i> from openDOAR & re3data</span>
+                    </div>
+
+                    <hr class="greyBoldDivider uk-margin-top uk-margin-bottom">
+
+                    <div class="indicator">
+                      <span class="number journals" *ngIf="selectedCountryData.journals!=null">{{selectedCountryData.journals | number}}</span>
+                      <span class="number journals" *ngIf="selectedCountryData.journals===null">--</span>
+                      <span><i>journals</i> from DOAJ</span>
+                    </div>
+
+                    <!--<hr class="greyBoldDivider uk-margin-top uk-margin-bottom">-->
+
+                    <!--<div class="indicator">-->
+                      <!--<span class="number policies" *ngIf="selectedCountryData.policies!=null">{{selectedCountryData.policies | number}}</span>-->
+                      <!--<span class="number policies" *ngIf="selectedCountryData.policies===null">&#45;&#45;</span>-->
+                      <!--<span>organisations with <i>OA policies</i></span>-->
+                    <!--</div>-->
+
+                  </div>
+
+                </div>
+
+                <div class="uk-text-center uk-margin-medium-top">
+                  <!--<button [routerLink]="['/countryDashboard/' + selectedCountry.code]" class="md-btn md-btn-primary">View Details</button>-->
+                  <button [routerLink]="['/countryDashboard' , selectedCountry.code]" class="md-btn md-btn-primary">View Details</button>
+                </div>
+
+              </div>
+              <div></div>
+            </ng-container>
+          </div>
+        </div>
+
+
+        <!--<div class="uk-width-large-3-5 uk-container-center uk-text-center">-->
+        <!--<h2 class="heading_b">-->
+        <!--Our Team-->
+        <!--<span class="sub-heading">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</span>-->
+        <!--</h2>-->
+        <!--</div>-->
+      </div>
+
+    </div>
+    <div class="uk-container uk-container-expand uk-container-center uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up" data-uk-scrollspy="{cls:'uk-animation-scale-up uk-invisible',delay:300,topoffset:-100}">
+
+      <div class="">
+        <!--Overview cards-->
+        <div *ngIf="europeOverviewData" class="uk-width-1-1 indicatorCards">
+          <div class="uk-grid uk-grid-small uk-child-width-1-2@s uk-child-width-1-3@m uk-child-width-1-4@l uk-margin-top uk-grid-match" data-uk-grid-margin="">
+            <div class="uk-row-first">
+              <div class="md-card">
+                <div class="md-card-content">
+                  <div class="uk-margin-top">
+                    <div class="uk-float-right uk-margin-small-right">
+                      <img src="../../../assets/img/icons/publications-icon.svg" width="40" height="40">
+                    </div>
+                    <h3 class="uk-margin-remove">
+                      <span *ngIf="europeOverviewData.publications?.oa" class="number">{{europeOverviewData.publications.oa | number}}</span>
+                      <span *ngIf="!europeOverviewData.publications || !europeOverviewData.publications.oa" class="number">--</span>
+                    </h3>
+                  </div>
+                  <div class="uk-margin-top">
+                    <!--<span class="uk-text-muted uk-text-small">Number of OA publications</span>-->
+                    <span class=""><i>OA publications</i></span>
+                  </div>
+                  <div *ngIf="europeOverviewData.publications?.percentage" class="uk-margin-top">
+                    <span class="number">{{europeOverviewData.publications.percentage | number :'1.0-1'}}%</span> OA
+                    <div class="progress uk-margin-small-top">
+                      <div [ngStyle]="{'width': europeOverviewData.publications.percentage+'%'}" class="progress-bar progress-bar-publications animate-progress-bar"></div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <div class="">
+              <div class="md-card">
+                <div class="md-card-content">
+                  <div class="uk-margin-top">
+                    <div class="uk-float-right uk-margin-small-right">
+                      <img src="../../../assets/img/icons/datasets-icon.svg" width="33" height="40">
+                    </div>
+                    <h3 class="uk-margin-remove">
+                      <span *ngIf="europeOverviewData.datasets?.oa" class="number">{{europeOverviewData.datasets.oa | number}}</span>
+                      <span *ngIf="!europeOverviewData.datasets || !europeOverviewData.datasets.oa" class="number">--</span>
+                    </h3>
+                  </div>
+                  <div class="uk-margin-top">
+                    <!--<span class="uk-text-muted uk-text-small">Number of OA publications</span>-->
+                    <span class=""><i>OA datasets</i></span>
+                  </div>
+                  <div *ngIf="europeOverviewData.datasets?.percentage" class="uk-margin-top">
+                    <span class="number">{{europeOverviewData.datasets.percentage | number :'1.0-1'}}%</span> OA
+                    <div class="progress uk-margin-small-top">
+                      <div [ngStyle]="{'width': europeOverviewData.datasets.percentage+'%'}" class="progress-bar progress-bar-datasets animate-progress-bar"></div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <div class="">
+              <div class="md-card">
+                <div class="md-card-content">
+                  <div class="uk-margin-top">
+                    <div class="uk-float-right uk-margin-small-right">
+                      <img src="../../../assets/img/icons/repositories-icon.svg" width="43" height="40">
+                    </div>
+                    <h3 class="uk-margin-remove">
+                      <span *ngIf="europeOverviewData.repositories?.total" class="number">{{europeOverviewData.repositories.total | number}}</span>
+                      <span *ngIf="!europeOverviewData.repositories || !europeOverviewData.repositories.total" class="number">--</span>
+                    </h3>
+                  </div>
+                  <div class="uk-margin-top">
+                    <span class=""><i>repositories</i> from OpenDOAR and Re3data</span>
+                  </div>
+                  <div *ngIf="europeOverviewData.repositories?.percentage" class="uk-margin-top">
+                    <span class="number">{{europeOverviewData.repositories.percentage | number : '1.0-1'}}%</span> Validated
+                    <div class="progress uk-margin-small-top">
+                      <div [ngStyle]="{'width': europeOverviewData.repositories.percentage+'%'}" class="progress-bar progress-bar-repositories animate-progress-bar"></div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <div class="">
+              <div class="md-card">
+                <div class="md-card-content">
+                  <div class="uk-margin-top">
+                    <div class="uk-float-right uk-margin-small-right">
+                      <img src="../../../assets/img/icons/journals-icon.svg" width="43" height="40">
+                    </div>
+                    <h3 class="uk-margin-remove">
+                      <span *ngIf="europeOverviewData.journals?.total" class="number">{{europeOverviewData.journals.total | number}}</span>
+                      <span *ngIf="!europeOverviewData.journals || !europeOverviewData.journals.total" class="number">--</span>
+                    </h3>
+                  </div>
+                  <div class="uk-margin-top">
+                    <span class=""><i>OA journals</i> from DOAJ</span>
+                  </div>
+                  <div *ngIf="europeOverviewData.journals?.percentage" class="uk-margin-top">
+                    <span class="number">{{europeOverviewData.journals.percentage | number : '1.0-1'}}%</span> Validated
+                    <div class="progress uk-margin-small-top">
+                      <div [ngStyle]="{'width': europeOverviewData.journals.percentage+'%'}" class="progress-bar progress-bar-journals animate-progress-bar"></div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <!--<div class="">-->
+              <!--<div class="md-card">-->
+                <!--<div class="md-card-content">-->
+                  <!--<div class="uk-margin-top">-->
+                    <!--<div class="uk-float-right uk-margin-small-right">-->
+                      <!--<img src="../../../assets/img/icons/policies-icon.svg" width="36" height="40">-->
+                    <!--</div>-->
+                    <!--<h3 class="uk-margin-remove">-->
+                      <!--<span *ngIf="europeOverviewData.policies?.oa" class="number">{{europeOverviewData.policies.oa | number}}</span>-->
+                      <!--<span *ngIf="!europeOverviewData.policies || !europeOverviewData.policies.oa" class="number">&#45;&#45;</span>-->
+                    <!--</h3>-->
+                  <!--</div>-->
+                  <!--<div class="uk-margin-top">-->
+                    <!--&lt;!&ndash;<span class="uk-text-muted uk-text-small">Number of OA publications</span>&ndash;&gt;-->
+                    <!--<span class="">organizations with <i>OA policies</i></span>-->
+                  <!--</div>-->
+                  <!--&lt;!&ndash;<div *ngIf="overviewData.overview.policies?.percentage" class="uk-margin-top">&ndash;&gt;-->
+                  <!--&lt;!&ndash;<span class="number">{{overviewData.overview.policies.percentage | number}}%</span> are OA&ndash;&gt;-->
+                  <!--&lt;!&ndash;</div>&ndash;&gt;-->
+                <!--</div>-->
+              <!--</div>-->
+            <!--</div>-->
+          </div>
+        </div>
+      </div>
+
+    </div>
+  </section>
+
+
+  <!--OA IN EUROPE SECTION-->
+  <section class="section greySection" id="sect-tabs">
+    <div class="uk-container uk-container-expand uk-container-center uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up" data-uk-scrollspy="{cls:'uk-animation-scale-up uk-invisible',delay:300,topoffset:-100}">
+
+      <h3>OA in Europe</h3>
+
+      <div class="dataContainer">
+        <div class="uk-margin tabContent">
+          <app-data-view></app-data-view>
+          <!--<app-countries-table [isPercentage]="false" [type]="'overview'" [countries]="overviewData.countries"></app-countries-table>-->
+        </div>
+      </div>
+
+    </div>
+  </section>
+</div>
+
+
+<!--MOBILE & PAD PORTRAIT-->
+<div class="uk-hidden@m">
+
+  <section class="section">
+    <div class="uk-container uk-container-expand uk-container-center ">
+
+      <!--<div class="uk-margin-top">-->
+        <!--<form class="uk-search uk-search-default searchForCountry">-->
+          <!--<span uk-search-icon></span>-->
+          <!--<input class="uk-search-input" type="search" placeholder="Search for a country...">-->
+        <!--</form>-->
+      <!--</div>-->
+
+      <div class="uk-margin-top">
+
+        <div class="uk-autocomplete uk-form uk-search uk-search-default searchForCountry">
+          <span id="search-icon" uk-search-icon></span>
+          <ng-autocomplete
+            [data]="countriesCollection"
+            [searchKeyword]="keyword"
+            placeHolder="Search for a country..."
+            (selected)='selectCountryFromAutocompleteEvent($event)'
+            (inputChanged)='onChangeSearch($event)'
+            (inputFocused)='onFocused($event)'
+            historyIdentifier="countriesCollection"
+            [itemTemplate]="itemTemplate"
+            [notFoundTemplate]="notFoundTemplate">
+          </ng-autocomplete>
+
+          <ng-template #itemTemplate let-item>
+            <a [innerHTML]="item.name"></a>
+          </ng-template>
+
+          <ng-template #notFoundTemplate let-notFound>
+            <div [innerHTML]="notFound"></div>
+          </ng-template>
+        </div>
+
+
+
+        <!--<div class="uk-autocomplete uk-form uk-search uk-search-default searchForCountry" data-uk-autocomplete="{source:'https://getuikit.com/v2/tests/components/_autocomplete.json'}">-->
+          <!--<span uk-search-icon></span>-->
+          <!--<input class="uk-search-input" type="search" placeholder="Search for a country...">-->
+          <!--&lt;!&ndash;<input type="text">&ndash;&gt;-->
+        <!--</div>-->
+
+      </div>
+
+
+    </div>
+  </section>
+
+  <section class="section">
+    <div class="uk-container uk-container-expand uk-container-center ">
+
+      <h3>OA in Europe</h3>
+
+      <div *ngIf="europeOverviewData" class="md-card chartCard overviewMobile">
+        <div class="md-card-content">
+
+
+          <div class="uk-grid uk-margin-top">
+            <div class="uk-width-1-5">
+              <img src="../../../assets/img/icons/publications-icon.svg" width="30" height="30">
+            </div>
+            <div class="uk-width-2-5">
+              <div *ngIf="europeOverviewData.publications?.oa" class="number big">{{europeOverviewData.publications.oa | number}}</div>
+              <div *ngIf="!europeOverviewData.publications || !europeOverviewData.publications.oa" class="number big">--</div>
+              <div class="uk-margin-small-top">OA PUBLICATIONS</div>
+            </div>
+            <div *ngIf="europeOverviewData.publications?.percentage" class="uk-width-2-5">
+              <div class="progress">
+                <div [ngStyle]="{'width': europeOverviewData.publications.percentage+'%'}" class="progress-bar progress-bar-publications animate-progress-bar"></div>
+              </div>
+              <div class="uk-margin-small-top">
+                <span class="number">{{europeOverviewData.publications.percentage | number :'1.0-1'}}%</span> OA
+              </div>
+            </div>
+          </div>
+
+          <div class="uk-grid uk-margin-medium-top">
+            <div class="uk-width-1-5">
+              <img src="../../../assets/img/icons/datasets-icon.svg" width="30" height="30">
+            </div>
+            <div class="uk-width-2-5">
+              <div *ngIf="europeOverviewData.datasets?.oa" class="number big">{{europeOverviewData.datasets.oa | number}}</div>
+              <div *ngIf="!europeOverviewData.datasets || !europeOverviewData.datasets.oa" class="number big">--</div>
+              <div class="uk-margin-small-top">OA DATASETS</div>
+            </div>
+            <div *ngIf="europeOverviewData.datasets?.percentage" class="uk-width-2-5">
+              <div class="progress">
+                <div [ngStyle]="{'width': europeOverviewData.datasets.percentage+'%'}" class="progress-bar progress-bar-datasets animate-progress-bar"></div>
+              </div>
+              <div class="uk-margin-small-top">
+                <span class="number">{{europeOverviewData.datasets.percentage | number :'1.0-1'}}%</span> OA
+              </div>
+            </div>
+          </div>
+
+          <div class="uk-grid uk-margin-medium-top">
+            <div class="uk-width-1-5">
+              <img src="../../../assets/img/icons/repositories-icon.svg" width="30" height="30">
+            </div>
+            <div class="uk-width-2-5">
+              <div *ngIf="europeOverviewData.repositories?.total" class="number big">{{europeOverviewData.repositories.total | number}}</div>
+              <div *ngIf="!europeOverviewData.repositories || !europeOverviewData.repositories.total" class="number big">--</div>
+              <div class="uk-margin-small-top">REPOSITORIES FROM OPENDOAR & RE3DATA</div>
+            </div>
+            <div *ngIf="europeOverviewData.repositories?.percentage" class="uk-width-2-5">
+              <div class="progress">
+                <div [ngStyle]="{'width': europeOverviewData.repositories.percentage+'%'}" class="progress-bar progress-bar-repositories animate-progress-bar"></div>
+              </div>
+              <div class="uk-margin-small-top">
+                <span class="number">{{europeOverviewData.repositories.percentage | number :'1.0-1'}}%</span> VALIDATED
+              </div>
+            </div>
+          </div>
+
+          <div class="uk-grid uk-margin-medium-top">
+            <div class="uk-width-1-5">
+              <img src="../../../assets/img/icons/journals-icon.svg" width="30" height="30">
+            </div>
+            <div class="uk-width-2-5">
+              <div *ngIf="europeOverviewData.journals?.total" class="number big">{{europeOverviewData.journals.total | number}}</div>
+              <div *ngIf="!europeOverviewData.journals || !europeOverviewData.journals.total" class="number big">--</div>
+              <div class="uk-margin-small-top">JOURNALS FROM DOAJ</div>
+            </div>
+            <div *ngIf="europeOverviewData.journals?.percentage" class="uk-width-2-5">
+              <div class="progress">
+                <div [ngStyle]="{'width': europeOverviewData.journals.percentage+'%'}" class="progress-bar progress-bar-journals animate-progress-bar"></div>
+              </div>
+              <div class="uk-margin-small-top">
+                <span class="number">{{europeOverviewData.journals.percentage | number : '1.0-1'}}%</span> Validated
+              </div>
+            </div>
+          </div>
+
+          <!--<div class="uk-grid uk-margin-medium-top uk-margin-bottom">-->
+            <!--<div class="uk-width-1-5">-->
+              <!--<img src="../../../assets/img/icons/policies-icon.svg" width="30" height="30">-->
+            <!--</div>-->
+            <!--<div class="uk-width-2-5">-->
+              <!--<div *ngIf="europeOverviewData.policies?.oa" class="number big">{{europeOverviewData.policies.oa | number}}</div>-->
+              <!--<div *ngIf="!europeOverviewData.policies || !europeOverviewData.policies.oa" class="number big">&#45;&#45;</div>-->
+              <!--<div class="uk-margin-small-top">OA POLICIES</div>-->
+            <!--</div>-->
+            <!--<div class="uk-width-2-5">-->
+
+            <!--</div>-->
+          <!--</div>-->
+
+        </div>
+      </div>
+
+    </div>
+  </section>
+
+  <section class="section">
+    <div class="uk-container uk-container-expand uk-container-center ">
+
+      <h3>Leading Open Science</h3>
+
+      <div *ngIf="leadingOpenScienceData" class="uk-grid uk-grid-small uk-grid-match uk-child-width-1-2">
+
+        <div *ngFor="let data of leadingOpenScienceData" class="uk-margin-small-top">
+          <div class="md-card leadingOpenScienceCard">
+            <a [routerLink]="['/countryDashboard', data.code]" class="el-link uk-position-cover uk-margin-remove-adjacent"></a>
+            <div class="md-card-content">
+              <div class="">
+                <!--<div class="uk-flex">-->
+                <img src="../../../assets/img/flags/{{data.code | lowercase}}-flag.svg" width="15">
+                <span class="countryName uk-margin-small-left">{{data.name}}</span>
+              </div>
+              <div class="uk-margin-top">
+                <!--<span class="number publications">18,165</span>-->
+                <div class="number publications" *ngIf="data.publicationsAffiliated!=null">{{data.publicationsAffiliated | number}}</div>
+                <div class="number publications" *ngIf="data.publicationsAffiliated===null">--</div>
+                <div class="uk-margin-small-top"><i>OA publications</i> affiliated to an organization in the country</div>
+              </div>
+              <div class="uk-margin-top">
+                <!--<span class="number publications">18,165</span>-->
+                <div class="number publications" *ngIf="data.publicationsDeposited!=null">{{data.publicationsDeposited | number}}</div>
+                <div class="number publications" *ngIf="data.publicationsDeposited===null">--</div>
+                <div class="uk-margin-small-top"><i>OA publications</i> from institutional repositories</div>
+              </div>
+            </div>
+          </div>
+        </div>
+
+      </div>
+
+    </div>
+  </section>
+
+  <section class="section">
+    <div class="uk-container uk-container-expand uk-container-center ">
+      <div class="goToDetailedViewLink">
+        <a class="" [routerLink]="['/overview' , 'europe']">Detailed View of OA in Europe<i class="fas fa-arrow-right uk-margin-small-left"></i></a>
+      </div>
+    </div>
+  </section>
+</div>
+
+
+
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/countries-table.component.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/countries-table.component.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/countries-table.component.html	(revision 60863)
@@ -0,0 +1,188 @@
+<ng-container *ngIf="view==='overview'">
+  <table *ngIf="countries" class="uk-table uk-table-hover uk-table-divider uk-table-small">
+    <thead>
+    <tr>
+      <th width="12,5%" class="" (click)="sortBy('country')">
+        <span *ngIf="!isSortedBy || isSortedBy!='country'" class="uk-margin-small-right"><img src="../../../assets/img/icons/sort.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='country' && isDescending"><img src="../../../assets/img/icons/sort-descending.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='country' && !isDescending"><img src="../../../assets/img/icons/sort-ascending.svg"></span>
+        Country
+      </th>
+      <th width="12,5%" (click)="sortBy('repositories')">
+        <span *ngIf="!isSortedBy || isSortedBy!='repositories'" class="uk-margin-small-right"><img src="../../../assets/img/icons/sort.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='repositories' && isDescending"><img src="../../../assets/img/icons/sort-descending.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='repositories' && !isDescending"><img src="../../../assets/img/icons/sort-ascending.svg"></span>
+        OA repositories
+      </th>
+      <th width="12,5%" (click)="sortBy('journals')">
+        <span *ngIf="!isSortedBy || isSortedBy!='journals'" class="uk-margin-small-right"><img src="../../../assets/img/icons/sort.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='journals' && isDescending"><img src="../../../assets/img/icons/sort-descending.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='journals' && !isDescending"><img src="../../../assets/img/icons/sort-ascending.svg"></span>
+        OA journals
+      </th>
+      <!--<th *ngIf="type=='overview'" class="uk-text-center" width="12,5%" (click)="sortBy('policies')">-->
+      <!--<span *ngIf="!isSortedBy || isSortedBy!='policies'" class="uk-margin-small-right"><img src="../../../assets/img/icons/sort.svg"></span>-->
+      <!--<span *ngIf="isSortedBy && isSortedBy=='policies' && isDescending"><img src="../../../assets/img/icons/sort-descending.svg"></span>-->
+      <!--<span *ngIf="isSortedBy && isSortedBy=='policies' && !isDescending"><img src="../../../assets/img/icons/sort-ascending.svg"></span>-->
+      <!--OA policies-->
+      <!--</th>-->
+      <th class="uk-text-center" width="12,5%" (click)="sortBy('publications')">
+        <span *ngIf="!isSortedBy || isSortedBy!='publications'" class="uk-margin-small-right"><img src="../../../assets/img/icons/sort.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='publications' && isDescending"><img src="../../../assets/img/icons/sort-descending.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='publications' && !isDescending"><img src="../../../assets/img/icons/sort-ascending.svg"></span>
+        OA publications
+      </th>
+      <th class="uk-text-center" width="12,5%" (click)="sortBy('datasets')">
+        <span *ngIf="!isSortedBy || isSortedBy!='datasets'" class="uk-margin-small-right"><img src="../../../assets/img/icons/sort.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='datasets' && isDescending"><img src="../../../assets/img/icons/sort-descending.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='datasets' && !isDescending"><img src="../../../assets/img/icons/sort-ascending.svg"></span>
+        OA data
+      </th>
+      <th class="uk-text-center" width="12,5%" (click)="sortBy('software')">
+        <span *ngIf="!isSortedBy || isSortedBy!='software'" class="uk-margin-small-right"><img src="../../../assets/img/icons/sort.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='software' && isDescending"><img src="../../../assets/img/icons/sort-descending.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='software' && !isDescending"><img src="../../../assets/img/icons/sort-ascending.svg"></span>
+        OA software
+      </th>
+      <th class="uk-text-center" width="12,5%" (click)="sortBy('other')">
+        <span *ngIf="!isSortedBy || isSortedBy!='other'" class="uk-margin-small-right"><img src="../../../assets/img/icons/sort.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='other' && isDescending"><img src="../../../assets/img/icons/sort-descending.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='other' && !isDescending"><img src="../../../assets/img/icons/sort-ascending.svg"></span>
+        OA other
+      </th>
+    </tr>
+    </thead>
+    <tbody>
+    <tr *ngFor="let countryOverview of countries">
+      <td class=""><a [routerLink]="['/countryDashboard', countryOverview.code]">{{countryOverview.name}}</a></td>
+      <td class="uk-text-center">
+        <ng-container *ngIf="countryOverview.repositories===null">--</ng-container>
+        <ng-container *ngIf="countryOverview.repositories!=null">
+          <ng-container *ngIf="isPercentage">{{countryOverview.repositories | number :'1.0-1'}}%</ng-container>
+          <ng-container *ngIf="!isPercentage">{{countryOverview.repositories | number}}</ng-container>
+        </ng-container>
+      </td>
+      <td class="uk-text-center">
+        <ng-container *ngIf="countryOverview.journals===null">--</ng-container>
+        <ng-container *ngIf="countryOverview.journals!=null">
+          <ng-container *ngIf="isPercentage">{{countryOverview.journals | number :'1.0-1'}}%</ng-container>
+          <ng-container *ngIf="!isPercentage">{{countryOverview.journals | number}}</ng-container>
+        </ng-container>
+      </td>
+      <!--<td class="uk-text-center">-->
+      <!--<ng-container *ngIf="countryOverview.policies?.oa !=null">{{countryOverview.policies.oa | number}}</ng-container>-->
+      <!--<ng-container *ngIf="countryOverview.policies===null || countryOverview.policies.oa===null">&#45;&#45;</ng-container>-->
+      <!--</td>-->
+      <td class="uk-text-center">
+        <ng-container *ngIf="countryOverview.publications===null">--</ng-container>
+        <ng-container *ngIf="countryOverview.publications!=null">
+          <ng-container *ngIf="isPercentage">{{countryOverview.publications | number :'1.0-1'}}%</ng-container>
+          <ng-container *ngIf="!isPercentage">{{countryOverview.publications | number}}</ng-container>
+          <!--<span style="display: inline-block; float: right; padding-right: 10px;">-->
+          <!--<span style="float:left; padding-right: 5px;">{{countryOverview.publications.percentage | number}}% </span>-->
+          <!--<ng-container *ngIf="countryOverview.publications?.percentage !=null">-->
+          <!--<div class="progress">-->
+          <!--<div [ngStyle]="{'width': countryOverview.publications.percentage+'%'}" class="progress-bar progress-bar-publications animate-progress-bar"></div>-->
+          <!--</div>-->
+          <!--</ng-container>-->
+          <!--</span>-->
+        </ng-container>
+      </td>
+      <td class="uk-text-center">
+        <ng-container *ngIf="countryOverview.datasets===null">--</ng-container>
+        <ng-container *ngIf="countryOverview.datasets!=null">
+          <ng-container *ngIf="isPercentage">{{countryOverview.datasets | number :'1.0-1'}}%</ng-container>
+          <ng-container *ngIf="!isPercentage">{{countryOverview.datasets | number}}</ng-container>
+        </ng-container>
+      </td>
+      <td class="uk-text-center">
+        <ng-container *ngIf="countryOverview.software===null">--</ng-container>
+        <ng-container *ngIf="countryOverview.software!=null">
+          <ng-container *ngIf="isPercentage">{{countryOverview.software | number :'1.0-1'}}%</ng-container>
+          <ng-container *ngIf="!isPercentage">{{countryOverview.software | number}}</ng-container>
+        </ng-container>
+      </td>
+      <td class="uk-text-center">
+        <ng-container *ngIf="countryOverview.other===null">--</ng-container>
+        <ng-container *ngIf="countryOverview.other!=null">
+          <ng-container *ngIf="isPercentage">{{countryOverview.other | number :'1.0-1'}}%</ng-container>
+          <ng-container *ngIf="!isPercentage">{{countryOverview.other | number}}</ng-container>
+        </ng-container>
+      </td>
+    </tr>
+    </tbody>
+  </table>
+</ng-container>
+
+<ng-container *ngIf="view==='openScience'">
+  <table *ngIf="countries" class="uk-table uk-table-hover uk-table-divider uk-table-small">
+    <thead>
+    <tr>
+      <th width="20%" class="" (click)="sortBy('country')">
+        <span *ngIf="!isSortedBy || isSortedBy!='country'" class="uk-margin-small-right"><img src="../../../assets/img/icons/sort.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='country' && isDescending"><img src="../../../assets/img/icons/sort-descending.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='country' && !isDescending"><img src="../../../assets/img/icons/sort-ascending.svg"></span>
+        Country
+      </th>
+      <th class="uk-text-center" width="20%" (click)="sortBy('pid')">
+        <span *ngIf="!isSortedBy || isSortedBy!='pid'" class="uk-margin-small-right"><img src="../../../assets/img/icons/sort.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='pid' && isDescending"><img src="../../../assets/img/icons/sort-descending.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='pid' && !isDescending"><img src="../../../assets/img/icons/sort-ascending.svg"></span>
+        PID
+      </th>
+      <th class="uk-text-center" width="20%" (click)="sortBy('licence')">
+        <span *ngIf="!isSortedBy || isSortedBy!='licence'" class="uk-margin-small-right"><img src="../../../assets/img/icons/sort.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='licence' && isDescending"><img src="../../../assets/img/icons/sort-descending.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='licence' && !isDescending"><img src="../../../assets/img/icons/sort-ascending.svg"></span>
+        Licence
+      </th>
+      <th *ngIf="entity==='publication'" class="uk-text-center" width="20%" (click)="sortBy('gold')">
+        <span *ngIf="!isSortedBy || isSortedBy!='gold'" class="uk-margin-small-right"><img src="../../../assets/img/icons/sort.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='gold' && isDescending"><img src="../../../assets/img/icons/sort-descending.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='gold' && !isDescending"><img src="../../../assets/img/icons/sort-ascending.svg"></span>
+        Gold
+      </th>
+      <th *ngIf="entity==='publication'" class="uk-text-center" width="20%" (click)="sortBy('green')">
+        <span *ngIf="!isSortedBy || isSortedBy!='green'" class="uk-margin-small-right"><img src="../../../assets/img/icons/sort.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='green' && isDescending"><img src="../../../assets/img/icons/sort-descending.svg"></span>
+        <span *ngIf="isSortedBy && isSortedBy=='green' && !isDescending"><img src="../../../assets/img/icons/sort-ascending.svg"></span>
+        Green
+      </th>
+    </tr>
+    </thead>
+    <tbody>
+    <tr *ngFor="let countryOverview of countries">
+      <td class=""><a [routerLink]="['/countryDashboard', countryOverview.code]">{{countryOverview.name}}</a></td>
+      <td class="uk-text-center">
+        <ng-container *ngIf="countryOverview.pid===null">--</ng-container>
+        <ng-container *ngIf="countryOverview.pid!=null">
+          <ng-container *ngIf="isPercentage">{{countryOverview.pid.percentage | number :'1.0-1'}}%</ng-container>
+          <ng-container *ngIf="!isPercentage">{{countryOverview.pid.oa | number}}</ng-container>
+        </ng-container>
+      </td>
+      <td class="uk-text-center">
+        <ng-container *ngIf="countryOverview.licence===null">--</ng-container>
+        <ng-container *ngIf="countryOverview.licence!=null">
+          <ng-container *ngIf="isPercentage">{{countryOverview.licence.percentage | number :'1.0-1'}}%</ng-container>
+          <ng-container *ngIf="!isPercentage">{{countryOverview.licence.oa | number}}</ng-container>
+        </ng-container>
+      </td>
+      <td *ngIf="entity==='publication'" class="uk-text-center">
+        <ng-container *ngIf="countryOverview.gold===null">--</ng-container>
+        <ng-container *ngIf="countryOverview.gold!=null">
+          <ng-container *ngIf="isPercentage">{{countryOverview.gold.percentage | number :'1.0-1'}}%</ng-container>
+          <ng-container *ngIf="!isPercentage">{{countryOverview.gold.oa | number}}</ng-container>
+        </ng-container>
+      </td>
+      <td *ngIf="entity==='publication'" class="uk-text-center">
+        <ng-container *ngIf="countryOverview.green===null">--</ng-container>
+        <ng-container *ngIf="countryOverview.green!=null">
+          <ng-container *ngIf="isPercentage">{{countryOverview.green.percentage | number :'1.0-1'}}%</ng-container>
+          <ng-container *ngIf="!isPercentage">{{countryOverview.green.oa | number}}</ng-container>
+        </ng-container>
+      </td>
+    </tr>
+    </tbody>
+  </table>
+</ng-container>
+
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/countries-table.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/countries-table.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/countries-table.component.ts	(revision 60863)
@@ -0,0 +1,65 @@
+import { Component, Input, OnChanges } from '@angular/core';
+import { CountryTableData } from '../../domain/overview-map-data';
+
+@Component({
+  selector: 'app-countries-table',
+  templateUrl: './countries-table.component.html',
+})
+
+export class CountriesTableComponent implements OnChanges {
+
+  @Input() isPercentage: boolean;
+  @Input() countries: CountryTableData[];
+
+  @Input() view: string;
+  @Input() entity: string;
+
+  isSortedBy: string;
+  isDescending: boolean = true;
+
+  constructor() {}
+
+  ngOnChanges() {
+    this.countries.sort((a, b) => (a['name'] > b['name']) ? 1 : -1);
+  }
+
+  sortBy(field: string) {
+
+    if (field === this.isSortedBy) {
+      this.isDescending = !this.isDescending;
+    } else {
+      this.isDescending = true;
+    }
+
+    this.isSortedBy = field;
+
+    if (field === 'pid' || field === 'licence' || field === 'gold' || field === 'green') {
+      if (this.isDescending) {
+        if (this.isPercentage) {
+          this.countries.sort((a, b) => b[field].percentage - a[field].percentage);
+        } else {
+          this.countries.sort((a, b) => b[field].oa - a[field].oa);
+        }
+      } else {
+        if (this.isPercentage) {
+          this.countries.sort((a, b) => a[field].percentage - b[field].percentage);
+        } else {
+          this.countries.sort((a, b) => a[field].oa - b[field].oa);
+        }
+      }
+    } else if (field !== 'country') {
+      if (this.isDescending) {
+        this.countries.sort((a, b) => b[field] - a[field]);
+      } else {
+        this.countries.sort((a, b) => a[field] - b[field]);
+      }
+    } else {
+      if (this.isDescending) {
+        this.countries.sort((a, b) => (a['name'] < b['name']) ? 1 : -1);
+      } else {
+        this.countries.sort((a, b) => (a['name'] > b['name']) ? 1 : -1);
+      }
+    }
+
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/domain/raw-data.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/domain/raw-data.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/domain/raw-data.ts	(revision 60863)
@@ -0,0 +1,27 @@
+export class RawData {
+  datasets: Series[];
+}
+
+export class Series {
+  series: SeriesItem;
+}
+
+export class SeriesItem {
+  query: Query;
+  result: Row[];
+}
+
+export class Query {
+  name: string;
+  parameters: string[];
+  filters: string;
+  select: string;
+  entity: string;
+  profile: string;
+  limit: number;
+  orderBy: string;
+}
+
+export class Row {
+  row: string[];
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/chart-components/treemap-highcharts/treemap-highcharts.component.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/chart-components/treemap-highcharts/treemap-highcharts.component.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/chart-components/treemap-highcharts/treemap-highcharts.component.html	(revision 60863)
@@ -0,0 +1,7 @@
+<div>
+  <highcharts-chart #chart [Highcharts]="Highcharts"
+                    [options]="treeMapChartOptions"
+                    style="width: 100%; height: 550px; display: block;">
+  </highcharts-chart>
+</div>
+
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/countries-map-overview.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/countries-map-overview.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/countries-map-overview.component.ts	(revision 60863)
@@ -0,0 +1,263 @@
+import { MapCountryData } from '../../domain/map-country-data';
+
+declare var require: any;
+
+import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';
+import { CountryOverview, OverviewData } from '../../domain/overview-data';
+
+import * as Highcharts from 'highcharts';
+import MapModule from 'highcharts/modules/map';
+import { DataService } from '../../services/data.service';
+import { Router } from '@angular/router';
+
+const mapWorld = require('@highcharts/map-collection/custom/world.geo.json');
+const mapEurope = require('@highcharts/map-collection/custom/europe.geo.json');
+
+MapModule(Highcharts);
+
+@Component({
+  selector: 'app-map-overview',
+  templateUrl: './countries-map-overview.component.html',
+  // styleUrls: ['./top-menu.component.css'],
+  encapsulation: ViewEncapsulation.None
+})
+
+export class CountriesMapOverviewComponent implements OnInit {
+  // @Input() countries: CountryOverview[];
+
+  countries: CountryOverview[];
+
+  @Output() emitSelectedCountry: EventEmitter<any> = new EventEmitter();
+
+  activeView: string = 'publications';
+
+  Highcharts: typeof Highcharts = Highcharts;
+
+  chartMapOptions: Highcharts.Options;
+
+  mapCountryData: MapCountryData[] = [];
+  seriesColor: string = '#ff9800';
+  seriesName: string = 'OA publications';
+
+  europe: string[] = [];
+
+  constructor(private dataService: DataService,
+              private router: Router) {}
+
+  ngOnInit(): void {
+
+    if (this.isEmbedRoute()) {
+      const body = document.getElementsByTagName('body')[0];
+      body.classList.remove('header_sticky');
+    }
+
+    this.dataService.getOverviewData().subscribe(
+      overviewData => {
+        this.countries = overviewData.countries;
+        this.europe = ['al', 'at', 'ba', 'be', 'by', 'bg', 'hr', 'cz', 'dk', 'ee', 'fi', 'fr', 'de', 'gr', 'hu', 'is', 'ie', 'it',
+          'lv', 'lt', 'lu', 'mk', 'mt', 'md', 'me', 'nl', 'no', 'pl',  'pt', 'ro', 'rs', 'si',  'sk', 'es', 'se', 'ch', 'tr', 'ua', 'gb'];
+        Highcharts.setOptions({
+          lang: {
+            // printChart: 'Aaaa',
+            thousandsSep: ','
+          }
+        });
+        this.loadMapCountryData();
+        this.loadMap(this.mapCountryData, this.seriesColor, this.seriesName, this.europe);
+      },
+      error => {
+        console.log(error);
+      }
+    );
+
+    // this.Highcharts.chart.get('DE').zoomTo();
+    // this.Highcharts.chart.mapZoom(0.2);
+    // this.Highcharts.get('DE').zoomTo();
+  }
+
+  changeView(view: string) {
+    this.activeView = view;
+    this.loadMapCountryData();
+    this.loadMap(this.mapCountryData, this.seriesColor, this.seriesName, this.europe);
+    // this.updateMapData();
+  }
+
+  loadMapCountryData() {
+    this.mapCountryData = [];
+    for (const index in this.countries) {
+      this.mapCountryData.push(this.overviewToMapData(this.countries[index]));
+    }
+
+    console.log(this.mapCountryData);
+  }
+
+  overviewToMapData(countryOverview: CountryOverview): MapCountryData {
+    if (this.activeView === 'publications') {
+      // this.seriesColor = '#19647E';
+      this.seriesColor = '#F17AA9';
+      this.seriesName = 'OA publications';
+      return {
+        id: countryOverview.country,
+        country: countryOverview.country,
+        z: countryOverview.publications.oa
+      };
+    } else if (this.activeView === 'datasets') {
+      this.seriesColor = '#A98BD4';
+      this.seriesName = 'OA datasets';
+      return {
+        id: countryOverview.country,
+        country: countryOverview.country,
+        z: countryOverview.datasets.oa
+      };
+    } else if (this.activeView === 'repositories') {
+      this.seriesColor = '#708AA5';
+      this.seriesName = 'OA repositories';
+      return {
+        id: countryOverview.country,
+        country: countryOverview.country,
+        z: countryOverview.repositories.oa
+      };
+    } else if (this.activeView === 'journals') {
+      this.seriesColor = '#FFCE4E';
+      this.seriesName = 'OA journals';
+      return {
+        id: countryOverview.country,
+        country: countryOverview.country,
+        z: countryOverview.journals.oa
+      };
+    } else {
+      this.seriesColor = '#639C66';
+      this.seriesName = 'OA policies';
+      return {
+        id: countryOverview.country,
+        country: countryOverview.country,
+        z: countryOverview.policies.oa
+      };
+    }
+  }
+
+  loadMap(mapCountryData: MapCountryData[], seriesColor: string, seriesName: string, countryCodes: string[]) {
+    this.chartMapOptions = {
+      chart: {
+        map: mapWorld,
+        // map: mapEurope,
+        events: {
+          load: function() {
+            this.series[0].data = this.series[0].data.map((el) => {
+              if (countryCodes.includes(el['hc-key'])) {
+                el.color = 'rgba(139,151,167,0.6)';
+                return el;
+              }
+              return el;
+            });
+            this.update({
+              series: [{
+                data: this.series[0].data as Highcharts.SeriesMapbubbleDataOptions,
+              } as Highcharts.SeriesMapbubbleOptions]
+            });
+            // this.mapZoom(0.24, 4518.24, -8188.36);
+            this.mapZoom(0.24, this.get('Germany')['x'], this.get('Germany')['y']);
+          },
+          click: event => {
+            if (event.target.hasOwnProperty('point')) {
+              console.log(event.target['point']['name']);
+              // this.selectedCountry(event.target['point']['name']);
+            }
+          }
+        }
+      },
+      lang: {
+        thousandsSep: ',',
+        decimalPoint: '.'
+      },
+      title: {
+        text: ''
+      },
+      plotOptions: {
+        series: {
+          cursor: 'pointer',
+          events: {
+            click: event => {
+              console.log(event);
+              this.countrySelected(event.point.name);
+            }
+          }
+        }
+      },
+      // subtitle: {
+      //   text: 'Source map: <a href="http://code.highcharts.com/mapdata/custom/world.js">World, Miller projection, medium resolution</a>'
+      // },
+      // mapNavigation: {
+      //   enabled: true,
+      //   buttonOptions: {
+      //     alignTo: 'spacingBox'
+      //   }
+      // },
+      legend: {
+        enabled: false
+      },
+      // colorAxis: {
+      //   min: 0
+      // },
+      series: [{
+        name: 'Countries',
+        borderColor: '#fff',
+        negativeColor: 'rgba(139,151,167,0.2)',
+        enableMouseTracking: false,
+        type: 'map'
+        }, {
+        name: seriesName,
+        type: 'mapbubble',
+        color: seriesColor,
+        marker: {
+          fillOpacity: 0.6,
+          // states: {
+          //   hover: {
+          //     fillOpacity: 0.9
+          //   }
+          // }
+        },
+        joinBy: ['name', 'country'],
+        states: {
+          hover: {
+            brightness: 0.7,
+            borderWidth: 7
+            // color: '#a4edba',
+            // borderColor: 'gray'
+          }
+        },
+        data : mapCountryData as Highcharts.SeriesMapbubbleDataOptions,
+        dataLabels: {
+          enabled: true,
+          style: {
+            color: '#fff',
+            fontSize: '13px',
+            fontWeight: 'bold',
+            // textOutline: '1px #a1a1a1'
+            textOutline: '1px #000'
+          },
+          allowOverlap: true,
+          formatter: function() {
+            // return this.point.z.toFixed(1) + '%';
+            return this.point['z'].toLocaleString();
+          }
+        },
+        // minSize: 4,
+        // maxSize: '12%',
+        tooltip: {
+          headerFormat: '<span style="font-size: 120%; font-weight: bold; margin-bottom: 15px">{point.key}</span><br>',
+          // pointFormat: '{point.properties.name}: {point.z:.1f}%'
+          pointFormat: '{point.z} {series.name}',
+        }
+      } as Highcharts.SeriesMapbubbleOptions]
+    };
+  }
+
+  countrySelected(countryName: string) {
+    this.emitSelectedCountry.emit(countryName);
+  }
+
+  isEmbedRoute() {
+    return (this.router.url === '/overview-map-embed');
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/app.component.css
===================================================================
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/home.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/home.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/home.component.ts	(revision 60863)
@@ -0,0 +1,87 @@
+import { Component, OnInit } from '@angular/core';
+import { DataService } from '../../services/data.service';
+import { CountryOverviewData, EuropeData, SelectedCountry } from '../../domain/overview-map-data';
+import { DataHandlerService } from '../../services/data-handler.service';
+import { countries } from '../../domain/countries';
+import { Router } from '@angular/router';
+
+@Component({
+  selector: 'app-home',
+  templateUrl: './home.component.html',
+})
+
+export class HomeComponent implements OnInit {
+
+  europeOverviewData: EuropeData;
+
+  selectedCountry: SelectedCountry = null;
+  selectedCountryData: CountryOverviewData = null;
+
+  leadingOpenScienceData: CountryOverviewData[];
+
+  countriesCollection = countries;
+  keyword = 'name';
+
+  constructor(private dataService: DataService,
+              private dataHandlerService: DataHandlerService,
+              private router: Router) { }
+
+  ngOnInit(): void {
+
+    window.scroll(0, 0);
+
+    // const searchIcon = document.getElementById('search-icon');
+    // const inputContainer = document.getElementsByClassName('input-container')[0];
+    // inputContainer.insertAdjacentElement('afterbegin', searchIcon);
+
+    this.dataService.getEuropeOverviewData().subscribe(
+      rawData => {
+        this.europeOverviewData = this.dataHandlerService.convertRawDataToEuropeOverviewData(rawData);
+      }, error => {
+        console.log(error);
+      }
+    );
+
+    this.dataService.getLeadingOpenScienceMobileData().subscribe(
+      rawData => {
+        this.leadingOpenScienceData = this.dataHandlerService.convertRawDataToLeadingOpenScienceData(rawData);
+      }, error => {
+        console.log(error);
+      }
+    );
+  }
+
+  countrySelected(selectedCountry: SelectedCountry) {
+    this.selectedCountry = selectedCountry;
+    this.selectedCountryData = null;
+
+    this.dataService.getCountryOverviewData(this.selectedCountry.code).subscribe(
+      rawData => {
+        this.selectedCountryData = this.dataHandlerService.convertRawDataToCountryOverviewData(rawData);
+      }, error => {
+        console.log(error);
+      }
+    );
+  }
+
+  deselectCountry() {
+    this.selectedCountry = null;
+    this.selectedCountryData = null;
+  }
+
+
+  selectCountryFromAutocompleteEvent(item) {
+    // do something with selected item
+    // console.log('country selected: ', item);
+    this.router.navigate([`/countryDashboard/${item.id}`]);
+  }
+
+  onChangeSearch(search: string) {
+    // fetch remote data from here
+    // And reassign the 'data' which is binded to 'data' property.
+  }
+
+  onFocused(e) {
+    // do something
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/countries-map-overview.component.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/countries-map-overview.component.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/countries-map-overview.component.html	(revision 60863)
@@ -0,0 +1,56 @@
+<div class="{{isEmbedRoute()? 'mapContainerEmbed' : 'mapContainer'}}">
+  <!--Map-->
+  <div class="map">
+    <!--<chart type="Map" [options]="serviceMapOptions"></chart>-->
+    <ng-container *ngIf="countries">
+      <highcharts-chart
+        [Highcharts]="Highcharts"
+        [constructorType]="'mapChart'"
+        [options]="chartMapOptions"
+        style="width: 100%; height: 100%; display: block;"
+      ></highcharts-chart>
+    </ng-container>
+
+    <!--<img src="../../../assets/img/mapExample.png">-->
+  </div>
+
+  <!--Map Controls-->
+  <div class="uk-width-large-1-1 uk-container-center uk-text-center uk-margin-top mapControls">
+    <ul class="uk-nav uk-nav-side uk-nav-horizontal uk-nav-parent-icon" data-uk-nav="{multiple:true}">
+      <li>
+        <a (click)="changeView('publications')">
+          <span class="uk-nav-label" style="background-color: #F8D5E3 !important; border: 1px solid #F17AA9;"></span>
+          <span class="text {{activeView=='publications' ? 'active' : ''}}">OA publications</span>
+        </a>
+      </li>
+      <li>
+        <a (click)="changeView('datasets')">
+          <span class="uk-nav-label" style="background-color: #E2DAF0 !important; border: 1px solid #A98BD4;"></span>
+          <span class="text {{activeView=='datasets' ? 'active' : ''}}">OA datasets</span>
+        </a>
+      </li>
+      <li>
+        <a (click)="changeView('repositories')">
+          <span class="uk-nav-label" style="background-color: #C5E0E9 !important; border: 1px solid #708AA5;"></span>
+          <span class="text {{activeView=='repositories' ? 'active' : ''}}">OA repositories</span>
+        </a>
+      </li>
+      <li>
+        <a (click)="changeView('journals')">
+          <span class="uk-nav-label" style="background-color: #FBE8B1 !important; border: 1px solid #FFCE4E;"></span>
+          <span class="text {{activeView=='journals' ? 'active' : ''}}">OA journals</span>
+        </a>
+      </li>
+      <li>
+        <a (click)="changeView('policies')">
+          <span class="uk-nav-label" style="background-color: #D4ECD6 !important; border: 1px solid #639C66;"></span>
+          <span class="text {{activeView=='policies' ? 'active' : ''}}">OA policies</span>
+        </a>
+      </li>
+    </ul>
+    <!--<h2 class="heading_b">-->
+    <!--Our Team-->
+    <!--<span class="sub-heading">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</span>-->
+    <!--</h2>-->
+  </div>
+</div>
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/gauge-chart.component.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/gauge-chart.component.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/gauge-chart.component.html	(revision 60863)
@@ -0,0 +1,7 @@
+<div>
+  <highcharts-chart #chart [Highcharts]="Highcharts"
+                    [options]="gaugeChartOptions" [(update)]="update"
+                    style="width: 100%; height: 100px; display: block;">
+  </highcharts-chart>
+</div>
+
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/gauge-chart.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/gauge-chart.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/home/gauge-chart.component.ts	(revision 60863)
@@ -0,0 +1,119 @@
+import {Component, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation} from '@angular/core';
+
+import * as Highcharts from 'highcharts';
+import HighchartsMore from 'highcharts/highcharts-more.src.js';
+import solidGauge from 'highcharts/modules/solid-gauge.js';
+
+HighchartsMore(Highcharts);
+solidGauge(Highcharts);
+
+@Component({
+  selector: 'app-gauge-chart',
+  templateUrl: './gauge-chart.component.html',
+  // styleUrls: ['./top-menu.component.css'],
+  encapsulation: ViewEncapsulation.None
+})
+
+export class GaugeChartComponent implements OnInit, OnChanges {
+
+  @Input() chartData: number;
+  @Input() color: string;
+
+  public chartValue = 25;
+
+  public update = false;
+
+  Highcharts: typeof Highcharts = Highcharts;
+
+  // gaugeChartOptions: Highcharts.Options;
+
+  public gaugeChartOptions = {
+    chart: {
+      type: 'solidgauge'
+    },
+
+    title: {
+      text: ''
+    },
+
+    pane: {
+      center: ['50%', '85%'],
+      size: '140%',
+      startAngle: -90,
+      endAngle: 90,
+      background: {
+        backgroundColor: '#fff',
+        innerRadius: '60%',
+        outerRadius: '100%',
+        shape: 'arc'
+      }
+    },
+
+    tooltip: {
+      enabled: true
+    },
+
+    credits: {
+      enabled: false
+    },
+
+    yAxis: {
+      stops: [[0.1, '#DF5353'], [0.5, '#DDDF0D'], [0.9, '#55BF3B']],
+      min: 0,
+      max: 100,
+      lineWidth: 0,
+      // tickAmount: 6,
+      // labels: {
+      //   y: 16
+      // }
+    },
+
+    plotOptions: {
+      solidgauge: {
+        dataLabels: {
+          y: 5,
+          borderWidth: 0,
+          useHTML: true
+        }
+      }
+    },
+
+    series: [
+      {
+        name: 'Speed',
+        data: [this.chartValue],
+        dataLabels: {
+          allowOverlap: true,
+          format:
+          '<div style="text-align:center"><span style="font-size:20px;color:black' +
+          '">{y:.0f}%</span><br/>' +
+          '<span style="font-size:12px;color:silver"> </span></div>'
+        }
+      }
+    ]
+  };
+
+  constructor() {}
+
+  private updateChart(value) {
+    this.chartValue = value;
+
+    // first try - working without transition
+    // this.gaugeChartOptions.title.text = value;
+    this.gaugeChartOptions.series['0'].data[0] = value;
+    // this.gaugeChartOptions.series['0'].update();
+    this.update = true;
+  }
+
+  ngOnInit(): void {
+    // console.log('onInit');
+    this.updateChart(this.chartData);
+  }
+
+  ngOnChanges(changes: SimpleChanges): void {
+    // console.log('onChanges');
+    // console.log('Chart data: ', this.chartData);
+    this.updateChart(this.chartData);
+  }
+
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/methodology/methodology.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/methodology/methodology.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/methodology/methodology.component.ts	(revision 60863)
@@ -0,0 +1,11 @@
+import { Component, ViewEncapsulation } from '@angular/core';
+
+@Component({
+  selector: 'app-methodology',
+  templateUrl: './methodology.component.html',
+  // styleUrls: ['./top-menu.component.css'],
+  encapsulation: ViewEncapsulation.None
+})
+
+export class MethodologyPageComponent {
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/methodology/methodology.component.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/methodology/methodology.component.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/methodology/methodology.component.html	(revision 60863)
@@ -0,0 +1,271 @@
+<section class="section greySection terminologySection">
+
+  <div id="how" class="uk-container uk-container-expand uk-container-center uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up" data-uk-scrollspy="{cls:'uk-animation-scale-up uk-invisible',delay:300,topoffset:-100}">
+    <h2 class="uk-text-center">
+      Overview
+    </h2>
+    <div class="uk-margin-large-top">
+      <div class="how uk-h6">
+        <div class="uk-flex uk-flex-wrap">
+          <div class="uk-width-1-3@s first uk-text-muted">
+            <div>
+              <img src="../../../assets/img/methodology/1.png">
+            </div>
+            <div class="uk-text-center">
+              <span class="uk-text-bold uk-text-uppercase">Starting</span> from existing<br>research-related data sources
+            </div>
+          </div>
+          <div class="uk-width-1-3@s second uk-text-muted">
+            <div>
+              <img src="../../../assets/img/methodology/2.png">
+            </div>
+          </div>
+          <div class="uk-width-1-3@s third uk-text-muted">
+            <div>
+              <img src="../../../assets/img/methodology/3.png">
+            </div>
+            <div class="uk-text-center">
+              build an open, global<br>and trusted Research graph
+            </div>
+          </div>
+        </div>
+        <div class="uk-flex uk-flex-wrap">
+          <div class="uk-width-1-3@s fourth uk-flex-last@s uk-text-muted">
+            <div>
+              <img src="../../../assets/img/methodology/4.png">
+            </div>
+            <div class="uk-text-center">
+              we perform <span class="uk-text-bold uk-text-uppercase">Statistical Analysis</span> and produce
+              <span class="portal-color">Open Science Indicators</span>
+            </div>
+          </div>
+          <div class="uk-width-1-3@s fifth uk-text-muted">
+            <div>
+              <img src="../../../assets/img/methodology/5.png">
+            </div>
+            <div class="uk-text-center">
+              furthermore <span class="uk-text-bold uk-text-uppercase">Network<br>Analysis</span> producing
+              <span class="portal-color">Collaboration Indicators</span>
+            </div>
+          </div>
+          <div class="uk-width-1-3@s sixth uk-flex-first@s uk-text-muted">
+            <div>
+              <img src="../../../assets/img/methodology/6.png">
+            </div>
+            <div class="uk-text-center">
+              Often combine with external data
+              (patents, social, company) and
+              perform <span class="uk-text-bold uk-text-uppercase">Impact Analysis</span> to
+              produce <span class="portal-color">Innovation Indicators</span>
+            </div>
+          </div>
+        </div>
+        <div class="final uk-text-muted">
+          <div>
+            <img src="../../../assets/img/methodology/Asset%201.png">
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+
+</section>
+
+<section class="section greySection terminologySection" id="sect-tabs">
+
+  <div id="terminology" class="uk-container uk-container-expand uk-container-center uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up" data-uk-scrollspy="{cls:'uk-animation-scale-up uk-invisible',delay:300,topoffset:-100}">
+    <h2 class="uk-text-center">
+      Terminology and construction
+    </h2>
+    <div class="uk-margin-large-top">
+
+      <!--LAPTOP & PAD LANDSCAPE-->
+      <ul class="uk-visible@m uk-tab uk-tab-large uk-flex-center" data-uk-tab="{connect:'#terminology_tabbed',animation: 'slide-bottom'}">
+        <li class="uk-active" aria-expanded="true"><a>Entities</a></li>
+        <li aria-expanded="false"><a>Attributes of Entities</a></li>
+      </ul>
+
+      <!--MOBILE & PAD PORTRAIT-->
+      <ul class="uk-hidden@m uk-tab" data-uk-tab="{connect:'#terminology_tabbed',animation: 'slide-bottom'}">
+        <li class="uk-active" aria-expanded="true"><a>Entities</a></li>
+        <li aria-expanded="false"><a>Attributes of Entities</a></li>
+      </ul>
+
+      <ul id="terminology_tabbed" class="uk-switcher">
+
+        <!--OVERVIEW tab-->
+        <li aria-hidden="false" class="uk-active" style="animation-duration: 200ms;">
+          <table>
+            <tr>
+              <th class="important">Research Outcomes</th>
+              <td>
+                <div>There are currently four different types of research outcomes in the OpenAIRE Research
+                  Graph:
+                </div>
+                <ul class="portal-circle">
+                  <li>Publication</li>
+                  <li>Dataset</li>
+                  <li>Software</li>
+                  <li>Other Research Product</li>
+                </ul>
+                <div class="uk-margin-small-top">
+                  OpenAIRE deduplicates (merges) different records of research outcomes and keeps the metadata of all
+                  instances.
+                </div>
+              </td>
+            </tr>
+            <tr>
+              <th>Publication</th>
+              <td>Research outcomes intended for human reading (published articles, pre-prints, conference papers,
+                presentations, technical reports, etc.)
+              </td>
+            </tr>
+            <tr>
+              <th>Dataset</th>
+              <td>
+                <p>Research data</p>
+                <p>Granularity is not defined by OpenAIRE, it reflects the granularity supported by
+                  the sources from which the description of the dataset has been collected.</p>
+              </td>
+            </tr>
+            <tr>
+              <th>Software</th>
+              <td>Source code or software package developed and/or used in a research context</td>
+            </tr>
+            <tr>
+              <th>Other Research Product</th>
+              <td>Anything that does not fall in the previous categories (e.g. workflow, methods, protocols)</td>
+            </tr>
+          </table>
+          <div class="uk-text-small uk-margin-small-top">
+            <img src="../../../assets/img/Open_Research_Graph.svg" style="opacity: 0.4">
+            <span class="uk-margin-small-left uk-text-baseline uk-text-muted">More information for <a
+              href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a>.</span>
+          </div>
+        </li>
+
+        <!--OPEN SCIENCE tab-->
+        <li aria-hidden="true" style="animation-duration: 200ms;">
+          <table>
+            <tr>
+              <th>Organization & Country</th>
+              <td>
+                <p><span class="uk-text-bold">For research outcomes:</span> the affiliated organizations of its
+                  authors (and their country)</p>
+                <p><span class="uk-text-bold">For projects:</span> the organizations participating in the project
+                  (i.e. beneficiaries of the grant) and
+                  their countries
+                </p>
+                <p>
+                  <span class="uk-text-bold">Country code mapping: </span>
+                  <a href="https://api.openaire.eu/vocabularies/dnet:countries" target="_blank">
+                    https://api.openaire.eu/vocabularies/dnet:countries</a>
+                </p>
+              </td>
+            </tr>
+            <tr>
+              <th>Type</th>
+              <td>
+                <p>The sub-type of a research outcome (e.g., a publication can be a pre-print, conference proceeding,
+                  article,
+                  etc.)</p>
+                <p><span class="uk-text-bold">Resource type mapping: </span>
+                  <a href="https://api.openaire.eu/vocabularies/dnet:result_typologies" target="_blank">https://api.openaire.eu/vocabularies/dnet:result_typologies</a>
+                  (click on the code to see the specific types for each result type)
+                </p>
+              </td>
+            </tr>
+            <tr>
+              <th>Access mode</th>
+              <td>
+                <p>The best available (across all instances) access rights of a research outcome</p>
+                <p>Types: open, restricted, closed, embargo (= closed for a specific period of time, then open)</p>
+                <p><span class="uk-text-bold">Note:</span> definition of <span class="uk-text-bold">restricted</span>
+                  may vary by data source.</p>
+              </td>
+            </tr>
+            <tr>
+              <th>PID (persistent identifier)</th>
+              <td>
+                <p>A long-lasting reference to a resource</p>
+                <p><span class="uk-text-bold">Types: </span> <a
+                  href="http://api.openaire.eu/vocabularies/dnet:pid_types" target="_blank">http://api.openaire.eu/vocabularies/dnet:pid_types</a>
+                </p>
+              </td>
+            </tr>
+            <tr>
+              <th>Context</th>
+              <td>Related research community, initiative or infrastructure</td>
+            </tr>
+            <tr>
+              <th>Journal</th>
+              <td>The scientific journal an article is published in.</td>
+            </tr>
+            <tr>
+              <th>Publisher</th>
+              <td>The publisher of the venue (journal, book, etc.) of a research outcome</td>
+            </tr>
+            <tr>
+              <th class="important">Content Providers (Datasources)</th>
+              <td>
+                <p>The different data sources ingested in the OpenAIRE Research Graph.</p>
+                <div class="uk-text-bold">Content Provider Types:</div>
+                <ul class="portal-circle">
+                  <li>Repositories</li>
+                  <li>Open Access Publishers & Journals</li>
+                  <li>Aggregators</li>
+                  <li>Entity Registries</li>
+                  <li>Journal Aggregators</li>
+                  <li>CRIS (Current Research Information System)</li>
+                </ul>
+              </td>
+            </tr>
+            <tr>
+              <th>Repositories</th>
+              <td>Information systems where scientists upload the bibliographic metadata and payloads of their
+                research outcomes (e.g. PDFs of their scientific articles, CSVs of their data, archive with their
+                software), due to obligations from their organizations, their funders, or due to community practices
+                (e.g. ArXiv, Europe PMC, Zenodo).
+              </td>
+            </tr>
+            <tr>
+              <th>Open Access Publishers & Journals</th>
+              <td>Information systems of open access publishers or relative journals, which offer bibliographic
+                metadata and PDFs of their published articles.
+              </td>
+            </tr>
+            <tr>
+              <th>Aggregators</th>
+              <td>Information systems that collect descriptive metadata about research products from multiple sources
+                in order to enable cross-data source discovery of given research products (e,g, DataCite,
+                BASE, DOAJ).
+              </td>
+            </tr>
+            <tr>
+              <th>Entity Registries</th>
+              <td>Information systems created with the intent of maintaining authoritative registries of given
+                entities in the scholarly communication, such as OpenDOAR for the institutional repositories, re3data
+                for the data repositories, CORDA and other funder databases for projects and funding information.
+              </td>
+            </tr>
+            <tr>
+              <th>CRIS (Current Research Information System)</th>
+              <td>Information systems adopted by research and academic organizations to keep track of their research
+                administration records and relative results; examples of CRIS content are articles or datasets funded
+                by projects, their principal investigators, facilities acquired thanks to funding, etc.
+              </td>
+            </tr>
+          </table>
+          <div class="uk-text-small uk-margin-small-top">
+            <img src="../../../assets/img/Open_Research_Graph.svg" style="opacity: 0.4">
+            <span class="uk-margin-small-left uk-text-baseline uk-text-muted">More information for <a
+              href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a>.</span>
+          </div>
+        </li>
+
+      </ul>
+
+    </div>
+  </div>
+
+</section>
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/css/main.css
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/css/main.css	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/css/main.css	(revision 60863)
@@ -0,0 +1,6172 @@
+/*
+*  Altair Admin Landing Page
+*  author: tzd
+*
+*  Content:
+*    1. variables/mixins
+*    2. UIkit custom styles
+*    3. custom components
+*    4. material design styles
+*    5. partials (header,sidebars,top bar)
+*    6. altair landing page styles
+*
+*/
+/* 1. altair variables/mixins ======================== */
+/* 2. UIkit custom styles ============================ */
+/* animations */
+[class*="uk-animation-"] {
+  -webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+  -webkit-animation-duration: 560ms;
+  animation-duration: 560ms;
+}
+/* alerts */
+.uk-alert {
+  border: none;
+  background: #1976d2;
+  color: #fff;
+  text-shadow: none;
+  padding-right: 32px;
+  position: relative;
+  display: block;
+}
+.uk-alert-success {
+  background: #8bc34a !important;
+}
+.uk-alert-danger {
+  background: #e53935 !important;
+}
+.uk-alert-warning {
+  background: #ffa000 !important;
+}
+.uk-alert-info {
+  background: #0097a7 !important;
+}
+.uk-alert-large {
+  padding: 24px 32px 24px 24px;
+}
+.uk-alert-close {
+  position: absolute;
+  top: 10px;
+  right: 8px;
+  float: none !important;
+  margin: 0 !important;
+}
+.uk-alert-close:after {
+  color: #fff !important;
+}
+/* badges */
+.uk-badge {
+  background: #0097a7;
+  padding: 2px 6px;
+  border: none;
+  border-radius: 2px;
+  text-shadow: none;
+  font-size: 11px;
+  line-height: 15px;
+  font-weight: 400;
+}
+.uk-badge-primary {
+  background: #2196f3;
+}
+.uk-badge-danger {
+  background: #e53935;
+}
+.uk-badge-warning {
+  background: #ffa000;
+}
+.uk-badge-success {
+  background: #7cb342;
+}
+.uk-badge-muted {
+  background: #bdbdbd;
+}
+.uk-badge-notification {
+  border-radius: 20px;
+}
+.uk-badge.inline-label {
+  vertical-align: 1px;
+  margin-left: 4px;
+}
+.uk-badge-outline {
+  border: 1px solid rgba(0, 0, 0, 0.12);
+  background: #fff;
+  color: #212121;
+  padding-bottom: 0;
+  line-height: 16px;
+}
+/* buttons */
+.uk-button {
+  font-weight: 400;
+  border-radius: 2px;
+  -webkit-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
+  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
+}
+/* comments */
+.uk-comment-list > li + li {
+  border-top: 1px dashed rgba(0, 0, 0, 0.12);
+  margin-top: 16px !important;
+}
+.uk-comment-list .uk-comment + ul {
+  margin: 8px 0 0 0;
+}
+@media only screen and (min-width: 768px) {
+  .uk-comment-list .uk-comment + ul {
+    padding-left: 48px;
+  }
+}
+.uk-comment-header {
+  padding: 16px 8px 8px;
+  border: none;
+  background: none;
+  margin-bottom: 0;
+}
+.uk-comment-title {
+  margin: 0;
+  font-size: 14px;
+  line-height: 20px;
+}
+/* dialog modals */
+.uk-modal {
+  z-index: 1304;
+  background: rgba(0, 0, 0, 0.5);
+  -webkit-transition: opacity 250ms ease-out;
+  transition: opacity 250ms ease-out;
+  overflow: auto !important;
+}
+.uk-modal.uk-modal-no-backdrop {
+  background: transparent;
+}
+.uk-modal-dialog {
+  border-radius: 2px;
+  -webkit-box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22);
+  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22);
+  padding: 24px;
+  display: block !important;
+  -webkit-animation: none !important;
+  animation: none !important;
+  -webkit-transition: opacity 280ms ease-in, -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: opacity 280ms ease-in, -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: transform 280ms cubic-bezier(0.4, 0, 0.2, 1), opacity 280ms ease-in;
+  transition: transform 280ms cubic-bezier(0.4, 0, 0.2, 1), opacity 280ms ease-in, -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  -webkit-transform: scale(0);
+  transform: scale(0);
+}
+.uk-open .uk-modal-dialog {
+  -webkit-transform: scale(1);
+  transform: scale(1);
+}
+.uk-modal-dialog .uk-modal-header {
+  background: none;
+  border-bottom: none;
+  margin: 0 -24px 24px;
+  padding: 0 32px 0 24px;
+  overflow: hidden;
+}
+.uk-modal-dialog .uk-modal-header .uk-modal-title {
+  margin: 0;
+  font: 500 18px / 28px "Roboto", sans-serif;
+}
+.uk-modal-dialog .uk-modal-header .uk-modal-title span {
+  font-size: 16px;
+  display: block;
+  color: #727272;
+}
+.uk-modal-dialog .uk-modal-header .material-icons {
+  font-size: 24px;
+  vertical-align: -4px;
+  cursor: default;
+}
+.uk-modal-dialog .uk-modal-footer {
+  margin: 16px -16px -16px;
+  padding: 16px;
+  background: #fff;
+  border-top: none;
+}
+.uk-modal-dialog .uk-modal-footer:before,
+.uk-modal-dialog .uk-modal-footer:after {
+  content: " ";
+  display: table;
+}
+.uk-modal-dialog .uk-modal-footer:after {
+  clear: both;
+}
+.uk-modal-dialog .uk-modal-footer .md-icon-btn {
+  margin-top: 2px;
+}
+.uk-modal-dialog .uk-modal-caption {
+  bottom: 16px;
+  margin: 0 32px;
+}
+.uk-modal-dialog > .uk-close:first-child {
+  top: 8px;
+  right: 8px;
+  position: absolute;
+  float: none;
+  margin: 0;
+}
+.uk-modal-dialog-lightbox {
+  padding: 0;
+}
+.uk-modal-dialog-lightbox > .uk-close:first-child {
+  top: -11px;
+  right: -11px;
+  -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
+  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
+  border: none;
+}
+.uk-modal-dialog .uk-overflow-container {
+  margin: 16px 0;
+}
+.uk-modal .uk-margin.uk-modal-content {
+  margin-bottom: 0;
+}
+.uk-modal.uk-modal-dialog-replace .uk-modal-content {
+  font-size: 18px;
+}
+.uk-modal-spinner {
+  -webkit-animation: uk-rotate 2s infinite linear;
+  animation: uk-rotate 2s infinite linear;
+  margin-left: -12px;
+  margin-top: -17px;
+  left: 50%;
+  right: auto;
+}
+/* dropdowns */
+.uk-dropdown {
+  -webkit-transform: scale(0.25, 0);
+  transform: scale(0.25, 0);
+  opacity: 0;
+  -webkit-transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  -webkit-animation: none !important;
+  animation: none !important;
+  -webkit-transform-origin: 50% 0 !important;
+  transform-origin: 50% 0 !important;
+  -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
+  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
+  border: none;
+  border-radius: 2px;
+}
+.uk-dropdown.uk-dropdown-xlarge {
+  width: 360px;
+}
+@media only screen and (max-width: 479px) {
+  .uk-dropdown.uk-dropdown-xlarge {
+    width: 260px;
+  }
+}
+.uk-dropdown.uk-dropdown-large {
+  width: 260px;
+}
+.uk-dropdown.uk-dropdown-small {
+  width: 160px;
+}
+.uk-dropdown > ul > li > a {
+  font-size: 14px;
+  color: #212121;
+}
+.uk-dropdown > ul > li > a:hover {
+  background: rgba(0, 0, 0, 0.085);
+}
+.uk-dropdown > ul > li.uk-active > a {
+  background: rgba(0, 0, 0, 0.085);
+}
+.uk-dropdown > ul > li.padding_sm {
+  padding: 2px 4px;
+}
+.uk-dropdown > ul > li.padding_md {
+  padding: 4px 8px;
+}
+.uk-dropdown.dropdown-modal {
+  z-index: 1310;
+}
+.uk-dropdown.dropdown-fs {
+  z-index: 9999;
+}
+.uk-dropdown.uk-dropdown-scrollable {
+  -webkit-overflow-scrolling: touch;
+}
+[data-uk-dropdown*="top-"] .uk-dropdown {
+  -webkit-transform-origin: 50% 100% !important;
+  transform-origin: 50% 100% !important;
+}
+[data-uk-dropdown*="left-"] .uk-dropdown {
+  -webkit-transform-origin: 100% 50% !important;
+  transform-origin: 100% 50% !important;
+}
+[data-uk-dropdown*="right-"] .uk-dropdown {
+  -webkit-transform-origin: 0 50% !important;
+  transform-origin: 0 50% !important;
+}
+[data-uk-dropdown*='justify'] {
+  position: static !important;
+}
+[data-uk-dropdown*='justify'] [class*="uk-dropdown-width"] {
+  left: 0 !important;
+  width: 100% !important;
+  min-width: inherit !important;
+  margin-left: 0 !important;
+}
+.uk-dropdown-active {
+  display: block !important;
+}
+.uk-dropdown-shown {
+  -webkit-transform: scale(1, 1);
+  transform: scale(1, 1);
+  opacity: 1;
+}
+.uk-nav-dropdown > li > a:focus,
+.uk-nav-dropdown > li > a:hover {
+  text-shadow: none;
+  -webkit-box-shadow: none;
+  box-shadow: none;
+  color: #212121;
+  background: rgba(153, 153, 153, 0.2);
+}
+/* forms */
+.uk-form input:not([type]),
+.uk-form input[type=color],
+.uk-form input[type=date],
+.uk-form input[type=datetime-local],
+.uk-form input[type=email],
+.uk-form input[type=month],
+.uk-form input[type=number],
+.uk-form input[type=password],
+.uk-form input[type=search],
+.uk-form input[type=tel],
+.uk-form input[type=text],
+.uk-form input[type=time],
+.uk-form input[type=url],
+.uk-form input[type=week],
+.uk-form select,
+.uk-form textarea {
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  padding: 8px;
+  border: 1px solid rgba(0, 0, 0, 0.12);
+  -webkit-transition: border 200ms ease-in;
+  transition: border 200ms ease-in;
+  resize: none;
+}
+.uk-form input:not([type]):focus,
+.uk-form input[type=color]:focus,
+.uk-form input[type=date]:focus,
+.uk-form input[type=datetime-local]:focus,
+.uk-form input[type=email]:focus,
+.uk-form input[type=month]:focus,
+.uk-form input[type=number]:focus,
+.uk-form input[type=password]:focus,
+.uk-form input[type=search]:focus,
+.uk-form input[type=tel]:focus,
+.uk-form input[type=text]:focus,
+.uk-form input[type=time]:focus,
+.uk-form input[type=url]:focus,
+.uk-form input[type=week]:focus,
+.uk-form select:focus,
+.uk-form textarea:focus {
+  background: none;
+  border-color: #2196f3;
+}
+.uk-form textarea {
+  -webkit-transition: border-color 200ms ease-in, height 280ms ease-in;
+  transition: border-color 200ms ease-in, height 280ms ease-in;
+}
+.uk-form-row {
+  -webkit-transition: all 200ms ease-out;
+  transition: all 200ms ease-out;
+}
+.uk-form-row + .uk-form-row {
+  margin-top: 24px;
+}
+.uk-form-stacked .uk-form-label {
+  font-weight: 500;
+  font-size: 13px;
+  display: block;
+  padding-bottom: 8px;
+}
+.uk-form-stacked .uk-form-label + p {
+  margin-top: 0;
+}
+.uk-form-help-block {
+  display: block;
+  font-size: 12px;
+  color: #727272;
+  padding: 4px 0 0 0;
+  font-style: italic;
+}
+.uk-form-width-large,
+.uk-form-width-medium,
+.uk-form-width-small,
+.uk-form-width-mini {
+  max-width: 100%;
+}
+/* grid */
+.uk-grid + .uk-grid,
+.uk-grid-margin,
+.uk-grid > * > .uk-panel + .uk-panel {
+  margin-top: 48px;
+}
+.uk-grid.uk-grid-small + .uk-grid-small,
+.uk-grid.uk-grid-small > * > .uk-panel + .uk-panel,
+.uk-grid.uk-grid-small > .uk-grid-margin {
+  margin-top: 10px;
+}
+/* icons */
+[class*="uk-icon-"] {
+  color: #727272;
+}
+/* navbar */
+.uk-navbar {
+  border-radius: 0;
+  border: none;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+}
+.uk-navbar-brand {
+  line-height: 64px;
+  display: inline-block;
+  margin: 0;
+  text-shadow: none;
+  color: #fff;
+}
+.uk-navbar-nav > li > a {
+  height: 64px;
+  text-shadow: none;
+  font-size: 16px;
+  border-radius: 0 !important;
+  line-height: 68px;
+  border: none !important;
+  margin: 0;
+}
+.uk-navbar-nav > li > a:hover,
+.uk-navbar-nav > li > a:active {
+  background: none;
+}
+.uk-navbar-nav > li > a.uk-navbar-nav-subtitle {
+  line-height: 50px;
+  margin: 0;
+}
+.uk-navbar-nav > li > a.uk-navbar-nav-subtitle > div {
+  margin-top: -12px;
+  font-size: 11px;
+}
+/* panels */
+.uk-panel-box {
+  border-radius: 2px;
+  background: #fff;
+  border-color: rgba(0, 0, 0, 0.12);
+}
+.uk-panel-box .uk-panel-teaser {
+  border-radius: 2px 2px 0 0;
+}
+/* tables */
+.uk-table td {
+  border-bottom-color: rgba(0, 0, 0, 0.12);
+}
+.uk-table th {
+  border-bottom: 1px #444;
+}
+.uk-table-nowrap td,
+.uk-table-nowrap th {
+  white-space: nowrap;
+}
+.uk-table-align-vertical td,
+.uk-table-align-vertical th {
+  vertical-align: middle;
+}
+.uk-table-no-border td {
+  border-bottom-color: transparent;
+}
+/* sticky */
+.uk-sticky-placeholder .uk-active {
+  z-index: 1094;
+}
+/* subnav */
+.uk-subnav-pill > * > * {
+  color: #212121;
+}
+.uk-subnav-pill > .uk-active > * {
+  background: #7cb342;
+}
+/* tables */
+.uk-table thead th {
+  border-bottom: 2px solid rgba(0, 0, 0, 0.12);
+}
+.uk-table thead th,
+.uk-table tfoot td,
+.uk-table tfoot th {
+  font-style: normal;
+  font-weight: 400;
+  color: #727272;
+  font-size: 14px;
+}
+.uk-table td {
+  border-bottom-color: #e0e0e0;
+}
+.uk-table tfoot td,
+.uk-table tfoot th {
+  border-top: 2px solid rgba(0, 0, 0, 0.12);
+  border-bottom: none;
+}
+.uk-table-striped tbody tr:nth-of-type(odd) {
+  background: rgba(0, 0, 0, 0.085);
+}
+.uk-table-hover tbody tr:hover {
+  background: rgba(0, 0, 0, 0.085);
+}
+/* thumbnails */
+.uk-thumbnail {
+  border-radius: 0;
+  border-color: rgba(0, 0, 0, 0.12);
+}
+.uk-thumbnail-caption {
+  padding: 4px 4px 0;
+  line-height: 20px;
+  color: #727272;
+  font-size: 12px;
+}
+/* utilities */
+.uk-text-small {
+  font-size: 12px;
+}
+.uk-text-muted {
+  color: #757575 !important;
+}
+.uk-text-primary {
+  color: #2196f3 !important;
+}
+.uk-text-danger {
+  color: #e53935 !important;
+}
+.uk-text-success {
+  color: #7cb342 !important;
+}
+.uk-text-warning {
+  color: #ffa000 !important;
+}
+.uk-margin-bottom {
+  margin-bottom: 16px !important;
+}
+.uk-margin-small-bottom {
+  margin-bottom: 8px !important;
+}
+.uk-margin-medium-bottom {
+  margin-bottom: 32px !important;
+}
+.uk-margin-large-bottom {
+  margin-bottom: 48px !important;
+}
+.uk-margin-medium-top {
+  margin-top: 32px !important;
+}
+.uk-margin-large-top {
+  margin-top: 48px !important;
+}
+.uk-margin-right {
+  margin-right: 16px !important;
+}
+.uk-margin-medium-right {
+  margin-right: 32px !important;
+}
+.uk-close {
+  font-size: 18px;
+  opacity: 1;
+}
+.uk-close:hover,
+.uk-close:focus {
+  opacity: 1;
+}
+.uk-close:after {
+  opacity: 1 !important;
+  color: #727272;
+  content: '\e5cd';
+  font-family: "Material Icons";
+}
+/* ------------ Components ------------ */
+/* accordion */
+/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
+/* ========================================================================
+   Component: Accordion
+ ========================================================================== */
+/* Sub-object: `uk-accordion-title`
+ ========================================================================== */
+.uk-accordion-title {
+  margin-top: 0;
+  margin-bottom: 15px;
+  padding: 5px 15px;
+  background: #f5f5f5;
+  font-size: 18px;
+  line-height: 24px;
+  cursor: pointer;
+  border: 1px solid #ddd;
+  border-radius: 4px;
+}
+/* Sub-object: `uk-accordion-content`
+ ========================================================================== */
+.uk-accordion-content {
+  padding: 0 15px 15px 15px;
+}
+/*
+ * Micro clearfix to make panels more robust
+ */
+.uk-accordion-content:before,
+.uk-accordion-content:after {
+  content: "";
+  display: table;
+}
+.uk-accordion-content:after {
+  clear: both;
+}
+/*
+ * Remove margin from the last-child
+ */
+.uk-accordion-content > :last-child {
+  margin-bottom: 0;
+}
+.uk-accordion-title {
+  background: rgba(153, 153, 153, 0.2);
+  border-radius: 0;
+  border: none;
+  margin: 0 0 4px;
+  font-size: 15px;
+  font-weight: 400;
+  padding: 8px 24px 8px 16px;
+  position: relative;
+}
+.uk-accordion-title:after {
+  content: '\e313';
+  font-family: "Material Icons";
+  font-size: 18px;
+  position: absolute;
+  top: 8px;
+  right: 8px;
+  display: block;
+  color: #727272;
+  -webkit-transition: -webkit-transform 280ms;
+  transition: -webkit-transform 280ms;
+  transition: transform 280ms;
+  transition: transform 280ms, -webkit-transform 280ms;
+}
+.uk-accordion-title.uk-active:after {
+  -webkit-transform: rotate(-180deg);
+  transform: rotate(-180deg);
+}
+.uk-accordion-title-primary {
+  background: #2196f3;
+  color: #fff;
+}
+.uk-accordion-title-primary:after {
+  color: #fff;
+}
+.uk-accordion-title-danger {
+  background: #e53935;
+  color: #fff;
+}
+.uk-accordion-title-danger:after {
+  color: #fff;
+}
+.uk-accordion-title-success {
+  background: #7cb342;
+  color: #fff;
+}
+.uk-accordion-title-success:after {
+  color: #fff;
+}
+.uk-accordion-title-warning {
+  background: #ffa000;
+  color: #fff;
+}
+.uk-accordion-title-warning:after {
+  color: #fff;
+}
+.uk-accordion-content {
+  padding: 16px;
+}
+.uk-accordion-alt .uk-accordion-title {
+  background: #fff;
+  margin: 0;
+  padding: 16px 24px 16px 48px;
+  border-top: 1px solid rgba(0, 0, 0, 0.12);
+}
+.uk-accordion-alt .uk-accordion-title:first-child {
+  border-top: none;
+}
+.uk-accordion-alt .uk-accordion-title:after {
+  color: #2196f3;
+  content: '\e145';
+  right: auto;
+  left: 16px;
+  top: 16px;
+}
+.uk-accordion-alt .uk-accordion-title.uk-active:after {
+  -webkit-transform: rotate(-180deg);
+  transform: rotate(-180deg);
+  content: '\e15b';
+}
+.uk-accordion-alt .uk-accordion-content {
+  padding: 24px;
+}
+/* dotnav */
+/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
+/* ========================================================================
+   Component: Dotnav
+ ========================================================================== */
+/*
+ * 1. Gutter
+ * 2. Remove default list style
+ */
+.uk-dotnav {
+  display: -ms-flexbox;
+  display: -webkit-box;
+  display: flex;
+  -ms-flex-wrap: wrap;
+  flex-wrap: wrap;
+  /* 1 */
+  margin-left: -15px;
+  margin-top: -15px;
+  /* 2 */
+  padding: 0;
+  list-style: none;
+}
+/*
+ * 1. Space is allocated solely based on content dimensions
+ * 2. Horizontal gutter is using `padding` so `uk-width-*` classes can be applied
+ */
+.uk-dotnav > * {
+  /* 1 */
+  -ms-flex: none;
+  -webkit-box-flex: 0;
+  flex: none;
+  /* 2 */
+  padding-left: 15px;
+  margin-top: 15px;
+}
+/*
+ * DEPRECATED IE9 Support
+ */
+.uk-dotnav:before,
+.uk-dotnav:after {
+  content: "";
+  display: block;
+  overflow: hidden;
+}
+.uk-dotnav:after {
+  clear: both;
+}
+.uk-dotnav > * {
+  float: left;
+}
+/* Items
+ ========================================================================== */
+/*
+ * Items
+ * 1. Hide text if present
+ */
+.uk-dotnav > * > * {
+  display: block;
+  -webkit-box-sizing: content-box;
+  box-sizing: content-box;
+  width: 20px;
+  height: 20px;
+  border-radius: 50%;
+  background: rgba(50, 50, 50, 0.1);
+  /* 1 */
+  text-indent: 100%;
+  overflow: hidden;
+  white-space: nowrap;
+}
+/*
+ * Hover
+ * 1. Apply hover style also to focus state
+ * 2. Remove default focus style
+ */
+.uk-dotnav > * > :hover,
+.uk-dotnav > * > :focus {
+  background: rgba(50, 50, 50, 0.4);
+  /* 2 */
+  outline: none;
+}
+/* OnClick */
+.uk-dotnav > * > :active {
+  background: rgba(50, 50, 50, 0.6);
+}
+/* Active */
+.uk-dotnav > .uk-active > * {
+  background: rgba(50, 50, 50, 0.4);
+}
+/* Modifier: `uk-dotnav-contrast`
+ ========================================================================== */
+.uk-dotnav-contrast > * > * {
+  background: rgba(255, 255, 255, 0.4);
+}
+/*
+ * Hover
+ * 1. Apply hover style also to focus state
+ */
+.uk-dotnav-contrast > * > :hover,
+.uk-dotnav-contrast > * > :focus {
+  background: rgba(255, 255, 255, 0.7);
+}
+/* OnClick */
+.uk-dotnav-contrast > * > :active {
+  background: rgba(255, 255, 255, 0.9);
+}
+/* Active */
+.uk-dotnav-contrast > .uk-active > * {
+  background: rgba(255, 255, 255, 0.9);
+}
+/* Modifier: 'uk-dotnav-vertical'
+ ========================================================================== */
+/*
+ * DEPRECATED
+ */
+.uk-dotnav-vertical {
+  -ms-flex-direction: column;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
+  flex-direction: column;
+}
+/*
+ * DEPRECATED IE9 Support
+ */
+.uk-dotnav-vertical > * {
+  float: none;
+}
+/* autocomplete, timepicker */
+.uk-autocomplete .uk-dropdown {
+  display: block;
+  max-height: 0;
+  padding: 0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  border-radius: 0;
+  border: none;
+  -webkit-transform: scale(0.25, 0);
+  transform: scale(0.25, 0);
+  opacity: 0;
+  -webkit-transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  -webkit-animation: none !important;
+  animation: none !important;
+  -webkit-transform-origin: 0 0;
+  transform-origin: 0 0;
+}
+.uk-autocomplete.uk-open .uk-dropdown {
+  -webkit-transform: scale(1);
+  transform: scale(1);
+  opacity: 1;
+  max-height: 210px;
+}
+[data-uk-autocomplete] .uk-dropdown {
+  width: 100%;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+}
+[data-uk-autocomplete] .uk-dropdown .uk-nav {
+  margin: 0;
+}
+/* slideshow */
+/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
+/* ========================================================================
+   Component: Slideshow
+ ========================================================================== */
+/*
+ * 1. Create position context
+ * 2. Create stacking context to prevent z-index issues with other components
+ * 3. Set width because child elements are positioned absolute. Height is set via JS
+ * 4. Reset list style
+ * 5. Clip child elements
+ * 6. Deactivate browser history navigation in IE11
+ */
+.uk-slideshow {
+  /* 1 */
+  position: relative;
+  /* 2 */
+  z-index: 0;
+  /* 3 */
+  width: 100%;
+  /* 4 */
+  margin: 0;
+  padding: 0;
+  list-style: none;
+  /* 5 */
+  overflow: hidden;
+  /* 6 */
+  -ms-touch-action: pan-y;
+  touch-action: pan-y;
+}
+/*
+ * Sub-object item
+ * 1. Position items above each other
+ * 2. Expand to parent container width
+ * 3. Hide by default
+ */
+.uk-slideshow > li {
+  /* 1 */
+  position: absolute;
+  top: 0;
+  left: 0;
+  /* 2 */
+  width: 100%;
+  /* 3 */
+  opacity: 0;
+}
+/*
+ * Active
+ * 1. Stack at first
+ * 2. Show slide
+ */
+.uk-slideshow > .uk-active {
+  /* 1 */
+  z-index: 10;
+  /* 2 */
+  opacity: 1;
+}
+/*
+ * Hide default images which is only relevant to keep existing proportions
+ */
+.uk-slideshow > li > img {
+  visibility: hidden;
+}
+/*
+ * Pointer for controls
+ */
+[data-uk-slideshow-slide] {
+  cursor: pointer;
+}
+/* Modifier: `uk-slideshow-fullscreen`
+ ========================================================================== */
+.uk-slideshow-fullscreen,
+.uk-slideshow-fullscreen > li {
+  height: 100vh;
+}
+/* Animations
+ ========================================================================== */
+/*
+ * Fade
+ */
+.uk-slideshow-fade-in {
+  -webkit-animation: uk-fade 0.5s linear;
+  animation: uk-fade 0.5s linear;
+}
+.uk-slideshow-fade-out {
+  -webkit-animation: uk-fade 0.5s linear reverse;
+  animation: uk-fade 0.5s linear reverse;
+}
+/*
+ * Scroll
+ */
+.uk-slideshow-scroll-forward-in {
+  -webkit-animation: uk-slide-right 0.5s ease-in-out;
+  animation: uk-slide-right 0.5s ease-in-out;
+}
+.uk-slideshow-scroll-forward-out {
+  -webkit-animation: uk-slide-left 0.5s ease-in-out reverse;
+  animation: uk-slide-left 0.5s ease-in-out reverse;
+}
+.uk-slideshow-scroll-backward-in {
+  -webkit-animation: uk-slide-left 0.5s ease-in-out;
+  animation: uk-slide-left 0.5s ease-in-out;
+}
+.uk-slideshow-scroll-backward-out {
+  -webkit-animation: uk-slide-right 0.5s ease-in-out reverse;
+  animation: uk-slide-right 0.5s ease-in-out reverse;
+}
+/*
+ * Scale
+ */
+.uk-slideshow-scale-out {
+  -webkit-animation: uk-fade-scale-15 0.5s ease-in-out reverse;
+  animation: uk-fade-scale-15 0.5s ease-in-out reverse;
+}
+/*
+ * Swipe
+ */
+.uk-slideshow-swipe-forward-in {
+  -webkit-animation: uk-slide-left-33 0.5s ease-in-out;
+  animation: uk-slide-left-33 0.5s ease-in-out;
+}
+.uk-slideshow-swipe-forward-out {
+  -webkit-animation: uk-slide-left 0.5s ease-in-out reverse;
+  animation: uk-slide-left 0.5s ease-in-out reverse;
+}
+.uk-slideshow-swipe-backward-in {
+  -webkit-animation: uk-slide-right-33 0.5s ease-in-out;
+  animation: uk-slide-right-33 0.5s ease-in-out;
+}
+.uk-slideshow-swipe-backward-out {
+  -webkit-animation: uk-slide-right 0.5s ease-in-out reverse;
+  animation: uk-slide-right 0.5s ease-in-out reverse;
+}
+.uk-slideshow-swipe-forward-in:before,
+.uk-slideshow-swipe-backward-in:before {
+  content: '';
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  z-index: 1;
+  background: rgba(0, 0, 0, 0.6);
+  -webkit-animation: uk-fade 0.5s ease-in-out reverse;
+  animation: uk-fade 0.5s ease-in-out reverse;
+}
+/* slider */
+/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
+/* ========================================================================
+   Component: Slider
+ ========================================================================== */
+/*
+ * RTL Compatibility
+ */
+[data-uk-slider] {
+  direction: ltr;
+}
+html[dir="rtl"] .uk-slider > * {
+  direction: rtl;
+}
+/*
+ * 1. Create position context
+ * 2. Create stacking context to prevent z-index issues with other components
+ * 3. Deactivate browser history navigation in IE11
+ */
+.uk-slider {
+  /* 1 */
+  position: relative;
+  /* 2 */
+  z-index: 0;
+  /* 3 */
+  -ms-touch-action: pan-y;
+  touch-action: pan-y;
+}
+/*
+ * 1. Reset list style without interfering with grid
+ */
+.uk-slider:not(.uk-grid) {
+  /* 1 */
+  margin: 0;
+  padding: 0;
+  list-style: none;
+}
+/*
+ * Sub-object item
+ * 1. Position items above each other
+ */
+.uk-slider > * {
+  /* 1 */
+  position: absolute;
+  top: 0;
+  left: 0;
+}
+/*
+ * Clip child elements
+ */
+.uk-slider-container {
+  overflow: hidden;
+}
+/*
+ * Dragged
+ */
+.uk-slider:not(.uk-drag) {
+  -webkit-transition: -webkit-transform 200ms linear;
+  transition: -webkit-transform 200ms linear;
+  transition: transform 200ms linear;
+  transition: transform 200ms linear, -webkit-transform 200ms linear;
+}
+/*
+ * 1. Makes text unselectable
+ */
+.uk-slider.uk-drag {
+  cursor: col-resize;
+  /* 1 */
+  -moz-user-select: none;
+  -webkit-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+/*
+ * 1. Prevents images and links from being dragged (default browser behavior)
+ * 2. Disables the default callout shown when you touch and hold a touch target
+ * Currently only works in Webkit
+ */
+.uk-slider a,
+.uk-slider img {
+  /* 1 */
+  -webkit-user-drag: none;
+  user-drag: none;
+  /* 2 */
+  -webkit-touch-callout: none;
+}
+/*
+ * 1. Prevents images and links from being dragged in Firefox
+ */
+.uk-slider img {
+  pointer-events: none;
+}
+/* Modifier: `uk-slider-fullscreen`
+ ========================================================================== */
+.uk-slider-fullscreen,
+.uk-slider-fullscreen > li {
+  height: 100vh;
+}
+.uk-slider-container {
+  padding: 8px 0;
+}
+/* slidenav */
+/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
+/* ========================================================================
+   Component: Slidenav
+ ========================================================================== */
+/*
+ * 1. Required for `a` elements
+ * 2. Dimension
+ * 3. Style
+ */
+.uk-slidenav {
+  /* 1 */
+  display: inline-block;
+  /* 2 */
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  width: 60px;
+  height: 60px;
+  /* 3 */
+  line-height: 60px;
+  color: rgba(50, 50, 50, 0.4);
+  font-size: 60px;
+  text-align: center;
+}
+/*
+ * Hover
+ * 1. Apply hover style also to focus state
+ * 2. Remove default focus style
+ * 3. Required for `a` elements
+ * 4. Style
+ */
+.uk-slidenav:hover,
+.uk-slidenav:focus {
+  /* 2 */
+  outline: none;
+  /* 3 */
+  text-decoration: none;
+  /* 4 */
+  color: rgba(50, 50, 50, 0.7);
+  cursor: pointer;
+}
+/* Active */
+.uk-slidenav:active {
+  color: rgba(50, 50, 50, 0.9);
+}
+/*
+ * Icons
+ */
+.uk-slidenav-previous:before {
+  content: "\f104";
+  font-family: FontAwesome;
+}
+.uk-slidenav-next:before {
+  content: "\f105";
+  font-family: FontAwesome;
+}
+/* Sub-object: `uk-slidenav-position`
+ ========================================================================== */
+/*
+ * Create position context
+ */
+.uk-slidenav-position {
+  position: relative;
+}
+/*
+ * Center vertically
+ */
+.uk-slidenav-position .uk-slidenav {
+  display: none;
+  position: absolute;
+  top: 50%;
+  z-index: 1;
+  margin-top: -30px;
+}
+.uk-slidenav-position:hover .uk-slidenav {
+  display: block;
+}
+.uk-slidenav-position .uk-slidenav-previous {
+  left: 20px;
+}
+.uk-slidenav-position .uk-slidenav-next {
+  right: 20px;
+}
+/* Modifier: `uk-slidenav-contrast`
+ ========================================================================== */
+.uk-slidenav-contrast {
+  color: rgba(255, 255, 255, 0.5);
+}
+/*
+ * Hover
+ * 1. Apply hover style also to focus state
+ */
+.uk-slidenav-contrast:hover,
+.uk-slidenav-contrast:focus {
+  color: rgba(255, 255, 255, 0.7);
+}
+/* Active */
+.uk-slidenav-contrast:active {
+  color: rgba(255, 255, 255, 0.9);
+}
+/* tooltips */
+/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
+/* ========================================================================
+   Component: Tooltip
+ ========================================================================== */
+/*
+ * 1. Hide by default
+ * 2. Set fixed position
+ * 3. Set dimensions
+ * 4. Set style
+ */
+.uk-tooltip {
+  /* 1 */
+  display: none;
+  /* 2 */
+  position: absolute;
+  z-index: 1030;
+  /* 3 */
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  max-width: 200px;
+  padding: 5px 8px;
+  /* 4 */
+  background: #333;
+  color: rgba(255, 255, 255, 0.7);
+  font-size: 12px;
+  line-height: 18px;
+  border-radius: 3px;
+  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
+}
+/* Triangle
+ ========================================================================== */
+/*
+ * 1. Dashed is less antialised than solid
+ */
+.uk-tooltip:after {
+  content: "";
+  display: block;
+  position: absolute;
+  width: 0;
+  height: 0;
+  /* 1 */
+  border: 5px dashed #333;
+}
+/* Direction modifiers
+ ========================================================================== */
+/*
+ * Top
+ */
+.uk-tooltip-top:after,
+.uk-tooltip-top-left:after,
+.uk-tooltip-top-right:after {
+  bottom: -5px;
+  border-top-style: solid;
+  border-bottom: none;
+  border-left-color: transparent;
+  border-right-color: transparent;
+  border-top-color: #333;
+}
+/*
+ * Bottom
+ */
+.uk-tooltip-bottom:after,
+.uk-tooltip-bottom-left:after,
+.uk-tooltip-bottom-right:after {
+  top: -5px;
+  border-bottom-style: solid;
+  border-top: none;
+  border-left-color: transparent;
+  border-right-color: transparent;
+  border-bottom-color: #333;
+}
+/*
+ * Top/Bottom center
+ */
+.uk-tooltip-top:after,
+.uk-tooltip-bottom:after {
+  left: 50%;
+  margin-left: -5px;
+}
+/*
+ * Top/Bottom left
+ */
+.uk-tooltip-top-left:after,
+.uk-tooltip-bottom-left:after {
+  left: 10px;
+}
+/*
+ * Top/Bottom right
+ */
+.uk-tooltip-top-right:after,
+.uk-tooltip-bottom-right:after {
+  right: 10px;
+}
+/*
+ * Left
+ */
+.uk-tooltip-left:after {
+  right: -5px;
+  top: 50%;
+  margin-top: -5px;
+  border-left-style: solid;
+  border-right: none;
+  border-top-color: transparent;
+  border-bottom-color: transparent;
+  border-left-color: #333;
+}
+/*
+ * Right
+ */
+.uk-tooltip-right:after {
+  left: -5px;
+  top: 50%;
+  margin-top: -5px;
+  border-right-style: solid;
+  border-left: none;
+  border-top-color: transparent;
+  border-bottom-color: transparent;
+  border-right-color: #333;
+}
+.uk-tooltip {
+  background: #424242;
+  color: #fff;
+  font-size: 13px;
+  padding: 3px 16px;
+  line-height: 22px;
+  text-shadow: none;
+  min-width: 80px;
+  text-align: center;
+  z-index: 1304;
+  opacity: 0;
+}
+.uk-tooltip .uk-tooltip-inner {
+  text-overflow: ellipsis;
+  display: inline-block;
+  vertical-align: top;
+  white-space: nowrap;
+  overflow: hidden;
+  width: 100%;
+}
+.uk-tooltip:after {
+  display: none !important;
+}
+.uk-tooltip.long-text {
+  text-align: left;
+}
+.uk-tooltip.long-text .uk-tooltip-inner {
+  white-space: normal;
+  overflow: visible;
+  line-height: 18px;
+  padding: 4px 0;
+}
+.uk-tooltip-small {
+  -webkit-transform: scale(0.85);
+  transform: scale(0.85);
+}
+/* tabs */
+.uk-tab {
+  border-bottom-color: rgba(0, 0, 0, 0.12);
+}
+.uk-sticky-placeholder .uk-tab {
+  background: #fff;
+  padding-top: 8px;
+}
+.uk-tab > li {
+  margin-bottom: 0;
+  margin-top: 0 ;
+  z-index: 1;
+}
+.uk-tab > li > a {
+  font-size: 13px;
+  text-transform: uppercase;
+  color: #212121;
+  border: none;
+  border-bottom: 2px solid transparent;
+  border-radius: 0 !important;
+  font-weight: 500;
+  min-width: 100px;
+  max-width: 100%;
+  text-align: center;
+  -webkit-transition: all 220ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: all 220ms cubic-bezier(0.4, 0, 0.2, 1);
+  padding: 8px !important;
+  margin: 0 !important;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  position: relative;
+  top: 1px;
+  text-shadow: none;
+}
+.uk-tab > li > a:hover,
+.uk-tab > li > a:focus {
+  background: none;
+  color: #212121;
+  border-bottom-color: #b2dbfb;
+}
+.uk-tab > li.uk-active > a {
+  background: transparent !important;
+  border-bottom-color: #2196f3;
+}
+.uk-tab > li.uk-disabled > a,
+.uk-tab > li.uk-disabled > a:hover,
+.uk-tab > li.uk-disabled > a:focus {
+  color: #aaa;
+}
+.uk-tab-bottom li {
+  margin-top: 0;
+}
+.uk-tab-bottom li > a {
+  border-top: 2px solid transparent;
+  border-bottom: none;
+  top: auto;
+  bottom: 1px;
+}
+.uk-tab-bottom li > a:hover,
+.uk-tab-bottom li > a:focus {
+  border-top-color: #b2dbfb;
+}
+.uk-tab-bottom li.uk-active > a {
+  border-top-color: #2196f3;
+}
+.uk-tab-left {
+  border-bottom: none;
+}
+.uk-tab-left li > a {
+  border-right: 2px solid transparent;
+  border-bottom: none;
+  text-align: right;
+  top: auto;
+  bottom: auto;
+}
+.uk-tab-left li > a:hover,
+.uk-tab-left li > a:focus {
+  border-right-color: #b2dbfb;
+}
+.uk-tab-left li.uk-active > a {
+  border-right-color: #2196f3;
+}
+.uk-tab-right {
+  border-bottom: none;
+}
+.uk-tab-right li > a {
+  border-left: 2px solid transparent;
+  border-bottom: none;
+  text-align: left;
+  top: auto;
+  bottom: auto;
+}
+.uk-tab-right li > a:hover,
+.uk-tab-right li > a:focus {
+  border-left-color: #b2dbfb;
+}
+.uk-tab-right li.uk-active > a {
+  border-left-color: #2196f3;
+}
+.uk-tab-responsive li a {
+  border: none !important;
+}
+.uk-tab-responsive > a:before {
+  content: '\e5d2';
+  font-family: "Material Icons";
+  color: #727272;
+  margin-right: 8px;
+  vertical-align: -4px;
+  font-size: 18px;
+}
+.uk-tab-icons > li > a {
+  min-width: 64px;
+}
+.uk-tab-icons > li > a > .material-icons {
+  font-size: 24px;
+}
+.uk-tab-double-header {
+  margin: 10px 24px 0 !important;
+}
+.uk-tab-double-header > li > a {
+  color: #fff;
+  border-bottom: 4px solid transparent;
+}
+.uk-tab-double-header > li > a:hover,
+.uk-tab-double-header > li > a:focus {
+  color: #fff;
+  border-bottom-color: #39a1f4;
+}
+.uk-tab-double-header > li.uk-active > a {
+  color: #fff;
+  border-bottom-color: #7cb342;
+}
+.uk-tab-double-header > li.uk-tab-responsive > a {
+  border-bottom: none;
+  padding-bottom: 5px !important;
+}
+.uk-tab-double-header > li.uk-tab-responsive > a:before {
+  color: #fff;
+}
+.uk-tab-large > li {
+  margin-bottom: 0;
+  margin-top: 0 ;
+  z-index: 1;
+}
+.uk-tab-large > li > a {
+  font-size: 16px;
+  padding: 12px 24px !important;
+}
+/* text truncate */
+.uk-text-truncate {
+  display: block;
+}
+.uk-switcher {
+  overflow: hidden;
+}
+.uk-switcher > li {
+  padding: 8px 4px;
+}
+/*
+* add extra Uikit grid sizes
+*
+* usage:
+* set custom breakpoint (1480px) and name ("xlarge-x")
+* @media (min-width: 1480px) {
+*  .add-grid-sizes(xlarge-x);
+* }
+*/
+@media (min-width: 1480px) {
+  /* Whole */
+  .uk-width-xLarge-1-1,
+  .uk-grid-width-xLarge-1-1 > * {
+    width: 100%;
+  }
+  /* Halves */
+  .uk-width-xLarge-1-2,
+  .uk-width-xLarge-2-4,
+  .uk-width-xLarge-3-6,
+  .uk-width-xLarge-5-10,
+  .uk-grid-width-xLarge-1-2 > *,
+  .uk-grid-width-xLarge-2-4 > *,
+  .uk-grid-width-xLarge-3-6 > *,
+  .uk-grid-width-xLarge-5-10 > * {
+    width: 50%;
+  }
+  /* Thirds */
+  .uk-width-xLarge-1-3,
+  .uk-width-xLarge-2-6,
+  .uk-grid-width-xLarge-1-3 > *,
+  .uk-grid-width-xLarge-2-6 > * {
+    width: 33.333%;
+  }
+  .uk-width-xLarge-2-3,
+  .uk-width-xLarge-4-6,
+  .uk-grid-width-xLarge-2-3 > *,
+  .uk-grid-width-xLarge-4-6 > * {
+    width: 66.666%;
+  }
+  /* Quarters */
+  .uk-width-xLarge-1-4,
+  .uk-grid-width-xLarge-1-4 > * {
+    width: 25%;
+  }
+  .uk-width-xLarge-3-4,
+  .uk-grid-width-xLarge-3-4 > * {
+    width: 75%;
+  }
+  /* Fifths */
+  .uk-width-xLarge-1-5,
+  .uk-width-xLarge-2-10,
+  .uk-grid-width-xLarge-1-5 > *,
+  .uk-grid-width-xLarge-2-10 > * {
+    width: 20%;
+  }
+  .uk-width-xLarge-2-5,
+  .uk-width-xLarge-4-10,
+  .uk-grid-width-xLarge-2-5 > *,
+  .uk-grid-width-xLarge-4-10 > * {
+    width: 40%;
+  }
+  .uk-width-xLarge-3-5,
+  .uk-width-xLarge-6-10,
+  .uk-grid-width-xLarge-3-5 > *,
+  .uk-grid-width-xLarge-6-10 > * {
+    width: 60%;
+  }
+  .uk-width-xLarge-4-5,
+  .uk-width-xLarge-8-10,
+  .uk-grid-width-xLarge-4-5 > *,
+  .uk-grid-width-xLarge-8-10 > * {
+    width: 80%;
+  }
+  /* Sixths */
+  .uk-width-xLarge-1-6,
+  .uk-grid-width-xLarge-1-6 > * {
+    width: 16.666%;
+  }
+  .uk-width-xLarge-5-6,
+  .uk-grid-width-xLarge-5-6 > * {
+    width: 83.333%;
+  }
+  /* Tenths */
+  .uk-width-xLarge-1-10,
+  .uk-grid-width-xLarge-1-10 > * {
+    width: 10%;
+  }
+  .uk-width-xLarge-3-10,
+  .uk-grid-width-xLarge-3-10 > * {
+    width: 30%;
+  }
+  .uk-width-xLarge-7-10,
+  .uk-grid-width-xLarge-7-10 > * {
+    width: 70%;
+  }
+  .uk-width-xLarge-9-10,
+  .uk-grid-width-xLarge-9-10 > * {
+    width: 90%;
+  }
+}
+/* ie9 fixes */
+.lte-ie9 *[class*="uk-animation-"] {
+  opacity: 1 !important;
+}
+/* 3. custom components ============================== */
+/* pricing tables */
+.pricing_table.pricing_table_a {
+  text-align: center;
+}
+.pricing_table.pricing_table_a .pricing_table_plan {
+  font-size: 18px;
+  font-weight: 400;
+  padding: 16px 0;
+  margin-bottom: 16px;
+}
+.pricing_table.pricing_table_a .pricing_table_price {
+  padding: 8px 0 0;
+  font-size: 48px;
+  margin-bottom: 24px;
+}
+.pricing_table.pricing_table_a .pricing_table_price .currency {
+  vertical-align: top;
+  font-size: 24px;
+  padding: 0 4px;
+}
+.pricing_table.pricing_table_a .pricing_table_price .period {
+  font-size: 14px;
+  padding: 4px;
+  color: #aaa;
+  display: block;
+}
+.pricing_table.pricing_table_a .pricing_table_features {
+  margin: 0;
+  padding: 0;
+  list-style: none;
+}
+.pricing_table.pricing_table_a .pricing_table_features > li {
+  padding: 0;
+  margin: 0;
+  list-style: none;
+}
+.pricing_table.pricing_table_a .pricing_table_features li {
+  font-size: 16px;
+  padding: 8px 0;
+}
+.pricing_table.pricing_table_a .pricing_table_select {
+  padding: 32px 0;
+}
+.pricing_table.pricing_table_b {
+  text-align: center;
+}
+.pricing_table.pricing_table_b .pricing_table_plan {
+  font-size: 16px;
+  font-weight: 400;
+  padding: 16px 0;
+  margin-bottom: 16px;
+  text-transform: uppercase;
+}
+.pricing_table.pricing_table_b .pricing_table_price {
+  padding: 8px 0 0;
+  font-size: 48px;
+  margin-bottom: 24px;
+}
+.pricing_table.pricing_table_b .pricing_table_price .currency {
+  vertical-align: top;
+  font-size: 24px;
+  padding: 0 4px;
+}
+.pricing_table.pricing_table_b .pricing_table_price .period {
+  font-size: 14px;
+  padding: 4px;
+  color: #aaa;
+  display: block;
+}
+.pricing_table.pricing_table_b .pricing_table_features {
+  margin: 0;
+  padding: 0;
+  list-style: none;
+}
+.pricing_table.pricing_table_b .pricing_table_features > li {
+  padding: 0;
+  margin: 0;
+  list-style: none;
+}
+.pricing_table.pricing_table_b .pricing_table_features li {
+  font-size: 16px;
+  padding: 8px 0;
+}
+.pricing_table.pricing_table_b .pricing_table_select {
+  padding: 32px 0;
+}
+.pricing_table.pricing_table_c {
+  text-align: center;
+}
+.pricing_table.pricing_table_c .pricing_table_plan {
+  font-size: 16px;
+  font-weight: 400;
+  padding: 16px 0;
+  margin-bottom: 8px;
+}
+.pricing_table.pricing_table_c .pricing_table_price {
+  padding: 8px 0 0;
+  font-size: 48px;
+  margin-bottom: 24px;
+}
+.pricing_table.pricing_table_c .pricing_table_price .currency {
+  vertical-align: top;
+  font-size: 24px;
+  padding: 0 4px;
+}
+.pricing_table.pricing_table_c .pricing_table_price .period {
+  font-size: 14px;
+  color: #aaa;
+  vertical-align: 0;
+  padding-left: 4px;
+}
+.pricing_table.pricing_table_c .pricing_table_features {
+  margin: 0;
+  padding: 0;
+  list-style: none;
+}
+.pricing_table.pricing_table_c .pricing_table_features > li {
+  padding: 0;
+  margin: 0;
+  list-style: none;
+}
+.pricing_table.pricing_table_c .pricing_table_features li {
+  font-size: 16px;
+  padding: 8px 0;
+}
+.pricing_table.pricing_table_c .pricing_table_select {
+  padding: 32px 0;
+}
+.al_timeline {
+  position: relative;
+  padding: 24px 0 32px;
+}
+.al_timeline:after {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  margin-left: -2px;
+  left: 50%;
+  content: '';
+  width: 4px;
+  background: rgba(255, 255, 255, 0.5);
+  display: block;
+}
+.al_timeline_block:before,
+.al_timeline_block:after {
+  content: " ";
+  display: table;
+}
+.al_timeline_block:after {
+  clear: both;
+}
+.al_timeline_block + * {
+  margin-top: 48px;
+}
+.al_timeline_block:nth-child(even) .al_timeline_content {
+  float: right;
+}
+.al_timeline_block:nth-child(even) .al_timeline_content:after {
+  border-left-color: transparent;
+  border-right-color: #fff;
+  right: auto;
+  left: -20px;
+}
+.al_timeline_content {
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  background: #fff;
+  width: 44%;
+  padding: 16px;
+  -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
+  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
+  position: relative;
+  border-radius: 4px;
+}
+.al_timeline_content:after {
+  position: absolute;
+  top: 24px;
+  right: -20px;
+  content: '';
+  display: block;
+  border: 10px solid transparent;
+  border-left-color: #fff;
+}
+.al_timeline_image {
+  position: absolute;
+  left: 50%;
+  width: 64px;
+  height: 64px;
+  margin-left: -32px;
+  background: #fff;
+  border-radius: 50%;
+  text-align: center;
+  z-index: 10;
+  -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
+  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
+}
+.al_timeline_image > i {
+  font-size: 32px;
+  line-height: 64px;
+}
+@media only screen and (max-width: 959px) {
+  .al_timeline:after {
+    margin-left: 0;
+    left: 30px;
+  }
+  .al_timeline_block {
+    padding-left: 96px;
+  }
+  .al_timeline_content {
+    width: 100%;
+  }
+  .al_timeline_content:after {
+    border-left-color: transparent;
+    border-right-color: #fff;
+    right: auto;
+    left: -20px;
+  }
+  .al_timeline_image {
+    left: 0;
+    margin-left: 0;
+  }
+}
+@media only screen and (max-width: 767px) {
+  .al_timeline:after {
+    margin-left: 0;
+    left: 22px;
+  }
+  .al_timeline_block {
+    padding-left: 72px;
+  }
+  .al_timeline_content {
+    width: 100%;
+  }
+  .al_timeline_content:after {
+    border-left-color: transparent;
+    border-right-color: #fff;
+    right: auto;
+    left: -20px;
+    top: 14px;
+  }
+  .al_timeline_image {
+    width: 48px;
+    height: 48px;
+    left: 0;
+    margin-left: 0;
+  }
+  .al_timeline_image > i {
+    line-height: 48px;
+    font-size: 24px;
+  }
+}
+/* 4. material designv styles ========================= */
+/* bg colors */
+.md-bg-cyan {
+  background-color: #00acc1 !important;
+  color: #fff;
+}
+.md-bg-light-green {
+  background-color: #7cb342 !important;
+  color: #fff;
+}
+.md-bg-grey {
+  background-color: #616161 !important;
+  color: #fff;
+}
+.md-bg-red {
+  background-color: #d32f2f !important;
+  color: #fff;
+}
+.md-bg-light-blue {
+  background-color: #0288d1 !important;
+  color: #fff;
+}
+.md-bg-teal {
+  background-color: #00897b !important;
+  color: #fff;
+}
+.md-bg-purple {
+  background-color: #8e24aa !important;
+  color: #fff;
+}
+/* buttons */
+.md-btn {
+  background: #fff;
+  border: none;
+  border-radius: 2px;
+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
+  min-height: 31px;
+  min-width: 70px;
+  padding: 2px 16px;
+  text-align: center;
+  text-shadow: none;
+  text-transform: uppercase;
+  -webkit-transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  color: #212121;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  cursor: pointer;
+  -webkit-appearance: none;
+  display: inline-block;
+  vertical-align: middle;
+  font: 500 14px / 31px "Roboto", sans-serif !important;
+}
+.md-btn:hover,
+.md-btn:focus,
+.md-btn:active,
+.uk-button-dropdown.uk-open > .md-btn {
+  background: #fff;
+  outline: none;
+  text-decoration: none;
+  color: #212121;
+  -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
+  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
+}
+.md-btn:active,
+.uk-button-dropdown.uk-open > .md-btn {
+  -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
+  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
+}
+.md-btn-flat {
+  -webkit-box-shadow: none !important;
+  box-shadow: none !important;
+  background: none;
+}
+.md-btn-flat:hover,
+.md-btn-flat:focus {
+  background: rgba(153, 153, 153, 0.2);
+}
+.md-btn-flat:active {
+  background: rgba(153, 153, 153, 0.4);
+}
+.md-btn-flat-danger,
+.md-btn-flat-danger:hover,
+.md-btn-flat-danger:focus,
+.md-btn-flat-danger:active {
+  color: #e53935;
+}
+.md-btn-flat-danger:hover,
+.md-btn-flat-danger:focus,
+.md-btn-flat-danger:active {
+  background: #fceaea;
+}
+.md-btn-flat-primary,
+.md-btn-flat-primary:hover,
+.md-btn-flat-primary:focus,
+.md-btn-flat-primary:active {
+  color: #1976d2;
+}
+.md-btn-flat-primary:hover,
+.md-btn-flat-primary:focus,
+.md-btn-flat-primary:active {
+  background: #e3f2fd;
+}
+.md-btn-flat-success,
+.md-btn-flat-success:hover,
+.md-btn-flat-success:focus,
+.md-btn-flat-success:active {
+  color: #7cb342;
+}
+.md-btn-flat-success:hover,
+.md-btn-flat-success:focus,
+.md-btn-flat-success:active {
+  background: #e1efd2;
+}
+.md-btn-flat-warning,
+.md-btn-flat-warning:hover,
+.md-btn-flat-warning:focus,
+.md-btn-flat-warning:active {
+  color: #ffa000;
+}
+.md-btn-flat-warning:hover,
+.md-btn-flat-warning:focus,
+.md-btn-flat-warning:active {
+  background: #ffeccc;
+}
+.md-btn-flat.disabled {
+  background: none !important;
+}
+.md-btn-danger,
+.md-btn-danger:hover,
+.md-btn-danger:focus,
+.md-btn-danger:active {
+  background: #e53935;
+}
+.md-btn-primary,
+.md-btn-primary:hover,
+.md-btn-primary:focus,
+.md-btn-primary:active {
+  background: #2196f3;
+}
+.md-btn-success,
+.md-btn-success:hover,
+.md-btn-success:focus,
+.md-btn-success:active {
+  background: #7cb342;
+}
+.md-btn-warning,
+.md-btn-warning:hover,
+.md-btn-warning:focus,
+.md-btn-warning:active {
+  background: #ffa000;
+}
+.md-btn-danger,
+.md-btn-primary,
+.md-btn-success,
+.md-btn-warning,
+.md-btn-danger:hover,
+.md-btn-primary:hover,
+.md-btn-success:hover,
+.md-btn-warning:hover,
+.md-btn-danger:focus,
+.md-btn-primary:focus,
+.md-btn-success:focus,
+.md-btn-warning:focus,
+.md-btn-danger:active,
+.md-btn-primary:active,
+.md-btn-success:active,
+.md-btn-warning:active,
+.md-btn-danger > i,
+.md-btn-primary > i,
+.md-btn-success > i,
+.md-btn-warning > i {
+  color: #fff;
+}
+.md-btn.disabled,
+.md-btn.disabled:hover,
+.md-btn.disabled:focus,
+.md-btn.disabled:active {
+  color: #a8a8a8;
+  background: #eaeaea;
+  -webkit-box-shadow: none !important;
+  box-shadow: none !important;
+  cursor: default;
+  pointer-events: none;
+}
+.md-btn > i.material-icons {
+  margin-top: 5px;
+  font-size: 18px;
+}
+.md-btn-mini {
+  line-height: 21px !important;
+  min-width: 12px;
+  font-size: 10px !important;
+  min-height: 24px;
+}
+.md-btn-small {
+  line-height: 27px !important;
+  min-width: 14px;
+  font-size: 11px !important;
+}
+.md-btn-large {
+  line-height: 42px !important;
+  font-size: 16px !important;
+}
+.md-btn::-moz-focus-inner {
+  border: 0;
+  padding: 0;
+}
+.md-btn + .md-btn {
+  margin-left: 8px;
+}
+.md-btn-block {
+  width: 100%;
+}
+.md-btn-block + .md-btn-block {
+  margin-left: 0;
+  margin-top: 12px;
+}
+.md-btn + .md-btn-group {
+  margin-left: 16px;
+}
+.md-btn-facebook {
+  background: #3b5998 !important;
+}
+.md-btn-twitter {
+  background: #00aced !important;
+}
+.md-btn-gplus {
+  background: #dd4b39 !important;
+}
+.md-btn-facebook,
+.md-btn-twitter,
+.md-btn-gplus,
+.md-btn-facebook > i,
+.md-btn-twitter > i,
+.md-btn-gplus > i {
+  color: #fff !important;
+}
+.md-btn-icon > i.no_margin {
+  margin-right: 0 !important;
+  margin-left: 0 !important;
+}
+.md-btn-icon-large,
+.md-btn-icon.md-btn-large {
+  min-width: 72px;
+}
+.md-btn-icon-large > i,
+.md-btn-icon.md-btn-large > i {
+  font-size: 24px;
+  margin-right: 12px;
+  vertical-align: -3px;
+}
+.md-btn-icon-default,
+.md-btn-icon {
+  min-width: 64px;
+}
+.md-btn-icon-default > i,
+.md-btn-icon > i {
+  font-size: 18px;
+  margin-right: 8px;
+  vertical-align: -2px;
+}
+.md-btn-icon-small,
+.md-btn-icon.md-btn-small {
+  min-width: 48px;
+}
+.md-btn-icon-small > i,
+.md-btn-icon.md-btn-small > i {
+  font-size: 16px;
+  margin-right: 6px;
+  vertical-align: -2px;
+}
+.md-btn-icon-mini,
+.md-btn-icon.md-btn-mini {
+  min-width: 36px;
+}
+.md-btn-icon-mini > i,
+.md-btn-icon.md-btn-mini > i {
+  font-size: 16px;
+  margin-right: 4px;
+  vertical-align: -2px;
+}
+.md-fab {
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  width: 64px;
+  height: 64px;
+  border-radius: 50%;
+  background: #fff;
+  color: #727272;
+  display: block;
+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
+  -webkit-transition: -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  border: none;
+  position: relative;
+  text-align: center;
+  cursor: pointer;
+}
+.md-fab:hover,
+.md-fab:focus,
+.md-fab:active {
+  -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
+  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
+}
+.md-fab > i {
+  font-size: 36px;
+  line-height: 64px;
+  height: inherit;
+  width: inherit;
+  position: absolute;
+  left: 0;
+  top: 0;
+  color: #727272;
+}
+.md-fab.md-fab-accent {
+  background: #7cb342;
+}
+.md-fab.md-fab-accent > i {
+  color: #fff;
+}
+.md-fab.md-fab-success {
+  background: #7cb342;
+}
+.md-fab.md-fab-success > i {
+  color: #fff;
+}
+.md-fab.md-fab-danger {
+  background: #e53935;
+}
+.md-fab.md-fab-danger > i {
+  color: #fff;
+}
+.md-fab.md-fab-primary {
+  background: #2196f3;
+}
+.md-fab.md-fab-primary > i {
+  color: #fff;
+}
+.md-fab.md-fab-warning {
+  background: #ffa000;
+}
+.md-fab.md-fab-warning > i {
+  color: #fff;
+}
+.md-fab.md-fab-small {
+  width: 48px;
+  height: 48px;
+  border-radius: 50%;
+}
+.md-fab.md-fab-small > i {
+  line-height: 48px;
+  height: inherit;
+  width: inherit;
+  font-size: 24px;
+}
+.md-fab-speed-dial .md-fab-action-close {
+  display: none;
+}
+.md-fab-wrapper {
+  position: fixed;
+  bottom: 24px;
+  right: 24px;
+  z-index: 1004;
+  -webkit-transition: margin 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: margin 280ms cubic-bezier(0.4, 0, 0.2, 1);
+}
+@media only screen and (max-width: 767px) {
+  .md-fab-wrapper {
+    bottom: 20px;
+    right: 20px;
+  }
+}
+.md-fab-wrapper > .md-fab + .md-fab {
+  margin-top: 16px;
+}
+.md-fab-wrapper.md-fab-in-card {
+  position: absolute;
+}
+.md-fab-speed-dial .md-fab-wrapper-small {
+  position: absolute;
+  bottom: 80px;
+  right: 8px;
+  min-height: 48px;
+  width: 48px;
+  z-index: -1;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small {
+  -webkit-transform: scale(0);
+  transform: scale(0);
+  opacity: 0;
+  position: absolute;
+  right: 0;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(1) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-last-child(2) {
+  bottom: 64px;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(2) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-last-child(3) {
+  bottom: 128px;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(3) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-last-child(4) {
+  bottom: 192px;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(4) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-last-child(5) {
+  bottom: 256px;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(5) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-last-child(6) {
+  bottom: 320px;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(6) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-last-child(7) {
+  bottom: 384px;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(7) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-last-child(8) {
+  bottom: 448px;
+}
+.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(8) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms;
+}
+.md-fab-speed-dial.md-fab-active .md-fab-small {
+  -webkit-transform: scale(1);
+  transform: scale(1);
+  opacity: 1;
+  z-index: 10;
+}
+.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(1) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 50ms;
+}
+.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(2) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
+}
+.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(3) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 150ms;
+}
+.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(4) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 200ms;
+}
+.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(5) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 250ms;
+}
+.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(6) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 300ms;
+}
+.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(7) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 350ms;
+}
+.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(8) {
+  -webkit-transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms;
+  transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms, opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms, -webkit-box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 100ms cubic-bezier(0.4, 0, 0.2, 1) 400ms;
+}
+.md-fab-toolbar {
+  -webkit-transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  cursor: default;
+}
+.md-fab-toolbar > i {
+  cursor: pointer;
+}
+.md-fab-toolbar-actions {
+  visibility: hidden;
+  white-space: nowrap;
+  padding: 0 16px;
+  overflow: hidden;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+}
+.md-fab-toolbar-actions > a,
+.md-fab-toolbar-actions > button {
+  display: block;
+  float: left;
+  opacity: 0;
+  margin: 0 0 0 16px;
+  height: 64px;
+  width: 48px;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  -webkit-transition: opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  background: none;
+  border: none;
+  outline: none;
+  cursor: pointer;
+}
+.md-fab-toolbar-actions > a:first-child,
+.md-fab-toolbar-actions > button:first-child {
+  margin-left: 0;
+}
+.md-fab-toolbar-actions .material-icons {
+  font-size: 36px;
+  line-height: 64px;
+}
+.md-fab-toolbar.md-fab-animated {
+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
+  border-radius: 4px;
+}
+.md-fab-toolbar.md-fab-animated > i {
+  display: none;
+}
+.md-fab-toolbar.md-fab-active .md-fab-toolbar-actions {
+  visibility: visible;
+}
+.md-fab-toolbar.md-fab-active .md-fab-toolbar-actions > a,
+.md-fab-toolbar.md-fab-active .md-fab-toolbar-actions > button {
+  opacity: 1;
+}
+.md-fab-toolbar.md-fab-small .md-fab-toolbar-actions > a,
+.md-fab-toolbar.md-fab-small .md-fab-toolbar-actions > button {
+  height: 48px;
+  width: 36px;
+  padding: 0;
+  margin: 0 0 0 8px;
+}
+.md-fab-toolbar.md-fab-small .md-fab-toolbar-actions > a:first-child,
+.md-fab-toolbar.md-fab-small .md-fab-toolbar-actions > button:first-child {
+  margin-left: 0;
+}
+.md-fab-toolbar.md-fab-small .md-fab-toolbar-actions .material-icons {
+  font-size: 24px;
+  line-height: 48px;
+  height: inherit;
+}
+.md-fab-sheet {
+  -webkit-transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  cursor: default;
+}
+.md-fab-sheet > i {
+  cursor: pointer;
+}
+.md-fab-sheet-actions {
+  visibility: hidden;
+  white-space: nowrap;
+  overflow: hidden;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  padding: 4px 0;
+}
+.md-fab-sheet-actions > a {
+  display: block;
+  opacity: 0;
+  padding: 4px 16px;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  font: 400 16px / 32px "Roboto", sans-serif;
+  text-align: left;
+}
+.md-fab-sheet-actions > a,
+.md-fab-sheet-actions > a:hover {
+  color: #212121;
+}
+.md-fab-sheet-actions .material-icons {
+  font-size: 24px;
+  margin-right: 8px;
+  vertical-align: -6px;
+}
+.md-fab-sheet.md-fab-animated {
+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
+  border-radius: 4px;
+}
+.md-fab-sheet.md-fab-animated > i {
+  display: none;
+}
+.md-fab-sheet.md-fab-active .md-fab-sheet-actions {
+  visibility: visible;
+}
+.md-fab-sheet.md-fab-active .md-fab-sheet-actions > a {
+  opacity: 1;
+}
+.sidebar_secondary_active .md-fab-wrapper {
+  margin-right: 264px;
+}
+@media only screen and (max-width: 767px) {
+  .sidebar_secondary_active .md-fab-wrapper {
+    margin-right: 280px;
+  }
+}
+.md-toggle-group .md-toggle-button {
+  border-width: 0 0 2px;
+  border-style: solid;
+  border-color: transparent;
+  background: none;
+  line-height: 30px;
+  min-width: 42px;
+  text-align: center;
+  padding: 0 8px;
+  vertical-align: middle;
+  cursor: pointer;
+}
+.md-toggle-group .md-toggle-button.md-toggle-active {
+  border-bottom-color: #212121;
+}
+.md-toggle-group.md-toggle-group-small .md-toggle-button {
+  font-size: 11px;
+  line-height: 24px;
+  min-width: 16px;
+  padding: 0 6px;
+}
+.md-btn-group {
+  display: inline-block;
+  vertical-align: top;
+  position: relative;
+  font-size: 0;
+  white-space: nowrap;
+}
+.md-btn-group .md-btn {
+  vertical-align: top;
+  margin-left: 0 !important;
+}
+.md-btn-group .md-btn:first-child {
+  border-top-right-radius: 0;
+  border-bottom-right-radius: 0;
+}
+.md-btn-group .md-btn:not(:first-child):not(:last-child) {
+  border-radius: 0;
+}
+.md-btn-group .md-btn:last-child {
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0;
+}
+.md-color-red-50 {
+  color: #ffebee !important;
+}
+.md-bg-red-50 {
+  background-color: #ffebee !important;
+}
+.md-color-red-100 {
+  color: #ffcdd2 !important;
+}
+.md-bg-red-100 {
+  background-color: #ffcdd2 !important;
+}
+.md-color-red-200 {
+  color: #ef9a9a !important;
+}
+.md-bg-red-200 {
+  background-color: #ef9a9a !important;
+}
+.md-color-red-300 {
+  color: #e57373 !important;
+}
+.md-bg-red-300 {
+  background-color: #e57373 !important;
+}
+.md-color-red-400 {
+  color: #ef5350 !important;
+}
+.md-bg-red-400 {
+  background-color: #ef5350 !important;
+}
+.md-color-red-500 {
+  color: #f44336 !important;
+}
+.md-bg-red-500 {
+  background-color: #f44336 !important;
+}
+.md-color-red-600 {
+  color: #e53935 !important;
+}
+.md-bg-red-600 {
+  background-color: #e53935 !important;
+}
+.md-color-red-700 {
+  color: #d32f2f !important;
+}
+.md-bg-red-700 {
+  background-color: #d32f2f !important;
+}
+.md-color-red-800 {
+  color: #c62828 !important;
+}
+.md-bg-red-800 {
+  background-color: #c62828 !important;
+}
+.md-color-red-900 {
+  color: #b71c1c !important;
+}
+.md-bg-red-900 {
+  background-color: #b71c1c !important;
+}
+.md-color-red-A100 {
+  color: #ff8a80 !important;
+}
+.md-bg-red-A100 {
+  background-color: #ff8a80 !important;
+}
+.md-color-red-A200 {
+  color: #ff5252 !important;
+}
+.md-bg-red-A200 {
+  background-color: #ff5252 !important;
+}
+.md-color-red-A400 {
+  color: #ff1744 !important;
+}
+.md-bg-red-A400 {
+  background-color: #ff1744 !important;
+}
+.md-color-red-A700 {
+  color: #d50000 !important;
+}
+.md-bg-red-A700 {
+  background-color: #d50000 !important;
+}
+.md-color-pink-50 {
+  color: #fce4ec !important;
+}
+.md-bg-pink-50 {
+  background-color: #fce4ec !important;
+}
+.md-color-pink-100 {
+  color: #f8bbd0 !important;
+}
+.md-bg-pink-100 {
+  background-color: #f8bbd0 !important;
+}
+.md-color-pink-200 {
+  color: #f48fb1 !important;
+}
+.md-bg-pink-200 {
+  background-color: #f48fb1 !important;
+}
+.md-color-pink-300 {
+  color: #f06292 !important;
+}
+.md-bg-pink-300 {
+  background-color: #f06292 !important;
+}
+.md-color-pink-400 {
+  color: #ec407a !important;
+}
+.md-bg-pink-400 {
+  background-color: #ec407a !important;
+}
+.md-color-pink-500 {
+  color: #e91e63 !important;
+}
+.md-bg-pink-500 {
+  background-color: #e91e63 !important;
+}
+.md-color-pink-600 {
+  color: #d81b60 !important;
+}
+.md-bg-pink-600 {
+  background-color: #d81b60 !important;
+}
+.md-color-pink-700 {
+  color: #c2185b !important;
+}
+.md-bg-pink-700 {
+  background-color: #c2185b !important;
+}
+.md-color-pink-800 {
+  color: #ad1457 !important;
+}
+.md-bg-pink-800 {
+  background-color: #ad1457 !important;
+}
+.md-color-pink-900 {
+  color: #880e4f !important;
+}
+.md-bg-pink-900 {
+  background-color: #880e4f !important;
+}
+.md-color-pink-A100 {
+  color: #ff80ab !important;
+}
+.md-bg-pink-A100 {
+  background-color: #ff80ab !important;
+}
+.md-color-pink-A200 {
+  color: #ff4081 !important;
+}
+.md-bg-pink-A200 {
+  background-color: #ff4081 !important;
+}
+.md-color-pink-A400 {
+  color: #f50057 !important;
+}
+.md-bg-pink-A400 {
+  background-color: #f50057 !important;
+}
+.md-color-pink-A700 {
+  color: #c51162 !important;
+}
+.md-bg-pink-A700 {
+  background-color: #c51162 !important;
+}
+.md-color-purple-50 {
+  color: #f3e5f5 !important;
+}
+.md-bg-purple-50 {
+  background-color: #f3e5f5 !important;
+}
+.md-color-purple-100 {
+  color: #e1bee7 !important;
+}
+.md-bg-purple-100 {
+  background-color: #e1bee7 !important;
+}
+.md-color-purple-200 {
+  color: #ce93d8 !important;
+}
+.md-bg-purple-200 {
+  background-color: #ce93d8 !important;
+}
+.md-color-purple-300 {
+  color: #ba68c8 !important;
+}
+.md-bg-purple-300 {
+  background-color: #ba68c8 !important;
+}
+.md-color-purple-400 {
+  color: #ab47bc !important;
+}
+.md-bg-purple-400 {
+  background-color: #ab47bc !important;
+}
+.md-color-purple-500 {
+  color: #9c27b0 !important;
+}
+.md-bg-purple-500 {
+  background-color: #9c27b0 !important;
+}
+.md-color-purple-600 {
+  color: #8e24aa !important;
+}
+.md-bg-purple-600 {
+  background-color: #8e24aa !important;
+}
+.md-color-purple-700 {
+  color: #7b1fa2 !important;
+}
+.md-bg-purple-700 {
+  background-color: #7b1fa2 !important;
+}
+.md-color-purple-800 {
+  color: #6a1b9a !important;
+}
+.md-bg-purple-800 {
+  background-color: #6a1b9a !important;
+}
+.md-color-purple-900 {
+  color: #4a148c !important;
+}
+.md-bg-purple-900 {
+  background-color: #4a148c !important;
+}
+.md-color-purple-A100 {
+  color: #ea80fc !important;
+}
+.md-bg-purple-A100 {
+  background-color: #ea80fc !important;
+}
+.md-color-purple-A200 {
+  color: #e040fb !important;
+}
+.md-bg-purple-A200 {
+  background-color: #e040fb !important;
+}
+.md-color-purple-A400 {
+  color: #d500f9 !important;
+}
+.md-bg-purple-A400 {
+  background-color: #d500f9 !important;
+}
+.md-color-purple-A700 {
+  color: #aa00ff !important;
+}
+.md-bg-purple-A700 {
+  background-color: #aa00ff !important;
+}
+.md-color-deep-purple-50 {
+  color: #ede7f6 !important;
+}
+.md-bg-deep-purple-50 {
+  background-color: #ede7f6 !important;
+}
+.md-color-deep-purple-100 {
+  color: #d1c4e9 !important;
+}
+.md-bg-deep-purple-100 {
+  background-color: #d1c4e9 !important;
+}
+.md-color-deep-purple-200 {
+  color: #b39ddb !important;
+}
+.md-bg-deep-purple-200 {
+  background-color: #b39ddb !important;
+}
+.md-color-deep-purple-300 {
+  color: #9575cd !important;
+}
+.md-bg-deep-purple-300 {
+  background-color: #9575cd !important;
+}
+.md-color-deep-purple-400 {
+  color: #7e57c2 !important;
+}
+.md-bg-deep-purple-400 {
+  background-color: #7e57c2 !important;
+}
+.md-color-deep-purple-500 {
+  color: #673ab7 !important;
+}
+.md-bg-deep-purple-500 {
+  background-color: #673ab7 !important;
+}
+.md-color-deep-purple-600 {
+  color: #5e35b1 !important;
+}
+.md-bg-deep-purple-600 {
+  background-color: #5e35b1 !important;
+}
+.md-color-deep-purple-700 {
+  color: #512da8 !important;
+}
+.md-bg-deep-purple-700 {
+  background-color: #512da8 !important;
+}
+.md-color-deep-purple-800 {
+  color: #4527a0 !important;
+}
+.md-bg-deep-purple-800 {
+  background-color: #4527a0 !important;
+}
+.md-color-deep-purple-900 {
+  color: #311b92 !important;
+}
+.md-bg-deep-purple-900 {
+  background-color: #311b92 !important;
+}
+.md-color-deep-purple-A100 {
+  color: #b388ff !important;
+}
+.md-bg-deep-purple-A100 {
+  background-color: #b388ff !important;
+}
+.md-color-deep-purple-A200 {
+  color: #7c4dff !important;
+}
+.md-bg-deep-purple-A200 {
+  background-color: #7c4dff !important;
+}
+.md-color-deep-purple-A400 {
+  color: #651fff !important;
+}
+.md-bg-deep-purple-A400 {
+  background-color: #651fff !important;
+}
+.md-color-deep-purple-A700 {
+  color: #6200ea !important;
+}
+.md-bg-deep-purple-A700 {
+  background-color: #6200ea !important;
+}
+.md-color-indigo-50 {
+  color: #e8eaf6 !important;
+}
+.md-bg-indigo-50 {
+  background-color: #e8eaf6 !important;
+}
+.md-color-indigo-100 {
+  color: #c5cae9 !important;
+}
+.md-bg-indigo-100 {
+  background-color: #c5cae9 !important;
+}
+.md-color-indigo-200 {
+  color: #9fa8da !important;
+}
+.md-bg-indigo-200 {
+  background-color: #9fa8da !important;
+}
+.md-color-indigo-300 {
+  color: #7986cb !important;
+}
+.md-bg-indigo-300 {
+  background-color: #7986cb !important;
+}
+.md-color-indigo-400 {
+  color: #5c6bc0 !important;
+}
+.md-bg-indigo-400 {
+  background-color: #5c6bc0 !important;
+}
+.md-color-indigo-500 {
+  color: #3f51b5 !important;
+}
+.md-bg-indigo-500 {
+  background-color: #3f51b5 !important;
+}
+.md-color-indigo-600 {
+  color: #3949ab !important;
+}
+.md-bg-indigo-600 {
+  background-color: #3949ab !important;
+}
+.md-color-indigo-700 {
+  color: #303f9f !important;
+}
+.md-bg-indigo-700 {
+  background-color: #303f9f !important;
+}
+.md-color-indigo-800 {
+  color: #283593 !important;
+}
+.md-bg-indigo-800 {
+  background-color: #283593 !important;
+}
+.md-color-indigo-900 {
+  color: #1a237e !important;
+}
+.md-bg-indigo-900 {
+  background-color: #1a237e !important;
+}
+.md-color-indigo-A100 {
+  color: #8c9eff !important;
+}
+.md-bg-indigo-A100 {
+  background-color: #8c9eff !important;
+}
+.md-color-indigo-A200 {
+  color: #536dfe !important;
+}
+.md-bg-indigo-A200 {
+  background-color: #536dfe !important;
+}
+.md-color-indigo-A400 {
+  color: #3d5afe !important;
+}
+.md-bg-indigo-A400 {
+  background-color: #3d5afe !important;
+}
+.md-color-indigo-A700 {
+  color: #304ffe !important;
+}
+.md-bg-indigo-A700 {
+  background-color: #304ffe !important;
+}
+.md-color-blue-50 {
+  color: #e3f2fd !important;
+}
+.md-bg-blue-50 {
+  background-color: #e3f2fd !important;
+}
+.md-color-blue-100 {
+  color: #bbdefb !important;
+}
+.md-bg-blue-100 {
+  background-color: #bbdefb !important;
+}
+.md-color-blue-200 {
+  color: #90caf9 !important;
+}
+.md-bg-blue-200 {
+  background-color: #90caf9 !important;
+}
+.md-color-blue-300 {
+  color: #64b5f6 !important;
+}
+.md-bg-blue-300 {
+  background-color: #64b5f6 !important;
+}
+.md-color-blue-400 {
+  color: #42a5f5 !important;
+}
+.md-bg-blue-400 {
+  background-color: #42a5f5 !important;
+}
+.md-color-blue-500 {
+  color: #2196f3 !important;
+}
+.md-bg-blue-500 {
+  background-color: #2196f3 !important;
+}
+.md-color-blue-600 {
+  color: #1e88e5 !important;
+}
+.md-bg-blue-600 {
+  background-color: #1e88e5 !important;
+}
+.md-color-blue-700 {
+  color: #1976d2 !important;
+}
+.md-bg-blue-700 {
+  background-color: #1976d2 !important;
+}
+.md-color-blue-800 {
+  color: #1565c0 !important;
+}
+.md-bg-blue-800 {
+  background-color: #1565c0 !important;
+}
+.md-color-blue-900 {
+  color: #0d47a1 !important;
+}
+.md-bg-blue-900 {
+  background-color: #0d47a1 !important;
+}
+.md-color-blue-A100 {
+  color: #82b1ff !important;
+}
+.md-bg-blue-A100 {
+  background-color: #82b1ff !important;
+}
+.md-color-blue-A200 {
+  color: #448aff !important;
+}
+.md-bg-blue-A200 {
+  background-color: #448aff !important;
+}
+.md-color-blue-A400 {
+  color: #2979ff !important;
+}
+.md-bg-blue-A400 {
+  background-color: #2979ff !important;
+}
+.md-color-blue-A700 {
+  color: #2962ff !important;
+}
+.md-bg-blue-A700 {
+  background-color: #2962ff !important;
+}
+.md-color-light-blue-50 {
+  color: #e1f5fe !important;
+}
+.md-bg-light-blue-50 {
+  background-color: #e1f5fe !important;
+}
+.md-color-light-blue-100 {
+  color: #b3e5fc !important;
+}
+.md-bg-light-blue-100 {
+  background-color: #b3e5fc !important;
+}
+.md-color-light-blue-200 {
+  color: #81d4fa !important;
+}
+.md-bg-light-blue-200 {
+  background-color: #81d4fa !important;
+}
+.md-color-light-blue-300 {
+  color: #4fc3f7 !important;
+}
+.md-bg-light-blue-300 {
+  background-color: #4fc3f7 !important;
+}
+.md-color-light-blue-400 {
+  color: #29b6f6 !important;
+}
+.md-bg-light-blue-400 {
+  background-color: #29b6f6 !important;
+}
+.md-color-light-blue-500 {
+  color: #03a9f4 !important;
+}
+.md-bg-light-blue-500 {
+  background-color: #03a9f4 !important;
+}
+.md-color-light-blue-600 {
+  color: #039be5 !important;
+}
+.md-bg-light-blue-600 {
+  background-color: #039be5 !important;
+}
+.md-color-light-blue-700 {
+  color: #0288d1 !important;
+}
+.md-bg-light-blue-700 {
+  background-color: #0288d1 !important;
+}
+.md-color-light-blue-800 {
+  color: #0277bd !important;
+}
+.md-bg-light-blue-800 {
+  background-color: #0277bd !important;
+}
+.md-color-light-blue-900 {
+  color: #01579b !important;
+}
+.md-bg-light-blue-900 {
+  background-color: #01579b !important;
+}
+.md-color-light-blue-A100 {
+  color: #80d8ff !important;
+}
+.md-bg-light-blue-A100 {
+  background-color: #80d8ff !important;
+}
+.md-color-light-blue-A200 {
+  color: #40c4ff !important;
+}
+.md-bg-light-blue-A200 {
+  background-color: #40c4ff !important;
+}
+.md-color-light-blue-A400 {
+  color: #00b0ff !important;
+}
+.md-bg-light-blue-A400 {
+  background-color: #00b0ff !important;
+}
+.md-color-light-blue-A700 {
+  color: #0091ea !important;
+}
+.md-bg-light-blue-A700 {
+  background-color: #0091ea !important;
+}
+.md-color-cyan-50 {
+  color: #e0f7fa !important;
+}
+.md-bg-cyan-50 {
+  background-color: #e0f7fa !important;
+}
+.md-color-cyan-100 {
+  color: #b2ebf2 !important;
+}
+.md-bg-cyan-100 {
+  background-color: #b2ebf2 !important;
+}
+.md-color-cyan-200 {
+  color: #80deea !important;
+}
+.md-bg-cyan-200 {
+  background-color: #80deea !important;
+}
+.md-color-cyan-300 {
+  color: #4dd0e1 !important;
+}
+.md-bg-cyan-300 {
+  background-color: #4dd0e1 !important;
+}
+.md-color-cyan-400 {
+  color: #26c6da !important;
+}
+.md-bg-cyan-400 {
+  background-color: #26c6da !important;
+}
+.md-color-cyan-500 {
+  color: #00bcd4 !important;
+}
+.md-bg-cyan-500 {
+  background-color: #00bcd4 !important;
+}
+.md-color-cyan-600 {
+  color: #00acc1 !important;
+}
+.md-bg-cyan-600 {
+  background-color: #00acc1 !important;
+}
+.md-color-cyan-700 {
+  color: #0097a7 !important;
+}
+.md-bg-cyan-700 {
+  background-color: #0097a7 !important;
+}
+.md-color-cyan-800 {
+  color: #00838f !important;
+}
+.md-bg-cyan-800 {
+  background-color: #00838f !important;
+}
+.md-color-cyan-900 {
+  color: #006064 !important;
+}
+.md-bg-cyan-900 {
+  background-color: #006064 !important;
+}
+.md-color-cyan-A100 {
+  color: #84ffff !important;
+}
+.md-bg-cyan-A100 {
+  background-color: #84ffff !important;
+}
+.md-color-cyan-A200 {
+  color: #18ffff !important;
+}
+.md-bg-cyan-A200 {
+  background-color: #18ffff !important;
+}
+.md-color-cyan-A400 {
+  color: #00e5ff !important;
+}
+.md-bg-cyan-A400 {
+  background-color: #00e5ff !important;
+}
+.md-color-cyan-A700 {
+  color: #00b8d4 !important;
+}
+.md-bg-cyan-A700 {
+  background-color: #00b8d4 !important;
+}
+.md-color-teal-50 {
+  color: #e0f2f1 !important;
+}
+.md-bg-teal-50 {
+  background-color: #e0f2f1 !important;
+}
+.md-color-teal-100 {
+  color: #b2dfdb !important;
+}
+.md-bg-teal-100 {
+  background-color: #b2dfdb !important;
+}
+.md-color-teal-200 {
+  color: #80cbc4 !important;
+}
+.md-bg-teal-200 {
+  background-color: #80cbc4 !important;
+}
+.md-color-teal-300 {
+  color: #4db6ac !important;
+}
+.md-bg-teal-300 {
+  background-color: #4db6ac !important;
+}
+.md-color-teal-400 {
+  color: #26a69a !important;
+}
+.md-bg-teal-400 {
+  background-color: #26a69a !important;
+}
+.md-color-teal-500 {
+  color: #009688 !important;
+}
+.md-bg-teal-500 {
+  background-color: #009688 !important;
+}
+.md-color-teal-600 {
+  color: #00897b !important;
+}
+.md-bg-teal-600 {
+  background-color: #00897b !important;
+}
+.md-color-teal-700 {
+  color: #00796b !important;
+}
+.md-bg-teal-700 {
+  background-color: #00796b !important;
+}
+.md-color-teal-800 {
+  color: #00695c !important;
+}
+.md-bg-teal-800 {
+  background-color: #00695c !important;
+}
+.md-color-teal-900 {
+  color: #004d40 !important;
+}
+.md-bg-teal-900 {
+  background-color: #004d40 !important;
+}
+.md-color-teal-A100 {
+  color: #a7ffeb !important;
+}
+.md-bg-teal-A100 {
+  background-color: #a7ffeb !important;
+}
+.md-color-teal-A200 {
+  color: #64ffda !important;
+}
+.md-bg-teal-A200 {
+  background-color: #64ffda !important;
+}
+.md-color-teal-A400 {
+  color: #1de9b6 !important;
+}
+.md-bg-teal-A400 {
+  background-color: #1de9b6 !important;
+}
+.md-color-teal-A700 {
+  color: #00bfa5 !important;
+}
+.md-bg-teal-A700 {
+  background-color: #00bfa5 !important;
+}
+.md-color-green-50 {
+  color: #e8f5e9 !important;
+}
+.md-bg-green-50 {
+  background-color: #e8f5e9 !important;
+}
+.md-color-green-100 {
+  color: #c8e6c9 !important;
+}
+.md-bg-green-100 {
+  background-color: #c8e6c9 !important;
+}
+.md-color-green-200 {
+  color: #a5d6a7 !important;
+}
+.md-bg-green-200 {
+  background-color: #a5d6a7 !important;
+}
+.md-color-green-300 {
+  color: #81c784 !important;
+}
+.md-bg-green-300 {
+  background-color: #81c784 !important;
+}
+.md-color-green-400 {
+  color: #66bb6a !important;
+}
+.md-bg-green-400 {
+  background-color: #66bb6a !important;
+}
+.md-color-green-500 {
+  color: #4caf50 !important;
+}
+.md-bg-green-500 {
+  background-color: #4caf50 !important;
+}
+.md-color-green-600 {
+  color: #43a047 !important;
+}
+.md-bg-green-600 {
+  background-color: #43a047 !important;
+}
+.md-color-green-700 {
+  color: #388e3c !important;
+}
+.md-bg-green-700 {
+  background-color: #388e3c !important;
+}
+.md-color-green-800 {
+  color: #2e7d32 !important;
+}
+.md-bg-green-800 {
+  background-color: #2e7d32 !important;
+}
+.md-color-green-900 {
+  color: #1b5e20 !important;
+}
+.md-bg-green-900 {
+  background-color: #1b5e20 !important;
+}
+.md-color-green-A100 {
+  color: #b9f6ca !important;
+}
+.md-bg-green-A100 {
+  background-color: #b9f6ca !important;
+}
+.md-color-green-A200 {
+  color: #69f0ae !important;
+}
+.md-bg-green-A200 {
+  background-color: #69f0ae !important;
+}
+.md-color-green-A400 {
+  color: #00e676 !important;
+}
+.md-bg-green-A400 {
+  background-color: #00e676 !important;
+}
+.md-color-green-A700 {
+  color: #00c853 !important;
+}
+.md-bg-green-A700 {
+  background-color: #00c853 !important;
+}
+.md-color-light-green-50 {
+  color: #f1f8e9 !important;
+}
+.md-bg-light-green-50 {
+  background-color: #f1f8e9 !important;
+}
+.md-color-light-green-100 {
+  color: #dcedc8 !important;
+}
+.md-bg-light-green-100 {
+  background-color: #dcedc8 !important;
+}
+.md-color-light-green-200 {
+  color: #c5e1a5 !important;
+}
+.md-bg-light-green-200 {
+  background-color: #c5e1a5 !important;
+}
+.md-color-light-green-300 {
+  color: #aed581 !important;
+}
+.md-bg-light-green-300 {
+  background-color: #aed581 !important;
+}
+.md-color-light-green-400 {
+  color: #9ccc65 !important;
+}
+.md-bg-light-green-400 {
+  background-color: #9ccc65 !important;
+}
+.md-color-light-green-500 {
+  color: #8bc34a !important;
+}
+.md-bg-light-green-500 {
+  background-color: #8bc34a !important;
+}
+.md-color-light-green-600 {
+  color: #7cb342 !important;
+}
+.md-bg-light-green-600 {
+  background-color: #7cb342 !important;
+}
+.md-color-light-green-700 {
+  color: #689f38 !important;
+}
+.md-bg-light-green-700 {
+  background-color: #689f38 !important;
+}
+.md-color-light-green-800 {
+  color: #558b2f !important;
+}
+.md-bg-light-green-800 {
+  background-color: #558b2f !important;
+}
+.md-color-light-green-900 {
+  color: #33691e !important;
+}
+.md-bg-light-green-900 {
+  background-color: #33691e !important;
+}
+.md-color-light-green-A100 {
+  color: #ccff90 !important;
+}
+.md-bg-light-green-A100 {
+  background-color: #ccff90 !important;
+}
+.md-color-light-green-A200 {
+  color: #b2ff59 !important;
+}
+.md-bg-light-green-A200 {
+  background-color: #b2ff59 !important;
+}
+.md-color-light-green-A400 {
+  color: #76ff03 !important;
+}
+.md-bg-light-green-A400 {
+  background-color: #76ff03 !important;
+}
+.md-color-light-green-A700 {
+  color: #64dd17 !important;
+}
+.md-bg-light-green-A700 {
+  background-color: #64dd17 !important;
+}
+.md-color-lime-50 {
+  color: #f9fbe7 !important;
+}
+.md-bg-lime-50 {
+  background-color: #f9fbe7 !important;
+}
+.md-color-lime-100 {
+  color: #f0f4c3 !important;
+}
+.md-bg-lime-100 {
+  background-color: #f0f4c3 !important;
+}
+.md-color-lime-200 {
+  color: #e6ee9c !important;
+}
+.md-bg-lime-200 {
+  background-color: #e6ee9c !important;
+}
+.md-color-lime-300 {
+  color: #dce775 !important;
+}
+.md-bg-lime-300 {
+  background-color: #dce775 !important;
+}
+.md-color-lime-400 {
+  color: #d4e157 !important;
+}
+.md-bg-lime-400 {
+  background-color: #d4e157 !important;
+}
+.md-color-lime-500 {
+  color: #cddc39 !important;
+}
+.md-bg-lime-500 {
+  background-color: #cddc39 !important;
+}
+.md-color-lime-600 {
+  color: #c0ca33 !important;
+}
+.md-bg-lime-600 {
+  background-color: #c0ca33 !important;
+}
+.md-color-lime-700 {
+  color: #afb42b !important;
+}
+.md-bg-lime-700 {
+  background-color: #afb42b !important;
+}
+.md-color-lime-800 {
+  color: #9e9d24 !important;
+}
+.md-bg-lime-800 {
+  background-color: #9e9d24 !important;
+}
+.md-color-lime-900 {
+  color: #827717 !important;
+}
+.md-bg-lime-900 {
+  background-color: #827717 !important;
+}
+.md-color-lime-A100 {
+  color: #f4ff81 !important;
+}
+.md-bg-lime-A100 {
+  background-color: #f4ff81 !important;
+}
+.md-color-lime-A200 {
+  color: #eeff41 !important;
+}
+.md-bg-lime-A200 {
+  background-color: #eeff41 !important;
+}
+.md-color-lime-A400 {
+  color: #c6ff00 !important;
+}
+.md-bg-lime-A400 {
+  background-color: #c6ff00 !important;
+}
+.md-color-lime-A700 {
+  color: #aeea00 !important;
+}
+.md-bg-lime-A700 {
+  background-color: #aeea00 !important;
+}
+.md-color-yellow-50 {
+  color: #fffde7 !important;
+}
+.md-bg-yellow-50 {
+  background-color: #fffde7 !important;
+}
+.md-color-yellow-100 {
+  color: #fff9c4 !important;
+}
+.md-bg-yellow-100 {
+  background-color: #fff9c4 !important;
+}
+.md-color-yellow-200 {
+  color: #fff59d !important;
+}
+.md-bg-yellow-200 {
+  background-color: #fff59d !important;
+}
+.md-color-yellow-300 {
+  color: #fff176 !important;
+}
+.md-bg-yellow-300 {
+  background-color: #fff176 !important;
+}
+.md-color-yellow-400 {
+  color: #ffee58 !important;
+}
+.md-bg-yellow-400 {
+  background-color: #ffee58 !important;
+}
+.md-color-yellow-500 {
+  color: #ffeb3b !important;
+}
+.md-bg-yellow-500 {
+  background-color: #ffeb3b !important;
+}
+.md-color-yellow-600 {
+  color: #fdd835 !important;
+}
+.md-bg-yellow-600 {
+  background-color: #fdd835 !important;
+}
+.md-color-yellow-700 {
+  color: #fbc02d !important;
+}
+.md-bg-yellow-700 {
+  background-color: #fbc02d !important;
+}
+.md-color-yellow-800 {
+  color: #f9a825 !important;
+}
+.md-bg-yellow-800 {
+  background-color: #f9a825 !important;
+}
+.md-color-yellow-900 {
+  color: #f57f17 !important;
+}
+.md-bg-yellow-900 {
+  background-color: #f57f17 !important;
+}
+.md-color-yellow-A100 {
+  color: #ffff8d !important;
+}
+.md-bg-yellow-A100 {
+  background-color: #ffff8d !important;
+}
+.md-color-yellow-A200 {
+  color: #ffff00 !important;
+}
+.md-bg-yellow-A200 {
+  background-color: #ffff00 !important;
+}
+.md-color-yellow-A400 {
+  color: #ffea00 !important;
+}
+.md-bg-yellow-A400 {
+  background-color: #ffea00 !important;
+}
+.md-color-yellow-A700 {
+  color: #ffd600 !important;
+}
+.md-bg-yellow-A700 {
+  background-color: #ffd600 !important;
+}
+.md-color-amber-50 {
+  color: #fff8e1 !important;
+}
+.md-bg-amber-50 {
+  background-color: #fff8e1 !important;
+}
+.md-color-amber-100 {
+  color: #ffecb3 !important;
+}
+.md-bg-amber-100 {
+  background-color: #ffecb3 !important;
+}
+.md-color-amber-200 {
+  color: #ffe082 !important;
+}
+.md-bg-amber-200 {
+  background-color: #ffe082 !important;
+}
+.md-color-amber-300 {
+  color: #ffd54f !important;
+}
+.md-bg-amber-300 {
+  background-color: #ffd54f !important;
+}
+.md-color-amber-400 {
+  color: #ffca28 !important;
+}
+.md-bg-amber-400 {
+  background-color: #ffca28 !important;
+}
+.md-color-amber-500 {
+  color: #ffc107 !important;
+}
+.md-bg-amber-500 {
+  background-color: #ffc107 !important;
+}
+.md-color-amber-600 {
+  color: #ffb300 !important;
+}
+.md-bg-amber-600 {
+  background-color: #ffb300 !important;
+}
+.md-color-amber-700 {
+  color: #ffa000 !important;
+}
+.md-bg-amber-700 {
+  background-color: #ffa000 !important;
+}
+.md-color-amber-800 {
+  color: #ff8f00 !important;
+}
+.md-bg-amber-800 {
+  background-color: #ff8f00 !important;
+}
+.md-color-amber-900 {
+  color: #ff6f00 !important;
+}
+.md-bg-amber-900 {
+  background-color: #ff6f00 !important;
+}
+.md-color-amber-A100 {
+  color: #ffe57f !important;
+}
+.md-bg-amber-A100 {
+  background-color: #ffe57f !important;
+}
+.md-color-amber-A200 {
+  color: #ffd740 !important;
+}
+.md-bg-amber-A200 {
+  background-color: #ffd740 !important;
+}
+.md-color-amber-A400 {
+  color: #ffc400 !important;
+}
+.md-bg-amber-A400 {
+  background-color: #ffc400 !important;
+}
+.md-color-amber-A700 {
+  color: #ffab00 !important;
+}
+.md-bg-amber-A700 {
+  background-color: #ffab00 !important;
+}
+.md-color-orange-50 {
+  color: #fff3e0 !important;
+}
+.md-bg-orange-50 {
+  background-color: #fff3e0 !important;
+}
+.md-color-orange-100 {
+  color: #ffe0b2 !important;
+}
+.md-bg-orange-100 {
+  background-color: #ffe0b2 !important;
+}
+.md-color-orange-200 {
+  color: #ffcc80 !important;
+}
+.md-bg-orange-200 {
+  background-color: #ffcc80 !important;
+}
+.md-color-orange-300 {
+  color: #ffb74d !important;
+}
+.md-bg-orange-300 {
+  background-color: #ffb74d !important;
+}
+.md-color-orange-400 {
+  color: #ffa726 !important;
+}
+.md-bg-orange-400 {
+  background-color: #ffa726 !important;
+}
+.md-color-orange-500 {
+  color: #ff9800 !important;
+}
+.md-bg-orange-500 {
+  background-color: #ff9800 !important;
+}
+.md-color-orange-600 {
+  color: #fb8c00 !important;
+}
+.md-bg-orange-600 {
+  background-color: #fb8c00 !important;
+}
+.md-color-orange-700 {
+  color: #f57c00 !important;
+}
+.md-bg-orange-700 {
+  background-color: #f57c00 !important;
+}
+.md-color-orange-800 {
+  color: #ef6c00 !important;
+}
+.md-bg-orange-800 {
+  background-color: #ef6c00 !important;
+}
+.md-color-orange-900 {
+  color: #e65100 !important;
+}
+.md-bg-orange-900 {
+  background-color: #e65100 !important;
+}
+.md-color-orange-A100 {
+  color: #ffd180 !important;
+}
+.md-bg-orange-A100 {
+  background-color: #ffd180 !important;
+}
+.md-color-orange-A200 {
+  color: #ffab40 !important;
+}
+.md-bg-orange-A200 {
+  background-color: #ffab40 !important;
+}
+.md-color-orange-A400 {
+  color: #ff9100 !important;
+}
+.md-bg-orange-A400 {
+  background-color: #ff9100 !important;
+}
+.md-color-orange-A700 {
+  color: #ff6d00 !important;
+}
+.md-bg-orange-A700 {
+  background-color: #ff6d00 !important;
+}
+.md-color-deep-orange-50 {
+  color: #fbe9e7 !important;
+}
+.md-bg-deep-orange-50 {
+  background-color: #fbe9e7 !important;
+}
+.md-color-deep-orange-100 {
+  color: #ffccbc !important;
+}
+.md-bg-deep-orange-100 {
+  background-color: #ffccbc !important;
+}
+.md-color-deep-orange-200 {
+  color: #ffab91 !important;
+}
+.md-bg-deep-orange-200 {
+  background-color: #ffab91 !important;
+}
+.md-color-deep-orange-300 {
+  color: #ff8a65 !important;
+}
+.md-bg-deep-orange-300 {
+  background-color: #ff8a65 !important;
+}
+.md-color-deep-orange-400 {
+  color: #ff7043 !important;
+}
+.md-bg-deep-orange-400 {
+  background-color: #ff7043 !important;
+}
+.md-color-deep-orange-500 {
+  color: #ff5722 !important;
+}
+.md-bg-deep-orange-500 {
+  background-color: #ff5722 !important;
+}
+.md-color-deep-orange-600 {
+  color: #f4511e !important;
+}
+.md-bg-deep-orange-600 {
+  background-color: #f4511e !important;
+}
+.md-color-deep-orange-700 {
+  color: #e64a19 !important;
+}
+.md-bg-deep-orange-700 {
+  background-color: #e64a19 !important;
+}
+.md-color-deep-orange-800 {
+  color: #d84315 !important;
+}
+.md-bg-deep-orange-800 {
+  background-color: #d84315 !important;
+}
+.md-color-deep-orange-900 {
+  color: #bf360c !important;
+}
+.md-bg-deep-orange-900 {
+  background-color: #bf360c !important;
+}
+.md-color-deep-orange-A100 {
+  color: #ff9e80 !important;
+}
+.md-bg-deep-orange-A100 {
+  background-color: #ff9e80 !important;
+}
+.md-color-deep-orange-A200 {
+  color: #ff6e40 !important;
+}
+.md-bg-deep-orange-A200 {
+  background-color: #ff6e40 !important;
+}
+.md-color-deep-orange-A400 {
+  color: #ff3d00 !important;
+}
+.md-bg-deep-orange-A400 {
+  background-color: #ff3d00 !important;
+}
+.md-color-deep-orange-A700 {
+  color: #dd2c00 !important;
+}
+.md-bg-deep-orange-A700 {
+  background-color: #dd2c00 !important;
+}
+.md-color-brown-50 {
+  color: #efebe9 !important;
+}
+.md-bg-brown-50 {
+  background-color: #efebe9 !important;
+}
+.md-color-brown-100 {
+  color: #d7ccc8 !important;
+}
+.md-bg-brown-100 {
+  background-color: #d7ccc8 !important;
+}
+.md-color-brown-200 {
+  color: #bcaaa4 !important;
+}
+.md-bg-brown-200 {
+  background-color: #bcaaa4 !important;
+}
+.md-color-brown-300 {
+  color: #a1887f !important;
+}
+.md-bg-brown-300 {
+  background-color: #a1887f !important;
+}
+.md-color-brown-400 {
+  color: #8d6e63 !important;
+}
+.md-bg-brown-400 {
+  background-color: #8d6e63 !important;
+}
+.md-color-brown-500 {
+  color: #795548 !important;
+}
+.md-bg-brown-500 {
+  background-color: #795548 !important;
+}
+.md-color-brown-600 {
+  color: #6d4c41 !important;
+}
+.md-bg-brown-600 {
+  background-color: #6d4c41 !important;
+}
+.md-color-brown-700 {
+  color: #5d4037 !important;
+}
+.md-bg-brown-700 {
+  background-color: #5d4037 !important;
+}
+.md-color-brown-800 {
+  color: #4e342e !important;
+}
+.md-bg-brown-800 {
+  background-color: #4e342e !important;
+}
+.md-color-brown-900 {
+  color: #3e2723 !important;
+}
+.md-bg-brown-900 {
+  background-color: #3e2723 !important;
+}
+.md-color-grey-50 {
+  color: #fafafa !important;
+}
+.md-bg-grey-50 {
+  background-color: #fafafa !important;
+}
+.md-color-grey-100 {
+  color: #f5f5f5 !important;
+}
+.md-bg-grey-100 {
+  background-color: #f5f5f5 !important;
+}
+.md-color-grey-200 {
+  color: #eeeeee !important;
+}
+.md-bg-grey-200 {
+  background-color: #eeeeee !important;
+}
+.md-color-grey-300 {
+  color: #e0e0e0 !important;
+}
+.md-bg-grey-300 {
+  background-color: #e0e0e0 !important;
+}
+.md-color-grey-400 {
+  color: #bdbdbd !important;
+}
+.md-bg-grey-400 {
+  background-color: #bdbdbd !important;
+}
+.md-color-grey-500 {
+  color: #9e9e9e !important;
+}
+.md-bg-grey-500 {
+  background-color: #9e9e9e !important;
+}
+.md-color-grey-600 {
+  color: #757575 !important;
+}
+.md-bg-grey-600 {
+  background-color: #757575 !important;
+}
+.md-color-grey-700 {
+  color: #616161 !important;
+}
+.md-bg-grey-700 {
+  background-color: #616161 !important;
+}
+.md-color-grey-800 {
+  color: #424242 !important;
+}
+.md-bg-grey-800 {
+  background-color: #424242 !important;
+}
+.md-color-grey-900 {
+  color: #212121 !important;
+}
+.md-bg-grey-900 {
+  background-color: #212121 !important;
+}
+.md-color-blue-grey-50 {
+  color: #eceff1 !important;
+}
+.md-bg-blue-grey-50 {
+  background-color: #eceff1 !important;
+}
+.md-color-blue-grey-100 {
+  color: #cfd8dc !important;
+}
+.md-bg-blue-grey-100 {
+  background-color: #cfd8dc !important;
+}
+.md-color-blue-grey-200 {
+  color: #b0bec5 !important;
+}
+.md-bg-blue-grey-200 {
+  background-color: #b0bec5 !important;
+}
+.md-color-blue-grey-300 {
+  color: #90a4ae !important;
+}
+.md-bg-blue-grey-300 {
+  background-color: #90a4ae !important;
+}
+.md-color-blue-grey-400 {
+  color: #78909c !important;
+}
+.md-bg-blue-grey-400 {
+  background-color: #78909c !important;
+}
+.md-color-blue-grey-500 {
+  color: #607d8b !important;
+}
+.md-bg-blue-grey-500 {
+  background-color: #607d8b !important;
+}
+.md-color-blue-grey-600 {
+  color: #546e7a !important;
+}
+.md-bg-blue-grey-600 {
+  background-color: #546e7a !important;
+}
+.md-color-blue-grey-700 {
+  color: #455a64 !important;
+}
+.md-bg-blue-grey-700 {
+  background-color: #455a64 !important;
+}
+.md-color-blue-grey-800 {
+  color: #37474f !important;
+}
+.md-bg-blue-grey-800 {
+  background-color: #37474f !important;
+}
+.md-color-blue-grey-900 {
+  color: #263238 !important;
+}
+.md-bg-blue-grey-900 {
+  background-color: #263238 !important;
+}
+.md-color-white {
+  color: #fff !important;
+}
+/* cards */
+.md-card {
+  background: #fff;
+  position: relative;
+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
+  border: none;
+}
+.md-card + .md-card,
+.md-card + .uk-grid,
+.uk-grid + .md-card {
+  margin-top: 25px;
+}
+.md-card .full_width_in_card {
+  padding: 16px 24px;
+  background: rgba(0, 0, 0, 0.085);
+}
+.md-card .md-card-toolbar {
+  height: 64px;
+  padding: 0 16px;
+  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
+  background: #fff;
+}
+.md-card .md-card-toolbar:before,
+.md-card .md-card-toolbar:after {
+  content: " ";
+  display: table;
+}
+.md-card .md-card-toolbar:after {
+  clear: both;
+}
+.md-card .md-card-toolbar-heading-text {
+  font: 500 14px / 50px "Roboto", sans-serif;
+  color: #212121;
+  margin: 0;
+  float: left;
+  overflow: hidden;
+  height: 48px;
+}
+.md-card .md-card-toolbar-heading-text.large {
+  font-size: 18px;
+  font-weight: 400;
+}
+.md-card .md-card-toolbar .md-toggle-group {
+  float: left;
+  margin: 8px 0 0 16px;
+}
+.md-card .md-card-toolbar .md-toggle-group.md-toggle-group-small {
+  margin-top: 10px;
+}
+.md-card .md-card-toolbar .md-card-toolbar-actions {
+  float: right;
+  padding-top: 10px;
+}
+.md-card .md-card-toolbar .md-card-toolbar-actions .uk-open .md-card-toolbar-icon {
+  background: rgba(0, 0, 0, 0.085);
+  color: #212121;
+}
+.md-card .md-card-toolbar .md-card-toolbar-actions .md-card-dropdown {
+  display: inline-block;
+  position: relative;
+}
+.md-card .md-card-toolbar .md-card-toolbar-actions .selectize-control {
+  min-width: 220px;
+  margin-top: -3px;
+}
+.md-card .md-card-toolbar .md-card-toolbar-actions .selectize-control .selectize-input {
+  min-height: 30px;
+  padding: 4px 8px;
+}
+.md-card .md-card-toolbar .md-card-toolbar-actions .selectize-control .selectize-dropdown {
+  margin-top: -34px;
+}
+.md-card .md-card-toolbar .md-icon + .md-card-dropdown {
+  margin-left: 4px;
+}
+.md-card .md-card-toolbar .md-card-fullscreen-deactivate {
+  margin: 9px 8px 0 0;
+}
+.md-card .md-card-toolbar-input {
+  border: none;
+  font: 400 18px / 24px "Roboto", sans-serif;
+  height: auto;
+  background: none !important;
+  padding: 12px 0;
+  width: 50%;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+}
+.md-card .md-card-toolbar .uk-tab {
+  margin-top: -2px;
+  border-bottom: none;
+}
+.md-card .md-card-toolbar .uk-tab li > a {
+  padding: 10px 8px !important;
+}
+.md-card .md-card-head {
+  height: 160px;
+  position: relative;
+  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
+}
+.md-card .md-card-head-menu {
+  position: absolute;
+  right: 8px;
+  top: 8px;
+}
+.md-card .md-card-head-avatar {
+  width: 82px;
+  height: 82px;
+  border-radius: 50%;
+  margin-top: 16px;
+  border: 2px solid #fff;
+  display: inline-block;
+}
+.md-card .md-card-head-text {
+  padding: 8px 16px 16px;
+  font: 500 16px / 22px "Roboto", sans-serif;
+  color: #212121;
+  margin: 0;
+}
+.md-card .md-card-head-text span {
+  display: block;
+  font: 400 12px / 18px "Roboto", sans-serif;
+  margin-top: -2px;
+}
+.md-card .md-card-head-text.text_dark {
+  color: #212121 !important;
+}
+.md-card .md-card-head-text-over {
+  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.65)), to(rgba(0, 0, 0, 0)));
+  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0) 100%);
+}
+.md-card .md-card-head-subtext {
+  position: absolute;
+  bottom: 10px;
+  left: 0;
+  right: 0;
+  padding: 0 16px;
+  text-align: right;
+  color: #fff;
+}
+.md-card .md-card-head-subtext span {
+  font-size: 26px;
+}
+.md-card .md-card-head-icon {
+  font-size: 48px;
+  color: #fff;
+  vertical-align: middle;
+}
+.md-card .md-card-head.head_background {
+  background-repeat: no-repeat;
+  background-position: center center;
+  background-size: cover;
+  border-bottom-color: transparent;
+}
+.md-card .md-card-head.head_background .md-card-head-text {
+  color: #fff;
+}
+.md-card .md-card-head.head_background_top {
+  background-repeat: no-repeat;
+  background-position: center top;
+}
+.md-card .md-card-head.head_background_bottom {
+  background-repeat: no-repeat;
+  background-position: center bottom;
+}
+.md-card .md-card-head .head_chart {
+  height: 100px;
+  width: 100%;
+  position: absolute !important;
+  left: 0;
+  top: 40px;
+}
+.md-card .md-card-head .fitVid_player {
+  width: 100%;
+  height: 160px;
+  overflow: hidden;
+}
+.md-card .md-card-head-img {
+  height: 100%;
+  width: auto;
+}
+.md-card .md-card-head iframe {
+  height: 160px;
+}
+.md-card .md-card-content {
+  padding: 16px;
+}
+.md-card .md-card-content.padding-reset {
+  padding: 0;
+}
+.md-card .md-card-content.large-padding {
+  padding: 24px 35px;
+}
+.md-card .md-card-content.small-padding {
+  padding: 8px;
+}
+.md-card .md-card-footer {
+  padding: 16px;
+  font-size: 14px;
+  line-height: 18px;
+}
+.md-card .md-card-footer .md-card-footer-head {
+  font: 500 16px / 20px "Roboto", sans-serif;
+  margin: 0 0 4px;
+}
+.md-card.md-card-fullscreen {
+  position: fixed;
+  z-index: 9998;
+  overflow-x: hidden;
+}
+.md-card.md-card-fullscreen .md-card-fullscreen-activate {
+  display: none;
+}
+.md-card .md-card-fullscreen-content {
+  display: none;
+  padding: 16px 0;
+}
+.md-card-fullscreen-content-hidden .md-card .md-card-fullscreen-content {
+  display: block;
+  visibility: hidden;
+  padding: 0;
+}
+.md-card.mdToolbar_fixed {
+  overflow-y: hidden;
+}
+.md-card.mdToolbar_fixed > .md-card-toolbar {
+  position: fixed;
+  left: 0;
+  right: 0;
+  top: 0;
+  z-index: 9999;
+  -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
+  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
+}
+.md-card.mdToolbar_fixed > .md-card-content {
+  overflow-y: scroll;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  position: absolute;
+  width: 100%;
+  top: 64px;
+  bottom: 0;
+}
+.md-card.md-card-overlay {
+  overflow: hidden;
+  padding-bottom: 54px;
+}
+.md-card.md-card-overlay .md-card-content {
+  height: 142px;
+  overflow: hidden;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+}
+.md-card.md-card-overlay .md-card-content.no_truncate {
+  position: relative;
+}
+.md-card.md-card-overlay .md-card-content.no_truncate:after {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  height: 8px;
+  background-image: -webkit-gradient(linear, left bottom, left top, color-stop(50%, #ffffff), to(rgba(255, 255, 255, 0)));
+  background-image: linear-gradient(to top, #ffffff 50%, rgba(255, 255, 255, 0) 100%);
+  display: block;
+  content: '';
+  z-index: 10;
+}
+.md-card.md-card-overlay .md-card-content > pre {
+  margin-top: 0;
+  max-height: 110px;
+}
+.md-card.md-card-overlay .md-card-content > pre > code {
+  overflow: hidden;
+}
+.md-card.md-card-overlay .md-card-overlay-content {
+  position: absolute;
+  top: 100%;
+  left: 0;
+  right: 0;
+  padding: 0 16px;
+  margin-top: -54px;
+  border-top: 1px solid rgba(0, 0, 0, 0.12);
+  text-align: left;
+  bottom: 0;
+  background: #fff;
+  z-index: 10;
+  -webkit-transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+}
+.md-card.md-card-overlay .md-card-overlay-content p {
+  margin: 0;
+}
+.md-card.md-card-overlay .md-card-overlay-content p + * {
+  margin-top: 16px;
+}
+.md-card.md-card-overlay .md-card-overlay-content p + p {
+  margin-top: 4px;
+}
+.md-card.md-card-overlay .md-card-overlay-header {
+  padding: 12px 0;
+}
+.md-card.md-card-overlay .md-card-overlay-header:before,
+.md-card.md-card-overlay .md-card-overlay-header:after {
+  content: " ";
+  display: table;
+}
+.md-card.md-card-overlay .md-card-overlay-header:after {
+  clear: both;
+}
+.md-card.md-card-overlay .md-card-overlay-header h3,
+.md-card.md-card-overlay .md-card-overlay-header h4 {
+  margin: 0;
+  text-overflow: ellipsis;
+  display: inline-block;
+  vertical-align: top;
+  white-space: nowrap;
+  overflow: hidden;
+  width: 100%;
+  padding-right: 32px;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+}
+.md-card.md-card-overlay .md-card-overlay-header h3 {
+  font: 400 16px / 30px "Roboto", sans-serif;
+}
+.md-card.md-card-overlay .md-card-overlay-header h4 {
+  font: 500 14px / 30px "Roboto", sans-serif;
+}
+.md-card.md-card-overlay .md-card-overlay-header .md-icon {
+  position: absolute;
+  right: 12px;
+  top: 11px;
+}
+.md-card.md-card-overlay-active .md-card-overlay-content {
+  top: -1px;
+  margin-top: 0;
+}
+.md-card.md-card-hover {
+  -webkit-transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  will-change: box-shadow;
+}
+.md-card.md-card-hover:hover {
+  -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
+  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
+}
+.uk-sortable-dragged .md-card {
+  -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
+  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
+}
+.uk-sortable-dragged .md-card canvas {
+  margin: 0 auto;
+  display: block;
+}
+.md-card .heading_list {
+  padding: 0;
+}
+.md-card-primary,
+.md-card-success,
+.md-card-danger,
+.md-card-warning {
+  border-left: 4px solid transparent;
+}
+.md-card-primary {
+  border-left-color: #2196f3;
+}
+.md-card-success {
+  border-left-color: #7cb342;
+}
+.md-card-danger {
+  border-left-color: #e53935;
+}
+.md-card-warning {
+  border-left-color: #ffa000;
+}
+.md-expand,
+.md-expand-group > * {
+  opacity: 0;
+}
+.md-card-placeholder {
+  min-width: 100%;
+}
+.md-card-list-wrapper,
+.md-card-list-wrapper:before,
+.md-card-list-wrapper:after,
+.md-card-list-wrapper *,
+.md-card-list-wrapper *:before,
+.md-card-list-wrapper *:after {
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+}
+.md-card-list-wrapper .md-card-list-header {
+  position: absolute;
+  top: -24px;
+  left: 0;
+}
+.md-card-list-wrapper .md-card-list {
+  margin: 48px 0 0 0;
+  position: relative;
+}
+.md-card-list-wrapper .md-card-list:first-child {
+  margin-top: 24px;
+}
+.md-card-list-wrapper .md-card-list > ul {
+  margin: 0;
+  padding: 0;
+  list-style: none;
+}
+.md-card-list-wrapper .md-card-list > ul > li {
+  padding: 0;
+  margin: 0;
+  list-style: none;
+}
+.md-card-list-wrapper .md-card-list > ul > li {
+  min-height: 34px;
+  padding: 8px 16px;
+  font-size: 13px;
+  -webkit-transition: background 150ms,padding 200ms;
+  transition: background 150ms,padding 200ms;
+  background: #fff;
+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
+}
+.md-card-list-wrapper .md-card-list > ul > li:before,
+.md-card-list-wrapper .md-card-list > ul > li:after {
+  content: " ";
+  display: table;
+}
+.md-card-list-wrapper .md-card-list > ul > li:after {
+  clear: both;
+}
+.md-card-list-wrapper .md-card-list > ul > li.item-shown {
+  background: #fff;
+  padding: 8px 36px;
+}
+@media only screen and (max-width: 767px) {
+  .md-card-list-wrapper .md-card-list > ul > li.item-shown .md-card-list-item-subject {
+    clear: both;
+    float: none;
+    padding-top: 16px;
+  }
+  .md-card-list-wrapper .md-card-list > ul > li.item-shown .md-card-list-item-subject > span {
+    white-space: normal;
+  }
+}
+.md-card-list-wrapper .md-card-list > ul > li.item-shown .md-card-list-item-sender {
+  width: auto;
+  overflow: hidden;
+}
+.md-card-list-wrapper .md-card-list > ul > li.item-shown.md-card-list-item-selected {
+  position: relative;
+}
+.md-card-list-wrapper .md-card-list > ul > li.item-shown.md-card-list-item-selected:before {
+  content: '';
+  position: absolute;
+  display: block;
+  left: 0;
+  top: 0;
+  bottom: 0;
+  width: 8px;
+  background: #e3f2fd;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-select,
+.md-card-list-wrapper .md-card-list .md-card-list-item-avatar-wrapper,
+.md-card-list-wrapper .md-card-list .md-card-list-item-sender {
+  float: left;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-select {
+  padding: 6px 8px 0 0;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-avatar-wrapper,
+.md-card-list-wrapper .md-card-list .md-card-list-item-sender,
+.md-card-list-wrapper .md-card-list .md-card-list-item-subject,
+.md-card-list-wrapper .md-card-list .md-card-list-item-date {
+  padding: 0 8px;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-avatar-wrapper .md-card-list-item-avatar {
+  background: #757575;
+  color: #fff;
+  width: 34px;
+  border-radius: 50%;
+  display: block;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-avatar-wrapper .md-card-list-item-avatar-large {
+  width: 82px;
+  border-radius: 50%;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-avatar-wrapper span.md-card-list-item-avatar {
+  line-height: 34px;
+  text-transform: uppercase;
+  text-align: center;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-sender {
+  width: 220px;
+  line-height: 34px;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-sender > span {
+  text-overflow: ellipsis;
+  display: inline-block;
+  vertical-align: top;
+  white-space: nowrap;
+  overflow: hidden;
+  width: 100%;
+}
+@media only screen and (max-width: 1219px) {
+  .md-card-list-wrapper .md-card-list .md-card-list-item-sender {
+    display: none;
+  }
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-subject {
+  overflow: hidden;
+  font-weight: 500;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-subject > span {
+  line-height: 34px;
+  text-overflow: ellipsis;
+  display: inline-block;
+  vertical-align: top;
+  white-space: nowrap;
+  overflow: hidden;
+  width: 100%;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-subject .md-card-list-item-sender-small {
+  display: none;
+}
+@media only screen and (max-width: 1219px) {
+  .md-card-list-wrapper .md-card-list .md-card-list-item-subject .md-card-list-item-sender-small {
+    display: block;
+  }
+  .md-card-list-wrapper .md-card-list .md-card-list-item-subject .md-card-list-item-sender-small + span {
+    line-height: inherit;
+  }
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-subject .md-card-list-item-sender-small > span {
+  text-overflow: ellipsis;
+  display: inline-block;
+  vertical-align: top;
+  white-space: nowrap;
+  overflow: hidden;
+  width: 100%;
+  font-size: 12px;
+  color: #999;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-date {
+  line-height: 34px;
+  float: right;
+  color: #999;
+}
+@media only screen and (max-width: 479px) {
+  .md-card-list-wrapper .md-card-list .md-card-list-item-date {
+    display: none;
+  }
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-menu {
+  float: right;
+  margin: 0 0 0 8px;
+  position: relative;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-menu .uk-dropdown .material-icons {
+  margin-right: 8px;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-content-wrapper {
+  display: none;
+  clear: both;
+  opacity: 0;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-content {
+  padding: 16px 16px 0 0;
+  max-height: 360px;
+  overflow-x: hidden;
+  margin: 0 0 40px;
+  top: 20px;
+  position: relative;
+  font-size: 14px;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-content + .md-card-list-item-reply {
+  padding-top: 10px;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-reply {
+  padding: 16px 0;
+}
+.md-card-list-wrapper .md-card-list .md-card-list-item-selected {
+  background: #e3f2fd;
+}
+/* forms */
+select,
+textarea,
+input:not([type]),
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"] {
+  outline: none;
+}
+select.md-input,
+textarea.md-input,
+input:not([type]).md-input,
+input[type="text"].md-input,
+input[type="password"].md-input,
+input[type="datetime"].md-input,
+input[type="datetime-local"].md-input,
+input[type="date"].md-input,
+input[type="month"].md-input,
+input[type="time"].md-input,
+input[type="week"].md-input,
+input[type="number"].md-input,
+input[type="email"].md-input,
+input[type="url"].md-input,
+input[type="search"].md-input,
+input[type="tel"].md-input,
+input[type="color"].md-input {
+  border-radius: 0;
+  border-width: 0 0 1px;
+  border-style: solid;
+  border-color: rgba(0, 0, 0, 0.12);
+  font: 400 15px / 18px "Roboto", sans-serif;
+  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0);
+  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0);
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  padding: 12px 4px;
+  background: transparent;
+  width: 100%;
+  display: block;
+}
+select.md-input.md-input-danger,
+textarea.md-input.md-input-danger,
+input:not([type]).md-input.md-input-danger,
+input[type="text"].md-input.md-input-danger,
+input[type="password"].md-input.md-input-danger,
+input[type="datetime"].md-input.md-input-danger,
+input[type="datetime-local"].md-input.md-input-danger,
+input[type="date"].md-input.md-input-danger,
+input[type="month"].md-input.md-input-danger,
+input[type="time"].md-input.md-input-danger,
+input[type="week"].md-input.md-input-danger,
+input[type="number"].md-input.md-input-danger,
+input[type="email"].md-input.md-input-danger,
+input[type="url"].md-input.md-input-danger,
+input[type="search"].md-input.md-input-danger,
+input[type="tel"].md-input.md-input-danger,
+input[type="color"].md-input.md-input-danger {
+  border-color: #e53935;
+}
+select.md-input.md-input-danger:focus,
+textarea.md-input.md-input-danger:focus,
+input:not([type]).md-input.md-input-danger:focus,
+input[type="text"].md-input.md-input-danger:focus,
+input[type="password"].md-input.md-input-danger:focus,
+input[type="datetime"].md-input.md-input-danger:focus,
+input[type="datetime-local"].md-input.md-input-danger:focus,
+input[type="date"].md-input.md-input-danger:focus,
+input[type="month"].md-input.md-input-danger:focus,
+input[type="time"].md-input.md-input-danger:focus,
+input[type="week"].md-input.md-input-danger:focus,
+input[type="number"].md-input.md-input-danger:focus,
+input[type="email"].md-input.md-input-danger:focus,
+input[type="url"].md-input.md-input-danger:focus,
+input[type="search"].md-input.md-input-danger:focus,
+input[type="tel"].md-input.md-input-danger:focus,
+input[type="color"].md-input.md-input-danger:focus {
+  border-bottom-color: #e53935;
+}
+select.md-input.md-input-success,
+textarea.md-input.md-input-success,
+input:not([type]).md-input.md-input-success,
+input[type="text"].md-input.md-input-success,
+input[type="password"].md-input.md-input-success,
+input[type="datetime"].md-input.md-input-success,
+input[type="datetime-local"].md-input.md-input-success,
+input[type="date"].md-input.md-input-success,
+input[type="month"].md-input.md-input-success,
+input[type="time"].md-input.md-input-success,
+input[type="week"].md-input.md-input-success,
+input[type="number"].md-input.md-input-success,
+input[type="email"].md-input.md-input-success,
+input[type="url"].md-input.md-input-success,
+input[type="search"].md-input.md-input-success,
+input[type="tel"].md-input.md-input-success,
+input[type="color"].md-input.md-input-success {
+  border-color: #7cb342;
+}
+select.md-input.md-input-success:focus,
+textarea.md-input.md-input-success:focus,
+input:not([type]).md-input.md-input-success:focus,
+input[type="text"].md-input.md-input-success:focus,
+input[type="password"].md-input.md-input-success:focus,
+input[type="datetime"].md-input.md-input-success:focus,
+input[type="datetime-local"].md-input.md-input-success:focus,
+input[type="date"].md-input.md-input-success:focus,
+input[type="month"].md-input.md-input-success:focus,
+input[type="time"].md-input.md-input-success:focus,
+input[type="week"].md-input.md-input-success:focus,
+input[type="number"].md-input.md-input-success:focus,
+input[type="email"].md-input.md-input-success:focus,
+input[type="url"].md-input.md-input-success:focus,
+input[type="search"].md-input.md-input-success:focus,
+input[type="tel"].md-input.md-input-success:focus,
+input[type="color"].md-input.md-input-success:focus {
+  border-bottom-color: #7cb342;
+}
+select.md-input:focus,
+textarea.md-input:focus,
+input:not([type]).md-input:focus,
+input[type="text"].md-input:focus,
+input[type="password"].md-input:focus,
+input[type="datetime"].md-input:focus,
+input[type="datetime-local"].md-input:focus,
+input[type="date"].md-input:focus,
+input[type="month"].md-input:focus,
+input[type="time"].md-input:focus,
+input[type="week"].md-input:focus,
+input[type="number"].md-input:focus,
+input[type="email"].md-input:focus,
+input[type="url"].md-input:focus,
+input[type="search"].md-input:focus,
+input[type="tel"].md-input:focus,
+input[type="color"].md-input:focus {
+  background: transparent;
+  border-color: rgba(0, 0, 0, 0.12);
+}
+select.md-input-small,
+textarea.md-input-small,
+input:not([type]).md-input-small,
+input[type="text"].md-input-small,
+input[type="password"].md-input-small,
+input[type="datetime"].md-input-small,
+input[type="datetime-local"].md-input-small,
+input[type="date"].md-input-small,
+input[type="month"].md-input-small,
+input[type="time"].md-input-small,
+input[type="week"].md-input-small,
+input[type="number"].md-input-small,
+input[type="email"].md-input-small,
+input[type="url"].md-input-small,
+input[type="search"].md-input-small,
+input[type="tel"].md-input-small,
+input[type="color"].md-input-small {
+  padding: 4px;
+}
+select.md-input.uk-form-width-mini,
+textarea.md-input.uk-form-width-mini,
+input:not([type]).md-input.uk-form-width-mini,
+input[type="text"].md-input.uk-form-width-mini,
+input[type="password"].md-input.uk-form-width-mini,
+input[type="datetime"].md-input.uk-form-width-mini,
+input[type="datetime-local"].md-input.uk-form-width-mini,
+input[type="date"].md-input.uk-form-width-mini,
+input[type="month"].md-input.uk-form-width-mini,
+input[type="time"].md-input.uk-form-width-mini,
+input[type="week"].md-input.uk-form-width-mini,
+input[type="number"].md-input.uk-form-width-mini,
+input[type="email"].md-input.uk-form-width-mini,
+input[type="url"].md-input.uk-form-width-mini,
+input[type="search"].md-input.uk-form-width-mini,
+input[type="tel"].md-input.uk-form-width-mini,
+input[type="color"].md-input.uk-form-width-mini {
+  width: 40px;
+}
+select.md-input.uk-form-width-small,
+textarea.md-input.uk-form-width-small,
+input:not([type]).md-input.uk-form-width-small,
+input[type="text"].md-input.uk-form-width-small,
+input[type="password"].md-input.uk-form-width-small,
+input[type="datetime"].md-input.uk-form-width-small,
+input[type="datetime-local"].md-input.uk-form-width-small,
+input[type="date"].md-input.uk-form-width-small,
+input[type="month"].md-input.uk-form-width-small,
+input[type="time"].md-input.uk-form-width-small,
+input[type="week"].md-input.uk-form-width-small,
+input[type="number"].md-input.uk-form-width-small,
+input[type="email"].md-input.uk-form-width-small,
+input[type="url"].md-input.uk-form-width-small,
+input[type="search"].md-input.uk-form-width-small,
+input[type="tel"].md-input.uk-form-width-small,
+input[type="color"].md-input.uk-form-width-small {
+  width: 130px;
+}
+select.md-input.uk-form-width-medium,
+textarea.md-input.uk-form-width-medium,
+input:not([type]).md-input.uk-form-width-medium,
+input[type="text"].md-input.uk-form-width-medium,
+input[type="password"].md-input.uk-form-width-medium,
+input[type="datetime"].md-input.uk-form-width-medium,
+input[type="datetime-local"].md-input.uk-form-width-medium,
+input[type="date"].md-input.uk-form-width-medium,
+input[type="month"].md-input.uk-form-width-medium,
+input[type="time"].md-input.uk-form-width-medium,
+input[type="week"].md-input.uk-form-width-medium,
+input[type="number"].md-input.uk-form-width-medium,
+input[type="email"].md-input.uk-form-width-medium,
+input[type="url"].md-input.uk-form-width-medium,
+input[type="search"].md-input.uk-form-width-medium,
+input[type="tel"].md-input.uk-form-width-medium,
+input[type="color"].md-input.uk-form-width-medium {
+  width: 200px;
+}
+select.md-input.uk-form-width-large,
+textarea.md-input.uk-form-width-large,
+input:not([type]).md-input.uk-form-width-large,
+input[type="text"].md-input.uk-form-width-large,
+input[type="password"].md-input.uk-form-width-large,
+input[type="datetime"].md-input.uk-form-width-large,
+input[type="datetime-local"].md-input.uk-form-width-large,
+input[type="date"].md-input.uk-form-width-large,
+input[type="month"].md-input.uk-form-width-large,
+input[type="time"].md-input.uk-form-width-large,
+input[type="week"].md-input.uk-form-width-large,
+input[type="number"].md-input.uk-form-width-large,
+input[type="email"].md-input.uk-form-width-large,
+input[type="url"].md-input.uk-form-width-large,
+input[type="search"].md-input.uk-form-width-large,
+input[type="tel"].md-input.uk-form-width-large,
+input[type="color"].md-input.uk-form-width-large {
+  width: 500px;
+}
+select.md-input.uk-form-width-mini {
+  width: 65px;
+}
+.md-input-width-small {
+  min-width: 80px !important;
+}
+.md-input-width-medium {
+  min-width: 160px !important;
+}
+.md-input-width-large {
+  min-width: 320px !important;
+}
+textarea.md-input {
+  min-height: 80px;
+  resize: none;
+  overflow: hidden;
+  -webkit-transition: height 200ms ease-out;
+  transition: height 200ms ease-out;
+  line-height: 24px;
+}
+textarea.no_autosize {
+  min-height: inherit;
+  overflow: auto;
+  -webkit-transition: none;
+  transition: none;
+  resize: both;
+}
+.md-input-wrapper {
+  position: relative;
+  padding-top: 4px;
+  width: 100%;
+  display: block;
+}
+.md-input-wrapper .md-input-bar {
+  display: block;
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+}
+.md-input-wrapper .md-input-bar:before,
+.md-input-wrapper .md-input-bar:after {
+  content: '';
+  display: block;
+  position: absolute;
+  bottom: 0;
+  width: 0;
+  height: 2px;
+  background: #1976d2;
+  -webkit-transition: width 400ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: width 400ms cubic-bezier(0.4, 0, 0.2, 1);
+}
+.md-input-wrapper .md-input-bar:before {
+  left: 50%;
+}
+.md-input-wrapper .md-input-bar:after {
+  right: 50%;
+}
+.md-input-wrapper .md-input-bar.uk-form-width-mini {
+  width: 40px;
+}
+.md-input-wrapper .md-input-bar.uk-form-width-small {
+  width: 130px;
+}
+.md-input-wrapper .md-input-bar.uk-form-width-medium {
+  width: 200px;
+}
+.md-input-wrapper .md-input-bar.uk-form-width-large {
+  width: 500px;
+}
+.md-input-wrapper > label {
+  color: #727272;
+  position: absolute;
+  top: 16px;
+  left: 4px;
+  right: 0;
+  pointer-events: none;
+  -webkit-transition: all 150ms ease-out;
+  transition: all 150ms ease-out;
+}
+.md-input-wrapper + * {
+  margin-top: 10px;
+}
+.md-input-wrapper.md-input-wrapper-disabled > label {
+  color: rgba(0, 0, 0, 0.26);
+}
+.md-input-wrapper-count {
+  padding-bottom: 24px;
+}
+.md-input-wrapper-count .md-input-bar {
+  bottom: 24px;
+}
+.md-input-wrapper-count .text-count-wrapper {
+  font-size: 12px;
+  position: absolute;
+  right: 0;
+  bottom: 0;
+  opacity: 0;
+  -webkit-transition: opacity 200ms ease-in;
+  transition: opacity 200ms ease-in;
+}
+.md-input-wrapper-count > .md-input-wrapper-count .text-count-wrapper {
+  position: absolute;
+  bottom: 0;
+  right: 0;
+}
+.md-input-filled > label,
+.md-input-focus > label {
+  top: -6px;
+  font-size: 12px;
+}
+.md-input-filled.md-input-wrapper-count .text-count-wrapper,
+.md-input-focus.md-input-wrapper-count .text-count-wrapper {
+  opacity: 1;
+}
+.md-input-focus .md-input-bar:before,
+.md-input-focus .md-input-bar:after {
+  width: 50%;
+}
+.md-input-wrapper-danger .md-input-bar:before,
+.md-input-wrapper-danger .md-input-bar:after {
+  background: #e53935;
+}
+.md-input-wrapper-danger.md-input-wrapper-count .text-count-wrapper {
+  color: #e53935;
+}
+.md-input-wrapper-success .md-input-bar:before,
+.md-input-wrapper-success .md-input-bar:after {
+  background: #7cb342;
+}
+.md-input-wrapper-success.md-input-wrapper-count .text-count-wrapper {
+  color: #7cb342;
+}
+.md-form-group {
+  position: relative;
+}
+label.md-label {
+  color: #999;
+  padding: 0 6px;
+  font-size: 11px;
+}
+@font-face {
+  font-family: 'Material Icons';
+  font-style: normal;
+  font-weight: 400;
+  src: url("../icons/material-design-icons/MaterialIcons-Regular.eot");
+  /* For IE6-8 */
+  src: local('Material Icons'), local('MaterialIcons-Regular'), url("../icons/material-design-icons/MaterialIcons-Regular.woff2") format('woff2'), url("../icons/material-design-icons/MaterialIcons-Regular.woff") format('woff'), url("../icons/material-design-icons/MaterialIcons-Regular.ttf") format('truetype');
+}
+.material-icons {
+  font-family: 'Material Icons';
+  font-weight: normal;
+  font-style: normal;
+  font-size: 18px;
+  /* Preferred icon size */
+  display: inline-block;
+  width: 1em;
+  height: 1em;
+  line-height: 1;
+  text-transform: none;
+  letter-spacing: normal;
+  /* Support for all WebKit browsers. */
+  -webkit-font-smoothing: antialiased;
+  /* Support for Safari and Chrome. */
+  text-rendering: optimizeLegibility;
+  /* Support for Firefox. */
+  -moz-osx-font-smoothing: grayscale;
+  /* Support for IE. */
+  -webkit-font-feature-settings: 'liga';
+  font-feature-settings: 'liga';
+  vertical-align: -4px;
+  color: rgba(0, 0, 0, 0.54);
+}
+.material-icons.md-inactive {
+  color: rgba(0, 0, 0, 0.26);
+}
+.material-icons.md-24 {
+  font-size: 24px;
+  vertical-align: -8px;
+}
+.material-icons.md-36 {
+  font-size: 36px;
+  vertical-align: -16px;
+}
+.material-icons.md-48 {
+  font-size: 48px;
+  vertical-align: -24px;
+}
+.material-icons.md-light {
+  color: #ffffff;
+}
+.material-icons.md-light.md-inactive {
+  color: rgba(255, 255, 255, 0.3);
+}
+/* list */
+.md-list {
+  margin: 0;
+  padding: 0;
+  list-style: none;
+  /*&-outside-wrapper {
+        overflow: hidden;
+    }*/
+}
+.md-list > li {
+  padding: 0;
+  margin: 0;
+  list-style: none;
+}
+.md-list,
+.md-list:before,
+.md-list:after,
+.md-list *,
+.md-list *:before,
+.md-list *:after {
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+}
+.md-list .uk-nestable-list > li,
+.md-list > li {
+  min-height: 48px;
+  padding: 8px 4px;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
+  position: relative;
+}
+.md-list .uk-nestable-list > li > .md-list-content,
+.md-list > li > .md-list-content {
+  overflow: hidden;
+}
+.md-list .uk-nestable-list > li > .md-list-content > span,
+.md-list > li > .md-list-content > span {
+  display: block;
+}
+.md-list .uk-nestable-list > li > .md-list-content .md-list-heading,
+.md-list > li > .md-list-content .md-list-heading {
+  margin: 0;
+  font-weight: 500;
+  display: block;
+  overflow: hidden;
+  padding-bottom: 1px;
+}
+.md-list .uk-nestable-list > li > .md-list-content .md-list-menu,
+.md-list > li > .md-list-content .md-list-menu {
+  float: right;
+}
+.md-list .uk-nestable-list > li > .md-list-content .md-list-menu .md-list-menu-toggle,
+.md-list > li > .md-list-content .md-list-menu .md-list-menu-toggle {
+  display: block;
+  font-size: 18px;
+  color: rgba(0, 0, 0, 0.8);
+  width: 28px;
+  height: 28px;
+  line-height: 28px;
+  border-radius: 14px;
+  text-align: center;
+}
+.md-list .uk-nestable-list > li > .md-list-content .uk-badge,
+.md-list > li > .md-list-content .uk-badge {
+  float: right;
+  color: #fff !important;
+}
+.md-list .uk-nestable-list > li > .md-list-content .md-list-action,
+.md-list > li > .md-list-content .md-list-action {
+  float: right;
+  margin-left: 8px;
+  margin-top: 2px;
+  display: none;
+}
+.md-list .uk-nestable-list > li > .md-list-content .md-list-action-placeholder,
+.md-list > li > .md-list-content .md-list-action-placeholder {
+  float: right;
+  margin-left: 8px;
+  display: none;
+  width: 32px;
+  height: 32px;
+}
+.md-list .uk-nestable-list > li .md-list-action-dropdown,
+.md-list > li .md-list-action-dropdown {
+  position: absolute;
+  right: 16px;
+  top: 10px;
+  display: none;
+}
+.md-list .uk-nestable-list > li > a.md-list-content,
+.md-list > li > a.md-list-content {
+  display: block;
+  color: #212121;
+}
+.md-list .uk-nestable-list > li:last-child,
+.md-list > li:last-child {
+  border-bottom: none;
+}
+.md-list .uk-nestable-list > li.md-list-item-active,
+.md-list > li.md-list-item-active {
+  color: #7cb342;
+  background: #ededed;
+}
+.md-list .uk-nestable-list > li.md-list-item-disabled > .md-list-content,
+.md-list > li.md-list-item-disabled > .md-list-content {
+  color: #bdbdbd;
+}
+.md-list .uk-nestable-list > li.md-list-item-disabled > .md-list-content span,
+.md-list > li.md-list-item-disabled > .md-list-content span {
+  color: #bdbdbd !important;
+}
+.md-list .uk-nestable-list > li.heading_list,
+.md-list > li.heading_list {
+  min-height: 32px;
+  padding: 32px 8px 16px;
+  border-bottom: none;
+  background: transparent !important;
+  text-transform: uppercase;
+}
+.uk-touch .md-list .uk-nestable-list > li > .md-list-addon-element .uk-nestable-handle,
+.uk-touch .md-list > li > .md-list-addon-element .uk-nestable-handle,
+.md-list .uk-nestable-list > li:hover > .md-list-addon-element .uk-nestable-handle,
+.md-list > li:hover > .md-list-addon-element .uk-nestable-handle {
+  display: block;
+}
+.uk-touch .md-list .uk-nestable-list > li > .md-list-content .md-list-action,
+.uk-touch .md-list > li > .md-list-content .md-list-action,
+.md-list .uk-nestable-list > li:hover > .md-list-content .md-list-action,
+.md-list > li:hover > .md-list-content .md-list-action,
+.uk-touch .md-list .uk-nestable-list > li > .md-list-content .md-list-action-placeholder,
+.uk-touch .md-list > li > .md-list-content .md-list-action-placeholder,
+.md-list .uk-nestable-list > li:hover > .md-list-content .md-list-action-placeholder,
+.md-list > li:hover > .md-list-content .md-list-action-placeholder {
+  display: block;
+}
+.uk-touch .md-list .uk-nestable-list > li .md-list-action-dropdown,
+.uk-touch .md-list > li .md-list-action-dropdown,
+.md-list .uk-nestable-list > li:hover .md-list-action-dropdown,
+.md-list > li:hover .md-list-action-dropdown {
+  display: block;
+}
+.md-list .uk-nestable-list > li {
+  margin-left: 64px;
+}
+.md-list-addon > li {
+  margin-left: 64px;
+  position: relative;
+}
+.md-list-addon > li:last-child .md-list-addon-element {
+  border-bottom: none;
+  bottom: 0;
+}
+.md-list-addon > li:first-child .md-list-addon-element {
+  top: 0;
+}
+.md-list-addon > li.md-list-item-active .md-list-addon-element,
+.md-list-addon > li.md-list-item-active .md-list-addon-element .material-icons {
+  color: #7cb342;
+}
+.md-list-addon-element {
+  position: absolute;
+  left: -64px;
+  top: -1px;
+  bottom: -1px;
+  width: 64px;
+  text-align: center;
+  padding: 8px 0;
+  display: block;
+}
+.md-list-addon-element .element-status {
+  position: absolute;
+  right: 12px;
+  top: 10px;
+  width: 12px;
+  height: 12px;
+  border-radius: 50%;
+  background: #bdbdbd;
+  border: 1px solid #fff;
+}
+.md-list-addon-element .element-status-danger {
+  background: #e53935;
+}
+.md-list-addon-element .element-status-success {
+  background: #7cb342;
+}
+.md-list-addon-element .element-status-warning {
+  background: #ffa000;
+}
+.md-list-addon-element > .md-list-addon-avatar {
+  margin-top: 2px;
+}
+.md-list-addon-element > .md-list-addon-icon {
+  font-size: 28px;
+  margin-top: 4px;
+  color: #727272;
+}
+.md-list-addon-element > .material-icons {
+  margin-top: 6px;
+}
+.md-list-addon-element .iradio_md,
+.md-list-addon-element .icheckbox_md {
+  margin-top: 10px;
+}
+.md-list-addon-element .uk-nestable-handle {
+  position: absolute;
+  left: -2px;
+  top: 12px;
+  display: none;
+}
+.md-list-interactive li {
+  cursor: pointer;
+}
+.md-list-bg {
+  background: #fff;
+}
+.md-list-separated li {
+  background: #fff;
+  padding: 8px;
+}
+.md-list-separated li + li {
+  border-top: none;
+  margin-top: 8px;
+}
+.md-list-bg-no-sep {
+  background: #fff;
+  padding: 8px;
+}
+.md-list-bg-no-sep li > .md-list-content {
+  padding: 0 4px;
+}
+.md-list-outside > li {
+  padding: 0;
+}
+.md-list-outside > li > .md-list-content {
+  padding: 8px 16px;
+  display: block;
+  color: #212121;
+}
+.md-list-outside > li.md-list-item-active,
+.md-list-outside > li:hover:not(.heading_list) {
+  background: rgba(0, 0, 0, 0.085);
+}
+.md-list-outside > li.heading_list {
+  padding: 32px 16px 16px;
+}
+.md-list-outside.md-list-addon li {
+  margin-left: 0;
+}
+.md-list-outside.md-list-addon li .md-list-addon-element {
+  position: relative;
+  top: auto;
+  left: auto;
+  float: left;
+}
+.md-list-outside.md-list-addon li .md-list-content {
+  padding-left: 0;
+}
+.md-list .uk-nestable-list {
+  padding-left: 0;
+}
+.md-list .uk-nestable-list .uk-nestable-item {
+  padding-right: 0;
+}
+.md-list .uk-nestable-item + .uk-nestable-item {
+  margin-top: 0;
+}
+.md-list-right.md-list-addon > li {
+  margin-left: 0;
+  margin-right: 64px;
+}
+.md-list-right.md-list-addon > li .md-list-addon-element {
+  left: auto;
+  right: -64px;
+}
+.md-list-borderless > li {
+  border-bottom: none;
+}
+.uk-touch .md-list-addon-element .uk-nestable-handle {
+  display: block !important;
+}
+.uk-touch .md-list-content .md-list-action,
+.uk-touch .md-list-content .md-list-action-placeholder {
+  display: block !important;
+}
+.uk-touch .md-list-action-dropdown {
+  display: block !important;
+}
+/* panels */
+.md-panel-full {
+  position: relative;
+  overflow: hidden;
+  min-height: 100%;
+}
+.md-panel-full,
+.md-panel-full:before,
+.md-panel-full:after,
+.md-panel-full *,
+.md-panel-full *:before,
+.md-panel-full *:after {
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+}
+.md-panel-full > .uk-grid {
+  height: 100%;
+}
+.md-panel-full > .uk-grid [class*=uk-width] {
+  height: 100%;
+}
+.md-panel-full .md-panel-full-aside {
+  margin: 16px 16px 32px;
+  padding: 16px;
+}
+.md-panel-full .md-panel-full-aside.md-panel-full-aside-bg {
+  background: #fff;
+}
+.md-panel-full .md-panel-full-content {
+  background: #fff;
+  padding: 25px 25px 90px;
+  width: inherit;
+  min-width: 100%;
+  min-height: 100%;
+}
+.md-panel-full .md-panel-full-content > .md-panel-full-content-inner {
+  position: relative;
+  z-index: 10;
+}
+.md-panel-full .md-panel-full-content:before {
+  width: inherit;
+  content: '';
+  position: absolute;
+  background: #fff;
+  display: block;
+  right: 0;
+  top: 0;
+  bottom: 0;
+  -webkit-box-shadow: -2px 2px 5px rgba(0, 0, 0, 0.26);
+  box-shadow: -2px 2px 5px rgba(0, 0, 0, 0.26);
+  z-index: 5;
+}
+.md-panel-full .md-panel-full-content .md-panel-full-content-header {
+  margin-bottom: 24px;
+}
+.md-panel-full .md-panel-full-content .md-panel-full-content-header .md-panel-full-content-menu {
+  float: right;
+}
+/* top bar */
+.md-top-bar .md-top-bar-checkbox {
+  padding-top: 10px;
+}
+.md-top-bar .md-top-bar-icons {
+  margin-top: 5px;
+}
+.md-top-bar .md-top-bar-icons,
+.md-top-bar .md-top-bar-checkbox {
+  display: inline-block;
+}
+.md-top-bar .md-btn-group {
+  margin-top: 4px;
+}
+.md-top-bar .md-top-bar-actions-left {
+  float: left;
+  padding-left: 16px;
+}
+.md-top-bar .md-top-bar-actions-left .md-btn-group {
+  margin-left: 8px;
+}
+.md-top-bar .md-top-bar-actions-right {
+  float: right;
+  padding-right: 16px;
+}
+.md-top-bar .md-top-bar-actions-right .md-btn-group {
+  margin-right: 8px;
+}
+.md-top-bar .md-btn-small {
+  padding: 2px 12px;
+}
+/*** utils ***/
+/* avatar */
+.md-user-image {
+  width: 34px;
+  border-radius: 50%;
+}
+.md-user-image-large {
+  width: 82px;
+  border-radius: 50%;
+}
+.md-user-placeholder {
+  background-color: rgba(0, 0, 0, 0.085);
+  width: 34px;
+  height: 34px;
+  border-radius: 50%;
+}
+.md-user-letters {
+  display: inline-block;
+  line-height: 35px;
+  width: 34px;
+  height: 34px;
+  border-radius: 50%;
+  text-align: center;
+  text-transform: uppercase;
+  font-weight: 500;
+  background-color: rgba(0, 0, 0, 0.085);
+}
+/* icons */
+.md-icon {
+  font-size: 24px;
+  line-height: 32px !important;
+  height: 32px !important;
+  color: #727272;
+  border-radius: 50%;
+  cursor: pointer;
+  -webkit-transition: background 280ms ease-out, color 280ms ease-out;
+  transition: background 280ms ease-out, color 280ms ease-out;
+  width: 32px !important;
+  text-align: center;
+  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+.md-icon:hover,
+.md-icon:focus,
+.md-icon:active,
+.md-icon.active {
+  color: #212121;
+  background: rgba(0, 0, 0, 0.08);
+}
+.md-icon-light {
+  color: #fff;
+}
+.md-icon-light:hover,
+.md-icon-light:focus,
+.md-icon-light:active {
+  color: #fff;
+  background: rgba(0, 0, 0, 0.2);
+}
+.md-icon-dark {
+  color: #212121;
+}
+.md-icon-dark:hover,
+.md-icon-dark:focus,
+.md-icon-dark:active {
+  color: #212121;
+  background: rgba(255, 255, 255, 0.6);
+}
+.md-icon + .md-icon {
+  margin-left: 4px;
+}
+.md-icon-btn {
+  display: inline-block;
+}
+.md-icon-btn.active .md-icon {
+  color: #212121;
+  background: rgba(0, 0, 0, 0.08);
+}
+button.md-icon {
+  background: none;
+  border: none;
+  outline: none;
+}
+.uk-open .md-icon {
+  color: #212121;
+  background: rgba(0, 0, 0, 0.08);
+}
+.uk-open .md-icon-light {
+  color: #fff;
+  background: rgba(0, 0, 0, 0.2);
+}
+.uk-open .md-icon-dark {
+  color: #212121;
+  background: rgba(255, 255, 255, 0.6);
+}
+/* dropdown list */
+.md-list-inputs {
+  margin: 0;
+  padding: 0;
+  list-style: none;
+}
+.md-list-inputs > li {
+  padding: 0;
+  margin: 0;
+  list-style: none;
+}
+.md-list-inputs li + li {
+  margin-top: 8px;
+}
+.md-list-inputs li .icheckbox_md {
+  float: left;
+}
+.md-list-inputs li label {
+  overflow: hidden;
+  padding-left: 8px;
+  display: block;
+  cursor: pointer;
+}
+/* hr */
+.md-hr {
+  margin: 32px 0;
+  height: 0;
+  border-top: 2px solid rgba(0, 0, 0, 0.12);
+}
+/* animated show */
+@-webkit-keyframes hierarchical_show {
+  0% {
+    opacity: 0;
+    -webkit-transform: scale3d(0.2, 0.2, 2);
+    transform: scale3d(0.2, 0.2, 2);
+  }
+  50% {
+    opacity: 1;
+  }
+  100% {
+    -webkit-transform: scale3d(1, 1, 1);
+    transform: scale3d(1, 1, 1);
+  }
+}
+@keyframes hierarchical_show {
+  0% {
+    opacity: 0;
+    -webkit-transform: scale3d(0.2, 0.2, 2);
+    transform: scale3d(0.2, 0.2, 2);
+  }
+  50% {
+    opacity: 1;
+  }
+  100% {
+    -webkit-transform: scale3d(1, 1, 1);
+    transform: scale3d(1, 1, 1);
+  }
+}
+.hierarchical_show {
+  will-change: transform, opacity;
+}
+.hierarchical_show > * {
+  visibility: hidden;
+}
+.hierarchical_show_inView > * {
+  -webkit-animation-fill-mode: both;
+  animation-fill-mode: both;
+  -webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+  -webkit-animation-duration: 700ms;
+  animation-duration: 700ms;
+  -webkit-animation-name: hierarchical_show;
+  animation-name: hierarchical_show;
+  visibility: visible;
+}
+@-webkit-keyframes hierarchical_slide {
+  0% {
+    opacity: 0;
+    -webkit-transform: translate3d(0, 160%, 0);
+    transform: translate3d(0, 160%, 0);
+  }
+  33% {
+    opacity: 1;
+  }
+  100% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+}
+@keyframes hierarchical_slide {
+  0% {
+    opacity: 0;
+    -webkit-transform: translate3d(0, 160%, 0);
+    transform: translate3d(0, 160%, 0);
+  }
+  33% {
+    opacity: 1;
+  }
+  100% {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+  }
+}
+.hierarchical_slide {
+  will-change: transform, opacity;
+}
+.hierarchical_slide > * {
+  visibility: hidden;
+}
+.hierarchical_slide_inView > * {
+  -webkit-animation-fill-mode: both;
+  animation-fill-mode: both;
+  -webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+  -webkit-animation-duration: 700ms;
+  animation-duration: 700ms;
+  -webkit-animation-name: hierarchical_slide;
+  animation-name: hierarchical_slide;
+  visibility: visible;
+}
+.fast_animation {
+  -webkit-animation-duration: 350ms;
+  animation-duration: 350ms;
+}
+/* 5. partials (header,sidebars,top bar) ============= */
+/* 6. altair landing page styles ===================== */
+html {
+  background: #fff;
+}
+body {
+  font: 400 15px / 1.42857143 "Roboto", sans-serif;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  overflow-x: hidden;
+}
+/*html, body {
+    height: 100%;
+}*/
+a,
+button {
+  outline: none !important;
+}
+a {
+  color: #1e88e5;
+  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+a:hover,
+a:active {
+  color: #0d47a1;
+  text-decoration: none;
+}
+.uk-text-upper {
+  text-transform: uppercase;
+}
+.animate > * {
+  visibility: hidden;
+}
+.animated {
+  visibility: visible;
+}
+[class*=uk-animation-] {
+  -webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+  -webkit-animation-duration: 840ms;
+  animation-duration: 840ms;
+}
+.heading_a {
+  margin: 0;
+  font: 300 42px / 48px "Roboto", sans-serif;
+}
+.heading_a .sub-heading {
+  font-weight: 300;
+  font-size: 24px;
+  line-height: 30px;
+  display: block;
+  padding-top: 10px;
+}
+@media only screen and (max-width: 959px) {
+  .heading_a {
+    font: 300 32px / 36px "Roboto", sans-serif;
+  }
+  .heading_a .sub-heading {
+    font-size: 20px;
+    line-height: 24px;
+  }
+}
+.heading_b {
+  margin: 0;
+  font: 300 32px / 36px "Roboto", sans-serif;
+}
+.heading_b .sub-heading {
+  font-weight: 300;
+  font-size: 20px;
+  line-height: 26px;
+  display: block;
+  padding-top: 10px;
+}
+@media only screen and (max-width: 959px) {
+  .heading_b {
+    font: 300 28px / 32px "Roboto", sans-serif;
+  }
+  .heading_b .sub-heading {
+    font-size: 18px;
+    line-height: 22px;
+  }
+}
+.heading_c {
+  margin: 0;
+  font: 400 24px / 28px "Roboto", sans-serif;
+}
+.heading_c .sub-heading {
+  font-weight: 300;
+  font-size: 18px;
+  line-height: 20px;
+  display: block;
+  padding-top: 10px;
+}
+@media only screen and (max-width: 959px) {
+  .heading_c {
+    font: 300 22px / 25px "Roboto", sans-serif;
+  }
+  .heading_c .sub-heading {
+    font-size: 16px;
+    line-height: 20px;
+  }
+}
+.heading_a + .uk-grid,
+.heading_b + .uk-grid,
+.heading_c + .uk-grid {
+  margin-top: 24px;
+}
+.heading_a .material-icons,
+.heading_b .material-icons,
+.heading_c .material-icons {
+  vertical-align: middle;
+}
+.heading_light,
+.heading_light .sub-heading {
+  color: #fff;
+}
+.icon_large {
+  font-size: 64px;
+}
+@media only screen and (max-width: 959px) {
+  .icon_large {
+    font-size: 48px;
+  }
+}
+.icon_dark {
+  color: #727272;
+}
+#header_main {
+  -webkit-transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  position: relative;
+  z-index: 10;
+}
+#header_main .uk-navbar {
+  background: #fff;
+}
+#header_main .uk-navbar-nav > li > a {
+  color: #727272;
+  text-transform: uppercase;
+  font-size: 14px;
+  font-family: "Roboto", sans-serif;
+  font-weight: 500;
+  -webkit-box-shadow: inset 0 -4px 0 rgba(255, 255, 255, 0);
+  box-shadow: inset 0 -4px 0 rgba(255, 255, 255, 0);
+  background: none !important;
+  -webkit-transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+}
+#header_main .uk-navbar-nav > li > a:hover,
+#header_main .uk-navbar-nav > li > a:active {
+  color: #727272;
+}
+#header_main .uk-navbar-nav > li.current_active a {
+  -webkit-box-shadow: inset 0 -4px 0 #7cb342;
+  box-shadow: inset 0 -4px 0 #7cb342;
+}
+#header_main.header-light {
+  background: #fff;
+}
+#header_main .header_cta {
+  margin-top: 14px;
+}
+@media only screen and (max-width: 959px) {
+  #header_main .header_cta {
+    margin-top: 6px;
+  }
+}
+#mobile_navigation_toggle {
+  display: none;
+}
+#mobile_navigation .uk-offcanvas-bar {
+  background: #fff;
+  -webkit-box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.26);
+  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.26);
+  -webkit-transition: -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: transform 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);
+}
+#mobile_navigation .uk-offcanvas-bar:after {
+  display: none;
+}
+#mobile_navigation .uk-offcanvas-bar ul {
+  margin: 32px 0 0 0;
+  padding: 0;
+  list-style: none;
+}
+#mobile_navigation .uk-offcanvas-bar ul > li {
+  padding: 0;
+  margin: 0;
+  list-style: none;
+}
+#mobile_navigation .uk-offcanvas-bar ul li a {
+  display: block;
+  font-size: 16px;
+  font-weight: 500;
+  line-height: 25px;
+  padding: 8px 20px;
+  color: #212121;
+}
+#mobile_navigation .uk-offcanvas-bar ul li a small {
+  font-size: 12px;
+  color: #727272;
+  display: block;
+  margin-top: -2px;
+}
+#mobile_navigation .uk-offcanvas-bar ul li a .menu_icon {
+  width: 48px;
+  text-align: left;
+  display: inline-block;
+  color: #727272;
+  float: left;
+}
+#mobile_navigation .uk-offcanvas-bar ul li a .menu_icon .material-icons {
+  font-size: 24px;
+  vertical-align: top;
+}
+#mobile_navigation .uk-offcanvas-bar ul li a .menu_title {
+  display: block;
+  overflow: hidden;
+}
+.uk-offcanvas-page {
+  -webkit-transition: margin 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: margin 280ms cubic-bezier(0.4, 0, 0.2, 1);
+}
+.header_sticky {
+  padding-top: 64px;
+}
+@media only screen and (max-width: 959px) {
+  .header_sticky {
+    padding-top: 48px;
+  }
+}
+.header_sticky #header_main {
+  position: fixed;
+  top: 0;
+  left: 0;
+  right: 0;
+  z-index: 1000;
+}
+.header_shadow #header_main {
+  -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
+  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
+}
+.banner {
+  color: #fff;
+  position: relative;
+}
+.banner .uk-slideshow,
+.banner .uk-slideshow > li {
+  height: 640px;
+}
+.banner .uk-slideshow > li {
+  background-size: 100% auto;
+  background-position: center center;
+  background-repeat: no-repeat;
+}
+.banner .uk-slideshow > li .slide_content_a {
+  margin: 160px 0 0 640px;
+}
+.banner .uk-slideshow > li .slide_content_b {
+  margin: 320px 0 0 0;
+  background: rgba(0, 0, 0, 0.4);
+  padding: 24px;
+}
+.banner .uk-slideshow > li .slide_content_c {
+  margin: 120px 540px 0 0;
+}
+.banner .uk-slideshow > li .slide_content_c .slide_header,
+.banner .uk-slideshow > li .slide_content_c p {
+  color: #212121;
+}
+.banner .uk-slideshow > li .slide_header {
+  color: #fff;
+  font: 400 38px / 42px "Roboto", sans-serif;
+  margin: 0 0 18px;
+}
+.banner .uk-slideshow > li p {
+  margin: 0;
+  font-size: 20px;
+  font-weight: 300;
+}
+.banner .uk-slideshow > li p + * {
+  margin-top: 32px;
+}
+.banner .slide_navigation {
+  display: none;
+}
+.banner:hover .slide_navigation {
+  display: block;
+}
+.uk-touch .slide_navigation {
+  display: block !important;
+}
+.uk-slidenav {
+  position: absolute;
+  top: 50%;
+  margin-top: -30px;
+  color: #fff !important;
+  background: rgba(0, 0, 0, 0.2);
+  border-radius: 12px;
+  font-size: 48px;
+  -webkit-transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+  transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1);
+}
+.uk-slidenav-previous {
+  left: 16px;
+}
+.uk-slidenav-previous:before {
+  position: relative;
+  left: -2px;
+  top: -2px;
+}
+.uk-slidenav-next {
+  right: 16px;
+}
+.uk-slidenav-next:before {
+  position: relative;
+  right: -2px;
+  top: -2px;
+}
+.uk-slidenav:active,
+.uk-slidenav:hover {
+  background: rgba(0, 0, 0, 0.6);
+  border-radius: 50%;
+}
+.uk-dotnav > li {
+  border: 2px solid rgba(255, 255, 255, 0.8);
+  padding: 2px;
+  margin-right: 6px;
+  border-radius: 50%;
+}
+.uk-dotnav > li.uk-active {
+  border-color: #fff;
+}
+.uk-dotnav > li.uk-active > a {
+  background: #7cb342;
+}
+.uk-dotnav > li > a {
+  margin: 0;
+  width: 14px;
+  height: 14px;
+}
+.section {
+  padding: 48px 0;
+  position: relative;
+}
+.section_large {
+  padding: 64px 0;
+}
+.section_dark {
+  color: #fff;
+}
+.section_gallery {
+  position: relative;
+}
+.section_gallery .slide_navigation {
+  display: none;
+}
+.section_gallery:hover .slide_navigation {
+  display: block;
+}
+[class*=uk-width].uk-container-center {
+  float: none;
+}
+@media only screen and (max-width: 1219px) {
+  .banner .uk-slideshow,
+  .banner .uk-slideshow > li {
+    height: auto;
+    min-height: 360px;
+  }
+  .banner .uk-slideshow > li .slide_content_a,
+  .banner .uk-slideshow > li .slide_content_b,
+  .banner .uk-slideshow > li .slide_content_c {
+    margin: 0;
+    position: absolute;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+    background: rgba(0, 0, 0, 0.4);
+    padding: 48px 48px 0;
+    text-align: center;
+  }
+  .banner .uk-slideshow > li .slide_header {
+    margin-bottom: 20px;
+    color: #fff !important;
+  }
+  .banner .uk-slideshow > li p {
+    font-size: 20px;
+    color: #fff !important;
+  }
+  .banner .uk-slideshow > li p + * {
+    margin-top: 24px;
+  }
+}
+@media only screen and (max-width: 959px) {
+  #header_main {
+    height: 48px;
+  }
+  #header_main .uk-navbar-brand {
+    line-height: 48px;
+    padding: 0;
+  }
+  #main_navigation {
+    display: none;
+  }
+  #mobile_navigation_toggle {
+    padding: 12px 4px 10px;
+    display: inline-block;
+  }
+  #mobile_navigation_toggle i {
+    font-size: 24px;
+  }
+}
+@media only screen and (max-width: 767px) {
+  .banner .uk-slideshow > li {
+    background-size: auto 100%;
+  }
+  .banner .uk-slideshow > li .slide_content_a,
+  .banner .uk-slideshow > li .slide_content_b,
+  .banner .uk-slideshow > li .slide_content_c {
+    margin: 0;
+    position: absolute;
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+    background: rgba(0, 0, 0, 0.4);
+    padding: 24px 12px;
+    text-align: center;
+  }
+  .banner .uk-slideshow > li .slide_header {
+    font: 400 24px / 28px "Roboto", sans-serif;
+    margin-bottom: 6px;
+    color: #fff !important;
+  }
+  .banner .uk-slideshow > li p {
+    font-size: 15px;
+    color: #fff !important;
+  }
+  .banner .uk-slideshow > li p + * {
+    margin-top: 24px;
+  }
+  .uk-container {
+    padding-left: 15px;
+    padding-right: 15px;
+  }
+}
+/* theme */
+
+/*# sourceMappingURL=main.css.map */

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/css/main.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/continentoverview/continent-overview.component.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/continentoverview/continent-overview.component.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/continentoverview/continent-overview.component.html	(revision 60863)
@@ -0,0 +1,1309 @@
+<div class="greySection">
+
+  <section class="uk-padding-small" id="sect-continent-page">
+    <div class="uk-container uk-container-expand uk-margin-medium-top">
+
+      <!--LAPTOP & PAD LANDSCAPE-->
+      <div class="uk-visible@m">
+        <ul class="uk-breadcrumb">
+          <li><a routerLink="/home">Home</a></li>
+          <li><span>{{continentName | titlecase}}</span></li>
+        </ul>
+
+
+        <div *ngIf="continentName" class="">
+          <img src="../../../assets/img/flags/{{continentName}}-flag.jpg" class="flag-image" width="132" height="132">
+          <div class="uk-inline uk-margin-left">
+            <h1>{{continentName | titlecase}}</h1>
+            <span class="lastUpdateInfo">Info Last Updated: </span>
+            <span *ngIf="lastUpdateDate" class="lastUpdateInfo">{{lastUpdateDate}}</span>
+          </div>
+        </div>
+      </div>
+
+      <!--MOBILE & PAD PORTRAIT-->
+      <div class="uk-hidden@m uk-text-center">
+        <div *ngIf="continentName" class="">
+          <img src="../../../assets/img/flags/{{continentName}}-flag.jpg" class="flag-image uk-display-block uk-margin-auto-left uk-margin-auto-right" width="103" height="103">
+          <div class="uk-margin-top">
+            <h1 class="uk-margin-small-bottom">{{continentName | titlecase}}</h1>
+            <span class="lastUpdateInfo">Info Last Updated: 21 May 2020</span>
+          </div>
+        </div>
+      </div>
+
+    </div>
+  </section>
+
+
+
+  <section class="uk-padding-small uk-margin-top">
+    <div class="uk-container uk-container-center uk-margin-medium-top">
+
+      <!--LAPTOP & PAD LANDSCAPE-->
+      <div class="uk-visible@m">
+        <div *ngIf="!europeOverviewData" class="whiteFilm"><i class="fa fa-spinner fa-spin fa-5x loader" aria-hidden="true"></i></div>
+        <div *ngIf="europeOverviewData" class="uk-grid uk-child-width-1-4 entitiesContainer">
+
+          <!--PUBLICATIONS-->
+          <ng-container *ngIf="europeOverviewData.publications?.percentage">
+            <div class="publicationsColumn uk-padding" [style.height.%]="getHeight(europeOverviewData.publications.percentage)">
+              <div class="entityColumnContent">
+                <span><img src="../../../assets/img/icons/publications-icon-white.svg" [width]="getPublicationsIconWidth(europeOverviewData.publications.percentage)"></span>
+                <span class="number" [style.font-size.px]="getNumberFontSize(europeOverviewData.publications.percentage)"
+                      [ngStyle]="{'margin-top' :europeOverviewData.publications.percentage * 45 /100 + 'px'}">
+              {{europeOverviewData.publications.percentage | number :'1.0-1'}}%
+            </span>
+                <span class="number" [style.font-size.px]="getEntityNameFontSize(europeOverviewData.publications.percentage)"
+                      [ngStyle]="{'margin-top' :europeOverviewData.publications.percentage * 30 /100 + 'px'}">Publications</span>
+              </div>
+            </div>
+          </ng-container>
+          <ng-container *ngIf="!europeOverviewData.publications || !europeOverviewData.publications.percentage">
+            <div class="publicationsColumn uk-padding" style="height: 0%">
+
+            </div>
+          </ng-container>
+
+          <!--DATASETS-->
+          <ng-container *ngIf="europeOverviewData.datasets?.percentage">
+            <div class="datasetsColumn uk-padding" [style.height.%]="getHeight(europeOverviewData.datasets.percentage)">
+              <div class="entityColumnContent">
+                <span><img src="../../../assets/img/icons/datasets-icon-white.svg" [width]="getDatasetsIconWidth(europeOverviewData.datasets.percentage)"></span>
+                <span class="number" [style.font-size.px]="getNumberFontSize(europeOverviewData.datasets.percentage)"
+                      [ngStyle]="{'margin-top' :europeOverviewData.datasets.percentage * 45 /100 + 'px'}">
+              {{europeOverviewData.datasets.percentage | number :'1.0-1'}}%
+            </span>
+                <span class="number" [style.font-size.px]="getEntityNameFontSize(europeOverviewData.datasets.percentage)"
+                      [ngStyle]="{'margin-top' :europeOverviewData.datasets.percentage * 30 /100 + 'px'}">Datasets</span>
+              </div>
+            </div>
+          </ng-container>
+          <ng-container *ngIf="!europeOverviewData.datasets || !europeOverviewData.datasets.percentage">
+            <div class="datasetsColumn" style="height: 0%">
+
+            </div>
+          </ng-container>
+
+          <!--SOFTWARE-->
+          <ng-container *ngIf="europeOverviewData.software?.percentage">
+            <div class="softwareColumn uk-padding" [style.height.%]="getHeight(europeOverviewData.software.percentage)">
+              <div class="entityColumnContent">
+                <span><img src="../../../assets/img/icons/software-icon-white.svg" [width]="getSoftwareIconWidth(europeOverviewData.software.percentage)"></span>
+                <span class="number" [style.font-size.px]="getNumberFontSize(europeOverviewData.software.percentage)"
+                      [ngStyle]="{'margin-top' :europeOverviewData.software.percentage * 45 /100 + 'px'}">
+              {{europeOverviewData.software.percentage | number :'1.0-1'}}%
+            </span>
+                <span class="number" [style.font-size.px]="getEntityNameFontSize(europeOverviewData.software.percentage)"
+                      [ngStyle]="{'margin-top' :europeOverviewData.software.percentage * 30 /100 + 'px'}">Software</span>
+              </div>
+            </div>
+          </ng-container>
+          <ng-container *ngIf="!europeOverviewData.software || !europeOverviewData.software.percentage">
+            <div class="softwareColumn" style="height: 0%">
+
+            </div>
+          </ng-container>
+
+          <!--OTHER-->
+          <ng-container *ngIf="europeOverviewData.other?.percentage">
+            <div class="otherColumn uk-padding" [style.height.%]="getHeight(europeOverviewData.other.percentage)">
+              <div class="entityColumnContent">
+                <span><img src="../../../assets/img/icons/other-icon-white.svg" [width]="getOtherIconWidth(europeOverviewData.other.percentage)"></span>
+                <span class="number" [style.font-size.px]="getNumberFontSize(europeOverviewData.other.percentage)"
+                      [ngStyle]="{'margin-top' :europeOverviewData.other.percentage * 45 /100 + 'px'}">
+              {{europeOverviewData.other.percentage | number :'1.0-1'}}%
+            </span>
+                <span class="number" [style.font-size.px]="getEntityNameFontSize(europeOverviewData.other.percentage)"
+                      [ngStyle]="{'margin-top' :europeOverviewData.other.percentage * 30 /100 + 'px'}">Other</span>
+              </div>
+            </div>
+          </ng-container>
+          <ng-container *ngIf="!europeOverviewData.other || !europeOverviewData.other.percentage">
+            <div class="otherColumn" style="height: 0%">
+
+            </div>
+          </ng-container>
+
+        </div>
+
+        <hr class="entitiesDivider">
+
+        <div *ngIf="europeOverviewData" class="uk-grid uk-child-width-1-4 uk-margin-large-top">
+
+          <div class="entityLegendContent">
+            <div class="publicationsDot uk-inline"></div>
+            <div class="uk-inline uk-margin-left">
+              <span>
+                <ng-container *ngIf="europeOverviewData.publications?.oa">OA: <span class="number">{{europeOverviewData.publications?.oa | number}}</span></ng-container><br>
+                <ng-container *ngIf="europeOverviewData.publications?.total">Total: <span class="number">{{europeOverviewData.publications?.total | number}}</span></ng-container>
+              </span>
+            </div>
+          </div>
+          <div class="entityLegendContent">
+            <div class="datasetsDot"></div>
+            <div class="uk-inline uk-margin-left">
+              <span>
+                <ng-container *ngIf="europeOverviewData.datasets?.oa">OA: <span class="number">{{europeOverviewData.datasets?.oa | number}}</span></ng-container><br>
+                <ng-container *ngIf="europeOverviewData.datasets?.total">Total: <span class="number">{{europeOverviewData.datasets?.total | number}}</span></ng-container>
+              </span>
+            </div>
+          </div>
+          <div class="entityLegendContent">
+            <div class="softwareDot"></div>
+            <div class="uk-inline uk-margin-left">
+              <span>
+                <ng-container *ngIf="europeOverviewData.software?.oa">OA: <span class="number">{{europeOverviewData.software?.oa | number}}</span></ng-container><br>
+                <ng-container *ngIf="europeOverviewData.software?.total">Total: <span class="number">{{europeOverviewData.software?.total | number}}</span></ng-container>
+              </span>
+            </div>
+          </div>
+          <div class="entityLegendContent">
+            <div class="otherDot"></div>
+            <div class="uk-inline uk-margin-left">
+              <span>
+                <ng-container *ngIf="europeOverviewData.other?.oa">OA: <span class="number">{{europeOverviewData.other?.oa | number}}</span></ng-container><br>
+                <ng-container *ngIf="europeOverviewData.other?.total">Total: <span class="number">{{europeOverviewData.other?.total | number}}</span></ng-container>
+              </span>
+            </div>
+          </div>
+
+        </div>
+      </div>
+
+      <!--MOBILE & PAD PORTRAIT-->
+      <div class="uk-hidden@m uk-text-center">
+        <div *ngIf="!europeOverviewData" class="whiteFilm"><i class="fa fa-spinner fa-spin fa-5x loader" aria-hidden="true"></i></div>
+
+        <div *ngIf="europeOverviewData" class="uk-grid uk-child-width-1-4 entitiesContainer">
+
+          <!--PUBLICATIONS-->
+          <ng-container *ngIf="europeOverviewData.publications?.percentage">
+            <div class="publicationsColumn uk-padding" [style.height.%]="getHeight(europeOverviewData.publications.percentage)">
+              <div class="entityColumnContent">
+                <span><img src="../../../assets/img/icons/publications-icon-white.svg" [width]="getPublicationsIconWidth(europeOverviewData.publications.percentage)"></span>
+              </div>
+            </div>
+          </ng-container>
+          <ng-container *ngIf="!europeOverviewData.publications || !europeOverviewData.publications.percentage">
+            <div class="publicationsColumn uk-padding" style="height: 0%">
+
+            </div>
+          </ng-container>
+
+          <!--DATASETS-->
+          <ng-container *ngIf="europeOverviewData.datasets?.percentage">
+            <div class="datasetsColumn uk-padding" [style.height.%]="getHeight(europeOverviewData.datasets.percentage)">
+              <div class="entityColumnContent">
+                <span><img src="../../../assets/img/icons/datasets-icon-white.svg" [width]="getDatasetsIconWidth(europeOverviewData.datasets.percentage)"></span>
+              </div>
+            </div>
+          </ng-container>
+          <ng-container *ngIf="!europeOverviewData.datasets || !europeOverviewData.datasets.percentage">
+            <div class="datasetsColumn" style="height: 0%">
+
+            </div>
+          </ng-container>
+
+          <!--SOFTWARE-->
+          <ng-container *ngIf="europeOverviewData.software?.percentage">
+            <div class="softwareColumn uk-padding" [style.height.%]="getHeight(europeOverviewData.software.percentage)">
+              <div class="entityColumnContent">
+                <span><img src="../../../assets/img/icons/software-icon-white.svg" [width]="getSoftwareIconWidth(europeOverviewData.software.percentage)"></span>
+              </div>
+            </div>
+          </ng-container>
+          <ng-container *ngIf="!europeOverviewData.software || !europeOverviewData.software.percentage">
+            <div class="softwareColumn" style="height: 0%">
+
+            </div>
+          </ng-container>
+
+          <!--OTHER-->
+          <ng-container *ngIf="europeOverviewData.other?.percentage">
+            <div class="otherColumn uk-padding" [style.height.%]="getHeight(europeOverviewData.other.percentage)">
+              <div class="entityColumnContent">
+                <span><img src="../../../assets/img/icons/other-icon-white.svg" [width]="getOtherIconWidth(europeOverviewData.other.percentage)"></span>
+              </div>
+            </div>
+          </ng-container>
+          <ng-container *ngIf="!europeOverviewData.other || !europeOverviewData.other.percentage">
+            <div class="otherColumn" style="height: 0%">
+
+            </div>
+          </ng-container>
+
+        </div>
+        <hr class="entitiesDivider">
+
+        <div *ngIf="europeOverviewData" class="uk-grid uk-child-width-1-1 continentPageEntitiesOverview">
+
+          <!--PUBLICATIONS-->
+          <div *ngIf="europeOverviewData.publications?.percentage" style="z-index: 4;">
+            <div class="md-card">
+              <div class="md-card-content">
+                <div class="uk-flex uk-flex-space-between">
+                  <div class="">
+                    <img src="../../../assets/img/icons/publications-icon.svg" width="21">
+                    <span class="publications entityName uk-margin-left">Publications</span>
+                  </div>
+                  <div class="number big">
+                    {{europeOverviewData.publications.percentage | number : '1.0-1'}}%
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+
+          <!--DATASETS-->
+          <div *ngIf="europeOverviewData.datasets?.percentage" style="z-index: 3;">
+            <div class="md-card">
+              <div class="md-card-content">
+                <div class="uk-flex uk-flex-space-between">
+                  <div class="">
+                    <img src="../../../assets/img/icons/datasets-icon.svg" width="17">
+                    <span class="datasets entityName uk-margin-left">Datasets</span>
+                  </div>
+                  <div class="number big">
+                    {{europeOverviewData.datasets.percentage | number : '1.0-1'}}%
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+
+          <!--SOFTWARE-->
+          <div *ngIf="europeOverviewData.software?.percentage" style="z-index: 2;">
+            <div class="md-card">
+              <div class="md-card-content">
+                <div class="uk-flex uk-flex-space-between">
+                  <div class="">
+                    <img src="../../../assets/img/icons/software-icon.svg" width="19">
+                    <span class="software entityName uk-margin-left">Software</span>
+                  </div>
+                  <div class="number big">
+                    {{europeOverviewData.software.percentage | number : '1.0-1'}}%
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+
+          <!--OTHER-->
+          <div *ngIf="europeOverviewData.other?.percentage" style="z-index: 1;">
+            <div class="md-card">
+              <div class="md-card-content">
+                <div class="uk-flex uk-flex-space-between">
+                  <div class="">
+                    <img src="../../../assets/img/icons/other-icon.svg" width="20">
+                    <span class="other entityName uk-margin-left">Other</span>
+                  </div>
+                  <div class="number big">
+                    {{europeOverviewData.other.percentage | number : '1.0-1'}}%
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+
+        </div>
+      </div>
+
+
+    </div>
+  </section>
+
+  <!--TABS SECTION-->
+  <section class="section uk-margin-large-top" id="sect-tabs">
+    <div class="uk-container uk-container-expand uk-container-center uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up" data-uk-scrollspy="{cls:'uk-animation-scale-up uk-invisible',delay:300,topoffset:-100}">
+
+      <div class="">
+
+        <!--LAPTOP & PAD LANDSCAPE-->
+        <ul class="uk-visible@m uk-tab uk-tab-large uk-flex-center" data-uk-tab="{connect:'#team_tabbed',animation: 'slide-bottom'}">
+          <li class="uk-active" aria-expanded="true"><a (click)="changeTopView('overview')">Overview</a></li>
+          <li aria-expanded="false"><a (click)="changeTopView('openScience')">Open Science</a></li>
+          <li class="uk-disabled" aria-expanded="false"><a href="#" data-uk-tooltip="{title: Stay tuned..; pos: top-left}">Collaboration</a></li>
+          <li class="uk-disabled" aria-expanded="false" data-uk-tooltip="Stay tuned.."><a href="#">Impact</a></li>
+          <li class="uk-disabled" aria-expanded="false" data-uk-tooltip="Stay tuned.."><a href="#">Innovation</a></li>
+          <!--<li class="uk-tab-responsive uk-active uk-hidden" aria-haspopup="true" aria-expanded="false"><a>Developers</a><div class="uk-dropdown uk-dropdown-small" aria-hidden="true"><ul class="uk-nav uk-nav-dropdown"></ul><div></div></div></li>-->
+        </ul>
+
+        <!--MOBILE & PAD PORTRAIT-->
+        <ul class="uk-hidden@m uk-tab" data-uk-tab="{connect:'#team_tabbed',animation: 'slide-bottom'}">
+          <li class="uk-active" aria-expanded="true"><a (click)="changeTopView('overview')">Overview</a></li>
+          <li aria-expanded="false"><a (click)="changeTopView('openScience')">Open Science</a></li>
+          <li class="uk-disabled" aria-expanded="false"><a href="#" data-uk-tooltip="{title: Stay tuned..; pos: top-left}">Collaboration</a></li>
+          <li class="uk-disabled" aria-expanded="false" data-uk-tooltip="Stay tuned.."><a href="#">Impact</a></li>
+          <li class="uk-disabled" aria-expanded="false" data-uk-tooltip="Stay tuned.."><a href="#">Innovation</a></li>
+          <!--<li class="uk-tab-responsive uk-active uk-hidden" aria-haspopup="true" aria-expanded="false"><a>Developers</a><div class="uk-dropdown uk-dropdown-small" aria-hidden="true"><ul class="uk-nav uk-nav-dropdown"></ul><div></div></div></li>-->
+        </ul>
+
+        <ul id="team_tabbed" class="uk-switcher dataContainer">
+
+          <!--OVERVIEW tab-->
+          <li aria-hidden="false" class="uk-active" style="animation-duration: 200ms;">
+            <div class="uk-margin tabContent">
+
+              <div class="uk-grid uk-child-width-1-1">
+
+                <div>
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe width="100%" height="550" [src]="publicationsByTypeChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+              </div>
+
+              <div class="uk-grid uk-child-width-1-3@m uk-child-width-1-3@l uk-child-width-1-1@s">
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe width="100%" height="550" [src]="publicationsByCountryChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe width="100%" height="550" [src]="publicationsByDatasourceChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe width="100%" height="550" [src]="publicationsByOrganizationChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe width="100%" height="550" [src]="datasetsByCountryChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe width="100%" height="550" [src]="datasetsByDatasourceChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe width="100%" height="550" [src]="datasetsByOrganizationChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe width="100%" height="550" [src]="softwareByCountryChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe width="100%" height="550" [src]="softwareByDatasourceChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe width="100%" height="550" [src]="softwareByOrganizationChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe width="100%" height="550" [src]="otherByCountryChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe width="100%" height="550" [src]="otherByDatasourceChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <iframe width="100%" height="550" [src]="otherByOrganizationChartURL"></iframe>
+                    </div>
+                  </div>
+                </div>
+
+              </div>
+
+              <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <app-treemap-highchart *ngIf="publicationsByFunderData" [chartTitle]="'OA Publications by funder'"
+                                             [chartData]="publicationsByFunderData" [color]="publicationColor"></app-treemap-highchart>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <app-treemap-highchart *ngIf="datasetsByFunderData" [chartTitle]="'OA Datasets by funder'"
+                                             [chartData]="datasetsByFunderData" [color]="datasetColor"></app-treemap-highchart>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <app-treemap-highchart *ngIf="softwareByFunderData" [chartTitle]="'OS Software by funder'"
+                                             [chartData]="softwareByFunderData" [color]="softwareColor"></app-treemap-highchart>
+                    </div>
+                  </div>
+                </div>
+
+                <div class="uk-grid-margin">
+                  <div class="md-card chartCard">
+                    <div class="md-card-content">
+                      <app-treemap-highchart *ngIf="otherByFunderData" [chartTitle]="'OA Other research products by funder'"
+                                             [chartData]="otherByFunderData" [color]="otherResearchProductsColor"></app-treemap-highchart>
+                    </div>
+                  </div>
+                </div>
+
+
+              </div>
+
+
+              <!--<app-countries-table [isPercentage]="false" [type]="'overview'" [countries]="overviewData.countries"></app-countries-table>-->
+            </div>
+          </li>
+
+          <!--OPEN SCIENCE tab-->
+          <li aria-hidden="true" style="animation-duration: 200ms;">
+            <div class="uk-margin tabContent">
+
+
+              <ul class="uk-subnav uk-subnav-pill dataView uk-flex uk-flex-center" data-uk-switcher="{connect:'#switcher-content-a-fade', animation: 'fade'}">
+                <li aria-expanded="true" class="uk-active">
+                  <a class="publicationsSubnav" (click)="changeInnerView('publications')" uk-tooltip="title: Publication; duration: 2000">
+                    <img src="../../../assets/img/icons/publications-icon.svg" width="15">
+                  </a>
+                </li>
+                <li aria-expanded="false" class="">
+                  <a class="datasetsSubnav" (click)="changeInnerView('datasets')" uk-tooltip="title: Datasets; duration: 2000">
+                    <img src="../../../assets/img/icons/datasets-icon.svg" width="15">
+                  </a>
+                </li>
+                <li aria-expanded="false" class="">
+                  <a class="softwareSubnav" (click)="changeInnerView('software')" uk-tooltip="title: Software; duration: 2000">
+                    <img src="../../../assets/img/icons/software-icon.svg" width="15">
+                  </a>
+                </li>
+                <li aria-expanded="false" class="">
+                  <a class="otherSubnav" (click)="changeInnerView('other')" uk-tooltip="title: Other research products; duration: 2000">
+                    <img src="../../../assets/img/icons/other-icon.svg" width="15">
+                  </a>
+                </li>
+              </ul>
+
+              <hr class="uk-visible@m">
+
+              <ul id="switcher-content-a-fade" class="uk-switcher uk-margin" >
+                <li aria-hidden="false" class="uk-active" style="animation-duration: 200ms;">
+
+                  <div>
+
+                    <div class="pidIndicator">
+                      <h3 class="uk-margin-remove">PID</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="publicationsWithPIDTimeline" width="100%" height="550" [src]="publicationsWithPIDTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="publicationsWithPIDByCountryChartURL" width="100%" height="550" [src]="publicationsWithPIDByCountryChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="publicationsWithPIDByDatasourceChartURL" width="100%" height="550" [src]="publicationsWithPIDByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="publicationsWithPIDByOrganizationChartURL" width="100%" height="550" [src]="publicationsWithPIDByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="publicationsWithPIDByFunderData" [chartTitle]="'OA Publications with PID by funder'"
+                                                     [chartData]="publicationsWithPIDByFunderData" [color]="publicationColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="licenceIndicator uk-margin-large-top">
+                      <h3 class="uk-margin-remove">Licence</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="publicationsWithLicenceTimeline" width="100%" height="550" [src]="publicationsWithLicenceTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="publicationsWithLicenceByCountryChartURL" width="100%" height="550" [src]="publicationsWithLicenceByCountryChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="publicationsWithLicenceByDatasourceChartURL" width="100%" height="550" [src]="publicationsWithLicenceByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="publicationsWithLicenceByOrganizationChartURL" width="100%" height="550" [src]="publicationsWithLicenceByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="publicationsWithLicenceByFunderData" [chartTitle]="'OA Publications with licence by funder'"
+                                                     [chartData]="publicationsWithLicenceByFunderData" [color]="publicationColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="goldIndicator uk-margin-large-top">
+                      <h3 class="uk-margin-remove">Gold</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="goldPublicationsTimeline" width="100%" height="550" [src]="goldPublicationsTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="goldPublicationsByCountryChartURL" width="100%" height="550" [src]="goldPublicationsByCountryChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="goldPublicationsByDatasourceChartURL" width="100%" height="550" [src]="goldPublicationsByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="goldPublicationsByOrganizationChartURL" width="100%" height="550" [src]="goldPublicationsByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="goldPublicationsByFunderData" [chartTitle]="'Gold OA publications by funder'"
+                                                     [chartData]="goldPublicationsByFunderData" [color]="publicationColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="greenIndicator uk-margin-large-top">
+                      <h3 class="uk-margin-remove">Green</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="greenPublicationsTimeline" width="100%" height="550" [src]="greenPublicationsTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="greenPublicationsByCountryChartURL" width="100%" height="550" [src]="greenPublicationsByCountryChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="greenPublicationsByDatasourceChartURL" width="100%" height="550" [src]="greenPublicationsByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="greenPublicationsByOrganizationChartURL" width="100%" height="550" [src]="greenPublicationsByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="greenPublicationsByFunderData" [chartTitle]="'Green OA publications by funder'"
+                                                     [chartData]="greenPublicationsByFunderData" [color]="publicationColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="greenVsGoldIndicator uk-margin-large-top">
+                      <h3 class="uk-margin-remove">Green vs. Gold</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="greenVsGoldPublicationsChartURL" width="100%" height="550" [src]="greenVsGoldPublicationsChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="indicatorsTable uk-visible@m uk-margin-large-top">
+
+                      <h3 class="">More details for publications</h3>
+
+                      <div class="uk-margin-top uk-margin-bottom">
+                        <label class="uk-margin-right">Show: </label>
+                        <select class="md-input" #selectPublicationsContent (change)="getContent('publication', selectPublicationsContent.value)" style="width: 230px; display: inline-block">
+                          <option value="affiliated">affiliated</option>
+                          <option value="affiliated_peer_reviewed">affiliated peer reviewed</option>
+                          <option value="deposited">deposited</option>
+                          <option value="deposited_peer_reviewed">deposited peer reviewed</option>
+                        </select>
+                        <!--<span class="md-input-bar"></span>-->
+                      </div>
+
+                      <div class="uk-grid uk-child-width-1-2@l uk-child-width-1-2@m">
+                        <div class="absoluteTable">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+
+                              <ul class="uk-subnav uk-subnav-pill dataView uk-flex uk-flex-center" data-uk-switcher="{connect:'#pubs-indicators-content-a-fade', animation: 'fade'}">
+                                <li aria-expanded="true" class="uk-active">
+                                  <a href="#">
+                                    <i class="fas fa-hashtag"></i>
+                                  </a>
+                                </li>
+                                <li aria-expanded="false" class="">
+                                  <a href="#">
+                                    <i class="fas fa-percentage"></i>
+                                  </a>
+                                </li>
+                              </ul>
+
+                              <ul id="pubs-indicators-content-a-fade" class="uk-switcher uk-margin" >
+                                <li aria-hidden="false" class="uk-active" style="animation-duration: 200ms;">
+                                  <div *ngIf="loadingPublicationsAbsoluteTable" class="whiteFilm"><i class="fa fa-spinner fa-spin fa-2x loader" aria-hidden="true"></i></div>
+                                  <app-countries-table *ngIf="publicationsAbsoluteTableData" [isPercentage]="false" [countries]="publicationsAbsoluteTableData" [view]="'openScience'" [entity]="'publication'"></app-countries-table>
+                                </li>
+                                <li aria-hidden="true" style="animation-duration: 200ms;" class="">
+                                  <div *ngIf="loadingPublicationsPercentageTable" class="whiteFilm"><i class="fa fa-spinner fa-spin fa-2x loader" aria-hidden="true"></i></div>
+                                  <app-countries-table *ngIf="publicationsPercentageTableData" [isPercentage]="true" [countries]="publicationsPercentageTableData" [view]="'openScience'" [entity]="'publication'"></app-countries-table>
+                                </li>
+                              </ul>
+
+                            </div>
+                          </div>
+
+                        </div>
+
+                      </div>
+
+
+                    </div>
+
+                  </div>
+
+                </li>
+                <li aria-hidden="true" style="animation-duration: 200ms;" class="">
+
+                  <div>
+
+                    <div class="pidIndicator">
+                      <h3 class="uk-margin-remove">PID</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="datasetsWithPIDTimeline" width="100%" height="550" [src]="datasetsWithPIDTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="datasetsWithPIDByCountryChartURL" width="100%" height="550" [src]="datasetsWithPIDByCountryChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="datasetsWithPIDByDatasourceChartURL" width="100%" height="550" [src]="datasetsWithPIDByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="datasetsWithPIDByOrganizationChartURL" width="100%" height="550" [src]="datasetsWithPIDByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="datasetsWithPIDByFunderData" [chartTitle]="'OA Datasets with PID by funder'"
+                                                     [chartData]="datasetsWithPIDByFunderData" [color]="datasetColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="licenceIndicator uk-margin-large-top">
+                      <h3 class="uk-margin-remove">Licence</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="datasetsWithLicenceTimeline" width="100%" height="550" [src]="datasetsWithLicenceTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="datasetsWithLicenceByCountryChartURL" width="100%" height="550" [src]="datasetsWithLicenceByCountryChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="datasetsWithLicenceByDatasourceChartURL" width="100%" height="550" [src]="datasetsWithLicenceByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="datasetsWithLicenceByOrganizationChartURL" width="100%" height="550" [src]="datasetsWithLicenceByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="datasetsWithLicenceByFunderData" [chartTitle]="'OA Datasets with licence by funder'"
+                                                     [chartData]="datasetsWithLicenceByFunderData" [color]="datasetColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="indicatorsTable uk-visible@m uk-margin-large-top">
+
+                      <h3 class="">More details for datasets</h3>
+
+                      <div class="uk-margin-top uk-margin-bottom">
+                        <label class="uk-margin-right">Show: </label>
+                        <select class="md-input" #selectDatasetsContent (change)="getContent('dataset', selectDatasetsContent.value)" style="width: 230px; display: inline-block">
+                          <option value="affiliated">affiliated</option>
+                          <option value="affiliated_peer_reviewed">affiliated peer reviewed</option>
+                          <option value="deposited">deposited</option>
+                          <option value="deposited_peer_reviewed">deposited peer reviewed</option>
+                        </select>
+                        <!--<span class="md-input-bar"></span>-->
+                      </div>
+
+                      <div class="uk-grid uk-child-width-1-2@l uk-child-width-1-2@m">
+                        <div class="absoluteTable">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+
+                              <ul class="uk-subnav uk-subnav-pill dataView uk-flex uk-flex-center" data-uk-switcher="{connect:'#data-indicators-content-a-fade', animation: 'fade'}">
+                                <li aria-expanded="true" class="uk-active">
+                                  <a href="#">
+                                    <i class="fas fa-hashtag"></i>
+                                  </a>
+                                </li>
+                                <li aria-expanded="false" class="">
+                                  <a href="#">
+                                    <i class="fas fa-percentage"></i>
+                                  </a>
+                                </li>
+                              </ul>
+
+                              <ul id="data-indicators-content-a-fade" class="uk-switcher uk-margin" >
+                                <li aria-hidden="false" class="uk-active" style="animation-duration: 200ms;">
+                                  <div *ngIf="loadingPublicationsAbsoluteTable" class="whiteFilm"><i class="fa fa-spinner fa-spin fa-2x loader" aria-hidden="true"></i></div>
+                                  <app-countries-table *ngIf="datasetsAbsoluteTableData" [isPercentage]="false" [countries]="datasetsAbsoluteTableData" [view]="'openScience'" [entity]="'dataset'"></app-countries-table>
+                                </li>
+                                <li aria-hidden="true" style="animation-duration: 200ms;" class="">
+                                  <div *ngIf="loadingPublicationsPercentageTable" class="whiteFilm"><i class="fa fa-spinner fa-spin fa-2x loader" aria-hidden="true"></i></div>
+                                  <app-countries-table *ngIf="datasetsPercentageTableData" [isPercentage]="true" [countries]="datasetsPercentageTableData" [view]="'openScience'" [entity]="'dataset'"></app-countries-table>
+                                </li>
+                              </ul>
+
+                            </div>
+                          </div>
+
+                        </div>
+
+                      </div>
+
+
+                    </div>
+
+                  </div>
+
+                </li>
+                <li aria-hidden="true" style="animation-duration: 200ms;" class="">
+
+                  <div>
+
+                    <div class="pidIndicator">
+                      <h3 class="uk-margin-remove">PID</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="softwareWithPIDTimeline" width="100%" height="550" [src]="softwareWithPIDTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="softwareWithPIDByCountryChartURL" width="100%" height="550" [src]="softwareWithPIDByCountryChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="softwareWithPIDByDatasourceChartURL" width="100%" height="550" [src]="softwareWithPIDByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="softwareWithPIDByOrganizationChartURL" width="100%" height="550" [src]="softwareWithPIDByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="softwareWithPIDByFunderData" [chartTitle]="'OS Software with PID by funder'"
+                                                     [chartData]="softwareWithPIDByFunderData" [color]="softwareColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="licenceIndicator uk-margin-large-top">
+                      <h3 class="uk-margin-remove">Licence</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="softwareWithLicenceTimeline" width="100%" height="550" [src]="softwareWithLicenceTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="softwareWithLicenceByCountryChartURL" width="100%" height="550" [src]="softwareWithLicenceByCountryChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="softwareWithLicenceByDatasourceChartURL" width="100%" height="550" [src]="softwareWithLicenceByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="softwareWithLicenceByOrganizationChartURL" width="100%" height="550" [src]="softwareWithLicenceByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="softwareWithLicenceByFunderData" [chartTitle]="'OS Software with licence by funder'"
+                                                     [chartData]="softwareWithLicenceByFunderData" [color]="softwareColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="indicatorsTable uk-visible@m uk-margin-large-top">
+
+                      <h3 class="">More details for software</h3>
+
+                      <div class="uk-margin-top uk-margin-bottom">
+                        <label class="uk-margin-right">Show: </label>
+                        <select class="md-input" #selectSoftwareContent (change)="getContent('software', selectSoftwareContent.value)" style="width: 230px; display: inline-block">
+                          <option value="affiliated">affiliated</option>
+                          <option value="affiliated_peer_reviewed">affiliated peer reviewed</option>
+                          <option value="deposited">deposited</option>
+                          <option value="deposited_peer_reviewed">deposited peer reviewed</option>
+                        </select>
+                        <!--<span class="md-input-bar"></span>-->
+                      </div>
+
+                      <div class="uk-grid uk-child-width-1-2@l uk-child-width-1-2@m">
+                        <div class="absoluteTable">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+
+                              <ul class="uk-subnav uk-subnav-pill dataView uk-flex uk-flex-center" data-uk-switcher="{connect:'#software-indicators-content-a-fade', animation: 'fade'}">
+                                <li aria-expanded="true" class="uk-active">
+                                  <a href="#">
+                                    <i class="fas fa-hashtag"></i>
+                                  </a>
+                                </li>
+                                <li aria-expanded="false" class="">
+                                  <a href="#">
+                                    <i class="fas fa-percentage"></i>
+                                  </a>
+                                </li>
+                              </ul>
+
+                              <ul id="software-indicators-content-a-fade" class="uk-switcher uk-margin" >
+                                <li aria-hidden="false" class="uk-active" style="animation-duration: 200ms;">
+                                  <div *ngIf="loadingPublicationsAbsoluteTable" class="whiteFilm"><i class="fa fa-spinner fa-spin fa-2x loader" aria-hidden="true"></i></div>
+                                  <app-countries-table *ngIf="softwareAbsoluteTableData" [isPercentage]="false" [countries]="softwareAbsoluteTableData" [view]="'openScience'" [entity]="'software'"></app-countries-table>
+                                </li>
+                                <li aria-hidden="true" style="animation-duration: 200ms;" class="">
+                                  <div *ngIf="loadingPublicationsPercentageTable" class="whiteFilm"><i class="fa fa-spinner fa-spin fa-2x loader" aria-hidden="true"></i></div>
+                                  <app-countries-table *ngIf="softwarePercentageTableData" [isPercentage]="true" [countries]="softwarePercentageTableData" [view]="'openScience'" [entity]="'software'"></app-countries-table>
+                                </li>
+                              </ul>
+
+                            </div>
+                          </div>
+
+                        </div>
+
+                      </div>
+
+
+                    </div>
+
+                  </div>
+
+                </li>
+                <li aria-hidden="true" style="animation-duration: 200ms;" class="">
+
+                  <div>
+
+                    <div class="pidIndicator">
+                      <h3 class="uk-margin-remove">PID</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="otherWithPIDTimeline" width="100%" height="550" [src]="otherWithPIDTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="otherWithPIDByCountryChartURL" width="100%" height="550" [src]="otherWithPIDByCountryChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="otherWithPIDByDatasourceChartURL" width="100%" height="550" [src]="otherWithPIDByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="otherWithPIDByOrganizationChartURL" width="100%" height="550" [src]="otherWithPIDByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="otherWithPIDByFunderData" [chartTitle]="'OA Other research products with PID by funder'"
+                                                     [chartData]="otherWithPIDByFunderData" [color]="otherResearchProductsColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="licenceIndicator uk-margin-large-top">
+                      <h3 class="uk-margin-remove">Licence</h3>
+                      <div class="uk-grid uk-child-width-1-2@m uk-child-width-1-2@l uk-child-width-1-1@s">
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="otherWithLicenceTimeline" width="100%" height="550" [src]="otherWithLicenceTimeline"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="otherWithLicenceByCountryChartURL" width="100%" height="550" [src]="otherWithLicenceByCountryChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="otherWithLicenceByDatasourceChartURL" width="100%" height="550" [src]="otherWithLicenceByDatasourceChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <iframe *ngIf="otherWithLicenceByOrganizationChartURL" width="100%" height="550" [src]="otherWithLicenceByOrganizationChartURL"></iframe>
+                            </div>
+                          </div>
+                        </div>
+
+                        <div class="uk-grid-margin">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+                              <app-treemap-highchart *ngIf="otherWithLicenceByFunderData" [chartTitle]="'OA Other research products with licence by funder'"
+                                                     [chartData]="otherWithLicenceByFunderData" [color]="otherResearchProductsColor"></app-treemap-highchart>
+                            </div>
+                          </div>
+                        </div>
+
+                      </div>
+                    </div>
+
+                    <div class="indicatorsTable uk-visible@m uk-margin-large-top">
+
+                      <h3 class="">More details for other research products</h3>
+
+                      <div class="uk-margin-top uk-margin-bottom">
+                        <label class="uk-margin-right">Show: </label>
+                        <select class="md-input" #selectOtherContent (change)="getContent('other', selectOtherContent.value)" style="width: 230px; display: inline-block">
+                          <option value="affiliated">affiliated</option>
+                          <option value="affiliated_peer_reviewed">affiliated peer reviewed</option>
+                          <option value="deposited">deposited</option>
+                          <option value="deposited_peer_reviewed">deposited peer reviewed</option>
+                        </select>
+                        <!--<span class="md-input-bar"></span>-->
+                      </div>
+
+                      <div class="uk-grid uk-child-width-1-2@l uk-child-width-1-2@m">
+                        <div class="absoluteTable">
+                          <div class="md-card chartCard">
+                            <div class="md-card-content">
+
+                              <ul class="uk-subnav uk-subnav-pill dataView uk-flex uk-flex-center" data-uk-switcher="{connect:'#other-indicators-content-a-fade', animation: 'fade'}">
+                                <li aria-expanded="true" class="uk-active">
+                                  <a href="#">
+                                    <i class="fas fa-hashtag"></i>
+                                  </a>
+                                </li>
+                                <li aria-expanded="false" class="">
+                                  <a href="#">
+                                    <i class="fas fa-percentage"></i>
+                                  </a>
+                                </li>
+                              </ul>
+
+                              <ul id="other-indicators-content-a-fade" class="uk-switcher uk-margin" >
+                                <li aria-hidden="false" class="uk-active" style="animation-duration: 200ms;">
+                                  <div *ngIf="loadingPublicationsAbsoluteTable" class="whiteFilm"><i class="fa fa-spinner fa-spin fa-2x loader" aria-hidden="true"></i></div>
+                                  <app-countries-table *ngIf="otherAbsoluteTableData" [isPercentage]="false" [countries]="otherAbsoluteTableData" [view]="'openScience'" [entity]="'other'"></app-countries-table>
+                                </li>
+                                <li aria-hidden="true" style="animation-duration: 200ms;" class="">
+                                  <div *ngIf="loadingPublicationsPercentageTable" class="whiteFilm"><i class="fa fa-spinner fa-spin fa-2x loader" aria-hidden="true"></i></div>
+                                  <app-countries-table *ngIf="otherPercentageTableData" [isPercentage]="true" [countries]="otherPercentageTableData" [view]="'openScience'" [entity]="'other'"></app-countries-table>
+                                </li>
+                              </ul>
+
+                            </div>
+                          </div>
+
+                        </div>
+
+                      </div>
+
+
+                    </div>
+
+                  </div>
+
+                </li>
+              </ul>
+
+
+            </div>
+          </li>
+
+          <li aria-hidden="true">
+            <div class="uk-grid uk-grid-medium uk-grid-width-small-1-2 uk-grid-width-medium-1-3 uk-grid-width-large-1-4" data-uk-grid-margin="">
+            </div>
+          </li>
+
+          <li aria-hidden="true">
+            <div class="uk-grid uk-grid-medium uk-grid-width-small-1-2 uk-grid-width-medium-1-3 uk-grid-width-large-1-4" data-uk-grid-margin="">
+            </div>
+          </li>
+
+          <li aria-hidden="true">
+            <div class="uk-grid uk-grid-medium uk-grid-width-small-1-2 uk-grid-width-medium-1-3 uk-grid-width-large-1-4" data-uk-grid-margin="">
+            </div>
+          </li>
+        </ul>
+      </div>
+
+    </div>
+  </section>
+</div>
+
+
+
+
Index: modules/open-science-observatory-ui/branches/gradient/src/app/pages/continentoverview/continent-overview.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/pages/continentoverview/continent-overview.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/pages/continentoverview/continent-overview.component.ts	(revision 60863)
@@ -0,0 +1,614 @@
+import { Component, OnInit } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
+import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
+import { DataService } from '../../services/data.service';
+import { DataHandlerService } from '../../services/data-handler.service';
+import { CountryTableData, EuropeData } from '../../domain/overview-map-data';
+import { environment } from '../../../environments/environment';
+import { TreemapHighchartsData } from '../../domain/treemap-highcharts-data';
+import { datasetPalette, otherResearchProductsPalette, publicationColor, publicationPalette,
+  softwarePalette, datasetColor, softwareColor, otherResearchProductsColor } from '../../chart-palettes';
+
+@Component({
+  selector: 'app-continent-overview',
+  templateUrl: './continent-overview.component.html',
+})
+
+export class ContinentOverviewComponent implements OnInit {
+
+  private chartsURL = environment.API_ENDPOINT + 'chart?json=';
+  private profileName = environment.profileName;
+
+  private publicationPalette = publicationPalette;
+  private datasetPalette = datasetPalette;
+  private softwarePalette = softwarePalette;
+  private otherResearchProductsPalette = otherResearchProductsPalette;
+
+  publicationColor = publicationColor;
+  datasetColor = datasetColor;
+  softwareColor = softwareColor;
+  otherResearchProductsColor = otherResearchProductsColor;
+
+  lastUpdateDate: string;
+
+  continentName: string;
+
+  activeTopView: string = 'overview';
+  activeInnerView: string = 'publications';
+
+  europeOverviewData: EuropeData;
+
+  // Overview Tab
+  overviewTabIsInitialised: boolean = false;
+
+  publicationsByTypeChartURL: SafeResourceUrl;
+
+  publicationsByCountryChartURL: SafeResourceUrl;
+  publicationsByDatasourceChartURL: SafeResourceUrl;
+  publicationsByOrganizationChartURL: SafeResourceUrl;
+
+  datasetsByCountryChartURL: SafeResourceUrl;
+  datasetsByDatasourceChartURL: SafeResourceUrl;
+  datasetsByOrganizationChartURL: SafeResourceUrl;
+
+  softwareByCountryChartURL: SafeResourceUrl;
+  softwareByDatasourceChartURL: SafeResourceUrl;
+  softwareByOrganizationChartURL: SafeResourceUrl;
+
+  otherByCountryChartURL: SafeResourceUrl;
+  otherByDatasourceChartURL: SafeResourceUrl;
+  otherByOrganizationChartURL: SafeResourceUrl;
+
+  publicationsByFunderData: TreemapHighchartsData[];
+  datasetsByFunderData: TreemapHighchartsData[];
+  softwareByFunderData: TreemapHighchartsData[];
+  otherByFunderData: TreemapHighchartsData[];
+
+  // Open Science Tab
+  // publications subtab
+  openSciencePubsTabIsInitialised: boolean = false;
+
+  publicationsWithPIDTimeline: SafeResourceUrl;
+  publicationsWithLicenceTimeline: SafeResourceUrl;
+  goldPublicationsTimeline: SafeResourceUrl;
+  greenPublicationsTimeline: SafeResourceUrl;
+
+  publicationsWithPIDByCountryChartURL: SafeResourceUrl;
+  publicationsWithLicenceByCountryChartURL: SafeResourceUrl;
+  goldPublicationsByCountryChartURL: SafeResourceUrl;
+  greenPublicationsByCountryChartURL: SafeResourceUrl;
+
+  publicationsWithPIDByDatasourceChartURL: SafeResourceUrl;
+  publicationsWithLicenceByDatasourceChartURL: SafeResourceUrl;
+  goldPublicationsByDatasourceChartURL: SafeResourceUrl;
+  greenPublicationsByDatasourceChartURL: SafeResourceUrl;
+
+  publicationsWithPIDByOrganizationChartURL: SafeResourceUrl;
+  publicationsWithLicenceByOrganizationChartURL: SafeResourceUrl;
+  goldPublicationsByOrganizationChartURL: SafeResourceUrl;
+  greenPublicationsByOrganizationChartURL: SafeResourceUrl;
+
+  publicationsWithPIDByFunderData: TreemapHighchartsData[];
+  publicationsWithLicenceByFunderData: TreemapHighchartsData[];
+  goldPublicationsByFunderData: TreemapHighchartsData[];
+  greenPublicationsByFunderData: TreemapHighchartsData[];
+
+  greenVsGoldPublicationsChartURL: SafeResourceUrl;
+
+  loadingPublicationsAbsoluteTable: boolean = true;
+  loadingPublicationsPercentageTable: boolean = true;
+  publicationsTableContentSelection: string = 'affiliated';
+  publicationsAbsoluteTableData: CountryTableData[];
+  publicationsPercentageTableData: CountryTableData[];
+
+  // Open Science Tab
+  // datasets subtab
+  openScienceDatasetsTabIsInitialised: boolean = false;
+
+  datasetsWithPIDTimeline: SafeResourceUrl;
+  datasetsWithLicenceTimeline: SafeResourceUrl;
+
+  datasetsWithPIDByCountryChartURL: SafeResourceUrl;
+  datasetsWithLicenceByCountryChartURL: SafeResourceUrl;
+
+  datasetsWithPIDByDatasourceChartURL: SafeResourceUrl;
+  datasetsWithLicenceByDatasourceChartURL: SafeResourceUrl;
+
+  datasetsWithPIDByOrganizationChartURL: SafeResourceUrl;
+  datasetsWithLicenceByOrganizationChartURL: SafeResourceUrl;
+
+  datasetsWithPIDByFunderData: TreemapHighchartsData[];
+  datasetsWithLicenceByFunderData: TreemapHighchartsData[];
+
+  loadingDatasetsAbsoluteTable: boolean = true;
+  loadingDatasetsPercentageTable: boolean = true;
+  datasetsTableContentSelection: string = 'affiliated';
+  datasetsAbsoluteTableData: CountryTableData[];
+  datasetsPercentageTableData: CountryTableData[];
+
+  // Open Science Tab
+  // software subtab
+  openScienceSoftwareTabIsInitialised: boolean = false;
+
+  softwareWithPIDTimeline: SafeResourceUrl;
+  softwareWithLicenceTimeline: SafeResourceUrl;
+
+  softwareWithPIDByCountryChartURL: SafeResourceUrl;
+  softwareWithLicenceByCountryChartURL: SafeResourceUrl;
+
+  softwareWithPIDByDatasourceChartURL: SafeResourceUrl;
+  softwareWithLicenceByDatasourceChartURL: SafeResourceUrl;
+
+  softwareWithPIDByOrganizationChartURL: SafeResourceUrl;
+  softwareWithLicenceByOrganizationChartURL: SafeResourceUrl;
+
+  softwareWithPIDByFunderData: TreemapHighchartsData[];
+  softwareWithLicenceByFunderData: TreemapHighchartsData[];
+
+  loadingSoftwareAbsoluteTable: boolean = true;
+  loadingSoftwarePercentageTable: boolean = true;
+  softwareTableContentSelection: string = 'affiliated';
+  softwareAbsoluteTableData: CountryTableData[];
+  softwarePercentageTableData: CountryTableData[];
+
+  // Open Science Tab
+  // other research products subtab
+  openScienceOtherTabIsInitialised: boolean = false;
+
+  otherWithLicenceTimeline: SafeResourceUrl;
+  otherWithPIDTimeline: SafeResourceUrl;
+
+  otherWithPIDByCountryChartURL: SafeResourceUrl;
+  otherWithLicenceByCountryChartURL: SafeResourceUrl;
+
+  otherWithPIDByDatasourceChartURL: SafeResourceUrl;
+  otherWithLicenceByDatasourceChartURL: SafeResourceUrl;
+
+  otherWithPIDByOrganizationChartURL: SafeResourceUrl;
+  otherWithLicenceByOrganizationChartURL: SafeResourceUrl;
+
+  otherWithPIDByFunderData: TreemapHighchartsData[];
+  otherWithLicenceByFunderData: TreemapHighchartsData[];
+
+  loadingOtherAbsoluteTable: boolean = true;
+  loadingOtherPercentageTable: boolean = true;
+  otherTableContentSelection: string = 'affiliated';
+  otherAbsoluteTableData: CountryTableData[];
+  otherPercentageTableData: CountryTableData[];
+
+  constructor(private dataService: DataService,
+              private dataHandlerService: DataHandlerService,
+              private route: ActivatedRoute,
+              private sanitizer: DomSanitizer) { }
+
+  ngOnInit(): void {
+
+    window.scroll(0, 0);
+
+    this.continentName = this.route.snapshot.paramMap.get('continentName');
+
+    this.dataService.getLastUpdateDate().subscribe(
+      rawData => {
+        this.lastUpdateDate = this.dataHandlerService.convertRawDataToLastUpdateDate(rawData);
+      }, error => {
+        console.log(error);
+      }
+    );
+
+    this.dataService.getEuropeOAPercentages().subscribe(
+      rawData => {
+        this.europeOverviewData = this.dataHandlerService.convertRawDataToEuropeOverviewData(rawData);
+      }, error => {
+        console.log(error);
+      }
+    );
+
+    this.createOverviewContent();
+  }
+
+  getHeight(percentage: number) {
+    if (percentage < 50) {
+      return Math.round(percentage) * 1.5;
+    } else {
+      return Math.round(percentage);
+    }
+  }
+
+  getNumberFontSize(percentage: number) {
+    if (percentage < 50) {
+      return Math.round(percentage * 45 / 100) * 1.5;
+    } else {
+      return Math.round(percentage * 45 / 100);
+    }
+  }
+
+  getEntityNameFontSize(percentage: number) {
+    if (percentage < 50) {
+      return Math.round(percentage * 30 / 100) * 1.5;
+    } else {
+      return Math.round(percentage * 30 / 100);
+    }
+  }
+
+  getPublicationsIconWidth(percentage: number) {
+    if (percentage < 50) {
+      return Math.round(percentage * 60 / 100) * 1.5;
+    } else {
+      return Math.round(percentage * 60 / 100);
+    }
+  }
+
+  getDatasetsIconWidth(percentage: number) {
+    if (percentage < 50) {
+      return Math.round(percentage * 45 / 100) * 1.5;
+    } else {
+      return Math.round(percentage * 45 / 100);
+    }
+  }
+
+  getSoftwareIconWidth(percentage: number) {
+    if (percentage < 50) {
+      return Math.round(percentage * 50 / 100) * 1.5;
+    } else {
+      return Math.round(percentage * 50 / 100);
+    }
+  }
+
+  getOtherIconWidth(percentage: number) {
+    if (percentage < 50) {
+      return Math.round(percentage * 45 / 100) * 1.5;
+    } else {
+      return Math.round(percentage * 45 / 100);
+    }
+  }
+
+  changeTopView(view: string) {
+    this.activeTopView = view;
+    // console.log('top view: ', view);
+    if (view === 'overview') {
+      this.createOverviewContent();
+    } else if (view === 'openScience') {
+      this.createOpenScienceContent();
+    }
+  }
+
+  changeInnerView(view: string) {
+    this.activeInnerView = view;
+    // console.log('view: ', view);
+    if (view === 'publications') {
+      this.createPublicationsViewForOpenScience();
+    } else if (view === 'datasets') {
+      this.createDatasetsViewForOpenScience();
+    } else if (view === 'software') {
+      this.createSoftwareViewForOpenScience();
+    } else if (view === 'other') {
+      this.createOtherViewForOpenScience();
+    }
+  }
+
+  createOverviewContent() {
+
+    if (!this.overviewTabIsInitialised) {
+      this.publicationsByTypeChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"Publications","type":"bar","query":{"select":[{"field":"publication","aggregate":"count"},{"field":"publication.classification","aggregate":null}],"filters":[{"groupFilters":[{"field":"publication.organization.country.continent","type":"=","values":["Europe"]}],"op":"AND"},{"groupFilters":[{"field":"publication.classification","type":"!=","values":["0041"]},{"field":"publication.classification","type":"!=","values":["0043"]},{"field":"publication.classification","type":"!=","values":["0044"]},{"field":"publication.classification","type":"!=","values":["Unknown"]}],"op":"AND"}],"entity":"publication","profile":"${this.profileName}","limit":"30"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Publications by type","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+
+      this.publicationsByCountryChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"Data","type":"bar","query":{"name":"new.oso.results.bycountry","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Publications","align":"left","margin":50},"subtitle":{"text":"by country","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.publicationsByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.bydatasource","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Publications","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.publicationsByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.byorganization","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Publications","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+
+      this.datasetsByCountryChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"Data","type":"bar","query":{"name":"new.oso.results.bycountry","parameters":["dataset"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets","align":"left","margin":50},"subtitle":{"text":"by country","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+      this.datasetsByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.bydatasource","parameters":["dataset"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+      this.datasetsByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"datasets","type":"bar","query":{"name":"new.oso.results.byorganization","parameters":["dataset"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+
+      this.softwareByCountryChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"software","type":"bar","query":{"name":"new.oso.results.bycountry","parameters":["software"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Software","align":"left","margin":50},"subtitle":{"text":"by country","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":true},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+      this.softwareByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"software","type":"bar","query":{"name":"new.oso.results.bydatasource","parameters":["software"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Software","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+      this.softwareByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"software","type":"bar","query":{"name":"new.oso.results.byorganization","parameters":["software"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Software","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+
+      this.otherByCountryChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"other","type":"bar","query":{"name":"new.oso.results.bycountry","parameters":["other"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products","align":"left","margin":50},"subtitle":{"text":"by country","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+      this.otherByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"other","type":"bar","query":{"name":"new.oso.results.bydatasource","parameters":["other"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+      this.otherByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"other","type":"bar","query":{"name":"new.oso.results.byorganization","parameters":["other"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+
+      this.dataService.getFundersResultsByType('publication').subscribe(
+        rawData => {
+          this.publicationsByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByType('dataset').subscribe(
+        rawData => {
+          this.datasetsByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByType('software').subscribe(
+        rawData => {
+          this.softwareByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByType('other').subscribe(
+        rawData => {
+          this.otherByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.overviewTabIsInitialised = true;
+    }
+  }
+
+  createOpenScienceContent() {
+    this.createPublicationsViewForOpenScience();
+  }
+
+  createPublicationsViewForOpenScience() {
+
+    if (!this.openSciencePubsTabIsInitialised) {
+
+      this.publicationsWithPIDTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.pid_timeline.affiliated","parameters":["publication","publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Publications with PID","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.publicationsWithLicenceTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.licence_timeline.affiliated","parameters":["publication","publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Publications with licence","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.goldPublicationsTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.gold_timeline.affiliated","parameters":["publication","publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Gold OA Publications","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.greenPublicationsTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.green_timeline.affiliated","parameters":["publication","publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Green OA Publications","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+
+      this.publicationsWithPIDByCountryChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"Data","type":"bar","query":{"name":"new.oso.results.pid.affiliated.bycountry","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Publications with PID","align":"left","margin":50},"subtitle":{"text":"by country","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.publicationsWithLicenceByCountryChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"Data","type":"bar","query":{"name":"new.oso.results.licence.affiliated.bycountry","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Publications with licence","align":"left","margin":50},"subtitle":{"text":"by country","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.goldPublicationsByCountryChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"Data","type":"bar","query":{"name":"new.oso.results.gold.affiliated.bycountry","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Gold Publications","align":"left","margin":50},"subtitle":{"text":"by country","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.greenPublicationsByCountryChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"Data","type":"bar","query":{"name":"new.oso.results.green.affiliated.bycountry","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Green Publications","align":"left","margin":50},"subtitle":{"text":"by country","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+
+      this.publicationsWithPIDByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.bydatasource","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Publications with PID","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.publicationsWithLicenceByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.bydatasource","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Publications with licence","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.goldPublicationsByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.gold.affiliated.bydatasource","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Gold Publications","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.greenPublicationsByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.green.affiliated.bydatasource","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Green Publications","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+
+      this.publicationsWithPIDByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.byorganization","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Publications with PID","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.publicationsWithLicenceByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.byorganization","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Publications with licence","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.goldPublicationsByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.gold.affiliated.byorganization","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Gold Publications","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+      this.greenPublicationsByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.green.affiliated.byorganization","parameters":["publication"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Green Publications","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+
+      this.greenVsGoldPublicationsChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.publications.greenvsgold","profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Green vs Gold","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.publicationPalette.join('","')}\"]}}`));
+
+      this.dataService.getFundersResultsByTypeForPID('publication').subscribe(
+        rawData => {
+          this.publicationsWithPIDByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByTypeForLicence('publication').subscribe(
+        rawData => {
+          this.publicationsWithLicenceByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByTypeForGold('publication').subscribe(
+        rawData => {
+          this.goldPublicationsByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByTypeForGreen('publication').subscribe(
+        rawData => {
+          this.greenPublicationsByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.getPublicationsTableData(this.publicationsTableContentSelection);
+
+      this.openSciencePubsTabIsInitialised = true;
+    }
+  }
+
+  createDatasetsViewForOpenScience() {
+
+    if (!this.openScienceDatasetsTabIsInitialised) {
+
+      this.datasetsWithPIDTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.pid_timeline.affiliated","parameters":["dataset","dataset"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets with PID","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+      this.datasetsWithLicenceTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.licence_timeline.affiliated","parameters":["dataset","dataset"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets with licence","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+
+      this.datasetsWithPIDByCountryChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"Data","type":"bar","query":{"name":"new.oso.results.pid.affiliated.bycountry","parameters":["dataset"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets with PID","align":"left","margin":50},"subtitle":{"text":"by country","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+      this.datasetsWithLicenceByCountryChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"Data","type":"bar","query":{"name":"new.oso.results.licence.affiliated.bycountry","parameters":["dataset"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets with licence","align":"left","margin":50},"subtitle":{"text":"by country","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+
+      this.datasetsWithPIDByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.bydatasource","parameters":["dataset"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets with PID","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+      this.datasetsWithLicenceByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.bydatasource","parameters":["dataset"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets with licence","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+
+      this.datasetsWithPIDByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.byorganization","parameters":["dataset"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets with PID","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+      this.datasetsWithLicenceByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.byorganization","parameters":["dataset"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Datasets with licence","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.datasetPalette.join('","')}\"]}}`));
+
+      this.dataService.getFundersResultsByTypeForPID('dataset').subscribe(
+        rawData => {
+          this.datasetsWithPIDByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByTypeForLicence('dataset').subscribe(
+        rawData => {
+          this.datasetsWithLicenceByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.getDatasetsTableData(this.datasetsTableContentSelection);
+
+      this.openSciencePubsTabIsInitialised = true;
+    }
+  }
+
+  createSoftwareViewForOpenScience() {
+
+    if (!this.openScienceSoftwareTabIsInitialised) {
+
+      this.softwareWithPIDTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.pid_timeline.affiliated","parameters":["software","software"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software with PID","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+      this.softwareWithLicenceTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.licence_timeline.affiliated","parameters":["software","software"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software with licence","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+
+      this.softwareWithPIDByCountryChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"Data","type":"bar","query":{"name":"new.oso.results.pid.affiliated.bycountry","parameters":["software"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software with PID","align":"left","margin":50},"subtitle":{"text":"by country","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+      this.softwareWithLicenceByCountryChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"Data","type":"bar","query":{"name":"new.oso.results.licence.affiliated.bycountry","parameters":["software"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software with licence","align":"left","margin":50},"subtitle":{"text":"by country","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+
+      this.softwareWithPIDByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.bydatasource","parameters":["software"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software with PID","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+      this.softwareWithLicenceByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.bydatasource","parameters":["software"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software with licence","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+
+      this.softwareWithPIDByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.byorganization","parameters":["software"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software with PID","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+      this.softwareWithLicenceByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.byorganization","parameters":["software"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OS Software with licence","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.softwarePalette.join('","')}\"]}}`));
+
+      this.dataService.getFundersResultsByTypeForPID('software').subscribe(
+        rawData => {
+          this.softwareWithPIDByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByTypeForLicence('software').subscribe(
+        rawData => {
+          this.softwareWithLicenceByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.getSoftwareTableData(this.softwareTableContentSelection);
+
+      this.openScienceSoftwareTabIsInitialised = true;
+    }
+  }
+
+  createOtherViewForOpenScience() {
+
+    if (!this.openScienceOtherTabIsInitialised) {
+
+      this.otherWithPIDTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.pid_timeline.affiliated","parameters":["other","other"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products with PID","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+      this.otherWithLicenceTimeline = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"OA publications","type":"column","query":{"name":"new.oso.results.licence_timeline.affiliated","parameters":["other","other"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products with licence","align":"left","margin":50},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+
+      this.otherWithPIDByCountryChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"Data","type":"bar","query":{"name":"new.oso.results.pid.affiliated.bycountry","parameters":["other"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products with PID","align":"left","margin":50},"subtitle":{"text":"by country","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+      this.otherWithLicenceByCountryChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"Data","type":"bar","query":{"name":"new.oso.results.licence.affiliated.bycountry","parameters":["other"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products with licence","align":"left","margin":50},"subtitle":{"text":"by country","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+
+      this.otherWithPIDByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.bydatasource","parameters":["other"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products with PID","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+      this.otherWithLicenceByDatasourceChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.bydatasource","parameters":["other"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products with licence","align":"left","margin":50},"subtitle":{"text":"by datasource","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+
+      this.otherWithPIDByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.pid.affiliated.byorganization","parameters":["other"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products with PID","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+      this.otherWithLicenceByOrganizationChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + encodeURIComponent(`{"library":"HighCharts","chartDescription":{"queries":[{"name":"publications","type":"bar","query":{"name":"new.oso.results.licence.affiliated.byorganization","parameters":["other"],"profile":"${this.profileName}"}}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"OA Other research products with licence","align":"left","margin":50},"subtitle":{"text":"by organization","align":"left"},"yAxis":{"title":{"text":""}},"xAxis":{"title":{"text":""}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":true},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":false},"colors":[\"${this.otherResearchProductsPalette.join('","')}\"]}}`));
+
+      this.dataService.getFundersResultsByTypeForPID('other').subscribe(
+        rawData => {
+          this.otherWithPIDByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.dataService.getFundersResultsByTypeForLicence('other').subscribe(
+        rawData => {
+          this.otherWithLicenceByFunderData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
+        }, error => {
+          console.log(error);
+        }
+      );
+
+      this.getOtherTableData(this.otherTableContentSelection);
+
+      this.openScienceOtherTabIsInitialised = true;
+    }
+  }
+
+  getContent(type: string, contentSelection: string): void {
+
+    if (type === 'publication') {
+      this.publicationsTableContentSelection = contentSelection;
+      this.getPublicationsTableData(this.publicationsTableContentSelection);
+    } else if (type === 'dataset') {
+      this.datasetsTableContentSelection = contentSelection;
+      this.getDatasetsTableData(this.datasetsTableContentSelection);
+    } else if (type === 'software') {
+      this.softwareTableContentSelection = contentSelection;
+      this.getSoftwareTableData(this.softwareTableContentSelection);
+    } else if (type === 'other') {
+      this.otherTableContentSelection = contentSelection;
+      this.getOtherTableData(this.otherTableContentSelection);
+    }
+  }
+
+  getPublicationsTableData(contentSelection: string) {
+
+    this.loadingPublicationsAbsoluteTable = true;
+    this.loadingPublicationsPercentageTable = true;
+    this.dataService.getIndicatorsTableData('publication', contentSelection).subscribe(
+      rawData => {
+        this.publicationsAbsoluteTableData = this.dataHandlerService.convertRawDataToIndicatorsTableData(rawData);
+        this.publicationsPercentageTableData = this.dataHandlerService.convertRawDataToIndicatorsTableData(rawData);
+        this.loadingPublicationsAbsoluteTable = false;
+        this.loadingPublicationsPercentageTable = false;
+      }, error => {
+        console.log(error);
+        this.loadingPublicationsAbsoluteTable = false;
+        this.loadingPublicationsPercentageTable = false;
+      }
+    );
+  }
+
+  getDatasetsTableData(contentSelection: string) {
+    this.loadingDatasetsAbsoluteTable = true;
+    this.loadingDatasetsPercentageTable = true;
+    this.dataService.getIndicatorsTableData('dataset', contentSelection).subscribe(
+      rawData => {
+        this.datasetsAbsoluteTableData = this.dataHandlerService.convertRawDataToIndicatorsTableData(rawData);
+        this.datasetsPercentageTableData = this.dataHandlerService.convertRawDataToIndicatorsTableData(rawData);
+        this.loadingDatasetsAbsoluteTable = false;
+        this.loadingDatasetsPercentageTable = false;
+      }, error => {
+        console.log(error);
+        this.loadingDatasetsAbsoluteTable = false;
+        this.loadingDatasetsPercentageTable = false;
+      }
+    );
+  }
+
+  getSoftwareTableData(contentSelection: string) {
+    this.loadingSoftwareAbsoluteTable = true;
+    this.loadingSoftwarePercentageTable = true;
+    this.dataService.getIndicatorsTableData('software', contentSelection).subscribe(
+      rawData => {
+        this.softwareAbsoluteTableData = this.dataHandlerService.convertRawDataToIndicatorsTableData(rawData);
+        this.softwarePercentageTableData = this.dataHandlerService.convertRawDataToIndicatorsTableData(rawData);
+        this.loadingSoftwareAbsoluteTable = false;
+        this.loadingSoftwarePercentageTable = false;
+      }, error => {
+        console.log(error);
+        this.loadingSoftwareAbsoluteTable = false;
+        this.loadingSoftwarePercentageTable = false;
+      }
+    );
+  }
+
+  getOtherTableData(contentSelection: string) {
+    this.loadingOtherAbsoluteTable = true;
+    this.loadingOtherPercentageTable = true;
+    this.dataService.getIndicatorsTableData('other', contentSelection).subscribe(
+      rawData => {
+        this.otherAbsoluteTableData = this.dataHandlerService.convertRawDataToIndicatorsTableData(rawData);
+        this.otherPercentageTableData = this.dataHandlerService.convertRawDataToIndicatorsTableData(rawData);
+        this.loadingOtherAbsoluteTable = false;
+        this.loadingOtherPercentageTable = false;
+      }, error => {
+        console.log(error);
+        this.loadingOtherAbsoluteTable = false;
+        this.loadingOtherPercentageTable = false;
+      }
+    );
+  }
+
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/chart-palettes.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/chart-palettes.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/chart-palettes.ts	(revision 60863)
@@ -0,0 +1,57 @@
+export const publicationColor = '#F181AE';
+export const publicationTooltipColor = '#a52e5d';
+export const publicationBackgroundColor = '#f8d5e3';
+// export const publicationColor = '#0d6b96';
+// export const publicationTooltipColor = '#1c2d5e';
+// export const publicationBackgroundColor = '#8197D9';
+
+export const datasetColor = '#A98BD4';
+export const datasetTooltipColor = '#7658a1';
+export const datasetBackgroundColor = '#e2daf0';
+// export const datasetColor = '#2ec0f9';
+// export const datasetTooltipColor = '#7658a1';
+// export const datasetBackgroundColor = '#e2daf0';
+
+export const repositoriesColor = '#708AA5';
+export const repositoriesTooltipColor = '#3d5772';
+export const repositoriesBackgroundColor = '#ADD3E0';
+// export const repositoriesColor = '#708AA5';
+// export const repositoriesTooltipColor = '#3d5772';
+// export const repositoriesBackgroundColor = '#ADD3E0';
+
+export const journalsColor = '#FFCE4E';
+export const journalsTooltipColor = '#cc9b1b';
+export const journalsBackgroundColor = '#FBE8B1';
+// export const journalsColor = '#FFCE4E';
+// export const journalsTooltipColor = '#cc9b1b';
+// export const journalsBackgroundColor = '#FBE8B1';
+
+export const policiesColor = '#639C66';
+export const policiesTooltipColor = '#306933';
+
+export const softwareColor = '#C2155A';
+// export const softwareColor = '#8affc1';
+
+export const otherResearchProductsColor = '#00CCCC';
+// export const otherResearchProductsColor = '#4ea699';
+
+export const nonOAColor = '#787878';
+
+export const resultColor = '#072AE6';
+
+export const publicationPalette = [publicationColor, nonOAColor,
+  '#2f7ed8', '#0d233a', '#8bbc21', '#910000', '#1aadce', '#492970', '#f28f43', '#77a1e5', '#c42525', '#a6c96a'];
+
+export const datasetPalette = [datasetColor, nonOAColor,
+  '#2f7ed8', '#0d233a', '#8bbc21', '#910000', '#1aadce', '#492970', '#f28f43', '#77a1e5', '#c42525', '#a6c96a'];
+
+export const softwarePalette = [softwareColor, nonOAColor,
+  '#2f7ed8', '#0d233a', '#8bbc21', '#910000', '#1aadce', '#492970', '#f28f43', '#77a1e5', '#c42525', '#a6c96a'];
+
+export const otherResearchProductsPalette = [otherResearchProductsColor, nonOAColor,
+  '#2f7ed8', '#0d233a', '#8bbc21', '#910000', '#1aadce', '#492970', '#f28f43', '#77a1e5', '#c42525', '#a6c96a'];
+
+export const resultsPalette = [resultColor, nonOAColor,
+  '#2f7ed8', '#0d233a', '#8bbc21', '#910000', '#1aadce', '#492970', '#f28f43', '#77a1e5', '#c42525', '#a6c96a'];
+
+
Index: modules/open-science-observatory-ui/branches/gradient/src/app/shared/topmenu/top-menu.component.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/shared/topmenu/top-menu.component.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/shared/topmenu/top-menu.component.html	(revision 60863)
@@ -0,0 +1,215 @@
+
+<div>
+  <div class="uk-offcanvas-content">
+
+    <!--MOBILE & PAD PORTRAIT-->
+    <div class="tm-header-mobile uk-hidden@m">
+
+      <ng-container *ngIf="isHomeRoute() ; else smallHeader">
+        <div class="uk-hidden@m">
+          <a *ngIf="environmentName==='beta'" href="/"><img alt="BETA" class="medium-beta-indication-nonFixed" src="../../../assets/img/beta_flag.svg"></a>
+        </div>
+        <nav class="uk-navbar-container uk-navbar" uk-navbar>
+          <div class="uk-navbar-right">
+
+            <ul class="uk-navbar-nav">
+              <li>
+                <a class="" href="#offcanvas-nav" uk-toggle>
+                  <div uk-navbar-toggle-icon="" class="uk-navbar-toggle-icon uk-icon">
+                  </div>
+                </a>
+                <!--<div class="uk-navbar-dropdown">-->
+                  <!--<ul class="uk-nav uk-navbar-dropdown-nav">-->
+                    <!--<li class="uk-active"><a routerLink="/home">Home</a></li>-->
+                    <!--<li class="uk-active"><a [routerLink]="['/overview','europe']">OA in Europe</a></li>-->
+                    <!--&lt;!&ndash;<li class="uk-active"><a href="#">About</a></li>&ndash;&gt;-->
+                    <!--<li class="uk-active"><a routerLink="/methodology">Methodology</a></li>-->
+                    <!--&lt;!&ndash;<li class="uk-nav-divider"></li>&ndash;&gt;-->
+                    <!--&lt;!&ndash;<li class="uk-active"><a routerLink="/home">Sign In</a></li>&ndash;&gt;-->
+                  <!--</ul>-->
+                <!--</div>-->
+              </li>
+            </ul>
+
+          </div>
+        </nav>
+
+        <nav class="uk-navbar-container uk-navbar" uk-navbar="">
+          <div class="uk-navbar-center">
+            <a class="uk-navbar-item uk-logo" routerLink="/home">
+              <img src="../../../assets/img/OS_Logo_Vertical.svg" alt="Open Science Observatory" width="161"
+                   class="uk-responsive-height"> </a>
+          </div>
+        </nav>
+      </ng-container>
+
+      <ng-template #smallHeader>
+        <div class="uk-hidden@m">
+          <a *ngIf="environmentName==='beta'" href="/"><img alt="BETA" class="medium-beta-indication-fixed" src="../../../assets/img/beta_flag.svg"></a>
+        </div>
+        <nav class="uk-navbar-container uk-navbar smallHeader" uk-navbar>
+          <div class="uk-navbar-left">
+            <a class="uk-navbar-item uk-logo" routerLink="/home">
+              <img src="../../../assets/img/OS_Logo_small.svg" alt="Open Science Observatory" width="36"
+                   class="uk-responsive-height"> </a>
+          </div>
+
+          <div class="uk-navbar-center">
+
+            <div class="uk-autocomplete uk-form uk-search uk-search-default searchForCountry">
+              <span id="search-icon" uk-search-icon></span>
+              <ng-autocomplete
+                [data]="countriesCollection"
+                [searchKeyword]="keyword"
+                placeHolder="Search for a country..."
+                (selected)='selectCountryFromAutocompleteEvent($event)'
+                (inputChanged)='onChangeSearch($event)'
+                (inputFocused)='onFocused($event)'
+                historyIdentifier="countriesCollection"
+                [itemTemplate]="itemTemplate"
+                [notFoundTemplate]="notFoundTemplate">
+              </ng-autocomplete>
+
+              <ng-template #itemTemplate let-item>
+                <a [innerHTML]="item.name"></a>
+              </ng-template>
+
+              <ng-template #notFoundTemplate let-notFound>
+                <div [innerHTML]="notFound"></div>
+              </ng-template>
+            </div>
+
+            <!--<div class="uk-autocomplete uk-form uk-search uk-search-default searchForCountry" data-uk-autocomplete="{source:'https://getuikit.com/v2/tests/components/_autocomplete.json'}">-->
+            <!--<span uk-search-icon></span>-->
+            <!--<input class="uk-search-input" type="search" placeholder="Search for a country...">-->
+            <!--&lt;!&ndash;<input type="text">&ndash;&gt;-->
+            <!--</div>-->
+
+          </div>
+
+          <div class="uk-navbar-right">
+            <ul class="uk-navbar-nav">
+              <li>
+                <a class="" href="#offcanvas-nav" uk-toggle>
+                  <div uk-navbar-toggle-icon="" class="uk-navbar-toggle-icon uk-icon">
+                  </div>
+                </a>
+                <!--<div class="uk-navbar-dropdown">-->
+                  <!--<ul class="uk-nav uk-navbar-dropdown-nav">-->
+                    <!--<li class="uk-active"><a routerLink="/home">Home</a></li>-->
+                    <!--<li class="uk-active"><a [routerLink]="['/overview', 'europe']">OA in Europe</a></li>-->
+                    <!--&lt;!&ndash;<li class="uk-active"><a href="#">About</a></li>&ndash;&gt;-->
+                    <!--<li class="uk-active"><a routerLink="/methodology">Methodology</a></li>-->
+                    <!--&lt;!&ndash;<li class="uk-nav-divider"></li>&ndash;&gt;-->
+                    <!--&lt;!&ndash;<li class="uk-active"><a routerLink="/home">Sign In</a></li>&ndash;&gt;-->
+                  <!--</ul>-->
+                <!--</div>-->
+              </li>
+            </ul>
+
+          </div>
+        </nav>
+
+      </ng-template>
+
+
+    </div>
+
+    <div id="offcanvas-nav" class="tm-mobile uk-hidden@m" uk-offcanvas="flip: true; overlay: true;">
+      <!--<div class="uk-offcanvas-bar">-->
+      <div class="uk-offcanvas-bar-light">
+
+        <button class="uk-offcanvas-close" type="button" uk-close></button>
+
+        <ul class="uk-nav uk-nav-default">
+          <li [routerLinkActive]="['uk-active']" class="uk-margin-top"><a routerLink="/home" [routerLinkActive]="['uk-active']" class="uk-offcanvas-close custom-offcanvas-close">Home</a></li>
+          <li [routerLinkActive]="['uk-active']" class="uk-margin-top"><a [routerLink]="['/overview', 'europe']" [routerLinkActive]="['uk-active']" class="uk-offcanvas-close custom-offcanvas-close">OA in Europe</a></li>
+          <li class="uk-parent uk-margin-top" [routerLinkActive]="['uk-active']">
+            <a href="#">Methodology</a>
+            <ul class="uk-nav-sub">
+              <li><a routerLink="/methodology" routerLinkActive="uk-active" class="uk-offcanvas-close custom-offcanvas-close">Overview</a></li>
+              <li><a routerLink="/methodology" fragment="terminology" routerLinkActive="uk-active" class="uk-offcanvas-close custom-offcanvas-close">Terminology and construction</a></li>
+            </ul>
+          </li>
+          <!--<li class="uk-nav-header">Header</li>-->
+          <!--<li><a href="#"><span class="uk-margin-small-right" uk-icon="icon: table"></span> Item</a></li>-->
+          <!--<li><a href="#"><span class="uk-margin-small-right" uk-icon="icon: thumbnails"></span> Item</a></li>-->
+          <!--<li class="uk-nav-divider"></li>-->
+          <!--<li><a href="#"><span class="uk-margin-small-right" uk-icon="icon: trash"></span> Item</a></li>-->
+        </ul>
+
+      </div>
+    </div>
+
+    <!--LAPTOP & PAD LANDSCAPE-->
+    <div class="uk-visible@m">
+      <a *ngIf="environmentName==='beta'" href="/"><img alt="BETA" class="large-beta-indication" src="../../../assets/img/beta_flag.svg"></a>
+    </div>
+    <div class="tm-header uk-visible@m tm-header-transparent" uk-header="">
+      <div class="uk-navbar-container uk-sticky uk-navbar-transparent" uk-sticky="top:0" media="768"
+           cls-active="uk-active uk-navbar-sticky" style="" animation="uk-animation-slide-top"
+           top=".tm-header + [class*=&quot;uk-section&quot;]" cls-inactive="uk-navbar-transparent">
+        <div class="uk-container uk-container-expand">
+          <nav class="uk-navbar" uk-navbar="{&quot;align&quot;:&quot;left&quot;}">
+            <div class="uk-navbar-left">
+              <a routerLink="/home" class="uk-logo uk-navbar-item">
+                <img src="../../../assets/img/OS_Logo_Horizontal.svg" alt="Open Science Observatory" class="uk-responsive-height">
+              </a>
+            </div>
+
+            <div class="uk-navbar-right">
+
+              <ul class="uk-navbar-nav" >
+                <li class="uk-parent" [routerLinkActive]="['uk-active']">
+                  <a routerLink="/home" [routerLinkActive]="['uk-active']">
+                    Home
+                  </a>
+                </li>
+                <li class="uk-parent" [routerLinkActive]="['uk-active']">
+                  <a [routerLink]="['/overview', 'europe']" [routerLinkActive]="['uk-active']">
+                    OA in Europe
+                  </a>
+                </li>
+                <!--<li class="uk-parent" [routerLinkActive]="['uk-active']">-->
+                  <!--<a routerLink="/methodology" [routerLinkActive]="['uk-active']">-->
+                    <!--Methodology-->
+                  <!--</a>-->
+                <!--</li>-->
+                <li class="uk-parent" [routerLinkActive]="['uk-active']">
+                  <a href="#" class="" aria-expanded="false">
+                    Methodology
+                  </a>
+                  <div class="uk-navbar-dropdown uk-navbar-dropdown-bottom-left" style="top: 80px; left: 106.55px;" id="methodology" uk-toggle>
+                    <div class="uk-navbar-dropdown-grid uk-child-width-1-1 uk-grid uk-grid-stack" uk-grid="">
+                      <div class="uk-first-column">
+                        <ul class="uk-nav uk-navbar-dropdown-nav">
+                          <!--<li><a [routerLink]="['/support/faqs']" routerLinkActive="uk-active">FAQs</a></li>-->
+                          <li><a routerLink="/methodology" routerLinkActive="uk-active">Overview</a></li>
+                          <li><a routerLink="/methodology" fragment="terminology" routerLinkActive="uk-active">Terminology and construction</a></li>
+                        </ul>
+                      </div>
+                    </div>
+                  </div>
+                </li>
+                <!--<li class="uk-parent" [routerLinkActive]="['uk-active']">-->
+                  <!--<a routerLink="/home" [routerLinkActive]="['uk-active']">-->
+                    <!--Sign In-->
+                  <!--</a>-->
+                <!--</li>-->
+
+              </ul>
+
+
+            </div>
+
+          </nav>
+        </div>
+      </div>
+
+      <div class="uk-sticky-placeholder" style="height: 84px; margin: 0px;" hidden="hidden"></div>
+    </div>
+
+  </div>
+</div>
+
+
Index: modules/open-science-observatory-ui/branches/gradient/src/app/shared/topmenu/top-menu.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/shared/topmenu/top-menu.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/shared/topmenu/top-menu.component.ts	(revision 60863)
@@ -0,0 +1,39 @@
+import { Component } from '@angular/core';
+import { Router } from '@angular/router';
+import { countries } from '../../domain/countries';
+import { environment } from '../../../environments/environment';
+
+@Component({
+  selector: 'app-top-menu',
+  templateUrl: './top-menu.component.html',
+})
+
+export class TopmenuComponent {
+
+  countriesCollection = countries;
+  keyword = 'name';
+
+  environmentName = environment.environmentName;
+
+  constructor(private router: Router) {
+  }
+
+  isHomeRoute() {
+    return (this.router.url === '/home');
+  }
+
+  selectCountryFromAutocompleteEvent(item) {
+    // do something with selected item
+    // console.log('country selected: ', item);
+    this.router.navigate([`/countryDashboard/${item.id}`]);
+  }
+
+  onChangeSearch(search: string) {
+    // fetch remote data from here
+    // And reassign the 'data' which is binded to 'data' property.
+  }
+
+  onFocused(e) {
+    // do something
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/css/main.min.css
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/css/main.min.css	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/css/main.min.css	(revision 60863)
@@ -0,0 +1,2 @@
+[class*=uk-animation-]{-webkit-animation-timing-function:cubic-bezier(.4,0,.2,1);animation-timing-function:cubic-bezier(.4,0,.2,1);-webkit-animation-duration:560ms;animation-duration:560ms}.uk-alert{border:none;background:#1976d2;color:#fff;text-shadow:none;padding-right:32px;position:relative;display:block}.uk-alert-success{background:#8bc34a!important}.uk-alert-danger{background:#e53935!important}.uk-alert-warning{background:#ffa000!important}.uk-alert-info{background:#0097a7!important}.uk-alert-large{padding:24px 32px 24px 24px}.uk-alert-close{position:absolute;top:10px;right:8px;float:none!important;margin:0!important}.uk-alert-close:after{color:#fff!important}.uk-badge{background:#0097a7;padding:2px 6px;border:none;border-radius:2px;text-shadow:none;font-size:11px;line-height:15px;font-weight:400}.uk-badge-primary{background:#2196f3}.uk-badge-danger{background:#e53935}.uk-badge-warning{background:#ffa000}.uk-badge-success{background:#7cb342}.uk-badge-muted{background:#bdbdbd}.uk-badge-notification{border-radius:20px}.uk-badge.inline-label{vertical-align:1px;margin-left:4px}.uk-badge-outline{border:1px solid rgba(0,0,0,.12);background:#fff;color:#212121;padding-bottom:0;line-height:16px}.uk-button{font-weight:400;border-radius:2px;-webkit-transition:all .2s cubic-bezier(.4,0,.2,1);transition:all .2s cubic-bezier(.4,0,.2,1)}.uk-comment-list>li+li{border-top:1px dashed rgba(0,0,0,.12);margin-top:16px!important}.uk-comment-list .uk-comment+ul{margin:8px 0 0 0}@media only screen and (min-width:768px){.uk-comment-list .uk-comment+ul{padding-left:48px}}.uk-comment-header{padding:16px 8px 8px;border:none;background:0 0;margin-bottom:0}.uk-comment-title{margin:0;font-size:14px;line-height:20px}.uk-modal{z-index:1304;background:rgba(0,0,0,.5);-webkit-transition:opacity 250ms ease-out;transition:opacity 250ms ease-out;overflow:auto!important}.uk-modal.uk-modal-no-backdrop{background:0 0}.uk-modal-dialog{border-radius:2px;-webkit-box-shadow:0 19px 38px rgba(0,0,0,.3),0 15px 12px rgba(0,0,0,.22);box-shadow:0 19px 38px rgba(0,0,0,.3),0 15px 12px rgba(0,0,0,.22);padding:24px;display:block!important;-webkit-animation:none!important;animation:none!important;-webkit-transition:opacity 280ms ease-in,-webkit-transform 280ms cubic-bezier(.4,0,.2,1);transition:opacity 280ms ease-in,-webkit-transform 280ms cubic-bezier(.4,0,.2,1);transition:transform 280ms cubic-bezier(.4,0,.2,1),opacity 280ms ease-in;transition:transform 280ms cubic-bezier(.4,0,.2,1),opacity 280ms ease-in,-webkit-transform 280ms cubic-bezier(.4,0,.2,1);-webkit-transform:scale(0);transform:scale(0)}.uk-open .uk-modal-dialog{-webkit-transform:scale(1);transform:scale(1)}.uk-modal-dialog .uk-modal-header{background:0 0;border-bottom:none;margin:0 -24px 24px;padding:0 32px 0 24px;overflow:hidden}.uk-modal-dialog .uk-modal-header .uk-modal-title{margin:0;font:500 18px/28px Roboto,sans-serif}.uk-modal-dialog .uk-modal-header .uk-modal-title span{font-size:16px;display:block;color:#727272}.uk-modal-dialog .uk-modal-header .material-icons{font-size:24px;vertical-align:-4px;cursor:default}.uk-modal-dialog .uk-modal-footer{margin:16px -16px -16px;padding:16px;background:#fff;border-top:none}.uk-modal-dialog .uk-modal-footer:after,.uk-modal-dialog .uk-modal-footer:before{content:" ";display:table}.uk-modal-dialog .uk-modal-footer:after{clear:both}.uk-modal-dialog .uk-modal-footer .md-icon-btn{margin-top:2px}.uk-modal-dialog .uk-modal-caption{bottom:16px;margin:0 32px}.uk-modal-dialog>.uk-close:first-child{top:8px;right:8px;position:absolute;float:none;margin:0}.uk-modal-dialog-lightbox{padding:0}.uk-modal-dialog-lightbox>.uk-close:first-child{top:-11px;right:-11px;-webkit-box-shadow:0 10px 20px rgba(0,0,0,.19),0 6px 6px rgba(0,0,0,.23);box-shadow:0 10px 20px rgba(0,0,0,.19),0 6px 6px rgba(0,0,0,.23);border:none}.uk-modal-dialog .uk-overflow-container{margin:16px 0}.uk-modal .uk-margin.uk-modal-content{margin-bottom:0}.uk-modal.uk-modal-dialog-replace .uk-modal-content{font-size:18px}.uk-modal-spinner{-webkit-animation:uk-rotate 2s infinite linear;animation:uk-rotate 2s infinite linear;margin-left:-12px;margin-top:-17px;left:50%;right:auto}.uk-dropdown{-webkit-transform:scale(.25,0);transform:scale(.25,0);opacity:0;-webkit-transition:all 280ms cubic-bezier(.4,0,.2,1);transition:all 280ms cubic-bezier(.4,0,.2,1);-webkit-animation:none!important;animation:none!important;-webkit-transform-origin:50% 0!important;transform-origin:50% 0!important;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);border:none;border-radius:2px}.uk-dropdown.uk-dropdown-xlarge{width:360px}@media only screen and (max-width:479px){.uk-dropdown.uk-dropdown-xlarge{width:260px}}.uk-dropdown.uk-dropdown-large{width:260px}.uk-dropdown.uk-dropdown-small{width:160px}.uk-dropdown>ul>li>a{font-size:14px;color:#212121}.uk-dropdown>ul>li>a:hover{background:rgba(0,0,0,.085)}.uk-dropdown>ul>li.uk-active>a{background:rgba(0,0,0,.085)}.uk-dropdown>ul>li.padding_sm{padding:2px 4px}.uk-dropdown>ul>li.padding_md{padding:4px 8px}.uk-dropdown.dropdown-modal{z-index:1310}.uk-dropdown.dropdown-fs{z-index:9999}.uk-dropdown.uk-dropdown-scrollable{-webkit-overflow-scrolling:touch}[data-uk-dropdown*=top-] .uk-dropdown{-webkit-transform-origin:50% 100%!important;transform-origin:50% 100%!important}[data-uk-dropdown*=left-] .uk-dropdown{-webkit-transform-origin:100% 50%!important;transform-origin:100% 50%!important}[data-uk-dropdown*=right-] .uk-dropdown{-webkit-transform-origin:0 50%!important;transform-origin:0 50%!important}[data-uk-dropdown*=justify]{position:static!important}[data-uk-dropdown*=justify] [class*=uk-dropdown-width]{left:0!important;width:100%!important;min-width:inherit!important;margin-left:0!important}.uk-dropdown-active{display:block!important}.uk-dropdown-shown{-webkit-transform:scale(1,1);transform:scale(1,1);opacity:1}.uk-nav-dropdown>li>a:focus,.uk-nav-dropdown>li>a:hover{text-shadow:none;-webkit-box-shadow:none;box-shadow:none;color:#212121;background:rgba(153,153,153,.2)}.uk-form input:not([type]),.uk-form input[type=color],.uk-form input[type=date],.uk-form input[type=datetime-local],.uk-form input[type=email],.uk-form input[type=month],.uk-form input[type=number],.uk-form input[type=password],.uk-form input[type=search],.uk-form input[type=tel],.uk-form input[type=text],.uk-form input[type=time],.uk-form input[type=url],.uk-form input[type=week],.uk-form select,.uk-form textarea{-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px;border:1px solid rgba(0,0,0,.12);-webkit-transition:border .2s ease-in;transition:border .2s ease-in;resize:none}.uk-form input:not([type]):focus,.uk-form input[type=color]:focus,.uk-form input[type=date]:focus,.uk-form input[type=datetime-local]:focus,.uk-form input[type=email]:focus,.uk-form input[type=month]:focus,.uk-form input[type=number]:focus,.uk-form input[type=password]:focus,.uk-form input[type=search]:focus,.uk-form input[type=tel]:focus,.uk-form input[type=text]:focus,.uk-form input[type=time]:focus,.uk-form input[type=url]:focus,.uk-form input[type=week]:focus,.uk-form select:focus,.uk-form textarea:focus{background:0 0;border-color:#2196f3}.uk-form textarea{-webkit-transition:border-color .2s ease-in,height 280ms ease-in;transition:border-color .2s ease-in,height 280ms ease-in}.uk-form-row{-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.uk-form-row+.uk-form-row{margin-top:24px}.uk-form-stacked .uk-form-label{font-weight:500;font-size:13px;display:block;padding-bottom:8px}.uk-form-stacked .uk-form-label+p{margin-top:0}.uk-form-help-block{display:block;font-size:12px;color:#727272;padding:4px 0 0 0;font-style:italic}.uk-form-width-large,.uk-form-width-medium,.uk-form-width-mini,.uk-form-width-small{max-width:100%}.uk-grid+.uk-grid,.uk-grid-margin,.uk-grid>*>.uk-panel+.uk-panel{margin-top:48px}.uk-grid.uk-grid-small+.uk-grid-small,.uk-grid.uk-grid-small>*>.uk-panel+.uk-panel,.uk-grid.uk-grid-small>.uk-grid-margin{margin-top:10px}[class*=uk-icon-]{color:#727272}.uk-navbar{border-radius:0;border:none;-webkit-box-sizing:border-box;box-sizing:border-box}.uk-navbar-brand{line-height:64px;display:inline-block;margin:0;text-shadow:none;color:#fff}.uk-navbar-nav>li>a{height:64px;text-shadow:none;font-size:16px;border-radius:0!important;line-height:68px;border:none!important;margin:0}.uk-navbar-nav>li>a:active,.uk-navbar-nav>li>a:hover{background:0 0}.uk-navbar-nav>li>a.uk-navbar-nav-subtitle{line-height:50px;margin:0}.uk-navbar-nav>li>a.uk-navbar-nav-subtitle>div{margin-top:-12px;font-size:11px}.uk-panel-box{border-radius:2px;background:#fff;border-color:rgba(0,0,0,.12)}.uk-panel-box .uk-panel-teaser{border-radius:2px 2px 0 0}.uk-table td{border-bottom-color:rgba(0,0,0,.12)}.uk-table th{border-bottom:1px #444}.uk-table-nowrap td,.uk-table-nowrap th{white-space:nowrap}.uk-table-align-vertical td,.uk-table-align-vertical th{vertical-align:middle}.uk-table-no-border td{border-bottom-color:transparent}.uk-sticky-placeholder .uk-active{z-index:1094}.uk-subnav-pill>*>*{color:#212121}.uk-subnav-pill>.uk-active>*{background:#7cb342}.uk-table thead th{border-bottom:2px solid rgba(0,0,0,.12)}.uk-table tfoot td,.uk-table tfoot th,.uk-table thead th{font-style:normal;font-weight:400;color:#727272;font-size:14px}.uk-table td{border-bottom-color:#e0e0e0}.uk-table tfoot td,.uk-table tfoot th{border-top:2px solid rgba(0,0,0,.12);border-bottom:none}.uk-table-striped tbody tr:nth-of-type(odd){background:rgba(0,0,0,.085)}.uk-table-hover tbody tr:hover{background:rgba(0,0,0,.085)}.uk-thumbnail{border-radius:0;border-color:rgba(0,0,0,.12)}.uk-thumbnail-caption{padding:4px 4px 0;line-height:20px;color:#727272;font-size:12px}.uk-text-small{font-size:12px}.uk-text-muted{color:#757575!important}.uk-text-primary{color:#2196f3!important}.uk-text-danger{color:#e53935!important}.uk-text-success{color:#7cb342!important}.uk-text-warning{color:#ffa000!important}.uk-margin-bottom{margin-bottom:16px!important}.uk-margin-small-bottom{margin-bottom:8px!important}.uk-margin-medium-bottom{margin-bottom:32px!important}.uk-margin-large-bottom{margin-bottom:48px!important}.uk-margin-medium-top{margin-top:32px!important}.uk-margin-large-top{margin-top:48px!important}.uk-margin-right{margin-right:16px!important}.uk-margin-medium-right{margin-right:32px!important}.uk-close{font-size:18px;opacity:1}.uk-close:focus,.uk-close:hover{opacity:1}.uk-close:after{opacity:1!important;color:#727272;content:'\e5cd';font-family:"Material Icons"}/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */.uk-accordion-title{margin-top:0;margin-bottom:15px;padding:5px 15px;background:#f5f5f5;font-size:18px;line-height:24px;cursor:pointer;border:1px solid #ddd;border-radius:4px}.uk-accordion-content{padding:0 15px 15px 15px}.uk-accordion-content:after,.uk-accordion-content:before{content:"";display:table}.uk-accordion-content:after{clear:both}.uk-accordion-content>:last-child{margin-bottom:0}.uk-accordion-title{background:rgba(153,153,153,.2);border-radius:0;border:none;margin:0 0 4px;font-size:15px;font-weight:400;padding:8px 24px 8px 16px;position:relative}.uk-accordion-title:after{content:'\e313';font-family:"Material Icons";font-size:18px;position:absolute;top:8px;right:8px;display:block;color:#727272;-webkit-transition:-webkit-transform 280ms;transition:-webkit-transform 280ms;transition:transform 280ms;transition:transform 280ms,-webkit-transform 280ms}.uk-accordion-title.uk-active:after{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.uk-accordion-title-primary{background:#2196f3;color:#fff}.uk-accordion-title-primary:after{color:#fff}.uk-accordion-title-danger{background:#e53935;color:#fff}.uk-accordion-title-danger:after{color:#fff}.uk-accordion-title-success{background:#7cb342;color:#fff}.uk-accordion-title-success:after{color:#fff}.uk-accordion-title-warning{background:#ffa000;color:#fff}.uk-accordion-title-warning:after{color:#fff}.uk-accordion-content{padding:16px}.uk-accordion-alt .uk-accordion-title{background:#fff;margin:0;padding:16px 24px 16px 48px;border-top:1px solid rgba(0,0,0,.12)}.uk-accordion-alt .uk-accordion-title:first-child{border-top:none}.uk-accordion-alt .uk-accordion-title:after{color:#2196f3;content:'\e145';right:auto;left:16px;top:16px}.uk-accordion-alt .uk-accordion-title.uk-active:after{-webkit-transform:rotate(-180deg);transform:rotate(-180deg);content:'\e15b'}.uk-accordion-alt .uk-accordion-content{padding:24px}/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */.uk-dotnav{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:-15px;margin-top:-15px;padding:0;list-style:none}.uk-dotnav>*{-ms-flex:none;-webkit-box-flex:0;flex:none;padding-left:15px;margin-top:15px}.uk-dotnav:after,.uk-dotnav:before{content:"";display:block;overflow:hidden}.uk-dotnav:after{clear:both}.uk-dotnav>*{float:left}.uk-dotnav>*>*{display:block;-webkit-box-sizing:content-box;box-sizing:content-box;width:20px;height:20px;border-radius:50%;background:rgba(50,50,50,.1);text-indent:100%;overflow:hidden;white-space:nowrap}.uk-dotnav>*>:focus,.uk-dotnav>*>:hover{background:rgba(50,50,50,.4);outline:0}.uk-dotnav>*>:active{background:rgba(50,50,50,.6)}.uk-dotnav>.uk-active>*{background:rgba(50,50,50,.4)}.uk-dotnav-contrast>*>*{background:rgba(255,255,255,.4)}.uk-dotnav-contrast>*>:focus,.uk-dotnav-contrast>*>:hover{background:rgba(255,255,255,.7)}.uk-dotnav-contrast>*>:active{background:rgba(255,255,255,.9)}.uk-dotnav-contrast>.uk-active>*{background:rgba(255,255,255,.9)}.uk-dotnav-vertical{-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.uk-dotnav-vertical>*{float:none}.uk-autocomplete .uk-dropdown{display:block;max-height:0;padding:0;overflow-x:hidden;overflow-y:auto;border-radius:0;border:none;-webkit-transform:scale(.25,0);transform:scale(.25,0);opacity:0;-webkit-transition:all 280ms cubic-bezier(.4,0,.2,1);transition:all 280ms cubic-bezier(.4,0,.2,1);-webkit-animation:none!important;animation:none!important;-webkit-transform-origin:0 0;transform-origin:0 0}.uk-autocomplete.uk-open .uk-dropdown{-webkit-transform:scale(1);transform:scale(1);opacity:1;max-height:210px}[data-uk-autocomplete] .uk-dropdown{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}[data-uk-autocomplete] .uk-dropdown .uk-nav{margin:0}/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */.uk-slideshow{position:relative;z-index:0;width:100%;margin:0;padding:0;list-style:none;overflow:hidden;-ms-touch-action:pan-y;touch-action:pan-y}.uk-slideshow>li{position:absolute;top:0;left:0;width:100%;opacity:0}.uk-slideshow>.uk-active{z-index:10;opacity:1}.uk-slideshow>li>img{visibility:hidden}[data-uk-slideshow-slide]{cursor:pointer}.uk-slideshow-fullscreen,.uk-slideshow-fullscreen>li{height:100vh}.uk-slideshow-fade-in{-webkit-animation:uk-fade .5s linear;animation:uk-fade .5s linear}.uk-slideshow-fade-out{-webkit-animation:uk-fade .5s linear reverse;animation:uk-fade .5s linear reverse}.uk-slideshow-scroll-forward-in{-webkit-animation:uk-slide-right .5s ease-in-out;animation:uk-slide-right .5s ease-in-out}.uk-slideshow-scroll-forward-out{-webkit-animation:uk-slide-left .5s ease-in-out reverse;animation:uk-slide-left .5s ease-in-out reverse}.uk-slideshow-scroll-backward-in{-webkit-animation:uk-slide-left .5s ease-in-out;animation:uk-slide-left .5s ease-in-out}.uk-slideshow-scroll-backward-out{-webkit-animation:uk-slide-right .5s ease-in-out reverse;animation:uk-slide-right .5s ease-in-out reverse}.uk-slideshow-scale-out{-webkit-animation:uk-fade-scale-15 .5s ease-in-out reverse;animation:uk-fade-scale-15 .5s ease-in-out reverse}.uk-slideshow-swipe-forward-in{-webkit-animation:uk-slide-left-33 .5s ease-in-out;animation:uk-slide-left-33 .5s ease-in-out}.uk-slideshow-swipe-forward-out{-webkit-animation:uk-slide-left .5s ease-in-out reverse;animation:uk-slide-left .5s ease-in-out reverse}.uk-slideshow-swipe-backward-in{-webkit-animation:uk-slide-right-33 .5s ease-in-out;animation:uk-slide-right-33 .5s ease-in-out}.uk-slideshow-swipe-backward-out{-webkit-animation:uk-slide-right .5s ease-in-out reverse;animation:uk-slide-right .5s ease-in-out reverse}.uk-slideshow-swipe-backward-in:before,.uk-slideshow-swipe-forward-in:before{content:'';position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;background:rgba(0,0,0,.6);-webkit-animation:uk-fade .5s ease-in-out reverse;animation:uk-fade .5s ease-in-out reverse}/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */[data-uk-slider]{direction:ltr}html[dir=rtl] .uk-slider>*{direction:rtl}.uk-slider{position:relative;z-index:0;-ms-touch-action:pan-y;touch-action:pan-y}.uk-slider:not(.uk-grid){margin:0;padding:0;list-style:none}.uk-slider>*{position:absolute;top:0;left:0}.uk-slider-container{overflow:hidden}.uk-slider:not(.uk-drag){-webkit-transition:-webkit-transform .2s linear;transition:-webkit-transform .2s linear;transition:transform .2s linear;transition:transform .2s linear,-webkit-transform .2s linear}.uk-slider.uk-drag{cursor:col-resize;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.uk-slider a,.uk-slider img{-webkit-user-drag:none;user-drag:none;-webkit-touch-callout:none}.uk-slider img{pointer-events:none}.uk-slider-fullscreen,.uk-slider-fullscreen>li{height:100vh}.uk-slider-container{padding:8px 0}/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */.uk-slidenav{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;width:60px;height:60px;line-height:60px;color:rgba(50,50,50,.4);font-size:60px;text-align:center}.uk-slidenav:focus,.uk-slidenav:hover{outline:0;text-decoration:none;color:rgba(50,50,50,.7);cursor:pointer}.uk-slidenav:active{color:rgba(50,50,50,.9)}.uk-slidenav-previous:before{content:"\f104";font-family:FontAwesome}.uk-slidenav-next:before{content:"\f105";font-family:FontAwesome}.uk-slidenav-position{position:relative}.uk-slidenav-position .uk-slidenav{display:none;position:absolute;top:50%;z-index:1;margin-top:-30px}.uk-slidenav-position:hover .uk-slidenav{display:block}.uk-slidenav-position .uk-slidenav-previous{left:20px}.uk-slidenav-position .uk-slidenav-next{right:20px}.uk-slidenav-contrast{color:rgba(255,255,255,.5)}.uk-slidenav-contrast:focus,.uk-slidenav-contrast:hover{color:rgba(255,255,255,.7)}.uk-slidenav-contrast:active{color:rgba(255,255,255,.9)}/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */.uk-tooltip{display:none;position:absolute;z-index:1030;-webkit-box-sizing:border-box;box-sizing:border-box;max-width:200px;padding:5px 8px;background:#333;color:rgba(255,255,255,.7);font-size:12px;line-height:18px;border-radius:3px;text-shadow:0 1px 0 rgba(0,0,0,.5)}.uk-tooltip:after{content:"";display:block;position:absolute;width:0;height:0;border:5px dashed #333}.uk-tooltip-top-left:after,.uk-tooltip-top-right:after,.uk-tooltip-top:after{bottom:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent;border-top-color:#333}.uk-tooltip-bottom-left:after,.uk-tooltip-bottom-right:after,.uk-tooltip-bottom:after{top:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent;border-bottom-color:#333}.uk-tooltip-bottom:after,.uk-tooltip-top:after{left:50%;margin-left:-5px}.uk-tooltip-bottom-left:after,.uk-tooltip-top-left:after{left:10px}.uk-tooltip-bottom-right:after,.uk-tooltip-top-right:after{right:10px}.uk-tooltip-left:after{right:-5px;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent;border-left-color:#333}.uk-tooltip-right:after{left:-5px;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent;border-right-color:#333}.uk-tooltip{background:#424242;color:#fff;font-size:13px;padding:3px 16px;line-height:22px;text-shadow:none;min-width:80px;text-align:center;z-index:1304;opacity:0}.uk-tooltip .uk-tooltip-inner{text-overflow:ellipsis;display:inline-block;vertical-align:top;white-space:nowrap;overflow:hidden;width:100%}.uk-tooltip:after{display:none!important}.uk-tooltip.long-text{text-align:left}.uk-tooltip.long-text .uk-tooltip-inner{white-space:normal;overflow:visible;line-height:18px;padding:4px 0}.uk-tooltip-small{-webkit-transform:scale(.85);transform:scale(.85)}.uk-tab{border-bottom-color:rgba(0,0,0,.12)}.uk-sticky-placeholder .uk-tab{background:#fff;padding-top:8px}.uk-tab>li{margin-bottom:0;margin-top:0;z-index:1}.uk-tab>li>a{font-size:13px;text-transform:uppercase;color:#212121;border:none;border-bottom:2px solid transparent;border-radius:0!important;font-weight:500;min-width:100px;max-width:100%;text-align:center;-webkit-transition:all 220ms cubic-bezier(.4,0,.2,1);transition:all 220ms cubic-bezier(.4,0,.2,1);padding:8px!important;margin:0!important;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;top:1px;text-shadow:none}.uk-tab>li>a:focus,.uk-tab>li>a:hover{background:0 0;color:#212121;border-bottom-color:#b2dbfb}.uk-tab>li.uk-active>a{background:0 0!important;border-bottom-color:#2196f3}.uk-tab>li.uk-disabled>a,.uk-tab>li.uk-disabled>a:focus,.uk-tab>li.uk-disabled>a:hover{color:#aaa}.uk-tab-bottom li{margin-top:0}.uk-tab-bottom li>a{border-top:2px solid transparent;border-bottom:none;top:auto;bottom:1px}.uk-tab-bottom li>a:focus,.uk-tab-bottom li>a:hover{border-top-color:#b2dbfb}.uk-tab-bottom li.uk-active>a{border-top-color:#2196f3}.uk-tab-left{border-bottom:none}.uk-tab-left li>a{border-right:2px solid transparent;border-bottom:none;text-align:right;top:auto;bottom:auto}.uk-tab-left li>a:focus,.uk-tab-left li>a:hover{border-right-color:#b2dbfb}.uk-tab-left li.uk-active>a{border-right-color:#2196f3}.uk-tab-right{border-bottom:none}.uk-tab-right li>a{border-left:2px solid transparent;border-bottom:none;text-align:left;top:auto;bottom:auto}.uk-tab-right li>a:focus,.uk-tab-right li>a:hover{border-left-color:#b2dbfb}.uk-tab-right li.uk-active>a{border-left-color:#2196f3}.uk-tab-responsive li a{border:none!important}.uk-tab-responsive>a:before{content:'\e5d2';font-family:"Material Icons";color:#727272;margin-right:8px;vertical-align:-4px;font-size:18px}.uk-tab-icons>li>a{min-width:64px}.uk-tab-icons>li>a>.material-icons{font-size:24px}.uk-tab-double-header{margin:10px 24px 0!important}.uk-tab-double-header>li>a{color:#fff;border-bottom:4px solid transparent}.uk-tab-double-header>li>a:focus,.uk-tab-double-header>li>a:hover{color:#fff;border-bottom-color:#39a1f4}.uk-tab-double-header>li.uk-active>a{color:#fff;border-bottom-color:#7cb342}.uk-tab-double-header>li.uk-tab-responsive>a{border-bottom:none;padding-bottom:5px!important}.uk-tab-double-header>li.uk-tab-responsive>a:before{color:#fff}.uk-tab-large>li{margin-bottom:0;margin-top:0;z-index:1}.uk-tab-large>li>a{font-size:16px;padding:12px 24px!important}.uk-text-truncate{display:block}.uk-switcher{overflow:hidden}.uk-switcher>li{padding:8px 4px}@media (min-width:1480px){.uk-grid-width-xLarge-1-1>*,.uk-width-xLarge-1-1{width:100%}.uk-grid-width-xLarge-1-2>*,.uk-grid-width-xLarge-2-4>*,.uk-grid-width-xLarge-3-6>*,.uk-grid-width-xLarge-5-10>*,.uk-width-xLarge-1-2,.uk-width-xLarge-2-4,.uk-width-xLarge-3-6,.uk-width-xLarge-5-10{width:50%}.uk-grid-width-xLarge-1-3>*,.uk-grid-width-xLarge-2-6>*,.uk-width-xLarge-1-3,.uk-width-xLarge-2-6{width:33.333%}.uk-grid-width-xLarge-2-3>*,.uk-grid-width-xLarge-4-6>*,.uk-width-xLarge-2-3,.uk-width-xLarge-4-6{width:66.666%}.uk-grid-width-xLarge-1-4>*,.uk-width-xLarge-1-4{width:25%}.uk-grid-width-xLarge-3-4>*,.uk-width-xLarge-3-4{width:75%}.uk-grid-width-xLarge-1-5>*,.uk-grid-width-xLarge-2-10>*,.uk-width-xLarge-1-5,.uk-width-xLarge-2-10{width:20%}.uk-grid-width-xLarge-2-5>*,.uk-grid-width-xLarge-4-10>*,.uk-width-xLarge-2-5,.uk-width-xLarge-4-10{width:40%}.uk-grid-width-xLarge-3-5>*,.uk-grid-width-xLarge-6-10>*,.uk-width-xLarge-3-5,.uk-width-xLarge-6-10{width:60%}.uk-grid-width-xLarge-4-5>*,.uk-grid-width-xLarge-8-10>*,.uk-width-xLarge-4-5,.uk-width-xLarge-8-10{width:80%}.uk-grid-width-xLarge-1-6>*,.uk-width-xLarge-1-6{width:16.666%}.uk-grid-width-xLarge-5-6>*,.uk-width-xLarge-5-6{width:83.333%}.uk-grid-width-xLarge-1-10>*,.uk-width-xLarge-1-10{width:10%}.uk-grid-width-xLarge-3-10>*,.uk-width-xLarge-3-10{width:30%}.uk-grid-width-xLarge-7-10>*,.uk-width-xLarge-7-10{width:70%}.uk-grid-width-xLarge-9-10>*,.uk-width-xLarge-9-10{width:90%}}.lte-ie9 [class*=uk-animation-]{opacity:1!important}.pricing_table.pricing_table_a{text-align:center}.pricing_table.pricing_table_a .pricing_table_plan{font-size:18px;font-weight:400;padding:16px 0;margin-bottom:16px}.pricing_table.pricing_table_a .pricing_table_price{padding:8px 0 0;font-size:48px;margin-bottom:24px}.pricing_table.pricing_table_a .pricing_table_price .currency{vertical-align:top;font-size:24px;padding:0 4px}.pricing_table.pricing_table_a .pricing_table_price .period{font-size:14px;padding:4px;color:#aaa;display:block}.pricing_table.pricing_table_a .pricing_table_features{margin:0;padding:0;list-style:none}.pricing_table.pricing_table_a .pricing_table_features>li{padding:0;margin:0;list-style:none}.pricing_table.pricing_table_a .pricing_table_features li{font-size:16px;padding:8px 0}.pricing_table.pricing_table_a .pricing_table_select{padding:32px 0}.pricing_table.pricing_table_b{text-align:center}.pricing_table.pricing_table_b .pricing_table_plan{font-size:16px;font-weight:400;padding:16px 0;margin-bottom:16px;text-transform:uppercase}.pricing_table.pricing_table_b .pricing_table_price{padding:8px 0 0;font-size:48px;margin-bottom:24px}.pricing_table.pricing_table_b .pricing_table_price .currency{vertical-align:top;font-size:24px;padding:0 4px}.pricing_table.pricing_table_b .pricing_table_price .period{font-size:14px;padding:4px;color:#aaa;display:block}.pricing_table.pricing_table_b .pricing_table_features{margin:0;padding:0;list-style:none}.pricing_table.pricing_table_b .pricing_table_features>li{padding:0;margin:0;list-style:none}.pricing_table.pricing_table_b .pricing_table_features li{font-size:16px;padding:8px 0}.pricing_table.pricing_table_b .pricing_table_select{padding:32px 0}.pricing_table.pricing_table_c{text-align:center}.pricing_table.pricing_table_c .pricing_table_plan{font-size:16px;font-weight:400;padding:16px 0;margin-bottom:8px}.pricing_table.pricing_table_c .pricing_table_price{padding:8px 0 0;font-size:48px;margin-bottom:24px}.pricing_table.pricing_table_c .pricing_table_price .currency{vertical-align:top;font-size:24px;padding:0 4px}.pricing_table.pricing_table_c .pricing_table_price .period{font-size:14px;color:#aaa;vertical-align:0;padding-left:4px}.pricing_table.pricing_table_c .pricing_table_features{margin:0;padding:0;list-style:none}.pricing_table.pricing_table_c .pricing_table_features>li{padding:0;margin:0;list-style:none}.pricing_table.pricing_table_c .pricing_table_features li{font-size:16px;padding:8px 0}.pricing_table.pricing_table_c .pricing_table_select{padding:32px 0}.al_timeline{position:relative;padding:24px 0 32px}.al_timeline:after{position:absolute;top:0;bottom:0;margin-left:-2px;left:50%;content:'';width:4px;background:rgba(255,255,255,.5);display:block}.al_timeline_block:after,.al_timeline_block:before{content:" ";display:table}.al_timeline_block:after{clear:both}.al_timeline_block+*{margin-top:48px}.al_timeline_block:nth-child(even) .al_timeline_content{float:right}.al_timeline_block:nth-child(even) .al_timeline_content:after{border-left-color:transparent;border-right-color:#fff;right:auto;left:-20px}.al_timeline_content{-webkit-box-sizing:border-box;box-sizing:border-box;background:#fff;width:44%;padding:16px;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);position:relative;border-radius:4px}.al_timeline_content:after{position:absolute;top:24px;right:-20px;content:'';display:block;border:10px solid transparent;border-left-color:#fff}.al_timeline_image{position:absolute;left:50%;width:64px;height:64px;margin-left:-32px;background:#fff;border-radius:50%;text-align:center;z-index:10;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23)}.al_timeline_image>i{font-size:32px;line-height:64px}@media only screen and (max-width:959px){.al_timeline:after{margin-left:0;left:30px}.al_timeline_block{padding-left:96px}.al_timeline_content{width:100%}.al_timeline_content:after{border-left-color:transparent;border-right-color:#fff;right:auto;left:-20px}.al_timeline_image{left:0;margin-left:0}}@media only screen and (max-width:767px){.al_timeline:after{margin-left:0;left:22px}.al_timeline_block{padding-left:72px}.al_timeline_content{width:100%}.al_timeline_content:after{border-left-color:transparent;border-right-color:#fff;right:auto;left:-20px;top:14px}.al_timeline_image{width:48px;height:48px;left:0;margin-left:0}.al_timeline_image>i{line-height:48px;font-size:24px}}.md-bg-cyan{background-color:#00acc1!important;color:#fff}.md-bg-light-green{background-color:#7cb342!important;color:#fff}.md-bg-grey{background-color:#616161!important;color:#fff}.md-bg-red{background-color:#d32f2f!important;color:#fff}.md-bg-light-blue{background-color:#0288d1!important;color:#fff}.md-bg-teal{background-color:#00897b!important;color:#fff}.md-bg-purple{background-color:#8e24aa!important;color:#fff}.md-btn{background:#fff;border:none;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);min-height:31px;min-width:70px;padding:2px 16px;text-align:center;text-shadow:none;text-transform:uppercase;-webkit-transition:all 280ms cubic-bezier(.4,0,.2,1);transition:all 280ms cubic-bezier(.4,0,.2,1);color:#212121;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;-webkit-appearance:none;display:inline-block;vertical-align:middle;font:500 14px/31px Roboto,sans-serif!important}.md-btn:active,.md-btn:focus,.md-btn:hover,.uk-button-dropdown.uk-open>.md-btn{background:#fff;outline:0;text-decoration:none;color:#212121;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23)}.md-btn:active,.uk-button-dropdown.uk-open>.md-btn{-webkit-box-shadow:0 10px 20px rgba(0,0,0,.19),0 6px 6px rgba(0,0,0,.23);box-shadow:0 10px 20px rgba(0,0,0,.19),0 6px 6px rgba(0,0,0,.23)}.md-btn-flat{-webkit-box-shadow:none!important;box-shadow:none!important;background:0 0}.md-btn-flat:focus,.md-btn-flat:hover{background:rgba(153,153,153,.2)}.md-btn-flat:active{background:rgba(153,153,153,.4)}.md-btn-flat-danger,.md-btn-flat-danger:active,.md-btn-flat-danger:focus,.md-btn-flat-danger:hover{color:#e53935}.md-btn-flat-danger:active,.md-btn-flat-danger:focus,.md-btn-flat-danger:hover{background:#fceaea}.md-btn-flat-primary,.md-btn-flat-primary:active,.md-btn-flat-primary:focus,.md-btn-flat-primary:hover{color:#1976d2}.md-btn-flat-primary:active,.md-btn-flat-primary:focus,.md-btn-flat-primary:hover{background:#e3f2fd}.md-btn-flat-success,.md-btn-flat-success:active,.md-btn-flat-success:focus,.md-btn-flat-success:hover{color:#7cb342}.md-btn-flat-success:active,.md-btn-flat-success:focus,.md-btn-flat-success:hover{background:#e1efd2}.md-btn-flat-warning,.md-btn-flat-warning:active,.md-btn-flat-warning:focus,.md-btn-flat-warning:hover{color:#ffa000}.md-btn-flat-warning:active,.md-btn-flat-warning:focus,.md-btn-flat-warning:hover{background:#ffeccc}.md-btn-flat.disabled{background:0 0!important}.md-btn-danger,.md-btn-danger:active,.md-btn-danger:focus,.md-btn-danger:hover{background:#e53935}.md-btn-primary,.md-btn-primary:active,.md-btn-primary:focus,.md-btn-primary:hover{background:#2196f3}.md-btn-success,.md-btn-success:active,.md-btn-success:focus,.md-btn-success:hover{background:#7cb342}.md-btn-warning,.md-btn-warning:active,.md-btn-warning:focus,.md-btn-warning:hover{background:#ffa000}.md-btn-danger,.md-btn-danger:active,.md-btn-danger:focus,.md-btn-danger:hover,.md-btn-danger>i,.md-btn-primary,.md-btn-primary:active,.md-btn-primary:focus,.md-btn-primary:hover,.md-btn-primary>i,.md-btn-success,.md-btn-success:active,.md-btn-success:focus,.md-btn-success:hover,.md-btn-success>i,.md-btn-warning,.md-btn-warning:active,.md-btn-warning:focus,.md-btn-warning:hover,.md-btn-warning>i{color:#fff}.md-btn.disabled,.md-btn.disabled:active,.md-btn.disabled:focus,.md-btn.disabled:hover{color:#a8a8a8;background:#eaeaea;-webkit-box-shadow:none!important;box-shadow:none!important;cursor:default;pointer-events:none}.md-btn>i.material-icons{margin-top:5px;font-size:18px}.md-btn-mini{line-height:21px!important;min-width:12px;font-size:10px!important;min-height:24px}.md-btn-small{line-height:27px!important;min-width:14px;font-size:11px!important}.md-btn-large{line-height:42px!important;font-size:16px!important}.md-btn::-moz-focus-inner{border:0;padding:0}.md-btn+.md-btn{margin-left:8px}.md-btn-block{width:100%}.md-btn-block+.md-btn-block{margin-left:0;margin-top:12px}.md-btn+.md-btn-group{margin-left:16px}.md-btn-facebook{background:#3b5998!important}.md-btn-twitter{background:#00aced!important}.md-btn-gplus{background:#dd4b39!important}.md-btn-facebook,.md-btn-facebook>i,.md-btn-gplus,.md-btn-gplus>i,.md-btn-twitter,.md-btn-twitter>i{color:#fff!important}.md-btn-icon>i.no_margin{margin-right:0!important;margin-left:0!important}.md-btn-icon-large,.md-btn-icon.md-btn-large{min-width:72px}.md-btn-icon-large>i,.md-btn-icon.md-btn-large>i{font-size:24px;margin-right:12px;vertical-align:-3px}.md-btn-icon,.md-btn-icon-default{min-width:64px}.md-btn-icon-default>i,.md-btn-icon>i{font-size:18px;margin-right:8px;vertical-align:-2px}.md-btn-icon-small,.md-btn-icon.md-btn-small{min-width:48px}.md-btn-icon-small>i,.md-btn-icon.md-btn-small>i{font-size:16px;margin-right:6px;vertical-align:-2px}.md-btn-icon-mini,.md-btn-icon.md-btn-mini{min-width:36px}.md-btn-icon-mini>i,.md-btn-icon.md-btn-mini>i{font-size:16px;margin-right:4px;vertical-align:-2px}.md-fab{-webkit-box-sizing:border-box;box-sizing:border-box;width:64px;height:64px;border-radius:50%;background:#fff;color:#727272;display:block;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);-webkit-transition:-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1);transition:-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1);transition:box-shadow 280ms cubic-bezier(.4,0,.2,1);transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1);border:none;position:relative;text-align:center;cursor:pointer}.md-fab:active,.md-fab:focus,.md-fab:hover{-webkit-box-shadow:0 10px 20px rgba(0,0,0,.19),0 6px 6px rgba(0,0,0,.23);box-shadow:0 10px 20px rgba(0,0,0,.19),0 6px 6px rgba(0,0,0,.23)}.md-fab>i{font-size:36px;line-height:64px;height:inherit;width:inherit;position:absolute;left:0;top:0;color:#727272}.md-fab.md-fab-accent{background:#7cb342}.md-fab.md-fab-accent>i{color:#fff}.md-fab.md-fab-success{background:#7cb342}.md-fab.md-fab-success>i{color:#fff}.md-fab.md-fab-danger{background:#e53935}.md-fab.md-fab-danger>i{color:#fff}.md-fab.md-fab-primary{background:#2196f3}.md-fab.md-fab-primary>i{color:#fff}.md-fab.md-fab-warning{background:#ffa000}.md-fab.md-fab-warning>i{color:#fff}.md-fab.md-fab-small{width:48px;height:48px;border-radius:50%}.md-fab.md-fab-small>i{line-height:48px;height:inherit;width:inherit;font-size:24px}.md-fab-speed-dial .md-fab-action-close{display:none}.md-fab-wrapper{position:fixed;bottom:24px;right:24px;z-index:1004;-webkit-transition:margin 280ms cubic-bezier(.4,0,.2,1);transition:margin 280ms cubic-bezier(.4,0,.2,1)}@media only screen and (max-width:767px){.md-fab-wrapper{bottom:20px;right:20px}}.md-fab-wrapper>.md-fab+.md-fab{margin-top:16px}.md-fab-wrapper.md-fab-in-card{position:absolute}.md-fab-speed-dial .md-fab-wrapper-small{position:absolute;bottom:80px;right:8px;min-height:48px;width:48px;z-index:-1}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small{-webkit-transform:scale(0);transform:scale(0);opacity:0;position:absolute;right:0}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(1){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) 50ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 50ms;transition:opacity .1s cubic-bezier(.4,0,.2,1) 50ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 50ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 50ms,opacity .1s cubic-bezier(.4,0,.2,1) 50ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 50ms,opacity .1s cubic-bezier(.4,0,.2,1) 50ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 50ms}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-last-child(2){bottom:64px}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(2){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) .1s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .1s;transition:opacity .1s cubic-bezier(.4,0,.2,1) .1s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .1s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .1s,opacity .1s cubic-bezier(.4,0,.2,1) .1s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .1s,opacity .1s cubic-bezier(.4,0,.2,1) .1s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .1s}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-last-child(3){bottom:128px}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(3){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) 150ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 150ms;transition:opacity .1s cubic-bezier(.4,0,.2,1) 150ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 150ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 150ms,opacity .1s cubic-bezier(.4,0,.2,1) 150ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 150ms,opacity .1s cubic-bezier(.4,0,.2,1) 150ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 150ms}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-last-child(4){bottom:192px}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(4){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) .2s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .2s;transition:opacity .1s cubic-bezier(.4,0,.2,1) .2s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .2s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .2s,opacity .1s cubic-bezier(.4,0,.2,1) .2s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .2s,opacity .1s cubic-bezier(.4,0,.2,1) .2s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .2s}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-last-child(5){bottom:256px}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(5){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) 250ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 250ms;transition:opacity .1s cubic-bezier(.4,0,.2,1) 250ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 250ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 250ms,opacity .1s cubic-bezier(.4,0,.2,1) 250ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 250ms,opacity .1s cubic-bezier(.4,0,.2,1) 250ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 250ms}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-last-child(6){bottom:320px}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(6){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) .3s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .3s;transition:opacity .1s cubic-bezier(.4,0,.2,1) .3s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .3s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .3s,opacity .1s cubic-bezier(.4,0,.2,1) .3s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .3s,opacity .1s cubic-bezier(.4,0,.2,1) .3s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .3s}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-last-child(7){bottom:384px}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(7){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) 350ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 350ms;transition:opacity .1s cubic-bezier(.4,0,.2,1) 350ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 350ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 350ms,opacity .1s cubic-bezier(.4,0,.2,1) 350ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 350ms,opacity .1s cubic-bezier(.4,0,.2,1) 350ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 350ms}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-last-child(8){bottom:448px}.md-fab-speed-dial .md-fab-wrapper-small .md-fab-small:nth-child(8){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) .4s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .4s;transition:opacity .1s cubic-bezier(.4,0,.2,1) .4s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .4s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .4s,opacity .1s cubic-bezier(.4,0,.2,1) .4s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .4s,opacity .1s cubic-bezier(.4,0,.2,1) .4s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .4s}.md-fab-speed-dial.md-fab-active .md-fab-small{-webkit-transform:scale(1);transform:scale(1);opacity:1;z-index:10}.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(1){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) 50ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 50ms;transition:opacity .1s cubic-bezier(.4,0,.2,1) 50ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 50ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 50ms,opacity .1s cubic-bezier(.4,0,.2,1) 50ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 50ms,opacity .1s cubic-bezier(.4,0,.2,1) 50ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 50ms}.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(2){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) .1s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .1s;transition:opacity .1s cubic-bezier(.4,0,.2,1) .1s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .1s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .1s,opacity .1s cubic-bezier(.4,0,.2,1) .1s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .1s,opacity .1s cubic-bezier(.4,0,.2,1) .1s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .1s}.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(3){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) 150ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 150ms;transition:opacity .1s cubic-bezier(.4,0,.2,1) 150ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 150ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 150ms,opacity .1s cubic-bezier(.4,0,.2,1) 150ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 150ms,opacity .1s cubic-bezier(.4,0,.2,1) 150ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 150ms}.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(4){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) .2s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .2s;transition:opacity .1s cubic-bezier(.4,0,.2,1) .2s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .2s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .2s,opacity .1s cubic-bezier(.4,0,.2,1) .2s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .2s,opacity .1s cubic-bezier(.4,0,.2,1) .2s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .2s}.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(5){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) 250ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 250ms;transition:opacity .1s cubic-bezier(.4,0,.2,1) 250ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 250ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 250ms,opacity .1s cubic-bezier(.4,0,.2,1) 250ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 250ms,opacity .1s cubic-bezier(.4,0,.2,1) 250ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 250ms}.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(6){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) .3s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .3s;transition:opacity .1s cubic-bezier(.4,0,.2,1) .3s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .3s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .3s,opacity .1s cubic-bezier(.4,0,.2,1) .3s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .3s,opacity .1s cubic-bezier(.4,0,.2,1) .3s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .3s}.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(7){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) 350ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 350ms;transition:opacity .1s cubic-bezier(.4,0,.2,1) 350ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 350ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 350ms,opacity .1s cubic-bezier(.4,0,.2,1) 350ms;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) 350ms,opacity .1s cubic-bezier(.4,0,.2,1) 350ms,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) 350ms}.md-fab-speed-dial.md-fab-active .md-fab-small:nth-last-child(8){-webkit-transition:opacity .1s cubic-bezier(.4,0,.2,1) .4s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .4s;transition:opacity .1s cubic-bezier(.4,0,.2,1) .4s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .4s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .4s,opacity .1s cubic-bezier(.4,0,.2,1) .4s;transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),transform .1s cubic-bezier(.4,0,.2,1) .4s,opacity .1s cubic-bezier(.4,0,.2,1) .4s,-webkit-box-shadow 280ms cubic-bezier(.4,0,.2,1),-webkit-transform .1s cubic-bezier(.4,0,.2,1) .4s}.md-fab-toolbar{-webkit-transition:all 280ms cubic-bezier(.4,0,.2,1);transition:all 280ms cubic-bezier(.4,0,.2,1);cursor:default}.md-fab-toolbar>i{cursor:pointer}.md-fab-toolbar-actions{visibility:hidden;white-space:nowrap;padding:0 16px;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.md-fab-toolbar-actions>a,.md-fab-toolbar-actions>button{display:block;float:left;opacity:0;margin:0 0 0 16px;height:64px;width:48px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:opacity 280ms cubic-bezier(.4,0,.2,1);transition:opacity 280ms cubic-bezier(.4,0,.2,1);background:0 0;border:none;outline:0;cursor:pointer}.md-fab-toolbar-actions>a:first-child,.md-fab-toolbar-actions>button:first-child{margin-left:0}.md-fab-toolbar-actions .material-icons{font-size:36px;line-height:64px}.md-fab-toolbar.md-fab-animated{-webkit-box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);border-radius:4px}.md-fab-toolbar.md-fab-animated>i{display:none}.md-fab-toolbar.md-fab-active .md-fab-toolbar-actions{visibility:visible}.md-fab-toolbar.md-fab-active .md-fab-toolbar-actions>a,.md-fab-toolbar.md-fab-active .md-fab-toolbar-actions>button{opacity:1}.md-fab-toolbar.md-fab-small .md-fab-toolbar-actions>a,.md-fab-toolbar.md-fab-small .md-fab-toolbar-actions>button{height:48px;width:36px;padding:0;margin:0 0 0 8px}.md-fab-toolbar.md-fab-small .md-fab-toolbar-actions>a:first-child,.md-fab-toolbar.md-fab-small .md-fab-toolbar-actions>button:first-child{margin-left:0}.md-fab-toolbar.md-fab-small .md-fab-toolbar-actions .material-icons{font-size:24px;line-height:48px;height:inherit}.md-fab-sheet{-webkit-transition:all 280ms cubic-bezier(.4,0,.2,1);transition:all 280ms cubic-bezier(.4,0,.2,1);cursor:default}.md-fab-sheet>i{cursor:pointer}.md-fab-sheet-actions{visibility:hidden;white-space:nowrap;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;padding:4px 0}.md-fab-sheet-actions>a{display:block;opacity:0;padding:4px 16px;-webkit-box-sizing:border-box;box-sizing:border-box;font:400 16px/32px Roboto,sans-serif;text-align:left}.md-fab-sheet-actions>a,.md-fab-sheet-actions>a:hover{color:#212121}.md-fab-sheet-actions .material-icons{font-size:24px;margin-right:8px;vertical-align:-6px}.md-fab-sheet.md-fab-animated{-webkit-box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);border-radius:4px}.md-fab-sheet.md-fab-animated>i{display:none}.md-fab-sheet.md-fab-active .md-fab-sheet-actions{visibility:visible}.md-fab-sheet.md-fab-active .md-fab-sheet-actions>a{opacity:1}.sidebar_secondary_active .md-fab-wrapper{margin-right:264px}@media only screen and (max-width:767px){.sidebar_secondary_active .md-fab-wrapper{margin-right:280px}}.md-toggle-group .md-toggle-button{border-width:0 0 2px;border-style:solid;border-color:transparent;background:0 0;line-height:30px;min-width:42px;text-align:center;padding:0 8px;vertical-align:middle;cursor:pointer}.md-toggle-group .md-toggle-button.md-toggle-active{border-bottom-color:#212121}.md-toggle-group.md-toggle-group-small .md-toggle-button{font-size:11px;line-height:24px;min-width:16px;padding:0 6px}.md-btn-group{display:inline-block;vertical-align:top;position:relative;font-size:0;white-space:nowrap}.md-btn-group .md-btn{vertical-align:top;margin-left:0!important}.md-btn-group .md-btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.md-btn-group .md-btn:not(:first-child):not(:last-child){border-radius:0}.md-btn-group .md-btn:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.md-color-red-50{color:#ffebee!important}.md-bg-red-50{background-color:#ffebee!important}.md-color-red-100{color:#ffcdd2!important}.md-bg-red-100{background-color:#ffcdd2!important}.md-color-red-200{color:#ef9a9a!important}.md-bg-red-200{background-color:#ef9a9a!important}.md-color-red-300{color:#e57373!important}.md-bg-red-300{background-color:#e57373!important}.md-color-red-400{color:#ef5350!important}.md-bg-red-400{background-color:#ef5350!important}.md-color-red-500{color:#f44336!important}.md-bg-red-500{background-color:#f44336!important}.md-color-red-600{color:#e53935!important}.md-bg-red-600{background-color:#e53935!important}.md-color-red-700{color:#d32f2f!important}.md-bg-red-700{background-color:#d32f2f!important}.md-color-red-800{color:#c62828!important}.md-bg-red-800{background-color:#c62828!important}.md-color-red-900{color:#b71c1c!important}.md-bg-red-900{background-color:#b71c1c!important}.md-color-red-A100{color:#ff8a80!important}.md-bg-red-A100{background-color:#ff8a80!important}.md-color-red-A200{color:#ff5252!important}.md-bg-red-A200{background-color:#ff5252!important}.md-color-red-A400{color:#ff1744!important}.md-bg-red-A400{background-color:#ff1744!important}.md-color-red-A700{color:#d50000!important}.md-bg-red-A700{background-color:#d50000!important}.md-color-pink-50{color:#fce4ec!important}.md-bg-pink-50{background-color:#fce4ec!important}.md-color-pink-100{color:#f8bbd0!important}.md-bg-pink-100{background-color:#f8bbd0!important}.md-color-pink-200{color:#f48fb1!important}.md-bg-pink-200{background-color:#f48fb1!important}.md-color-pink-300{color:#f06292!important}.md-bg-pink-300{background-color:#f06292!important}.md-color-pink-400{color:#ec407a!important}.md-bg-pink-400{background-color:#ec407a!important}.md-color-pink-500{color:#e91e63!important}.md-bg-pink-500{background-color:#e91e63!important}.md-color-pink-600{color:#d81b60!important}.md-bg-pink-600{background-color:#d81b60!important}.md-color-pink-700{color:#c2185b!important}.md-bg-pink-700{background-color:#c2185b!important}.md-color-pink-800{color:#ad1457!important}.md-bg-pink-800{background-color:#ad1457!important}.md-color-pink-900{color:#880e4f!important}.md-bg-pink-900{background-color:#880e4f!important}.md-color-pink-A100{color:#ff80ab!important}.md-bg-pink-A100{background-color:#ff80ab!important}.md-color-pink-A200{color:#ff4081!important}.md-bg-pink-A200{background-color:#ff4081!important}.md-color-pink-A400{color:#f50057!important}.md-bg-pink-A400{background-color:#f50057!important}.md-color-pink-A700{color:#c51162!important}.md-bg-pink-A700{background-color:#c51162!important}.md-color-purple-50{color:#f3e5f5!important}.md-bg-purple-50{background-color:#f3e5f5!important}.md-color-purple-100{color:#e1bee7!important}.md-bg-purple-100{background-color:#e1bee7!important}.md-color-purple-200{color:#ce93d8!important}.md-bg-purple-200{background-color:#ce93d8!important}.md-color-purple-300{color:#ba68c8!important}.md-bg-purple-300{background-color:#ba68c8!important}.md-color-purple-400{color:#ab47bc!important}.md-bg-purple-400{background-color:#ab47bc!important}.md-color-purple-500{color:#9c27b0!important}.md-bg-purple-500{background-color:#9c27b0!important}.md-color-purple-600{color:#8e24aa!important}.md-bg-purple-600{background-color:#8e24aa!important}.md-color-purple-700{color:#7b1fa2!important}.md-bg-purple-700{background-color:#7b1fa2!important}.md-color-purple-800{color:#6a1b9a!important}.md-bg-purple-800{background-color:#6a1b9a!important}.md-color-purple-900{color:#4a148c!important}.md-bg-purple-900{background-color:#4a148c!important}.md-color-purple-A100{color:#ea80fc!important}.md-bg-purple-A100{background-color:#ea80fc!important}.md-color-purple-A200{color:#e040fb!important}.md-bg-purple-A200{background-color:#e040fb!important}.md-color-purple-A400{color:#d500f9!important}.md-bg-purple-A400{background-color:#d500f9!important}.md-color-purple-A700{color:#a0f!important}.md-bg-purple-A700{background-color:#a0f!important}.md-color-deep-purple-50{color:#ede7f6!important}.md-bg-deep-purple-50{background-color:#ede7f6!important}.md-color-deep-purple-100{color:#d1c4e9!important}.md-bg-deep-purple-100{background-color:#d1c4e9!important}.md-color-deep-purple-200{color:#b39ddb!important}.md-bg-deep-purple-200{background-color:#b39ddb!important}.md-color-deep-purple-300{color:#9575cd!important}.md-bg-deep-purple-300{background-color:#9575cd!important}.md-color-deep-purple-400{color:#7e57c2!important}.md-bg-deep-purple-400{background-color:#7e57c2!important}.md-color-deep-purple-500{color:#673ab7!important}.md-bg-deep-purple-500{background-color:#673ab7!important}.md-color-deep-purple-600{color:#5e35b1!important}.md-bg-deep-purple-600{background-color:#5e35b1!important}.md-color-deep-purple-700{color:#512da8!important}.md-bg-deep-purple-700{background-color:#512da8!important}.md-color-deep-purple-800{color:#4527a0!important}.md-bg-deep-purple-800{background-color:#4527a0!important}.md-color-deep-purple-900{color:#311b92!important}.md-bg-deep-purple-900{background-color:#311b92!important}.md-color-deep-purple-A100{color:#b388ff!important}.md-bg-deep-purple-A100{background-color:#b388ff!important}.md-color-deep-purple-A200{color:#7c4dff!important}.md-bg-deep-purple-A200{background-color:#7c4dff!important}.md-color-deep-purple-A400{color:#651fff!important}.md-bg-deep-purple-A400{background-color:#651fff!important}.md-color-deep-purple-A700{color:#6200ea!important}.md-bg-deep-purple-A700{background-color:#6200ea!important}.md-color-indigo-50{color:#e8eaf6!important}.md-bg-indigo-50{background-color:#e8eaf6!important}.md-color-indigo-100{color:#c5cae9!important}.md-bg-indigo-100{background-color:#c5cae9!important}.md-color-indigo-200{color:#9fa8da!important}.md-bg-indigo-200{background-color:#9fa8da!important}.md-color-indigo-300{color:#7986cb!important}.md-bg-indigo-300{background-color:#7986cb!important}.md-color-indigo-400{color:#5c6bc0!important}.md-bg-indigo-400{background-color:#5c6bc0!important}.md-color-indigo-500{color:#3f51b5!important}.md-bg-indigo-500{background-color:#3f51b5!important}.md-color-indigo-600{color:#3949ab!important}.md-bg-indigo-600{background-color:#3949ab!important}.md-color-indigo-700{color:#303f9f!important}.md-bg-indigo-700{background-color:#303f9f!important}.md-color-indigo-800{color:#283593!important}.md-bg-indigo-800{background-color:#283593!important}.md-color-indigo-900{color:#1a237e!important}.md-bg-indigo-900{background-color:#1a237e!important}.md-color-indigo-A100{color:#8c9eff!important}.md-bg-indigo-A100{background-color:#8c9eff!important}.md-color-indigo-A200{color:#536dfe!important}.md-bg-indigo-A200{background-color:#536dfe!important}.md-color-indigo-A400{color:#3d5afe!important}.md-bg-indigo-A400{background-color:#3d5afe!important}.md-color-indigo-A700{color:#304ffe!important}.md-bg-indigo-A700{background-color:#304ffe!important}.md-color-blue-50{color:#e3f2fd!important}.md-bg-blue-50{background-color:#e3f2fd!important}.md-color-blue-100{color:#bbdefb!important}.md-bg-blue-100{background-color:#bbdefb!important}.md-color-blue-200{color:#90caf9!important}.md-bg-blue-200{background-color:#90caf9!important}.md-color-blue-300{color:#64b5f6!important}.md-bg-blue-300{background-color:#64b5f6!important}.md-color-blue-400{color:#42a5f5!important}.md-bg-blue-400{background-color:#42a5f5!important}.md-color-blue-500{color:#2196f3!important}.md-bg-blue-500{background-color:#2196f3!important}.md-color-blue-600{color:#1e88e5!important}.md-bg-blue-600{background-color:#1e88e5!important}.md-color-blue-700{color:#1976d2!important}.md-bg-blue-700{background-color:#1976d2!important}.md-color-blue-800{color:#1565c0!important}.md-bg-blue-800{background-color:#1565c0!important}.md-color-blue-900{color:#0d47a1!important}.md-bg-blue-900{background-color:#0d47a1!important}.md-color-blue-A100{color:#82b1ff!important}.md-bg-blue-A100{background-color:#82b1ff!important}.md-color-blue-A200{color:#448aff!important}.md-bg-blue-A200{background-color:#448aff!important}.md-color-blue-A400{color:#2979ff!important}.md-bg-blue-A400{background-color:#2979ff!important}.md-color-blue-A700{color:#2962ff!important}.md-bg-blue-A700{background-color:#2962ff!important}.md-color-light-blue-50{color:#e1f5fe!important}.md-bg-light-blue-50{background-color:#e1f5fe!important}.md-color-light-blue-100{color:#b3e5fc!important}.md-bg-light-blue-100{background-color:#b3e5fc!important}.md-color-light-blue-200{color:#81d4fa!important}.md-bg-light-blue-200{background-color:#81d4fa!important}.md-color-light-blue-300{color:#4fc3f7!important}.md-bg-light-blue-300{background-color:#4fc3f7!important}.md-color-light-blue-400{color:#29b6f6!important}.md-bg-light-blue-400{background-color:#29b6f6!important}.md-color-light-blue-500{color:#03a9f4!important}.md-bg-light-blue-500{background-color:#03a9f4!important}.md-color-light-blue-600{color:#039be5!important}.md-bg-light-blue-600{background-color:#039be5!important}.md-color-light-blue-700{color:#0288d1!important}.md-bg-light-blue-700{background-color:#0288d1!important}.md-color-light-blue-800{color:#0277bd!important}.md-bg-light-blue-800{background-color:#0277bd!important}.md-color-light-blue-900{color:#01579b!important}.md-bg-light-blue-900{background-color:#01579b!important}.md-color-light-blue-A100{color:#80d8ff!important}.md-bg-light-blue-A100{background-color:#80d8ff!important}.md-color-light-blue-A200{color:#40c4ff!important}.md-bg-light-blue-A200{background-color:#40c4ff!important}.md-color-light-blue-A400{color:#00b0ff!important}.md-bg-light-blue-A400{background-color:#00b0ff!important}.md-color-light-blue-A700{color:#0091ea!important}.md-bg-light-blue-A700{background-color:#0091ea!important}.md-color-cyan-50{color:#e0f7fa!important}.md-bg-cyan-50{background-color:#e0f7fa!important}.md-color-cyan-100{color:#b2ebf2!important}.md-bg-cyan-100{background-color:#b2ebf2!important}.md-color-cyan-200{color:#80deea!important}.md-bg-cyan-200{background-color:#80deea!important}.md-color-cyan-300{color:#4dd0e1!important}.md-bg-cyan-300{background-color:#4dd0e1!important}.md-color-cyan-400{color:#26c6da!important}.md-bg-cyan-400{background-color:#26c6da!important}.md-color-cyan-500{color:#00bcd4!important}.md-bg-cyan-500{background-color:#00bcd4!important}.md-color-cyan-600{color:#00acc1!important}.md-bg-cyan-600{background-color:#00acc1!important}.md-color-cyan-700{color:#0097a7!important}.md-bg-cyan-700{background-color:#0097a7!important}.md-color-cyan-800{color:#00838f!important}.md-bg-cyan-800{background-color:#00838f!important}.md-color-cyan-900{color:#006064!important}.md-bg-cyan-900{background-color:#006064!important}.md-color-cyan-A100{color:#84ffff!important}.md-bg-cyan-A100{background-color:#84ffff!important}.md-color-cyan-A200{color:#18ffff!important}.md-bg-cyan-A200{background-color:#18ffff!important}.md-color-cyan-A400{color:#00e5ff!important}.md-bg-cyan-A400{background-color:#00e5ff!important}.md-color-cyan-A700{color:#00b8d4!important}.md-bg-cyan-A700{background-color:#00b8d4!important}.md-color-teal-50{color:#e0f2f1!important}.md-bg-teal-50{background-color:#e0f2f1!important}.md-color-teal-100{color:#b2dfdb!important}.md-bg-teal-100{background-color:#b2dfdb!important}.md-color-teal-200{color:#80cbc4!important}.md-bg-teal-200{background-color:#80cbc4!important}.md-color-teal-300{color:#4db6ac!important}.md-bg-teal-300{background-color:#4db6ac!important}.md-color-teal-400{color:#26a69a!important}.md-bg-teal-400{background-color:#26a69a!important}.md-color-teal-500{color:#009688!important}.md-bg-teal-500{background-color:#009688!important}.md-color-teal-600{color:#00897b!important}.md-bg-teal-600{background-color:#00897b!important}.md-color-teal-700{color:#00796b!important}.md-bg-teal-700{background-color:#00796b!important}.md-color-teal-800{color:#00695c!important}.md-bg-teal-800{background-color:#00695c!important}.md-color-teal-900{color:#004d40!important}.md-bg-teal-900{background-color:#004d40!important}.md-color-teal-A100{color:#a7ffeb!important}.md-bg-teal-A100{background-color:#a7ffeb!important}.md-color-teal-A200{color:#64ffda!important}.md-bg-teal-A200{background-color:#64ffda!important}.md-color-teal-A400{color:#1de9b6!important}.md-bg-teal-A400{background-color:#1de9b6!important}.md-color-teal-A700{color:#00bfa5!important}.md-bg-teal-A700{background-color:#00bfa5!important}.md-color-green-50{color:#e8f5e9!important}.md-bg-green-50{background-color:#e8f5e9!important}.md-color-green-100{color:#c8e6c9!important}.md-bg-green-100{background-color:#c8e6c9!important}.md-color-green-200{color:#a5d6a7!important}.md-bg-green-200{background-color:#a5d6a7!important}.md-color-green-300{color:#81c784!important}.md-bg-green-300{background-color:#81c784!important}.md-color-green-400{color:#66bb6a!important}.md-bg-green-400{background-color:#66bb6a!important}.md-color-green-500{color:#4caf50!important}.md-bg-green-500{background-color:#4caf50!important}.md-color-green-600{color:#43a047!important}.md-bg-green-600{background-color:#43a047!important}.md-color-green-700{color:#388e3c!important}.md-bg-green-700{background-color:#388e3c!important}.md-color-green-800{color:#2e7d32!important}.md-bg-green-800{background-color:#2e7d32!important}.md-color-green-900{color:#1b5e20!important}.md-bg-green-900{background-color:#1b5e20!important}.md-color-green-A100{color:#b9f6ca!important}.md-bg-green-A100{background-color:#b9f6ca!important}.md-color-green-A200{color:#69f0ae!important}.md-bg-green-A200{background-color:#69f0ae!important}.md-color-green-A400{color:#00e676!important}.md-bg-green-A400{background-color:#00e676!important}.md-color-green-A700{color:#00c853!important}.md-bg-green-A700{background-color:#00c853!important}.md-color-light-green-50{color:#f1f8e9!important}.md-bg-light-green-50{background-color:#f1f8e9!important}.md-color-light-green-100{color:#dcedc8!important}.md-bg-light-green-100{background-color:#dcedc8!important}.md-color-light-green-200{color:#c5e1a5!important}.md-bg-light-green-200{background-color:#c5e1a5!important}.md-color-light-green-300{color:#aed581!important}.md-bg-light-green-300{background-color:#aed581!important}.md-color-light-green-400{color:#9ccc65!important}.md-bg-light-green-400{background-color:#9ccc65!important}.md-color-light-green-500{color:#8bc34a!important}.md-bg-light-green-500{background-color:#8bc34a!important}.md-color-light-green-600{color:#7cb342!important}.md-bg-light-green-600{background-color:#7cb342!important}.md-color-light-green-700{color:#689f38!important}.md-bg-light-green-700{background-color:#689f38!important}.md-color-light-green-800{color:#558b2f!important}.md-bg-light-green-800{background-color:#558b2f!important}.md-color-light-green-900{color:#33691e!important}.md-bg-light-green-900{background-color:#33691e!important}.md-color-light-green-A100{color:#ccff90!important}.md-bg-light-green-A100{background-color:#ccff90!important}.md-color-light-green-A200{color:#b2ff59!important}.md-bg-light-green-A200{background-color:#b2ff59!important}.md-color-light-green-A400{color:#76ff03!important}.md-bg-light-green-A400{background-color:#76ff03!important}.md-color-light-green-A700{color:#64dd17!important}.md-bg-light-green-A700{background-color:#64dd17!important}.md-color-lime-50{color:#f9fbe7!important}.md-bg-lime-50{background-color:#f9fbe7!important}.md-color-lime-100{color:#f0f4c3!important}.md-bg-lime-100{background-color:#f0f4c3!important}.md-color-lime-200{color:#e6ee9c!important}.md-bg-lime-200{background-color:#e6ee9c!important}.md-color-lime-300{color:#dce775!important}.md-bg-lime-300{background-color:#dce775!important}.md-color-lime-400{color:#d4e157!important}.md-bg-lime-400{background-color:#d4e157!important}.md-color-lime-500{color:#cddc39!important}.md-bg-lime-500{background-color:#cddc39!important}.md-color-lime-600{color:#c0ca33!important}.md-bg-lime-600{background-color:#c0ca33!important}.md-color-lime-700{color:#afb42b!important}.md-bg-lime-700{background-color:#afb42b!important}.md-color-lime-800{color:#9e9d24!important}.md-bg-lime-800{background-color:#9e9d24!important}.md-color-lime-900{color:#827717!important}.md-bg-lime-900{background-color:#827717!important}.md-color-lime-A100{color:#f4ff81!important}.md-bg-lime-A100{background-color:#f4ff81!important}.md-color-lime-A200{color:#eeff41!important}.md-bg-lime-A200{background-color:#eeff41!important}.md-color-lime-A400{color:#c6ff00!important}.md-bg-lime-A400{background-color:#c6ff00!important}.md-color-lime-A700{color:#aeea00!important}.md-bg-lime-A700{background-color:#aeea00!important}.md-color-yellow-50{color:#fffde7!important}.md-bg-yellow-50{background-color:#fffde7!important}.md-color-yellow-100{color:#fff9c4!important}.md-bg-yellow-100{background-color:#fff9c4!important}.md-color-yellow-200{color:#fff59d!important}.md-bg-yellow-200{background-color:#fff59d!important}.md-color-yellow-300{color:#fff176!important}.md-bg-yellow-300{background-color:#fff176!important}.md-color-yellow-400{color:#ffee58!important}.md-bg-yellow-400{background-color:#ffee58!important}.md-color-yellow-500{color:#ffeb3b!important}.md-bg-yellow-500{background-color:#ffeb3b!important}.md-color-yellow-600{color:#fdd835!important}.md-bg-yellow-600{background-color:#fdd835!important}.md-color-yellow-700{color:#fbc02d!important}.md-bg-yellow-700{background-color:#fbc02d!important}.md-color-yellow-800{color:#f9a825!important}.md-bg-yellow-800{background-color:#f9a825!important}.md-color-yellow-900{color:#f57f17!important}.md-bg-yellow-900{background-color:#f57f17!important}.md-color-yellow-A100{color:#ffff8d!important}.md-bg-yellow-A100{background-color:#ffff8d!important}.md-color-yellow-A200{color:#ff0!important}.md-bg-yellow-A200{background-color:#ff0!important}.md-color-yellow-A400{color:#ffea00!important}.md-bg-yellow-A400{background-color:#ffea00!important}.md-color-yellow-A700{color:#ffd600!important}.md-bg-yellow-A700{background-color:#ffd600!important}.md-color-amber-50{color:#fff8e1!important}.md-bg-amber-50{background-color:#fff8e1!important}.md-color-amber-100{color:#ffecb3!important}.md-bg-amber-100{background-color:#ffecb3!important}.md-color-amber-200{color:#ffe082!important}.md-bg-amber-200{background-color:#ffe082!important}.md-color-amber-300{color:#ffd54f!important}.md-bg-amber-300{background-color:#ffd54f!important}.md-color-amber-400{color:#ffca28!important}.md-bg-amber-400{background-color:#ffca28!important}.md-color-amber-500{color:#ffc107!important}.md-bg-amber-500{background-color:#ffc107!important}.md-color-amber-600{color:#ffb300!important}.md-bg-amber-600{background-color:#ffb300!important}.md-color-amber-700{color:#ffa000!important}.md-bg-amber-700{background-color:#ffa000!important}.md-color-amber-800{color:#ff8f00!important}.md-bg-amber-800{background-color:#ff8f00!important}.md-color-amber-900{color:#ff6f00!important}.md-bg-amber-900{background-color:#ff6f00!important}.md-color-amber-A100{color:#ffe57f!important}.md-bg-amber-A100{background-color:#ffe57f!important}.md-color-amber-A200{color:#ffd740!important}.md-bg-amber-A200{background-color:#ffd740!important}.md-color-amber-A400{color:#ffc400!important}.md-bg-amber-A400{background-color:#ffc400!important}.md-color-amber-A700{color:#ffab00!important}.md-bg-amber-A700{background-color:#ffab00!important}.md-color-orange-50{color:#fff3e0!important}.md-bg-orange-50{background-color:#fff3e0!important}.md-color-orange-100{color:#ffe0b2!important}.md-bg-orange-100{background-color:#ffe0b2!important}.md-color-orange-200{color:#ffcc80!important}.md-bg-orange-200{background-color:#ffcc80!important}.md-color-orange-300{color:#ffb74d!important}.md-bg-orange-300{background-color:#ffb74d!important}.md-color-orange-400{color:#ffa726!important}.md-bg-orange-400{background-color:#ffa726!important}.md-color-orange-500{color:#ff9800!important}.md-bg-orange-500{background-color:#ff9800!important}.md-color-orange-600{color:#fb8c00!important}.md-bg-orange-600{background-color:#fb8c00!important}.md-color-orange-700{color:#f57c00!important}.md-bg-orange-700{background-color:#f57c00!important}.md-color-orange-800{color:#ef6c00!important}.md-bg-orange-800{background-color:#ef6c00!important}.md-color-orange-900{color:#e65100!important}.md-bg-orange-900{background-color:#e65100!important}.md-color-orange-A100{color:#ffd180!important}.md-bg-orange-A100{background-color:#ffd180!important}.md-color-orange-A200{color:#ffab40!important}.md-bg-orange-A200{background-color:#ffab40!important}.md-color-orange-A400{color:#ff9100!important}.md-bg-orange-A400{background-color:#ff9100!important}.md-color-orange-A700{color:#ff6d00!important}.md-bg-orange-A700{background-color:#ff6d00!important}.md-color-deep-orange-50{color:#fbe9e7!important}.md-bg-deep-orange-50{background-color:#fbe9e7!important}.md-color-deep-orange-100{color:#ffccbc!important}.md-bg-deep-orange-100{background-color:#ffccbc!important}.md-color-deep-orange-200{color:#ffab91!important}.md-bg-deep-orange-200{background-color:#ffab91!important}.md-color-deep-orange-300{color:#ff8a65!important}.md-bg-deep-orange-300{background-color:#ff8a65!important}.md-color-deep-orange-400{color:#ff7043!important}.md-bg-deep-orange-400{background-color:#ff7043!important}.md-color-deep-orange-500{color:#ff5722!important}.md-bg-deep-orange-500{background-color:#ff5722!important}.md-color-deep-orange-600{color:#f4511e!important}.md-bg-deep-orange-600{background-color:#f4511e!important}.md-color-deep-orange-700{color:#e64a19!important}.md-bg-deep-orange-700{background-color:#e64a19!important}.md-color-deep-orange-800{color:#d84315!important}.md-bg-deep-orange-800{background-color:#d84315!important}.md-color-deep-orange-900{color:#bf360c!important}.md-bg-deep-orange-900{background-color:#bf360c!important}.md-color-deep-orange-A100{color:#ff9e80!important}.md-bg-deep-orange-A100{background-color:#ff9e80!important}.md-color-deep-orange-A200{color:#ff6e40!important}.md-bg-deep-orange-A200{background-color:#ff6e40!important}.md-color-deep-orange-A400{color:#ff3d00!important}.md-bg-deep-orange-A400{background-color:#ff3d00!important}.md-color-deep-orange-A700{color:#dd2c00!important}.md-bg-deep-orange-A700{background-color:#dd2c00!important}.md-color-brown-50{color:#efebe9!important}.md-bg-brown-50{background-color:#efebe9!important}.md-color-brown-100{color:#d7ccc8!important}.md-bg-brown-100{background-color:#d7ccc8!important}.md-color-brown-200{color:#bcaaa4!important}.md-bg-brown-200{background-color:#bcaaa4!important}.md-color-brown-300{color:#a1887f!important}.md-bg-brown-300{background-color:#a1887f!important}.md-color-brown-400{color:#8d6e63!important}.md-bg-brown-400{background-color:#8d6e63!important}.md-color-brown-500{color:#795548!important}.md-bg-brown-500{background-color:#795548!important}.md-color-brown-600{color:#6d4c41!important}.md-bg-brown-600{background-color:#6d4c41!important}.md-color-brown-700{color:#5d4037!important}.md-bg-brown-700{background-color:#5d4037!important}.md-color-brown-800{color:#4e342e!important}.md-bg-brown-800{background-color:#4e342e!important}.md-color-brown-900{color:#3e2723!important}.md-bg-brown-900{background-color:#3e2723!important}.md-color-grey-50{color:#fafafa!important}.md-bg-grey-50{background-color:#fafafa!important}.md-color-grey-100{color:#f5f5f5!important}.md-bg-grey-100{background-color:#f5f5f5!important}.md-color-grey-200{color:#eee!important}.md-bg-grey-200{background-color:#eee!important}.md-color-grey-300{color:#e0e0e0!important}.md-bg-grey-300{background-color:#e0e0e0!important}.md-color-grey-400{color:#bdbdbd!important}.md-bg-grey-400{background-color:#bdbdbd!important}.md-color-grey-500{color:#9e9e9e!important}.md-bg-grey-500{background-color:#9e9e9e!important}.md-color-grey-600{color:#757575!important}.md-bg-grey-600{background-color:#757575!important}.md-color-grey-700{color:#616161!important}.md-bg-grey-700{background-color:#616161!important}.md-color-grey-800{color:#424242!important}.md-bg-grey-800{background-color:#424242!important}.md-color-grey-900{color:#212121!important}.md-bg-grey-900{background-color:#212121!important}.md-color-blue-grey-50{color:#eceff1!important}.md-bg-blue-grey-50{background-color:#eceff1!important}.md-color-blue-grey-100{color:#cfd8dc!important}.md-bg-blue-grey-100{background-color:#cfd8dc!important}.md-color-blue-grey-200{color:#b0bec5!important}.md-bg-blue-grey-200{background-color:#b0bec5!important}.md-color-blue-grey-300{color:#90a4ae!important}.md-bg-blue-grey-300{background-color:#90a4ae!important}.md-color-blue-grey-400{color:#78909c!important}.md-bg-blue-grey-400{background-color:#78909c!important}.md-color-blue-grey-500{color:#607d8b!important}.md-bg-blue-grey-500{background-color:#607d8b!important}.md-color-blue-grey-600{color:#546e7a!important}.md-bg-blue-grey-600{background-color:#546e7a!important}.md-color-blue-grey-700{color:#455a64!important}.md-bg-blue-grey-700{background-color:#455a64!important}.md-color-blue-grey-800{color:#37474f!important}.md-bg-blue-grey-800{background-color:#37474f!important}.md-color-blue-grey-900{color:#263238!important}.md-bg-blue-grey-900{background-color:#263238!important}.md-color-white{color:#fff!important}.md-card{background:#fff;position:relative;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);border:none}.md-card+.md-card,.md-card+.uk-grid,.uk-grid+.md-card{margin-top:25px}.md-card .full_width_in_card{padding:16px 24px;background:rgba(0,0,0,.085)}.md-card .md-card-toolbar{height:64px;padding:0 16px;border-bottom:1px solid rgba(0,0,0,.12);background:#fff}.md-card .md-card-toolbar:after,.md-card .md-card-toolbar:before{content:" ";display:table}.md-card .md-card-toolbar:after{clear:both}.md-card .md-card-toolbar-heading-text{font:500 14px/50px Roboto,sans-serif;color:#212121;margin:0;float:left;overflow:hidden;height:48px}.md-card .md-card-toolbar-heading-text.large{font-size:18px;font-weight:400}.md-card .md-card-toolbar .md-toggle-group{float:left;margin:8px 0 0 16px}.md-card .md-card-toolbar .md-toggle-group.md-toggle-group-small{margin-top:10px}.md-card .md-card-toolbar .md-card-toolbar-actions{float:right;padding-top:10px}.md-card .md-card-toolbar .md-card-toolbar-actions .uk-open .md-card-toolbar-icon{background:rgba(0,0,0,.085);color:#212121}.md-card .md-card-toolbar .md-card-toolbar-actions .md-card-dropdown{display:inline-block;position:relative}.md-card .md-card-toolbar .md-card-toolbar-actions .selectize-control{min-width:220px;margin-top:-3px}.md-card .md-card-toolbar .md-card-toolbar-actions .selectize-control .selectize-input{min-height:30px;padding:4px 8px}.md-card .md-card-toolbar .md-card-toolbar-actions .selectize-control .selectize-dropdown{margin-top:-34px}.md-card .md-card-toolbar .md-icon+.md-card-dropdown{margin-left:4px}.md-card .md-card-toolbar .md-card-fullscreen-deactivate{margin:9px 8px 0 0}.md-card .md-card-toolbar-input{border:none;font:400 18px/24px Roboto,sans-serif;height:auto;background:0 0!important;padding:12px 0;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box}.md-card .md-card-toolbar .uk-tab{margin-top:-2px;border-bottom:none}.md-card .md-card-toolbar .uk-tab li>a{padding:10px 8px!important}.md-card .md-card-head{height:160px;position:relative;border-bottom:1px solid rgba(0,0,0,.12)}.md-card .md-card-head-menu{position:absolute;right:8px;top:8px}.md-card .md-card-head-avatar{width:82px;height:82px;border-radius:50%;margin-top:16px;border:2px solid #fff;display:inline-block}.md-card .md-card-head-text{padding:8px 16px 16px;font:500 16px/22px Roboto,sans-serif;color:#212121;margin:0}.md-card .md-card-head-text span{display:block;font:400 12px/18px Roboto,sans-serif;margin-top:-2px}.md-card .md-card-head-text.text_dark{color:#212121!important}.md-card .md-card-head-text-over{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.65)),to(rgba(0,0,0,0)));background-image:linear-gradient(to bottom,rgba(0,0,0,.65) 0,rgba(0,0,0,0) 100%)}.md-card .md-card-head-subtext{position:absolute;bottom:10px;left:0;right:0;padding:0 16px;text-align:right;color:#fff}.md-card .md-card-head-subtext span{font-size:26px}.md-card .md-card-head-icon{font-size:48px;color:#fff;vertical-align:middle}.md-card .md-card-head.head_background{background-repeat:no-repeat;background-position:center center;background-size:cover;border-bottom-color:transparent}.md-card .md-card-head.head_background .md-card-head-text{color:#fff}.md-card .md-card-head.head_background_top{background-repeat:no-repeat;background-position:center top}.md-card .md-card-head.head_background_bottom{background-repeat:no-repeat;background-position:center bottom}.md-card .md-card-head .head_chart{height:100px;width:100%;position:absolute!important;left:0;top:40px}.md-card .md-card-head .fitVid_player{width:100%;height:160px;overflow:hidden}.md-card .md-card-head-img{height:100%;width:auto}.md-card .md-card-head iframe{height:160px}.md-card .md-card-content{padding:16px}.md-card .md-card-content.padding-reset{padding:0}.md-card .md-card-content.large-padding{padding:24px 35px}.md-card .md-card-content.small-padding{padding:8px}.md-card .md-card-footer{padding:16px;font-size:14px;line-height:18px}.md-card .md-card-footer .md-card-footer-head{font:500 16px/20px Roboto,sans-serif;margin:0 0 4px}.md-card.md-card-fullscreen{position:fixed;z-index:9998;overflow-x:hidden}.md-card.md-card-fullscreen .md-card-fullscreen-activate{display:none}.md-card .md-card-fullscreen-content{display:none;padding:16px 0}.md-card-fullscreen-content-hidden .md-card .md-card-fullscreen-content{display:block;visibility:hidden;padding:0}.md-card.mdToolbar_fixed{overflow-y:hidden}.md-card.mdToolbar_fixed>.md-card-toolbar{position:fixed;left:0;right:0;top:0;z-index:9999;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23);box-shadow:0 3px 6px rgba(0,0,0,.16),0 3px 6px rgba(0,0,0,.23)}.md-card.mdToolbar_fixed>.md-card-content{overflow-y:scroll;-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;width:100%;top:64px;bottom:0}.md-card.md-card-overlay{overflow:hidden;padding-bottom:54px}.md-card.md-card-overlay .md-card-content{height:142px;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.md-card.md-card-overlay .md-card-content.no_truncate{position:relative}.md-card.md-card-overlay .md-card-content.no_truncate:after{position:absolute;bottom:0;left:0;right:0;height:8px;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(50%,#fff),to(rgba(255,255,255,0)));background-image:linear-gradient(to top,#fff 50%,rgba(255,255,255,0) 100%);display:block;content:'';z-index:10}.md-card.md-card-overlay .md-card-content>pre{margin-top:0;max-height:110px}.md-card.md-card-overlay .md-card-content>pre>code{overflow:hidden}.md-card.md-card-overlay .md-card-overlay-content{position:absolute;top:100%;left:0;right:0;padding:0 16px;margin-top:-54px;border-top:1px solid rgba(0,0,0,.12);text-align:left;bottom:0;background:#fff;z-index:10;-webkit-transition:all 280ms cubic-bezier(.4,0,.2,1);transition:all 280ms cubic-bezier(.4,0,.2,1)}.md-card.md-card-overlay .md-card-overlay-content p{margin:0}.md-card.md-card-overlay .md-card-overlay-content p+*{margin-top:16px}.md-card.md-card-overlay .md-card-overlay-content p+p{margin-top:4px}.md-card.md-card-overlay .md-card-overlay-header{padding:12px 0}.md-card.md-card-overlay .md-card-overlay-header:after,.md-card.md-card-overlay .md-card-overlay-header:before{content:" ";display:table}.md-card.md-card-overlay .md-card-overlay-header:after{clear:both}.md-card.md-card-overlay .md-card-overlay-header h3,.md-card.md-card-overlay .md-card-overlay-header h4{margin:0;text-overflow:ellipsis;display:inline-block;vertical-align:top;white-space:nowrap;overflow:hidden;width:100%;padding-right:32px;-webkit-box-sizing:border-box;box-sizing:border-box}.md-card.md-card-overlay .md-card-overlay-header h3{font:400 16px/30px Roboto,sans-serif}.md-card.md-card-overlay .md-card-overlay-header h4{font:500 14px/30px Roboto,sans-serif}.md-card.md-card-overlay .md-card-overlay-header .md-icon{position:absolute;right:12px;top:11px}.md-card.md-card-overlay-active .md-card-overlay-content{top:-1px;margin-top:0}.md-card.md-card-hover{-webkit-transition:all 280ms cubic-bezier(.4,0,.2,1);transition:all 280ms cubic-bezier(.4,0,.2,1);will-change:box-shadow}.md-card.md-card-hover:hover{-webkit-box-shadow:0 10px 20px rgba(0,0,0,.19),0 6px 6px rgba(0,0,0,.23);box-shadow:0 10px 20px rgba(0,0,0,.19),0 6px 6px rgba(0,0,0,.23)}.uk-sortable-dragged .md-card{-webkit-box-shadow:0 10px 20px rgba(0,0,0,.19),0 6px 6px rgba(0,0,0,.23);box-shadow:0 10px 20px rgba(0,0,0,.19),0 6px 6px rgba(0,0,0,.23)}.uk-sortable-dragged .md-card canvas{margin:0 auto;display:block}.md-card .heading_list{padding:0}.md-card-danger,.md-card-primary,.md-card-success,.md-card-warning{border-left:4px solid transparent}.md-card-primary{border-left-color:#2196f3}.md-card-success{border-left-color:#7cb342}.md-card-danger{border-left-color:#e53935}.md-card-warning{border-left-color:#ffa000}.md-expand,.md-expand-group>*{opacity:0}.md-card-placeholder{min-width:100%}.md-card-list-wrapper,.md-card-list-wrapper *,.md-card-list-wrapper :after,.md-card-list-wrapper :before,.md-card-list-wrapper:after,.md-card-list-wrapper:before{-webkit-box-sizing:border-box;box-sizing:border-box}.md-card-list-wrapper .md-card-list-header{position:absolute;top:-24px;left:0}.md-card-list-wrapper .md-card-list{margin:48px 0 0 0;position:relative}.md-card-list-wrapper .md-card-list:first-child{margin-top:24px}.md-card-list-wrapper .md-card-list>ul{margin:0;padding:0;list-style:none}.md-card-list-wrapper .md-card-list>ul>li{padding:0;margin:0;list-style:none}.md-card-list-wrapper .md-card-list>ul>li{min-height:34px;padding:8px 16px;font-size:13px;-webkit-transition:background 150ms,padding .2s;transition:background 150ms,padding .2s;background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24)}.md-card-list-wrapper .md-card-list>ul>li:after,.md-card-list-wrapper .md-card-list>ul>li:before{content:" ";display:table}.md-card-list-wrapper .md-card-list>ul>li:after{clear:both}.md-card-list-wrapper .md-card-list>ul>li.item-shown{background:#fff;padding:8px 36px}@media only screen and (max-width:767px){.md-card-list-wrapper .md-card-list>ul>li.item-shown .md-card-list-item-subject{clear:both;float:none;padding-top:16px}.md-card-list-wrapper .md-card-list>ul>li.item-shown .md-card-list-item-subject>span{white-space:normal}}.md-card-list-wrapper .md-card-list>ul>li.item-shown .md-card-list-item-sender{width:auto;overflow:hidden}.md-card-list-wrapper .md-card-list>ul>li.item-shown.md-card-list-item-selected{position:relative}.md-card-list-wrapper .md-card-list>ul>li.item-shown.md-card-list-item-selected:before{content:'';position:absolute;display:block;left:0;top:0;bottom:0;width:8px;background:#e3f2fd}.md-card-list-wrapper .md-card-list .md-card-list-item-avatar-wrapper,.md-card-list-wrapper .md-card-list .md-card-list-item-select,.md-card-list-wrapper .md-card-list .md-card-list-item-sender{float:left}.md-card-list-wrapper .md-card-list .md-card-list-item-select{padding:6px 8px 0 0}.md-card-list-wrapper .md-card-list .md-card-list-item-avatar-wrapper,.md-card-list-wrapper .md-card-list .md-card-list-item-date,.md-card-list-wrapper .md-card-list .md-card-list-item-sender,.md-card-list-wrapper .md-card-list .md-card-list-item-subject{padding:0 8px}.md-card-list-wrapper .md-card-list .md-card-list-item-avatar-wrapper .md-card-list-item-avatar{background:#757575;color:#fff;width:34px;border-radius:50%;display:block}.md-card-list-wrapper .md-card-list .md-card-list-item-avatar-wrapper .md-card-list-item-avatar-large{width:82px;border-radius:50%}.md-card-list-wrapper .md-card-list .md-card-list-item-avatar-wrapper span.md-card-list-item-avatar{line-height:34px;text-transform:uppercase;text-align:center}.md-card-list-wrapper .md-card-list .md-card-list-item-sender{width:220px;line-height:34px}.md-card-list-wrapper .md-card-list .md-card-list-item-sender>span{text-overflow:ellipsis;display:inline-block;vertical-align:top;white-space:nowrap;overflow:hidden;width:100%}@media only screen and (max-width:1219px){.md-card-list-wrapper .md-card-list .md-card-list-item-sender{display:none}}.md-card-list-wrapper .md-card-list .md-card-list-item-subject{overflow:hidden;font-weight:500}.md-card-list-wrapper .md-card-list .md-card-list-item-subject>span{line-height:34px;text-overflow:ellipsis;display:inline-block;vertical-align:top;white-space:nowrap;overflow:hidden;width:100%}.md-card-list-wrapper .md-card-list .md-card-list-item-subject .md-card-list-item-sender-small{display:none}@media only screen and (max-width:1219px){.md-card-list-wrapper .md-card-list .md-card-list-item-subject .md-card-list-item-sender-small{display:block}.md-card-list-wrapper .md-card-list .md-card-list-item-subject .md-card-list-item-sender-small+span{line-height:inherit}}.md-card-list-wrapper .md-card-list .md-card-list-item-subject .md-card-list-item-sender-small>span{text-overflow:ellipsis;display:inline-block;vertical-align:top;white-space:nowrap;overflow:hidden;width:100%;font-size:12px;color:#999}.md-card-list-wrapper .md-card-list .md-card-list-item-date{line-height:34px;float:right;color:#999}@media only screen and (max-width:479px){.md-card-list-wrapper .md-card-list .md-card-list-item-date{display:none}}.md-card-list-wrapper .md-card-list .md-card-list-item-menu{float:right;margin:0 0 0 8px;position:relative}.md-card-list-wrapper .md-card-list .md-card-list-item-menu .uk-dropdown .material-icons{margin-right:8px}.md-card-list-wrapper .md-card-list .md-card-list-item-content-wrapper{display:none;clear:both;opacity:0}.md-card-list-wrapper .md-card-list .md-card-list-item-content{padding:16px 16px 0 0;max-height:360px;overflow-x:hidden;margin:0 0 40px;top:20px;position:relative;font-size:14px}.md-card-list-wrapper .md-card-list .md-card-list-item-content+.md-card-list-item-reply{padding-top:10px}.md-card-list-wrapper .md-card-list .md-card-list-item-reply{padding:16px 0}.md-card-list-wrapper .md-card-list .md-card-list-item-selected{background:#e3f2fd}input:not([type]),input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{outline:0}input:not([type]).md-input,input[type=color].md-input,input[type=date].md-input,input[type=datetime-local].md-input,input[type=datetime].md-input,input[type=email].md-input,input[type=month].md-input,input[type=number].md-input,input[type=password].md-input,input[type=search].md-input,input[type=tel].md-input,input[type=text].md-input,input[type=time].md-input,input[type=url].md-input,input[type=week].md-input,select.md-input,textarea.md-input{border-radius:0;border-width:0 0 1px;border-style:solid;border-color:rgba(0,0,0,.12);font:400 15px/18px Roboto,sans-serif;-webkit-box-shadow:inset 0 -1px 0 transparent;box-shadow:inset 0 -1px 0 transparent;-webkit-box-sizing:border-box;box-sizing:border-box;padding:12px 4px;background:0 0;width:100%;display:block}input:not([type]).md-input.md-input-danger,input[type=color].md-input.md-input-danger,input[type=date].md-input.md-input-danger,input[type=datetime-local].md-input.md-input-danger,input[type=datetime].md-input.md-input-danger,input[type=email].md-input.md-input-danger,input[type=month].md-input.md-input-danger,input[type=number].md-input.md-input-danger,input[type=password].md-input.md-input-danger,input[type=search].md-input.md-input-danger,input[type=tel].md-input.md-input-danger,input[type=text].md-input.md-input-danger,input[type=time].md-input.md-input-danger,input[type=url].md-input.md-input-danger,input[type=week].md-input.md-input-danger,select.md-input.md-input-danger,textarea.md-input.md-input-danger{border-color:#e53935}input:not([type]).md-input.md-input-danger:focus,input[type=color].md-input.md-input-danger:focus,input[type=date].md-input.md-input-danger:focus,input[type=datetime-local].md-input.md-input-danger:focus,input[type=datetime].md-input.md-input-danger:focus,input[type=email].md-input.md-input-danger:focus,input[type=month].md-input.md-input-danger:focus,input[type=number].md-input.md-input-danger:focus,input[type=password].md-input.md-input-danger:focus,input[type=search].md-input.md-input-danger:focus,input[type=tel].md-input.md-input-danger:focus,input[type=text].md-input.md-input-danger:focus,input[type=time].md-input.md-input-danger:focus,input[type=url].md-input.md-input-danger:focus,input[type=week].md-input.md-input-danger:focus,select.md-input.md-input-danger:focus,textarea.md-input.md-input-danger:focus{border-bottom-color:#e53935}input:not([type]).md-input.md-input-success,input[type=color].md-input.md-input-success,input[type=date].md-input.md-input-success,input[type=datetime-local].md-input.md-input-success,input[type=datetime].md-input.md-input-success,input[type=email].md-input.md-input-success,input[type=month].md-input.md-input-success,input[type=number].md-input.md-input-success,input[type=password].md-input.md-input-success,input[type=search].md-input.md-input-success,input[type=tel].md-input.md-input-success,input[type=text].md-input.md-input-success,input[type=time].md-input.md-input-success,input[type=url].md-input.md-input-success,input[type=week].md-input.md-input-success,select.md-input.md-input-success,textarea.md-input.md-input-success{border-color:#7cb342}input:not([type]).md-input.md-input-success:focus,input[type=color].md-input.md-input-success:focus,input[type=date].md-input.md-input-success:focus,input[type=datetime-local].md-input.md-input-success:focus,input[type=datetime].md-input.md-input-success:focus,input[type=email].md-input.md-input-success:focus,input[type=month].md-input.md-input-success:focus,input[type=number].md-input.md-input-success:focus,input[type=password].md-input.md-input-success:focus,input[type=search].md-input.md-input-success:focus,input[type=tel].md-input.md-input-success:focus,input[type=text].md-input.md-input-success:focus,input[type=time].md-input.md-input-success:focus,input[type=url].md-input.md-input-success:focus,input[type=week].md-input.md-input-success:focus,select.md-input.md-input-success:focus,textarea.md-input.md-input-success:focus{border-bottom-color:#7cb342}input:not([type]).md-input:focus,input[type=color].md-input:focus,input[type=date].md-input:focus,input[type=datetime-local].md-input:focus,input[type=datetime].md-input:focus,input[type=email].md-input:focus,input[type=month].md-input:focus,input[type=number].md-input:focus,input[type=password].md-input:focus,input[type=search].md-input:focus,input[type=tel].md-input:focus,input[type=text].md-input:focus,input[type=time].md-input:focus,input[type=url].md-input:focus,input[type=week].md-input:focus,select.md-input:focus,textarea.md-input:focus{background:0 0;border-color:rgba(0,0,0,.12)}input:not([type]).md-input-small,input[type=color].md-input-small,input[type=date].md-input-small,input[type=datetime-local].md-input-small,input[type=datetime].md-input-small,input[type=email].md-input-small,input[type=month].md-input-small,input[type=number].md-input-small,input[type=password].md-input-small,input[type=search].md-input-small,input[type=tel].md-input-small,input[type=text].md-input-small,input[type=time].md-input-small,input[type=url].md-input-small,input[type=week].md-input-small,select.md-input-small,textarea.md-input-small{padding:4px}input:not([type]).md-input.uk-form-width-mini,input[type=color].md-input.uk-form-width-mini,input[type=date].md-input.uk-form-width-mini,input[type=datetime-local].md-input.uk-form-width-mini,input[type=datetime].md-input.uk-form-width-mini,input[type=email].md-input.uk-form-width-mini,input[type=month].md-input.uk-form-width-mini,input[type=number].md-input.uk-form-width-mini,input[type=password].md-input.uk-form-width-mini,input[type=search].md-input.uk-form-width-mini,input[type=tel].md-input.uk-form-width-mini,input[type=text].md-input.uk-form-width-mini,input[type=time].md-input.uk-form-width-mini,input[type=url].md-input.uk-form-width-mini,input[type=week].md-input.uk-form-width-mini,select.md-input.uk-form-width-mini,textarea.md-input.uk-form-width-mini{width:40px}input:not([type]).md-input.uk-form-width-small,input[type=color].md-input.uk-form-width-small,input[type=date].md-input.uk-form-width-small,input[type=datetime-local].md-input.uk-form-width-small,input[type=datetime].md-input.uk-form-width-small,input[type=email].md-input.uk-form-width-small,input[type=month].md-input.uk-form-width-small,input[type=number].md-input.uk-form-width-small,input[type=password].md-input.uk-form-width-small,input[type=search].md-input.uk-form-width-small,input[type=tel].md-input.uk-form-width-small,input[type=text].md-input.uk-form-width-small,input[type=time].md-input.uk-form-width-small,input[type=url].md-input.uk-form-width-small,input[type=week].md-input.uk-form-width-small,select.md-input.uk-form-width-small,textarea.md-input.uk-form-width-small{width:130px}input:not([type]).md-input.uk-form-width-medium,input[type=color].md-input.uk-form-width-medium,input[type=date].md-input.uk-form-width-medium,input[type=datetime-local].md-input.uk-form-width-medium,input[type=datetime].md-input.uk-form-width-medium,input[type=email].md-input.uk-form-width-medium,input[type=month].md-input.uk-form-width-medium,input[type=number].md-input.uk-form-width-medium,input[type=password].md-input.uk-form-width-medium,input[type=search].md-input.uk-form-width-medium,input[type=tel].md-input.uk-form-width-medium,input[type=text].md-input.uk-form-width-medium,input[type=time].md-input.uk-form-width-medium,input[type=url].md-input.uk-form-width-medium,input[type=week].md-input.uk-form-width-medium,select.md-input.uk-form-width-medium,textarea.md-input.uk-form-width-medium{width:200px}input:not([type]).md-input.uk-form-width-large,input[type=color].md-input.uk-form-width-large,input[type=date].md-input.uk-form-width-large,input[type=datetime-local].md-input.uk-form-width-large,input[type=datetime].md-input.uk-form-width-large,input[type=email].md-input.uk-form-width-large,input[type=month].md-input.uk-form-width-large,input[type=number].md-input.uk-form-width-large,input[type=password].md-input.uk-form-width-large,input[type=search].md-input.uk-form-width-large,input[type=tel].md-input.uk-form-width-large,input[type=text].md-input.uk-form-width-large,input[type=time].md-input.uk-form-width-large,input[type=url].md-input.uk-form-width-large,input[type=week].md-input.uk-form-width-large,select.md-input.uk-form-width-large,textarea.md-input.uk-form-width-large{width:500px}select.md-input.uk-form-width-mini{width:65px}.md-input-width-small{min-width:80px!important}.md-input-width-medium{min-width:160px!important}.md-input-width-large{min-width:320px!important}textarea.md-input{min-height:80px;resize:none;overflow:hidden;-webkit-transition:height .2s ease-out;transition:height .2s ease-out;line-height:24px}textarea.no_autosize{min-height:inherit;overflow:auto;-webkit-transition:none;transition:none;resize:both}.md-input-wrapper{position:relative;padding-top:4px;width:100%;display:block}.md-input-wrapper .md-input-bar{display:block;position:absolute;bottom:0;left:0;width:100%}.md-input-wrapper .md-input-bar:after,.md-input-wrapper .md-input-bar:before{content:'';display:block;position:absolute;bottom:0;width:0;height:2px;background:#1976d2;-webkit-transition:width .4s cubic-bezier(.4,0,.2,1);transition:width .4s cubic-bezier(.4,0,.2,1)}.md-input-wrapper .md-input-bar:before{left:50%}.md-input-wrapper .md-input-bar:after{right:50%}.md-input-wrapper .md-input-bar.uk-form-width-mini{width:40px}.md-input-wrapper .md-input-bar.uk-form-width-small{width:130px}.md-input-wrapper .md-input-bar.uk-form-width-medium{width:200px}.md-input-wrapper .md-input-bar.uk-form-width-large{width:500px}.md-input-wrapper>label{color:#727272;position:absolute;top:16px;left:4px;right:0;pointer-events:none;-webkit-transition:all 150ms ease-out;transition:all 150ms ease-out}.md-input-wrapper+*{margin-top:10px}.md-input-wrapper.md-input-wrapper-disabled>label{color:rgba(0,0,0,.26)}.md-input-wrapper-count{padding-bottom:24px}.md-input-wrapper-count .md-input-bar{bottom:24px}.md-input-wrapper-count .text-count-wrapper{font-size:12px;position:absolute;right:0;bottom:0;opacity:0;-webkit-transition:opacity .2s ease-in;transition:opacity .2s ease-in}.md-input-wrapper-count>.md-input-wrapper-count .text-count-wrapper{position:absolute;bottom:0;right:0}.md-input-filled>label,.md-input-focus>label{top:-6px;font-size:12px}.md-input-filled.md-input-wrapper-count .text-count-wrapper,.md-input-focus.md-input-wrapper-count .text-count-wrapper{opacity:1}.md-input-focus .md-input-bar:after,.md-input-focus .md-input-bar:before{width:50%}.md-input-wrapper-danger .md-input-bar:after,.md-input-wrapper-danger .md-input-bar:before{background:#e53935}.md-input-wrapper-danger.md-input-wrapper-count .text-count-wrapper{color:#e53935}.md-input-wrapper-success .md-input-bar:after,.md-input-wrapper-success .md-input-bar:before{background:#7cb342}.md-input-wrapper-success.md-input-wrapper-count .text-count-wrapper{color:#7cb342}.md-form-group{position:relative}label.md-label{color:#999;padding:0 6px;font-size:11px}@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:url(../icons/material-design-icons/MaterialIcons-Regular.eot);src:local('Material Icons'),local('MaterialIcons-Regular'),url(../icons/material-design-icons/MaterialIcons-Regular.woff2) format('woff2'),url(../icons/material-design-icons/MaterialIcons-Regular.woff) format('woff'),url(../icons/material-design-icons/MaterialIcons-Regular.ttf) format('truetype')}.material-icons{font-family:'Material Icons';font-weight:400;font-style:normal;font-size:18px;display:inline-block;width:1em;height:1em;line-height:1;text-transform:none;letter-spacing:normal;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;-webkit-font-feature-settings:'liga';font-feature-settings:'liga';vertical-align:-4px;color:rgba(0,0,0,.54)}.material-icons.md-inactive{color:rgba(0,0,0,.26)}.material-icons.md-24{font-size:24px;vertical-align:-8px}.material-icons.md-36{font-size:36px;vertical-align:-16px}.material-icons.md-48{font-size:48px;vertical-align:-24px}.material-icons.md-light{color:#fff}.material-icons.md-light.md-inactive{color:rgba(255,255,255,.3)}.md-list{margin:0;padding:0;list-style:none}.md-list>li{padding:0;margin:0;list-style:none}.md-list,.md-list *,.md-list :after,.md-list :before,.md-list:after,.md-list:before{-webkit-box-sizing:border-box;box-sizing:border-box}.md-list .uk-nestable-list>li,.md-list>li{min-height:48px;padding:8px 4px;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid rgba(0,0,0,.12);position:relative}.md-list .uk-nestable-list>li>.md-list-content,.md-list>li>.md-list-content{overflow:hidden}.md-list .uk-nestable-list>li>.md-list-content>span,.md-list>li>.md-list-content>span{display:block}.md-list .uk-nestable-list>li>.md-list-content .md-list-heading,.md-list>li>.md-list-content .md-list-heading{margin:0;font-weight:500;display:block;overflow:hidden;padding-bottom:1px}.md-list .uk-nestable-list>li>.md-list-content .md-list-menu,.md-list>li>.md-list-content .md-list-menu{float:right}.md-list .uk-nestable-list>li>.md-list-content .md-list-menu .md-list-menu-toggle,.md-list>li>.md-list-content .md-list-menu .md-list-menu-toggle{display:block;font-size:18px;color:rgba(0,0,0,.8);width:28px;height:28px;line-height:28px;border-radius:14px;text-align:center}.md-list .uk-nestable-list>li>.md-list-content .uk-badge,.md-list>li>.md-list-content .uk-badge{float:right;color:#fff!important}.md-list .uk-nestable-list>li>.md-list-content .md-list-action,.md-list>li>.md-list-content .md-list-action{float:right;margin-left:8px;margin-top:2px;display:none}.md-list .uk-nestable-list>li>.md-list-content .md-list-action-placeholder,.md-list>li>.md-list-content .md-list-action-placeholder{float:right;margin-left:8px;display:none;width:32px;height:32px}.md-list .uk-nestable-list>li .md-list-action-dropdown,.md-list>li .md-list-action-dropdown{position:absolute;right:16px;top:10px;display:none}.md-list .uk-nestable-list>li>a.md-list-content,.md-list>li>a.md-list-content{display:block;color:#212121}.md-list .uk-nestable-list>li:last-child,.md-list>li:last-child{border-bottom:none}.md-list .uk-nestable-list>li.md-list-item-active,.md-list>li.md-list-item-active{color:#7cb342;background:#ededed}.md-list .uk-nestable-list>li.md-list-item-disabled>.md-list-content,.md-list>li.md-list-item-disabled>.md-list-content{color:#bdbdbd}.md-list .uk-nestable-list>li.md-list-item-disabled>.md-list-content span,.md-list>li.md-list-item-disabled>.md-list-content span{color:#bdbdbd!important}.md-list .uk-nestable-list>li.heading_list,.md-list>li.heading_list{min-height:32px;padding:32px 8px 16px;border-bottom:none;background:0 0!important;text-transform:uppercase}.md-list .uk-nestable-list>li:hover>.md-list-addon-element .uk-nestable-handle,.md-list>li:hover>.md-list-addon-element .uk-nestable-handle,.uk-touch .md-list .uk-nestable-list>li>.md-list-addon-element .uk-nestable-handle,.uk-touch .md-list>li>.md-list-addon-element .uk-nestable-handle{display:block}.md-list .uk-nestable-list>li:hover>.md-list-content .md-list-action,.md-list .uk-nestable-list>li:hover>.md-list-content .md-list-action-placeholder,.md-list>li:hover>.md-list-content .md-list-action,.md-list>li:hover>.md-list-content .md-list-action-placeholder,.uk-touch .md-list .uk-nestable-list>li>.md-list-content .md-list-action,.uk-touch .md-list .uk-nestable-list>li>.md-list-content .md-list-action-placeholder,.uk-touch .md-list>li>.md-list-content .md-list-action,.uk-touch .md-list>li>.md-list-content .md-list-action-placeholder{display:block}.md-list .uk-nestable-list>li:hover .md-list-action-dropdown,.md-list>li:hover .md-list-action-dropdown,.uk-touch .md-list .uk-nestable-list>li .md-list-action-dropdown,.uk-touch .md-list>li .md-list-action-dropdown{display:block}.md-list .uk-nestable-list>li{margin-left:64px}.md-list-addon>li{margin-left:64px;position:relative}.md-list-addon>li:last-child .md-list-addon-element{border-bottom:none;bottom:0}.md-list-addon>li:first-child .md-list-addon-element{top:0}.md-list-addon>li.md-list-item-active .md-list-addon-element,.md-list-addon>li.md-list-item-active .md-list-addon-element .material-icons{color:#7cb342}.md-list-addon-element{position:absolute;left:-64px;top:-1px;bottom:-1px;width:64px;text-align:center;padding:8px 0;display:block}.md-list-addon-element .element-status{position:absolute;right:12px;top:10px;width:12px;height:12px;border-radius:50%;background:#bdbdbd;border:1px solid #fff}.md-list-addon-element .element-status-danger{background:#e53935}.md-list-addon-element .element-status-success{background:#7cb342}.md-list-addon-element .element-status-warning{background:#ffa000}.md-list-addon-element>.md-list-addon-avatar{margin-top:2px}.md-list-addon-element>.md-list-addon-icon{font-size:28px;margin-top:4px;color:#727272}.md-list-addon-element>.material-icons{margin-top:6px}.md-list-addon-element .icheckbox_md,.md-list-addon-element .iradio_md{margin-top:10px}.md-list-addon-element .uk-nestable-handle{position:absolute;left:-2px;top:12px;display:none}.md-list-interactive li{cursor:pointer}.md-list-bg{background:#fff}.md-list-separated li{background:#fff;padding:8px}.md-list-separated li+li{border-top:none;margin-top:8px}.md-list-bg-no-sep{background:#fff;padding:8px}.md-list-bg-no-sep li>.md-list-content{padding:0 4px}.md-list-outside>li{padding:0}.md-list-outside>li>.md-list-content{padding:8px 16px;display:block;color:#212121}.md-list-outside>li.md-list-item-active,.md-list-outside>li:hover:not(.heading_list){background:rgba(0,0,0,.085)}.md-list-outside>li.heading_list{padding:32px 16px 16px}.md-list-outside.md-list-addon li{margin-left:0}.md-list-outside.md-list-addon li .md-list-addon-element{position:relative;top:auto;left:auto;float:left}.md-list-outside.md-list-addon li .md-list-content{padding-left:0}.md-list .uk-nestable-list{padding-left:0}.md-list .uk-nestable-list .uk-nestable-item{padding-right:0}.md-list .uk-nestable-item+.uk-nestable-item{margin-top:0}.md-list-right.md-list-addon>li{margin-left:0;margin-right:64px}.md-list-right.md-list-addon>li .md-list-addon-element{left:auto;right:-64px}.md-list-borderless>li{border-bottom:none}.uk-touch .md-list-addon-element .uk-nestable-handle{display:block!important}.uk-touch .md-list-content .md-list-action,.uk-touch .md-list-content .md-list-action-placeholder{display:block!important}.uk-touch .md-list-action-dropdown{display:block!important}.md-panel-full{position:relative;overflow:hidden;min-height:100%}.md-panel-full,.md-panel-full *,.md-panel-full :after,.md-panel-full :before,.md-panel-full:after,.md-panel-full:before{-webkit-box-sizing:border-box;box-sizing:border-box}.md-panel-full>.uk-grid{height:100%}.md-panel-full>.uk-grid [class*=uk-width]{height:100%}.md-panel-full .md-panel-full-aside{margin:16px 16px 32px;padding:16px}.md-panel-full .md-panel-full-aside.md-panel-full-aside-bg{background:#fff}.md-panel-full .md-panel-full-content{background:#fff;padding:25px 25px 90px;width:inherit;min-width:100%;min-height:100%}.md-panel-full .md-panel-full-content>.md-panel-full-content-inner{position:relative;z-index:10}.md-panel-full .md-panel-full-content:before{width:inherit;content:'';position:absolute;background:#fff;display:block;right:0;top:0;bottom:0;-webkit-box-shadow:-2px 2px 5px rgba(0,0,0,.26);box-shadow:-2px 2px 5px rgba(0,0,0,.26);z-index:5}.md-panel-full .md-panel-full-content .md-panel-full-content-header{margin-bottom:24px}.md-panel-full .md-panel-full-content .md-panel-full-content-header .md-panel-full-content-menu{float:right}.md-top-bar .md-top-bar-checkbox{padding-top:10px}.md-top-bar .md-top-bar-icons{margin-top:5px}.md-top-bar .md-top-bar-checkbox,.md-top-bar .md-top-bar-icons{display:inline-block}.md-top-bar .md-btn-group{margin-top:4px}.md-top-bar .md-top-bar-actions-left{float:left;padding-left:16px}.md-top-bar .md-top-bar-actions-left .md-btn-group{margin-left:8px}.md-top-bar .md-top-bar-actions-right{float:right;padding-right:16px}.md-top-bar .md-top-bar-actions-right .md-btn-group{margin-right:8px}.md-top-bar .md-btn-small{padding:2px 12px}.md-user-image{width:34px;border-radius:50%}.md-user-image-large{width:82px;border-radius:50%}.md-user-placeholder{background-color:rgba(0,0,0,.085);width:34px;height:34px;border-radius:50%}.md-user-letters{display:inline-block;line-height:35px;width:34px;height:34px;border-radius:50%;text-align:center;text-transform:uppercase;font-weight:500;background-color:rgba(0,0,0,.085)}.md-icon{font-size:24px;line-height:32px!important;height:32px!important;color:#727272;border-radius:50%;cursor:pointer;-webkit-transition:background 280ms ease-out,color 280ms ease-out;transition:background 280ms ease-out,color 280ms ease-out;width:32px!important;text-align:center;-webkit-tap-highlight-color:transparent}.md-icon.active,.md-icon:active,.md-icon:focus,.md-icon:hover{color:#212121;background:rgba(0,0,0,.08)}.md-icon-light{color:#fff}.md-icon-light:active,.md-icon-light:focus,.md-icon-light:hover{color:#fff;background:rgba(0,0,0,.2)}.md-icon-dark{color:#212121}.md-icon-dark:active,.md-icon-dark:focus,.md-icon-dark:hover{color:#212121;background:rgba(255,255,255,.6)}.md-icon+.md-icon{margin-left:4px}.md-icon-btn{display:inline-block}.md-icon-btn.active .md-icon{color:#212121;background:rgba(0,0,0,.08)}button.md-icon{background:0 0;border:none;outline:0}.uk-open .md-icon{color:#212121;background:rgba(0,0,0,.08)}.uk-open .md-icon-light{color:#fff;background:rgba(0,0,0,.2)}.uk-open .md-icon-dark{color:#212121;background:rgba(255,255,255,.6)}.md-list-inputs{margin:0;padding:0;list-style:none}.md-list-inputs>li{padding:0;margin:0;list-style:none}.md-list-inputs li+li{margin-top:8px}.md-list-inputs li .icheckbox_md{float:left}.md-list-inputs li label{overflow:hidden;padding-left:8px;display:block;cursor:pointer}.md-hr{margin:32px 0;height:0;border-top:2px solid rgba(0,0,0,.12)}@-webkit-keyframes hierarchical_show{0%{opacity:0;-webkit-transform:scale3d(.2,.2,2);transform:scale3d(.2,.2,2)}50%{opacity:1}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes hierarchical_show{0%{opacity:0;-webkit-transform:scale3d(.2,.2,2);transform:scale3d(.2,.2,2)}50%{opacity:1}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.hierarchical_show{will-change:transform,opacity}.hierarchical_show>*{visibility:hidden}.hierarchical_show_inView>*{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-timing-function:cubic-bezier(.4,0,.2,1);animation-timing-function:cubic-bezier(.4,0,.2,1);-webkit-animation-duration:.7s;animation-duration:.7s;-webkit-animation-name:hierarchical_show;animation-name:hierarchical_show;visibility:visible}@-webkit-keyframes hierarchical_slide{0%{opacity:0;-webkit-transform:translate3d(0,160%,0);transform:translate3d(0,160%,0)}33%{opacity:1}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes hierarchical_slide{0%{opacity:0;-webkit-transform:translate3d(0,160%,0);transform:translate3d(0,160%,0)}33%{opacity:1}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.hierarchical_slide{will-change:transform,opacity}.hierarchical_slide>*{visibility:hidden}.hierarchical_slide_inView>*{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-timing-function:cubic-bezier(.4,0,.2,1);animation-timing-function:cubic-bezier(.4,0,.2,1);-webkit-animation-duration:.7s;animation-duration:.7s;-webkit-animation-name:hierarchical_slide;animation-name:hierarchical_slide;visibility:visible}.fast_animation{-webkit-animation-duration:350ms;animation-duration:350ms}html{background:#fff}body{font:400 15px/1.42857143 Roboto,sans-serif;-webkit-box-sizing:border-box;box-sizing:border-box;overflow-x:hidden}a,button{outline:0!important}a{color:#1e88e5;-webkit-tap-highlight-color:transparent}a:active,a:hover{color:#0d47a1;text-decoration:none}.uk-text-upper{text-transform:uppercase}.animate>*{visibility:hidden}.animated{visibility:visible}[class*=uk-animation-]{-webkit-animation-timing-function:cubic-bezier(.4,0,.2,1);animation-timing-function:cubic-bezier(.4,0,.2,1);-webkit-animation-duration:840ms;animation-duration:840ms}.heading_a{margin:0;font:300 42px/48px Roboto,sans-serif}.heading_a .sub-heading{font-weight:300;font-size:24px;line-height:30px;display:block;padding-top:10px}@media only screen and (max-width:959px){.heading_a{font:300 32px/36px Roboto,sans-serif}.heading_a .sub-heading{font-size:20px;line-height:24px}}.heading_b{margin:0;font:300 32px/36px Roboto,sans-serif}.heading_b .sub-heading{font-weight:300;font-size:20px;line-height:26px;display:block;padding-top:10px}@media only screen and (max-width:959px){.heading_b{font:300 28px/32px Roboto,sans-serif}.heading_b .sub-heading{font-size:18px;line-height:22px}}.heading_c{margin:0;font:400 24px/28px Roboto,sans-serif}.heading_c .sub-heading{font-weight:300;font-size:18px;line-height:20px;display:block;padding-top:10px}@media only screen and (max-width:959px){.heading_c{font:300 22px/25px Roboto,sans-serif}.heading_c .sub-heading{font-size:16px;line-height:20px}}.heading_a+.uk-grid,.heading_b+.uk-grid,.heading_c+.uk-grid{margin-top:24px}.heading_a .material-icons,.heading_b .material-icons,.heading_c .material-icons{vertical-align:middle}.heading_light,.heading_light .sub-heading{color:#fff}.icon_large{font-size:64px}@media only screen and (max-width:959px){.icon_large{font-size:48px}}.icon_dark{color:#727272}#header_main{-webkit-transition:all 280ms cubic-bezier(.4,0,.2,1);transition:all 280ms cubic-bezier(.4,0,.2,1);position:relative;z-index:10}#header_main .uk-navbar{background:#fff}#header_main .uk-navbar-nav>li>a{color:#727272;text-transform:uppercase;font-size:14px;font-family:Roboto,sans-serif;font-weight:500;-webkit-box-shadow:inset 0 -4px 0 rgba(255,255,255,0);box-shadow:inset 0 -4px 0 rgba(255,255,255,0);background:0 0!important;-webkit-transition:all 280ms cubic-bezier(.4,0,.2,1);transition:all 280ms cubic-bezier(.4,0,.2,1)}#header_main .uk-navbar-nav>li>a:active,#header_main .uk-navbar-nav>li>a:hover{color:#727272}#header_main .uk-navbar-nav>li.current_active a{-webkit-box-shadow:inset 0 -4px 0 #7cb342;box-shadow:inset 0 -4px 0 #7cb342}#header_main.header-light{background:#fff}#header_main .header_cta{margin-top:14px}@media only screen and (max-width:959px){#header_main .header_cta{margin-top:6px}}#mobile_navigation_toggle{display:none}#mobile_navigation .uk-offcanvas-bar{background:#fff;-webkit-box-shadow:2px 2px 5px rgba(0,0,0,.26);box-shadow:2px 2px 5px rgba(0,0,0,.26);-webkit-transition:-webkit-transform 280ms cubic-bezier(.4,0,.2,1);transition:-webkit-transform 280ms cubic-bezier(.4,0,.2,1);transition:transform 280ms cubic-bezier(.4,0,.2,1);transition:transform 280ms cubic-bezier(.4,0,.2,1),-webkit-transform 280ms cubic-bezier(.4,0,.2,1)}#mobile_navigation .uk-offcanvas-bar:after{display:none}#mobile_navigation .uk-offcanvas-bar ul{margin:32px 0 0 0;padding:0;list-style:none}#mobile_navigation .uk-offcanvas-bar ul>li{padding:0;margin:0;list-style:none}#mobile_navigation .uk-offcanvas-bar ul li a{display:block;font-size:16px;font-weight:500;line-height:25px;padding:8px 20px;color:#212121}#mobile_navigation .uk-offcanvas-bar ul li a small{font-size:12px;color:#727272;display:block;margin-top:-2px}#mobile_navigation .uk-offcanvas-bar ul li a .menu_icon{width:48px;text-align:left;display:inline-block;color:#727272;float:left}#mobile_navigation .uk-offcanvas-bar ul li a .menu_icon .material-icons{font-size:24px;vertical-align:top}#mobile_navigation .uk-offcanvas-bar ul li a .menu_title{display:block;overflow:hidden}.uk-offcanvas-page{-webkit-transition:margin 280ms cubic-bezier(.4,0,.2,1);transition:margin 280ms cubic-bezier(.4,0,.2,1)}.header_sticky{padding-top:64px}@media only screen and (max-width:959px){.header_sticky{padding-top:48px}}.header_sticky #header_main{position:fixed;top:0;left:0;right:0;z-index:1000}.header_shadow #header_main{-webkit-box-shadow:0 2px 6px rgba(0,0,0,.25);box-shadow:0 2px 6px rgba(0,0,0,.25)}.banner{color:#fff;position:relative}.banner .uk-slideshow,.banner .uk-slideshow>li{height:640px}.banner .uk-slideshow>li{background-size:100% auto;background-position:center center;background-repeat:no-repeat}.banner .uk-slideshow>li .slide_content_a{margin:160px 0 0 640px}.banner .uk-slideshow>li .slide_content_b{margin:320px 0 0 0;background:rgba(0,0,0,.4);padding:24px}.banner .uk-slideshow>li .slide_content_c{margin:120px 540px 0 0}.banner .uk-slideshow>li .slide_content_c .slide_header,.banner .uk-slideshow>li .slide_content_c p{color:#212121}.banner .uk-slideshow>li .slide_header{color:#fff;font:400 38px/42px Roboto,sans-serif;margin:0 0 18px}.banner .uk-slideshow>li p{margin:0;font-size:20px;font-weight:300}.banner .uk-slideshow>li p+*{margin-top:32px}.banner .slide_navigation{display:none}.banner:hover .slide_navigation{display:block}.uk-touch .slide_navigation{display:block!important}.uk-slidenav{position:absolute;top:50%;margin-top:-30px;color:#fff!important;background:rgba(0,0,0,.2);border-radius:12px;font-size:48px;-webkit-transition:all 280ms cubic-bezier(.4,0,.2,1);transition:all 280ms cubic-bezier(.4,0,.2,1)}.uk-slidenav-previous{left:16px}.uk-slidenav-previous:before{position:relative;left:-2px;top:-2px}.uk-slidenav-next{right:16px}.uk-slidenav-next:before{position:relative;right:-2px;top:-2px}.uk-slidenav:active,.uk-slidenav:hover{background:rgba(0,0,0,.6);border-radius:50%}.uk-dotnav>li{border:2px solid rgba(255,255,255,.8);padding:2px;margin-right:6px;border-radius:50%}.uk-dotnav>li.uk-active{border-color:#fff}.uk-dotnav>li.uk-active>a{background:#7cb342}.uk-dotnav>li>a{margin:0;width:14px;height:14px}.section{padding:48px 0;position:relative}.section_large{padding:64px 0}.section_dark{color:#fff}.section_gallery{position:relative}.section_gallery .slide_navigation{display:none}.section_gallery:hover .slide_navigation{display:block}[class*=uk-width].uk-container-center{float:none}@media only screen and (max-width:1219px){.banner .uk-slideshow,.banner .uk-slideshow>li{height:auto;min-height:360px}.banner .uk-slideshow>li .slide_content_a,.banner .uk-slideshow>li .slide_content_b,.banner .uk-slideshow>li .slide_content_c{margin:0;position:absolute;left:0;right:0;top:0;bottom:0;background:rgba(0,0,0,.4);padding:48px 48px 0;text-align:center}.banner .uk-slideshow>li .slide_header{margin-bottom:20px;color:#fff!important}.banner .uk-slideshow>li p{font-size:20px;color:#fff!important}.banner .uk-slideshow>li p+*{margin-top:24px}}@media only screen and (max-width:959px){#header_main{height:48px}#header_main .uk-navbar-brand{line-height:48px;padding:0}#main_navigation{display:none}#mobile_navigation_toggle{padding:12px 4px 10px;display:inline-block}#mobile_navigation_toggle i{font-size:24px}}@media only screen and (max-width:767px){.banner .uk-slideshow>li{background-size:auto 100%}.banner .uk-slideshow>li .slide_content_a,.banner .uk-slideshow>li .slide_content_b,.banner .uk-slideshow>li .slide_content_c{margin:0;position:absolute;left:0;right:0;top:0;bottom:0;background:rgba(0,0,0,.4);padding:24px 12px;text-align:center}.banner .uk-slideshow>li .slide_header{font:400 24px/28px Roboto,sans-serif;margin-bottom:6px;color:#fff!important}.banner .uk-slideshow>li p{font-size:15px;color:#fff!important}.banner .uk-slideshow>li p+*{margin-top:24px}.uk-container{padding-left:15px;padding-right:15px}}
+/*# sourceMappingURL=main.min.css.map */

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/css/main.min.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/reusable-components.module.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/reusable-components.module.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/reusable-components.module.ts	(revision 60863)
@@ -0,0 +1,52 @@
+/**
+ * Created by stefania on 4/6/17.
+ */
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { RouterModule } from '@angular/router';
+import { FormsModule, ReactiveFormsModule } from '@angular/forms';
+import { HttpClientModule } from '@angular/common/http';
+import { AsideHelpContentComponent, HelpContentComponent } from './help-content.component';
+import { HelpContentService } from '../../services/help-content.service';
+import { FooterComponent } from '../footer/footer.component';
+import { ReadMoreComponent, ReadMoreTextComponent } from './read-more.component';
+import { TopmenuComponent } from '../topmenu/top-menu.component';
+
+const myGroups = [
+];
+
+@NgModule({
+  imports: [
+    CommonModule,
+    RouterModule,
+    // TabsModule.forRoot(),
+    // ModalModule.forRoot(),
+    FormsModule,
+    ReactiveFormsModule,
+    HttpClientModule
+  ],
+  declarations: [
+    HelpContentComponent,
+    AsideHelpContentComponent,
+    // TopmenuComponent,
+    FooterComponent,
+    ReadMoreComponent,
+    ReadMoreTextComponent,
+    ...myGroups
+  ],
+  exports: [
+    HelpContentComponent,
+    AsideHelpContentComponent,
+    // TopmenuComponent,
+    FooterComponent,
+    ...myGroups,
+    ReadMoreComponent,
+    ReadMoreTextComponent
+  ],
+  providers: [
+    HelpContentService
+  ],
+})
+
+export class ReusableComponentsModule {
+}

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/reusable-components.module.ts
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/print-function.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/print-function.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/print-function.ts	(revision 60863)
@@ -0,0 +1,46 @@
+import * as jsPDF from 'jspdf';
+import domtoimage from 'dom-to-image';
+
+
+export function printPage(sectionID: string) {
+  const node = document.getElementById(sectionID);
+
+  let img;
+  let filename;
+  let newImage;
+
+
+  domtoimage.toPng(node, {bgcolor: '#fff'}).then(function (dataUrl) {
+
+    img = new Image();
+    img.src = dataUrl;
+    newImage = img.src;
+
+    img.onload = function () {
+
+      const pdfWidth = img.width;
+      const pdfHeight = img.height;
+
+      // FileSaver.saveAs(dataUrl, 'my-pdfimage.png'); // Save as Image
+
+      let doc;
+
+      if (pdfWidth > pdfHeight) {
+        doc = new jsPDF('l', 'px', [pdfWidth, pdfHeight]);
+      } else {
+        doc = new jsPDF('p', 'px', [pdfWidth, pdfHeight]);
+      }
+
+      const width = doc.internal.pageSize.getWidth();
+      const height = doc.internal.pageSize.getHeight();
+
+      doc.addImage(newImage, 'PNG', 10, 10, width, height);
+      filename = 'mypdf_' + '.pdf';
+      doc.save(filename);
+
+    };
+
+  }).catch(function(error) {
+    // Error Handling
+  });
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/help-content.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/help-content.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/help-content.component.ts	(revision 60863)
@@ -0,0 +1,67 @@
+/**
+ * Created by stefania on 7/17/17.
+ */
+import { Component, Input, OnInit } from '@angular/core';
+import { Content, PageContent } from '../../domain/page-content';
+import { HelpContentService } from '../../services/help-content.service';
+import { ActivatedRoute, Router } from '@angular/router';
+
+@Component({
+  selector: 'help-content',
+  template: `
+    <ng-template [ngIf]="contents && contents.length>0">
+      <ng-template ngFor let-content [ngForOf]="contents">
+        <div [innerHTML]="content.content" class="uk-margin-medium-bottom"></div>
+      </ng-template>
+    </ng-template>
+  `,
+})
+
+export class HelpContentComponent implements OnInit {
+
+  @Input('position')
+  position: string;
+
+  contents: Content[];
+  errorMessage: string = null;
+
+  constructor(private _helpContentService: HelpContentService, private route: ActivatedRoute, private router: Router) {
+  }
+
+  ngOnInit() {
+    this.errorMessage = null;
+    setTimeout(() => {
+      this._helpContentService.getActivePageContent( this.router.url ).subscribe(
+        pageContent => this.shiftThroughContent(pageContent),
+        error => this.handleError(<any>error)
+      );
+    }, 50);
+  }
+
+  shiftThroughContent(pageContent: PageContent) {
+    this.contents = pageContent.content[this.position];
+    /*console.log(`help-service for ${this.router.url} -> ${this.position} responded: ${JSON.stringify(this.contents)}`);*/
+  }
+
+  isPresent() {
+    return (this.contents && this.contents.length > 0);
+  }
+
+  handleError(error) {
+    this.errorMessage = 'System error retrieving page content (Server responded: ' + error + ')';
+  }
+}
+
+@Component({
+  selector: 'aside-help-content',
+  template: `
+    <ng-template [ngIf]="contents && contents.length>0">
+      <ng-template ngFor let-content [ngForOf]="contents">
+        <div [innerHTML]="content.content" class="uk-card uk-card-body uk-card-default sidemenu uk-margin-bottom"></div>
+      </ng-template>
+    </ng-template>
+  `,
+})
+export class AsideHelpContentComponent extends HelpContentComponent {
+
+}

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/help-content.component.ts
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/il-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/il-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/il-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/il-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/il-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/bg-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/bg-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/bg-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/bg-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/bg-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.component.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.component.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.component.ts	(revision 60863)
@@ -0,0 +1,140 @@
+/**
+ * angular2-cookie-law
+ *
+ * Copyright 2016-2017, @andreasonny83, All rights reserved.
+ *
+ * @author: @andreasonny83 <andreasonny83@gmail.com>
+ */
+
+import {
+  DomSanitizer,
+  SafeHtml,
+} from '@angular/platform-browser';
+
+import {
+  CookieLawService,
+} from './cookie-law.service';
+import { Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';
+import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';
+
+// import {
+//   closeIcon,
+// } from './icons';
+
+export type CookieLawPosition = 'top' | 'bottom';
+export type CookieLawAnimation = 'topIn' | 'bottomIn' | 'topOut' | 'bottomOut';
+export type CookieLawTarget = '_blank' | '_self';
+
+@Component({
+  selector: 'cookie-law',
+  // encapsulation: ViewEncapsulation.None,
+  animations: [
+    trigger('state', [
+      state('bottomOut', style({ transform: 'translateY(100%)' })),
+      state('topOut', style({ transform: 'translateY(-100%)' })),
+      state('*', style({ transform: 'translateY(0)' })),
+
+      transition('void => topIn', [
+        style({ transform: 'translateY(-100%)' }),
+        animate('1000ms ease-in-out'),
+      ]),
+
+      transition('void => bottomIn', [
+        style({ transform: 'translateY(100%)' }),
+        animate('1000ms ease-in-out'),
+      ]),
+
+      transition('* => *', animate('1000ms ease-out')),
+    ])
+  ],
+  styleUrls: [ './cookie-law.css' ],
+  templateUrl: './cookie-law.html',
+})
+export class CookieLawComponent implements OnInit {
+  public cookieLawSeen: boolean;
+
+  @Input('learnMore')
+  get learnMore() { return this._learnMore; }
+  set learnMore(value: string) {
+    this._learnMore = (value !== null && `${value}` !== 'false') ? value : null;
+  }
+
+  @Input('target')
+  get target() { return this._target; }
+  set target(value: CookieLawTarget) {
+    this._target = (value !== null && `${value}` !== 'false' &&
+                      (`${value}` === '_blank' || `${value}` === '_self')
+                     ) ? value : '_blank';
+  }
+
+  @Input('position')
+  get position() { return this._position; }
+  set position(value: CookieLawPosition) {
+    this._position = (value !== null && `${value}` !== 'false' &&
+                      (`${value}` === 'top' || `${value}` === 'bottom')
+                     ) ? value : 'bottom';
+  }
+
+  @Output('isSeen')
+  private isSeenEvt: EventEmitter<boolean>;
+
+  @HostBinding('attr.seen')
+  public isSeen: boolean;
+
+  private animation: CookieLawAnimation;
+  private closeSvg: SafeHtml;
+  private currentStyles: {};
+  private _learnMore: string;
+  private _target: CookieLawTarget;
+  private _position: CookieLawPosition;
+
+  constructor(
+    private _service: CookieLawService,
+    private domSanitizer: DomSanitizer,
+  ) {
+    this.isSeenEvt = new EventEmitter<boolean>();
+    this.animation = 'topIn';
+    this._position = 'bottom';
+    this.cookieLawSeen = this._service.seen();
+  }
+
+  ngOnInit(): void {
+    if (typeof document !== 'undefined') {
+      this.animation = this.position === 'bottom' ? 'bottomIn' : 'topIn';
+
+      this.closeSvg = `
+            <span class="clickable uk-icon">
+              <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="1">
+                <path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path>
+                <path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path>
+              </svg>
+            </span>`;
+
+      if (this.cookieLawSeen) {
+        this.isSeen = true;
+      }
+
+      this.currentStyles = {
+        'top': this.position === 'top' ? '0' : null,
+        'bottom': this.position === 'top' ? 'initial' : null,
+      };
+    }
+  }
+
+  afterDismissAnimation(evt: AnimationEvent) {
+    if (evt.toState === 'topOut' ||
+        evt.toState === 'bottomOut') {
+      this.isSeen = true;
+      this.isSeenEvt.emit(this.isSeen);
+    }
+  }
+
+  public dismiss(evt?: MouseEvent): void {
+    if (evt) {
+      evt.preventDefault();
+    }
+
+    this._service.storeCookie();
+    this.animation = this.position === 'top' ? 'topOut' : 'bottomOut';
+  }
+}

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.component.ts
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.module.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.module.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.module.ts	(revision 60863)
@@ -0,0 +1,24 @@
+/**
+ * angular2-cookie-law
+ *
+ * Copyright 2016-2017, @andreasonny83, All rights reserved.
+ *
+ * @author: @andreasonny83 <andreasonny83@gmail.com>
+ */
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { CookieLawComponent } from './cookie-law.component';
+import { CookieLawService } from './cookie-law.service';
+
+@NgModule({
+  imports: [ CommonModule ],
+  declarations: [ CookieLawComponent ],
+  providers: [ CookieLawService ],
+  exports: [ CookieLawComponent ]
+})
+export class CookieLawModule { }
+
+export {
+  CookieLawComponent,
+  CookieLawService
+};

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.module.ts
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.service.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.service.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.service.ts	(revision 60863)
@@ -0,0 +1,61 @@
+/**
+ * angular2-cookie-law
+ *
+ * Copyright 2016-2017, @andreasonny83, All rights reserved.
+ *
+ * @author: @andreasonny83 <andreasonny83@gmail.com>
+ */
+
+import { Injectable } from '@angular/core';
+
+@Injectable()
+export class CookieLawService {
+
+
+  seen(): boolean {
+    return this.cookieExists('cookieLawSeen');
+  }
+
+  storeCookie(): void {
+    return this.setCookie('cookieLawSeen');
+  }
+
+  /**
+   * try to read a saved cookie
+   *
+   * @param  {string} name [the cookie name]
+   *
+   * @return {string}      [the cookie's value]
+   */
+  private cookieExists(name: string): boolean {
+    if (typeof document !== 'undefined') {
+      let ca: Array<string> = document.cookie.split(';');
+      let caLen: number = ca.length;
+      let cookieName = name + '=';
+      let c: string;
+
+      for (let i: number = 0; i < caLen; i += 1) {
+        c = ca[i].replace(/^\s\+/g, '');
+        if (c.indexOf(cookieName) !== -1) {
+          return true;
+        }
+      }
+  }
+    return false;
+  }
+
+  /**
+   * store a new cookie in the browser
+   *
+   * @param {string} name [the name for the cookie]
+   */
+  private setCookie(name: string): void {
+    if (typeof document !== 'undefined') {
+      let d:Date = new Date();
+      d.setTime(d.getTime() + 3*30 * 24 * 60 * 60 * 1000); // in 3 months
+      let expires:string = `expires=${d.toUTCString()}`;
+
+      document.cookie = encodeURIComponent(name) + '=true; path=/;  expires='+expires+';';
+    }
+  }
+}

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/app/shared/reusablecomponents/cookie-law/cookie-law.service.ts
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/app/services/smooth-scroll.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/services/smooth-scroll.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/services/smooth-scroll.ts	(revision 60863)
@@ -0,0 +1,69 @@
+import {NavigationEnd, Router} from '@angular/router';
+import {Injectable} from '@angular/core';
+import {Subscription} from 'rxjs';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class SmoothScroll {
+  private interval;
+  private readonly sub;
+  private lastRoute;
+
+  constructor(private router: Router) {
+    this.sub = router.events.subscribe(event => {
+      if (event instanceof NavigationEnd) {
+        if(this.interval) {
+          clearInterval(this.interval);
+        }
+        const fragment = router.parseUrl(router.url).fragment;
+        if (fragment) {
+          let i = 0;
+          this.interval = setInterval(() => {
+            i++;
+            const element = document.getElementById(fragment);
+            if (element) {
+              if(this.interval) {
+                clearInterval(this.interval);
+              }
+              const yOffset = -100;
+              let position = 0;
+              let interval = setInterval(() => {
+                if(position !== element.getBoundingClientRect().top) {
+                  position = element.getBoundingClientRect().top;
+                } else {
+                  clearInterval(interval);
+                  const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;
+                  window.scrollTo({top: y, behavior: 'smooth'});
+                }
+              }, 50);
+            }
+            if(i > 4 && this.interval) {
+              clearInterval(this.interval);
+            }
+          }, 100);
+        } else {
+          if(this.lastRoute !== this.getUrl(event.url)) {
+            window.scrollTo({top: 0});
+          } else {
+            window.scrollTo({top: 0, behavior: "smooth"});
+          }
+        }
+        this.lastRoute = this.getUrl(event.url);
+      }
+    });
+  }
+
+  private getUrl(url: string) {
+    return url.split('?')[0].split('#')[0];
+  }
+
+  public clearSubscriptions() {
+    if(this.sub && this.sub instanceof Subscription) {
+      this.sub.unsubscribe();
+    }
+    if(this.interval) {
+      clearInterval(this.interval);
+    }
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/app/services/help-content.service.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/services/help-content.service.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/services/help-content.service.ts	(revision 60863)
@@ -0,0 +1,46 @@
+/**
+ * Created by stefania on 7/17/17.
+ */
+import { Injectable } from '@angular/core';
+import { environment } from '../../environments/environment';
+import { HttpClient } from '@angular/common/http';
+import { PageContent } from '../domain/page-content';
+import { catchError } from 'rxjs/operators';
+import { throwError } from 'rxjs';
+
+@Injectable()
+export class HelpContentService {
+
+  private _helpServiceUrl = environment.FAQ_ENDPOINT;
+
+  constructor (private httpClient: HttpClient) {
+  }
+
+  getActivePageContent(route: string) {
+    const url = this._helpServiceUrl + '/page/route?q=' + route;
+    console.log(`sending request at: ${url}`);
+
+    return this.httpClient.get<PageContent>(url).pipe(catchError(this.handleError));
+  }
+
+  private extractData(res: Response) {
+    const body = res;
+    return body.body || { };
+  }
+
+  private handleError (error: Response | any) {
+    // In a real world app, we might use a remote logging infrastructure
+    // We'd also dig deeper into the error to get a better message
+    let errMsg = '';
+    console.log(error);
+    if (error instanceof Response) {
+      const body = error.text() || '';
+      errMsg = `${error.status} - ${error.statusText || ''} ${body}`;
+    } else {
+      errMsg = (error.message) ? error.message :
+        error.status ? `${error.status} - ${error.statusText}` : 'Server error';
+      console.error(errMsg); // log to console instead
+    }
+    return throwError(errMsg);
+  }
+}

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/app/services/help-content.service.ts
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/app/app.module.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/app.module.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/app.module.ts	(revision 60863)
@@ -0,0 +1,60 @@
+import { BrowserModule } from '@angular/platform-browser';
+import { NgModule } from '@angular/core';
+
+import { AppRoutingModule } from './app-routing.module';
+import { AppComponent } from './app.component';
+import { ReusableComponentsModule } from './shared/reusablecomponents/reusable-components.module';
+import { HomeComponent } from './pages/home/home.component';
+import { DataService } from './services/data.service';
+import { CountriesTableComponent } from './pages/home/countries-table.component';
+import { DataViewComponent } from './pages/home/data-view.component';
+import { HighchartsChartModule } from 'highcharts-angular';
+import { CountriesMapOverviewComponent } from './pages/home/countries-map-overview.component';
+import { CountryPageComponent } from './pages/countrypage/country-page.component';
+import { CountryMapComponent } from './pages/countrypage/country-map.component';
+import { GaugeChartComponent } from './pages/home/gauge-chart.component';
+import { MethodologyPageComponent } from './pages/methodology/methodology.component';
+import { ContinentOverviewComponent } from './pages/continentoverview/continent-overview.component';
+import { EuropeMapOverviewComponent } from './pages/home/europe-map-overview.component';
+import { DataHandlerService } from './services/data-handler.service';
+
+import { NgxEchartsModule } from 'ngx-echarts';
+import * as echarts from 'echarts';
+import { AutocompleteLibModule } from 'angular-ng-autocomplete';
+import { TopmenuComponent } from './shared/topmenu/top-menu.component';
+import { TreemapHighchartsComponent } from './chart-components/treemap-highcharts/treemap-highcharts.component';
+
+@NgModule({
+  declarations: [
+    AppComponent,
+    HomeComponent,
+    ContinentOverviewComponent,
+    CountriesTableComponent,
+    DataViewComponent,
+    CountriesMapOverviewComponent,
+    EuropeMapOverviewComponent,
+    CountryPageComponent,
+    CountryMapComponent,
+    GaugeChartComponent,
+    MethodologyPageComponent,
+    TopmenuComponent,
+    TreemapHighchartsComponent
+  ],
+  imports: [
+    BrowserModule,
+    AppRoutingModule,
+    ReusableComponentsModule,
+    // NgxEchartsModule.forRoot({
+    //   echarts
+    // }),
+    NgxEchartsModule,
+    HighchartsChartModule,
+    AutocompleteLibModule
+  ],
+  providers: [
+    DataService,
+    DataHandlerService
+  ],
+  bootstrap: [AppComponent]
+})
+export class AppModule { }
Index: modules/open-science-observatory-ui/branches/gradient/src/app/domain/countries.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/domain/countries.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/domain/countries.ts	(revision 60863)
@@ -0,0 +1,54 @@
+export const countries = [
+  {id : 'AL', name : 'Albania'},
+  {id : 'AD', name : 'Andorra'},
+  {id : 'AT', name : 'Austria'},
+  {id : 'BY', name : 'Belarus'},
+  {id : 'BE', name : 'Belgium'},
+  {id : 'BA', name : 'Bosnia and Herzegovina'},
+  {id : 'BG', name : 'Bulgaria'},
+  {id : 'HR', name : 'Croatia'},
+  {id : 'CZ', name : 'Czech Republic'},
+  {id : 'DK', name : 'Denmark'},
+  {id : 'EE', name : 'Estonia'},
+  // {id : 'FO', name : 'Faroe Islands'},
+  {id : 'FI', name : 'Finland'},
+  {id : 'FR', name : 'France'},
+  {id : 'DE', name : 'Germany'},
+  // {id : 'GI', name : 'Gibraltar'},
+  {id : 'GR', name : 'Greece'},
+  // {id : 'GG', name : 'Guernsey'},
+  // {id : 'VA', name : 'Holy See (Vatican City State)'},
+  {id : 'HU', name : 'Hungary'},
+  {id : 'IS', name : 'Iceland'},
+  {id : 'IE', name : 'Ireland'},
+  // {id : 'IM', name : 'Isle of Man'},
+  {id : 'IT', name : 'Italy'},
+  // {id : 'JE', name : 'Jersey'},
+  {id : 'LV', name : 'Latvia'},
+  // {id : 'LI', name : 'Liechtenstein'},
+  {id : 'LT', name : 'Lithuania'},
+  {id : 'LU', name : 'Luxembourg'},
+  {id : 'MT', name : 'Malta'},
+  {id : 'MD', name : 'Moldova, Republic of'},
+  // {id : 'MC', name : 'Monaco'},
+  {id : 'ME', name : 'Montenegro'},
+  {id : 'NL', name : 'Netherlands'},
+  {id : 'MK', name : 'North Macedonia'},
+  {id : 'NO', name : 'Norway'},
+  {id : 'PL', name : 'Poland'},
+  {id : 'PT', name : 'Portugal'},
+  {id : 'RO', name : 'Romania'},
+  {id : 'RU', name : 'Russian Federation'},
+  // {id : 'SM', name : 'San Marino'},
+  {id : 'RS', name : 'Serbia'},
+  {id : 'SK', name : 'Slovakia'},
+  {id : 'SI', name : 'Slovenia'},
+  {id : 'ES', name : 'Spain'},
+  // {id : 'SJ', name : 'Svalbard and Jan Mayen'},
+  {id : 'SE', name : 'Sweden'},
+  {id : 'CH', name : 'Switzerland'},
+  {id : 'TR', name : 'Turkey'},
+  {id : 'UA', name : 'Ukraine'},
+  {id : 'GB', name : 'United Kingdom'},
+  // {id : 'AX', name : 'Åland Islands'}
+  ];
Index: modules/open-science-observatory-ui/branches/gradient/src/app/domain/page-content.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/domain/page-content.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/domain/page-content.ts	(revision 60863)
@@ -0,0 +1,37 @@
+/**
+ * Created by stefania on 7/17/17.
+ */
+
+export class PageContent {
+
+  content: PositionContents;
+
+  route: string;
+  _id: string;
+  name: string;
+}
+
+export interface PositionContents {
+
+  top: Content[];
+  right: Content[];
+  bottom: Content[];
+  left: Content[];
+}
+
+export interface Content {
+
+  _id: string;
+  page: Page | string;
+  placement: string;
+  order: number;
+  content: string;
+  isActive: boolean;
+}
+
+export interface Page {
+  _id: string;
+  route: string;
+  name: string;
+}
+

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/app/domain/page-content.ts
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/app/app.component.spec.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/app/app.component.spec.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/app/app.component.spec.ts	(revision 60863)
@@ -0,0 +1,35 @@
+import { TestBed, async } from '@angular/core/testing';
+import { RouterTestingModule } from '@angular/router/testing';
+import { AppComponent } from './app.component';
+
+describe('AppComponent', () => {
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      imports: [
+        RouterTestingModule
+      ],
+      declarations: [
+        AppComponent
+      ],
+    }).compileComponents();
+  }));
+
+  it('should create the app', () => {
+    const fixture = TestBed.createComponent(AppComponent);
+    const app = fixture.debugElement.componentInstance;
+    expect(app).toBeTruthy();
+  });
+
+  it(`should have as title 'open-science-observatory-ui'`, () => {
+    const fixture = TestBed.createComponent(AppComponent);
+    const app = fixture.debugElement.componentInstance;
+    expect(app.title).toEqual('open-science-observatory-ui');
+  });
+
+  it('should render title in a h1 tag', () => {
+    const fixture = TestBed.createComponent(AppComponent);
+    fixture.detectChanges();
+    const compiled = fixture.debugElement.nativeElement;
+    expect(compiled.querySelector('h1').textContent).toContain('Welcome to open-science-observatory-ui!');
+  });
+});
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fr-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fr-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fr-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fr-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fr-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cz-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cz-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cz-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cz-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cz-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cy-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cy-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cy-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cy-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cy-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ie-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ie-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ie-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ie-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ie-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/il-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/il-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/il-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/il-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/il-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/es-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/es-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/es-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/es-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/es-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/css/uikit.almost-flat.min.css
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/css/uikit.almost-flat.min.css	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/css/uikit.almost-flat.min.css	(revision 60863)
@@ -0,0 +1,2 @@
+/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
+html{font:400 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;background:#fff;color:#444}body{margin:0}a{background:0 0}a:active,a:hover{outline:0}.uk-link,a{color:#07D;text-decoration:none;cursor:pointer}.uk-link:hover,a:hover{color:#059;text-decoration:underline}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}:not(pre)>code,:not(pre)>kbd,:not(pre)>samp{font-size:12px;font-family:Consolas,monospace,serif;color:#D05;white-space:nowrap;padding:0 4px;border:1px solid #ddd;border-radius:3px;background:#fafafa}em{color:#D05}ins{background:#ffa;color:#444;text-decoration:none}mark{background:#ffa;color:#444}q{font-style:italic}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}audio,canvas,iframe,img,svg,video{vertical-align:middle}audio,canvas,img,svg,video{max-width:100%;height:auto;box-sizing:border-box}.uk-img-preserve,.uk-img-preserve audio,.uk-img-preserve canvas,.uk-img-preserve img,.uk-img-preserve svg,.uk-img-preserve video{max-width:none}img{border:0}svg:not(:root){overflow:hidden}blockquote,figure{margin:0}address,blockquote,dl,fieldset,figure,ol,p,pre,ul{margin:0 0 15px 0}*+address,*+blockquote,*+dl,*+fieldset,*+figure,*+ol,*+p,*+pre,*+ul{margin-top:15px}h1,h2,h3,h4,h5,h6{margin:0 0 15px 0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;color:#444;text-transform:none}*+h1,*+h2,*+h3,*+h4,*+h5,*+h6{margin-top:25px}.uk-h1,h1{font-size:36px;line-height:42px}.uk-h2,h2{font-size:24px;line-height:30px}.uk-h3,h3{font-size:18px;line-height:24px}.uk-h4,h4{font-size:16px;line-height:22px}.uk-h5,h5{font-size:14px;line-height:20px}.uk-h6,h6{font-size:12px;line-height:18px}ol,ul{padding-left:30px}ol>li>ol,ol>li>ul,ul>li>ol,ul>li>ul{margin:0}dt{font-weight:700}dd{margin-left:0}hr{box-sizing:content-box;height:0;margin:15px 0;border:0;border-top:1px solid #ddd}address{font-style:normal}blockquote{padding-left:15px;border-left:5px solid #ddd;font-size:16px;line-height:22px;font-style:italic}pre{padding:10px;background:#fafafa;font:12px/18px Consolas,monospace,serif;color:#444;-moz-tab-size:4;tab-size:4;overflow:auto;border:1px solid #ddd;border-radius:3px}::-moz-selection{background:#39f;color:#fff;text-shadow:none}::selection{background:#39f;color:#fff;text-shadow:none}article,aside,details,figcaption,figure,footer,header,main,nav,section,summary{display:block}progress{vertical-align:baseline}audio:not([controls]){display:none}[hidden],template{display:none}iframe{border:0}@media screen and (max-width:400px){@-ms-viewport{width:device-width}}.uk-grid{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0;list-style:none}.uk-grid:after,.uk-grid:before{content:"";display:block;overflow:hidden}.uk-grid:after{clear:both}.uk-grid>*{-ms-flex:none;-webkit-flex:none;flex:none;margin:0;float:left}.uk-grid>*>:last-child{margin-bottom:0}.uk-grid{margin-left:-25px}.uk-grid>*{padding-left:25px}.uk-grid+.uk-grid,.uk-grid-margin,.uk-grid>*>.uk-panel+.uk-panel{margin-top:25px}@media (min-width:1220px){.uk-grid{margin-left:-35px}.uk-grid>*{padding-left:35px}.uk-grid+.uk-grid,.uk-grid-margin,.uk-grid>*>.uk-panel+.uk-panel{margin-top:35px}}.uk-grid-collapse{margin-left:0}.uk-grid-collapse>*{padding-left:0}.uk-grid-collapse+.uk-grid-collapse,.uk-grid-collapse>*>.uk-panel+.uk-panel,.uk-grid-collapse>.uk-grid-margin{margin-top:0}.uk-grid-small{margin-left:-10px}.uk-grid-small>*{padding-left:10px}.uk-grid-small+.uk-grid-small,.uk-grid-small>*>.uk-panel+.uk-panel,.uk-grid-small>.uk-grid-margin{margin-top:10px}.uk-grid-medium{margin-left:-25px}.uk-grid-medium>*{padding-left:25px}.uk-grid-medium+.uk-grid-medium,.uk-grid-medium>*>.uk-panel+.uk-panel,.uk-grid-medium>.uk-grid-margin{margin-top:25px}@media (min-width:960px){.uk-grid-large{margin-left:-35px}.uk-grid-large>*{padding-left:35px}.uk-grid-large+.uk-grid-large,.uk-grid-large-margin,.uk-grid-large>*>.uk-panel+.uk-panel{margin-top:35px}}@media (min-width:1220px){.uk-grid-large{margin-left:-50px}.uk-grid-large>*{padding-left:50px}.uk-grid-large+.uk-grid-large,.uk-grid-large-margin,.uk-grid-large>*>.uk-panel+.uk-panel{margin-top:50px}}.uk-grid-divider:not(:empty){margin-left:-25px;margin-right:-25px}.uk-grid-divider>*{padding-left:25px;padding-right:25px}.uk-grid-divider>[class*=uk-width-9-]:nth-child(n+2),.uk-grid-divider>[class*=uk-width-1-]:not(.uk-width-1-1):nth-child(n+2),.uk-grid-divider>[class*=uk-width-2-]:nth-child(n+2),.uk-grid-divider>[class*=uk-width-3-]:nth-child(n+2),.uk-grid-divider>[class*=uk-width-4-]:nth-child(n+2),.uk-grid-divider>[class*=uk-width-5-]:nth-child(n+2),.uk-grid-divider>[class*=uk-width-6-]:nth-child(n+2),.uk-grid-divider>[class*=uk-width-7-]:nth-child(n+2),.uk-grid-divider>[class*=uk-width-8-]:nth-child(n+2){border-left:1px solid #ddd}@media (min-width:768px){.uk-grid-divider>[class*=uk-width-medium-]:not(.uk-width-medium-1-1):nth-child(n+2){border-left:1px solid #ddd}}@media (min-width:960px){.uk-grid-divider>[class*=uk-width-large-]:not(.uk-width-large-1-1):nth-child(n+2){border-left:1px solid #ddd}}@media (min-width:1220px){.uk-grid-divider:not(:empty){margin-left:-35px;margin-right:-35px}.uk-grid-divider>*{padding-left:35px;padding-right:35px}.uk-grid-divider:empty{margin-top:35px;margin-bottom:35px}}.uk-grid-divider:empty{margin-top:25px;margin-bottom:25px;border-top:1px solid #ddd}.uk-grid-match>*{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.uk-grid-match>*>*{-ms-flex:none;-webkit-flex:none;flex:none;box-sizing:border-box;width:100%}[class*=uk-grid-width]>*{box-sizing:border-box;width:100%}.uk-grid-width-1-2>*{width:50%}.uk-grid-width-1-3>*{width:33.333%}.uk-grid-width-1-4>*{width:25%}.uk-grid-width-1-5>*{width:20%}.uk-grid-width-1-6>*{width:16.666%}.uk-grid-width-1-10>*{width:10%}.uk-grid-width-auto>*{width:auto}@media (min-width:480px){.uk-grid-width-small-1-1>*{width:100%}.uk-grid-width-small-1-2>*{width:50%}.uk-grid-width-small-1-3>*{width:33.333%}.uk-grid-width-small-1-4>*{width:25%}.uk-grid-width-small-1-5>*{width:20%}.uk-grid-width-small-1-6>*{width:16.666%}.uk-grid-width-small-1-10>*{width:10%}}@media (min-width:768px){.uk-grid-width-medium-1-1>*{width:100%}.uk-grid-width-medium-1-2>*{width:50%}.uk-grid-width-medium-1-3>*{width:33.333%}.uk-grid-width-medium-1-4>*{width:25%}.uk-grid-width-medium-1-5>*{width:20%}.uk-grid-width-medium-1-6>*{width:16.666%}.uk-grid-width-medium-1-10>*{width:10%}}@media (min-width:960px){.uk-grid-width-large-1-1>*{width:100%}.uk-grid-width-large-1-2>*{width:50%}.uk-grid-width-large-1-3>*{width:33.333%}.uk-grid-width-large-1-4>*{width:25%}.uk-grid-width-large-1-5>*{width:20%}.uk-grid-width-large-1-6>*{width:16.666%}.uk-grid-width-large-1-10>*{width:10%}}@media (min-width:1220px){.uk-grid-width-xlarge-1-1>*{width:100%}.uk-grid-width-xlarge-1-2>*{width:50%}.uk-grid-width-xlarge-1-3>*{width:33.333%}.uk-grid-width-xlarge-1-4>*{width:25%}.uk-grid-width-xlarge-1-5>*{width:20%}.uk-grid-width-xlarge-1-6>*{width:16.666%}.uk-grid-width-xlarge-1-10>*{width:10%}}[class*=uk-width]{box-sizing:border-box;width:100%}.uk-width-1-1{width:100%}.uk-width-1-2,.uk-width-2-4,.uk-width-3-6,.uk-width-5-10{width:50%}.uk-width-1-3,.uk-width-2-6{width:33.333%}.uk-width-2-3,.uk-width-4-6{width:66.666%}.uk-width-1-4{width:25%}.uk-width-3-4{width:75%}.uk-width-1-5,.uk-width-2-10{width:20%}.uk-width-2-5,.uk-width-4-10{width:40%}.uk-width-3-5,.uk-width-6-10{width:60%}.uk-width-4-5,.uk-width-8-10{width:80%}.uk-width-1-6{width:16.666%}.uk-width-5-6{width:83.333%}.uk-width-1-10{width:10%}.uk-width-3-10{width:30%}.uk-width-7-10{width:70%}.uk-width-9-10{width:90%}@media (min-width:480px){.uk-width-small-1-1{width:100%}.uk-width-small-1-2,.uk-width-small-2-4,.uk-width-small-3-6,.uk-width-small-5-10{width:50%}.uk-width-small-1-3,.uk-width-small-2-6{width:33.333%}.uk-width-small-2-3,.uk-width-small-4-6{width:66.666%}.uk-width-small-1-4{width:25%}.uk-width-small-3-4{width:75%}.uk-width-small-1-5,.uk-width-small-2-10{width:20%}.uk-width-small-2-5,.uk-width-small-4-10{width:40%}.uk-width-small-3-5,.uk-width-small-6-10{width:60%}.uk-width-small-4-5,.uk-width-small-8-10{width:80%}.uk-width-small-1-6{width:16.666%}.uk-width-small-5-6{width:83.333%}.uk-width-small-1-10{width:10%}.uk-width-small-3-10{width:30%}.uk-width-small-7-10{width:70%}.uk-width-small-9-10{width:90%}}@media (min-width:768px){.uk-width-medium-1-1{width:100%}.uk-width-medium-1-2,.uk-width-medium-2-4,.uk-width-medium-3-6,.uk-width-medium-5-10{width:50%}.uk-width-medium-1-3,.uk-width-medium-2-6{width:33.333%}.uk-width-medium-2-3,.uk-width-medium-4-6{width:66.666%}.uk-width-medium-1-4{width:25%}.uk-width-medium-3-4{width:75%}.uk-width-medium-1-5,.uk-width-medium-2-10{width:20%}.uk-width-medium-2-5,.uk-width-medium-4-10{width:40%}.uk-width-medium-3-5,.uk-width-medium-6-10{width:60%}.uk-width-medium-4-5,.uk-width-medium-8-10{width:80%}.uk-width-medium-1-6{width:16.666%}.uk-width-medium-5-6{width:83.333%}.uk-width-medium-1-10{width:10%}.uk-width-medium-3-10{width:30%}.uk-width-medium-7-10{width:70%}.uk-width-medium-9-10{width:90%}}@media (min-width:960px){.uk-width-large-1-1{width:100%}.uk-width-large-1-2,.uk-width-large-2-4,.uk-width-large-3-6,.uk-width-large-5-10{width:50%}.uk-width-large-1-3,.uk-width-large-2-6{width:33.333%}.uk-width-large-2-3,.uk-width-large-4-6{width:66.666%}.uk-width-large-1-4{width:25%}.uk-width-large-3-4{width:75%}.uk-width-large-1-5,.uk-width-large-2-10{width:20%}.uk-width-large-2-5,.uk-width-large-4-10{width:40%}.uk-width-large-3-5,.uk-width-large-6-10{width:60%}.uk-width-large-4-5,.uk-width-large-8-10{width:80%}.uk-width-large-1-6{width:16.666%}.uk-width-large-5-6{width:83.333%}.uk-width-large-1-10{width:10%}.uk-width-large-3-10{width:30%}.uk-width-large-7-10{width:70%}.uk-width-large-9-10{width:90%}}@media (min-width:1220px){.uk-width-xlarge-1-1{width:100%}.uk-width-xlarge-1-2,.uk-width-xlarge-2-4,.uk-width-xlarge-3-6,.uk-width-xlarge-5-10{width:50%}.uk-width-xlarge-1-3,.uk-width-xlarge-2-6{width:33.333%}.uk-width-xlarge-2-3,.uk-width-xlarge-4-6{width:66.666%}.uk-width-xlarge-1-4{width:25%}.uk-width-xlarge-3-4{width:75%}.uk-width-xlarge-1-5,.uk-width-xlarge-2-10{width:20%}.uk-width-xlarge-2-5,.uk-width-xlarge-4-10{width:40%}.uk-width-xlarge-3-5,.uk-width-xlarge-6-10{width:60%}.uk-width-xlarge-4-5,.uk-width-xlarge-8-10{width:80%}.uk-width-xlarge-1-6{width:16.666%}.uk-width-xlarge-5-6{width:83.333%}.uk-width-xlarge-1-10{width:10%}.uk-width-xlarge-3-10{width:30%}.uk-width-xlarge-7-10{width:70%}.uk-width-xlarge-9-10{width:90%}}@media (min-width:768px){[class*=uk-push-],[class*=uk-pull-]{position:relative}.uk-push-1-2,.uk-push-2-4,.uk-push-3-6,.uk-push-5-10{left:50%}.uk-push-1-3,.uk-push-2-6{left:33.333%}.uk-push-2-3,.uk-push-4-6{left:66.666%}.uk-push-1-4{left:25%}.uk-push-3-4{left:75%}.uk-push-1-5,.uk-push-2-10{left:20%}.uk-push-2-5,.uk-push-4-10{left:40%}.uk-push-3-5,.uk-push-6-10{left:60%}.uk-push-4-5,.uk-push-8-10{left:80%}.uk-push-1-6{left:16.666%}.uk-push-5-6{left:83.333%}.uk-push-1-10{left:10%}.uk-push-3-10{left:30%}.uk-push-7-10{left:70%}.uk-push-9-10{left:90%}.uk-pull-1-2,.uk-pull-2-4,.uk-pull-3-6,.uk-pull-5-10{left:-50%}.uk-pull-1-3,.uk-pull-2-6{left:-33.333%}.uk-pull-2-3,.uk-pull-4-6{left:-66.666%}.uk-pull-1-4{left:-25%}.uk-pull-3-4{left:-75%}.uk-pull-1-5,.uk-pull-2-10{left:-20%}.uk-pull-2-5,.uk-pull-4-10{left:-40%}.uk-pull-3-5,.uk-pull-6-10{left:-60%}.uk-pull-4-5,.uk-pull-8-10{left:-80%}.uk-pull-1-6{left:-16.666%}.uk-pull-5-6{left:-83.333%}.uk-pull-1-10{left:-10%}.uk-pull-3-10{left:-30%}.uk-pull-7-10{left:-70%}.uk-pull-9-10{left:-90%}}.uk-panel{display:block;position:relative}.uk-panel,.uk-panel:hover{text-decoration:none}.uk-panel:after,.uk-panel:before{content:"";display:table}.uk-panel:after{clear:both}.uk-panel>:not(.uk-panel-title):last-child{margin-bottom:0}.uk-panel-title{margin-top:0;margin-bottom:15px;font-size:18px;line-height:24px;font-weight:400;text-transform:none;color:#444}.uk-panel-badge{position:absolute;top:0;right:0;z-index:1}.uk-panel-teaser{margin-bottom:15px}.uk-panel-body{padding:15px}.uk-panel-box{padding:15px;background:#fafafa;color:#444;border:1px solid #ddd;border-radius:4px}.uk-panel-box-hover:hover{color:#444}.uk-panel-box .uk-panel-title{color:#444}.uk-panel-box .uk-panel-badge{top:10px;right:10px}.uk-panel-box>.uk-panel-teaser{margin-top:-16px;margin-left:-16px;margin-right:-16px}.uk-panel-box>.uk-nav-side{margin:0 -15px}.uk-panel-box-primary{background-color:#ebf7fd;color:#2d7091;border-color:rgba(45,112,145,.3)}.uk-panel-box-primary-hover:hover{color:#2d7091}.uk-panel-box-primary .uk-panel-title{color:#2d7091}.uk-panel-box-secondary{background-color:#fff;color:#444}.uk-panel-box-secondary-hover:hover{color:#444}.uk-panel-box-secondary .uk-panel-title{color:#444}.uk-panel-hover{padding:15px;color:#444;border:1px solid transparent;border-radius:4px}.uk-panel-hover:hover{background:#fafafa;color:#444;border-color:#ddd}.uk-panel-hover .uk-panel-badge{top:10px;right:10px}.uk-panel-hover>.uk-panel-teaser{margin-top:-16px;margin-left:-16px;margin-right:-16px}.uk-panel-header .uk-panel-title{padding-bottom:10px;border-bottom:1px solid #ddd;color:#444}.uk-panel-space{padding:30px}.uk-panel-space .uk-panel-badge{top:30px;right:30px}.uk-panel+.uk-panel-divider{margin-top:50px!important}.uk-panel+.uk-panel-divider:before{content:"";display:block;position:absolute;top:-25px;left:0;right:0;border-top:1px solid #ddd}@media (min-width:1220px){.uk-panel+.uk-panel-divider{margin-top:70px!important}.uk-panel+.uk-panel-divider:before{top:-35px}}.uk-panel-box .uk-panel-teaser{border-top-left-radius:4px;border-top-right-radius:4px;overflow:hidden;-webkit-transform:translateZ(0)}.uk-block{position:relative;box-sizing:border-box;padding-top:20px;padding-bottom:20px}@media (min-width:768px){.uk-block{padding-top:50px;padding-bottom:50px}}.uk-block:after,.uk-block:before{content:"";display:table}.uk-block:after{clear:both}.uk-block>:last-child{margin-bottom:0}.uk-block-large{padding-top:20px;padding-bottom:20px}@media (min-width:768px){.uk-block-large{padding-top:50px;padding-bottom:50px}}@media (min-width:960px){.uk-block-large{padding-top:100px;padding-bottom:100px}}.uk-block-default{background:#fff}.uk-block-muted{background:#f9f9f9}.uk-block-primary{background:#00a8e6}.uk-block-secondary{background:#222}.uk-block-default+.uk-block-default,.uk-block-muted+.uk-block-muted,.uk-block-primary+.uk-block-primary,.uk-block-secondary+.uk-block-secondary{padding-top:0}.uk-article:after,.uk-article:before{content:"";display:table}.uk-article:after{clear:both}.uk-article>:last-child{margin-bottom:0}.uk-article+.uk-article{margin-top:25px}.uk-article-title{font-size:36px;line-height:42px;font-weight:400;text-transform:none}.uk-article-title a{color:inherit;text-decoration:none}.uk-article-meta{font-size:12px;line-height:18px;color:#999}.uk-article-lead{color:#444;font-size:18px;line-height:24px;font-weight:400}.uk-article-divider{margin-bottom:25px;border-color:#ddd}*+.uk-article-divider{margin-top:25px}.uk-article+.uk-article{padding-top:25px;border-top:1px solid #ddd}.uk-comment-header{margin-bottom:15px;padding:10px;border:1px solid #ddd;border-radius:4px;background:#fafafa}.uk-comment-header:after,.uk-comment-header:before{content:"";display:table}.uk-comment-header:after{clear:both}.uk-comment-avatar{margin-right:15px;float:left}.uk-comment-title{margin:5px 0 0 0;font-size:16px;line-height:22px}.uk-comment-meta{margin:2px 0 0 0;font-size:11px;line-height:16px;color:#999}.uk-comment-body{padding-left:10px;padding-right:10px}.uk-comment-body>:last-child{margin-bottom:0}.uk-comment-list{padding:0;list-style:none}.uk-comment-list .uk-comment+ul{margin:25px 0 0 0;list-style:none}.uk-comment-list .uk-comment+ul>li:nth-child(n+2),.uk-comment-list>li:nth-child(n+2){margin-top:25px}@media (min-width:768px){.uk-comment-list .uk-comment+ul{padding-left:100px}}.uk-comment-primary .uk-comment-header{border-color:rgba(45,112,145,.3);background-color:#ebf7fd;color:#2d7091;text-shadow:0 1px 0 #fff}.uk-cover-background{background-position:50% 50%;background-size:cover;background-repeat:no-repeat}.uk-cover{overflow:hidden}.uk-cover-object{width:auto;height:auto;min-width:100%;min-height:100%;max-width:none;position:relative;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}[data-uk-cover]{position:relative;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.uk-nav,.uk-nav ul{margin:0;padding:0;list-style:none}.uk-nav li>a{display:block;text-decoration:none}.uk-nav>li>a{padding:5px 15px}.uk-nav ul{padding-left:15px}.uk-nav ul a{padding:2px 0}.uk-nav li>a>div{font-size:12px;line-height:18px}.uk-nav-header{padding:5px 15px;text-transform:uppercase;font-weight:700;font-size:12px}.uk-nav-header:not(:first-child){margin-top:15px}.uk-nav-divider{margin:9px 15px}ul.uk-nav-sub{padding:5px 0 5px 15px}.uk-nav-parent-icon>.uk-parent>a:after{content:"\f104";width:20px;margin-right:-10px;float:right;font-family:FontAwesome;text-align:center}.uk-nav-parent-icon>.uk-parent.uk-open>a:after{content:"\f107"}.uk-nav-side>li>a{color:#444}.uk-nav-side>li>a:focus,.uk-nav-side>li>a:hover{background:rgba(0,0,0,.03);color:#444;outline:0;box-shadow:inset 0 0 1px rgba(0,0,0,.06);text-shadow:0 -1px 0 #fff}.uk-nav-side>li.uk-active>a{background:#00a8e6;color:#fff;box-shadow:inset 0 0 5px rgba(0,0,0,.05);text-shadow:0 -1px 0 rgba(0,0,0,.1)}.uk-nav-side .uk-nav-header{color:#444}.uk-nav-side .uk-nav-divider{border-top:1px solid #ddd;box-shadow:0 1px 0 #fff}.uk-nav-side ul a{color:#07D}.uk-nav-side ul a:hover{color:#059}.uk-nav-dropdown>li>a{color:#444}.uk-nav-dropdown>li>a:focus,.uk-nav-dropdown>li>a:hover{background:#00a8e6;color:#fff;outline:0;box-shadow:inset 0 0 5px rgba(0,0,0,.05);text-shadow:0 -1px 0 rgba(0,0,0,.1)}.uk-nav-dropdown .uk-nav-header{color:#999}.uk-nav-dropdown .uk-nav-divider{border-top:1px solid #ddd}.uk-nav-dropdown ul a{color:#07D}.uk-nav-dropdown ul a:hover{color:#059}.uk-nav-navbar>li>a{color:#444}.uk-nav-navbar>li>a:focus,.uk-nav-navbar>li>a:hover{background:#00a8e6;color:#fff;outline:0;box-shadow:inset 0 0 5px rgba(0,0,0,.05);text-shadow:0 -1px 0 rgba(0,0,0,.1)}.uk-nav-navbar .uk-nav-header{color:#999}.uk-nav-navbar .uk-nav-divider{border-top:1px solid #ddd}.uk-nav-navbar ul a{color:#07D}.uk-nav-navbar ul a:hover{color:#059}.uk-nav-offcanvas>li>a{color:#ccc;padding:10px 15px;border-top:1px solid rgba(0,0,0,.3);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);text-shadow:0 1px 0 rgba(0,0,0,.5)}.uk-nav-offcanvas>.uk-open>a,html:not(.uk-touch) .uk-nav-offcanvas>li>a:focus,html:not(.uk-touch) .uk-nav-offcanvas>li>a:hover{background:#404040;color:#fff;outline:0}html .uk-nav.uk-nav-offcanvas>li.uk-active>a{background:#1a1a1a;color:#fff;box-shadow:inset 0 1px 3px rgba(0,0,0,.3)}.uk-nav-offcanvas .uk-nav-header{color:#777;margin-top:0;border-top:1px solid rgba(0,0,0,.3);background:#404040;box-shadow:inset 0 1px 0 rgba(255,255,255,.05);text-shadow:0 1px 0 rgba(0,0,0,.5)}.uk-nav-offcanvas .uk-nav-divider{border-top:1px solid rgba(255,255,255,.01);margin:0;height:4px;background:rgba(0,0,0,.2);box-shadow:inset 0 1px 3px rgba(0,0,0,.3)}.uk-nav-offcanvas ul a{color:#ccc}html:not(.uk-touch) .uk-nav-offcanvas ul a:hover{color:#fff}.uk-nav-offcanvas{border-bottom:1px solid rgba(0,0,0,.3);box-shadow:0 1px 0 rgba(255,255,255,.05)}.uk-nav-offcanvas .uk-nav-sub{border-top:1px solid rgba(0,0,0,.3);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}.uk-navbar{background:#f5f5f5;color:#444;border:1px solid rgba(0,0,0,.06);border-radius:4px}.uk-navbar:after,.uk-navbar:before{content:"";display:table}.uk-navbar:after{clear:both}.uk-navbar-nav{margin:0;padding:0;list-style:none;float:left}.uk-navbar-nav>li{float:left;position:relative}.uk-navbar-nav>li>a{display:block;box-sizing:border-box;text-decoration:none;height:41px;padding:0 15px;line-height:40px;color:#444;font-size:14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;margin-top:-1px;margin-left:-1px;border:1px solid transparent;border-bottom-width:0;text-shadow:0 1px 0 #fff}.uk-navbar-nav>li>a[href='#']{cursor:text}.uk-navbar-nav>li.uk-open>a,.uk-navbar-nav>li:hover>a,.uk-navbar-nav>li>a:focus{background-color:#fafafa;color:#444;outline:0;position:relative;z-index:1;border-left-color:rgba(0,0,0,.1);border-right-color:rgba(0,0,0,.1);border-top-color:rgba(0,0,0,.1)}.uk-navbar-nav>li>a:active{background-color:#eee;color:#444;border-left-color:rgba(0,0,0,.1);border-right-color:rgba(0,0,0,.1);border-top-color:rgba(0,0,0,.2)}.uk-navbar-nav>li.uk-active>a{background-color:#fafafa;color:#444;border-left-color:rgba(0,0,0,.1);border-right-color:rgba(0,0,0,.1);border-top-color:rgba(0,0,0,.1)}.uk-navbar-nav .uk-navbar-nav-subtitle{line-height:28px}.uk-navbar-nav-subtitle>div{margin-top:-6px;font-size:10px;line-height:12px}.uk-navbar-brand,.uk-navbar-content,.uk-navbar-toggle{box-sizing:border-box;display:block;height:41px;padding:0 15px;float:left;margin-top:-1px;text-shadow:0 1px 0 #fff}.uk-navbar-brand:before,.uk-navbar-content:before,.uk-navbar-toggle:before{content:'';display:inline-block;height:100%;vertical-align:middle}.uk-navbar-content+.uk-navbar-content:not(.uk-navbar-center){padding-left:0}.uk-navbar-content>a:not([class]){color:#07D}.uk-navbar-content>a:not([class]):hover{color:#059}.uk-navbar-brand{font-size:18px;color:#444;text-decoration:none}.uk-navbar-brand:focus,.uk-navbar-brand:hover{color:#444;text-decoration:none;outline:0}.uk-navbar-toggle{font-size:18px;color:#444;text-decoration:none}.uk-navbar-toggle:focus,.uk-navbar-toggle:hover{color:#444;text-decoration:none;outline:0}.uk-navbar-toggle:after{content:"\f0c9";font-family:FontAwesome;vertical-align:middle}.uk-navbar-toggle-alt:after{content:"\f002"}.uk-navbar-center{float:none;text-align:center;max-width:50%;margin-left:auto;margin-right:auto}.uk-navbar-flip{float:right}.uk-navbar-nav:first-child>li:first-child>a{border-top-left-radius:4px;border-bottom-left-radius:4px}.uk-navbar-flip .uk-navbar-nav>li>a{margin-left:0;margin-right:-1px}.uk-navbar-flip .uk-navbar-nav:first-child>li:first-child>a{border-top-left-radius:0;border-bottom-left-radius:0}.uk-navbar-flip .uk-navbar-nav:last-child>li:last-child>a{border-top-right-radius:4px;border-bottom-right-radius:4px}.uk-navbar-attached{border-top-color:transparent;border-left-color:transparent;border-right-color:transparent;border-radius:0}.uk-navbar-attached .uk-navbar-nav>li>a{border-radius:0!important}.uk-subnav{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-10px;margin-top:-10px;padding:0;list-style:none}.uk-subnav>*{-ms-flex:none;-webkit-flex:none;flex:none;padding-left:10px;margin-top:10px;position:relative}.uk-subnav:after,.uk-subnav:before{content:"";display:block;overflow:hidden}.uk-subnav:after{clear:both}.uk-subnav>*{float:left}.uk-subnav>*>*{display:inline-block;color:#444}.uk-subnav>*>:focus,.uk-subnav>*>:hover{color:#07D;text-decoration:none}.uk-subnav>.uk-active>*{color:#07D}.uk-subnav-line>:before{content:"";display:inline-block;height:10px;vertical-align:middle}.uk-subnav-line>:nth-child(n+2):before{margin-right:10px;border-left:1px solid #ddd}.uk-subnav-pill>*>*{padding:3px 9px;border-radius:4px}.uk-subnav-pill>*>:focus,.uk-subnav-pill>*>:hover{background:#fafafa;color:#444;text-decoration:none;outline:0;box-shadow:0 0 0 1px rgba(0,0,0,.15)}.uk-subnav-pill>.uk-active>*{background:#00a8e6;color:#fff;box-shadow:inset 0 0 5px rgba(0,0,0,.05)}.uk-subnav>.uk-disabled>*{background:0 0;color:#999;text-decoration:none;cursor:text;box-shadow:none}.uk-breadcrumb{padding:0;list-style:none;font-size:0}.uk-breadcrumb>li{font-size:1rem;vertical-align:top}.uk-breadcrumb>li,.uk-breadcrumb>li>a,.uk-breadcrumb>li>span{display:inline-block}.uk-breadcrumb>li:nth-child(n+2):before{content:"/";display:inline-block;margin:0 8px}.uk-breadcrumb>li:not(.uk-active)>span{color:#999}.uk-pagination{padding:0;list-style:none;text-align:center;font-size:0}.uk-pagination:after,.uk-pagination:before{content:"";display:table}.uk-pagination:after{clear:both}.uk-pagination>li{display:inline-block;font-size:1rem;vertical-align:top}.uk-pagination>li:nth-child(n+2){margin-left:5px}.uk-pagination>li>a,.uk-pagination>li>span{display:inline-block;min-width:16px;padding:3px 5px;line-height:20px;text-decoration:none;box-sizing:content-box;text-align:center;border:1px solid rgba(0,0,0,.06);border-radius:4px}.uk-pagination>li>a{background:#f5f5f5;color:#444;text-shadow:0 1px 0 #fff}.uk-pagination>li>a:focus,.uk-pagination>li>a:hover{background-color:#fafafa;color:#444;outline:0;border-color:rgba(0,0,0,.16)}.uk-pagination>li>a:active{background-color:#eee;color:#444}.uk-pagination>.uk-active>span{background:#00a8e6;color:#fff;border-color:transparent;box-shadow:inset 0 0 5px rgba(0,0,0,.05);text-shadow:0 -1px 0 rgba(0,0,0,.1)}.uk-pagination>.uk-disabled>span{background-color:#fafafa;color:#999;border:1px solid rgba(0,0,0,.06);text-shadow:0 1px 0 #fff}.uk-pagination-previous{float:left}.uk-pagination-next{float:right}.uk-pagination-left{text-align:left}.uk-pagination-right{text-align:right}.uk-tab{margin:0;padding:0;list-style:none;border-bottom:1px solid #ddd}.uk-tab:after,.uk-tab:before{content:"";display:table}.uk-tab:after{clear:both}.uk-tab>li{margin-bottom:-1px;float:left;position:relative}.uk-tab>li>a{display:block;padding:8px 12px 8px 12px;border:1px solid transparent;border-bottom-width:0;color:#07D;text-decoration:none;border-radius:4px 4px 0 0;text-shadow:0 1px 0 #fff}.uk-tab>li:nth-child(n+2)>a{margin-left:5px}.uk-tab>li.uk-open>a,.uk-tab>li>a:focus,.uk-tab>li>a:hover{border-color:rgba(0,0,0,.06);background:#f5f5f5;color:#059;outline:0}.uk-tab>li.uk-open:not(.uk-active)>a,.uk-tab>li:not(.uk-active)>a:focus,.uk-tab>li:not(.uk-active)>a:hover{margin-bottom:1px;padding-bottom:7px}.uk-tab>li.uk-active>a{border-color:#ddd;border-bottom-color:transparent;background:#fff;color:#444}.uk-tab>li.uk-disabled>a{color:#999;cursor:text}.uk-tab>li.uk-disabled.uk-active>a,.uk-tab>li.uk-disabled>a:focus,.uk-tab>li.uk-disabled>a:hover{background:0 0;border-color:transparent}.uk-tab-flip>li{float:right}.uk-tab-flip>li:nth-child(n+2)>a{margin-left:0;margin-right:5px}.uk-tab>li.uk-tab-responsive>a{margin-left:0;margin-right:0}.uk-tab-responsive>a:before{content:"\f0c9\00a0";font-family:FontAwesome}.uk-tab-center{border-bottom:1px solid #ddd}.uk-tab-center-bottom{border-bottom:none;border-top:1px solid #ddd}.uk-tab-center:after,.uk-tab-center:before{content:"";display:table}.uk-tab-center:after{clear:both}.uk-tab-center .uk-tab{position:relative;right:50%;border:none;float:right}.uk-tab-center .uk-tab>li{position:relative;right:-50%}.uk-tab-center .uk-tab>li>a{text-align:center}.uk-tab-bottom{border-top:1px solid #ddd;border-bottom:none}.uk-tab-bottom>li{margin-top:-1px;margin-bottom:0}.uk-tab-bottom>li>a{padding-top:8px;padding-bottom:8px;border-bottom-width:1px;border-top-width:0}.uk-tab-bottom>li.uk-open:not(.uk-active)>a,.uk-tab-bottom>li:not(.uk-active)>a:focus,.uk-tab-bottom>li:not(.uk-active)>a:hover{margin-bottom:0;margin-top:1px;padding-bottom:8px;padding-top:7px}.uk-tab-bottom>li.uk-active>a{border-top-color:transparent;border-bottom-color:#ddd}.uk-tab-grid{margin-left:-5px;border-bottom:none;position:relative;z-index:0}.uk-tab-grid:before{display:block;position:absolute;left:5px;right:0;bottom:-1px;border-top:1px solid #ddd;z-index:-1}.uk-tab-grid>li:first-child>a{margin-left:5px}.uk-tab-grid>li>a{text-align:center}.uk-tab-grid.uk-tab-bottom{border-top:none}.uk-tab-grid.uk-tab-bottom:before{top:-1px;bottom:auto}@media (min-width:768px){.uk-tab-left,.uk-tab-right{border-bottom:none}.uk-tab-left>li,.uk-tab-right>li{margin-bottom:0;float:none}.uk-tab-left>li>a,.uk-tab-right>li>a{padding-top:8px;padding-bottom:8px}.uk-tab-left>li:nth-child(n+2)>a,.uk-tab-right>li:nth-child(n+2)>a{margin-left:0;margin-top:5px}.uk-tab-left>li.uk-active>a,.uk-tab-right>li.uk-active>a{border-color:#ddd}.uk-tab-left{border-right:1px solid #ddd}.uk-tab-left>li{margin-right:-1px}.uk-tab-left>li>a{border-bottom-width:1px;border-right-width:0}.uk-tab-left>li:not(.uk-active)>a:focus,.uk-tab-left>li:not(.uk-active)>a:hover{margin-bottom:0;margin-right:1px;padding-bottom:8px;padding-right:11px}.uk-tab-left>li.uk-active>a{border-right-color:transparent}.uk-tab-right{border-left:1px solid #ddd}.uk-tab-right>li{margin-left:-1px}.uk-tab-right>li>a{border-bottom-width:1px;border-left-width:0}.uk-tab-right>li:not(.uk-active)>a:focus,.uk-tab-right>li:not(.uk-active)>a:hover{margin-bottom:0;margin-left:1px;padding-bottom:8px;padding-left:11px}.uk-tab-right>li.uk-active>a{border-left-color:transparent}}.uk-tab-bottom>li>a{border-radius:0 0 4px 4px}@media (min-width:768px){.uk-tab-left>li>a{border-radius:4px 0 0 4px}.uk-tab-right>li>a{border-radius:0 4px 4px 0}}.uk-thumbnav{display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-left:-10px;margin-top:-10px;padding:0;list-style:none}.uk-thumbnav>*{-ms-flex:none;-webkit-flex:none;flex:none;padding-left:10px;margin-top:10px}.uk-thumbnav:after,.uk-thumbnav:before{content:"";display:block;overflow:hidden}.uk-thumbnav:after{clear:both}.uk-thumbnav>*{float:left}.uk-thumbnav>*>*{display:block;background:#fff}.uk-thumbnav>*>*>img{opacity:.7;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.uk-thumbnav>*>:focus>img,.uk-thumbnav>*>:hover>img{opacity:1}.uk-thumbnav>.uk-active>*>img{opacity:1}.uk-list{padding:0;list-style:none}.uk-list>li:after,.uk-list>li:before{content:"";display:table}.uk-list>li:after{clear:both}.uk-list>li>:last-child{margin-bottom:0}.uk-list ul{margin:0;padding-left:20px;list-style:none}.uk-list-line>li:nth-child(n+2){margin-top:5px;padding-top:5px;border-top:1px solid #ddd}.uk-list-striped>li{padding:5px 5px;border-bottom:1px solid #ddd}.uk-list-striped>li:nth-of-type(odd){background:#fafafa}.uk-list-space>li:nth-child(n+2){margin-top:10px}.uk-list-striped>li:first-child{border-top:1px solid #ddd}@media (min-width:768px){.uk-description-list-horizontal{overflow:hidden}.uk-description-list-horizontal>dt{width:160px;float:left;clear:both;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uk-description-list-horizontal>dd{margin-left:180px}}.uk-description-list-line>dt{font-weight:400}.uk-description-list-line>dt:nth-child(n+2){margin-top:5px;padding-top:5px;border-top:1px solid #ddd}.uk-description-list-line>dd{color:#999}.uk-table{border-collapse:collapse;border-spacing:0;width:100%;margin-bottom:15px}*+.uk-table{margin-top:15px}.uk-table td,.uk-table th{padding:8px 8px;border-bottom:1px solid #ddd}.uk-table th{text-align:left}.uk-table td{vertical-align:top}.uk-table thead th{vertical-align:bottom}.uk-table caption,.uk-table tfoot{font-size:12px;font-style:italic}.uk-table caption{text-align:left;color:#999}.uk-table tbody tr.uk-active{background:#f0f0f0}.uk-table-middle,.uk-table-middle td{vertical-align:middle!important}.uk-table-striped tbody tr:nth-of-type(odd){background:#fafafa}.uk-table-condensed td{padding:4px 8px}.uk-table-hover tbody tr:hover{background:#f0f0f0}.uk-form input,.uk-form select,.uk-form textarea{box-sizing:border-box;margin:0;border-radius:0;font:inherit;color:inherit}.uk-form select{text-transform:none}.uk-form optgroup{font:inherit;font-weight:700}.uk-form input::-moz-focus-inner{border:0;padding:0}.uk-form input[type=checkbox],.uk-form input[type=radio]{padding:0}.uk-form input[type=checkbox]:not(:disabled),.uk-form input[type=radio]:not(:disabled){cursor:pointer}.uk-form input:not([type]),.uk-form input[type=text],.uk-form input[type=password],.uk-form input[type=email],.uk-form input[type=url],.uk-form input[type=search],.uk-form input[type=tel],.uk-form input[type=number],.uk-form input[type=datetime],.uk-form textarea{-webkit-appearance:none}.uk-form input[type=search]::-webkit-search-cancel-button,.uk-form input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.uk-form input[type=number]::-webkit-inner-spin-button,.uk-form input[type=number]::-webkit-outer-spin-button{height:auto}.uk-form fieldset{border:none;margin:0;padding:0}.uk-form textarea{overflow:auto;vertical-align:top}.uk-form ::-moz-placeholder{opacity:1}.uk-form :invalid{box-shadow:none}.uk-form input:not([type=radio]):not([type=checkbox]),.uk-form select{vertical-align:middle}.uk-form>:last-child{margin-bottom:0}.uk-form input:not([type]),.uk-form input[type=text],.uk-form input[type=password],.uk-form input[type=email],.uk-form input[type=url],.uk-form input[type=search],.uk-form input[type=tel],.uk-form input[type=number],.uk-form input[type=datetime],.uk-form input[type=datetime-local],.uk-form input[type=date],.uk-form input[type=month],.uk-form input[type=time],.uk-form input[type=week],.uk-form input[type=color],.uk-form select,.uk-form textarea{height:30px;max-width:100%;padding:4px 6px;border:1px solid #ddd;background:#fff;color:#444;-webkit-transition:all .2s linear;-webkit-transition-property:border,background,color,box-shadow,padding;transition:all .2s linear;transition-property:border,background,color,box-shadow,padding;border-radius:4px}.uk-form input:not([type]):focus,.uk-form input[type=text]:focus,.uk-form input[type=password]:focus,.uk-form input[type=email]:focus,.uk-form input[type=url]:focus,.uk-form input[type=search]:focus,.uk-form input[type=tel]:focus,.uk-form input[type=number]:focus,.uk-form input[type=datetime]:focus,.uk-form input[type=datetime-local]:focus,.uk-form input[type=date]:focus,.uk-form input[type=month]:focus,.uk-form input[type=time]:focus,.uk-form input[type=week]:focus,.uk-form input[type=color]:focus,.uk-form select:focus,.uk-form textarea:focus{border-color:#99baca;outline:0;background:#f5fbfe;color:#444}.uk-form input:not([type]):disabled,.uk-form input[type=text]:disabled,.uk-form input[type=password]:disabled,.uk-form input[type=email]:disabled,.uk-form input[type=url]:disabled,.uk-form input[type=search]:disabled,.uk-form input[type=tel]:disabled,.uk-form input[type=number]:disabled,.uk-form input[type=datetime]:disabled,.uk-form input[type=datetime-local]:disabled,.uk-form input[type=date]:disabled,.uk-form input[type=month]:disabled,.uk-form input[type=time]:disabled,.uk-form input[type=week]:disabled,.uk-form input[type=color]:disabled,.uk-form select:disabled,.uk-form textarea:disabled{border-color:#ddd;background-color:#fafafa;color:#999}.uk-form :-ms-input-placeholder{color:#999!important}.uk-form ::-moz-placeholder{color:#999}.uk-form ::-webkit-input-placeholder{color:#999}.uk-form :disabled:-ms-input-placeholder{color:#999!important}.uk-form :disabled::-moz-placeholder{color:#999}.uk-form :disabled::-webkit-input-placeholder{color:#999}.uk-form legend{width:100%;border:0;padding:0;padding-bottom:15px;font-size:18px;line-height:30px}.uk-form legend:after{content:"";display:block;border-bottom:1px solid #ddd;width:100%}input:not([type]).uk-form-small,input[type].uk-form-small,select.uk-form-small,textarea.uk-form-small{height:25px;padding:3px 3px;font-size:12px}input:not([type]).uk-form-large,input[type].uk-form-large,select.uk-form-large,textarea.uk-form-large{height:40px;padding:8px 6px;font-size:16px}.uk-form select[multiple],.uk-form select[size],.uk-form textarea{height:auto}.uk-form-danger{border-color:#dc8d99!important;background:#fff7f8!important;color:#d85030!important}.uk-form-success{border-color:#8ec73b!important;background:#fafff2!important;color:#659f13!important}.uk-form-blank{border-color:transparent!important;border-style:dashed!important;background:0 0!important}.uk-form-blank:focus{border-color:#ddd!important}input.uk-form-width-mini{width:40px}select.uk-form-width-mini{width:65px}.uk-form-width-small{width:130px}.uk-form-width-medium{width:200px}.uk-form-width-large{width:500px}.uk-form-row:after,.uk-form-row:before{content:"";display:table}.uk-form-row:after{clear:both}.uk-form-row+.uk-form-row{margin-top:15px}.uk-form-help-inline{display:inline-block;margin:0 0 0 10px}.uk-form-help-block{margin:5px 0 0 0}.uk-form-controls>:first-child{margin-top:0}.uk-form-controls>:last-child{margin-bottom:0}.uk-form-controls-condensed{margin:5px 0}.uk-form-stacked .uk-form-label{display:block;margin-bottom:5px;font-weight:700}@media (max-width:959px){.uk-form-horizontal .uk-form-label{display:block;margin-bottom:5px;font-weight:700}}@media (min-width:960px){.uk-form-horizontal .uk-form-label{width:200px;margin-top:5px;float:left}.uk-form-horizontal .uk-form-controls{margin-left:215px}.uk-form-horizontal .uk-form-controls-text{padding-top:5px}}.uk-form-icon{display:inline-block;position:relative;max-width:100%}.uk-form-icon>[class*=uk-icon-]{position:absolute;top:50%;width:30px;margin-top:-7px;font-size:14px;color:#999;text-align:center;pointer-events:none}.uk-form-icon:not(.uk-form-icon-flip)>input{padding-left:30px!important}.uk-form-icon-flip>[class*=uk-icon-]{right:0}.uk-form-icon-flip>input{padding-right:30px!important}.uk-button::-moz-focus-inner{border:0;padding:0}.uk-button{-webkit-appearance:none;margin:0;border:none;overflow:visible;font:inherit;color:#444;text-transform:none;display:inline-block;box-sizing:border-box;padding:0 12px;background:#f5f5f5;vertical-align:middle;line-height:28px;min-height:30px;font-size:1rem;text-decoration:none;text-align:center;border:1px solid rgba(0,0,0,.06);border-radius:4px;text-shadow:0 1px 0 #fff}.uk-button:not(:disabled){cursor:pointer}.uk-button:focus,.uk-button:hover{background-color:#fafafa;color:#444;outline:0;text-decoration:none;border-color:rgba(0,0,0,.16)}.uk-button.uk-active,.uk-button:active{background-color:#eee;color:#444}.uk-button-primary{background-color:#00a8e6;color:#fff}.uk-button-primary:focus,.uk-button-primary:hover{background-color:#35b3ee;color:#fff}.uk-button-primary.uk-active,.uk-button-primary:active{background-color:#0091ca;color:#fff}.uk-button-success{background-color:#8cc14c;color:#fff}.uk-button-success:focus,.uk-button-success:hover{background-color:#8ec73b;color:#fff}.uk-button-success.uk-active,.uk-button-success:active{background-color:#72ae41;color:#fff}.uk-button-danger{background-color:#da314b;color:#fff}.uk-button-danger:focus,.uk-button-danger:hover{background-color:#e4354f;color:#fff}.uk-button-danger.uk-active,.uk-button-danger:active{background-color:#c91032;color:#fff}.uk-button:disabled{background-color:#fafafa;color:#999;border-color:rgba(0,0,0,.06);box-shadow:none;text-shadow:0 1px 0 #fff}.uk-button-link,.uk-button-link.uk-active,.uk-button-link:active,.uk-button-link:disabled,.uk-button-link:focus,.uk-button-link:hover{border-color:transparent;background:0 0;box-shadow:none;text-shadow:none}.uk-button-link{color:#07D}.uk-button-link.uk-active,.uk-button-link:active,.uk-button-link:focus,.uk-button-link:hover{color:#059;text-decoration:underline}.uk-button-link:disabled{color:#999}.uk-button-link:focus{outline:1px dotted}.uk-button-mini{min-height:20px;padding:0 6px;line-height:18px;font-size:11px}.uk-button-small{min-height:25px;padding:0 10px;line-height:23px;font-size:12px}.uk-button-large{min-height:40px;padding:0 15px;line-height:38px;font-size:16px;border-radius:5px}.uk-button-group{display:inline-block;vertical-align:middle;position:relative;font-size:0;white-space:nowrap}.uk-button-group>*{display:inline-block}.uk-button-group .uk-button{vertical-align:top}.uk-button-dropdown{display:inline-block;vertical-align:middle;position:relative}.uk-button-danger,.uk-button-primary,.uk-button-success{box-shadow:inset 0 0 5px rgba(0,0,0,.05);text-shadow:0 -1px 0 rgba(0,0,0,.1)}.uk-button-danger:focus,.uk-button-danger:hover,.uk-button-primary:focus,.uk-button-primary:hover,.uk-button-success:focus,.uk-button-success:hover{border-color:rgba(0,0,0,.21)}.uk-button-group>.uk-button:not(:first-child):not(:last-child),.uk-button-group>div:not(:first-child):not(:last-child) .uk-button{border-left-color:rgba(0,0,0,.1);border-right-color:rgba(0,0,0,.1);border-radius:0}.uk-button-group>.uk-button:first-child,.uk-button-group>div:first-child .uk-button{border-right-color:rgba(0,0,0,.1);border-top-right-radius:0;border-bottom-right-radius:0}.uk-button-group>.uk-button:last-child,.uk-button-group>div:last-child .uk-button{border-left-color:rgba(0,0,0,.1);border-top-left-radius:0;border-bottom-left-radius:0}.uk-button-group>.uk-button:nth-child(n+2),.uk-button-group>div:nth-child(n+2) .uk-button{margin-left:-1px}.uk-button-group .uk-button.uk-active,.uk-button-group .uk-button:active,.uk-button-group .uk-button:hover{position:relative}@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.woff2) format('woff2'),url(../fonts/fontawesome-webfont.woff) format("woff"),url(../fonts/fontawesome-webfont.ttf) format("truetype");font-weight:400;font-style:normal}[class*=uk-icon-]{font-family:FontAwesome;display:inline-block;font-weight:400;font-style:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[class*=uk-icon-],[class*=uk-icon-]:focus,[class*=uk-icon-]:hover{text-decoration:none}.uk-icon-small{font-size:150%;vertical-align:-10%}.uk-icon-medium{font-size:200%;vertical-align:-16%}.uk-icon-large{font-size:250%;vertical-align:-22%}.uk-icon-justify{width:1em;text-align:center}.uk-icon-spin{display:inline-block;-webkit-animation:uk-rotate 2s infinite linear;animation:uk-rotate 2s infinite linear}.uk-icon-hover{color:#999}.uk-icon-hover:hover{color:#444}.uk-icon-button{box-sizing:border-box;display:inline-block;width:35px;height:35px;border-radius:100%;background:#f5f5f5;line-height:35px;color:#444;font-size:18px;text-align:center;border:1px solid #e7e7e7;text-shadow:0 1px 0 #fff}.uk-icon-button:focus,.uk-icon-button:hover{background-color:#fafafa;color:#444;outline:0;border-color:#d3d3d3}.uk-icon-button:active{background-color:#eee;color:#444}.uk-icon-glass:before{content:"\f000"}.uk-icon-music:before{content:"\f001"}.uk-icon-search:before{content:"\f002"}.uk-icon-envelope-o:before{content:"\f003"}.uk-icon-heart:before{content:"\f004"}.uk-icon-star:before{content:"\f005"}.uk-icon-star-o:before{content:"\f006"}.uk-icon-user:before{content:"\f007"}.uk-icon-film:before{content:"\f008"}.uk-icon-th-large:before{content:"\f009"}.uk-icon-th:before{content:"\f00a"}.uk-icon-th-list:before{content:"\f00b"}.uk-icon-check:before{content:"\f00c"}.uk-icon-close:before,.uk-icon-remove:before,.uk-icon-times:before{content:"\f00d"}.uk-icon-search-plus:before{content:"\f00e"}.uk-icon-search-minus:before{content:"\f010"}.uk-icon-power-off:before{content:"\f011"}.uk-icon-signal:before{content:"\f012"}.uk-icon-cog:before,.uk-icon-gear:before{content:"\f013"}.uk-icon-trash-o:before{content:"\f014"}.uk-icon-home:before{content:"\f015"}.uk-icon-file-o:before{content:"\f016"}.uk-icon-clock-o:before{content:"\f017"}.uk-icon-road:before{content:"\f018"}.uk-icon-download:before{content:"\f019"}.uk-icon-arrow-circle-o-down:before{content:"\f01a"}.uk-icon-arrow-circle-o-up:before{content:"\f01b"}.uk-icon-inbox:before{content:"\f01c"}.uk-icon-play-circle-o:before{content:"\f01d"}.uk-icon-repeat:before,.uk-icon-rotate-right:before{content:"\f01e"}.uk-icon-refresh:before{content:"\f021"}.uk-icon-list-alt:before{content:"\f022"}.uk-icon-lock:before{content:"\f023"}.uk-icon-flag:before{content:"\f024"}.uk-icon-headphones:before{content:"\f025"}.uk-icon-volume-off:before{content:"\f026"}.uk-icon-volume-down:before{content:"\f027"}.uk-icon-volume-up:before{content:"\f028"}.uk-icon-qrcode:before{content:"\f029"}.uk-icon-barcode:before{content:"\f02a"}.uk-icon-tag:before{content:"\f02b"}.uk-icon-tags:before{content:"\f02c"}.uk-icon-book:before{content:"\f02d"}.uk-icon-bookmark:before{content:"\f02e"}.uk-icon-print:before{content:"\f02f"}.uk-icon-camera:before{content:"\f030"}.uk-icon-font:before{content:"\f031"}.uk-icon-bold:before{content:"\f032"}.uk-icon-italic:before{content:"\f033"}.uk-icon-text-height:before{content:"\f034"}.uk-icon-text-width:before{content:"\f035"}.uk-icon-align-left:before{content:"\f036"}.uk-icon-align-center:before{content:"\f037"}.uk-icon-align-right:before{content:"\f038"}.uk-icon-align-justify:before{content:"\f039"}.uk-icon-list:before{content:"\f03a"}.uk-icon-dedent:before,.uk-icon-outdent:before{content:"\f03b"}.uk-icon-indent:before{content:"\f03c"}.uk-icon-video-camera:before{content:"\f03d"}.uk-icon-image:before,.uk-icon-photo:before,.uk-icon-picture-o:before{content:"\f03e"}.uk-icon-pencil:before{content:"\f040"}.uk-icon-map-marker:before{content:"\f041"}.uk-icon-adjust:before{content:"\f042"}.uk-icon-tint:before{content:"\f043"}.uk-icon-edit:before,.uk-icon-pencil-square-o:before{content:"\f044"}.uk-icon-share-square-o:before{content:"\f045"}.uk-icon-check-square-o:before{content:"\f046"}.uk-icon-arrows:before{content:"\f047"}.uk-icon-step-backward:before{content:"\f048"}.uk-icon-fast-backward:before{content:"\f049"}.uk-icon-backward:before{content:"\f04a"}.uk-icon-play:before{content:"\f04b"}.uk-icon-pause:before{content:"\f04c"}.uk-icon-stop:before{content:"\f04d"}.uk-icon-forward:before{content:"\f04e"}.uk-icon-fast-forward:before{content:"\f050"}.uk-icon-step-forward:before{content:"\f051"}.uk-icon-eject:before{content:"\f052"}.uk-icon-chevron-left:before{content:"\f053"}.uk-icon-chevron-right:before{content:"\f054"}.uk-icon-plus-circle:before{content:"\f055"}.uk-icon-minus-circle:before{content:"\f056"}.uk-icon-times-circle:before{content:"\f057"}.uk-icon-check-circle:before{content:"\f058"}.uk-icon-question-circle:before{content:"\f059"}.uk-icon-info-circle:before{content:"\f05a"}.uk-icon-crosshairs:before{content:"\f05b"}.uk-icon-times-circle-o:before{content:"\f05c"}.uk-icon-check-circle-o:before{content:"\f05d"}.uk-icon-ban:before{content:"\f05e"}.uk-icon-arrow-left:before{content:"\f060"}.uk-icon-arrow-right:before{content:"\f061"}.uk-icon-arrow-up:before{content:"\f062"}.uk-icon-arrow-down:before{content:"\f063"}.uk-icon-mail-forward:before,.uk-icon-share:before{content:"\f064"}.uk-icon-expand:before{content:"\f065"}.uk-icon-compress:before{content:"\f066"}.uk-icon-plus:before{content:"\f067"}.uk-icon-minus:before{content:"\f068"}.uk-icon-asterisk:before{content:"\f069"}.uk-icon-exclamation-circle:before{content:"\f06a"}.uk-icon-gift:before{content:"\f06b"}.uk-icon-leaf:before{content:"\f06c"}.uk-icon-fire:before{content:"\f06d"}.uk-icon-eye:before{content:"\f06e"}.uk-icon-eye-slash:before{content:"\f070"}.uk-icon-exclamation-triangle:before,.uk-icon-warning:before{content:"\f071"}.uk-icon-plane:before{content:"\f072"}.uk-icon-calendar:before{content:"\f073"}.uk-icon-random:before{content:"\f074"}.uk-icon-comment:before{content:"\f075"}.uk-icon-magnet:before{content:"\f076"}.uk-icon-chevron-up:before{content:"\f077"}.uk-icon-chevron-down:before{content:"\f078"}.uk-icon-retweet:before{content:"\f079"}.uk-icon-shopping-cart:before{content:"\f07a"}.uk-icon-folder:before{content:"\f07b"}.uk-icon-folder-open:before{content:"\f07c"}.uk-icon-arrows-v:before{content:"\f07d"}.uk-icon-arrows-h:before{content:"\f07e"}.uk-icon-bar-chart-o:before,.uk-icon-bar-chart:before{content:"\f080"}.uk-icon-twitter-square:before{content:"\f081"}.uk-icon-facebook-square:before{content:"\f082"}.uk-icon-camera-retro:before{content:"\f083"}.uk-icon-key:before{content:"\f084"}.uk-icon-cogs:before,.uk-icon-gears:before{content:"\f085"}.uk-icon-comments:before{content:"\f086"}.uk-icon-thumbs-o-up:before{content:"\f087"}.uk-icon-thumbs-o-down:before{content:"\f088"}.uk-icon-star-half:before{content:"\f089"}.uk-icon-heart-o:before{content:"\f08a"}.uk-icon-sign-out:before{content:"\f08b"}.uk-icon-linkedin-square:before{content:"\f08c"}.uk-icon-thumb-tack:before{content:"\f08d"}.uk-icon-external-link:before{content:"\f08e"}.uk-icon-sign-in:before{content:"\f090"}.uk-icon-trophy:before{content:"\f091"}.uk-icon-github-square:before{content:"\f092"}.uk-icon-upload:before{content:"\f093"}.uk-icon-lemon-o:before{content:"\f094"}.uk-icon-phone:before{content:"\f095"}.uk-icon-square-o:before{content:"\f096"}.uk-icon-bookmark-o:before{content:"\f097"}.uk-icon-phone-square:before{content:"\f098"}.uk-icon-twitter:before{content:"\f099"}.uk-icon-facebook-f:before,.uk-icon-facebook:before{content:"\f09a"}.uk-icon-github:before{content:"\f09b"}.uk-icon-unlock:before{content:"\f09c"}.uk-icon-credit-card:before{content:"\f09d"}.uk-icon-rss:before{content:"\f09e"}.uk-icon-hdd-o:before{content:"\f0a0"}.uk-icon-bullhorn:before{content:"\f0a1"}.uk-icon-bell:before{content:"\f0f3"}.uk-icon-certificate:before{content:"\f0a3"}.uk-icon-hand-o-right:before{content:"\f0a4"}.uk-icon-hand-o-left:before{content:"\f0a5"}.uk-icon-hand-o-up:before{content:"\f0a6"}.uk-icon-hand-o-down:before{content:"\f0a7"}.uk-icon-arrow-circle-left:before{content:"\f0a8"}.uk-icon-arrow-circle-right:before{content:"\f0a9"}.uk-icon-arrow-circle-up:before{content:"\f0aa"}.uk-icon-arrow-circle-down:before{content:"\f0ab"}.uk-icon-globe:before{content:"\f0ac"}.uk-icon-wrench:before{content:"\f0ad"}.uk-icon-tasks:before{content:"\f0ae"}.uk-icon-filter:before{content:"\f0b0"}.uk-icon-briefcase:before{content:"\f0b1"}.uk-icon-arrows-alt:before{content:"\f0b2"}.uk-icon-group:before,.uk-icon-users:before{content:"\f0c0"}.uk-icon-chain:before,.uk-icon-link:before{content:"\f0c1"}.uk-icon-cloud:before{content:"\f0c2"}.uk-icon-flask:before{content:"\f0c3"}.uk-icon-cut:before,.uk-icon-scissors:before{content:"\f0c4"}.uk-icon-copy:before,.uk-icon-files-o:before{content:"\f0c5"}.uk-icon-paperclip:before{content:"\f0c6"}.uk-icon-floppy-o:before,.uk-icon-save:before{content:"\f0c7"}.uk-icon-square:before{content:"\f0c8"}.uk-icon-bars:before,.uk-icon-navicon:before,.uk-icon-reorder:before{content:"\f0c9"}.uk-icon-list-ul:before{content:"\f0ca"}.uk-icon-list-ol:before{content:"\f0cb"}.uk-icon-strikethrough:before{content:"\f0cc"}.uk-icon-underline:before{content:"\f0cd"}.uk-icon-table:before{content:"\f0ce"}.uk-icon-magic:before{content:"\f0d0"}.uk-icon-truck:before{content:"\f0d1"}.uk-icon-pinterest:before{content:"\f0d2"}.uk-icon-pinterest-square:before{content:"\f0d3"}.uk-icon-google-plus-square:before{content:"\f0d4"}.uk-icon-google-plus:before{content:"\f0d5"}.uk-icon-money:before{content:"\f0d6"}.uk-icon-caret-down:before{content:"\f0d7"}.uk-icon-caret-up:before{content:"\f0d8"}.uk-icon-caret-left:before{content:"\f0d9"}.uk-icon-caret-right:before{content:"\f0da"}.uk-icon-columns:before{content:"\f0db"}.uk-icon-sort:before,.uk-icon-unsorted:before{content:"\f0dc"}.uk-icon-sort-desc:before,.uk-icon-sort-down:before{content:"\f0dd"}.uk-icon-sort-asc:before,.uk-icon-sort-up:before{content:"\f0de"}.uk-icon-envelope:before{content:"\f0e0"}.uk-icon-linkedin:before{content:"\f0e1"}.uk-icon-rotate-left:before,.uk-icon-undo:before{content:"\f0e2"}.uk-icon-gavel:before,.uk-icon-legal:before{content:"\f0e3"}.uk-icon-dashboard:before,.uk-icon-tachometer:before{content:"\f0e4"}.uk-icon-comment-o:before{content:"\f0e5"}.uk-icon-comments-o:before{content:"\f0e6"}.uk-icon-bolt:before,.uk-icon-flash:before{content:"\f0e7"}.uk-icon-sitemap:before{content:"\f0e8"}.uk-icon-umbrella:before{content:"\f0e9"}.uk-icon-clipboard:before,.uk-icon-paste:before{content:"\f0ea"}.uk-icon-lightbulb-o:before{content:"\f0eb"}.uk-icon-exchange:before{content:"\f0ec"}.uk-icon-cloud-download:before{content:"\f0ed"}.uk-icon-cloud-upload:before{content:"\f0ee"}.uk-icon-user-md:before{content:"\f0f0"}.uk-icon-stethoscope:before{content:"\f0f1"}.uk-icon-suitcase:before{content:"\f0f2"}.uk-icon-bell-o:before{content:"\f0a2"}.uk-icon-coffee:before{content:"\f0f4"}.uk-icon-cutlery:before{content:"\f0f5"}.uk-icon-file-text-o:before{content:"\f0f6"}.uk-icon-building-o:before{content:"\f0f7"}.uk-icon-hospital-o:before{content:"\f0f8"}.uk-icon-ambulance:before{content:"\f0f9"}.uk-icon-medkit:before{content:"\f0fa"}.uk-icon-fighter-jet:before{content:"\f0fb"}.uk-icon-beer:before{content:"\f0fc"}.uk-icon-h-square:before{content:"\f0fd"}.uk-icon-plus-square:before{content:"\f0fe"}.uk-icon-angle-double-left:before{content:"\f100"}.uk-icon-angle-double-right:before{content:"\f101"}.uk-icon-angle-double-up:before{content:"\f102"}.uk-icon-angle-double-down:before{content:"\f103"}.uk-icon-angle-left:before{content:"\f104"}.uk-icon-angle-right:before{content:"\f105"}.uk-icon-angle-up:before{content:"\f106"}.uk-icon-angle-down:before{content:"\f107"}.uk-icon-desktop:before{content:"\f108"}.uk-icon-laptop:before{content:"\f109"}.uk-icon-tablet:before{content:"\f10a"}.uk-icon-mobile-phone:before,.uk-icon-mobile:before{content:"\f10b"}.uk-icon-circle-o:before{content:"\f10c"}.uk-icon-quote-left:before{content:"\f10d"}.uk-icon-quote-right:before{content:"\f10e"}.uk-icon-spinner:before{content:"\f110"}.uk-icon-circle:before{content:"\f111"}.uk-icon-mail-reply:before,.uk-icon-reply:before{content:"\f112"}.uk-icon-github-alt:before{content:"\f113"}.uk-icon-folder-o:before{content:"\f114"}.uk-icon-folder-open-o:before{content:"\f115"}.uk-icon-smile-o:before{content:"\f118"}.uk-icon-frown-o:before{content:"\f119"}.uk-icon-meh-o:before{content:"\f11a"}.uk-icon-gamepad:before{content:"\f11b"}.uk-icon-keyboard-o:before{content:"\f11c"}.uk-icon-flag-o:before{content:"\f11d"}.uk-icon-flag-checkered:before{content:"\f11e"}.uk-icon-terminal:before{content:"\f120"}.uk-icon-code:before{content:"\f121"}.uk-icon-mail-reply-all:before,.uk-icon-reply-all:before{content:"\f122"}.uk-icon-star-half-empty:before,.uk-icon-star-half-full:before,.uk-icon-star-half-o:before{content:"\f123"}.uk-icon-location-arrow:before{content:"\f124"}.uk-icon-crop:before{content:"\f125"}.uk-icon-code-fork:before{content:"\f126"}.uk-icon-chain-broken:before,.uk-icon-unlink:before{content:"\f127"}.uk-icon-question:before{content:"\f128"}.uk-icon-info:before{content:"\f129"}.uk-icon-exclamation:before{content:"\f12a"}.uk-icon-superscript:before{content:"\f12b"}.uk-icon-subscript:before{content:"\f12c"}.uk-icon-eraser:before{content:"\f12d"}.uk-icon-puzzle-piece:before{content:"\f12e"}.uk-icon-microphone:before{content:"\f130"}.uk-icon-microphone-slash:before{content:"\f131"}.uk-icon-shield:before{content:"\f132"}.uk-icon-calendar-o:before{content:"\f133"}.uk-icon-fire-extinguisher:before{content:"\f134"}.uk-icon-rocket:before{content:"\f135"}.uk-icon-maxcdn:before{content:"\f136"}.uk-icon-chevron-circle-left:before{content:"\f137"}.uk-icon-chevron-circle-right:before{content:"\f138"}.uk-icon-chevron-circle-up:before{content:"\f139"}.uk-icon-chevron-circle-down:before{content:"\f13a"}.uk-icon-html5:before{content:"\f13b"}.uk-icon-css3:before{content:"\f13c"}.uk-icon-anchor:before{content:"\f13d"}.uk-icon-unlock-alt:before{content:"\f13e"}.uk-icon-bullseye:before{content:"\f140"}.uk-icon-ellipsis-h:before{content:"\f141"}.uk-icon-ellipsis-v:before{content:"\f142"}.uk-icon-rss-square:before{content:"\f143"}.uk-icon-play-circle:before{content:"\f144"}.uk-icon-ticket:before{content:"\f145"}.uk-icon-minus-square:before{content:"\f146"}.uk-icon-minus-square-o:before{content:"\f147"}.uk-icon-level-up:before{content:"\f148"}.uk-icon-level-down:before{content:"\f149"}.uk-icon-check-square:before{content:"\f14a"}.uk-icon-pencil-square:before{content:"\f14b"}.uk-icon-external-link-square:before{content:"\f14c"}.uk-icon-share-square:before{content:"\f14d"}.uk-icon-compass:before{content:"\f14e"}.uk-icon-caret-square-o-down:before,.uk-icon-toggle-down:before{content:"\f150"}.uk-icon-caret-square-o-up:before,.uk-icon-toggle-up:before{content:"\f151"}.uk-icon-caret-square-o-right:before,.uk-icon-toggle-right:before{content:"\f152"}.uk-icon-eur:before,.uk-icon-euro:before{content:"\f153"}.uk-icon-gbp:before{content:"\f154"}.uk-icon-dollar:before,.uk-icon-usd:before{content:"\f155"}.uk-icon-inr:before,.uk-icon-rupee:before{content:"\f156"}.uk-icon-cny:before,.uk-icon-jpy:before,.uk-icon-rmb:before,.uk-icon-yen:before{content:"\f157"}.uk-icon-rouble:before,.uk-icon-rub:before,.uk-icon-ruble:before{content:"\f158"}.uk-icon-krw:before,.uk-icon-won:before{content:"\f159"}.uk-icon-bitcoin:before,.uk-icon-btc:before{content:"\f15a"}.uk-icon-file:before{content:"\f15b"}.uk-icon-file-text:before{content:"\f15c"}.uk-icon-sort-alpha-asc:before{content:"\f15d"}.uk-icon-sort-alpha-desc:before{content:"\f15e"}.uk-icon-sort-amount-asc:before{content:"\f160"}.uk-icon-sort-amount-desc:before{content:"\f161"}.uk-icon-sort-numeric-asc:before{content:"\f162"}.uk-icon-sort-numeric-desc:before{content:"\f163"}.uk-icon-thumbs-up:before{content:"\f164"}.uk-icon-thumbs-down:before{content:"\f165"}.uk-icon-youtube-square:before{content:"\f166"}.uk-icon-youtube:before{content:"\f167"}.uk-icon-xing:before{content:"\f168"}.uk-icon-xing-square:before{content:"\f169"}.uk-icon-youtube-play:before{content:"\f16a"}.uk-icon-dropbox:before{content:"\f16b"}.uk-icon-stack-overflow:before{content:"\f16c"}.uk-icon-instagram:before{content:"\f16d"}.uk-icon-flickr:before{content:"\f16e"}.uk-icon-adn:before{content:"\f170"}.uk-icon-bitbucket:before{content:"\f171"}.uk-icon-bitbucket-square:before{content:"\f172"}.uk-icon-tumblr:before{content:"\f173"}.uk-icon-tumblr-square:before{content:"\f174"}.uk-icon-long-arrow-down:before{content:"\f175"}.uk-icon-long-arrow-up:before{content:"\f176"}.uk-icon-long-arrow-left:before{content:"\f177"}.uk-icon-long-arrow-right:before{content:"\f178"}.uk-icon-apple:before{content:"\f179"}.uk-icon-windows:before{content:"\f17a"}.uk-icon-android:before{content:"\f17b"}.uk-icon-linux:before{content:"\f17c"}.uk-icon-dribbble:before{content:"\f17d"}.uk-icon-skype:before{content:"\f17e"}.uk-icon-foursquare:before{content:"\f180"}.uk-icon-trello:before{content:"\f181"}.uk-icon-female:before{content:"\f182"}.uk-icon-male:before{content:"\f183"}.uk-icon-gittip:before,.uk-icon-gratipay:before{content:"\f184"}.uk-icon-sun-o:before{content:"\f185"}.uk-icon-moon-o:before{content:"\f186"}.uk-icon-archive:before{content:"\f187"}.uk-icon-bug:before{content:"\f188"}.uk-icon-vk:before{content:"\f189"}.uk-icon-weibo:before{content:"\f18a"}.uk-icon-renren:before{content:"\f18b"}.uk-icon-pagelines:before{content:"\f18c"}.uk-icon-stack-exchange:before{content:"\f18d"}.uk-icon-arrow-circle-o-right:before{content:"\f18e"}.uk-icon-arrow-circle-o-left:before{content:"\f190"}.uk-icon-caret-square-o-left:before,.uk-icon-toggle-left:before{content:"\f191"}.uk-icon-dot-circle-o:before{content:"\f192"}.uk-icon-wheelchair:before{content:"\f193"}.uk-icon-vimeo-square:before{content:"\f194"}.uk-icon-try:before,.uk-icon-turkish-lira:before{content:"\f195"}.uk-icon-plus-square-o:before{content:"\f196"}.uk-icon-space-shuttle:before{content:"\f197"}.uk-icon-slack:before{content:"\f198"}.uk-icon-envelope-square:before{content:"\f199"}.uk-icon-wordpress:before{content:"\f19a"}.uk-icon-openid:before{content:"\f19b"}.uk-icon-bank:before,.uk-icon-institution:before,.uk-icon-university:before{content:"\f19c"}.uk-icon-graduation-cap:before,.uk-icon-mortar-board:before{content:"\f19d"}.uk-icon-yahoo:before{content:"\f19e"}.uk-icon-google:before{content:"\f1a0"}.uk-icon-reddit:before{content:"\f1a1"}.uk-icon-reddit-square:before{content:"\f1a2"}.uk-icon-stumbleupon-circle:before{content:"\f1a3"}.uk-icon-stumbleupon:before{content:"\f1a4"}.uk-icon-delicious:before{content:"\f1a5"}.uk-icon-digg:before{content:"\f1a6"}.uk-icon-pied-piper:before{content:"\f1a7"}.uk-icon-pied-piper-alt:before{content:"\f1a8"}.uk-icon-drupal:before{content:"\f1a9"}.uk-icon-joomla:before{content:"\f1aa"}.uk-icon-language:before{content:"\f1ab"}.uk-icon-fax:before{content:"\f1ac"}.uk-icon-building:before{content:"\f1ad"}.uk-icon-child:before{content:"\f1ae"}.uk-icon-paw:before{content:"\f1b0"}.uk-icon-spoon:before{content:"\f1b1"}.uk-icon-cube:before{content:"\f1b2"}.uk-icon-cubes:before{content:"\f1b3"}.uk-icon-behance:before{content:"\f1b4"}.uk-icon-behance-square:before{content:"\f1b5"}.uk-icon-steam:before{content:"\f1b6"}.uk-icon-steam-square:before{content:"\f1b7"}.uk-icon-recycle:before{content:"\f1b8"}.uk-icon-automobile:before,.uk-icon-car:before{content:"\f1b9"}.uk-icon-cab:before,.uk-icon-taxi:before{content:"\f1ba"}.uk-icon-tree:before{content:"\f1bb"}.uk-icon-spotify:before{content:"\f1bc"}.uk-icon-deviantart:before{content:"\f1bd"}.uk-icon-soundcloud:before{content:"\f1be"}.uk-icon-database:before{content:"\f1c0"}.uk-icon-file-pdf-o:before{content:"\f1c1"}.uk-icon-file-word-o:before{content:"\f1c2"}.uk-icon-file-excel-o:before{content:"\f1c3"}.uk-icon-file-powerpoint-o:before{content:"\f1c4"}.uk-icon-file-image-o:before,.uk-icon-file-photo-o:before,.uk-icon-file-picture-o:before{content:"\f1c5"}.uk-icon-file-archive-o:before,.uk-icon-file-zip-o:before{content:"\f1c6"}.uk-icon-file-audio-o:before,.uk-icon-file-sound-o:before{content:"\f1c7"}.uk-icon-file-movie-o:before,.uk-icon-file-video-o:before{content:"\f1c8"}.uk-icon-file-code-o:before{content:"\f1c9"}.uk-icon-vine:before{content:"\f1ca"}.uk-icon-codepen:before{content:"\f1cb"}.uk-icon-jsfiddle:before{content:"\f1cc"}.uk-icon-life-bouy:before,.uk-icon-life-buoy:before,.uk-icon-life-ring:before,.uk-icon-life-saver:before,.uk-icon-support:before{content:"\f1cd"}.uk-icon-circle-o-notch:before{content:"\f1ce"}.uk-icon-ra:before,.uk-icon-rebel:before{content:"\f1d0"}.uk-icon-empire:before,.uk-icon-ge:before{content:"\f1d1"}.uk-icon-git-square:before{content:"\f1d2"}.uk-icon-git:before{content:"\f1d3"}.uk-icon-hacker-news:before{content:"\f1d4"}.uk-icon-tencent-weibo:before{content:"\f1d5"}.uk-icon-qq:before{content:"\f1d6"}.uk-icon-wechat:before,.uk-icon-weixin:before{content:"\f1d7"}.uk-icon-paper-plane:before,.uk-icon-send:before{content:"\f1d8"}.uk-icon-paper-plane-o:before,.uk-icon-send-o:before{content:"\f1d9"}.uk-icon-history:before{content:"\f1da"}.uk-icon-circle-thin:before,.uk-icon-genderless:before{content:"\f1db"}.uk-icon-header:before{content:"\f1dc"}.uk-icon-paragraph:before{content:"\f1dd"}.uk-icon-sliders:before{content:"\f1de"}.uk-icon-share-alt:before{content:"\f1e0"}.uk-icon-share-alt-square:before{content:"\f1e1"}.uk-icon-bomb:before{content:"\f1e2"}.uk-icon-futbol-o:before,.uk-icon-soccer-ball-o:before{content:"\f1e3"}.uk-icon-tty:before{content:"\f1e4"}.uk-icon-binoculars:before{content:"\f1e5"}.uk-icon-plug:before{content:"\f1e6"}.uk-icon-slideshare:before{content:"\f1e7"}.uk-icon-twitch:before{content:"\f1e8"}.uk-icon-yelp:before{content:"\f1e9"}.uk-icon-newspaper-o:before{content:"\f1ea"}.uk-icon-wifi:before{content:"\f1eb"}.uk-icon-calculator:before{content:"\f1ec"}.uk-icon-paypal:before{content:"\f1ed"}.uk-icon-google-wallet:before{content:"\f1ee"}.uk-icon-cc-visa:before{content:"\f1f0"}.uk-icon-cc-mastercard:before{content:"\f1f1"}.uk-icon-cc-discover:before{content:"\f1f2"}.uk-icon-cc-amex:before{content:"\f1f3"}.uk-icon-cc-paypal:before{content:"\f1f4"}.uk-icon-cc-stripe:before{content:"\f1f5"}.uk-icon-bell-slash:before{content:"\f1f6"}.uk-icon-bell-slash-o:before{content:"\f1f7"}.uk-icon-trash:before{content:"\f1f8"}.uk-icon-copyright:before{content:"\f1f9"}.uk-icon-at:before{content:"\f1fa"}.uk-icon-eyedropper:before{content:"\f1fb"}.uk-icon-paint-brush:before{content:"\f1fc"}.uk-icon-birthday-cake:before{content:"\f1fd"}.uk-icon-area-chart:before{content:"\f1fe"}.uk-icon-pie-chart:before{content:"\f200"}.uk-icon-line-chart:before{content:"\f201"}.uk-icon-lastfm:before{content:"\f202"}.uk-icon-lastfm-square:before{content:"\f203"}.uk-icon-toggle-off:before{content:"\f204"}.uk-icon-toggle-on:before{content:"\f205"}.uk-icon-bicycle:before{content:"\f206"}.uk-icon-bus:before{content:"\f207"}.uk-icon-ioxhost:before{content:"\f208"}.uk-icon-angellist:before{content:"\f209"}.uk-icon-cc:before{content:"\f20a"}.uk-icon-ils:before,.uk-icon-shekel:before,.uk-icon-sheqel:before{content:"\f20b"}.uk-icon-meanpath:before{content:"\f20c"}.uk-icon-buysellads:before{content:"\f20d"}.uk-icon-connectdevelop:before{content:"\f20e"}.uk-icon-dashcube:before{content:"\f210"}.uk-icon-forumbee:before{content:"\f211"}.uk-icon-leanpub:before{content:"\f212"}.uk-icon-sellsy:before{content:"\f213"}.uk-icon-shirtsinbulk:before{content:"\f214"}.uk-icon-simplybuilt:before{content:"\f215"}.uk-icon-skyatlas:before{content:"\f216"}.uk-icon-cart-plus:before{content:"\f217"}.uk-icon-cart-arrow-down:before{content:"\f218"}.uk-icon-diamond:before{content:"\f219"}.uk-icon-ship:before{content:"\f21a"}.uk-icon-user-secret:before{content:"\f21b"}.uk-icon-motorcycle:before{content:"\f21c"}.uk-icon-street-view:before{content:"\f21d"}.uk-icon-heartbeat:before{content:"\f21e"}.uk-icon-venus:before{content:"\f221"}.uk-icon-mars:before{content:"\f222"}.uk-icon-mercury:before{content:"\f223"}.uk-icon-transgender:before{content:"\f224"}.uk-icon-transgender-alt:before{content:"\f225"}.uk-icon-venus-double:before{content:"\f226"}.uk-icon-mars-double:before{content:"\f227"}.uk-icon-venus-mars:before{content:"\f228"}.uk-icon-mars-stroke:before{content:"\f229"}.uk-icon-mars-stroke-v:before{content:"\f22a"}.uk-icon-mars-stroke-h:before{content:"\f22b"}.uk-icon-neuter:before{content:"\f22c"}.uk-icon-facebook-official:before{content:"\f230"}.uk-icon-pinterest-p:before{content:"\f231"}.uk-icon-whatsapp:before{content:"\f232"}.uk-icon-server:before{content:"\f233"}.uk-icon-user-plus:before{content:"\f234"}.uk-icon-user-times:before{content:"\f235"}.uk-icon-bed:before,.uk-icon-hotel:before{content:"\f236"}.uk-icon-viacoin:before{content:"\f237"}.uk-icon-train:before{content:"\f238"}.uk-icon-subway:before{content:"\f239"}.uk-icon-medium-logo:before{content:"\f23a"}.uk-icon-500px:before{content:"\f26e"}.uk-icon-amazon:before{content:"\f270"}.uk-icon-balance-scale:before{content:"\f24e"}.uk-icon-battery-0:before,.uk-icon-battery-empty:before{content:"\f244"}.uk-icon-battery-1:before,.uk-icon-battery-quarter:before{content:"\f243"}.uk-icon-battery-2:before,.uk-icon-battery-half:before{content:"\f242"}.uk-icon-battery-3:before,.uk-icon-battery-three-quarters:before{content:"\f241"}.uk-icon-battery-4:before,.uk-icon-battery-full:before{content:"\f240"}.uk-icon-black-tie:before{content:"\f27e"}.uk-icon-calendar-check-o:before{content:"\f274"}.uk-icon-calendar-minus-o:before{content:"\f272"}.uk-icon-calendar-plus-o:before{content:"\f271"}.uk-icon-calendar-times-o:before{content:"\f273"}.uk-icon-cc-diners-club:before{content:"\f24c"}.uk-icon-cc-jcb:before{content:"\f24b"}.uk-icon-chrome:before{content:"\f268"}.uk-icon-clone:before{content:"\f24d"}.uk-icon-commenting:before{content:"\f27a"}.uk-icon-commenting-o:before{content:"\f27b"}.uk-icon-contao:before{content:"\f26d"}.uk-icon-creative-commons:before{content:"\f25e"}.uk-icon-expeditedssl:before{content:"\f23e"}.uk-icon-firefox:before{content:"\f269"}.uk-icon-fonticons:before{content:"\f280"}.uk-icon-get-pocket:before{content:"\f265"}.uk-icon-gg:before{content:"\f260"}.uk-icon-gg-circle:before{content:"\f261"}.uk-icon-hand-lizard-o:before{content:"\f258"}.uk-icon-hand-paper-o:before,.uk-icon-hand-stop-o:before{content:"\f256"}.uk-icon-hand-peace-o:before{content:"\f25b"}.uk-icon-hand-pointer-o:before{content:"\f25a"}.uk-icon-hand-grab-o:before,.uk-icon-hand-rock-o:before{content:"\f255"}.uk-icon-hand-scissors-o:before{content:"\f257"}.uk-icon-hand-spock-o:before{content:"\f259"}.uk-icon-hourglass:before{content:"\f254"}.uk-icon-hourglass-o:before{content:"\f250"}.uk-icon-hourglass-1:before,.uk-icon-hourglass-start:before{content:"\f251"}.uk-icon-hourglass-2:before,.uk-icon-hourglass-half:before{content:"\f252"}.uk-icon-hourglass-3:before,.uk-icon-hourglass-end:before{content:"\f253"}.uk-icon-houzz:before{content:"\f27c"}.uk-icon-i-cursor:before{content:"\f246"}.uk-icon-industry:before{content:"\f275"}.uk-icon-internet-explorer:before{content:"\f26b"}.uk-icon-map:before{content:"\f279"}.uk-icon-map-o:before{content:"\f278"}.uk-icon-map-pin:before{content:"\f276"}.uk-icon-map-signs:before{content:"\f277"}.uk-icon-mouse-pointer:before{content:"\f245"}.uk-icon-object-group:before{content:"\f247"}.uk-icon-object-ungroup:before{content:"\f248"}.uk-icon-odnoklassniki:before{content:"\f263"}.uk-icon-odnoklassniki-square:before{content:"\f264"}.uk-icon-opencart:before{content:"\f23d"}.uk-icon-opera:before{content:"\f26a"}.uk-icon-optin-monster:before{content:"\f23c"}.uk-icon-registered:before{content:"\f25d"}.uk-icon-safari:before{content:"\f267"}.uk-icon-sticky-note:before{content:"\f249"}.uk-icon-sticky-note-o:before{content:"\f24a"}.uk-icon-television:before,.uk-icon-tv:before{content:"\f26c"}.uk-icon-trademark:before{content:"\f25c"}.uk-icon-tripadvisor:before{content:"\f262"}.uk-icon-vimeo:before{content:"\f27d"}.uk-icon-wikipedia-w:before{content:"\f266"}.uk-icon-y-combinator:before,.uk-icon-yc:before{content:"\f23b"}.uk-icon-y-combinator-square:before,.uk-icon-yc-square:before{content:"\f1d4"}.uk-icon-bluetooth:before{content:"\f293"}.uk-icon-bluetooth-b:before{content:"\f294"}.uk-icon-codiepie:before{content:"\f284"}.uk-icon-credit-card-alt:before{content:"\f283"}.uk-icon-edge:before{content:"\f282"}.uk-icon-fort-awesome:before{content:"\f286"}.uk-icon-hashtag:before{content:"\f292"}.uk-icon-mixcloud:before{content:"\f289"}.uk-icon-modx:before{content:"\f285"}.uk-icon-pause-circle:before{content:"\f28b"}.uk-icon-pause-circle-o:before{content:"\f28c"}.uk-icon-percent:before{content:"\f295"}.uk-icon-product-hunt:before{content:"\f288"}.uk-icon-reddit-alien:before{content:"\f281"}.uk-icon-scribd:before{content:"\f28a"}.uk-icon-shopping-bag:before{content:"\f290"}.uk-icon-shopping-basket:before{content:"\f291"}.uk-icon-stop-circle:before{content:"\f28d"}.uk-icon-stop-circle-o:before{content:"\f28e"}.uk-icon-usb:before{content:"\f287"}.uk-icon-american-sign-language-interpreting:before,.uk-icon-asl-interpreting:before{content:"\f2a3"}.uk-icon-assistive-listening-systems:before{content:"\f2a2"}.uk-icon-audio-description:before{content:"\f29e"}.uk-icon-blind:before{content:"\f29d"}.uk-icon-braille:before{content:"\f2a1"}.uk-icon-deaf:before,.uk-icon-deafness:before{content:"\f2a4"}.uk-icon-envira:before{content:"\f299"}.uk-icon-fa:before,.uk-icon-font-awesome:before{content:"\f2b4"}.uk-icon-first-order:before{content:"\f2b0"}.uk-icon-gitlab:before{content:"\f296"}.uk-icon-glide:before{content:"\f2a5"}.uk-icon-glide-g:before{content:"\f2a6"}.uk-icon-hard-of-hearing:before{content:"\f2a4"}.uk-icon-low-vision:before{content:"\f2a8"}.uk-icon-question-circle-o:before{content:"\f29c"}.uk-icon-sign-language:before,.uk-icon-signing:before{content:"\f2a7"}.uk-icon-snapchat:before{content:"\f2ab"}.uk-icon-snapchat-ghost:before{content:"\f2ac"}.uk-icon-snapchat-square:before{content:"\f2ad"}.uk-icon-themeisle:before{content:"\f2b2"}.uk-icon-universal-access:before{content:"\f29a"}.uk-icon-viadeo:before{content:"\f2a9"}.uk-icon-viadeo-square:before{content:"\f2aa"}.uk-icon-volume-control-phone:before{content:"\f2a0"}.uk-icon-wheelchair-alt:before{content:"\f29b"}.uk-icon-wpbeginner:before{content:"\f297"}.uk-icon-wpforms:before{content:"\f298"}.uk-icon-yoast:before{content:"\f2b1"}.uk-icon-adress-book:before{content:"\f2b9"}.uk-icon-adress-book-o:before{content:"\f2ba"}.uk-icon-adress-card:before{content:"\f2bb"}.uk-icon-adress-card-o:before{content:"\f2bc"}.uk-icon-bandcamp:before{content:"\f2d5"}.uk-icon-bath:before{content:"\f2cd"}.uk-icon-bathub:before{content:"\f2cd"}.uk-icon-drivers-license:before{content:"\f2c2"}.uk-icon-drivers-license-o:before{content:"\f2c3"}.uk-icon-eercast:before{content:"\f2da"}.uk-icon-envelope-open:before{content:"\f2b6"}.uk-icon-envelope-open-o:before{content:"\f2b7"}.uk-icon-etsy:before{content:"\f2d7"}.uk-icon-free-code-camp:before{content:"\f2c5"}.uk-icon-grav:before{content:"\f2d6"}.uk-icon-handshake-o:before{content:"\f2b5"}.uk-icon-id-badge:before{content:"\f2c1"}.uk-icon-id-card:before{content:"\f2c2"}.uk-icon-id-card-o:before{content:"\f2c3"}.uk-icon-imdb:before{content:"\f2d8"}.uk-icon-linode:before{content:"\f2b8"}.uk-icon-meetup:before{content:"\f2e0"}.uk-icon-microchip:before{content:"\f2db"}.uk-icon-podcast:before{content:"\f2ce"}.uk-icon-quora:before{content:"\f2c4"}.uk-icon-ravelry:before{content:"\f2d9"}.uk-icon-s15:before{content:"\f2cd"}.uk-icon-shower:before{content:"\f2cc"}.uk-icon-snowflake-o:before{content:"\f2dc"}.uk-icon-superpowers:before{content:"\f2dd"}.uk-icon-telegram:before{content:"\f2c6"}.uk-icon-thermometer:before{content:"\f2c7"}.uk-icon-thermometer-0:before{content:"\f2cb"}.uk-icon-thermometer-1:before{content:"\f2ca"}.uk-icon-thermometer-2:before{content:"\f2c9"}.uk-icon-thermometer-3:before{content:"\f2c8"}.uk-icon-thermometer-4:before{content:"\f2c7"}.uk-icon-thermometer-empty:before{content:"\f2cb"}.uk-icon-thermometer-full:before{content:"\f2c7"}.uk-icon-thermometer-half:before{content:"\f2c9"}.uk-icon-thermometer-quarter:before{content:"\f2ca"}.uk-icon-thermometer-three-quarters:before{content:"\f2c8"}.uk-icon-times-rectangle:before{content:"\f2d3"}.uk-icon-times-rectangle-o:before{content:"\f2d4"}.uk-icon-user-circle:before{content:"\f2bd"}.uk-icon-user-circle-o:before{content:"\f2be"}.uk-icon-user-o:before{content:"\f2c0"}.uk-icon-vcard:before{content:"\f2bb"}.uk-icon-vcard-o:before{content:"\f2bc"}.uk-icon-widow-close:before{content:"\f2d3"}.uk-icon-widow-close-o:before{content:"\f2d4"}.uk-icon-window-maximize:before{content:"\f2d0"}.uk-icon-window-minimize:before{content:"\f2d1"}.uk-icon-window-restore:before{content:"\f2d2"}.uk-icon-wpexplorer:before{content:"\f2de"}.uk-close::-moz-focus-inner{border:0;padding:0}.uk-close{-webkit-appearance:none;margin:0;border:none;overflow:visible;font:inherit;color:inherit;text-transform:none;padding:0;background:0 0;display:inline-block;box-sizing:content-box;width:20px;line-height:20px;text-align:center;vertical-align:middle;opacity:.3}.uk-close:after{display:block;content:"\f00d";font-family:FontAwesome}.uk-close:focus,.uk-close:hover{opacity:.5;outline:0;color:inherit;text-decoration:none;cursor:pointer}.uk-close-alt{padding:2px;border-radius:50%;background:#fff;opacity:1;box-shadow:0 0 0 1px rgba(0,0,0,.1),0 0 6px rgba(0,0,0,.3)}.uk-close-alt:focus,.uk-close-alt:hover{opacity:1}.uk-close-alt:after{opacity:.5}.uk-close-alt:focus:after,.uk-close-alt:hover:after{opacity:.8}.uk-badge{display:inline-block;padding:0 5px;background:#00a8e6;font-size:10px;font-weight:700;line-height:14px;color:#fff;text-align:center;vertical-align:middle;text-transform:none;border:1px solid rgba(0,0,0,.06);border-radius:2px;text-shadow:0 1px 0 rgba(0,0,0,.1)}a.uk-badge:hover{color:#fff}.uk-badge-notification{box-sizing:border-box;min-width:18px;border-radius:500px;font-size:12px;line-height:18px}.uk-badge-success{background-color:#8cc14c}.uk-badge-warning{background-color:#faa732}.uk-badge-danger{background-color:#da314b}.uk-alert{margin-bottom:15px;padding:10px;background:#ebf7fd;color:#2d7091;border:1px solid rgba(45,112,145,.3);border-radius:4px;text-shadow:0 1px 0 #fff}*+.uk-alert{margin-top:15px}.uk-alert>:last-child{margin-bottom:0}.uk-alert h1,.uk-alert h2,.uk-alert h3,.uk-alert h4,.uk-alert h5,.uk-alert h6{color:inherit}.uk-alert>.uk-close:first-child{float:right}.uk-alert>.uk-close:first-child+*{margin-top:0}.uk-alert-success{background:#f2fae3;color:#659f13;border-color:rgba(101,159,19,.3)}.uk-alert-warning{background:#fffceb;color:#e28327;border-color:rgba(226,131,39,.3)}.uk-alert-danger{background:#fff1f0;color:#d85030;border-color:rgba(216,80,48,.3)}.uk-alert-large{padding:20px}.uk-alert-large>.uk-close:first-child{margin:-10px -10px 0 0}.uk-thumbnail{display:inline-block;max-width:100%;box-sizing:border-box;margin:0;padding:4px;border:1px solid #ddd;background:#fff;border-radius:4px}a.uk-thumbnail:focus,a.uk-thumbnail:hover{border-color:#aaa;background-color:#fff;text-decoration:none;outline:0}.uk-thumbnail-caption{padding-top:4px;text-align:center;color:#444}.uk-thumbnail-mini{width:150px}.uk-thumbnail-small{width:200px}.uk-thumbnail-medium{width:300px}.uk-thumbnail-large{width:400px}.uk-thumbnail-expand,.uk-thumbnail-expand>img{width:100%}.uk-overlay{display:inline-block;position:relative;max-width:100%;vertical-align:middle;overflow:hidden;-webkit-transform:translateZ(0);margin:0}.uk-overlay.uk-border-circle{-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.uk-overlay>:first-child{margin-bottom:0}.uk-overlay-panel{position:absolute;top:0;bottom:0;left:0;right:0;padding:20px;color:#fff}.uk-overlay-panel.uk-flex>*>:last-child,.uk-overlay-panel>:last-child{margin-bottom:0}.uk-overlay-panel h1,.uk-overlay-panel h2,.uk-overlay-panel h3,.uk-overlay-panel h4,.uk-overlay-panel h5,.uk-overlay-panel h6{color:inherit}.uk-overlay-panel a:not([class]){color:inherit;text-decoration:underline}.uk-overlay-panel a[class*=uk-icon-]:not(.uk-icon-button){color:inherit}.uk-overlay-hover:not(:hover):not(.uk-hover) .uk-overlay-panel:not(.uk-ignore){opacity:0}.uk-overlay-active :not(.uk-active)>.uk-overlay-panel:not(.uk-ignore){opacity:0}.uk-overlay-background{background:rgba(0,0,0,.5)}.uk-overlay-image{padding:0}.uk-overlay-top{bottom:auto}.uk-overlay-bottom{top:auto}.uk-overlay-left{right:auto}.uk-overlay-right{left:auto}.uk-overlay-icon:before{content:"\f002";position:absolute;top:50%;left:50%;width:50px;height:50px;margin-top:-25px;margin-left:-25px;font-size:50px;line-height:1;font-family:FontAwesome;text-align:center;color:#fff}.uk-overlay-blur,.uk-overlay-fade,.uk-overlay-grayscale,.uk-overlay-scale,.uk-overlay-spin,[class*=uk-overlay-slide]{transition-duration:.3s;transition-timing-function:ease-out;transition-property:opacity,transform,filter}.uk-overlay-active .uk-overlay-fade,.uk-overlay-active .uk-overlay-scale,.uk-overlay-active .uk-overlay-spin,.uk-overlay-active [class*=uk-overlay-slide]{transition-duration:.8s}.uk-overlay-fade{opacity:.7}.uk-overlay-active .uk-active>.uk-overlay-fade,.uk-overlay-hover.uk-hover .uk-overlay-fade,.uk-overlay-hover:hover .uk-overlay-fade{opacity:1}.uk-overlay-scale{-webkit-transform:scale(1);transform:scale(1)}.uk-overlay-active .uk-active>.uk-overlay-scale,.uk-overlay-hover.uk-hover .uk-overlay-scale,.uk-overlay-hover:hover .uk-overlay-scale{-webkit-transform:scale(1.1);transform:scale(1.1)}.uk-overlay-spin{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}.uk-overlay-active .uk-active>.uk-overlay-spin,.uk-overlay-hover.uk-hover .uk-overlay-spin,.uk-overlay-hover:hover .uk-overlay-spin{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}.uk-overlay-grayscale{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.uk-overlay-active .uk-active>.uk-overlay-grayscale,.uk-overlay-hover.uk-hover .uk-overlay-grayscale,.uk-overlay-hover:hover .uk-overlay-grayscale{-webkit-filter:grayscale(0);filter:grayscale(0)}[class*=uk-overlay-slide]{opacity:0}.uk-overlay-slide-top{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.uk-overlay-slide-bottom{-webkit-transform:translateY(100%);transform:translateY(100%)}.uk-overlay-slide-left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.uk-overlay-slide-right{-webkit-transform:translateX(100%);transform:translateX(100%)}.uk-overlay-active .uk-active>[class*=uk-overlay-slide],.uk-overlay-hover.uk-hover [class*=uk-overlay-slide],.uk-overlay-hover:hover [class*=uk-overlay-slide]{opacity:1;-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.uk-overlay-area{position:absolute;top:0;bottom:0;left:0;right:0;background:rgba(0,0,0,.3);opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear;-webkit-transform:translate3d(0,0,0)}.uk-overlay-toggle.uk-hover .uk-overlay-area,.uk-overlay-toggle:hover .uk-overlay-area,.uk-overlay.uk-hover .uk-overlay-area,.uk-overlay:hover .uk-overlay-area{opacity:1}.uk-overlay-area:empty:before{content:"\f002";position:absolute;top:50%;left:50%;width:50px;height:50px;margin-top:-25px;margin-left:-25px;font-size:50px;line-height:1;font-family:FontAwesome;text-align:center;color:#fff}.uk-overlay-area:not(:empty){font-size:0}.uk-overlay-area:not(:empty):before{content:'';display:inline-block;height:100%;vertical-align:middle}.uk-overlay-area-content{display:inline-block;box-sizing:border-box;width:100%;vertical-align:middle;font-size:1rem;text-align:center;padding:0 15px;color:#fff}.uk-overlay-area-content>:last-child{margin-bottom:0}.uk-overlay-area-content a:not([class]),.uk-overlay-area-content a:not([class]):hover{color:inherit}.uk-overlay-caption{position:absolute;bottom:0;left:0;right:0;padding:15px;background:rgba(0,0,0,.5);color:#fff;opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear;-webkit-transform:translate3d(0,0,0)}.uk-overlay-toggle.uk-hover .uk-overlay-caption,.uk-overlay-toggle:hover .uk-overlay-caption,.uk-overlay.uk-hover .uk-overlay-caption,.uk-overlay:hover .uk-overlay-caption{opacity:1}[class*=uk-column-]{-webkit-column-gap:25px;-moz-column-gap:25px;column-gap:25px}.uk-column-1-2{-webkit-column-count:2;-moz-column-count:2;column-count:2}.uk-column-1-3{-webkit-column-count:3;-moz-column-count:3;column-count:3}.uk-column-1-4{-webkit-column-count:4;-moz-column-count:4;column-count:4}.uk-column-1-5{-webkit-column-count:5;-moz-column-count:5;column-count:5}.uk-column-1-6{-webkit-column-count:6;-moz-column-count:6;column-count:6}@media (min-width:480px){.uk-column-small-1-2{-webkit-column-count:2;-moz-column-count:2;column-count:2}.uk-column-small-1-3{-webkit-column-count:3;-moz-column-count:3;column-count:3}.uk-column-small-1-4{-webkit-column-count:4;-moz-column-count:4;column-count:4}.uk-column-small-1-5{-webkit-column-count:5;-moz-column-count:5;column-count:5}.uk-column-small-1-6{-webkit-column-count:6;-moz-column-count:6;column-count:6}}@media (min-width:768px){.uk-column-medium-1-2{-webkit-column-count:2;-moz-column-count:2;column-count:2}.uk-column-medium-1-3{-webkit-column-count:3;-moz-column-count:3;column-count:3}.uk-column-medium-1-4{-webkit-column-count:4;-moz-column-count:4;column-count:4}.uk-column-medium-1-5{-webkit-column-count:5;-moz-column-count:5;column-count:5}.uk-column-medium-1-6{-webkit-column-count:6;-moz-column-count:6;column-count:6}}@media (min-width:960px){.uk-column-large-1-2{-webkit-column-count:2;-moz-column-count:2;column-count:2}.uk-column-large-1-3{-webkit-column-count:3;-moz-column-count:3;column-count:3}.uk-column-large-1-4{-webkit-column-count:4;-moz-column-count:4;column-count:4}.uk-column-large-1-5{-webkit-column-count:5;-moz-column-count:5;column-count:5}.uk-column-large-1-6{-webkit-column-count:6;-moz-column-count:6;column-count:6}}@media (min-width:1220px){.uk-column-xlarge-1-2{-webkit-column-count:2;-moz-column-count:2;column-count:2}.uk-column-xlarge-1-3{-webkit-column-count:3;-moz-column-count:3;column-count:3}.uk-column-xlarge-1-4{-webkit-column-count:4;-moz-column-count:4;column-count:4}.uk-column-xlarge-1-5{-webkit-column-count:5;-moz-column-count:5;column-count:5}.uk-column-xlarge-1-6{-webkit-column-count:6;-moz-column-count:6;column-count:6}}[class*=uk-animation-]{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media screen{[data-uk-scrollspy*=uk-animation-]:not([data-uk-scrollspy*=target]){opacity:0}}.uk-animation-fade{-webkit-animation-name:uk-fade;animation-name:uk-fade;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-timing-function:linear!important;animation-timing-function:linear!important}.uk-animation-scale-up{-webkit-animation-name:uk-fade-scale-02;animation-name:uk-fade-scale-02}.uk-animation-scale-down{-webkit-animation-name:uk-fade-scale-18;animation-name:uk-fade-scale-18}.uk-animation-slide-top{-webkit-animation-name:uk-fade-top;animation-name:uk-fade-top}.uk-animation-slide-bottom{-webkit-animation-name:uk-fade-bottom;animation-name:uk-fade-bottom}.uk-animation-slide-left{-webkit-animation-name:uk-fade-left;animation-name:uk-fade-left}.uk-animation-slide-right{-webkit-animation-name:uk-fade-right;animation-name:uk-fade-right}.uk-animation-scale{-webkit-animation-name:uk-scale-12;animation-name:uk-scale-12}.uk-animation-shake{-webkit-animation-name:uk-shake;animation-name:uk-shake}.uk-animation-reverse{-webkit-animation-direction:reverse;animation-direction:reverse;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}.uk-animation-15{-webkit-animation-duration:15s;animation-duration:15s}.uk-animation-top-left{-webkit-transform-origin:0 0;transform-origin:0 0}.uk-animation-top-center{-webkit-transform-origin:50% 0;transform-origin:50% 0}.uk-animation-top-right{-webkit-transform-origin:100% 0;transform-origin:100% 0}.uk-animation-middle-left{-webkit-transform-origin:0 50%;transform-origin:0 50%}.uk-animation-middle-right{-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.uk-animation-bottom-left{-webkit-transform-origin:0 100%;transform-origin:0 100%}.uk-animation-bottom-center{-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.uk-animation-bottom-right{-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.uk-animation-hover:not(:hover),.uk-animation-hover:not(:hover) [class*=uk-animation-],.uk-touch .uk-animation-hover:not(.uk-hover),.uk-touch .uk-animation-hover:not(.uk-hover) [class*=uk-animation-]{-webkit-animation-name:none;animation-name:none}@-webkit-keyframes uk-fade{0%{opacity:0}100%{opacity:1}}@keyframes uk-fade{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes uk-fade-top{0%{opacity:0;-webkit-transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-fade-top{0%{opacity:0;transform:translateY(-100%)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes uk-fade-bottom{0%{opacity:0;-webkit-transform:translateY(100%)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-fade-bottom{0%{opacity:0;transform:translateY(100%)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes uk-fade-left{0%{opacity:0;-webkit-transform:translateX(-100%)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes uk-fade-left{0%{opacity:0;transform:translateX(-100%)}100%{opacity:1;transform:translateX(0)}}@-webkit-keyframes uk-fade-right{0%{opacity:0;-webkit-transform:translateX(100%)}100%{opacity:1;-webkit-transform:translateX(0)}}@keyframes uk-fade-right{0%{opacity:0;transform:translateX(100%)}100%{opacity:1;transform:translateX(0)}}@-webkit-keyframes uk-fade-scale-02{0%{opacity:0;-webkit-transform:scale(.2)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes uk-fade-scale-02{0%{opacity:0;transform:scale(.2)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes uk-fade-scale-15{0%{opacity:0;-webkit-transform:scale(1.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes uk-fade-scale-15{0%{opacity:0;transform:scale(1.5)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes uk-fade-scale-18{0%{opacity:0;-webkit-transform:scale(1.8)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes uk-fade-scale-18{0%{opacity:0;transform:scale(1.8)}100%{opacity:1;transform:scale(1)}}@-webkit-keyframes uk-slide-left{0%{-webkit-transform:translateX(-100%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-slide-right{0%{-webkit-transform:translateX(100%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-right{0%{transform:translateX(100%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-slide-left-33{0%{-webkit-transform:translateX(33%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-left-33{0%{transform:translateX(33%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-slide-right-33{0%{-webkit-transform:translateX(-33%)}100%{-webkit-transform:translateX(0)}}@keyframes uk-slide-right-33{0%{transform:translateX(-33%)}100%{transform:translateX(0)}}@-webkit-keyframes uk-scale-12{0%{-webkit-transform:scale(1.2)}100%{-webkit-transform:scale(1)}}@keyframes uk-scale-12{0%{transform:scale(1.2)}100%{transform:scale(1)}}@-webkit-keyframes uk-rotate{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@keyframes uk-rotate{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}@-webkit-keyframes uk-shake{0%,100%{-webkit-transform:translateX(0)}10%{-webkit-transform:translateX(-9px)}20%{-webkit-transform:translateX(8px)}30%{-webkit-transform:translateX(-7px)}40%{-webkit-transform:translateX(6px)}50%{-webkit-transform:translateX(-5px)}60%{-webkit-transform:translateX(4px)}70%{-webkit-transform:translateX(-3px)}80%{-webkit-transform:translateX(2px)}90%{-webkit-transform:translateX(-1px)}}@keyframes uk-shake{0%,100%{transform:translateX(0)}10%{transform:translateX(-9px)}20%{transform:translateX(8px)}30%{transform:translateX(-7px)}40%{transform:translateX(6px)}50%{transform:translateX(-5px)}60%{transform:translateX(4px)}70%{transform:translateX(-3px)}80%{transform:translateX(2px)}90%{transform:translateX(-1px)}}@-webkit-keyframes uk-slide-top-fixed{0%{opacity:0;-webkit-transform:translateY(-10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-slide-top-fixed{0%{opacity:0;transform:translateY(-10px)}100%{opacity:1;transform:translateY(0)}}@-webkit-keyframes uk-slide-bottom-fixed{0%{opacity:0;-webkit-transform:translateY(10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes uk-slide-bottom-fixed{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:translateY(0)}}.uk-dropdown,.uk-dropdown-blank{display:none;position:absolute;z-index:1020;box-sizing:border-box;width:200px}.uk-dropdown{padding:15px;background:#fff;color:#444;font-size:1rem;vertical-align:top;border:1px solid #ddd;border-radius:4px}.uk-dropdown:focus{outline:0}.uk-open>.uk-dropdown,.uk-open>.uk-dropdown-blank{display:block;-webkit-animation:uk-fade .2s ease-in-out;animation:uk-fade .2s ease-in-out;-webkit-transform-origin:0 0;transform-origin:0 0}.uk-dropdown-top{margin-top:-5px}.uk-dropdown-bottom{margin-top:5px}.uk-dropdown-left{margin-left:-5px}.uk-dropdown-right{margin-left:5px}.uk-dropdown .uk-nav{margin:0 -15px}.uk-grid .uk-dropdown-grid+.uk-dropdown-grid{margin-top:15px}.uk-dropdown-grid>[class*=uk-width-]>.uk-panel+.uk-panel{margin-top:15px}@media (min-width:768px){.uk-dropdown:not(.uk-dropdown-stack)>.uk-dropdown-grid{margin-left:-15px;margin-right:-15px}.uk-dropdown:not(.uk-dropdown-stack)>.uk-dropdown-grid>[class*=uk-width-]{padding-left:15px;padding-right:15px}.uk-dropdown:not(.uk-dropdown-stack)>.uk-dropdown-grid>[class*=uk-width-]:nth-child(n+2){border-left:1px solid #ddd}.uk-dropdown-width-2:not(.uk-dropdown-stack){width:400px}.uk-dropdown-width-3:not(.uk-dropdown-stack){width:600px}.uk-dropdown-width-4:not(.uk-dropdown-stack){width:800px}.uk-dropdown-width-5:not(.uk-dropdown-stack){width:1000px}}@media (max-width:767px){.uk-dropdown-grid>[class*=uk-width-]{width:100%}.uk-dropdown-grid>[class*=uk-width-]:nth-child(n+2){margin-top:15px}}.uk-dropdown-stack>.uk-dropdown-grid>[class*=uk-width-]{width:100%}.uk-dropdown-stack>.uk-dropdown-grid>[class*=uk-width-]:nth-child(n+2){margin-top:15px}.uk-dropdown-small{min-width:150px;width:auto;padding:5px;white-space:nowrap}.uk-dropdown-small .uk-nav{margin:0 -5px}.uk-dropdown-navbar{margin-top:6px;background:#fff;color:#444;left:-1px}.uk-open>.uk-dropdown-navbar{-webkit-animation:uk-slide-top-fixed .2s ease-in-out;animation:uk-slide-top-fixed .2s ease-in-out}.uk-dropdown-scrollable{overflow-y:auto;max-height:200px}.uk-dropdown-navbar.uk-dropdown-flip{left:auto}.uk-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1010;overflow-y:auto;-webkit-overflow-scrolling:touch;background:rgba(0,0,0,.6);opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear;touch-action:cross-slide-y pinch-zoom double-tap-zoom;-webkit-transform:translateZ(0);transform:translateZ(0)}.uk-modal.uk-open{opacity:1}.uk-modal-page,.uk-modal-page body{overflow:hidden}.uk-modal-dialog{position:relative;box-sizing:border-box;margin:50px auto;padding:20px;width:600px;max-width:100%;max-width:calc(100% - 20px);background:#fff;opacity:0;-webkit-transform:translateY(-100px);transform:translateY(-100px);-webkit-transition:opacity .3s linear,-webkit-transform .3s ease-out;transition:opacity .3s linear,transform .3s ease-out;border-radius:4px;box-shadow:0 0 10px rgba(0,0,0,.3)}@media (max-width:767px){.uk-modal-dialog{width:auto;margin:10px auto}}.uk-open .uk-modal-dialog{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.uk-modal-dialog>:not([class*=uk-modal-]):last-child{margin-bottom:0}.uk-modal-dialog>.uk-close:first-child{margin:-10px -10px 0 0;float:right}.uk-modal-dialog>.uk-close:first-child+:not([class*=uk-modal-]){margin-top:0}.uk-modal-dialog-lightbox{margin:15px auto;padding:0;max-width:95%;max-width:calc(100% - 30px);min-height:50px;border-radius:0}.uk-modal-dialog-lightbox>.uk-close:first-child{position:absolute;top:-12px;right:-12px;margin:0;float:none}@media (max-width:767px){.uk-modal-dialog-lightbox>.uk-close:first-child{top:-7px;right:-7px}}.uk-modal-dialog-blank{margin:0;padding:0;width:100%;max-width:100%;-webkit-transition:opacity .3s linear;transition:opacity .3s linear}.uk-modal-dialog-blank>.uk-close:first-child{position:absolute;top:20px;right:20px;z-index:1;margin:0;float:none}@media (min-width:768px){.uk-modal-dialog-large{width:930px}}@media (min-width:1220px){.uk-modal-dialog-large{width:1130px}}.uk-modal-header{margin-bottom:15px;margin:-20px -20px 15px -20px;padding:20px;border-bottom:1px solid #ddd;border-radius:4px 4px 0 0;background:#fafafa}.uk-modal-footer{margin-top:15px;margin:15px -20px -20px -20px;padding:20px;border-top:1px solid #ddd;border-radius:0 0 4px 4px;background:#fafafa}.uk-modal-footer>:last-child,.uk-modal-header>:last-child{margin-bottom:0}.uk-modal-caption{position:absolute;left:0;right:0;bottom:-20px;margin-bottom:-10px;color:#fff;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uk-modal-spinner{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:25px;color:#ddd}.uk-modal-spinner:after{content:"\f110";display:block;font-family:FontAwesome;-webkit-animation:uk-rotate 2s infinite linear;animation:uk-rotate 2s infinite linear}.uk-offcanvas{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;touch-action:none;background:rgba(0,0,0,.1)}.uk-offcanvas.uk-active{display:block}.uk-offcanvas-page{position:fixed;-webkit-transition:margin-left .3s ease-in-out;transition:margin-left .3s ease-in-out;margin-left:0}.uk-offcanvas-bar{position:fixed;top:0;bottom:0;left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%);z-index:1001;width:270px;max-width:100%;background:#333;overflow-y:auto;-webkit-overflow-scrolling:touch;-webkit-transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;-ms-scroll-chaining:none}.uk-offcanvas.uk-active .uk-offcanvas-bar.uk-offcanvas-bar-show{-webkit-transform:translateX(0);transform:translateX(0)}.uk-offcanvas-bar-flip{left:auto;right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.uk-offcanvas-bar[mode=none]{-webkit-transition:none;transition:none}.uk-offcanvas-bar[mode=reveal]{-webkit-transform:translateX(0);transform:translateX(0);clip:rect(0,0,100vh,0);-webkit-transition:-webkit-transform .3s ease-in-out,clip .3s ease-in-out;transition:transform .3s ease-in-out,clip .3s ease-in-out}.uk-offcanvas-bar-flip[mode=reveal]{clip:none;-webkit-transform:translateX(100%);transform:translateX(100%)}.uk-offcanvas-bar-flip[mode=reveal]>*{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out}.uk-offcanvas.uk-active .uk-offcanvas-bar-flip[mode=reveal].uk-offcanvas-bar-show>*{-webkit-transform:translateX(0);transform:translateX(0)}.uk-offcanvas .uk-panel{margin:20px 15px;color:#777;text-shadow:0 1px 0 rgba(0,0,0,.5)}.uk-offcanvas .uk-panel-title{color:#ccc}.uk-offcanvas .uk-panel a:not([class]){color:#ccc}.uk-offcanvas .uk-panel a:not([class]):hover{color:#fff}.uk-offcanvas-bar:after{content:"";display:block;position:absolute;top:0;bottom:0;right:0;width:1px;background:rgba(0,0,0,.6);box-shadow:0 0 5px 2px rgba(0,0,0,.6)}.uk-offcanvas-bar-flip:after{right:auto;left:0;width:1px;background:rgba(0,0,0,.6);box-shadow:0 0 5px 2px rgba(0,0,0,.6)}.uk-switcher{margin:0;padding:0;list-style:none;touch-action:cross-slide-y pinch-zoom double-tap-zoom}.uk-switcher>:not(.uk-active){display:none}.uk-text-small{font-size:11px;line-height:16px}.uk-text-large{font-size:18px;line-height:24px;font-weight:400}.uk-text-bold{font-weight:700}.uk-text-muted{color:#999!important}.uk-text-primary{color:#2d7091!important}.uk-text-success{color:#659f13!important}.uk-text-warning{color:#e28327!important}.uk-text-danger{color:#d85030!important}.uk-text-contrast{color:#fff!important}.uk-text-left{text-align:left!important}.uk-text-right{text-align:right!important}.uk-text-center{text-align:center!important}.uk-text-justify{text-align:justify!important}.uk-text-top{vertical-align:top!important}.uk-text-middle{vertical-align:middle!important}.uk-text-bottom{vertical-align:bottom!important}@media (max-width:959px){.uk-text-center-medium{text-align:center!important}.uk-text-left-medium{text-align:left!important}}@media (max-width:767px){.uk-text-center-small{text-align:center!important}.uk-text-left-small{text-align:left!important}}.uk-text-nowrap{white-space:nowrap}.uk-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uk-text-break{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;-moz-hyphens:auto;hyphens:auto}.uk-text-capitalize{text-transform:capitalize!important}.uk-text-lowercase{text-transform:lowercase!important}.uk-text-uppercase{text-transform:uppercase!important}.uk-container{box-sizing:border-box;max-width:980px;padding:0 25px}@media (min-width:1220px){.uk-container{max-width:1200px;padding:0 35px}}.uk-container:after,.uk-container:before{content:"";display:table}.uk-container:after{clear:both}.uk-container-center{margin-left:auto;margin-right:auto}.uk-clearfix:before{content:"";display:table-cell}.uk-clearfix:after{content:"";display:table;clear:both}.uk-nbfc{overflow:hidden}.uk-nbfc-alt{display:table-cell;width:10000px}.uk-float-left{float:left}.uk-float-right{float:right}[class*=uk-float-]{max-width:100%}[class*=uk-align-]{display:block;margin-bottom:15px}.uk-align-left{margin-right:15px;float:left}.uk-align-right{margin-left:15px;float:right}@media (min-width:768px){.uk-align-medium-left{margin-right:15px;float:left}.uk-align-medium-right{margin-left:15px;float:right}}.uk-align-center{margin-left:auto;margin-right:auto}.uk-vertical-align{font-size:0}.uk-vertical-align:before{content:'';display:inline-block;height:100%;vertical-align:middle}.uk-vertical-align-bottom,.uk-vertical-align-middle{display:inline-block;max-width:100%;font-size:1rem}.uk-vertical-align-middle{vertical-align:middle}.uk-vertical-align-bottom{vertical-align:bottom}[class*=uk-height]{box-sizing:border-box}.uk-height-1-1{height:100%}.uk-height-viewport{height:100vh;min-height:600px}.uk-responsive-height,.uk-responsive-width{box-sizing:border-box}.uk-responsive-width{max-width:100%!important;height:auto}.uk-responsive-height{max-height:100%;width:auto}.uk-margin{margin-bottom:15px}*+.uk-margin{margin-top:15px}.uk-margin-top{margin-top:15px!important}.uk-margin-bottom{margin-bottom:15px!important}.uk-margin-left{margin-left:15px!important}.uk-margin-right{margin-right:15px!important}.uk-margin-large{margin-bottom:50px}*+.uk-margin-large{margin-top:50px}.uk-margin-large-top{margin-top:50px!important}.uk-margin-large-bottom{margin-bottom:50px!important}.uk-margin-large-left{margin-left:50px!important}.uk-margin-large-right{margin-right:50px!important}.uk-margin-small{margin-bottom:5px}*+.uk-margin-small{margin-top:5px}.uk-margin-small-top{margin-top:5px!important}.uk-margin-small-bottom{margin-bottom:5px!important}.uk-margin-small-left{margin-left:5px!important}.uk-margin-small-right{margin-right:5px!important}.uk-margin-remove{margin:0!important}.uk-margin-top-remove{margin-top:0!important}.uk-margin-bottom-remove{margin-bottom:0!important}.uk-padding-remove{padding:0!important}.uk-padding-top-remove{padding-top:0!important}.uk-padding-bottom-remove{padding-bottom:0!important}.uk-padding-vertical-remove{padding-top:0!important;padding-bottom:0!important}.uk-border-circle{border-radius:50%}.uk-border-rounded{border-radius:5px}.uk-heading-large{font-size:36px;line-height:42px}@media (min-width:768px){.uk-heading-large{font-size:52px;line-height:64px}}.uk-link-muted,.uk-link-muted a{color:#444}.uk-link-muted a:hover,.uk-link-muted:hover{color:#444}.uk-link-reset,.uk-link-reset a,.uk-link-reset a:focus,.uk-link-reset a:hover,.uk-link-reset:focus,.uk-link-reset:hover{color:inherit;text-decoration:none}.uk-scrollable-text{height:300px;overflow-y:scroll;-webkit-overflow-scrolling:touch;resize:both}.uk-scrollable-box{box-sizing:border-box;height:170px;padding:10px;border:1px solid #ddd;overflow:auto;-webkit-overflow-scrolling:touch;resize:both;border-radius:3px}.uk-scrollable-box>:last-child{margin-bottom:0}.uk-overflow-hidden{overflow:hidden}.uk-overflow-container{overflow:auto;-webkit-overflow-scrolling:touch}.uk-overflow-container>:last-child{margin-bottom:0}.uk-position-absolute,[class*=uk-position-top],[class*=uk-position-bottom]{position:absolute!important}.uk-position-top{top:0;left:0;right:0}.uk-position-bottom{bottom:0;left:0;right:0}.uk-position-top-left{top:0;left:0}.uk-position-top-right{top:0;right:0}.uk-position-bottom-left{bottom:0;left:0}.uk-position-bottom-right{bottom:0;right:0}.uk-position-cover{position:absolute;top:0;bottom:0;left:0;right:0}.uk-position-relative{position:relative!important}.uk-position-z-index{z-index:1}.uk-display-block{display:block!important}.uk-display-inline{display:inline!important}.uk-display-inline-block{display:inline-block!important;max-width:100%}@media (min-width:960px){.uk-visible-small{display:none!important}.uk-visible-medium{display:none!important}.uk-hidden-large{display:none!important}}@media (min-width:768px) and (max-width:959px){.uk-visible-small{display:none!important}.uk-visible-large{display:none!important}.uk-hidden-medium{display:none!important}}@media (max-width:767px){.uk-visible-medium{display:none!important}.uk-visible-large{display:none!important}.uk-hidden-small{display:none!important}}.uk-hidden{display:none!important;visibility:hidden!important}.uk-invisible{visibility:hidden!important}.uk-visible-hover:hover .uk-hidden,.uk-visible-hover:hover .uk-invisible{display:block!important;visibility:visible!important}.uk-visible-hover-inline:hover .uk-hidden,.uk-visible-hover-inline:hover .uk-invisible{display:inline-block!important;visibility:visible!important}.uk-notouch .uk-hidden-notouch,.uk-touch .uk-hidden-touch{display:none!important}.uk-flex{display:-ms-flexbox;display:-webkit-flex;display:flex}.uk-flex-inline{display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inline-flex}.uk-flex-inline>*,.uk-flex>*{-ms-flex-negative:1}.uk-flex-top{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start}.uk-flex-middle{-ms-flex-align:center;-webkit-align-items:center;align-items:center}.uk-flex-bottom{-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end}.uk-flex-center{-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.uk-flex-right{-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.uk-flex-space-between{-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.uk-flex-space-around{-ms-flex-pack:distribute;-webkit-justify-content:space-around;justify-content:space-around}.uk-flex-row-reverse{-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.uk-flex-column{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.uk-flex-column-reverse{-ms-flex-direction:column-reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}.uk-flex-nowrap{-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.uk-flex-wrap{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.uk-flex-wrap-reverse{-ms-flex-wrap:wrap-reverse;-webkit-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.uk-flex-wrap-top{-ms-flex-line-pack:start;-webkit-align-content:flex-start;align-content:flex-start}.uk-flex-wrap-middle{-ms-flex-line-pack:center;-webkit-align-content:center;align-content:center}.uk-flex-wrap-bottom{-ms-flex-line-pack:end;-webkit-align-content:flex-end;align-content:flex-end}.uk-flex-wrap-space-between{-ms-flex-line-pack:justify;-webkit-align-content:space-between;align-content:space-between}.uk-flex-wrap-space-around{-ms-flex-line-pack:distribute;-webkit-align-content:space-around;align-content:space-around}.uk-flex-order-first{-ms-flex-order:-1;-webkit-order:-1;order:-1}.uk-flex-order-last{-ms-flex-order:99;-webkit-order:99;order:99}@media (min-width:480px){.uk-flex-order-first-small{-ms-flex-order:-1;-webkit-order:-1;order:-1}.uk-flex-order-last-small{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:768px){.uk-flex-order-first-medium{-ms-flex-order:-1;-webkit-order:-1;order:-1}.uk-flex-order-last-medium{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:960px){.uk-flex-order-first-large{-ms-flex-order:-1;-webkit-order:-1;order:-1}.uk-flex-order-last-large{-ms-flex-order:99;-webkit-order:99;order:99}}@media (min-width:1220px){.uk-flex-order-first-xlarge{-ms-flex-order:-1;-webkit-order:-1;order:-1}.uk-flex-order-last-xlarge{-ms-flex-order:99;-webkit-order:99;order:99}}.uk-flex-item-none{-ms-flex:none;-webkit-flex:none;flex:none}.uk-flex-item-auto{-ms-flex:auto;-webkit-flex:auto;flex:auto;-ms-flex-negative:1}.uk-flex-item-1{-ms-flex:1;-webkit-flex:1;flex:1}.uk-contrast{color:#fff}.uk-contrast .uk-link,.uk-contrast a:not([class]){color:rgba(255,255,255,.7);text-decoration:none}.uk-contrast .uk-link:hover,.uk-contrast a:not([class]):hover{color:#fff;text-decoration:underline}.uk-contrast :not(pre)>code,.uk-contrast :not(pre)>kbd,.uk-contrast :not(pre)>samp{color:#fff;border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.1)}.uk-contrast em{color:#fff}.uk-contrast h1,.uk-contrast h2,.uk-contrast h3,.uk-contrast h4,.uk-contrast h5,.uk-contrast h6{color:#fff}.uk-contrast hr{border-top-color:rgba(255,255,255,.2)}.uk-contrast .uk-nav li>a,.uk-contrast .uk-nav li>a:hover{text-decoration:none}.uk-contrast .uk-nav-side>li>a{color:#fff}.uk-contrast .uk-nav-side>li>a:focus,.uk-contrast .uk-nav-side>li>a:hover{background:rgba(255,255,255,.1);color:#fff;text-shadow:none}.uk-contrast .uk-nav-side>li.uk-active>a{background:#fff;color:#444;text-shadow:none}.uk-contrast .uk-nav-side .uk-nav-header{color:#fff}.uk-contrast .uk-nav-side .uk-nav-divider{border-top-color:rgba(255,255,255,.2)}.uk-contrast .uk-nav-side ul a{color:rgba(255,255,255,.7)}.uk-contrast .uk-nav-side ul a:hover{color:#fff}.uk-contrast .uk-subnav>*>a{color:rgba(255,255,255,.7);text-decoration:none}.uk-contrast .uk-subnav>*>a:focus,.uk-contrast .uk-subnav>*>a:hover{color:#fff;text-decoration:none}.uk-contrast .uk-subnav>.uk-active>a{color:#fff}.uk-contrast .uk-subnav-line>:nth-child(n+2):before{border-left-color:rgba(255,255,255,.2)}.uk-contrast .uk-subnav-pill>*>a:focus,.uk-contrast .uk-subnav-pill>*>a:hover{background:rgba(255,255,255,.7);color:#444;text-decoration:none}.uk-contrast .uk-subnav-pill>.uk-active>a{background:#fff;color:#444}.uk-contrast .uk-tab{border-bottom-color:rgba(255,255,255,.2)}.uk-contrast .uk-tab>li>a{border-color:transparent;color:rgba(255,255,255,.7);text-shadow:none}.uk-contrast .uk-tab>li.uk-open>a,.uk-contrast .uk-tab>li>a:focus,.uk-contrast .uk-tab>li>a:hover{border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.7);color:#444;text-decoration:none}.uk-contrast .uk-tab>li.uk-active>a{border-color:rgba(255,255,255,.2);border-bottom-color:transparent;background:#fff;color:#444}.uk-contrast .uk-tab-center{border-bottom-color:rgba(255,255,255,.2)}.uk-contrast .uk-tab-grid:before{border-top-color:rgba(255,255,255,.2)}.uk-contrast .uk-list-line>li:nth-child(n+2){border-top-color:rgba(255,255,255,.2)}.uk-contrast .uk-form input:not([type]),.uk-contrast .uk-form input[type=text],.uk-contrast .uk-form input[type=password],.uk-contrast .uk-form input[type=email],.uk-contrast .uk-form input[type=url],.uk-contrast .uk-form input[type=search],.uk-contrast .uk-form input[type=tel],.uk-contrast .uk-form input[type=number],.uk-contrast .uk-form input[type=datetime],.uk-contrast .uk-form input[type=datetime-local],.uk-contrast .uk-form input[type=date],.uk-contrast .uk-form input[type=month],.uk-contrast .uk-form input[type=time],.uk-contrast .uk-form input[type=week],.uk-contrast .uk-form input[type=color],.uk-contrast .uk-form select,.uk-contrast .uk-form textarea{border-color:rgba(255,255,255,.8);background:rgba(255,255,255,.8);color:#444;background-clip:padding-box}.uk-contrast .uk-form input:not([type]):focus,.uk-contrast .uk-form input[type=text]:focus,.uk-contrast .uk-form input[type=password]:focus,.uk-contrast .uk-form input[type=email]:focus,.uk-contrast .uk-form input[type=url]:focus,.uk-contrast .uk-form input[type=search]:focus,.uk-contrast .uk-form input[type=tel]:focus,.uk-contrast .uk-form input[type=number]:focus,.uk-contrast .uk-form input[type=datetime]:focus,.uk-contrast .uk-form input[type=datetime-local]:focus,.uk-contrast .uk-form input[type=date]:focus,.uk-contrast .uk-form input[type=month]:focus,.uk-contrast .uk-form input[type=time]:focus,.uk-contrast .uk-form input[type=week]:focus,.uk-contrast .uk-form input[type=color]:focus,.uk-contrast .uk-form select:focus,.uk-contrast .uk-form textarea:focus{border-color:#fff;background:#fff;color:#444}.uk-contrast .uk-form :-ms-input-placeholder{color:rgba(68,68,68,.7)!important}.uk-contrast .uk-form ::-moz-placeholder{color:rgba(68,68,68,.7)}.uk-contrast .uk-form ::-webkit-input-placeholder{color:rgba(68,68,68,.7)}.uk-contrast .uk-button{color:#444;background:#fff;border-color:transparent}.uk-contrast .uk-button:focus,.uk-contrast .uk-button:hover{background-color:rgba(255,255,255,.8);color:#444;border-color:transparent}.uk-contrast .uk-button.uk-active,.uk-contrast .uk-button:active{background-color:rgba(255,255,255,.7);color:#444}.uk-contrast .uk-button-primary{background-color:#00a8e6;color:#fff}.uk-contrast .uk-button-primary:focus,.uk-contrast .uk-button-primary:hover{background-color:#35b3ee;color:#fff}.uk-contrast .uk-button-primary.uk-active,.uk-contrast .uk-button-primary:active{background-color:#0091ca;color:#fff}.uk-contrast .uk-icon-hover{color:rgba(255,255,255,.7)}.uk-contrast .uk-icon-hover:hover{color:#fff}.uk-contrast .uk-icon-button{background:#fff;color:#444;border-color:transparent}.uk-contrast .uk-icon-button:focus,.uk-contrast .uk-icon-button:hover{background-color:rgba(255,255,255,.8);color:#444;border-color:transparent}.uk-contrast .uk-icon-button:active{background-color:rgba(255,255,255,.7);color:#444}.uk-contrast .uk-text-muted{color:rgba(255,255,255,.6)!important}.uk-contrast .uk-text-primary{color:#2d7091!important}@media print{*,:after,:before{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}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}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}}
\ No newline at end of file
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gb-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gb-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gb-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gb-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gb-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/rs-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/rs-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/rs-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/rs-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/rs-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mt-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mt-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mt-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mt-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mt-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hr-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hr-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hr-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hr-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hr-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cy-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cy-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cy-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cy-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cy-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/by-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/by-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/by-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/by-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/by-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ro-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ro-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ro-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ro-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ro-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ch-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ch-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ch-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ch-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ch-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/europe-flag.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/jpeg
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/europe-flag.jpg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/europe-flag.jpg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/europe-flag.jpg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/europe-flag.jpg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/jpeg
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/il-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/il-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/il-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/il-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/il-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gr-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gr-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gr-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gr-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gr-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ba-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ba-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ba-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ba-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ba-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/it-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/it-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/it-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/it-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/it-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lv-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lv-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lv-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lv-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lv-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ee-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ee-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ee-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ee-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ee-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/tr-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/tr-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/tr-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/tr-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/tr-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/si-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/si-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/si-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/si-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/si-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/va-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/va-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/va-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/va-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/va-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fi-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fi-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fi-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fi-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fi-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/li-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/li-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/li-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/li-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/li-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/by-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/by-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/by-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/by-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/by-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cz-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cz-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cz-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cz-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cz-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gr-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gr-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gr-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gr-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gr-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/dk-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/dk-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/dk-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/dk-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/dk-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lt-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lt-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lt-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lt-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lt-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/se-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/se-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/se-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/se-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/se-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sm-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sm-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sm-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sm-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sm-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/de-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/de-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/de-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/de-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/de-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/li-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/li-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/li-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/li-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/li-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/tr-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/tr-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/tr-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/tr-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/tr-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/md-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/md-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/md-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/md-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/md-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ua-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ua-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ua-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ua-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ua-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mt-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mt-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mt-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mt-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mt-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/li-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/li-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/li-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/li-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/li-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sk-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sk-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sk-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sk-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sk-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/no-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/no-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/no-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/no-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/no-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/es-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/es-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/es-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/es-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/es-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fi-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fi-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fi-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fi-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fi-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/bg-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/bg-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/bg-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/bg-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/bg-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ge-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ge-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ge-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ge-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ge-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fr-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fr-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fr-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fr-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fr-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/be-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/be-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/be-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/be-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/be-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/dk-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/dk-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/dk-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/dk-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/dk-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ee-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ee-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ee-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ee-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ee-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ua-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ua-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ua-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ua-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ua-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gb-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gb-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gb-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gb-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gb-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/se-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/se-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/se-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/se-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/se-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ge-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ge-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ge-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ge-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ge-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ro-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ro-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ro-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ro-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ro-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sm-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sm-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sm-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sm-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sm-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ru-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ru-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ru-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ru-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ru-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/me-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/me-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/me-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/me-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/me-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ru-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ru-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ru-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ru-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ru-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ua-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ua-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ua-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ua-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ua-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/at-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/at-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/at-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/at-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/at-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/xk-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/xk-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/xk-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/xk-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/xk-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gr-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gr-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gr-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gr-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gr-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/md-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/md-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/md-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/md-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/md-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/si-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/si-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/si-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/si-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/si-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sk-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sk-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sk-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sk-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sk-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pt-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pt-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pt-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pt-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pt-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lt-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lt-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lt-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lt-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lt-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/nl-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/nl-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/nl-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/nl-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/nl-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/be-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/be-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/be-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/be-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/be-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lu-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lu-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lu-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lu-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lu-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ee-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ee-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ee-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ee-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ee-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/me-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/me-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/me-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/me-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/me-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mk-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mk-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mk-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mk-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mk-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fi-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fi-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fi-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fi-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fi-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/xk-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/xk-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/xk-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/xk-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/xk-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ba-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ba-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ba-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ba-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ba-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ad-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ad-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ad-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ad-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ad-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/it-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/it-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/it-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/it-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/it-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hr-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hr-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hr-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hr-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hr-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/rs-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/rs-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/rs-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/rs-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/rs-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/si-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/si-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/si-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/si-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/si-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mc-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mc-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mc-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mc-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mc-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/is-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/is-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/is-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/is-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/is-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ch-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ch-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ch-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ch-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ch-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cz-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cz-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cz-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cz-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/cz-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/bg-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/bg-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/bg-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/bg-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/bg-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lv-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lv-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lv-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lv-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lv-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mc-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mc-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mc-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mc-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mc-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hr-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hr-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hr-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hr-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hr-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/va-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/va-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/va-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/va-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/va-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/nl-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/nl-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/nl-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/nl-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/nl-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/de-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/de-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/de-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/de-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/de-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ru-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ru-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ru-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ru-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ru-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ro-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ro-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ro-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ro-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ro-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ie-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ie-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ie-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ie-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ie-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/no-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/no-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/no-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/no-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/no-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/va-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/va-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/va-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/va-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/va-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mc-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mc-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mc-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mc-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mc-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/se-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/se-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/se-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/se-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/se-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lu-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lu-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lu-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lu-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lu-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/al-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/al-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/al-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/al-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/al-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ie-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ie-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ie-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ie-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ie-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/is-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/is-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/is-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/is-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/is-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/es-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/es-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/es-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/es-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/es-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/at-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/at-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/at-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/at-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/at-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/al-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/al-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/al-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/al-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/al-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/tr-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/tr-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/tr-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/tr-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/tr-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lv-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lv-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lv-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lv-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lv-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/no-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/no-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/no-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/no-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/no-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/xk-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/xk-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/xk-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/xk-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/xk-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lt-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lt-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lt-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lt-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lt-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/it-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/it-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/it-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/it-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/it-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pl-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pl-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pl-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pl-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pl-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ge-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ge-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ge-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ge-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ge-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mt-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mt-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mt-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mt-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mt-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pl-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pl-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pl-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pl-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pl-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/me-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/me-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/me-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/me-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/me-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ba-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ba-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ba-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ba-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ba-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/publications-icon-bak-blue.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/publications-icon-bak-blue.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/publications-icon-bak-blue.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/publications-icon-bak-blue.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/publications-icon-bak-blue.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pt-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pt-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pt-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pt-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pt-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/software-icon.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/software-icon.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/software-icon.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/software-icon.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/software-icon.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/dk-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/dk-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/dk-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/dk-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/dk-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/publications-icon-white.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/publications-icon-white.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/publications-icon-white.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/publications-icon-white.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/publications-icon-white.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/journals-icon.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/journals-icon.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/journals-icon.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/journals-icon.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/journals-icon.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hu-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hu-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hu-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hu-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hu-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mk-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mk-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mk-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mk-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mk-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sk-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sk-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sk-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sk-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sk-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/al-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/al-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/al-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/al-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/al-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/rs-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/rs-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/rs-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/rs-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/rs-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gb-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gb-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gb-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gb-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/gb-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/be-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/be-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/be-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/be-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/be-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sm-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sm-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sm-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sm-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/sm-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hu-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hu-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hu-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hu-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hu-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ad-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ad-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ad-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ad-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ad-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/repositories-icon.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/repositories-icon.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/repositories-icon.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/repositories-icon.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/repositories-icon.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/datasets-icon-white.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/datasets-icon-white.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/datasets-icon-white.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/datasets-icon-white.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/datasets-icon-white.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/sort-descending.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/sort-descending.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/sort-descending.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/sort-descending.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/sort-descending.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/datasets-icon.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/datasets-icon.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/datasets-icon.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/datasets-icon.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/datasets-icon.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pl-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pl-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pl-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pl-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pl-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/nl-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/nl-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/nl-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/nl-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/nl-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/de-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/de-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/de-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/de-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/de-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pt-flag-round.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pt-flag-round.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pt-flag-round.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pt-flag-round.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/pt-flag-round.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hu-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hu-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hu-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hu-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/hu-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mk-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mk-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mk-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mk-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/mk-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/md-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/md-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/md-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/md-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/md-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/by-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/by-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/by-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/by-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/by-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lu-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lu-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lu-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lu-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/lu-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/circle.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/circle.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/circle.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/circle.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/circle.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/1.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/1.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/1.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/1.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/1.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrow.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrow.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrow.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrow.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrow.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/4.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/4.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/4.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/4.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/4.svg
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ad-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ad-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ad-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ad-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ad-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fr-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fr-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fr-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fr-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/fr-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ch-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ch-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ch-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ch-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/ch-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/is-flag-square.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/is-flag-square.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/is-flag-square.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/is-flag-square.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/is-flag-square.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/repositories-icon-bak-green.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/repositories-icon-bak-green.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/repositories-icon-bak-green.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/repositories-icon-bak-green.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/repositories-icon-bak-green.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/other-icon-white.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/other-icon-white.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/other-icon-white.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/other-icon-white.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/other-icon-white.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/at-flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/at-flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/at-flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/at-flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/flags/at-flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/fav_oso.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/fav_oso.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/fav_oso.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/fav_oso.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/fav_oso.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/EU_footer_flag.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/EU_footer_flag.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/EU_footer_flag.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/EU_footer_flag.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/EU_footer_flag.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/4.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/4.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/4.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/4.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/4.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/2.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/2.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/2.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/2.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/2.svg
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/sort.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/sort.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/sort.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/sort.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/sort.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/policies-icon.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/policies-icon.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/policies-icon.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/policies-icon.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/policies-icon.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/6.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/6.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/6.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/6.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/6.svg
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/OS_Logo_small.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/OS_Logo_small.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/OS_Logo_small.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/OS_Logo_small.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/OS_Logo_small.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/OS_Logo_Horizontal.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/OS_Logo_Horizontal.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/OS_Logo_Horizontal.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/OS_Logo_Horizontal.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/OS_Logo_Horizontal.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/publications-icon.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/publications-icon.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/publications-icon.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/publications-icon.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/publications-icon.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/other-icon.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/other-icon.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/other-icon.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/other-icon.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/other-icon.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/software-icon-white.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/software-icon-white.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/software-icon-white.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/software-icon-white.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/software-icon-white.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/sort-ascending.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/sort-ascending.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/sort-ascending.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/sort-ascending.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/icons/sort-ascending.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/Asset 1.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/Asset 1.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/Asset 1.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/Asset 1.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/Asset 1.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/2.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/2.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/2.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/2.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/2.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/3.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/3.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/3.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/3.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/3.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/6.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/6.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/6.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/6.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/6.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/stacked-bar-chart.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/stacked-bar-chart.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/stacked-bar-chart.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/stacked-bar-chart.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/stacked-bar-chart.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio-2.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio-2.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio-2.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio-2.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio-2.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/5.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/5.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/5.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/5.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/5.svg
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/beta_flag.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/beta_flag.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/beta_flag.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/beta_flag.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/beta_flag.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/Logo_Horizontal_white_small.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/Logo_Horizontal_white_small.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/Logo_Horizontal_white_small.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/Logo_Horizontal_white_small.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/Logo_Horizontal_white_small.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/monthly-average-temperat.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/monthly-average-temperat.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/monthly-average-temperat.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/monthly-average-temperat.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/monthly-average-temperat.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_icons.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_icons.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_icons.less	(revision 60863)
@@ -0,0 +1,58 @@
+// Material Design Icons
+// http://google.github.io/material-design-icons/
+@material_icons_directory:   '../icons/material-design-icons/';
+
+@font-face {
+    font-family: 'Material Icons';
+    font-style: normal;
+    font-weight: 400;
+    src: url("@{material_icons_directory}MaterialIcons-Regular.eot"); /* For IE6-8 */
+    src: local('Material Icons'),
+    local('MaterialIcons-Regular'),
+    url("@{material_icons_directory}MaterialIcons-Regular.woff2") format('woff2'),
+    url("@{material_icons_directory}MaterialIcons-Regular.woff") format('woff'),
+    url("@{material_icons_directory}MaterialIcons-Regular.ttf") format('truetype');
+}
+.material-icons {
+    font-family: 'Material Icons';
+    font-weight: normal;
+    font-style: normal;
+    font-size: 18px;  /* Preferred icon size */
+    display: inline-block;
+    width: 1em;
+    height: 1em;
+    line-height: 1;
+    text-transform: none;
+    letter-spacing: normal;
+    /* Support for all WebKit browsers. */
+    -webkit-font-smoothing: antialiased;
+    /* Support for Safari and Chrome. */
+    text-rendering: optimizeLegibility;
+    /* Support for Firefox. */
+    -moz-osx-font-smoothing: grayscale;
+    /* Support for IE. */
+    font-feature-settings: 'liga';
+    vertical-align: -4px;
+    color: rgba(0, 0, 0, 0.54);
+    &.md-inactive {
+        color: rgba(0, 0, 0, 0.26);
+    }
+    &.md-24 {
+        font-size: 24px;
+        vertical-align: -8px;
+    }
+    &.md-36 {
+        font-size: 36px;
+        vertical-align: -16px;
+    }
+    &.md-48 {
+        font-size: 48px;
+        vertical-align: -24px;
+    }
+    &.md-light {
+        color: rgba(255, 255, 255, 1);
+        &.md-inactive {
+            color: rgba(255, 255, 255, 0.3);
+        }
+    }
+}

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_icons.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio-4.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio-4.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio-4.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio-4.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio-4.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_variables_mixins.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_variables_mixins.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_variables_mixins.less	(revision 60863)
@@ -0,0 +1,61 @@
+// shadows
+.boxShadowHelper(@level: 1){
+    & when (@level = 0) {
+        box-shadow: none !important;
+    }
+    & when (@level = 1) {
+        box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
+    }
+    & when (@level = 2) {
+        box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
+    }
+    & when (@level = 3) {
+        box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);
+    }
+    & when (@level = 4) {
+        box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22);
+    }
+    & when (@level = 5) {
+        box-shadow: 0 19px 38px rgba(0,0,0,0.30), 0 15px 12px rgba(0,0,0,0.22);
+    }
+}
+
+.md-box-shadow-left() {
+    box-shadow: -2px 2px 5px rgba(0,0,0,.26);
+}
+.md-box-shadow-right() {
+    box-shadow: 2px 2px 5px rgba(0,0,0,.26);
+}
+.md-box-shadow-medium-right() {
+    box-shadow: 4px 0 8px rgba(0,0,0,.26);
+}
+
+/* bg colors */
+.md-bg-cyan {
+    background-color: @md-color-cyan-600 !important;
+    color: @white;
+}
+.md-bg-light-green {
+    background-color: @md-color-light-green-600 !important;
+    color: @white;
+}
+.md-bg-grey {
+    background-color: @md-color-grey-700 !important;
+    color: @white;
+}
+.md-bg-red {
+    background-color: @md-color-red-700 !important;
+    color: @white;
+}
+.md-bg-light-blue {
+    background-color: @md-color-light-blue-700 !important;
+    color: @white;
+}
+.md-bg-teal {
+    background-color: @md-color-teal-600 !important;
+    color: @white;
+}
+.md-bg-purple {
+    background-color: @md-color-purple-600 !important;
+    color: @white;
+}
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_variables_mixins.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_list.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_list.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_list.less	(revision 60863)
@@ -0,0 +1,285 @@
+/* list */
+.md-list {
+    .reset_list;
+    .border-box;
+    .uk-nestable-list > li,
+    > li {
+        min-height: 48px;
+        padding: 8px 4px;
+        box-sizing: border-box;
+        border-bottom: 1px solid @border_color;
+        position: relative;
+        > .md-list-content {
+            overflow: hidden;
+            > span {
+                display: block;
+            }
+            .md-list-heading {
+                margin: 0;
+                font-weight: 500;
+                display: block;
+                overflow: hidden;
+                padding-bottom: 1px;
+            }
+            .md-list-menu {
+                float: right;
+                .md-list-menu-toggle {
+                    display: block;
+                    font-size: 18px;
+                    color: rgba(0,0,0,.8);
+                    width: 28px;
+                    height: 28px;
+                    line-height: 28px;
+                    border-radius: 14px;
+                    text-align: center;
+                }
+            }
+            .uk-badge {
+                float: right;
+                color: @white !important;
+            }
+            .md-list-action {
+                float: right;
+                margin-left: 8px;
+                margin-top: 2px;
+                display: none;
+            }
+            .md-list-action-placeholder {
+                float: right;
+                margin-left: 8px;
+                display: none;
+                width: 32px;
+                height: 32px;
+            }
+        }
+        .md-list-action-dropdown {
+            position: absolute;
+            right: 16px;
+            top: 10px;
+            display: none;
+        }
+        > a.md-list-content {
+            display: block;
+            color: @text_primary_color;
+        }
+        &:last-child {
+            border-bottom: none;
+        }
+        &.md-list-item-active {
+            color: @accent_color;
+            background: @background_color_default_hex;
+        }
+        &.md-list-item-disabled {
+            > .md-list-content {
+                color: @muted_color;
+                span {
+                    color: @muted_color !important;
+                }
+            }
+        }
+        &.heading_list {
+            min-height: 32px;
+            padding: 32px 8px 16px;
+            border-bottom: none;
+            background: transparent !important;
+            text-transform: uppercase;
+        }
+        .uk-touch &,
+        &:hover {
+            > .md-list-addon-element {
+                .uk-nestable-handle {
+                    display: block;
+                }
+            }
+            > .md-list-content {
+                .md-list-action,
+                .md-list-action-placeholder {
+                    display: block;
+                }
+            }
+            .md-list-action-dropdown {
+                display: block;
+            }
+        }
+    }
+    .uk-nestable-list > li {
+        margin-left: 64px;
+    }
+    &-addon {
+        > li {
+            margin-left: 64px;
+            position: relative;
+            &:last-child {
+                .md-list-addon-element {
+                    border-bottom: none;
+                    bottom: 0;
+                }
+            }
+            &:first-child {
+                .md-list-addon-element {
+                    top: 0;
+                }
+            }
+            &.md-list-item-active {
+                .md-list-addon-element {
+                    &,
+                    .material-icons {
+                        color: @accent_color;
+                    }
+                }
+            }
+        }
+        &-element {
+            position: absolute;
+            left: -64px;
+            top: -1px;
+            bottom: -1px;
+            width: 64px;
+            text-align: center;
+            padding: 8px 0;
+            display: block;
+            .element-status {
+                position: absolute;
+                right: 12px;
+                top: 10px;
+                width: 12px;
+                height: 12px;
+                border-radius: 50%;
+                background: @muted_color;
+                border: 1px solid @white;
+                &-danger {
+                    background: @danger_color;
+                }
+                &-success {
+                    background: @success_color;
+                }
+                &-warning {
+                    background: @warning_color;
+                }
+            }
+            > .md-list-addon-avatar {
+                margin-top: 2px;
+            }
+            > .md-list-addon-icon {
+                font-size: 28px;
+                margin-top: 4px;
+                color: @text_secondary_color;
+            }
+            > .material-icons {
+                margin-top: 6px;
+            }
+            .iradio_md,
+            .icheckbox_md {
+                margin-top: 10px;
+            }
+            .uk-nestable-handle {
+                position: absolute;
+                left: -2px;
+                top: 12px;
+                display: none;
+            }
+        }
+    }
+    &-interactive {
+        li {
+            cursor: pointer;
+        }
+    }
+    &-bg {
+        background: @white;
+    }
+    &-separated {
+        li {
+            background: @white;
+            padding: 8px;
+            + li {
+                border-top: none;
+                margin-top: 8px;
+            }
+        }
+    }
+    &-bg-no-sep {
+        background: @white;
+        padding: 8px;
+        li > .md-list-content {
+            padding: 0 4px;
+        }
+    }
+    &-outside {
+        > li {
+            padding: 0;
+            > .md-list-content {
+                padding: 8px 16px;
+                display: block;
+                color: @text_primary_color;
+            }
+            &.md-list-item-active,
+            &:hover:not(.heading_list) {
+                background: @background_color_default;
+            }
+            &.heading_list {
+                padding: 32px 16px 16px;
+            }
+        }
+        &.md-list-addon {
+            li {
+                margin-left: 0;
+                .md-list-addon-element {
+                    position: relative;
+                    top: auto;
+                    left: auto;
+                    float: left;
+                }
+                .md-list-content {
+                    padding-left: 0;
+                }
+            }
+        }
+    }
+    /*&-outside-wrapper {
+        overflow: hidden;
+    }*/
+    .uk-nestable-list {
+        padding-left: 0;
+        .uk-nestable-item {
+            padding-right: 0;
+        }
+    }
+    .uk-nestable-item + .uk-nestable-item {
+        margin-top: 0;
+    }
+    &-right {
+        &.md-list-addon {
+            > li {
+                margin-left: 0;
+                margin-right: 64px;
+                .md-list-addon-element {
+                    left: auto;
+                    right: -64px;
+                }
+            }
+        }
+    }
+    &-borderless {
+        > li {
+            border-bottom: none;
+        }
+    }
+}
+
+.uk-touch {
+    .md-list-addon-element {
+        .uk-nestable-handle {
+            display: block !important;
+        }
+    }
+    .md-list-content {
+        .md-list-action,
+        .md-list-action-placeholder {
+            display: block !important;
+        }
+    }
+    .md-list-action-dropdown {
+        display: block !important;
+    }
+}
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_list.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_precompiled_colors.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_precompiled_colors.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_precompiled_colors.less	(revision 60863)
@@ -0,0 +1,59 @@
+// variables
+@color_variants: 50,100,200,300,400,500,600,700,800,900,A100,A200,A400,A700;
+@color_array: 'red','pink','purple','deep-purple','indigo','blue','light-blue','cyan','teal','green','light-green','lime','yellow','amber','orange','deep-orange';
+@color_array_no_accent: 'brown','grey','blue-grey';
+
+// colors with accents
+.makeMdVariants(@i, @actColor) when (@i <= 14) {
+
+    @colorVariant: extract(@color_variants, @i);
+
+    .md-color-@{actColor}-@{colorVariant} {
+        color: ~"@{md-color-@{actColor}-@{colorVariant}}" !important;
+    }
+
+    .md-bg-@{actColor}-@{colorVariant} {
+        background-color: ~"@{md-color-@{actColor}-@{colorVariant}}" !important;
+    }
+
+    .makeMdVariants(@i + 1,@actColor);
+}
+.makeMdColors(@i) when (@i <= 16) {
+
+    @actColor: extract(@color_array, @i);
+
+    .makeMdVariants(1,e(@actColor));
+
+    .makeMdColors(@i + 1);
+}
+.makeMdColors(1);
+
+
+// colors without accent
+.makeMdVariantsNoAccent(@i, @actColor) when (@i <= 10) {
+
+    @colorVariant: extract(@color_variants, @i);
+
+    .md-color-@{actColor}-@{colorVariant} {
+        color: ~"@{md-color-@{actColor}-@{colorVariant}}" !important;
+    }
+
+    .md-bg-@{actColor}-@{colorVariant} {
+        background-color: ~"@{md-color-@{actColor}-@{colorVariant}}" !important;
+    }
+
+    .makeMdVariantsNoAccent(@i + 1,@actColor);
+}
+.makeMdColorsNoAccent(@i) when (@i <= 3) {
+
+    @actColorNoAccent: extract(@color_array_no_accent, @i);
+
+    .makeMdVariantsNoAccent(1,e(@actColorNoAccent));
+
+    .makeMdColorsNoAccent(@i + 1);
+}
+.makeMdColorsNoAccent(1);
+
+.md-color-white {
+    color: #fff !important;
+}
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_precompiled_colors.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_utils.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_utils.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_utils.less	(revision 60863)
@@ -0,0 +1,191 @@
+/*** utils ***/
+
+/* avatar */
+.md-user-image {
+    width: 34px;
+    border-radius: 50%;
+    &-large {
+        width: 82px;
+        border-radius: 50%;
+    }
+}
+.md-user {
+    &-placeholder {
+        background-color: @background_color_default;
+        width: 34px;
+        height: 34px;
+        border-radius: 50%;
+    }
+    &-letters {
+        display: inline-block;
+        line-height: 35px;
+        width: 34px;
+        height: 34px;
+        border-radius: 50%;
+        text-align: center;
+        text-transform: uppercase;
+        font-weight: 500;
+        background-color: @background_color_default;
+    }
+}
+
+/* icons */
+.md-icon {
+    font-size: 24px;
+    line-height: 32px !important;
+    height: 32px !important;
+    color: @text_secondary_color;
+    border-radius: 50%;
+    cursor: pointer;
+    transition: background 280ms ease-out,color 280ms ease-out;
+    width: 32px !important;
+    text-align: center;
+    -webkit-tap-highlight-color: rgba(0,0,0,0);
+    &:hover,
+    &:focus,
+    &:active,
+    &.active {
+        color: @text_primary_color;
+        background: rgba(0,0,0,.08);
+    }
+    &-light {
+        color: @white;
+        &:hover,
+        &:focus,
+        &:active {
+            color: @white;
+            background: rgba(0,0,0,.2);
+        }
+    }
+    &-dark {
+        color: @text_primary_color;
+        &:hover,
+        &:focus,
+        &:active {
+            color: @text_primary_color;
+            background: rgba(255,255,255,.6);
+        }
+    }
+    & + & {
+        margin-left: 4px;
+    }
+    &-btn {
+        display: inline-block;
+        &.active {
+            .md-icon {
+                color: @text_primary_color;
+                background: rgba(0,0,0,.08);
+            }
+        }
+    }
+    button& {
+        background: none;
+        border: none;
+        outline: none;
+    }
+}
+
+.uk-open {
+    .md-icon {
+        color: @text_primary_color;
+        background: rgba(0,0,0,.08);
+        &-light {
+            color: @white;
+            background: rgba(0,0,0,.2);
+        }
+        &-dark {
+            color: @text_primary_color;
+            background: rgba(255,255,255,.6);
+        }
+    }
+}
+
+
+/* dropdown list */
+.md-list-inputs {
+    .reset_list();
+    li {
+        + li {
+            margin-top: 8px;
+        }
+        .icheckbox_md {
+            float: left;
+        }
+        label {
+            overflow: hidden;
+            padding-left: 8px;
+            display: block;
+            cursor: pointer;
+        }
+    }
+}
+
+/* hr */
+.md-hr {
+    margin: 32px 0;
+    height: 0;
+    border-top: 2px solid @border_color;
+}
+
+/* animated show */
+@keyframes hierarchical_show {
+    0% {
+        opacity: 0;
+        transform: scale3d(.2, .2, 2);
+    }
+    50% {
+        opacity: 1;
+    }
+    100% {
+        transform: scale3d(1, 1, 1);
+    }
+}
+
+.hierarchical_show {
+    will-change: transform, opacity;
+    > * {
+        visibility: hidden;
+    }
+    &_inView {
+        > * {
+            animation-fill-mode: both;
+            animation-timing-function: @md_easing;
+            animation-duration: 700ms;
+            animation-name: hierarchical_show;
+            visibility: visible;
+        }
+    }
+}
+
+@keyframes hierarchical_slide {
+    0% {
+        opacity: 0;
+        transform: translate3d(0, 160%, 0);
+    }
+    33% {
+        opacity: 1;
+    }
+    100% {
+        transform: translate3d(0, 0, 0);
+    }
+}
+
+.hierarchical_slide {
+    will-change: transform, opacity;
+    > * {
+        visibility: hidden;
+    }
+    &_inView {
+        > * {
+            animation-fill-mode: both;
+            animation-timing-function: @md_easing;
+            animation-duration: 700ms;
+            animation-name: hierarchical_slide;
+            visibility: visible;
+        }
+    }
+}
+
+.fast_animation {
+    animation-duration: 350ms;
+}
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_utils.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/md_main.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/md_main.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/md_main.less	(revision 60863)
@@ -0,0 +1,21 @@
+// variables_mixins
+@import '_md_variables_mixins';
+// buttons
+@import '_md_buttons';
+// colors
+@import '_md_colors';
+@import '_md_precompiled_colors';
+// cards
+@import '_md_cards';
+// forms
+@import '_md_forms';
+// icons
+@import '_md_icons';
+// list
+@import '_md_list';
+// panels
+@import '_md_panels';
+// top bar
+@import '_md_top_bar';
+// utils
+@import '_md_utils';
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/md_main.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/_variables_mixins.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/_variables_mixins.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/_variables_mixins.less	(revision 60863)
@@ -0,0 +1,140 @@
+// colors
+@text_primary_color:			#212121;
+@text_secondary_color:			#727272;
+@text_muted:                    #aaa;
+@site_background:               #fff;
+
+@border_color:                  rgba(0,0,0,0.12);
+@border_color_hex:              #e0e0e0;
+@border_color_light:            rgba(0,0,0,0.08);
+@background_color_default:      rgba(0,0,0,0.085);
+@background_color_default_hex:  #ededed;
+@hover_bg:                      #f5f5f5;
+
+@white:                         #fff;
+
+@danger_color:                  @md-color-red-600;
+@primary_color:                 @md-color-blue-500;
+@primary_color_dark:            @md-color-blue-700;
+@success_color:                 @md-color-light-green-600;
+@warning_color:                 @md-color-amber-700;
+@muted_color:                   @md-color-grey-400;
+
+// theme
+@theme_primary_color:           @md-color-blue-500;
+@theme_light_color:             @md-color-blue-50;
+@theme_dark_color:              @md-color-blue-700;
+@accent_color:                  @md-color-light-green-600;
+
+/* md buttons */
+@hover_btn:                     rgba(153,153,153,0.2);
+@active_btn:                    rgba(153,153,153,0.4);
+
+// input colors
+@input_on_color:                @md-color-teal-500;
+@input_off_color:               rgba(0,0,0,.54);
+@input_disabled_color:          rgba(0,0,0,.26);
+@input_disabled_color_hex:      #bdbdbd;
+
+// swiftOut easing
+@md_easing:                     cubic-bezier(0.4,0,0.2,1);
+
+// main header
+@header_main_height:            64px;
+@header_main_mobile_height:     48px;
+@header_main_height_double:     (@header_main_height*2)+10;
+@header_main_zIndex:            1104;
+
+// top bar
+@top_bar_height:                40px;
+
+// main sidebar
+@sidebar_main_width:            240px;
+@sidebar_main_width_mini:       60px;
+
+// secondary sidebar
+@sidebar_secondary_width:       280px;
+
+// media queries
+@screen_xlarge:                 ~"only screen and (min-width: 1220px)";
+@screen_large:                  ~"only screen and (min-width: 960px)";
+@screen_medium:                 ~"only screen and (min-width: 768px)";
+@screen_small:                  ~"only screen and (min-width: 480px)";
+
+@screen_xlarge_max:             ~"only screen and (max-width: 1219px)";
+@screen_large_max:              ~"only screen and (max-width: 959px)";
+@screen_medium_max:             ~"only screen and (max-width: 767px)";
+@screen_small_max:              ~"only screen and (max-width: 479px)";
+
+// box-sizing: border-box (this and all childrens)
+.border-box() {
+    &,
+    &:before,
+    &:after,
+    *,
+    *:before,
+    *:after {
+        box-sizing: border-box;
+    }
+}
+
+// Retina background-image support with non-retina fall back
+.retina_image(@file-1x, @file-2x, @width-1x, @height-1x) {
+    background-image: url("@{file-1x}");
+    background-repeat: no-repeat;
+    @media only screen and (-webkit-min-device-pixel-ratio: 2),
+            only screen and ( min--moz-device-pixel-ratio: 2),
+            only screen and ( -o-min-device-pixel-ratio: 2/1),
+            only screen and ( min-device-pixel-ratio: 2),
+            only screen and ( min-resolution: 192dppx),
+            only screen and ( min-resolution: 2dppx) {
+        background-image: url("@{file-2x}");
+        background-size: @width-1x @height-1x;
+    }
+}
+
+// remove default styles for ordered/unordered list
+.reset_list(@margin: 0, @padding: 0) {
+    margin: @margin;
+    padding: @padding;
+    list-style: none;
+    > li {
+        padding: 0;
+        margin: 0;
+        list-style: none;
+    }
+}
+
+// clearfix
+.clearfix() {
+    &:before,
+    &:after {
+        content: " ";
+        display: table;
+    }
+    &:after {
+        clear: both;
+    }
+}
+
+// custom fonts
+.md_font(@weight: 400, @size: 14px, @height: 20px) {
+    font: @weight @size e('/') @height "Roboto", sans-serif;
+}
+.code_font(@weight: 400, @size: 14px, @height: 18px) {
+    font: @weight @size e('/') @height "Source Code Pro",Consolas, Monaco, 'Andale Mono', monospace !important;
+}
+
+.md_font_family() {
+    font-family: "Roboto", sans-serif;
+}
+
+// text truncate
+.truncate_line(@width: 100%) {
+    text-overflow: ellipsis;
+    display: inline-block;
+    vertical-align: top;
+    white-space: nowrap;
+    overflow: hidden;
+    width: @width;
+}
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/_variables_mixins.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/_altair_landing_page.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/_altair_landing_page.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/_altair_landing_page.less	(revision 60863)
@@ -0,0 +1,485 @@
+html {
+    background: @site_background;
+}
+body {
+    .md_font(400, 15px, 1.42857143);
+    box-sizing: border-box;
+    overflow-x: hidden;
+}
+
+/*html, body {
+    height: 100%;
+}*/
+
+a, button {
+    outline: none !important;
+}
+
+a {
+    color: @md-color-blue-600;
+    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+    &:hover,
+    &:active {
+        color: @md-color-blue-900;
+        text-decoration: none;
+    }
+}
+
+.uk-text-upper {
+    text-transform: uppercase;
+}
+
+.animate > * {
+    visibility: hidden;
+}
+
+.animated {
+    visibility: visible;
+}
+
+[class*=uk-animation-] {
+    animation-timing-function: @md_easing;
+    animation-duration: 840ms;
+}
+
+.heading {
+    &_a {
+        margin: 0;
+        .md_font(300,42px,48px);
+        .sub-heading {
+            font-weight: 300;
+            font-size: 24px;
+            line-height: 30px;
+            display: block;
+            padding-top: 10px;
+        }
+        @media @screen_large_max {
+            .md_font(300,32px,36px);
+            .sub-heading {
+                font-size: 20px;
+                line-height: 24px;
+            }
+        }
+    }
+    &_b {
+        margin: 0;
+        .md_font(300,32px,36px);
+        .sub-heading {
+            font-weight: 300;
+            font-size: 20px;
+            line-height: 26px;
+            display: block;
+            padding-top: 10px;
+        }
+        @media @screen_large_max {
+            .md_font(300,28px,32px);
+            .sub-heading {
+                font-size: 18px;
+                line-height: 22px;
+            }
+        }
+    }
+    &_c {
+        margin: 0;
+        .md_font(400,24px,28px);
+        .sub-heading {
+            font-weight: 300;
+            font-size: 18px;
+            line-height: 20px;
+            display: block;
+            padding-top: 10px;
+        }
+        @media @screen_large_max {
+            .md_font(300,22px,25px);
+            .sub-heading {
+                font-size: 16px;
+                line-height: 20px;
+            }
+        }
+    }
+    &_a,
+    &_b,
+    &_c {
+        + .uk-grid {
+            margin-top: 24px;
+        }
+        .material-icons {
+            vertical-align: middle;
+        }
+    }
+    &_light {
+        &,
+        .sub-heading {
+            color: @white;
+        }
+    }
+
+}
+
+// icons
+.icon {
+    &_large {
+        font-size: 64px;
+        @media @screen_large_max {
+            font-size: 48px;
+        }
+    }
+    &_dark {
+        color: @text_secondary_color;
+    }
+}
+
+// header
+#header_main {
+    transition: all 280ms @md_easing;
+    position: relative;
+    z-index: 10;
+    .uk-navbar {
+        background: @white;
+        &-nav {
+            > li {
+                > a {
+                    color: @text_secondary_color;
+                    text-transform: uppercase;
+                    font-size: 14px;
+                    .md_font_family();
+                    font-weight: 500;
+                    box-shadow: inset 0 -4px 0 rgba(255,255,255,0);
+                    background: none !important;
+                    transition: all 280ms @md_easing;
+                    &:hover,
+                    &:active {
+                        color: @text_secondary_color;
+                    }
+                }
+                &.current_active {
+                    a {
+                        box-shadow: inset 0 -4px 0 @accent_color;
+                    }
+                }
+            }
+        }
+    }
+    &.header-light {
+        background: @white;
+    }
+    .header_cta {
+        margin-top: 14px;
+        @media @screen_large_max {
+            margin-top: 6px;
+        }
+    }
+}
+#mobile_navigation_toggle {
+    display: none;
+}
+#mobile_navigation {
+    .uk-offcanvas-bar {
+        background: @white;
+        .md-box-shadow-right();
+        transition: transform 280ms @md_easing;
+        &:after {
+            display: none;
+
+        }
+        ul {
+            .reset_list(32px 0 0 0,0);
+            li {
+                a {
+                    display: block;
+                    font-size: 16px;
+                    font-weight: 500;
+                    line-height: 25px;
+                    padding: 8px 20px;
+                    color: @text_primary_color;
+                    small {
+                        font-size: 12px;
+                        color: @text_secondary_color;
+                        display: block;
+                        margin-top: -2px;
+                    }
+                    .menu_icon {
+                        width: 48px;
+                        text-align: left;
+                        display: inline-block;
+                        color: @text_secondary_color;
+                        float: left;
+                        .material-icons {
+                            font-size: 24px;
+                            vertical-align: top;
+                        }
+                    }
+                    .menu_title {
+                        display: block;
+                        overflow: hidden;
+                    }
+                }
+            }
+        }
+    }
+}
+.uk-offcanvas-page {
+    transition: margin 280ms @md_easing;
+}
+
+.header_sticky {
+    padding-top: @header_main_height;
+    @media @screen_large_max {
+        padding-top: @header_main_mobile_height;
+    }
+    #header_main {
+        position: fixed;
+        top: 0;
+        left: 0;
+        right: 0;
+        z-index: 1000;
+    }
+}
+.header_shadow {
+    #header_main {
+        box-shadow: 0 2px 6px rgba(0,0,0,0.25);
+    }
+}
+
+// top banner (slideshow)
+.banner {
+    color: @white;
+    position: relative;
+    .uk-slideshow {
+        &,
+        > li {
+            height: 640px;
+        }
+        > li {
+            background-size: 100% auto;
+            background-position: center center;
+            background-repeat: no-repeat;
+            .slide {
+                &_content_a {
+                    margin: 160px 0 0 640px;
+                }
+                &_content_b {
+                    margin: 320px 0 0 0;
+                    background: rgba(0,0,0,.4);
+                    padding: 24px;
+                }
+                &_content_c {
+                    margin: 120px 540px 0 0;
+                    .slide_header,
+                    p {
+                        color: @text_primary_color;
+                    }
+                }
+                &_header {
+                    color: @white;
+                    .md_font(400,38px,42px);
+                    margin: 0 0 18px;
+                }
+            }
+            p {
+                margin: 0;
+                font-size: 20px;
+                font-weight: 300;
+                + * {
+                   margin-top: 32px;
+                }
+            }
+        }
+    }
+    .slide_navigation {
+        display: none;
+    }
+    &:hover {
+        .slide_navigation {
+            display: block;
+        }
+    }
+}
+.uk-touch {
+    .slide_navigation {
+        display: block !important;
+    }
+}
+.uk-slidenav {
+    position: absolute;
+    top: 50%;
+    margin-top: -30px;
+    color: @white !important;
+    background: rgba(0,0,0,.2);
+    border-radius: 12px;
+    font-size: 48px;
+    transition: all 280ms @md_easing;
+    &-previous {
+        left: 16px;
+        &:before {
+            position: relative;
+            left: -2px;
+            top: -2px;
+        }
+    }
+    &-next {
+        right: 16px;
+        &:before {
+            position: relative;
+            right: -2px;
+            top: -2px;
+        }
+    }
+    &:active,
+    &:hover {
+        background: rgba(0,0,0,.6);
+        border-radius: 50%;
+    }
+}
+.uk-dotnav {
+    > li {
+        border: 2px solid rgba(255,255,255,.8);
+        padding: 2px;
+        margin-right: 6px;
+        border-radius: 50%;
+        &.uk-active {
+            border-color: @white;
+            > a {
+                background: @accent_color;
+            }
+        }
+        > a {
+            margin: 0;
+            width: 14px;
+            height: 14px;
+        }
+    }
+}
+
+// sections
+.section {
+    padding: 48px 0;
+    position: relative;
+    &_large {
+        padding: 64px 0;
+    }
+    &_dark {
+        color: @white;
+    }
+    &_gallery {
+        position: relative;
+        .slide_navigation {
+            display: none;
+        }
+        &:hover {
+            .slide_navigation {
+                display: block;
+            }
+        }
+    }
+}
+
+// uikit
+[class*=uk-width].uk-container-center {
+    float: none;
+}
+
+// media queries
+@media @screen_xlarge_max {
+    .banner {
+        .uk-slideshow {
+            &,
+            > li {
+                height: auto;
+                min-height: 360px;
+            }
+            > li {
+                .slide {
+                    &_content_a,
+                    &_content_b,
+                    &_content_c {
+                        margin: 0;
+                        position: absolute;
+                        left: 0;
+                        right: 0;
+                        top: 0;
+                        bottom: 0;
+                        background: rgba(0,0,0,.4);
+                        padding: 48px 48px 0;
+                        text-align: center;
+                    }
+                    &_header {
+                        margin-bottom: 20px;
+                        color: @white !important;
+                    }
+                }
+                p {
+                    font-size: 20px;
+                    color: @white !important;
+                    + * {
+                        margin-top: 24px;
+                    }
+                }
+            }
+        }
+    }
+}
+@media @screen_large_max {
+    #header_main {
+        height: @header_main_mobile_height;
+        .uk-navbar-brand {
+            line-height: 48px;
+            padding: 0;
+        }
+    }
+    #main_navigation {
+        display: none;
+        .uk-navbar {
+            &-nav {
+
+            }
+        }
+    }
+    #mobile_navigation_toggle {
+        padding: 12px 4px 10px;
+        display: inline-block;
+        i {
+            font-size: 24px;
+        }
+    }
+}
+@media @screen_medium_max {
+    .banner {
+        .uk-slideshow {
+            > li {
+                background-size: auto 100%;
+                .slide {
+                    &_content_a,
+                    &_content_b,
+                    &_content_c {
+                        margin: 0;
+                        position: absolute;
+                        left: 0;
+                        right: 0;
+                        top: 0;
+                        bottom: 0;
+                        background: rgba(0,0,0,.4);
+                        padding: 24px 12px;
+                        text-align: center;
+                    }
+                    &_header {
+                        .md_font(400,24px,28px);
+                        margin-bottom: 6px;
+                        color: @white !important;
+                    }
+                }
+                p {
+                    font-size: 15px;
+                    color: @white !important;
+                    + * {
+                        margin-top: 24px;
+                    }
+                }
+            }
+        }
+    }
+    .uk-container {
+        padding-left: 15px;
+        padding-right: 15px;
+    }
+}
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/_altair_landing_page.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/mapExample.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/mapExample.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/mapExample.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/mapExample.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/mapExample.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_cards.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_cards.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_cards.less	(revision 60863)
@@ -0,0 +1,525 @@
+/* cards */
+.md-card {
+    background: @white;
+    position: relative;
+    .boxShadowHelper(1);
+    border: none;
+    & + &,
+    & + .uk-grid,
+    .uk-grid + & {
+        margin-top: 25px;
+    }
+    .full_width_in_card {
+        padding: 16px 24px;
+        background: @background_color_default;
+    }
+    .md-card-toolbar {
+        height: @header_main_height;
+        //position: relative;
+        //z-index: 11;
+        padding: 0 16px;
+        border-bottom: 1px solid @border_color;
+        background: @white;
+        .clearfix();
+        &-heading-text {
+            .md_font(500,14px,50px);
+            color: @text_primary_color;
+            margin: 0;
+            float: left;
+            overflow: hidden;
+            height: 48px;
+            &.large {
+                font-size: 18px;
+                font-weight: 400;
+            }
+        }
+        .md-toggle-group {
+            float: left;
+            margin: 8px 0 0 16px;
+            &.md-toggle-group-small {
+                margin-top: 10px;
+            }
+        }
+        .md-card-toolbar-actions {
+            float: right;
+            padding-top: 10px;
+            .uk-open {
+                .md-card-toolbar-icon {
+                    background: @background_color_default;
+                    color: @text_primary_color;
+                }
+            }
+            .md-card-dropdown {
+                display: inline-block;
+                position: relative;
+            }
+            .selectize-control {
+                min-width: 220px;
+                margin-top: -3px;
+                .selectize-input {
+                    min-height: 30px;
+                    padding: 4px 8px;
+                }
+                .selectize-dropdown {
+                    margin-top: -34px;
+                }
+            }
+        }
+        .md-icon {
+            + .md-card-dropdown {
+               margin-left: 4px;
+            }
+        }
+        .md-card-fullscreen-deactivate {
+            margin: 9px 8px 0 0;
+        }
+        &-input {
+            border: none;
+            .md_font(400,18px,24px);
+            height: auto;
+            background: none !important;
+            padding: 12px 0;
+            width: 50%;
+            box-sizing: border-box;
+        }
+        .uk-tab {
+            margin-top: -2px;
+            border-bottom: none;
+            li > a {
+                padding: 10px 8px !important;
+            }
+        }
+    }
+    .md-card-head {
+        height: 160px;
+        position: relative;
+        border-bottom: 1px solid @border_color;
+        &-menu {
+            position: absolute;
+            right: 8px;
+            top: 8px;
+        }
+        &-avatar {
+            width: 82px;
+            height: 82px;
+            border-radius: 50%;
+            margin-top: 16px;
+            border: 2px solid @white;
+            display: inline-block;
+        }
+        &-text {
+            padding: 8px 16px 16px;
+            .md_font(500,16px,22px);
+            color: @text_primary_color;
+            margin: 0;
+            span {
+                display: block;
+                .md_font(400,12px,18px);
+                margin-top: -2px;
+            }
+            &.text_dark {
+                color: @text_primary_color !important;
+            }
+            &-over {
+                background-image: linear-gradient(to bottom, rgba(0,0,0,0.65) 0%,rgba(0,0,0,0) 100%);
+            }
+        }
+        &-subtext {
+            position: absolute;
+            bottom: 10px;
+            left: 0;
+            right: 0;
+            padding: 0 16px;
+            text-align: right;
+            color: @white;
+            span {
+                font-size: 26px;
+            }
+        }
+        &-icon {
+            font-size: 48px;
+            color: @white;
+            vertical-align: middle;
+        }
+        &.head_background {
+            background-repeat: no-repeat;
+            background-position: center center;
+            background-size: cover;
+            border-bottom-color: transparent;
+            .md-card-head-text {
+                color: @white;
+            }
+            &_top {
+                background-repeat: no-repeat;
+                background-position: center top;
+            }
+            &_bottom {
+                background-repeat: no-repeat;
+                background-position: center bottom;
+            }
+        }
+        .head_chart {
+            height: 100px;
+            width: 100%;
+            position: absolute !important;
+            left: 0;
+            top: 40px;
+        }
+        .fitVid_player {
+            width: 100%;
+            height: 160px;
+            overflow: hidden;
+        }
+        &-img {
+            height: 100%;
+            width: auto;
+        }
+        iframe {
+            height: 160px;
+        }
+    }
+    .md-card-content {
+        padding: 16px;
+        &.padding-reset {
+            padding: 0;
+        }
+        &.large-padding {
+            padding: 24px 35px;
+        }
+        &.small-padding {
+            padding: 8px;
+        }
+    }
+    .md-card-footer {
+        padding: 16px;
+        font-size: 14px;
+        line-height: 18px;
+        .md-card-footer-head {
+            .md_font(500,16px,20px);
+            margin: 0 0 4px;
+        }
+    }
+    &.md-card-fullscreen {
+        position: fixed;
+        z-index: 9998;
+        overflow-x: hidden;
+        .md-card-fullscreen-activate {
+            display: none;
+        }
+    }
+    .md-card-fullscreen-content {
+        display: none;
+        padding: 16px 0;
+        .md-card-fullscreen-content-hidden & {
+            display: block;
+            visibility: hidden;
+            padding: 0;
+        }
+    }
+    &.mdToolbar_fixed {
+        overflow-y: hidden;
+        > .md-card-toolbar {
+            position: fixed;
+            left: 0;
+            right: 0;
+            top: 0;
+            z-index: 9999;
+            .boxShadowHelper(2);
+        }
+        > .md-card-content {
+            overflow-y: scroll;
+            box-sizing: border-box;
+            position: absolute;
+            width: 100%;
+            top: @header_main_height;
+            bottom: 0;
+        }
+    }
+    &.md-card-overlay {
+        overflow: hidden;
+        padding-bottom: 54px;
+        .md-card-content {
+            height: 142px;
+            overflow: hidden;
+            box-sizing: border-box;
+            &.no_truncate {
+                position: relative;
+                &:after {
+                    position: absolute;
+                    bottom: 0;
+                    left: 0;
+                    right: 0;
+                    height: 8px;
+                    background-image: linear-gradient(to top, rgba(255,255,255,1)  50%,rgba(255,255,255,0)  100%);
+                    display: block;
+                    content: '';
+                    z-index: 10;
+                }
+            }
+            > pre {
+                margin-top: 0;
+                max-height: 110px;
+                > code {
+                    overflow: hidden;
+                }
+            }
+        }
+        .md-card-overlay-content {
+            position: absolute;
+            top: 100%;
+            left: 0;
+            right: 0;
+            padding: 0 16px;
+            margin-top: -54px;
+            border-top: 1px solid @border_color;
+            text-align: left;
+            bottom: 0;
+            background: @white;
+            z-index: 10;
+            transition: all 280ms @md_easing;
+            p {
+                margin: 0;
+                + * {
+                    margin-top: 16px
+                }
+                + p {
+                    margin-top: 4px
+                }
+            }
+        }
+        .md-card-overlay-header {
+            .clearfix;
+            padding: 12px 0;
+            h3,
+            h4 {
+                margin: 0;
+                .truncate_line;
+                padding-right: 32px;
+                box-sizing: border-box;
+            }
+            h3 {
+                .md_font(400, 16px, 30px);
+            }
+            h4 {
+                .md_font(500, 14px, 30px);
+            }
+            .md-icon {
+                position: absolute;
+                right: 12px;
+                top: 11px;
+            }
+        }
+        &-active {
+            .md-card-overlay-content {
+                top: -1px;
+                margin-top: 0;
+            }
+        }
+    }
+    &.md-card-hover {
+        transition: all 280ms @md_easing;
+        will-change: box-shadow;
+        &:hover {
+            .boxShadowHelper(3);
+        }
+    }
+    // ui-kit sortable
+    .uk-sortable-dragged & {
+        .boxShadowHelper(3);
+        canvas {
+            margin: 0 auto;
+            display: block;
+        }
+    }
+    .heading_list {
+        padding: 0;
+    }
+    &-primary,
+    &-success,
+    &-danger,
+    &-warning {
+        border-left: 4px solid transparent;
+    }
+    &-primary {
+        border-left-color: @primary_color;
+    }
+    &-success {
+        border-left-color: @success_color;
+    }
+    &-danger {
+        border-left-color: @danger_color;
+    }
+    &-warning {
+        border-left-color: @warning_color;
+    }
+}
+.md-expand,
+.md-expand-group > * {
+    opacity: 0;
+}
+.md-card-placeholder {
+    min-width: 100%;
+}
+.md-card-list-wrapper {
+    .border-box();
+    .md-card-list-header {
+        position: absolute;
+        top: -24px;
+        left: 0;
+    }
+    .md-card-list {
+        margin: 48px 0 0 0;
+        position: relative;
+        &:first-child {
+            margin-top: 24px;
+        }
+        > ul {
+            .reset_list();
+            > li {
+                min-height: 34px;
+                padding: 8px 16px;
+                font-size: 13px;
+                .clearfix();
+                transition: background 150ms,padding 200ms;
+                background: @white;
+                .boxShadowHelper(1);
+                &.item-shown {
+                    background: @white;
+                    padding: 8px 36px;
+                    .md-card-list-item {
+                        &-subject {
+                            @media @screen_medium_max {
+                                clear: both;
+                                float: none;
+                                padding-top: 16px;
+                                > span {
+                                    white-space: normal;
+                                }
+                            }
+                        }
+                        &-sender {
+                            width: auto;
+                            overflow: hidden;
+                        }
+                    }
+                    &.md-card-list-item-selected {
+                        position: relative;
+                        &:before {
+                            content: '';
+                            position: absolute;
+                            display: block;
+                            left: 0;
+                            top: 0;
+                            bottom: 0;
+                            width: 8px;
+                            background: @theme_light_color;
+                        }
+                    }
+                }
+            }
+        }
+        .md-card-list-item {
+            &-select,
+            &-avatar-wrapper,
+            &-sender {
+                float: left;
+            }
+            &-select {
+                padding: 6px 8px 0 0;
+            }
+            &-avatar-wrapper,
+            &-sender,
+            &-subject,
+            &-date {
+                padding: 0 8px;
+            }
+            &-avatar-wrapper {
+                .md-card-list-item-avatar {
+                    background: #757575;
+                    color: @white;
+                    .md-user-image;
+                    display: block;
+                }
+                span.md-card-list-item-avatar {
+                    line-height: 34px;
+                    text-transform: uppercase;
+                    text-align: center;
+                }
+
+            }
+            &-sender {
+                width: 220px;
+                line-height: 34px;
+                > span {
+                    .truncate_line();
+                }
+                @media @screen_xlarge_max {
+                    display: none;
+                }
+            }
+            &-subject {
+                overflow: hidden;
+                font-weight: 500;
+                > span {
+                    line-height: 34px;
+                    .truncate_line();
+                }
+                .md-card-list-item-sender-small {
+                    display: none;
+                    @media @screen_xlarge_max {
+                        display: block;
+                        + span {
+                            line-height: inherit;
+                        }
+                    }
+                    > span {
+                        .truncate_line();
+                        font-size: 12px;
+                        color: #999;
+                    }
+                }
+            }
+            &-date {
+                line-height: 34px;
+                float: right;
+                color: #999;
+                @media @screen_small_max {
+                    display: none;
+                }
+            }
+            &-menu {
+                float: right;
+                margin: 0 0 0 8px;
+                position: relative;
+                .uk-dropdown {
+                    .material-icons {
+                        margin-right: 8px;
+                    }
+                }
+            }
+            &-content-wrapper {
+                display: none;
+                clear: both;
+                opacity: 0;
+            }
+            &-content {
+                padding: 16px 16px 0 0;
+                max-height: 360px;
+                overflow-x: hidden;
+                margin: 0 0 40px;
+                top: 20px;
+                position: relative;
+                font-size: 14px;
+                + .md-card-list-item-reply {
+                    padding-top: 10px;
+                }
+            }
+            &-reply {
+                padding: 16px 0;
+            }
+            &-selected {
+                background: @theme_light_color;
+            }
+        }
+    }
+}

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_cards.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/_uikit_custom.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/_uikit_custom.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/_uikit_custom.less	(revision 60863)
@@ -0,0 +1,1090 @@
+// uikit custom styles
+
+/* animations */
+[class*="uk-animation-"] {
+    animation-timing-function: @md_easing;
+    animation-duration: 560ms;
+}
+
+/* alerts */
+.uk-alert {
+    border: none;
+    background: @theme_dark_color;
+    color: @white;
+    text-shadow: none;
+    padding-right: 32px;
+    position: relative;
+    display: block;
+    &-success {
+        background: @md-color-light-green-500 !important;
+    }
+    &-danger {
+        background: @md-color-red-600 !important;
+    }
+    &-warning {
+        background: @md-color-amber-700 !important;
+    }
+    &-info {
+        background: @md-color-cyan-700 !important;
+    }
+    &-large {
+        padding: 24px 32px 24px 24px;
+    }
+    &-close {
+        position: absolute;
+        top: 10px;
+        right: 8px;
+        float: none !important;
+        margin: 0 !important;
+        &:after {
+            color: @white !important;
+        }
+    }
+}
+
+/* badges */
+.uk-badge {
+    background: @md-color-cyan-700;
+    padding: 2px 6px;
+    border: none;
+    border-radius: 2px;
+    text-shadow: none;
+    font-size: 11px;
+    line-height: 15px;
+    font-weight: 400;
+    &-primary {
+        background: @theme_primary_color;
+    }
+    &-danger {
+        background: @danger_color;
+    }
+    &-warning {
+        background: @warning_color;
+    }
+    &-success {
+        background: @success_color;
+    }
+    &-muted {
+        background: @muted_color;
+    }
+    &-notification {
+        border-radius: 20px;
+    }
+    &.inline-label {
+        vertical-align: 1px;
+        margin-left: 4px;
+    }
+    &-outline {
+        border: 1px solid @border_color;
+        background: @white;
+        color: @text_primary_color;
+        padding-bottom: 0;
+        line-height: 16px;
+    }
+}
+
+/* buttons */
+.uk-button {
+    font-weight: 400;
+    border-radius: 2px;
+    transition: all 0.2s @md_easing;
+}
+
+/* comments */
+.uk-comment-list {
+    > li + li {
+        border-top: 1px dashed @border_color;
+        margin-top: 16px !important;
+    }
+    .uk-comment + ul {
+        margin: 8px 0 0 0;
+        @media @screen_medium {
+            padding-left: 48px;
+        }
+    }
+}
+.uk-comment {
+    &-header {
+        padding: 16px 8px 8px;
+        border: none;
+        background: none;
+        margin-bottom: 0;
+    }
+    &-title {
+        margin: 0;
+        font-size: 14px;
+        line-height: 20px;
+    }
+}
+
+
+/* dialog modals */
+.uk-modal {
+    z-index: @header_main_zIndex + 200;
+    background: rgba(0,0,0,0.5);
+    transition: opacity 250ms ease-out;
+    overflow: auto !important;
+    &.uk-modal-no-backdrop {
+        background: transparent;
+    }
+    &-dialog {
+        border-radius: 2px;
+        .boxShadowHelper(5);
+        padding: 24px;
+        display: block !important;
+        animation: none !important;
+        transition: transform 280ms @md_easing, opacity 280ms ease-in;
+        transform: scale(0);
+        .uk-open & {
+            transform: scale(1);
+        }
+        .uk-modal-header {
+            background: none;
+            border-bottom: none;
+            margin: 0 -24px 24px;
+            padding: 0 32px 0 24px;
+            overflow: hidden;
+            .uk-modal-title {
+                margin: 0;
+                .md_font(500, 18px, 28px);
+                span {
+                    font-size: 16px;
+                    display: block;
+                    color: @text_secondary_color;
+                }
+            }
+            .material-icons {
+                font-size: 24px;
+                vertical-align: -4px;
+                cursor: default;
+            }
+        }
+        .uk-modal-footer {
+            margin: 16px -16px -16px;
+            padding: 16px;
+            background: @white;
+            border-top: none;
+            .clearfix();
+            .md-icon-btn {
+                margin-top: 2px;
+            }
+        }
+        .uk-modal-caption {
+            bottom: 16px;
+            margin: 0 32px;
+        }
+        > .uk-close:first-child {
+            top: 8px;
+            right: 8px;
+            position: absolute;
+            float: none;
+            margin: 0;
+        }
+        &-lightbox {
+            padding: 0;
+            > .uk-close:first-child {
+                top: -11px;
+                right: -11px;
+                .boxShadowHelper(3);
+                border: none;
+            }
+        }
+        .uk-overflow-container {
+            margin: 16px 0;
+        }
+    }
+    .uk-margin.uk-modal-content {
+        margin-bottom: 0;
+    }
+    &.uk-modal-dialog-replace {
+        .uk-modal-content {
+            font-size: 18px;
+        }
+    }
+    &-spinner {
+        animation: uk-rotate 2s infinite linear;
+        margin-left: -12px;
+        margin-top: -17px;
+        left: 50%;
+        right: auto;
+    }
+}
+
+/* dropdowns */
+.uk-dropdown {
+    transform: scale(0.25,0);
+    opacity: 0;
+    transition: all 280ms @md_easing;
+    animation: none !important;
+    transform-origin: 50% 0 !important;
+    .boxShadowHelper(2);
+    border: none;
+    border-radius: 2px;
+    &.uk-dropdown-xlarge {
+        width: 360px;
+        @media @screen_small_max {
+            width: 260px;
+        }
+    }
+    &.uk-dropdown-large {
+        width: 260px;
+    }
+    &.uk-dropdown-small {
+        width: 160px;
+    }
+    > ul {
+        > li {
+            > a {
+                font-size: 14px;
+                color: @text_primary_color;
+                &:hover {
+                    background: @background_color_default;
+                }
+            }
+            &.uk-active {
+                > a {
+                    background: @background_color_default;
+                }
+            }
+            &.padding_sm {
+                padding: 2px 4px;
+            }
+            &.padding_md {
+                padding: 4px 8px;
+            }
+        }
+    }
+    &.dropdown-modal {
+        z-index: 1310;
+    }
+    &.dropdown-fs {
+        z-index: 9999;
+    }
+    &.uk-dropdown-scrollable {
+        -webkit-overflow-scrolling: touch;
+    }
+}
+[data-uk-dropdown*="top-"] {
+    .uk-dropdown {
+        transform-origin: 50% 100% !important;
+    }
+}
+[data-uk-dropdown*="left-"] {
+    .uk-dropdown {
+        transform-origin: 100% 50% !important;
+    }
+}
+[data-uk-dropdown*="right-"] {
+    .uk-dropdown {
+        transform-origin: 0 50% !important;
+    }
+}
+[data-uk-dropdown*='justify'] {
+    position: static !important;
+    [class*="uk-dropdown-width"] {
+        left: 0 !important;
+        width: 100% !important;
+        min-width: inherit !important;
+        margin-left: 0 !important;
+    }
+}
+.uk-dropdown-active {
+    display: block !important;
+}
+.uk-dropdown-shown {
+    transform: scale(1,1);
+    opacity: 1;
+}
+
+.uk-nav-dropdown {
+    > li {
+        > a {
+            &:focus,
+            &:hover {
+                text-shadow: none;
+                box-shadow: none;
+                color: @text_primary_color;
+                background: @hover_btn;
+            }
+        }
+    }
+}
+
+/* forms */
+.uk-form {
+    input:not([type]),
+    input[type=color],
+    input[type=date],
+    input[type=datetime-local],
+    input[type=email],
+    input[type=month],
+    input[type=number],
+    input[type=password],
+    input[type=search],
+    input[type=tel],
+    input[type=text],
+    input[type=time],
+    input[type=url],
+    input[type=week],
+    select,
+    textarea {
+        box-sizing: border-box;
+        padding: 8px;
+        border: 1px solid @border_color;
+        transition: border 200ms ease-in;
+        resize: none;
+        &:focus {
+            background: none;
+            border-color: @primary_color;
+        }
+    }
+    textarea {
+        transition: border-color 200ms ease-in, height 280ms ease-in;
+    }
+    &-row {
+        transition: all 200ms ease-out;
+        + .uk-form-row {
+            margin-top: 24px
+        }
+    }
+    &-stacked {
+        .uk-form-label {
+            font-weight: 500;
+            font-size: 13px;
+            display: block;
+            padding-bottom: 8px;
+            + p {
+                margin-top: 0;
+            }
+        }
+    }
+    &-help-block {
+        display: block;
+        font-size: 12px;
+        color: @text_secondary_color;
+        padding: 4px 0 0 0;
+        font-style: italic;
+    }
+    &-width {
+        &-large,
+        &-medium,
+        &-small,
+        &-mini {
+            max-width: 100%;
+        }
+    }
+}
+
+/* grid */
+.uk-grid + .uk-grid,
+.uk-grid-margin,
+.uk-grid > * > .uk-panel + .uk-panel {
+    margin-top: 48px;
+}
+.uk-grid.uk-grid-small + .uk-grid-small,
+.uk-grid.uk-grid-small > * > .uk-panel + .uk-panel,
+.uk-grid.uk-grid-small > .uk-grid-margin {
+    margin-top: 10px;
+}
+
+/* icons */
+[class*="uk-icon-"] {
+    color: @text_secondary_color;
+}
+
+/* navbar */
+.uk-navbar {
+    border-radius: 0;
+    border: none;
+    box-sizing: border-box;
+    &-brand {
+        line-height: @header_main_height;
+        display: inline-block;
+        margin: 0;
+        text-shadow: none;
+        color: @white;
+    }
+    &-nav {
+        > li > a {
+            height: @header_main_height;
+            text-shadow: none;
+            font-size: 16px;
+            border-radius: 0 !important;
+            line-height: @header_main_height + 4;
+            border: none !important;
+            margin: 0;
+            &:hover,
+            &:active {
+                background: none;
+            }
+            &.uk-navbar-nav-subtitle {
+                line-height: @header_main_height - 14;
+                margin: 0;
+                > div {
+                    margin-top: -12px;
+                    font-size: 11px;
+                }
+            }
+        }
+    }
+}
+
+/* panels */
+.uk-panel-box {
+    border-radius: 2px;
+    background: @white;
+    border-color: @border_color;
+    .uk-panel-teaser {
+        border-radius: 2px 2px 0 0;
+    }
+}
+
+/* tables */
+.uk-table {
+    td {
+        border-bottom-color: @border_color;
+    }
+    th {
+        border-bottom: 1px #444;
+    }
+    &-nowrap {
+        td,
+        th {
+            white-space: nowrap;
+        }
+    }
+    &-align-vertical {
+        td,
+        th {
+            vertical-align: middle;
+        }
+    }
+}
+.uk-table-no-border td {
+    border-bottom-color: transparent;
+}
+
+/* sticky */
+.uk-sticky-placeholder {
+    .uk-active {
+        z-index: @header_main_zIndex - 10;
+    }
+}
+
+/* subnav */
+.uk-subnav {
+    &-pill {
+        > * {
+            > * {
+                color: @text_primary_color;
+            }
+        }
+        > .uk-active {
+            > * {
+                background: @accent_color;
+            }
+        }
+    }
+}
+
+/* tables */
+.uk-table {
+    thead th {
+        border-bottom: 2px solid @border_color;
+    }
+    thead th,
+    tfoot td,
+    tfoot th {
+        font-style: normal;
+        font-weight: 400;
+        color: @text_secondary_color;
+        font-size: 14px;
+    }
+    td {
+        border-bottom-color: @border_color_hex;
+    }
+    tfoot td,
+    tfoot th {
+        border-top: 2px solid @border_color;
+        border-bottom: none;
+    }
+    &-striped tbody tr:nth-of-type(odd) {
+        background: @background_color_default;
+    }
+    &-hover tbody tr:hover {
+        background: @background_color_default;
+    }
+}
+
+/* thumbnails */
+.uk-thumbnail {
+    border-radius: 0;
+    border-color: @border_color;
+    &-caption {
+        padding: 4px 4px 0;
+        line-height: 20px;
+        color: @text_secondary_color;
+        font-size: 12px;
+    }
+}
+
+
+/* utilities */
+.uk-text-small {
+    font-size: 12px;
+}
+.uk-text-muted {
+    color: #757575 !important;
+}
+.uk-text-primary {
+    color: @primary_color !important;
+}
+.uk-text-danger {
+    color: @danger_color !important;
+}
+.uk-text-success {
+    color: @success_color !important;
+}
+.uk-text-warning {
+    color: @warning_color !important;
+}
+.uk-margin {
+    &-bottom {
+        margin-bottom: 16px !important;
+    }
+    &-small-bottom {
+        margin-bottom: 8px !important;
+    }
+    &-medium-bottom {
+        margin-bottom: 32px !important;
+    }
+    &-large-bottom {
+        margin-bottom: 48px !important;
+    }
+    &-medium-top {
+        margin-top: 32px !important;
+    }
+    &-large-top {
+        margin-top: 48px !important;
+    }
+    &-right {
+        margin-right: 16px !important;
+    }
+    &-medium-right {
+        margin-right: 32px !important;
+    }
+}
+.uk-close {
+    font-size: 18px;
+    opacity: 1;
+    &:hover,
+    &:focus {
+        opacity: 1;
+    }
+    &:after {
+        opacity: 1 !important;
+        color: @text_secondary_color;
+        content: '\e5cd';
+        font-family: "Material Icons";
+    }
+}
+
+/* ------------ Components ------------ */
+
+/* accordion */
+@import (less) "../../bower_components/uikit/css/components/accordion.almost-flat.css";
+.uk-accordion {
+    &-title {
+        background: @hover_btn;
+        border-radius: 0;
+        border: none;
+        margin: 0 0 4px;
+        font-size: 15px;
+        font-weight: 400;
+        padding: 8px 24px 8px 16px;
+        position: relative;
+        &:after {
+            content: '\e313';
+            font-family: "Material Icons";
+            font-size: 18px;
+            position: absolute;
+            top: 8px;
+            right: 8px;
+            display: block;
+            color: @text_secondary_color;
+            transition: transform 280ms;
+        }
+        &.uk-active {
+            &:after {
+                transform: rotate(-180deg);
+            }
+        }
+        &-primary {
+            background: @primary_color;
+            color: @white;
+            &:after {
+                color: @white;
+            }
+        }
+        &-danger {
+            background: @danger_color;
+            color: @white;
+            &:after {
+                color: @white;
+            }
+        }
+        &-success {
+            background: @success_color;
+            color: @white;
+            &:after {
+                color: @white;
+            }
+        }
+        &-warning {
+            background: @warning_color;
+            color: @white;
+            &:after {
+                color: @white;
+            }
+        }
+    }
+    &-content {
+        padding: 16px;
+    }
+    &-alt {
+        .uk-accordion-title {
+            background: @white;
+            margin: 0;
+            padding: 16px 24px 16px 48px;
+            border-top: 1px solid @border_color;
+            &:first-child {
+                border-top: none;
+            }
+            &:after {
+                color: @theme_primary_color;
+                content: '\e145';
+                right: auto;
+                left: 16px;
+                top: 16px;
+            }
+            &.uk-active {
+                &:after {
+                    transform: rotate(-180deg);
+                    content: '\e15b';
+                }
+            }
+        }
+        .uk-accordion-content {
+            padding: 24px;
+        }
+    }
+}
+
+/* dotnav */
+@import (less) "../../bower_components/uikit/css/components/dotnav.css";
+
+/* autocomplete, timepicker */
+.uk-autocomplete {
+    .uk-dropdown {
+        display: block;
+        max-height: 0;
+        padding: 0;
+        overflow-x: hidden;
+        overflow-y: auto;
+        border-radius: 0;
+        border: none;
+        transform: scale(0.25,0);
+        opacity: 0;
+        transition: all 280ms @md_easing;
+        animation: none !important;
+        transform-origin: 0 0;
+    }
+    &.uk-open {
+        .uk-dropdown {
+            transform: scale(1);
+            opacity: 1;
+            max-height: 210px;
+        }
+    }
+}
+[data-uk-autocomplete] {
+    .uk-dropdown {
+        width: 100%;
+        box-sizing: border-box;
+        .uk-nav {
+            margin: 0;
+        }
+    }
+}
+
+/* slideshow */
+@import (less) "../../bower_components/uikit/css/components/slideshow.almost-flat.css";
+
+/* slider */
+@import (less) "../../bower_components/uikit/css/components/slider.almost-flat.css";
+
+.uk-slider-container {
+    padding: 8px 0;
+}
+
+/* slidenav */
+@import (less) "../../bower_components/uikit/css/components/slidenav.almost-flat.css";
+
+/* tooltips */
+@import (less) "../../bower_components/uikit/css/components/tooltip.almost-flat.css";
+
+.uk-tooltip {
+    background: @md-color-grey-800;
+    color: @white;
+    font-size: 13px;
+    padding: 3px 16px;
+    line-height: 22px;
+    text-shadow: none;
+    min-width: 80px;
+    text-align: center;
+    z-index: @header_main_zIndex + 200;
+    opacity: 0;
+    .uk-tooltip-inner {
+        .truncate_line;
+    }
+    &:after {
+        display: none !important;
+    }
+    &.long-text {
+        text-align: left;
+        .uk-tooltip-inner {
+            white-space: normal;
+            overflow: visible;
+            line-height: 18px;
+            padding: 4px 0;
+        }
+    }
+    &-small {
+        transform: scale(0.85);
+    }
+}
+
+/* tabs */
+.uk-tab {
+    border-bottom-color: @border_color;
+    .uk-sticky-placeholder & {
+        background: @white;
+        padding-top: 8px;
+    }
+    > li {
+        margin-bottom: 0;
+        margin-top: 0 ;
+        // fix for animation ghost overlay (webkit)
+        z-index: 1;
+        > a {
+            font-size: 13px;
+            text-transform: uppercase;
+            color: @text_primary_color;
+            border: none;
+            border-bottom: 2px solid transparent;
+            border-radius: 0 !important;
+            font-weight: 500;
+            min-width: 100px;
+            max-width: 100%;
+            text-align: center;
+            transition: all 220ms @md_easing;
+            padding: 8px !important;
+            margin: 0 !important;
+            box-sizing: border-box;
+            position: relative;
+            top: 1px;
+            text-shadow: none;
+            &:hover,
+            &:focus {
+                background: none;
+                color: @text_primary_color;
+                border-bottom-color: lighten(@theme_primary_color,30%);
+            }
+        }
+        &.uk-active {
+            > a {
+                background: transparent !important;
+                border-bottom-color: @theme_primary_color;
+            }
+        }
+        &.uk-disabled {
+            > a {
+                &,
+                &:hover,
+                &:focus {
+                    color: @text_muted;
+                }
+            }
+        }
+    }
+    &-bottom {
+        li {
+            margin-top: 0;
+            > a {
+                border-top: 2px solid transparent;
+                border-bottom: none;
+                top: auto;
+                bottom: 1px;
+                &:hover,
+                &:focus {
+                    border-top-color: lighten(@theme_primary_color,30%);
+                }
+            }
+            &.uk-active {
+                > a {
+                    border-top-color: @theme_primary_color;
+                }
+            }
+        }
+    }
+    &-left {
+        border-bottom: none;
+        li {
+            > a {
+                border-right: 2px solid transparent;
+                border-bottom: none;
+                text-align: right;
+                top: auto;
+                bottom: auto;
+                &:hover,
+                &:focus {
+                    border-right-color: lighten(@theme_primary_color,30%);
+                }
+            }
+            &.uk-active {
+                > a {
+                    border-right-color: @theme_primary_color;
+                }
+            }
+        }
+    }
+    &-right {
+        border-bottom: none;
+        li {
+            > a {
+                border-left: 2px solid transparent;
+                border-bottom: none;
+                text-align: left;
+                top: auto;
+                bottom: auto;
+                &:hover,
+                &:focus {
+                    border-left-color: lighten(@theme_primary_color,30%);
+                }
+            }
+            &.uk-active {
+                > a {
+                    border-left-color: @theme_primary_color;
+                }
+            }
+        }
+    }
+    &-responsive {
+        li a {
+            border: none !important;
+
+        }
+        > a {
+            &:before {
+                content: '\e5d2';
+                font-family: "Material Icons";
+                color: @text_secondary_color;
+                margin-right: 8px;
+                vertical-align: -4px;
+                font-size: 18px;
+            }
+        }
+    }
+    &-icons {
+        > li {
+            > a {
+                min-width: 64px;
+                > .material-icons {
+                    font-size: 24px;
+                }
+            }
+        }
+    }
+    &-double-header {
+        margin: 10px 24px 0 !important;
+        > li {
+            > a {
+                color: @white;
+                border-bottom: 4px solid transparent;
+                &:hover,
+                &:focus {
+                    color: @white;
+                    border-bottom-color: lighten(@theme_primary_color,5%);
+                }
+            }
+            &.uk-active {
+                > a {
+                    color: @white;
+                    border-bottom-color: @accent_color;
+                }
+            }
+            &.uk-tab-responsive {
+                > a {
+                    border-bottom: none;
+                    padding-bottom: 5px !important;
+                    &:before {
+                        color: @white;
+                    }
+                }
+            }
+        }
+    }
+    &-large {
+        > li {
+            margin-bottom: 0;
+            margin-top: 0 ;
+            // fix for animation ghost overlay (webkit)
+            z-index: 1;
+            > a {
+                font-size: 16px;
+                padding: 12px 24px !important;
+            }
+        }
+    }
+}
+
+/* text truncate */
+.uk-text-truncate {
+    display: block;
+}
+
+.uk-switcher {
+    overflow: hidden;
+    > li {
+        padding: 8px 4px;
+    }
+}
+
+/*
+* add extra Uikit grid sizes
+*
+* usage:
+* set custom breakpoint (1480px) and name ("xlarge-x")
+* @media (min-width: 1480px) {
+*  .add-grid-sizes(xlarge-x);
+* }
+*/
+
+.add-grid-sizes(@size) {
+
+    /* Whole */
+    .uk-width-@{size}-1-1,
+    .uk-grid-width-@{size}-1-1 > * {
+        width: 100%;
+    }
+
+    /* Halves */
+    .uk-width-@{size}-1-2,
+    .uk-width-@{size}-2-4,
+    .uk-width-@{size}-3-6,
+    .uk-width-@{size}-5-10,
+    .uk-grid-width-@{size}-1-2 > *,
+    .uk-grid-width-@{size}-2-4 > *,
+    .uk-grid-width-@{size}-3-6 > *,
+    .uk-grid-width-@{size}-5-10 > * {
+        width: 50%;
+    }
+
+    /* Thirds */
+    .uk-width-@{size}-1-3,
+    .uk-width-@{size}-2-6,
+    .uk-grid-width-@{size}-1-3 > *,
+    .uk-grid-width-@{size}-2-6 > * {
+        width: 33.333%;
+    }
+
+    .uk-width-@{size}-2-3,
+    .uk-width-@{size}-4-6,
+    .uk-grid-width-@{size}-2-3 > *,
+    .uk-grid-width-@{size}-4-6 > * {
+        width: 66.666%;
+    }
+
+    /* Quarters */
+    .uk-width-@{size}-1-4,
+    .uk-grid-width-@{size}-1-4 > * {
+        width: 25%;
+    }
+
+    .uk-width-@{size}-3-4,
+    .uk-grid-width-@{size}-3-4 > * {
+        width: 75%;
+    }
+
+    /* Fifths */
+    .uk-width-@{size}-1-5,
+    .uk-width-@{size}-2-10,
+    .uk-grid-width-@{size}-1-5 > *,
+    .uk-grid-width-@{size}-2-10 > * {
+        width: 20%;
+    }
+
+    .uk-width-@{size}-2-5,
+    .uk-width-@{size}-4-10,
+    .uk-grid-width-@{size}-2-5 > *,
+    .uk-grid-width-@{size}-4-10 > * {
+        width: 40%;
+    }
+
+    .uk-width-@{size}-3-5,
+    .uk-width-@{size}-6-10,
+    .uk-grid-width-@{size}-3-5 > *,
+    .uk-grid-width-@{size}-6-10 > * {
+        width: 60%;
+    }
+
+    .uk-width-@{size}-4-5,
+    .uk-width-@{size}-8-10,
+    .uk-grid-width-@{size}-4-5 > *,
+    .uk-grid-width-@{size}-8-10 > * {
+        width: 80%;
+    }
+
+    /* Sixths */
+    .uk-width-@{size}-1-6,
+    .uk-grid-width-@{size}-1-6 > * {
+        width: 16.666%;
+    }
+
+    .uk-width-@{size}-5-6,
+    .uk-grid-width-@{size}-5-6 > * {
+        width: 83.333%;
+    }
+
+    /* Tenths */
+    .uk-width-@{size}-1-10,
+    .uk-grid-width-@{size}-1-10 > * {
+        width: 10%;
+    }
+
+    .uk-width-@{size}-3-10,
+    .uk-grid-width-@{size}-3-10 > * {
+        width: 30%;
+    }
+
+    .uk-width-@{size}-7-10,
+    .uk-grid-width-@{size}-7-10 > * {
+        width: 70%;
+    }
+
+    .uk-width-@{size}-9-10,
+    .uk-grid-width-@{size}-9-10 > * {
+        width: 90%;
+    }
+}
+
+@media (min-width: 1480px) {
+    .add-grid-sizes(xLarge);
+}
+
+/* ie9 fixes */
+.lte-ie9 {
+    *[class*="uk-animation-"] {
+        opacity: 1 !important
+    }
+}
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/_uikit_custom.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/themes/_default.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/themes/_default.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/themes/_default.less	(revision 60863)
@@ -0,0 +1,23 @@
+// default theme
+@theme_default_color:         @md-color-light-blue-500;
+@theme_default_colorLight:    @md-color-light-blue-50;
+@theme_default_colorDark:     @md-color-light-blue-700;
+@theme_default_colorAccent:   @md-color-light-green-A200;
+
+.uk-navbar {
+    background: @theme_default_color;
+    &-nav {
+        > li > a {
+            color: @white;
+            &:hover,
+            &:active {
+                background: none;
+                color: @white;
+            }
+        }
+    }
+}
+
+.hero_section {
+    background: @theme_default_color;
+}

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/themes/_default.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/json/overview-data.json
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/json/overview-data.json	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/json/overview-data.json	(revision 60863)
@@ -0,0 +1,1551 @@
+{
+  "Overview":{
+    "publications":{
+      "oa":27605221,
+      "percentage":91.15721348118703,
+      "total":30283089.999999996
+    },
+    "datasets":{
+      "oa":334656,
+      "percentage":11.34499034345567,
+      "total":2949812.9999999995
+    },
+    "repositories":{
+      "oa":6811,
+      "percentage":100,
+      "total":6811
+    },
+    "journals":{
+      "absolute":5846,
+      "percentage":100,
+      "total":6811
+    },
+    "policies":{
+      "absolute":null,
+      "percentage":null,
+      "total":null
+    }
+  },
+  "Countries":[
+    {
+      "country":"Albania",
+      "repositories":{
+        "oa":0,
+        "total":0,
+        "percentage":100
+      },
+      "journals":{
+        "oa":3,
+        "total":3,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":348,
+        "total":348,
+        "percentage":100
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      }
+    },
+    {
+      "country":"Austria",
+      "repositories":{
+        "oa":16,
+        "total":16,
+        "percentage":100
+      },
+      "journals":{
+        "oa":37,
+        "total":37,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":100623,
+        "total":101636,
+        "percentage":99.00330591522689
+      },
+      "datasets":{
+        "oa":3074,
+        "total":3074,
+        "percentage":100
+      },
+      "software":{
+        "oa":1,
+        "total":1,
+        "percentage":100
+      },
+      "otherProducts":{
+        "oa":19922,
+        "total":22222,
+        "percentage":89.64989649896499
+      }
+    },
+    {
+      "country":"Belarus",
+      "repositories":{
+        "oa":5,
+        "total":5,
+        "percentage":100
+      },
+      "journals":{
+        "oa":9,
+        "total":9,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":86209,
+        "total":86209,
+        "percentage":100
+      },
+      "datasets":{
+        "oa":6396,
+        "total":6396,
+        "percentage":100
+      },
+      "software":{
+        "oa":1,
+        "total":1,
+        "percentage":100
+      },
+      "otherProducts":{
+        "oa":91063,
+        "total":91063,
+        "percentage":100
+      }
+    },
+    {
+      "country":"Belgium",
+      "repositories":{
+        "oa":13,
+        "total":13,
+        "percentage":100
+      },
+      "journals":{
+        "oa":32,
+        "total":32,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":326591,
+        "total":445109,
+        "percentage":73.37326362756089
+      },
+      "datasets":{
+        "oa":42290,
+        "total":116875,
+        "percentage":36.18395721925134
+      },
+      "software":{
+        "oa":0,
+        "total":57433,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":41863,
+        "total":46383,
+        "percentage":90.25505034172002
+      }
+    },
+    {
+      "country":"Bosnia and Herzegovina",
+      "repositories":{
+        "oa":0,
+        "total":0,
+        "percentage":100
+      },
+      "journals":{
+        "oa":13,
+        "total":13,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":3440,
+        "total":3440,
+        "percentage":100
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      }
+    },
+    {
+      "country":"Bulgaria",
+      "repositories":{
+        "oa":2,
+        "total":2,
+        "percentage":100
+      },
+      "journals":{
+        "oa":54,
+        "total":54,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":17242,
+        "total":17271,
+        "percentage":99.8320884720051
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":11,
+        "total":11,
+        "percentage":100
+      }
+    },
+    {
+      "country":"Croatia",
+      "repositories":{
+        "oa":18,
+        "total":18,
+        "percentage":100
+      },
+      "journals":{
+        "oa":81,
+        "total":81,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":208171,
+        "total":209740,
+        "percentage":99.2519309621436
+      },
+      "datasets":{
+        "oa":5,
+        "total":6,
+        "percentage":83.33333333333334
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":309,
+        "total":311,
+        "percentage":99.35691318327974
+      }
+    },
+    {
+      "country":"Czech Republic",
+      "repositories":{
+        "oa":9,
+        "total":9,
+        "percentage":100
+      },
+      "journals":{
+        "oa":77,
+        "total":77,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":61668,
+        "total":256255,
+        "percentage":24.06509141285048
+      },
+      "datasets":{
+        "oa":28,
+        "total":44,
+        "percentage":63.63636363636363
+      },
+      "software":{
+        "oa":8,
+        "total":8,
+        "percentage":100
+      },
+      "otherProducts":{
+        "oa":27390,
+        "total":27422,
+        "percentage":99.88330537524615
+      }
+    },
+    {
+      "country":"Denmark",
+      "repositories":{
+        "oa":11,
+        "total":11,
+        "percentage":100
+      },
+      "journals":{
+        "oa":25,
+        "total":25,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":195637,
+        "total":212070,
+        "percentage":92.25114349035695
+      },
+      "datasets":{
+        "oa":7,
+        "total":7,
+        "percentage":100
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":33868,
+        "total":35173,
+        "percentage":96.28976771955762
+      }
+    },
+    {
+      "country":"Estonia",
+      "repositories":{
+        "oa":2,
+        "total":2,
+        "percentage":100
+      },
+      "journals":{
+        "oa":18,
+        "total":18,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":39219,
+        "total":39313,
+        "percentage":99.76089334316892
+      },
+      "datasets":{
+        "oa":181,
+        "total":181,
+        "percentage":100
+      },
+      "software":{
+        "oa":8,
+        "total":8,
+        "percentage":100
+      },
+      "otherProducts":{
+        "oa":6501,
+        "total":6504,
+        "percentage":99.9538745387454
+      }
+    },
+    {
+      "country":"Finland",
+      "repositories":{
+        "oa":8,
+        "total":8,
+        "percentage":100
+      },
+      "journals":{
+        "oa":20,
+        "total":20,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":136069,
+        "total":136554,
+        "percentage":99.64482915183737
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":203689,
+        "total":207601,
+        "percentage":98.11561601341035
+      }
+    },
+    {
+      "country":"France",
+      "repositories":{
+        "oa":37,
+        "total":37,
+        "percentage":100
+      },
+      "journals":{
+        "oa":212,
+        "total":212,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":3153033,
+        "total":3233936,
+        "percentage":97.49831165489978
+      },
+      "datasets":{
+        "oa":545,
+        "total":4000,
+        "percentage":13.625000000000002
+      },
+      "software":{
+        "oa":237,
+        "total":243,
+        "percentage":97.53086419753086
+      },
+      "otherProducts":{
+        "oa":211544,
+        "total":294209,
+        "percentage":71.90262704404013
+      }
+    },
+    {
+      "country":"Germany",
+      "repositories":{
+        "oa":101,
+        "total":101,
+        "percentage":100
+      },
+      "journals":{
+        "oa":164,
+        "total":164,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":2321300,
+        "total":2395604,
+        "percentage":96.8983187538508
+      },
+      "datasets":{
+        "oa":14730,
+        "total":16421,
+        "percentage":89.70221058400828
+      },
+      "software":{
+        "oa":39,
+        "total":43,
+        "percentage":90.69767441860465
+      },
+      "otherProducts":{
+        "oa":143495,
+        "total":147876,
+        "percentage":97.0373826719684
+      }
+    },
+    {
+      "country":"Greece",
+      "repositories":{
+        "oa":5,
+        "total":5,
+        "percentage":100
+      },
+      "journals":{
+        "oa":19,
+        "total":19,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":49276,
+        "total":50256,
+        "percentage":98.0499840815027
+      },
+      "datasets":{
+        "oa":13,
+        "total":13,
+        "percentage":100
+      },
+      "software":{
+        "oa":2,
+        "total":2,
+        "percentage":100
+      },
+      "otherProducts":{
+        "oa":2513,
+        "total":2513,
+        "percentage":100
+      }
+    },
+    {
+      "country":"Hungary",
+      "repositories":{
+        "oa":8,
+        "total":8,
+        "percentage":100
+      },
+      "journals":{
+        "oa":15,
+        "total":15,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":28062,
+        "total":28072,
+        "percentage":99.9643773154745
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":4432,
+        "total":4434,
+        "percentage":99.95489400090212
+      }
+    },
+    {
+      "country":"Iceland",
+      "repositories":{
+        "oa":2,
+        "total":2,
+        "percentage":100
+      },
+      "journals":{
+        "oa":4,
+        "total":4,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":2059,
+        "total":2064,
+        "percentage":99.7577519379845
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":11,
+        "total":11,
+        "percentage":100
+      }
+    },
+    {
+      "country":"Ireland",
+      "repositories":{
+        "oa":13,
+        "total":13,
+        "percentage":100
+      },
+      "journals":{
+        "oa":12,
+        "total":12,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":59359,
+        "total":59555,
+        "percentage":99.67089245235496
+      },
+      "datasets":{
+        "oa":17,
+        "total":17,
+        "percentage":100
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":6656,
+        "total":6662,
+        "percentage":99.9099369558691
+      }
+    },
+    {
+      "country":"Italy",
+      "repositories":{
+        "oa":69,
+        "total":69,
+        "percentage":100
+      },
+      "journals":{
+        "oa":287,
+        "total":287,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":376463,
+        "total":556548,
+        "percentage":67.6425034318693
+      },
+      "datasets":{
+        "oa":437,
+        "total":560,
+        "percentage":78.03571428571429
+      },
+      "software":{
+        "oa":6,
+        "total":6,
+        "percentage":100
+      },
+      "otherProducts":{
+        "oa":40142,
+        "total":52883,
+        "percentage":75.90719134693569
+      }
+    },
+    {
+      "country":"Latvia",
+      "repositories":{
+        "oa":3,
+        "total":3,
+        "percentage":100
+      },
+      "journals":{
+        "oa":3,
+        "total":3,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":46244,
+        "total":46244,
+        "percentage":100
+      },
+      "datasets":{
+        "oa":3,
+        "total":3,
+        "percentage":100
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":496,
+        "total":496,
+        "percentage":100
+      }
+    },
+    {
+      "country":"Lithuania",
+      "repositories":{
+        "oa":9,
+        "total":9,
+        "percentage":100
+      },
+      "journals":{
+        "oa":58,
+        "total":58,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":98433,
+        "total":98445,
+        "percentage":99.98781045253695
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":2098,
+        "total":2098,
+        "percentage":100
+      }
+    },
+    {
+      "country":"Luxembourg",
+      "repositories":{
+        "oa":1,
+        "total":1,
+        "percentage":100
+      },
+      "journals":{
+        "oa":2,
+        "total":2,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":11768,
+        "total":11880,
+        "percentage":99.05723905723906
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":546,
+        "total":549,
+        "percentage":99.4535519125683
+      }
+    },
+    {
+      "country":"Macedonia, the Former Yugoslav Republic of",
+      "repositories":{
+        "oa":1,
+        "total":1,
+        "percentage":100
+      },
+      "journals":{
+        "oa":8,
+        "total":8,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":16010,
+        "total":16010,
+        "percentage":100
+      },
+      "datasets":{
+        "oa":162,
+        "total":162,
+        "percentage":100
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":1551,
+        "total":1551,
+        "percentage":100
+      }
+    },
+    {
+      "country":"Malta",
+      "repositories":{
+        "oa":1,
+        "total":1,
+        "percentage":100
+      },
+      "journals":{
+        "oa":1,
+        "total":1,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":15775,
+        "total":15781,
+        "percentage":99.96197959571637
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":5528,
+        "total":5530,
+        "percentage":99.9638336347197
+      }
+    },
+    {
+      "country":"Moldova, Republic of",
+      "repositories":{
+        "oa":0,
+        "total":0,
+        "percentage":100
+      },
+      "journals":{
+        "oa":27,
+        "total":27,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":5432,
+        "total":5432,
+        "percentage":100
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      }
+    },
+    {
+      "country":"Montenegro",
+      "repositories":{
+        "oa":0,
+        "total":0,
+        "percentage":100
+      },
+      "journals":{
+        "oa":6,
+        "total":6,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":2399,
+        "total":2399,
+        "percentage":100
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      }
+    },
+    {
+      "country":"Netherlands",
+      "repositories":{
+        "oa":30,
+        "total":30,
+        "percentage":100
+      },
+      "journals":{
+        "oa":414,
+        "total":414,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":901003,
+        "total":1818180,
+        "percentage":49.555214555214555
+      },
+      "datasets":{
+        "oa":24552,
+        "total":100552,
+        "percentage":24.41721696236773
+      },
+      "software":{
+        "oa":9,
+        "total":9,
+        "percentage":100
+      },
+      "otherProducts":{
+        "oa":59286,
+        "total":129657,
+        "percentage":45.72525972373262
+      }
+    },
+    {
+      "country":"Norway",
+      "repositories":{
+        "oa":51,
+        "total":51,
+        "percentage":100
+      },
+      "journals":{
+        "oa":81,
+        "total":81,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":231394,
+        "total":231967,
+        "percentage":99.75298210521323
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":19824,
+        "total":19843,
+        "percentage":99.90424834954392
+      }
+    },
+    {
+      "country":"Poland",
+      "repositories":{
+        "oa":14,
+        "total":14,
+        "percentage":100
+      },
+      "journals":{
+        "oa":555,
+        "total":555,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":242539,
+        "total":242680,
+        "percentage":99.94189879676941
+      },
+      "datasets":{
+        "oa":114,
+        "total":114,
+        "percentage":100
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":10444,
+        "total":11026,
+        "percentage":94.72156720478868
+      }
+    },
+    {
+      "country":"Portugal",
+      "repositories":{
+        "oa":46,
+        "total":46,
+        "percentage":100
+      },
+      "journals":{
+        "oa":69,
+        "total":69,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":435099,
+        "total":465870,
+        "percentage":93.39493850215726
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":17356,
+        "total":19443,
+        "percentage":89.26605976443965
+      }
+    },
+    {
+      "country":"Romania",
+      "repositories":{
+        "oa":0,
+        "total":0,
+        "percentage":100
+      },
+      "journals":{
+        "oa":255,
+        "total":255,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":59019,
+        "total":59019,
+        "percentage":100
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":116,
+        "total":116,
+        "percentage":100
+      }
+    },
+    {
+      "country":"Russian Federation",
+      "repositories":{
+        "oa":12,
+        "total":12,
+        "percentage":100
+      },
+      "journals":{
+        "oa":306,
+        "total":306,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":1708542,
+        "total":1708866,
+        "percentage":99.98104005814382
+      },
+      "datasets":{
+        "oa":67,
+        "total":67,
+        "percentage":100
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":366162,
+        "total":366162,
+        "percentage":100
+      }
+    },
+    {
+      "country":"Serbia",
+      "repositories":{
+        "oa":16,
+        "total":16,
+        "percentage":100
+      },
+      "journals":{
+        "oa":154,
+        "total":154,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":71527,
+        "total":80083,
+        "percentage":89.31608456226665
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":40095,
+        "total":40118,
+        "percentage":99.94266912607806
+      }
+    },
+    {
+      "country":"Slovakia",
+      "repositories":{
+        "oa":0,
+        "total":0,
+        "percentage":100
+      },
+      "journals":{
+        "oa":41,
+        "total":41,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":7709,
+        "total":7709,
+        "percentage":100
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      }
+    },
+    {
+      "country":"Slovenia",
+      "repositories":{
+        "oa":9,
+        "total":9,
+        "percentage":100
+      },
+      "journals":{
+        "oa":44,
+        "total":44,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":225048,
+        "total":225427,
+        "percentage":99.83187462016528
+      },
+      "datasets":{
+        "oa":24,
+        "total":30,
+        "percentage":80
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":44228,
+        "total":46311,
+        "percentage":95.5021485176308
+      }
+    },
+    {
+      "country":"Spain",
+      "repositories":{
+        "oa":75,
+        "total":75,
+        "percentage":100
+      },
+      "journals":{
+        "oa":500,
+        "total":500,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":1606960,
+        "total":1681631,
+        "percentage":95.55960849912971
+      },
+      "datasets":{
+        "oa":10304,
+        "total":16173,
+        "percentage":63.71112347740061
+      },
+      "software":{
+        "oa":133,
+        "total":144,
+        "percentage":92.36111111111111
+      },
+      "otherProducts":{
+        "oa":77893,
+        "total":79596,
+        "percentage":97.86044524850494
+      }
+    },
+    {
+      "country":"Sweden",
+      "repositories":{
+        "oa":21,
+        "total":21,
+        "percentage":100
+      },
+      "journals":{
+        "oa":33,
+        "total":33,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":308046,
+        "total":318844,
+        "percentage":96.61339087453426
+      },
+      "datasets":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":37101,
+        "total":37633,
+        "percentage":98.58634708899105
+      }
+    },
+    {
+      "country":"Switzerland",
+      "repositories":{
+        "oa":15,
+        "total":15,
+        "percentage":100
+      },
+      "journals":{
+        "oa":280,
+        "total":280,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":1595425,
+        "total":1597238,
+        "percentage":99.88649155604863
+      },
+      "datasets":{
+        "oa":42209,
+        "total":45079,
+        "percentage":93.63339914372546
+      },
+      "software":{
+        "oa":0,
+        "total":57435,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":41605,
+        "total":67742,
+        "percentage":61.41684626967022
+      }
+    },
+    {
+      "country":"Turkey",
+      "repositories":{
+        "oa":40,
+        "total":40,
+        "percentage":100
+      },
+      "journals":{
+        "oa":315,
+        "total":315,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":196534,
+        "total":211457,
+        "percentage":92.9427732352204
+      },
+      "datasets":{
+        "oa":31548,
+        "total":31610,
+        "percentage":99.80385953812085
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":20614,
+        "total":21199,
+        "percentage":97.24043586961649
+      }
+    },
+    {
+      "country":"Ukraine",
+      "repositories":{
+        "oa":9,
+        "total":9,
+        "percentage":100
+      },
+      "journals":{
+        "oa":214,
+        "total":214,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":319620,
+        "total":319620,
+        "percentage":100
+      },
+      "datasets":{
+        "oa":6,
+        "total":6,
+        "percentage":100
+      },
+      "software":{
+        "oa":0,
+        "total":0,
+        "percentage":0
+      },
+      "otherProducts":{
+        "oa":15002,
+        "total":15002,
+        "percentage":100
+      }
+    },
+    {
+      "country":"United Kingdom",
+      "repositories":{
+        "oa":96,
+        "total":96,
+        "percentage":100
+      },
+      "journals":{
+        "oa":1421,
+        "total":1421,
+        "percentage":100
+      },
+      "policies":{
+        "oa":null,
+        "total":null,
+        "percentage":null
+      },
+      "publications":{
+        "oa":6433999,
+        "total":6473685,
+        "percentage":99.38696430240273
+      },
+      "datasets":{
+        "oa":37118,
+        "total":1211751,
+        "percentage":3.0631705688709974
+      },
+      "software":{
+        "oa":17,
+        "total":7600,
+        "percentage":0.22368421052631576
+      },
+      "otherProducts":{
+        "oa":135897,
+        "total":343506,
+        "percentage":39.56175437983616
+      }
+    }
+  ]
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/jquery.nav.min.js
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/jquery.nav.min.js	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/jquery.nav.min.js	(revision 60863)
@@ -0,0 +1 @@
+!function(t,n,i,s){var e=function(s,e){this.elem=s,this.$elem=t(s),this.options=e,this.metadata=this.$elem.data("plugin-options"),this.$win=t(n),this.sections={},this.didScroll=!1,this.$doc=t(i),this.docHeight=this.$doc.height()};e.prototype={defaults:{navItems:"a",currentClass:"current",changeHash:!1,easing:"swing",filter:"",scrollOffset:0,scrollSpeed:750,scrollThreshold:.5,begin:!1,end:!1,scrollChange:!1},init:function(){return this.config=t.extend({},this.defaults,this.options,this.metadata),this.$nav=this.$elem.find(this.config.navItems),""!==this.config.filter&&(this.$nav=this.$nav.filter(this.config.filter)),this.$nav.on("click.onePageNav",t.proxy(this.handleClick,this)),this.getPositions(),this.bindInterval(),this.$win.on("resize.onePageNav",t.proxy(this.getPositions,this)),this},adjustNav:function(t,n){t.$elem.find("."+t.config.currentClass).removeClass(t.config.currentClass),n.addClass(t.config.currentClass)},bindInterval:function(){var t,n=this;n.$win.on("scroll.onePageNav",function(){n.didScroll=!0}),n.t=setInterval(function(){t=n.$doc.height(),n.didScroll&&(n.didScroll=!1,n.scrollChange()),t!==n.docHeight&&(n.docHeight=t,n.getPositions())},250)},getHash:function(t){return t.attr("href").split("#")[1]},getPositions:function(){var n,i,s,e=this;e.$nav.each(function(){n=e.getHash(t(this)),s=t("#"+n),s.length&&(i=s.offset().top,e.sections[n]=Math.round(i))})},getSection:function(t){var n=null,i=Math.round(this.$win.height()*this.config.scrollThreshold);this.sections=this.sortSectionsByPosition(this.sections);for(var s in this.sections)this.sections[s]-i<t&&(n=s);return n},sortSectionsByPosition:function(t){var n=[],i={};for(var s in t)t.hasOwnProperty(s)&&n.push(s);n.sort(function(n,i){var s=t[n],e=t[i];return e>s?-1:s>e?1:0});for(var e=0;e<n.length;e++)i[n[e]]=t[n[e]];return i},handleClick:function(i){var s=this,e=t(i.currentTarget),o=e.parent(),a="#"+s.getHash(e);o.hasClass(s.config.currentClass)||(s.config.begin&&s.config.begin(),s.adjustNav(s,o),s.unbindInterval(),s.scrollTo(a,function(){s.config.changeHash&&(n.location.hash=a),s.bindInterval(),s.config.end&&s.config.end()})),i.preventDefault()},scrollChange:function(){var t,n=this.$win.scrollTop(),i=this.getSection(n);null!==i&&(t=this.$elem.find('a[href$="#'+i+'"]').parent(),t.hasClass(this.config.currentClass)||(this.adjustNav(this,t),this.config.scrollChange&&this.config.scrollChange(t)))},scrollTo:function(n,i){var s=t(n).offset().top;t("html, body").animate({scrollTop:s+this.config.scrollOffset},this.config.scrollSpeed,this.config.easing,i)},unbindInterval:function(){clearInterval(this.t),this.$win.unbind("scroll.onePageNav")}},e.defaults=e.prototype.defaults,t.fn.onePageNav=function(t){return this.each(function(){new e(this,t).init()})}}(jQuery,window,document);
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/jquery.nav.min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/dense.min.js
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/dense.min.js	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/dense.min.js	(revision 60863)
@@ -0,0 +1 @@
+!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e(window.jQuery||window.Zepto)}(function(e){"use strict";var n,i=[],t={},a=/^([a-z]:)?\/\//i;t.init=function(d){return d=e.extend({ping:null,dimensions:"preserve",glue:"_",skipExtensions:["svg"]},d),this.each(function(){var s=e(this);if(s.is("img")&&!s.hasClass("dense-image")){s.addClass("dense-image dense-loading");var o,r=t.getImageAttribute.call(this),u=s.attr("src"),c=!1;if(!r){if(!u||1===n||-1!==e.inArray(u.split(".").pop().split(/[\?\#]/).shift(),d.skipExtensions))return void s.removeClass("dense-image dense-loading");r=u.replace(/\.\w+$/,function(e){var i=s.attr("data-dense-cap")?s.attr("data-dense-cap"):n;return d.glue+i+"x"+e}),c=!1!==d.ping&&-1===e.inArray(r,i)&&(!0===d.ping||!a.test(r)||0===r.indexOf("//"+document.domain)||0===r.indexOf(document.location.protocol+"//"+document.domain))}o=function(){var e=function(){s.removeClass("dense-loading").addClass("dense-ready").trigger("denseRetinaReady.dense")};s.attr("src",r),"update"===d.dimensions?s.dense("updateDimensions").one("denseDimensionChanged",e):("remove"===d.dimensions&&s.removeAttr("width height"),e())},c?e.ajax({url:r,type:"HEAD"}).done(function(e,n,t){var a=t.getResponseHeader("Content-type");a&&0!==a.indexOf("image/")||(i.push(r),o())}):o()}}),this},t.updateDimensions=function(){return this.each(function(){var n,i=e(this),t=i.attr("src");t&&(n=new Image,n.src=t,e(n).on("load.dense",function(){i.attr({width:n.width,height:n.height}).trigger("denseDimensionChanged.dense")}))})},t.devicePixelRatio=function(){var n=1;return"undefined"!==e.type(window.devicePixelRatio)?n=window.devicePixelRatio:"undefined"!==e.type(window.matchMedia)&&e.each([1.3,2,3,4,5,6],function(e,i){var t=["(-webkit-min-device-pixel-ratio: "+i+")","(min-resolution: "+Math.floor(96*i)+"dpi)","(min-resolution: "+i+"dppx)"].join(",");if(!window.matchMedia(t).matches)return!1;n=i}),Math.ceil(n)},t.getImageAttribute=function(){for(var i,t=e(this).eq(0),a=!1,d=1;d<=n;d++)(i=t.attr("data-"+d+"x"))&&(a=i);return a},n=t.devicePixelRatio(),e.fn.dense=function(n,i){return"string"===e.type(n)&&"function"===e.type(t[n])||(i=n,n="init"),t[n].call(this,i)},e(function(){e("body.dense-retina img").dense()})});
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/dense.min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/5.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/5.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/5.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/5.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/5.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/3.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/3.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/3.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/3.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/3.svg
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/1.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/1.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/1.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/1.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/methodology/arrows/1.svg
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/OS_Logo_Vertical.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/OS_Logo_Vertical.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/OS_Logo_Vertical.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/OS_Logo_Vertical.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/OS_Logo_Vertical.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/Open_Research_Graph.svg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/svg+xml
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/Open_Research_Graph.svg
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/Open_Research_Graph.svg	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/Open_Research_Graph.svg	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/Open_Research_Graph.svg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/svg+xml
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio-3.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio-3.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio-3.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio-3.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/historic-world-populatio-3.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/js/uikit_custom.min.js
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/js/uikit_custom.min.js	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/js/uikit_custom.min.js	(revision 60863)
@@ -0,0 +1 @@
+!function(t){var d;if(!window.jQuery)throw new Error("UIkit 2.x requires jQuery");d=function(l){"use strict";if(window.UIkit2)return window.UIkit2;var d={},t=window.UIkit||void 0;d.version="2.27.5",d.noConflict=function(){return t&&(window.UIkit=t,l.UIkit=t,l.fn.uk=t.fn),d},window.UIkit2=d,t||(window.UIkit=d);if(d.$=l,d.$doc=d.$(document),d.$win=d.$(window),d.$html=d.$("html"),d.support={},d.support.transition=(r=function(){var t,i=document.body||document.documentElement,e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(t in e)if(void 0!==i.style[t])return e[t]}(),r&&{end:r}),d.support.animation=(a=function(){var t,i=document.body||document.documentElement,e={WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(t in e)if(void 0!==i.style[t])return e[t]}(),a&&{end:a}),function(){Date.now=Date.now||function(){return(new Date).getTime()};for(var t=["webkit","moz"],i=0;i<t.length&&!window.requestAnimationFrame;++i){var e=t[i];window.requestAnimationFrame=window[e+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e+"CancelAnimationFrame"]||window[e+"CancelRequestAnimationFrame"]}if(/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)||!window.requestAnimationFrame||!window.cancelAnimationFrame){var o=0;window.requestAnimationFrame=function(t){var i=Date.now(),e=Math.max(o+16,i);return setTimeout(function(){t(o=e)},e-i)},window.cancelAnimationFrame=clearTimeout}}(),d.support.touch="ontouchstart"in document||window.DocumentTouch&&document instanceof window.DocumentTouch||window.navigator.msPointerEnabled&&0<window.navigator.msMaxTouchPoints||window.navigator.pointerEnabled&&0<window.navigator.maxTouchPoints||!1,d.support.mutationobserver=window.MutationObserver||window.WebKitMutationObserver||null,d.Utils={},d.Utils.isFullscreen=function(){return document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.fullscreenElement||!1},d.Utils.str2json=function(t,i){try{return i?JSON.parse(t.replace(/([\$\w]+)\s*:/g,function(t,i){return'"'+i+'":'}).replace(/'([^']+)'/g,function(t,i){return'"'+i+'"'})):new Function("","var json = "+t+"; return JSON.parse(JSON.stringify(json));")()}catch(t){return!1}},d.Utils.debounce=function(o,n,s){var a;return function(){var t=this,i=arguments,e=s&&!a;clearTimeout(a),a=setTimeout(function(){a=null,s||o.apply(t,i)},n),e&&o.apply(t,i)}},d.Utils.throttle=function(t,i){var e=!1;return function(){e||(t.call(),e=!0,setTimeout(function(){e=!1},i))}},d.Utils.removeCssRules=function(t){var i,e,o,n,s,a,r,l,d,h;t&&setTimeout(function(){try{for(h=document.styleSheets,n=0,r=h.length;n<r;n++){for(o=h[n],e=[],o.cssRules=o.cssRules,i=s=0,l=o.cssRules.length;s<l;i=++s)o.cssRules[i].type===CSSRule.STYLE_RULE&&t.test(o.cssRules[i].selectorText)&&e.unshift(i);for(a=0,d=e.length;a<d;a++)o.deleteRule(e[a])}}catch(t){}},0)},d.Utils.isInView=function(t,i){var e=l(t);if(!e.is(":visible"))return!1;var o=d.$win.scrollLeft(),n=d.$win.scrollTop(),s=e.offset(),a=s.left,r=s.top;return i=l.extend({topoffset:0,leftoffset:0},i),r+e.height()>=n&&r-i.topoffset<=n+d.$win.height()&&a+e.width()>=o&&a-i.leftoffset<=o+d.$win.width()},d.Utils.checkDisplay=function(t,i){var e=d.$("[data-uk-margin], [data-uk-grid-match], [data-uk-grid-margin], [data-uk-check-display]",t||document);return t&&!e.length&&(e=l(t)),e.trigger("display.uk.check"),i&&("string"!=typeof i&&(i='[class*="uk-animation-"]'),e.find(i).each(function(){var t=d.$(this),i=t.attr("class").match(/uk-animation-(.+)/);t.removeClass(i[0]).width(),t.addClass(i[0])})),e},d.Utils.options=function(t){if("string"!=l.type(t))return t;-1!=t.indexOf(":")&&"}"!=t.trim().substr(-1)&&(t="{"+t+"}");var i=t?t.indexOf("{"):-1,e={};if(-1!=i)try{e=d.Utils.str2json(t.substr(i))}catch(t){}return e},d.Utils.animate=function(t,i){var e=l.Deferred();return(t=d.$(t)).css("display","none").addClass(i).one(d.support.animation.end,function(){t.removeClass(i),e.resolve()}),t.css("display",""),e.promise()},d.Utils.uid=function(t){return(t||"id")+(new Date).getTime()+"RAND"+Math.ceil(1e5*Math.random())},d.Utils.template=function(t,i){for(var e,o,n,s,a=t.replace(/\n/g,"\\n").replace(/\{\{\{\s*(.+?)\s*\}\}\}/g,"{{!$1}}").split(/(\{\{\s*(.+?)\s*\}\})/g),r=0,l=[],d=0;r<a.length;){if((e=a[r]).match(/\{\{\s*(.+?)\s*\}\}/))switch(o=(e=a[r+=1])[0],n=e.substring(e.match(/^(\^|\#|\!|\~|\:)/)?1:0),o){case"~":l.push("for(var $i=0;$i<"+n+".length;$i++) { var $item = "+n+"[$i];"),d++;break;case":":l.push("for(var $key in "+n+") { var $val = "+n+"[$key];"),d++;break;case"#":l.push("if("+n+") {"),d++;break;case"^":l.push("if(!"+n+") {"),d++;break;case"/":l.push("}"),d--;break;case"!":l.push("__ret.push("+n+");");break;default:l.push("__ret.push(escape("+n+"));")}else l.push("__ret.push('"+e.replace(/\'/g,"\\'")+"');");r+=1}return s=new Function("$data",["var __ret = [];","try {","with($data){",d?'__ret = ["Not all blocks are closed correctly."]':l.join(""),"};","}catch(e){__ret = [e.message];}",'return __ret.join("").replace(/\\n\\n/g, "\\n");',"function escape(html) { return String(html).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');}"].join("\n")),i?s(i):s},d.Utils.focus=function(t,i){if(!(t=l(t)).length)return t;var e,o=t.find("[autofocus]:first");return o.length?o.focus():(o=t.find(":input"+(i&&","+i||"")).first()).length?o.focus():(t.attr("tabindex")||(e=1e3,t.attr("tabindex",e)),t[0].focus(),e&&t.attr("tabindex",""),t)},d.Utils.events={},d.Utils.events.click=d.support.touch?"tap":"click",d.fn=function(t,e){var o=arguments,i=t.match(/^([a-z\-]+)(?:\.([a-z]+))?/i),n=i[1],s=i[2];return d[n]?this.each(function(){var t=l(this),i=t.data(n);i||t.data(n,i=d[n](this,s?void 0:e)),s&&i[s].apply(i,Array.prototype.slice.call(o,1))}):(l.error("UIkit component ["+n+"] does not exist."),this)},l.UIkit=d,l.fn.uk=d.fn,d.langdirection="rtl"==d.$html.attr("dir")?"right":"left",d.components={},d.component=function(o,t,i){if(d.components[o]&&!i)return d.components[o];var n=function(t,i){var e=this;return this.UIkit=d,this.element=t?d.$(t):null,this.options=l.extend(!0,{},this.defaults,i),this.plugins={},this.element&&this.element.data(o,this),this.init(),(this.options.plugins.length?this.options.plugins:Object.keys(n.plugins)).forEach(function(t){n.plugins[t].init&&(n.plugins[t].init(e),e.plugins[t]=!0)}),this.trigger("init.uk.component",[o,this]),this};return n.plugins={},l.extend(!0,n.prototype,{defaults:{plugins:[]},boot:function(){},init:function(){},on:function(t,i,e){return d.$(this.element||this).on(t,i,e)},one:function(t,i,e){return d.$(this.element||this).one(t,i,e)},off:function(t){return d.$(this.element||this).off(t)},trigger:function(t,i){return d.$(this.element||this).trigger(t,i)},find:function(t){return d.$(this.element?this.element:[]).find(t)},proxy:function(i,t){var e=this;t.split(" ").forEach(function(t){e[t]||(e[t]=function(){return i[t].apply(i,arguments)})})},mixin:function(i,t){var e=this;t.split(" ").forEach(function(t){e[t]||(e[t]=i[t].bind(e))})},option:function(){if(1==arguments.length)return this.options[arguments[0]]||void 0;2==arguments.length&&(this.options[arguments[0]]=arguments[1])}},t),this.components[o]=n,this[o]=function(){var t,i;if(arguments.length)switch(arguments.length){case 1:"string"==typeof arguments[0]||arguments[0].nodeType||arguments[0]instanceof jQuery?t=l(arguments[0]):i=arguments[0];break;case 2:t=l(arguments[0]),i=arguments[1]}return t&&t.data(o)?t.data(o):new d.components[o](t,i)},d.domready&&d.component.boot(o),n},d.plugin=function(t,i,e){this.components[t].plugins[i]=e},d.component.boot=function(t){d.components[t].prototype&&d.components[t].prototype.boot&&!d.components[t].booted&&(d.components[t].prototype.boot.apply(d,[]),d.components[t].booted=!0)},d.component.bootComponents=function(){for(var t in d.components)d.component.boot(t)},d.domObservers=[],d.domready=!1,d.ready=function(t){d.domObservers.push(t),d.domready&&t(document)},d.on=function(t,i,e){return t&&-1<t.indexOf("ready.uk.dom")&&d.domready&&i.apply(d.$doc),d.$doc.on(t,i,e)},d.one=function(t,i,e){return t&&-1<t.indexOf("ready.uk.dom")&&d.domready?(i.apply(d.$doc),d.$doc):d.$doc.one(t,i,e)},d.trigger=function(t,i){return d.$doc.trigger(t,i)},d.domObserve=function(t,o){d.support.mutationobserver&&(o=o||function(){},d.$(t).each(function(){var i=this,e=d.$(i);if(!e.data("observer"))try{var t=new d.support.mutationobserver(d.Utils.debounce(function(t){o.apply(i,[e]),e.trigger("changed.uk.dom")},50),{childList:!0,subtree:!0});t.observe(i,{childList:!0,subtree:!0}),e.data("observer",t)}catch(t){}}))},d.init=function(i){i=i||document,d.domObservers.forEach(function(t){t(i)})},d.on("domready.uk.dom",function(){d.init(),d.domready&&d.Utils.checkDisplay()}),document.addEventListener("DOMContentLoaded",(s=function(){d.$body=d.$("body"),d.trigger("beforeready.uk.dom"),d.component.bootComponents();var e,o,t,n=requestAnimationFrame((e={dir:{x:0,y:0},x:window.pageXOffset,y:window.pageYOffset},o=function(){var t=window.pageXOffset,i=window.pageYOffset;e.x==t&&e.y==i||(t!=e.x?e.dir.x=t>e.x?1:-1:e.dir.x=0,i!=e.y?e.dir.y=i>e.y?1:-1:e.dir.y=0,e.x=t,e.y=i,d.$doc.trigger("scrolling.uk.document",[{dir:{x:e.dir.x,y:e.dir.y},x:t,y:i}])),cancelAnimationFrame(n),n=requestAnimationFrame(o)},d.support.touch&&d.$html.on("touchmove touchend MSPointerMove MSPointerUp pointermove pointerup",o),(e.x||e.y)&&o(),o));if(d.trigger("domready.uk.dom"),d.support.touch&&navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&d.$win.on("load orientationchange resize",d.Utils.debounce((t=function(){return l(".uk-height-viewport").css("height",window.innerHeight),t})(),100)),d.trigger("afterready.uk.dom"),d.domready=!0,d.support.mutationobserver){var i=d.Utils.debounce(function(){requestAnimationFrame(function(){d.init(document.body)})},10);new d.support.mutationobserver(function(t){var o=!1;t.every(function(t){if("childList"!=t.type)return!0;for(var i,e=0;e<t.addedNodes.length;++e)if((i=t.addedNodes[e]).outerHTML&&-1!==i.outerHTML.indexOf("data-uk-"))return(o=!0)&&!1;return!0}),o&&i()}).observe(document.body,{childList:!0,subtree:!0})}},"complete"!=document.readyState&&"interactive"!=document.readyState||setTimeout(s),s)),d.$html.addClass(d.support.touch?"uk-touch":"uk-notouch"),d.support.touch){var i,e=!1,o="uk-hover",n=".uk-overlay, .uk-overlay-hover, .uk-overlay-toggle, .uk-animation-hover, .uk-has-hover";d.$html.on("mouseenter touchstart MSPointerDown pointerdown",n,function(){e&&l("."+o).removeClass(o),e=l(this).addClass(o)}).on("mouseleave touchend MSPointerUp pointerup",function(t){i=l(t.target).parents(n),e&&e.not(i).removeClass(o)})}var s;var a;var r;return d}(window.jQuery),"function"==typeof define&&define.amd&&define("uikit",function(){return d.load=function(t,i,e,o){var n,s=t.split(","),a=[],r=(o.config&&o.config.uikit&&o.config.uikit.base?o.config.uikit.base:"").replace(/\/+$/g,"");if(!r)throw new Error("Please define base path to UIkit in the requirejs config.");for(n=0;n<s.length;n+=1){var l=s[n].replace(/\./g,"/");a.push(r+"/components/"+l)}i(a,function(){e(d)})},d})}(),function(a){if(!a.fn.swipeLeft){var r,l,d,h,c,u={},p="ontouchstart"in window,f=window.PointerEvent,m=p||window.DocumentTouch&&document instanceof DocumentTouch||navigator.msPointerEnabled&&0<navigator.msMaxTouchPoints||navigator.pointerEnabled&&0<navigator.maxTouchPoints;a(function(){var i,e,o,n=0,s=0;"MSGesture"in window&&((c=new MSGesture).target=document.body),a(document).on("MSGestureEnd gestureend",function(t){var i=1<t.originalEvent.velocityX?"Right":t.originalEvent.velocityX<-1?"Left":1<t.originalEvent.velocityY?"Down":t.originalEvent.velocityY<-1?"Up":null;i&&void 0!==u.el&&(u.el.trigger("swipe"),u.el.trigger("swipe"+i))}).on("touchstart MSPointerDown pointerdown",function(t){("MSPointerDown"!=t.type||w(t.originalEvent))&&(o="MSPointerDown"==t.type||"pointerdown"==t.type?t:t.originalEvent.touches[0],i=Date.now(),e=i-(u.last||i),u.el=a("tagName"in o.target?o.target:o.target.parentNode),r&&clearTimeout(r),u.x1=o.pageX,u.y1=o.pageY,0<e&&e<=250&&(u.isDoubleTap=!0),u.last=i,h=setTimeout(g,750),t.originalEvent&&t.originalEvent.pointerId&&c&&("MSPointerDown"==t.type||"pointerdown"==t.type||"touchstart"==t.type)&&c.addPointer(t.originalEvent.pointerId))}).on("touchmove MSPointerMove pointermove",function(t){("MSPointerMove"!=t.type||w(t.originalEvent))&&(o="MSPointerMove"==t.type||"pointermove"==t.type?t:t.originalEvent.touches[0],v(),u.x2=o.pageX,u.y2=o.pageY,n+=Math.abs(u.x1-u.x2),s+=Math.abs(u.y1-u.y2))}).on("touchend MSPointerUp pointerup",function(t){("MSPointerUp"!=t.type||w(t.originalEvent))&&(v(),u.x2&&30<Math.abs(u.x1-u.x2)||u.y2&&30<Math.abs(u.y1-u.y2)?d=setTimeout(function(){var t,i,e,o;void 0!==u.el&&(u.el.trigger("swipe"),u.el.trigger("swipe"+(t=u.x1,i=u.x2,e=u.y1,o=u.y2,Math.abs(t-i)>=Math.abs(e-o)?0<t-i?"Left":"Right":0<e-o?"Up":"Down"))),u={}},0):"last"in u&&(isNaN(n)||n<30&&s<30?l=setTimeout(function(){var t=a.Event("tap");t.cancelTouch=k,void 0!==u.el&&u.el.trigger(t),u.isDoubleTap?(void 0!==u.el&&u.el.trigger("doubleTap"),u={}):r=setTimeout(function(){r=null,void 0!==u.el&&u.el.trigger("singleTap"),u={}},250)},0):u={},n=s=0))}).on("touchcancel MSPointerCancel pointercancel",function(t){("touchcancel"==t.type&&p&&m||!p&&"pointercancel"==t.type&&f)&&k()}),a(window).on("scroll",k)}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(i){a.fn[i]=function(t){return a(this).on(i,t)}})}function g(){h=null,u.last&&(void 0!==u.el&&u.el.trigger("longTap"),u={})}function v(){h&&clearTimeout(h),h=null}function k(){r&&clearTimeout(r),l&&clearTimeout(l),d&&clearTimeout(d),h&&clearTimeout(h),r=l=d=h=null,u={}}function w(t){return t.pointerType==t.MSPOINTER_TYPE_TOUCH&&t.isPrimary}}(jQuery),function(s){"use strict";var i,e,o,n=[];s.component("stackMargin",{defaults:{cls:"uk-margin-small-top",rowfirst:!1,observe:!1},boot:function(){s.ready(function(t){s.$("[data-uk-margin]",t).each(function(){var t=s.$(this);t.data("stackMargin")||s.stackMargin(t,s.Utils.options(t.attr("data-uk-margin")))})})},init:function(){var t,i=this;s.$win.on("resize orientationchange",(t=function(){i.process()},s.$(function(){t(),s.$win.on("load",t)}),s.Utils.debounce(t,20))),this.on("display.uk.check",function(t){this.element.is(":visible")&&this.process()}.bind(this)),this.options.observe&&s.domObserve(this.element,function(t){i.element.is(":visible")&&i.process()}),n.push(this)},process:function(){var t=this.element.children();if(s.Utils.stackMargin(t,this.options),!this.options.rowfirst||!t.length)return this;var e={},o=!1;return t.removeClass(this.options.rowfirst).each(function(t,i){i=s.$(this),"none"!=this.style.display&&(t=i.offset().left,((e[t]=e[t]||[])&&e[t]).push(this),o=!1===o?t:Math.min(o,t))}),s.$(e[o]).addClass(this.options.rowfirst),this}}),i=[],e=function(t){if(t.is(":visible")){var i=t.parent().width(),e=t.data("width"),o=i/e,n=Math.floor(o*t.data("height"));t.css({height:i<e?n:t.data("height")})}},s.component("responsiveElement",{defaults:{},boot:function(){s.ready(function(t){s.$("iframe.uk-responsive-width, [data-uk-responsive]",t).each(function(){var t=s.$(this);t.data("responsiveElement")||s.responsiveElement(t,{})})})},init:function(){var t=this.element;t.attr("width")&&t.attr("height")&&(t.data({width:t.attr("width"),height:t.attr("height")}).on("display.uk.check",function(){e(t)}),e(t),i.push(t))}}),s.$win.on("resize load",s.Utils.debounce(function(){i.forEach(function(t){e(t)})},15)),s.Utils.stackMargin=function(t,i){i=s.$.extend({cls:"uk-margin-small-top"},i),t=s.$(t).removeClass(i.cls);var n=!1;t.each(function(t,i,e,o){"none"!=(o=s.$(this)).css("display")&&(t=o.offset(),i=o.outerHeight(),e=t.top+i,o.data({ukMarginPos:e,ukMarginTop:t.top}),(!1===n||t.top<n.top)&&(n={top:t.top,left:t.left,pos:e}))}).each(function(t){"none"!=(t=s.$(this)).css("display")&&t.data("ukMarginTop")>n.top&&t.data("ukMarginPos")>n.pos&&t.addClass(i.cls)})},s.Utils.matchHeights=function(t,i){t=s.$(t).css("min-height",""),i=s.$.extend({row:!0},i);var n=function(t){if(!(t.length<2)){var e=0;t.each(function(){e=Math.max(e,s.$(this).outerHeight())}).each(function(){var t=s.$(this),i=e-("border-box"==t.css("box-sizing")?0:t.outerHeight()-t.height());t.css("min-height",i+"px")})}};i.row?(t.first().width(),setTimeout(function(){var e=!1,o=[];t.each(function(){var t=s.$(this),i=t.offset().top;i!=e&&o.length&&(n(s.$(o)),o=[],i=t.offset().top),o.push(t),e=i}),o.length&&n(s.$(o))},0)):n(t)},o={},s.Utils.inlineSvg=function(t,i){s.$(t||'img[src$=".svg"]',i||document).each(function(){var e=s.$(this),t=e.attr("src");if(!o[t]){var i=s.$.Deferred();s.$.get(t,{nc:Math.random()},function(t){i.resolve(s.$(t).find("svg"))}),o[t]=i.promise()}o[t].then(function(t){var i=s.$(t).clone();e.attr("id")&&i.attr("id",e.attr("id")),e.attr("class")&&i.attr("class",e.attr("class")),e.attr("style")&&i.attr("style",e.attr("style")),e.attr("width")&&(i.attr("width",e.attr("width")),e.attr("height")||i.removeAttr("height")),e.attr("height")&&(i.attr("height",e.attr("height")),e.attr("width")||i.removeAttr("width")),e.replaceWith(i)})})},s.ready(function(t){s.Utils.inlineSvg("[data-uk-svg]",t)}),s.Utils.getCssVar=function(t){var i,e=document.documentElement,o=e.appendChild(document.createElement("div"));o.classList.add("var-"+t);try{i=JSON.parse(i=getComputedStyle(o,":before").content.replace(/^["'](.*)["']$/,"$1"))}catch(t){i=void 0}return e.removeChild(o),i}}(UIkit2),function(s){"use strict";function e(t,i){i=s.$.extend({duration:1e3,transition:"easeOutExpo",offset:0,complete:function(){}},i);var e=t.offset().top-i.offset,o=s.$doc.height(),n=window.innerHeight;o<e+n&&(e=o-n),s.$("html,body").stop().animate({scrollTop:e},i.duration,i.transition).promise().done(i.complete)}s.component("smoothScroll",{boot:function(){s.$html.on("click.smooth-scroll.uikit","[data-uk-smooth-scroll]",function(t){var i=s.$(this);if(!i.data("smoothScroll")){s.smoothScroll(i,s.Utils.options(i.attr("data-uk-smooth-scroll")));i.trigger("click")}return!1})},init:function(){var i=this;this.on("click",function(t){t.preventDefault(),e(s.$(this.hash).length?s.$(this.hash):s.$("body"),i.options)})}}),s.Utils.scrollToElement=e,s.$.easing.easeOutExpo||(s.$.easing.easeOutExpo=function(t,i,e,o,n){return i==n?e+o:o*(1-Math.pow(2,-10*i/n))+e})}(UIkit2),function(h){"use strict";var c=h.$win,t=h.$doc,i=[],e=function(){for(var t=0;t<i.length;t++)window.requestAnimationFrame.apply(window,[i[t].check])};h.component("scrollspy",{defaults:{target:!1,cls:"uk-scrollspy-inview",initcls:"uk-scrollspy-init-inview",topoffset:0,leftoffset:0,repeat:!1,delay:0},boot:function(){t.on("scrolling.uk.document",e),c.on("load resize orientationchange",h.Utils.debounce(e,50)),h.ready(function(t){h.$("[data-uk-scrollspy]",t).each(function(){var t=h.$(this);if(!t.data("scrollspy"))h.scrollspy(t,h.Utils.options(t.attr("data-uk-scrollspy")))})})},init:function(){var r,l=this,d=this.options.cls.split(/,/),t=function(){var t=l.options.target?l.element.find(l.options.target):l.element,s=1===t.length?1:0,a=0;t.each(function(t){var i=h.$(this),e=i.data("inviewstate"),o=h.Utils.isInView(i,l.options),n=i.attr("data-uk-scrollspy-cls")||d[a].trim();!o||e||i.data("scrollspy-idle")||(r||(i.addClass(l.options.initcls),l.offset=i.offset(),r=!0,i.trigger("init.uk.scrollspy")),i.data("scrollspy-idle",setTimeout(function(){i.addClass("uk-scrollspy-inview").toggleClass(n).width(),i.trigger("inview.uk.scrollspy"),i.data("scrollspy-idle",!1),i.data("inviewstate",!0)},l.options.delay*s)),s++),!o&&e&&l.options.repeat&&(i.data("scrollspy-idle")&&(clearTimeout(i.data("scrollspy-idle")),i.data("scrollspy-idle",!1)),i.removeClass("uk-scrollspy-inview").toggleClass(n),i.data("inviewstate",!1),i.trigger("outview.uk.scrollspy")),a=d[a+1]?a+1:0})};t(),this.check=t,i.push(this)}});var o=[],n=function(){for(var t=0;t<o.length;t++)window.requestAnimationFrame.apply(window,[o[t].check])};h.component("scrollspynav",{defaults:{cls:"uk-active",closest:!1,topoffset:0,leftoffset:0,smoothscroll:!1},boot:function(){t.on("scrolling.uk.document",n),c.on("resize orientationchange",h.Utils.debounce(n,50)),h.ready(function(t){h.$("[data-uk-scrollspy-nav]",t).each(function(){var t=h.$(this);if(!t.data("scrollspynav"))h.scrollspynav(t,h.Utils.options(t.attr("data-uk-scrollspy-nav")))})})},init:function(){var n,t=[],s=this.find("a[href^='#']").each(function(){"#"!==this.getAttribute("href").trim()&&t.push(this.getAttribute("href"))}),a=h.$(t.join(",")),r=this.options.cls,l=this.options.closest||this.options.closest,d=this,i=function(){n=[];for(var t=0;t<a.length;t++)h.Utils.isInView(a.eq(t),d.options)&&n.push(a.eq(t));if(n.length){var i,e=c.scrollTop(),o=function(){for(var t=0;t<n.length;t++)if(n[t].offset().top-d.options.topoffset>=e)return n[t]}();if(!o)return;d.options.closest?(s.blur().closest(l).removeClass(r),i=s.filter("a[href='#"+o.attr("id")+"']").closest(l).addClass(r)):i=s.removeClass(r).filter("a[href='#"+o.attr("id")+"']").addClass(r),d.element.trigger("inview.uk.scrollspynav",[o,i])}};this.options.smoothscroll&&h.smoothScroll&&s.each(function(){h.smoothScroll(this,d.options.smoothscroll)}),i(),this.element.data("scrollspynav",this),this.check=i,o.push(this)}})}(UIkit2),function(o){"use strict";var e=[];o.component("toggle",{defaults:{target:!1,cls:"uk-hidden",animation:!1,duration:200},boot:function(){o.ready(function(t){o.$("[data-uk-toggle]",t).each(function(){var t=o.$(this);if(!t.data("toggle"))o.toggle(t,o.Utils.options(t.attr("data-uk-toggle")))}),setTimeout(function(){e.forEach(function(t){t.getToggles()})},0)})},init:function(){var i=this;this.aria=-1!==this.options.cls.indexOf("uk-hidden"),this.on("click",function(t){i.element.is('a[href="#"]')&&t.preventDefault(),i.toggle()}),e.push(this)},toggle:function(){if(this.getToggles(),this.totoggle.length){if(this.options.animation&&o.support.animation){var i=this,e=this.options.animation.split(",");1==e.length&&(e[1]=e[0]),e[0]=e[0].trim(),e[1]=e[1].trim(),this.totoggle.css("animation-duration",this.options.duration+"ms"),this.totoggle.each(function(){var t=o.$(this);t.hasClass(i.options.cls)?(t.toggleClass(i.options.cls),o.Utils.animate(t,e[0]).then(function(){t.css("animation-duration",""),o.Utils.checkDisplay(t)})):o.Utils.animate(this,e[1]+" uk-animation-reverse").then(function(){t.toggleClass(i.options.cls).css("animation-duration",""),o.Utils.checkDisplay(t)})})}else this.totoggle.toggleClass(this.options.cls),o.Utils.checkDisplay(this.totoggle);this.updateAria()}},getToggles:function(){this.totoggle=this.options.target?o.$(this.options.target):[],this.updateAria()},updateAria:function(){this.aria&&this.totoggle.length&&this.totoggle.not("[aria-hidden]").each(function(){o.$(this).attr("aria-hidden",o.$(this).hasClass("uk-hidden"))})}})}(UIkit2),function(o){"use strict";o.component("alert",{defaults:{fade:!0,duration:200,trigger:".uk-alert-close"},boot:function(){o.$html.on("click.alert.uikit","[data-uk-alert]",function(t){var i=o.$(this);if(!i.data("alert")){var e=o.alert(i,o.Utils.options(i.attr("data-uk-alert")));o.$(t.target).is(e.options.trigger)&&(t.preventDefault(),e.close())}})},init:function(){var i=this;this.on("click",this.options.trigger,function(t){t.preventDefault(),i.close()})},close:function(){var t=this.trigger("close.uk.alert"),i=function(){this.trigger("closed.uk.alert").remove()}.bind(this);this.options.fade?t.css("overflow","hidden").css("max-height",t.height()).animate({height:0,opacity:0,paddingTop:0,paddingBottom:0,marginTop:0,marginBottom:0},this.options.duration,i):i()}})}(UIkit2),function(n){"use strict";n.component("buttonRadio",{defaults:{activeClass:"uk-active",target:".uk-button"},boot:function(){n.$html.on("click.buttonradio.uikit","[data-uk-button-radio]",function(t){var i=n.$(this);if(!i.data("buttonRadio")){var e=n.buttonRadio(i,n.Utils.options(i.attr("data-uk-button-radio"))),o=n.$(t.target);o.is(e.options.target)&&o.trigger("click")}})},init:function(){var e=this;this.find(e.options.target).attr("aria-checked","false").filter("."+e.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(t){var i=n.$(this);i.is('a[href="#"]')&&t.preventDefault(),e.find(e.options.target).not(i).removeClass(e.options.activeClass).blur(),i.addClass(e.options.activeClass),e.find(e.options.target).not(i).attr("aria-checked","false"),i.attr("aria-checked","true"),e.trigger("change.uk.button",[i])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),n.component("buttonCheckbox",{defaults:{activeClass:"uk-active",target:".uk-button"},boot:function(){n.$html.on("click.buttoncheckbox.uikit","[data-uk-button-checkbox]",function(t){var i=n.$(this);if(!i.data("buttonCheckbox")){var e=n.buttonCheckbox(i,n.Utils.options(i.attr("data-uk-button-checkbox"))),o=n.$(t.target);o.is(e.options.target)&&o.trigger("click")}})},init:function(){var e=this;this.find(e.options.target).attr("aria-checked","false").filter("."+e.options.activeClass).attr("aria-checked","true"),this.on("click",this.options.target,function(t){var i=n.$(this);i.is('a[href="#"]')&&t.preventDefault(),i.toggleClass(e.options.activeClass).blur(),i.attr("aria-checked",i.hasClass(e.options.activeClass)),e.trigger("change.uk.button",[i])})},getSelected:function(){return this.find("."+this.options.activeClass)}}),n.component("button",{defaults:{},boot:function(){n.$html.on("click.button.uikit","[data-uk-button]",function(t){var i=n.$(this);if(!i.data("button")){n.button(i,n.Utils.options(i.attr("data-uk-button")));i.trigger("click")}})},init:function(){var i=this;this.element.attr("aria-pressed",this.element.hasClass("uk-active")),this.on("click",function(t){i.element.is('a[href="#"]')&&t.preventDefault(),i.toggle(),i.trigger("change.uk.button",[i.element.blur().hasClass("uk-active")])})},toggle:function(){this.element.toggleClass("uk-active"),this.element.attr("aria-pressed",this.element.hasClass("uk-active"))}})}(UIkit2),function(c){"use strict";var o,n=!1,u={x:{"bottom-left":"bottom-right","bottom-right":"bottom-left","bottom-center":"bottom-center","top-left":"top-right","top-right":"top-left","top-center":"top-center","left-top":"right-top","left-bottom":"right-bottom","left-center":"right-center","right-top":"left-top","right-bottom":"left-bottom","right-center":"left-center"},y:{"bottom-left":"top-left","bottom-right":"top-right","bottom-center":"top-center","top-left":"bottom-left","top-right":"bottom-right","top-center":"bottom-center","left-top":"left-bottom","left-bottom":"left-top","left-center":"left-center","right-top":"right-bottom","right-bottom":"right-top","right-center":"right-center"},xy:{"bottom-left":"top-right","bottom-right":"top-left","bottom-center":"top-center","top-left":"bottom-right","top-right":"bottom-left","top-center":"bottom-center","left-top":"right-bottom","left-bottom":"right-top","left-center":"right-center","right-top":"left-bottom","right-bottom":"left-top","right-center":"left-center"}};function p(t,i,e,o){if(t=c.$(t),i=c.$(i),e=e||window.innerWidth,o=o||t.offset(),i.length){var n=i.outerWidth();if(t.css("min-width",n),"right"==c.langdirection){var s=e-(i.offset().left+n),a=e-(t.offset().left+t.outerWidth());t.css("margin-right",s-a)}else t.css("margin-left",i.offset().left-o.left)}}c.component("dropdown",{defaults:{mode:"hover",pos:"bottom-left",offset:0,remaintime:800,justify:!1,boundary:c.$win,delay:0,dropdownSelector:".uk-dropdown,.uk-dropdown-blank",hoverDelayIdle:250,preventflip:!1},remainIdle:!1,boot:function(){var o=c.support.touch?"click":"mouseenter";c.$html.on(o+".dropdown.uikit focus pointerdown","[data-uk-dropdown]",function(t){var i=c.$(this);if(!i.data("dropdown")){var e=c.dropdown(i,c.Utils.options(i.attr("data-uk-dropdown")));("click"==t.type||"mouseenter"==t.type&&"hover"==e.options.mode)&&e.element.trigger(o),e.dropdown.length&&t.preventDefault()}})},init:function(){var e=this;this.dropdown=this.find(this.options.dropdownSelector),this.offsetParent=this.dropdown.parents().filter(function(){return-1!==c.$.inArray(c.$(this).css("position"),["relative","fixed","absolute"])}).slice(0,1),this.offsetParent.length||(this.offsetParent=this.element),this.centered=this.dropdown.hasClass("uk-dropdown-center"),this.justified=!!this.options.justify&&c.$(this.options.justify),this.boundary=c.$(this.options.boundary),this.boundary.length||(this.boundary=c.$win),this.dropdown.hasClass("uk-dropdown-up")&&(this.options.pos="top-left"),this.dropdown.hasClass("uk-dropdown-flip")&&(this.options.pos=this.options.pos.replace("left","right")),this.dropdown.hasClass("uk-dropdown-center")&&(this.options.pos=this.options.pos.replace(/(left|right)/,"center")),this.element.attr("aria-haspopup","true"),this.element.attr("aria-expanded",this.element.hasClass("uk-open")),this.dropdown.attr("aria-hidden","true"),"click"==this.options.mode||c.support.touch?this.on("click.uk.dropdown",function(t){var i=c.$(t.target);i.parents(e.options.dropdownSelector).length||((i.is("a[href='#']")||i.parent().is("a[href='#']")||e.dropdown.length&&!e.dropdown.is(":visible"))&&t.preventDefault(),i.blur()),e.element.hasClass("uk-open")?(!e.dropdown.find(t.target).length||i.is(".uk-dropdown-close")||i.parents(".uk-dropdown-close").length)&&e.hide():e.show()}):this.on("mouseenter",function(t){e.trigger("pointerenter.uk.dropdown",[e]),e.remainIdle&&clearTimeout(e.remainIdle),o&&clearTimeout(o),n&&n==e||(o=n&&n!=e?setTimeout(function(){o=setTimeout(e.show.bind(e),e.options.delay)},e.options.hoverDelayIdle):setTimeout(e.show.bind(e),e.options.delay))}).on("mouseleave",function(){o&&clearTimeout(o),e.remainIdle=setTimeout(function(){n&&n==e&&e.hide()},e.options.remaintime),e.trigger("pointerleave.uk.dropdown",[e])}).on("click",function(t){var i=c.$(t.target);e.remainIdle&&clearTimeout(e.remainIdle),n&&n==e?(!e.dropdown.find(t.target).length||i.is(".uk-dropdown-close")||i.parents(".uk-dropdown-close").length)&&e.hide():((i.is("a[href='#']")||i.parent().is("a[href='#']"))&&t.preventDefault(),e.show())})},show:function(){c.$html.off("click.outer.dropdown"),n&&n!=this&&n.hide(!0),o&&clearTimeout(o),this.trigger("beforeshow.uk.dropdown",[this]),this.checkDimensions(),this.element.addClass("uk-open"),this.element.attr("aria-expanded","true"),this.dropdown.attr("aria-hidden","false"),this.trigger("show.uk.dropdown",[this]),c.Utils.checkDisplay(this.dropdown,!0),c.Utils.focus(this.dropdown),(n=this).registerOuterClick()},hide:function(t){this.trigger("beforehide.uk.dropdown",[this,t]),this.element.removeClass("uk-open"),this.remainIdle&&clearTimeout(this.remainIdle),this.remainIdle=!1,this.element.attr("aria-expanded","false"),this.dropdown.attr("aria-hidden","true"),this.trigger("hide.uk.dropdown",[this,t]),n==this&&(n=!1)},registerOuterClick:function(){var i=this;c.$html.off("click.outer.dropdown"),setTimeout(function(){c.$html.on("click.outer.dropdown",function(t){o&&clearTimeout(o);c.$(t.target);n!=i||i.element.find(t.target).length||(i.hide(!0),c.$html.off("click.outer.dropdown"))})},10)},checkDimensions:function(){if(this.dropdown.length){this.dropdown.removeClass("uk-dropdown-top uk-dropdown-bottom uk-dropdown-left uk-dropdown-right uk-dropdown-stack uk-dropdown-autoflip").css({topLeft:"",left:"",marginLeft:"",marginRight:""}),this.justified&&this.justified.length&&this.dropdown.css("min-width","");var t,i=c.$.extend({},this.offsetParent.offset(),{width:this.offsetParent[0].offsetWidth,height:this.offsetParent[0].offsetHeight}),e=this.options.offset,o=this.dropdown,n=(o.show().offset(),o.outerWidth()),s=o.outerHeight(),a=this.boundary.width(),r=(this.boundary[0]!==window&&this.boundary.offset()&&this.boundary.offset(),this.options.pos),l={"bottom-left":{top:0+i.height+e,left:0},"bottom-right":{top:0+i.height+e,left:0+i.width-n},"bottom-center":{top:0+i.height+e,left:0+i.width/2-n/2},"top-left":{top:0-s-e,left:0},"top-right":{top:0-s-e,left:0+i.width-n},"top-center":{top:0-s-e,left:0+i.width/2-n/2},"left-top":{top:0,left:0-n-e},"left-bottom":{top:0+i.height-s,left:0-n-e},"left-center":{top:0+i.height/2-s/2,left:0-n-e},"right-top":{top:0,left:0+i.width+e},"right-bottom":{top:0+i.height-s,left:0+i.width+e},"right-center":{top:0+i.height/2-s/2,left:0+i.width+e}},d={};if(t=r.split("-"),d=l[r]?l[r]:l["bottom-left"],this.justified&&this.justified.length)p(o.css({left:0}),this.justified,a);else if(!0!==this.options.preventflip){var h;switch(this.checkBoundary(i.left+d.left,i.top+d.top,n,s,a)){case"x":"x"!==this.options.preventflip&&(h=u.x[r]||"right-top");break;case"y":"y"!==this.options.preventflip&&(h=u.y[r]||"top-left");break;case"xy":this.options.preventflip||(h=u.xy[r]||"right-bottom")}h&&(t=h.split("-"),d=l[h]?l[h]:l["bottom-left"],o.addClass("uk-dropdown-autoflip"),this.checkBoundary(i.left+d.left,i.top+d.top,n,s,a)&&(t=r.split("-"),d=l[r]?l[r]:l["bottom-left"]))}a<n&&(o.addClass("uk-dropdown-stack"),this.trigger("stack.uk.dropdown",[this])),o.css(d).css("display","").addClass("uk-dropdown-"+t[0])}},checkBoundary:function(t,i,e,o,n){var s="";return(t<0||t-c.$win.scrollLeft()+e>n)&&(s+="x"),(i-c.$win.scrollTop()<0||i-c.$win.scrollTop()+o>window.innerHeight)&&(s+="y"),s}}),c.component("dropdownOverlay",{defaults:{justify:!1,cls:"",duration:200},boot:function(){c.ready(function(t){c.$("[data-uk-dropdown-overlay]",t).each(function(){var t=c.$(this);t.data("dropdownOverlay")||c.dropdownOverlay(t,c.Utils.options(t.attr("data-uk-dropdown-overlay")))})})},init:function(){var o=this;this.justified=!!this.options.justify&&c.$(this.options.justify),this.overlay=this.element.find("uk-dropdown-overlay"),this.overlay.length||(this.overlay=c.$('<div class="uk-dropdown-overlay"></div>').appendTo(this.element)),this.overlay.addClass(this.options.cls),this.on({"beforeshow.uk.dropdown":function(t,i){o.dropdown=i,o.justified&&o.justified.length&&p(o.overlay.css({display:"block",marginLeft:"",marginRight:""}),o.justified,o.justified.outerWidth())},"show.uk.dropdown":function(t,i){var e=o.dropdown.dropdown.outerHeight(!0);o.dropdown.element.removeClass("uk-open"),o.overlay.stop().css("display","block").animate({height:e},o.options.duration,function(){o.dropdown.dropdown.css("visibility",""),o.dropdown.element.addClass("uk-open"),c.Utils.checkDisplay(o.dropdown.dropdown,!0)}),o.pointerleave=!1},"hide.uk.dropdown":function(){o.overlay.stop().animate({height:0},o.options.duration)},"pointerenter.uk.dropdown":function(t,i){clearTimeout(o.remainIdle)},"pointerleave.uk.dropdown":function(t,i){o.pointerleave=!0}}),this.overlay.on({mouseenter:function(){o.remainIdle&&(clearTimeout(o.dropdown.remainIdle),clearTimeout(o.remainIdle))},mouseleave:function(){o.pointerleave&&n&&(o.remainIdle=setTimeout(function(){n&&n.hide()},n.options.remaintime))}})}})}(UIkit2),function(e){"use strict";var o=[];e.component("gridMatchHeight",{defaults:{target:!1,row:!0,ignorestacked:!1,observe:!1},boot:function(){e.ready(function(t){e.$("[data-uk-grid-match]",t).each(function(){var t=e.$(this);t.data("gridMatchHeight")||e.gridMatchHeight(t,e.Utils.options(t.attr("data-uk-grid-match")))})})},init:function(){var t,i=this;(this.columns=this.element.children(),this.elements=this.options.target?this.find(this.options.target):this.columns,this.columns.length)&&(e.$win.on("load resize orientationchange",(t=function(){i.element.is(":visible")&&i.match()},e.$(function(){t()}),e.Utils.debounce(t,50))),this.options.observe&&e.domObserve(this.element,function(t){i.element.is(":visible")&&i.match()}),this.on("display.uk.check",function(t){this.element.is(":visible")&&this.match()}.bind(this)),o.push(this))},match:function(){var t=this.columns.filter(":visible:first");if(t.length)return 100<=Math.ceil(100*parseFloat(t.css("width"))/parseFloat(t.parent().css("width")))&&!this.options.ignorestacked?this.revert():e.Utils.matchHeights(this.elements,this.options),this},revert:function(){return this.elements.css("min-height",""),this}}),e.component("gridMargin",{defaults:{cls:"uk-grid-margin",rowfirst:"uk-row-first"},boot:function(){e.ready(function(t){e.$("[data-uk-grid-margin]",t).each(function(){var t=e.$(this);t.data("gridMargin")||e.gridMargin(t,e.Utils.options(t.attr("data-uk-grid-margin")))})})},init:function(){e.stackMargin(this.element,this.options)}})}(UIkit2),function(a){"use strict";var n,i=!1,e=0,o=a.$html;a.$win.on("resize orientationchange",a.Utils.debounce(function(){a.$(".uk-modal.uk-open").each(function(){return a.$(this).data("modal")&&a.$(this).data("modal").resize()})},150)),a.component("modal",{defaults:{keyboard:!0,bgclose:!0,minScrollHeight:150,center:!1,modal:!0},scrollable:!1,transition:!1,hasTransitioned:!0,init:function(){if(n||(n=a.$("body")),this.element.length){var i=this;this.paddingdir="padding-"+("left"==a.langdirection?"right":"left"),this.dialog=this.find(".uk-modal-dialog"),this.active=!1,this.element.attr("aria-hidden",this.element.hasClass("uk-open")),this.on("click",".uk-modal-close",function(t){t.preventDefault(),a.$(t.target).closest(".uk-modal")[0]===i.element[0]&&i.hide()}).on("click",function(t){a.$(t.target)[0]==i.element[0]&&i.options.bgclose&&i.hide()}),a.domObserve(this.element,function(t){i.resize()})}},toggle:function(){return this[this.isActive()?"hide":"show"]()},show:function(){if(this.element.length){var t=this;if(!this.isActive())return this.options.modal&&i&&i.hide(!0),this.element.removeClass("uk-open").show(),this.resize(!0),this.options.modal&&(i=this),this.active=!0,e++,a.support.transition?(this.hasTransitioned=!1,this.element.one(a.support.transition.end,function(){t.hasTransitioned=!0,a.Utils.focus(t.dialog,"a[href]")}).addClass("uk-open")):(this.element.addClass("uk-open"),a.Utils.focus(this.dialog,"a[href]")),o.addClass("uk-modal-page").height(),this.element.attr("aria-hidden","false"),this.element.trigger("show.uk.modal"),a.Utils.checkDisplay(this.dialog,!0),this}},hide:function(t){if(!t&&a.support.transition&&this.hasTransitioned){var i=this;this.one(a.support.transition.end,function(){i._hide()}).removeClass("uk-open")}else this._hide();return this},resize:function(t){if(this.isActive()||t){var i=n.width();if(this.scrollbarwidth=window.innerWidth-i,n.css(this.paddingdir,this.scrollbarwidth),this.element.css("overflow-y",this.scrollbarwidth?"scroll":"auto"),!this.updateScrollable()&&this.options.center){var e=this.dialog.outerHeight(),o=parseInt(this.dialog.css("margin-top"),10)+parseInt(this.dialog.css("margin-bottom"),10);e+o<window.innerHeight?this.dialog.css({top:window.innerHeight/2-e/2-o}):this.dialog.css({top:""})}}},updateScrollable:function(){var t=this.dialog.find(".uk-overflow-container:visible:first");if(t.length){t.css("height",0);var i=Math.abs(parseInt(this.dialog.css("margin-top"),10)),e=this.dialog.outerHeight(),o=window.innerHeight-2*(i<20?20:i)-e;return t.css({maxHeight:o<this.options.minScrollHeight?"":o,height:""}),!0}return!1},_hide:function(){this.active=!1,0<e?e--:e=0,this.element.hide().removeClass("uk-open"),this.element.attr("aria-hidden","true"),e||(o.removeClass("uk-modal-page"),n.css(this.paddingdir,"")),i===this&&(i=!1),this.trigger("hide.uk.modal")},isActive:function(){return this.element.hasClass("uk-open")}}),a.component("modalTrigger",{boot:function(){a.$html.on("click.modal.uikit","[data-uk-modal]",function(t){var i=a.$(this);(i.is("a")&&t.preventDefault(),i.data("modalTrigger"))||a.modalTrigger(i,a.Utils.options(i.attr("data-uk-modal"))).show()}),a.$html.on("keydown.modal.uikit",function(t){i&&27===t.keyCode&&i.options.keyboard&&(t.preventDefault(),i.hide())})},init:function(){var i=this;this.options=a.$.extend({target:!!i.element.is("a")&&i.element.attr("href")},this.options),this.modal=a.modal(this.options.target,this.options),this.on("click",function(t){t.preventDefault(),i.show()}),this.proxy(this.modal,"show hide isActive")}}),a.modal.dialog=function(t,i){var e=a.modal(a.$(a.modal.dialog.template).appendTo("body"),i);return e.on("hide.uk.modal",function(){e.persist&&(e.persist.appendTo(e.persist.data("modalPersistParent")),e.persist=!1),e.element.remove()}),function(t,i){if(!i)return;"object"==typeof t?(t=t instanceof jQuery?t:a.$(t)).parent().length&&(i.persist=t,i.persist.data("modalPersistParent",t.parent())):t="string"==typeof t||"number"==typeof t?a.$("<div></div>").html(t):a.$("<div></div>").html("UIkit2.modal Error: Unsupported data type: "+typeof t);t.appendTo(i.element.find(".uk-modal-dialog"))}(t,e),e},a.modal.dialog.template='<div class="uk-modal"><div class="uk-modal-dialog" style="min-height:0;"></div></div>',a.modal.alert=function(t,i){i=a.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:a.modal.labels},i);var e=a.modal.dialog(['<div class="uk-margin uk-modal-content">'+String(t)+"</div>",'<div class="uk-modal-footer uk-text-right"><button class="uk-button uk-button-primary uk-modal-close">'+i.labels.Ok+"</button></div>"].join(""),i);return e.on("show.uk.modal",function(){setTimeout(function(){e.element.find("button:first").focus()},50)}),e.show()},a.modal.confirm=function(t,i,e){var o=1<arguments.length&&arguments[arguments.length-1]?arguments[arguments.length-1]:{};i=a.$.isFunction(i)?i:function(){},e=a.$.isFunction(e)?e:function(){},o=a.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:a.modal.labels},a.$.isFunction(o)?{}:o);var n=a.modal.dialog(['<div class="uk-margin uk-modal-content">'+String(t)+"</div>",'<div class="uk-modal-footer uk-text-right"><button class="uk-button js-modal-confirm-cancel">'+o.labels.Cancel+'</button> <button class="uk-button uk-button-primary js-modal-confirm">'+o.labels.Ok+"</button></div>"].join(""),o);return n.element.find(".js-modal-confirm, .js-modal-confirm-cancel").on("click",function(){a.$(this).is(".js-modal-confirm")?i():e(),n.hide()}),n.on("show.uk.modal",function(){setTimeout(function(){n.element.find(".js-modal-confirm").focus()},50)}),n.show()},a.modal.prompt=function(t,i,e,o){e=a.$.isFunction(e)?e:function(t){},o=a.$.extend(!0,{bgclose:!1,keyboard:!1,modal:!1,labels:a.modal.labels},o);var n=a.modal.dialog([t?'<div class="uk-modal-content uk-form">'+String(t)+"</div>":"",'<div class="uk-margin-small-top uk-modal-content uk-form"><p><input type="text" class="uk-width-1-1"></p></div>','<div class="uk-modal-footer uk-text-right"><button class="uk-button uk-modal-close">'+o.labels.Cancel+'</button> <button class="uk-button uk-button-primary js-modal-ok">'+o.labels.Ok+"</button></div>"].join(""),o),s=n.element.find("input[type='text']").val(i||"").on("keyup",function(t){13==t.keyCode&&n.element.find(".js-modal-ok").trigger("click")});return n.element.find(".js-modal-ok").on("click",function(){!1!==e(s.val())&&n.hide()}),n.show()},a.modal.blockUI=function(t,i){var e=a.modal.dialog(['<div class="uk-margin uk-modal-content">'+String(t||'<div class="uk-text-center">...</div>')+"</div>"].join(""),a.$.extend({bgclose:!1,keyboard:!1,modal:!1},i));return e.content=e.element.find(".uk-modal-content:first"),e.show()},a.modal.labels={Ok:"Ok",Cancel:"Cancel"}}(UIkit2),function(a){"use strict";a.component("nav",{defaults:{toggle:'>li.uk-parent > a[href="#"]',lists:">li.uk-parent > ul",multiple:!1},boot:function(){a.ready(function(t){a.$("[data-uk-nav]",t).each(function(){var t=a.$(this);if(!t.data("nav"))a.nav(t,a.Utils.options(t.attr("data-uk-nav")))})})},init:function(){var e=this;this.on("click.uk.nav",this.options.toggle,function(t){t.preventDefault();var i=a.$(this);e.open(i.parent()[0]==e.element[0]?i:i.parent("li"))}),this.update(),a.domObserve(this.element,function(t){e.element.find(e.options.lists).not("[role]").length&&e.update()})},update:function(){var o=this;this.find(this.options.lists).each(function(){var t=a.$(this).attr("role","menu"),i=t.closest("li"),e=i.hasClass("uk-active");i.data("list-container")||(t.wrap('<div style="overflow:hidden;height:0;position:relative;"></div>'),i.data("list-container",t.parent()[e?"removeClass":"addClass"]("uk-hidden"))),i.attr("aria-expanded",i.hasClass("uk-open")),e&&o.open(i,!0)})},open:function(t,i){var e=this,o=this.element,n=a.$(t),s=n.data("list-container");this.options.multiple||o.children(".uk-open").not(t).each(function(){var t=a.$(this);t.data("list-container")&&t.data("list-container").stop().animate({height:0},function(){a.$(this).parent().removeClass("uk-open").end().addClass("uk-hidden")})}),n.toggleClass("uk-open"),n.attr("aria-expanded",n.hasClass("uk-open")),s&&(n.hasClass("uk-open")&&s.removeClass("uk-hidden"),i?(s.stop().height(n.hasClass("uk-open")?"auto":0),n.hasClass("uk-open")||s.addClass("uk-hidden"),this.trigger("display.uk.check")):s.stop().animate({height:n.hasClass("uk-open")?function(t){var i=a.$(t),e="auto";if(i.is(":visible"))e=i.outerHeight();else{var o={position:i.css("position"),visibility:i.css("visibility"),display:i.css("display")};e=i.css({position:"absolute",visibility:"hidden",display:"block"}).outerHeight(),i.css(o)}return e}(s.find("ul:first")):0},function(){n.hasClass("uk-open")?s.css("height",""):s.addClass("uk-hidden"),e.trigger("display.uk.check")}))}})}(UIkit2),function(r){"use strict";var l={x:window.scrollX,y:window.scrollY},d=(r.$win,r.$doc,r.$html),n={show:function(t,i){if((t=r.$(t)).length){i=r.$.extend({mode:"push"},i);var e=r.$("body"),o=t.find(".uk-offcanvas-bar:first"),n="right"==r.langdirection,s=(o.hasClass("uk-offcanvas-bar-flip")?-1:1)*(n?-1:1),a=window.innerWidth-e.width();l={x:window.pageXOffset,y:window.pageYOffset},o.attr("mode",i.mode),t.addClass("uk-active"),e.css({width:window.innerWidth-a,height:window.innerHeight}).addClass("uk-offcanvas-page"),"push"!=i.mode&&"reveal"!=i.mode||e.css(n?"margin-right":"margin-left",(n?-1:1)*(o.outerWidth()*s)),"reveal"==i.mode&&o.css("clip","rect(0, "+o.outerWidth()+"px, 100vh, 0)"),d.css("margin-top",-1*l.y).width(),o.addClass("uk-offcanvas-bar-show"),this._initElement(t),o.trigger("show.uk.offcanvas",[t,o]),t.attr("aria-hidden","false")}},hide:function(t){var i=r.$("body"),e=r.$(".uk-offcanvas.uk-active"),o="right"==r.langdirection,n=e.find(".uk-offcanvas-bar:first"),s=function(){i.removeClass("uk-offcanvas-page").css({width:"",height:"",marginLeft:"",marginRight:""}),e.removeClass("uk-active"),n.removeClass("uk-offcanvas-bar-show"),d.css("margin-top",""),window.scrollTo(l.x,l.y),n.trigger("hide.uk.offcanvas",[e,n]),e.attr("aria-hidden","true")};e.length&&("none"==n.attr("mode")&&(t=!0),r.support.transition&&!t?(i.one(r.support.transition.end,function(){s()}).css(o?"margin-right":"margin-left",""),"reveal"==n.attr("mode")&&n.css("clip",""),setTimeout(function(){n.removeClass("uk-offcanvas-bar-show")},0)):s())},_initElement:function(t){t.data("OffcanvasInit")||(t.on("click.uk.offcanvas swipeRight.uk.offcanvas swipeLeft.uk.offcanvas",function(t){var i=r.$(t.target);if(t.type.match(/swipe/)){if(i.parents(".uk-offcanvas-bar:first").length)return}else if(!i.hasClass("uk-offcanvas-close")){if(i.hasClass("uk-offcanvas-bar"))return;if(i.parents(".uk-offcanvas-bar:first").length)return}t.stopImmediatePropagation(),n.hide()}),t.on("click",'a[href*="#"]',function(t){var e=r.$(this),o=e.attr("href");"#"!=o&&(r.$doc.one("hide.uk.offcanvas",function(){var i;try{i=r.$(e[0].hash)}catch(t){i=""}i.length||(i=r.$('[name="'+e[0].hash.replace("#","")+'"]')),i.length&&r.Utils.scrollToElement?r.Utils.scrollToElement(i,r.Utils.options(e.attr("data-uk-smooth-scroll")||"{}")):window.location.href=o}),n.hide())}),t.data("OffcanvasInit",!0))}};r.component("offcanvasTrigger",{boot:function(){d.on("click.offcanvas.uikit","[data-uk-offcanvas]",function(t){t.preventDefault();var i=r.$(this);if(!i.data("offcanvasTrigger")){r.offcanvasTrigger(i,r.Utils.options(i.attr("data-uk-offcanvas")));i.trigger("click")}}),d.on("keydown.uk.offcanvas",function(t){27===t.keyCode&&n.hide()})},init:function(){var i=this;this.options=r.$.extend({target:!!i.element.is("a")&&i.element.attr("href"),mode:"push"},this.options),this.on("click",function(t){t.preventDefault(),n.show(i.options.target,i.options)})}}),r.offcanvas=n}(UIkit2),function(r){"use strict";var a;function l(t,i,e){var o,n=r.$.Deferred(),s=t,a=t;return e[0]===i[0]?n.resolve():("object"==typeof t&&(s=t[0],a=t[1]||t[0]),r.$body.css("overflow-x","hidden"),o=function(){i&&i.hide().removeClass("uk-active "+a+" uk-animation-reverse"),e.addClass(s).one(r.support.animation.end,function(){setTimeout(function(){e.removeClass(""+s).css({opacity:"",display:""})},0),n.resolve(),r.$body.css("overflow-x",""),i&&i.css({opacity:"",display:""})}.bind(this)).show()},e.css("animation-duration",this.options.duration+"ms"),i&&i.length?(i.css("animation-duration",this.options.duration+"ms"),i.css("display","none").addClass(a+" uk-animation-reverse").one(r.support.animation.end,function(){o()}.bind(this)).css("display","")):(e.addClass("uk-active"),o())),n.promise()}r.component("switcher",{defaults:{connect:!1,toggle:">*",active:0,animation:!1,duration:200,swiping:!0},animating:!1,boot:function(){r.ready(function(t){r.$("[data-uk-switcher]",t).each(function(){var t=r.$(this);if(!t.data("switcher"))r.switcher(t,r.Utils.options(t.attr("data-uk-switcher")))})})},init:function(){var e=this;this.on("click.uk.switcher",this.options.toggle,function(t){t.preventDefault(),e.show(this)}),this.options.connect&&(this.connect=r.$(this.options.connect),this.connect.length&&(this.connect.on("click.uk.switcher","[data-uk-switcher-item]",function(t){t.preventDefault();var i=r.$(this).attr("data-uk-switcher-item");if(e.index!=i)switch(i){case"next":case"previous":e.show(e.index+("next"==i?1:-1));break;default:e.show(parseInt(i,10))}}),this.options.swiping&&this.connect.on("swipeRight swipeLeft",function(t){t.preventDefault(),window.getSelection().toString()||e.show(e.index+("swipeLeft"==t.type?1:-1))}),this.update()))},update:function(){this.connect.children().removeClass("uk-active").attr("aria-hidden","true");var t=this.find(this.options.toggle),i=t.filter(".uk-active");if(i.length)this.show(i,!1);else{if(!1===this.options.active)return;i=t.eq(this.options.active),this.show(i.length?i:t.eq(0),!1)}t.not(i).attr("aria-expanded","false"),i.attr("aria-expanded","true")},show:function(t,i){if(!this.animating){var e=this.find(this.options.toggle);isNaN(t)?t=r.$(t):(t=t<0?e.length-1:t,t=e.eq(e[t]?t:0));var n=this,o=r.$(t),s=a[this.options.animation]||function(t,i){if(!n.options.animation)return a.none.apply(n);var e=n.options.animation.split(",");return 1==e.length&&(e[1]=e[0]),e[0]=e[0].trim(),e[1]=e[1].trim(),l.apply(n,[e,t,i])};!1!==i&&r.support.animation||(s=a.none),o.hasClass("uk-disabled")||(e.attr("aria-expanded","false"),o.attr("aria-expanded","true"),e.filter(".uk-active").removeClass("uk-active"),o.addClass("uk-active"),this.options.connect&&this.connect.length&&(this.index=this.find(this.options.toggle).index(o),-1==this.index&&(this.index=0),this.connect.each(function(){var t=r.$(this),i=r.$(t.children()),e=r.$(i.filter(".uk-active")),o=r.$(i.eq(n.index));n.animating=!0,s.apply(n,[e,o]).then(function(){e.removeClass("uk-active"),o.addClass("uk-active"),e.attr("aria-hidden","true"),o.attr("aria-hidden","false"),r.Utils.checkDisplay(o,!0),n.animating=!1})})),this.trigger("show.uk.switcher",[o]))}}}),a={none:function(){var t=r.$.Deferred();return t.resolve(),t.promise()},fade:function(t,i){return l.apply(this,["uk-animation-fade",t,i])},"slide-bottom":function(t,i){return l.apply(this,["uk-animation-slide-bottom",t,i])},"slide-top":function(t,i){return l.apply(this,["uk-animation-slide-top",t,i])},"slide-vertical":function(t,i,e){var o=["uk-animation-slide-top","uk-animation-slide-bottom"];return t&&t.index()>i.index()&&o.reverse(),l.apply(this,[o,t,i])},"slide-left":function(t,i){return l.apply(this,["uk-animation-slide-left",t,i])},"slide-right":function(t,i){return l.apply(this,["uk-animation-slide-right",t,i])},"slide-horizontal":function(t,i,e){var o=["uk-animation-slide-right","uk-animation-slide-left"];return t&&t.index()>i.index()&&o.reverse(),l.apply(this,[o,t,i])},scale:function(t,i){return l.apply(this,["uk-animation-scale-up",t,i])}},r.switcher.animations=a}(UIkit2),function(a){"use strict";a.component("tab",{defaults:{target:">li:not(.uk-tab-responsive, .uk-disabled)",connect:!1,active:0,animation:!1,duration:200,swiping:!0},boot:function(){a.ready(function(t){a.$("[data-uk-tab]",t).each(function(){var t=a.$(this);if(!t.data("tab"))a.tab(t,a.Utils.options(t.attr("data-uk-tab")))})})},init:function(){var e=this;this.current=!1,this.on("click.uk.tab",this.options.target,function(t){if(t.preventDefault(),!e.switcher||!e.switcher.animating){var i=e.find(e.options.target).not(this);i.removeClass("uk-active").blur(),e.trigger("change.uk.tab",[a.$(this).addClass("uk-active"),e.current]),e.current=a.$(this),e.options.connect||(i.attr("aria-expanded","false"),a.$(this).attr("aria-expanded","true"))}}),this.options.connect&&(this.connect=a.$(this.options.connect)),this.responsivetab=a.$('<li class="uk-tab-responsive uk-active"><a></a></li>').append('<div class="uk-dropdown uk-dropdown-small"><ul class="uk-nav uk-nav-dropdown"></ul><div>'),this.responsivetab.dropdown=this.responsivetab.find(".uk-dropdown"),this.responsivetab.lst=this.responsivetab.dropdown.find("ul"),this.responsivetab.caption=this.responsivetab.find("a:first"),this.element.hasClass("uk-tab-bottom")&&this.responsivetab.dropdown.addClass("uk-dropdown-up"),this.responsivetab.lst.on("click.uk.tab","a",function(t){t.preventDefault(),t.stopPropagation();var i=a.$(this);e.element.children("li:not(.uk-tab-responsive)").eq(i.data("index")).trigger("click")}),this.on("show.uk.switcher change.uk.tab",function(t,i){e.responsivetab.caption.html(i.text())}),this.element.append(this.responsivetab),this.options.connect&&(this.switcher=a.switcher(this.element,{toggle:">li:not(.uk-tab-responsive)",connect:this.options.connect,active:this.options.active,animation:this.options.animation,duration:this.options.duration,swiping:this.options.swiping})),a.dropdown(this.responsivetab,{mode:"click",preventflip:"y"}),e.trigger("change.uk.tab",[this.element.find(this.options.target).not(".uk-tab-responsive").filter(".uk-active")]),this.check(),a.$win.on("resize orientationchange",a.Utils.debounce(function(){e.element.is(":visible")&&e.check()},100)),this.on("display.uk.check",function(){e.element.is(":visible")&&e.check()})},check:function(){var t=this.element.children("li:not(.uk-tab-responsive)").removeClass("uk-hidden");if(t.length){var i,e,o=t.eq(0).offset().top+Math.ceil(t.eq(0).height()/2),n=!1;if(this.responsivetab.lst.empty(),t.each(function(){a.$(this).offset().top>o&&(n=!0)}),n)for(var s=0;s<t.length;s++)(i=a.$(t.eq(s))).find("a"),"none"==i.css("float")||i.attr("uk-dropdown")||(i.hasClass("uk-disabled")||((e=a.$(i[0].outerHTML)).find("a").data("index",s),this.responsivetab.lst.append(e)),i.addClass("uk-hidden"));this.responsivetab[this.responsivetab.lst.children("li").length?"removeClass":"addClass"]("uk-hidden")}else this.responsivetab.addClass("uk-hidden")}})}(UIkit2),function(i){"use strict";i.component("cover",{defaults:{automute:!0},boot:function(){i.ready(function(t){i.$("[data-uk-cover]",t).each(function(){var t=i.$(this);if(!t.data("cover"))i.cover(t,i.Utils.options(t.attr("data-uk-cover")))})})},init:function(){if(this.parent=this.element.parent(),i.$win.on("load resize orientationchange",i.Utils.debounce(function(){this.check()}.bind(this),100)),this.on("display.uk.check",function(t){this.element.is(":visible")&&this.check()}.bind(this)),this.check(),this.element.is("iframe")&&this.options.automute){var t=this.element.attr("src");this.element.attr("src","").on("load",function(){this.contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}',"*")}).attr("src",[t,-1<t.indexOf("?")?"&":"?","enablejsapi=1&api=1"].join(""))}},check:function(){this.element.css({width:"",height:""}),this.dimension={w:this.element.width(),h:this.element.height()},this.element.attr("width")&&!isNaN(this.element.attr("width"))&&(this.dimension.w=this.element.attr("width")),this.element.attr("height")&&!isNaN(this.element.attr("height"))&&(this.dimension.h=this.element.attr("height")),this.ratio=this.dimension.w/this.dimension.h;var t,i,e=this.parent.width(),o=this.parent.height();e/this.ratio<o?(t=Math.ceil(o*this.ratio),i=o):(t=e,i=Math.ceil(e/this.ratio)),this.element.css({width:t,height:i})}})}(UIkit2),function(t){var i;window.UIkit2&&(i=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-accordion",["uikit"],function(){return i||t(UIkit2)})}(function(s){"use strict";return s.component("accordion",{defaults:{showfirst:!0,collapse:!0,animate:!0,easing:"swing",duration:300,toggle:".uk-accordion-title",containers:".uk-accordion-content",clsactive:"uk-active"},boot:function(){s.ready(function(t){setTimeout(function(){s.$("[data-uk-accordion]",t).each(function(){var t=s.$(this);t.data("accordion")||s.accordion(t,s.Utils.options(t.attr("data-uk-accordion")))})},0)})},init:function(){var i=this;this.element.on("click.uk.accordion",this.options.toggle,function(t){t.preventDefault(),i.toggleItem(s.$(this).data("wrapper"),i.options.animate,i.options.collapse)}),this.update(!0),s.domObserve(this.element,function(t){i.element.children(i.options.containers).length&&i.update()})},toggleItem:function(t,i,e){var o=this;t.data("toggle").toggleClass(this.options.clsactive),t.data("content").toggleClass(this.options.clsactive);var n=t.data("toggle").hasClass(this.options.clsactive);e&&(this.toggle.not(t.data("toggle")).removeClass(this.options.clsactive),this.content.not(t.data("content")).removeClass(this.options.clsactive).parent().stop().css("overflow","hidden").animate({height:0},{easing:this.options.easing,duration:i?this.options.duration:0}).attr("aria-expanded","false")),t.stop().css("overflow","hidden"),i?t.animate({height:n?function(t){var i=s.$(t),e="auto";if(i.is(":visible"))e=i.outerHeight();else{var o={position:i.css("position"),visibility:i.css("visibility"),display:i.css("display")};e=i.css({position:"absolute",visibility:"hidden",display:"block"}).outerHeight(),i.css(o)}return e}(t.data("content")):0},{easing:this.options.easing,duration:this.options.duration,complete:function(){n&&(t.css({overflow:"",height:"auto"}),s.Utils.checkDisplay(t.data("content"))),o.trigger("display.uk.check")}}):(t.height(n?"auto":0),n&&(t.css({overflow:""}),s.Utils.checkDisplay(t.data("content"))),this.trigger("display.uk.check")),t.attr("aria-expanded",n),this.element.trigger("toggle.uk.accordion",[n,t.data("toggle"),t.data("content")])},update:function(t){var i,e,o,n=this;this.toggle=this.find(this.options.toggle),this.content=this.find(this.options.containers),this.content.each(function(t){(i=s.$(this)).parent().data("wrapper")?e=i.parent():(e=s.$(this).wrap('<div data-wrapper="true" style="overflow:hidden;height:0;position:relative;"></div>').parent()).attr("aria-expanded","false"),o=n.toggle.eq(t),e.data("toggle",o),e.data("content",i),o.data("wrapper",e),i.data("wrapper",e)}),this.element.trigger("update.uk.accordion",[this]),t&&this.options.showfirst&&this.toggleItem(this.toggle.eq(0).data("wrapper"),!1,!1)}}),s.accordion}),function(t){var i;window.UIkit2&&(i=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-grid",["uikit"],function(){return i||t(UIkit2)})}(function(w){"use strict";w.component("grid",{defaults:{colwidth:"auto",animation:!0,duration:300,gutter:0,controls:!1,filter:!1,origin:w.langdirection},boot:function(){w.ready(function(t){w.$("[data-uk-grid]",t).each(function(){var t=w.$(this);t.data("grid")||w.grid(t,w.Utils.options(t.attr("data-uk-grid")))})})},init:function(){var e=this,t=String(this.options.gutter).trim().split(" ");this.gutterv=parseInt(t[0],10),this.gutterh=parseInt(t[1]||t[0],10),this.element.css({position:"relative"}),this.controls=null,this.origin=this.options.origin,this.options.controls&&(this.controls=w.$(this.options.controls),this.controls.on("click","[data-uk-filter]",function(t){t.preventDefault(),e.filter(w.$(this).attr("data-uk-filter"))}),this.controls.on("click","[data-uk-sort]",function(t){t.preventDefault();var i=w.$(this).attr("data-uk-sort").split(":");e.sort(i[0],i[1])})),w.$win.on("load resize orientationchange",w.Utils.debounce(function(){e.currentfilter?e.filter(e.currentfilter):this.update()}.bind(this),100)),this.on("display.uk.check",function(){e.element.is(":visible")&&e.update()}),w.domObserve(this.element,function(t){e.update()}),!1!==this.options.filter?this.filter(this.options.filter):this.update()},_prepareElements:function(){var t,i=this.element.children().not("[data-grid-prepared]");i.length&&(t={position:"absolute",boxSizing:"border-box",width:"auto"==this.options.colwidth?"":this.options.colwidth},this.options.gutter&&(t["padding-"+this.origin]=this.gutterh,t["padding-bottom"]=this.gutterv,this.element.css("margin-"+this.origin,-1*this.gutterh)),i.attr("data-grid-prepared","true").css(t))},update:function(t){var i=this;this._prepareElements();var e,o,n,s,a,r,l,d,h,c=t=t||this.element.children(":visible"),u=this.element.width()+2*this.gutterh+2,p=0,f=0,m=[];this.trigger("beforeupdate.uk.grid",[c]),c.each(function(t){for(e=w.$(this),h=this.getBoundingClientRect(),o=h.width,n=h.height,r=f=p=0,d=m.length;r<d;r++)s=m[r],p<=s.aX&&(p=s.aX),u<p+o&&(p=0),f<=s.aY&&(f=s.aY);(a={ele:e,top:f,width:o,height:n,aY:f+n,aX:p+o})[i.origin]=p,m.push(a)});var g,v,k=0;for(r=0,d=m.length;r<d;r++){for(s=m[r],l=f=0;l<r;l++)g=m[l],s[this.origin]<g.aX&&g[this.origin]+1<s.aX&&(f=g.aY);s.top=f,s.aY=f+s.height,k=Math.max(k,s.aY)}k-=this.gutterv,this.options.animation?(this.element.stop().animate({height:k},100),m.forEach(function(t){(v={top:t.top,opacity:1})[i.origin]=t[i.origin],t.ele.stop().animate(v,this.options.duration)}.bind(this))):(this.element.css("height",k),m.forEach(function(t){(v={top:t.top,opacity:1})[i.origin]=t[i.origin],t.ele.css(v)}.bind(this))),setTimeout(function(){w.$doc.trigger("scrolling.uk.document")},2*this.options.duration*(this.options.animation?1:0)),this.trigger("afterupdate.uk.grid",[c])},filter:function(n){"number"==typeof(n=(this.currentfilter=n)||[])&&(n=n.toString()),"string"==typeof n&&(n=n.split(/,/).map(function(t){return t.trim()}));var t=this.element.children(),s={visible:[],hidden:[]};t.each(function(t){var i=w.$(this),e=i.attr("data-uk-filter"),o=!n.length;e&&(e=e.split(/,/).map(function(t){return t.trim()}),n.forEach(function(t){-1<e.indexOf(t)&&(o=!0)})),s[o?"visible":"hidden"].push(i)}),s.hidden=w.$(s.hidden).map(function(){return this[0]}),s.visible=w.$(s.visible).map(function(){return this[0]}),s.hidden.attr("aria-hidden","true").filter(":visible").fadeOut(this.options.duration),s.visible.attr("aria-hidden","false").filter(":hidden").css("opacity",0).show(),this.update(s.visible),this.controls&&this.controls.length&&this.controls.find("[data-uk-filter]").removeClass("uk-active").filter('[data-uk-filter="'+n+'"]').addClass("uk-active")},sort:function(e,o){"string"==typeof(o=o||1)&&(o="desc"==o.toLowerCase()?-1:1);var t=this.element.children();t.sort(function(t,i){return t=w.$(t),((i=w.$(i)).data(e)||"")<(t.data(e)||"")?o:-1*o}).appendTo(this.element),this.update(t.filter(":visible")),this.controls&&this.controls.length&&this.controls.find("[data-uk-sort]").removeClass("uk-active").filter('[data-uk-sort="'+e+":"+(-1==o?"desc":"asc")+'"]').addClass("uk-active")}})}),function(t){var i;window.UIkit2&&(i=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-lightbox",["uikit"],function(){return i||t(UIkit2)})}(function(p){"use strict";var d,h={};return p.component("lightbox",{defaults:{allowfullscreen:!0,duration:400,group:!1,keyboard:!0},index:0,items:!1,boot:function(){p.$html.on("click","[data-uk-lightbox]",function(t){t.preventDefault();var i=p.$(this);i.data("lightbox")||p.lightbox(i,p.Utils.options(i.attr("data-uk-lightbox"))),i.data("lightbox").show(i)}),p.$doc.on("keyup",function(t){if(d&&d.is(":visible")&&d.lightbox.options.keyboard)switch(t.preventDefault(),t.keyCode){case 37:d.lightbox.previous();break;case 39:d.lightbox.next()}})},init:function(){var i=[];if(this.index=0,this.siblings=[],this.element&&this.element.length){var t=this.options.group?p.$('[data-uk-lightbox*="'+this.options.group+'"]'):this.element;t.each(function(){var t=p.$(this);i.push({source:t.attr("href"),title:t.attr("data-title")||t.attr("title"),type:t.attr("data-lightbox-type")||"auto",link:t})}),this.index=t.index(this.element),this.siblings=i}else this.options.group&&this.options.group.length&&(this.siblings=this.options.group);this.trigger("lightbox-init",[this])},show:function(e){this.modal=function(t){if(d)return d.lightbox=t,d;(d=p.$(['<div class="uk-modal">','<div class="uk-modal-dialog uk-modal-dialog-lightbox uk-slidenav-position" style="margin-left:auto;margin-right:auto;width:200px;height:200px;top:'+Math.abs(window.innerHeight/2-200)+'px;">','<a href="#" class="uk-modal-close uk-close uk-close-alt"></a>','<div class="uk-lightbox-content"></div>','<div class="uk-modal-spinner uk-hidden"></div>',"</div>","</div>"].join("")).appendTo("body")).dialog=d.find(".uk-modal-dialog:first"),d.content=d.find(".uk-lightbox-content:first"),d.loader=d.find(".uk-modal-spinner:first"),d.closer=d.find(".uk-close.uk-close-alt"),d.modal=p.modal(d,{modal:!1}),d.on("swipeRight swipeLeft",function(t){d.lightbox["swipeLeft"==t.type?"next":"previous"]()}).on("click","[data-lightbox-previous], [data-lightbox-next]",function(t){t.preventDefault(),d.lightbox[p.$(this).is("[data-lightbox-next]")?"next":"previous"]()}),d.on("hide.uk.modal",function(t){d.content.html("")});var i={w:window.innerWidth,h:window.innerHeight};return p.$win.on("load resize orientationchange",p.Utils.debounce(function(t){i.w!==window.innerWidth&&d.is(":visible")&&!p.Utils.isFullscreen()&&d.lightbox.fitSize(),i={w:window.innerWidth,h:window.innerHeight}},100)),d.lightbox=t,d}(this),this.modal.dialog.stop(),this.modal.content.stop();var t,i,o=this,n=p.$.Deferred();"object"==typeof(e=e||0)&&this.siblings.forEach(function(t,i){e[0]===t.link[0]&&(e=i)}),e<0?e=this.siblings.length-e:this.siblings[e]||(e=0),i=this.siblings[e],t={lightbox:o,source:i.source,type:i.type,index:e,promise:n,title:i.title,item:i,meta:{content:"",width:null,height:null}},this.index=e,this.modal.content.empty(),this.modal.is(":visible")||(this.modal.content.css({width:"",height:""}).empty(),this.modal.modal.show()),this.modal.loader.removeClass("uk-hidden"),n.promise().done(function(){o.data=t,o.fitSize(t)}).fail(function(){t.meta.content='<div class="uk-position-cover uk-flex uk-flex-middle uk-flex-center"><strong>Loading resource failed!</strong></div>',t.meta.width=400,t.meta.height=300,o.data=t,o.fitSize(t)}),o.trigger("showitem.uk.lightbox",[t])},fitSize:function(){var t=this,i=this.data,e=this.modal.dialog.outerWidth()-this.modal.dialog.width(),o=parseInt(this.modal.dialog.css("margin-top"),10)+parseInt(this.modal.dialog.css("margin-bottom"),10),n=i.meta.content,s=t.options.duration;1<this.siblings.length&&(n=[n,'<a href="#" class="uk-slidenav uk-slidenav-contrast uk-slidenav-previous uk-hidden-touch" data-lightbox-previous></a>','<a href="#" class="uk-slidenav uk-slidenav-contrast uk-slidenav-next uk-hidden-touch" data-lightbox-next></a>'].join(""));var a,r,l=p.$("<div>&nbsp;</div>").css({opacity:0,position:"absolute",top:0,left:0,width:"100%",maxWidth:t.modal.dialog.css("max-width"),padding:t.modal.dialog.css("padding"),margin:t.modal.dialog.css("margin")}),d=i.meta.width,h=i.meta.height;l.appendTo("body").width(),a=l.width(),r=window.innerHeight-o,l.remove(),this.modal.dialog.find(".uk-modal-caption").remove(),i.title&&(this.modal.dialog.append('<div class="uk-modal-caption">'+i.title+"</div>"),r-=this.modal.dialog.find(".uk-modal-caption").outerHeight()),a<i.meta.width&&(h=Math.floor(h*(a/d)),d=a),r<h&&(h=Math.floor(r),d=Math.ceil(i.meta.width*(r/i.meta.height))),this.modal.content.css("opacity",0).width(d).html(n),"iframe"==i.type&&this.modal.content.find("iframe:first").height(h);var c=h+e,u=Math.floor(window.innerHeight/2-c/2)-o;u<0&&(u=0),this.modal.closer.addClass("uk-hidden"),t.modal.data("mwidth")==d&&t.modal.data("mheight")==h&&(s=0),this.modal.dialog.animate({width:d+e,height:h+e,top:u},s,"swing",function(){t.modal.loader.addClass("uk-hidden"),t.modal.content.css({width:""}).animate({opacity:1},function(){t.modal.closer.removeClass("uk-hidden")}),t.modal.data({mwidth:d,mheight:h})})},next:function(){this.show(this.siblings[this.index+1]?this.index+1:0)},previous:function(){this.show(this.siblings[this.index-1]?this.index-1:this.siblings.length-1)}}),p.plugin("lightbox","image",{init:function(t){t.on("showitem.uk.lightbox",function(t,o){if("image"==o.type||o.source&&o.source.match(/\.(jpg|jpeg|png|gif|svg)$/i)){var i=function(t,i,e){o.meta={content:'<img class="uk-responsive-width" width="'+i+'" height="'+e+'" src ="'+t+'">',width:i,height:e},o.type="image",o.promise.resolve()};if(h[o.source])i(o.source,h[o.source].width,h[o.source].height);else{var e=new Image;e.onerror=function(){o.promise.reject("Loading image failed")},e.onload=function(){h[o.source]={width:e.width,height:e.height},i(o.source,h[o.source].width,h[o.source].height)},e.src=o.source}}})}}),p.plugin("lightbox","youtube",{init:function(t){var r=/(\/\/.*?youtube\.[a-z]+)\/watch\?v=([^&]+)&?(.*)/,l=/youtu\.be\/(.*)/;t.on("showitem.uk.lightbox",function(t,o){var i,e,n=function(t,i,e){o.meta={content:'<iframe src="//www.youtube.com/embed/'+t+'" width="'+i+'" height="'+e+'" style="max-width:100%;"'+(d.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:i,height:e},o.type="iframe",o.promise.resolve()};if((e=o.source.match(r))&&(i=e[2]),(e=o.source.match(l))&&(i=e[1]),i){if(h[i])n(i,h[i].width,h[i].height);else{var s=new Image,a=!1;s.onerror=function(){h[i]={width:640,height:320},n(i,h[i].width,h[i].height)},s.onload=function(){120==s.width&&90==s.height?a?(h[i]={width:640,height:320},n(i,h[i].width,h[i].height)):(a=!0,s.src="//img.youtube.com/vi/"+i+"/0.jpg"):(h[i]={width:s.width,height:s.height},n(i,s.width,s.height))},s.src="//img.youtube.com/vi/"+i+"/maxresdefault.jpg"}t.stopImmediatePropagation()}})}}),p.plugin("lightbox","vimeo",{init:function(t){var n,s=/(\/\/.*?)vimeo\.[a-z]+\/([0-9]+).*?/;t.on("showitem.uk.lightbox",function(t,o){var i,e=function(t,i,e){o.meta={content:'<iframe src="//player.vimeo.com/video/'+t+'" width="'+i+'" height="'+e+'" style="width:100%;box-sizing:border-box;"'+(d.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:i,height:e},o.type="iframe",o.promise.resolve()};(n=o.source.match(s))&&(i=n[2],h[i]?e(i,h[i].width,h[i].height):p.$.ajax({type:"GET",url:"//vimeo.com/api/oembed.json?url="+encodeURI(o.source),jsonp:"callback",dataType:"jsonp",success:function(t){h[i]={width:t.width,height:t.height},e(i,h[i].width,h[i].height)}}),t.stopImmediatePropagation())})}}),p.plugin("lightbox","video",{init:function(t){t.on("showitem.uk.lightbox",function(t,o){var i=function(t,i,e){o.meta={content:'<video class="uk-responsive-width" src="'+t+'" width="'+i+'" height="'+e+'" controls></video>',width:i,height:e},o.type="video",o.promise.resolve()};if("video"==o.type||o.source.match(/\.(mp4|webm|ogv)$/i))if(h[o.source])i(o.source,h[o.source].width,h[o.source].height);else var e=p.$('<video style="position:fixed;visibility:hidden;top:-10000px;"></video>').attr("src",o.source).appendTo("body"),n=setInterval(function(){e[0].videoWidth&&(clearInterval(n),h[o.source]={width:e[0].videoWidth,height:e[0].videoHeight},i(o.source,h[o.source].width,h[o.source].height),e.remove())},20)})}}),p.plugin("lightbox","iframe",{init:function(s){s.on("showitem.uk.lightbox",function(t,i){var e,o,n;("iframe"===i.type||i.source.match(/\.(html|php)$/))&&(e=i.source,o=s.options.width||800,n=s.options.height||600,i.meta={content:'<iframe class="uk-responsive-width" src="'+e+'" width="'+o+'" height="'+n+'"'+(d.lightbox.options.allowfullscreen?" allowfullscreen":"")+"></iframe>",width:o,height:n},i.type="iframe",i.promise.resolve())})}}),p.lightbox.create=function(t,i){if(t){var e=[];return t.forEach(function(t){e.push(p.$.extend({source:"",title:"",type:"auto",link:!1},"string"==typeof t?{source:t}:t))}),p.lightbox(p.$.extend({},i,{group:e}))}},p.lightbox}),function(t){var i;window.UIkit2&&(i=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-parallax",["uikit"],function(){return i||t(UIkit2)})}(function(C){"use strict";var i=[],U=!1,n=0,s=window.innerHeight,t=function(){n=C.$win.scrollTop(),window.requestAnimationFrame(function(){for(var t=0;t<i.length;t++)i[t].process()})};C.component("parallax",{defaults:{velocity:.5,target:!1,viewport:!1,media:!1},boot:function(){U=function(){var t,i=document.createElement("div"),e={WebkitTransform:"-webkit-transform",MSTransform:"-ms-transform",MozTransform:"-moz-transform",Transform:"transform"};for(var o in document.body.insertBefore(i,null),e)void 0!==i.style[o]&&(i.style[o]="translate3d(1px,1px,1px)",t=window.getComputedStyle(i).getPropertyValue(e[o]));return document.body.removeChild(i),void 0!==t&&0<t.length&&"none"!==t}(),C.$doc.on("scrolling.uk.document",t),C.$win.on("load resize orientationchange",C.Utils.debounce(function(){s=window.innerHeight,t()},50)),C.ready(function(t){C.$("[data-uk-parallax]",t).each(function(){var t=C.$(this);t.data("parallax")||C.parallax(t,C.Utils.options(t.attr("data-uk-parallax")))})})},init:function(){this.base=this.options.target?C.$(this.options.target):this.element,this.props={},this.velocity=this.options.velocity||1;var a=["target","velocity","viewport","plugins","media"];Object.keys(this.options).forEach(function(t){if(-1===a.indexOf(t)){var i,e,o,n,s=String(this.options[t]).split(",");t.match(/color/i)?(i=s[1]?s[0]:this._getStartValue(t),e=s[1]?s[1]:s[0],i||(i="rgba(255,255,255,0)")):(n=(i=parseFloat(s[1]?s[0]:this._getStartValue(t)))<(e=parseFloat(s[1]?s[1]:s[0]))?e-i:i-e,o=i<e?1:-1),this.props[t]={start:i,end:e,dir:o,diff:n}}}.bind(this)),i.push(this)},process:function(){if(this.options.media)switch(typeof this.options.media){case"number":if(window.innerWidth<this.options.media)return!1;break;case"string":if(window.matchMedia&&!window.matchMedia(this.options.media).matches)return!1}var t=this.percentageInViewport();!1!==this.options.viewport&&(t=0===this.options.viewport?1:t/this.options.viewport),this.update(t)},percentageInViewport:function(){var t,i,e=this.base.offset().top,o=this.base.outerHeight();return n+s<e?i=0:e+o<n?i=1:e+o<s?i=(n<s?n:n-s)/(e+o):(t=n+s-e,i=Math.round(t/((s+o)/100))/100),i},update:function(w){var b,y,$={transform:"",filter:""},x=w*(1-(this.velocity-this.velocity*w));x<0&&(x=0),1<x&&(x=1),void 0!==this._percent&&this._percent==x||(Object.keys(this.props).forEach(function(t){var o,n,s,i,a,r,e,l,d,h,c,u,p,f,m,g,v,k;switch(b=this.props[t],0===w?y=b.start:1===w?y=b.end:void 0!==b.diff&&(y=b.start+b.diff*x*b.dir),"bg"!=t&&"bgp"!=t||this._bgcover||(this._bgcover=(o=this,n=t,s=b,c=new Image,a=o.element.css({backgroundSize:"cover",backgroundRepeat:"no-repeat"}),i=a.css("background-image").replace(/^url\(/g,"").replace(/\)$/g,"").replace(/("|')/g,""),e=function(){var t=a.innerWidth(),i=a.innerHeight(),e="bg"==n?s.diff:s.diff/100*i;if(i+=e,(t+=Math.ceil(e*l))-e<r.w&&i<r.h)return o.element.css({backgroundSize:"auto"});t/l<i?(d=Math.ceil(i*l),(h=i)>window.innerHeight&&(d*=1.2,h*=1.2)):(d=t,h=Math.ceil(t/l)),a.css({backgroundSize:d+"px "+h+"px"}).data("bgsize",{w:d,h:h})},c.onerror=function(){},c.onload=function(){r={w:c.width,h:c.height},l=c.width/c.height,C.$win.on("load resize orientationchange",C.Utils.debounce(function(){e()},50)),e()},c.src=i,!0)),t){case"x":$.transform+=U?" translate3d("+y+"px, 0, 0)":" translateX("+y+"px)";break;case"xp":$.transform+=U?" translate3d("+y+"%, 0, 0)":" translateX("+y+"%)";break;case"y":$.transform+=U?" translate3d(0, "+y+"px, 0)":" translateY("+y+"px)";break;case"yp":$.transform+=U?" translate3d(0, "+y+"%, 0)":" translateY("+y+"%)";break;case"rotate":$.transform+=" rotate("+y+"deg)";break;case"scale":$.transform+=" scale("+y+")";break;case"bg":$["background-position"]="50% "+y+"px";break;case"bgp":$["background-position"]="50% "+y+"%";break;case"color":case"background-color":case"border-color":$[t]=(u=b.start,p=b.end,f=x,u=I(u),p=I(p),m=u,g=p,v=f=f||0,k="rgba("+parseInt(m[0]+v*(g[0]-m[0]),10)+","+parseInt(m[1]+v*(g[1]-m[1]),10)+","+parseInt(m[2]+v*(g[2]-m[2]),10)+","+(m&&g?parseFloat(m[3]+v*(g[3]-m[3])):1),k+=")");break;case"blur":$.filter+=" blur("+y+"px)";break;case"hue":$.filter+=" hue-rotate("+y+"deg)";break;case"grayscale":$.filter+=" grayscale("+y+"%)";break;case"invert":$.filter+=" invert("+y+"%)";break;case"fopacity":$.filter+=" opacity("+y+"%)";break;case"saturate":$.filter+=" saturate("+y+"%)";break;case"sepia":$.filter+=" sepia("+y+"%)";break;default:$[t]=y}}.bind(this)),$.filter&&($["-webkit-filter"]=$.filter),this.element.css($),this._percent=x)},_getStartValue:function(t){var i=0;switch(t){case"scale":i=1;break;default:i=this.element.css(t)}return i||0}});var e={black:[0,0,0,1],blue:[0,0,255,1],brown:[165,42,42,1],cyan:[0,255,255,1],fuchsia:[255,0,255,1],gold:[255,215,0,1],green:[0,128,0,1],indigo:[75,0,130,1],khaki:[240,230,140,1],lime:[0,255,0,1],magenta:[255,0,255,1],maroon:[128,0,0,1],navy:[0,0,128,1],olive:[128,128,0,1],orange:[255,165,0,1],pink:[255,192,203,1],purple:[128,0,128,1],violet:[128,0,128,1],red:[255,0,0,1],silver:[192,192,192,1],white:[255,255,255,1],yellow:[255,255,0,1],transparent:[255,255,255,0]};function I(t){var i;return(i=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(t))?[parseInt(i[1],16),parseInt(i[2],16),parseInt(i[3],16),1]:(i=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(t))?[17*parseInt(i[1],16),17*parseInt(i[2],16),17*parseInt(i[3],16),1]:(i=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(t))?[parseInt(i[1]),parseInt(i[2]),parseInt(i[3]),1]:(i=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9\.]*)\s*\)/.exec(t))?[parseInt(i[1],10),parseInt(i[2],10),parseInt(i[3],10),parseFloat(i[4])]:e[t]||[255,255,255,0]}return C.parallax}),function(t){var i;window.UIkit2&&(i=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-slider",["uikit"],function(){return i||t(UIkit2)})}(function(l){"use strict";var c,u,i,o,p={};return l.component("slider",{defaults:{center:!1,threshold:10,infinite:!0,autoplay:!1,autoplayInterval:7e3,pauseOnHover:!0,activecls:"uk-active"},boot:function(){l.ready(function(t){setTimeout(function(){l.$("[data-uk-slider]",t).each(function(){var t=l.$(this);t.data("slider")||l.slider(t,l.Utils.options(t.attr("data-uk-slider")))})},0)})},init:function(){var e=this;this.container=this.element.find(".uk-slider"),this.focus=0,l.$win.on("resize load",l.Utils.debounce(function(){e.update(!0)},100)),this.on("click.uk.slider","[data-uk-slider-item]",function(t){t.preventDefault();var i=l.$(this).attr("data-uk-slider-item");if(e.focus!=i)switch(e.stop(),i){case"next":case"previous":e["next"==i?"next":"previous"]();break;default:e.updateFocus(parseInt(i,10))}}),this.container.on({"touchstart mousedown":function(t){t.originalEvent&&t.originalEvent.touches&&(t=t.originalEvent.touches[0]),t.button&&2==t.button||!e.active||(e.stop(),i=l.$(t.target).is("a")?l.$(t.target):l.$(t.target).parents("a:first"),o=!1,i.length&&i.one("click",function(t){o&&t.preventDefault()}),(u=function(t){o=!0,c=e,p={touchx:parseInt(t.pageX,10),dir:1,focus:e.focus,base:e.options.center?"center":"area"},t.originalEvent&&t.originalEvent.touches&&(t=t.originalEvent.touches[0]),c.element.data({"pointer-start":{x:parseInt(t.pageX,10),y:parseInt(t.pageY,10)},"pointer-pos-start":e.pos}),e.container.addClass("uk-drag"),u=!1}).x=parseInt(t.pageX,10),u.threshold=e.options.threshold)},mouseenter:function(){e.options.pauseOnHover&&(e.hovering=!0)},mouseleave:function(){e.hovering=!1}}),this.update(!0),this.on("display.uk.check",function(){e.element.is(":visible")&&e.update(!0)}),this.element.find("a,img").attr("draggable","false"),this.options.autoplay&&this.start(),l.domObserve(this.element,function(t){e.element.children(":not([data-slider-slide])").length&&e.update(!0)})},update:function(t){var i,e,o,n,s=this,a=0,r=0;if(this.items=this.container.children().filter(":visible"),this.vp=this.element[0].getBoundingClientRect().width,this.container.css({"min-width":"","min-height":""}),this.items.each(function(t){i=l.$(this).attr("data-slider-slide",t),n=i.css({left:"",width:""})[0].getBoundingClientRect(),e=n.width,o=i.width(),r=Math.max(r,n.height),i.css({left:a,width:e}).data({idx:t,left:a,width:e,cwidth:o,area:a+e,center:a-(s.vp/2-o/2)}),a+=e}),this.container.css({"min-width":a,"min-height":r}),this.options.infinite&&(a<=2*this.vp||this.items.length<5)&&!this.itemsResized)return this.container.children().each(function(t){s.container.append(s.items.eq(t).clone(!0).attr("id",""))}).each(function(t){s.container.append(s.items.eq(t).clone(!0).attr("id",""))}),this.itemsResized=!0,this.update();this.cw=a,this.pos=0,this.active=a>=this.vp,this.container.css({"-ms-transform":"","-webkit-transform":"",transform:""}),t&&this.updateFocus(this.focus)},updatePos:function(t){this.pos=t,this.container.css({"-ms-transform":"translateX("+t+"px)","-webkit-transform":"translateX("+t+"px)",transform:"translateX("+t+"px)"})},updateFocus:function(i,t){if(this.active){t=t||(i>this.focus?1:-1);var e,o,n=this.items.eq(i);if(this.options.infinite&&this.infinite(i,t),this.options.center)this.updatePos(-1*n.data("center")),this.items.filter("."+this.options.activecls).removeClass(this.options.activecls),n.addClass(this.options.activecls);else if(this.options.infinite)this.updatePos(-1*n.data("left"));else{for(e=0,o=i;o<this.items.length;o++)e+=this.items.eq(o).data("width");if(e>this.vp)this.updatePos(-1*n.data("left"));else if(1==t){for(e=0,o=this.items.length-1;0<=o;o--){if((e+=this.items.eq(o).data("width"))==this.vp){i=o;break}if(e>this.vp){i=o<this.items.length-1?o+1:o;break}}e>this.vp?this.updatePos(-1*(this.container.width()-this.vp)):this.updatePos(-1*this.items.eq(i).data("left"))}}var s=this.items.eq(i).data("left");this.items.removeClass("uk-slide-before uk-slide-after").each(function(t){t!==i&&l.$(this).addClass(l.$(this).data("left")<s?"uk-slide-before":"uk-slide-after")}),this.focus=i,this.trigger("focusitem.uk.slider",[i,this.items.eq(i),this])}},next:function(){var t=this.items[this.focus+1]?this.focus+1:this.options.infinite?0:this.focus;this.updateFocus(t,1)},previous:function(){var t=this.items[this.focus-1]?this.focus-1:this.options.infinite?this.items[this.focus-1]?this.items-1:this.items.length-1:this.focus;this.updateFocus(t,-1)},start:function(){this.stop();var t=this;this.interval=setInterval(function(){t.hovering||t.next()},this.options.autoplayInterval)},stop:function(){this.interval&&clearInterval(this.interval)},infinite:function(t,i){var e,o=this,n=this.items.eq(t),s=t,a=[],r=0;if(1==i){for(e=0;e<this.items.length&&(s!=t&&(r+=this.items.eq(s).data("width"),a.push(this.items.eq(s))),!(r>this.vp));e++)s=s+1==this.items.length?0:s+1;a.length&&a.forEach(function(t){var i=n.data("area");t.css({left:i}).data({left:i,area:i+t.data("width"),center:i-(o.vp/2-t.data("cwidth")/2)}),n=t})}else{for(e=this.items.length-1;-1<e&&(r+=this.items.eq(s).data("width"),s!=t&&a.push(this.items.eq(s)),!(r>this.vp));e--)s=s-1==-1?this.items.length-1:s-1;a.length&&a.forEach(function(t){var i=n.data("left")-t.data("width");t.css({left:i}).data({left:i,area:i+t.data("width"),center:i-(o.vp/2-t.data("cwidth")/2)}),n=t})}}}),l.$doc.on("mousemove.uk.slider touchmove.uk.slider",function(t){if(t.originalEvent&&t.originalEvent.touches&&(t=t.originalEvent.touches[0]),u&&Math.abs(t.pageX-u.x)>u.threshold&&(window.getSelection().toString()?c=u=!1:u(t)),c){var i,e,o,n,s,a,r,l,d,h;if(t.clientX||t.clientY?i=t.clientX:(t.pageX||t.pageY)&&(i=t.pageX-document.body.scrollLeft-document.documentElement.scrollLeft),s=p.focus,e=i-c.element.data("pointer-start").x,o=c.element.data("pointer-pos-start")+e,n=i>c.element.data("pointer-start").x?-1:1,a=c.items.eq(p.focus),1==n)for(r=a.data("left")+Math.abs(e),l=0,d=p.focus;l<c.items.length;l++){if(h=c.items.eq(d),d!=p.focus&&h.data("left")<r&&h.data("area")>r){s=d;break}d=d+1==c.items.length?0:d+1}else for(r=a.data("left")-Math.abs(e),l=0,d=p.focus;l<c.items.length;l++){if(h=c.items.eq(d),d!=p.focus&&h.data("area")<=a.data("left")&&h.data("center")<r){s=d;break}d=d-1==-1?c.items.length-1:d-1}c.options.infinite&&s!=p._focus&&c.infinite(s,n),c.updatePos(o),p.dir=n,p._focus=s,p.touchx=parseInt(t.pageX,10),p.diff=r}}),l.$doc.on("mouseup.uk.slider touchend.uk.slider",function(t){if(c){c.container.removeClass("uk-drag"),c.items.eq(p.focus);var i,e,o,n=!1;if(1==p.dir){for(e=0,o=p.focus;e<c.items.length;e++){if(i=c.items.eq(o),o!=p.focus&&i.data("left")>p.diff){n=o;break}o=o+1==c.items.length?0:o+1}c.options.infinite||n||(n=c.items.length)}else{for(e=0,o=p.focus;e<c.items.length;e++){if(i=c.items.eq(o),o!=p.focus&&i.data("left")<p.diff){n=o;break}o=o-1==-1?c.items.length-1:o-1}c.options.infinite||n||(n=0)}c.updateFocus(!1!==n?n:p._focus)}c=u=!1}),l.slider}),function(t){var i;window.UIkit2&&(i=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-slideshow",["uikit"],function(){return i||t(UIkit2)})}(function(u){"use strict";var d,p=0;u.component("slideshow",{defaults:{animation:"fade",duration:500,height:"auto",start:0,autoplay:!1,autoplayInterval:7e3,videoautoplay:!0,videomute:!0,slices:15,pauseOnHover:!0,kenburns:!1,kenburnsanimations:["uk-animation-middle-left","uk-animation-top-right","uk-animation-bottom-left","uk-animation-top-center","","uk-animation-bottom-right"]},current:!1,interval:null,hovering:!1,boot:function(){u.ready(function(t){u.$("[data-uk-slideshow]",t).each(function(){var t=u.$(this);t.data("slideshow")||u.slideshow(t,u.Utils.options(t.attr("data-uk-slideshow")))})})},init:function(){var e=this;this.container=this.element.hasClass("uk-slideshow")?this.element:u.$(this.find(".uk-slideshow:first")),this.current=this.options.start,this.animating=!1,this.fixFullscreen=navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&this.container.hasClass("uk-slideshow-fullscreen"),this.options.kenburns&&(this.kbanimduration=!0===this.options.kenburns?"15s":this.options.kenburns,String(this.kbanimduration).match(/(ms|s)$/)||(this.kbanimduration+="ms"),"string"==typeof this.options.kenburnsanimations&&(this.options.kenburnsanimations=this.options.kenburnsanimations.split(","))),this.update(),this.on("click.uk.slideshow","[data-uk-slideshow-item]",function(t){t.preventDefault();var i=u.$(this).attr("data-uk-slideshow-item");if(e.current!=i){switch(i){case"next":case"previous":e["next"==i?"next":"previous"]();break;default:e.show(parseInt(i,10))}e.stop()}}),u.$win.on("resize load",u.Utils.debounce(function(){e.resize(),e.fixFullscreen&&(e.container.css("height",window.innerHeight),e.slides.css("height",window.innerHeight))},100)),setTimeout(function(){e.resize()},80),this.options.autoplay&&this.start(),this.options.videoautoplay&&this.slides.eq(this.current).data("media")&&this.playmedia(this.slides.eq(this.current).data("media")),this.options.kenburns&&this.applyKenBurns(this.slides.eq(this.current)),this.container.on({mouseenter:function(){e.options.pauseOnHover&&(e.hovering=!0)},mouseleave:function(){e.hovering=!1}}),this.on("swipeRight swipeLeft",function(t){e["swipeLeft"==t.type?"next":"previous"]()}),this.on("display.uk.check",function(){e.element.is(":visible")&&(e.resize(),e.fixFullscreen&&(e.container.css("height",window.innerHeight),e.slides.css("height",window.innerHeight)))}),u.domObserve(this.element,function(t){e.container.children(":not([data-slideshow-slide])").not(".uk-slideshow-ghost").length&&e.update(!0)})},update:function(t){var d,h=this,c=0;this.slides=this.container.children(),this.slidesCount=this.slides.length,this.slides.eq(this.current).length||(this.current=0),this.slides.each(function(e){var t=u.$(this);if(!t.data("processed")){var o=t.children("img,video,iframe").eq(0),i="html";if(t.data("media",o),t.data("sizer",o),o.length){var n;switch(i=o[0].nodeName.toLowerCase(),o[0].nodeName){case"IMG":var s=u.$('<div class="uk-cover-background uk-position-cover"></div>').css({"background-image":"url("+o.attr("src")+")"});o.attr("width")&&o.attr("height")&&(n=u.$("<canvas></canvas>").attr({width:o.attr("width"),height:o.attr("height")}),o.replaceWith(n),o=n,n=void 0),o.css({width:"100%",height:"auto",opacity:0}),t.prepend(s).data("cover",s);break;case"IFRAME":var a=o[0].src,r="sw-"+ ++p;o.attr("src","").on("load",function(){if((e!==h.current||e==h.current&&!h.options.videoautoplay)&&h.pausemedia(o),h.options.videomute){h.mutemedia(o);var t=setInterval((i=0,function(){h.mutemedia(o),4<=++i&&clearInterval(t)}),250)}var i}).data("slideshow",h).attr("data-player-id",r).attr("src",[a,-1<a.indexOf("?")?"&":"?","enablejsapi=1&api=1&player_id="+r].join("")).addClass("uk-position-absolute"),u.support.touch||o.css("pointer-events","none"),n=!0,u.cover&&(u.cover(o),o.attr("data-uk-cover","{}"));break;case"VIDEO":o.addClass("uk-cover-object uk-position-absolute"),n=!0,h.options.videomute&&h.mutemedia(o)}if(n){d=u.$("<canvas></canvas>").attr({width:o[0].width,height:o[0].height});var l=u.$('<img style="width:100%;height:auto;">').attr("src",d[0].toDataURL());t.prepend(l),t.data("sizer",l)}}else t.data("sizer",t);h.hasKenBurns(t)&&t.data("cover").css({"-webkit-animation-duration":h.kbanimduration,"animation-duration":h.kbanimduration}),t.data("processed",++c),t.attr("data-slideshow-slide",i)}}),c&&(this.triggers=this.find("[data-uk-slideshow-item]"),this.slides.attr("aria-hidden","true").removeClass("uk-active").eq(this.current).addClass("uk-active").attr("aria-hidden","false"),this.triggers.filter('[data-uk-slideshow-item="'+this.current+'"]').addClass("uk-active")),t&&c&&this.resize()},resize:function(){if(!this.container.hasClass("uk-slideshow-fullscreen")){var t=this.options.height;"auto"===this.options.height&&(t=0,this.slides.css("height","").each(function(){t=Math.max(t,u.$(this).height())})),this.container.css("height",t),this.slides.css("height",t)}},show:function(t,i){if(!this.animating&&this.current!=t){this.animating=!0;var e=this,o=this.slides.eq(this.current),n=this.slides.eq(t),s=i||(this.current<t?1:-1),a=o.data("media"),r=d[this.options.animation]?this.options.animation:"fade",l=n.data("media");e.applyKenBurns(n),u.support.animation||(r="none"),o=u.$(o),n=u.$(n),e.trigger("beforeshow.uk.slideshow",[n,o,e]),d[r].apply(this,[o,n,s]).then(function(){e.animating&&(a&&a.is("video,iframe")&&e.pausemedia(a),l&&l.is("video,iframe")&&e.playmedia(l),n.addClass("uk-active").attr("aria-hidden","false"),o.removeClass("uk-active").attr("aria-hidden","true"),e.animating=!1,e.current=t,u.Utils.checkDisplay(n,'[class*="uk-animation-"]:not(.uk-cover-background.uk-position-cover)'),e.trigger("show.uk.slideshow",[n,o,e]))}),e.triggers.removeClass("uk-active"),e.triggers.filter('[data-uk-slideshow-item="'+t+'"]').addClass("uk-active")}},applyKenBurns:function(t){if(this.hasKenBurns(t)){var i=this.options.kenburnsanimations,e=this.kbindex||0;t.data("cover").attr("class","uk-cover-background uk-position-cover").width(),t.data("cover").addClass(["uk-animation-scale","uk-animation-reverse",i[e].trim()].join(" ")),this.kbindex=i[e+1]?e+1:0}},hasKenBurns:function(t){return this.options.kenburns&&t.data("cover")},next:function(){this.show(this.slides[this.current+1]?this.current+1:0,1)},previous:function(){this.show(this.slides[this.current-1]?this.current-1:this.slides.length-1,-1)},start:function(){this.stop();var t=this;this.interval=setInterval(function(){t.hovering||t.next()},this.options.autoplayInterval)},stop:function(){this.interval&&clearInterval(this.interval)},playmedia:function(t){if(t&&t[0])switch(t[0].nodeName){case"VIDEO":this.options.videomute||(t[0].muted=!1),t[0].play();break;case"IFRAME":this.options.videomute||t[0].contentWindow.postMessage('{ "event": "command", "func": "unmute", "method":"setVolume", "value":1}',"*"),t[0].contentWindow.postMessage('{ "event": "command", "func": "playVideo", "method":"play"}',"*")}},pausemedia:function(t){switch(t[0].nodeName){case"VIDEO":t[0].pause();break;case"IFRAME":t[0].contentWindow.postMessage('{ "event": "command", "func": "pauseVideo", "method":"pause"}',"*")}},mutemedia:function(t){switch(t[0].nodeName){case"VIDEO":t[0].muted=!0;break;case"IFRAME":t[0].contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}',"*")}}}),d={none:function(){var t=u.$.Deferred();return t.resolve(),t.promise()},scroll:function(t,i,e){var o=u.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),i.css("animation-duration",this.options.duration+"ms"),i.css("opacity",1).one(u.support.animation.end,function(){t.css("opacity",0).removeClass(-1==e?"uk-slideshow-scroll-backward-out":"uk-slideshow-scroll-forward-out"),i.removeClass(-1==e?"uk-slideshow-scroll-backward-in":"uk-slideshow-scroll-forward-in"),o.resolve()}.bind(this)),t.addClass(-1==e?"uk-slideshow-scroll-backward-out":"uk-slideshow-scroll-forward-out"),i.addClass(-1==e?"uk-slideshow-scroll-backward-in":"uk-slideshow-scroll-forward-in"),i.width(),o.promise()},swipe:function(t,i,e){var o=u.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),i.css("animation-duration",this.options.duration+"ms"),i.css("opacity",1).one(u.support.animation.end,function(){t.css("opacity",0).removeClass(-1===e?"uk-slideshow-swipe-backward-out":"uk-slideshow-swipe-forward-out"),i.removeClass(-1===e?"uk-slideshow-swipe-backward-in":"uk-slideshow-swipe-forward-in"),o.resolve()}.bind(this)),t.addClass(-1==e?"uk-slideshow-swipe-backward-out":"uk-slideshow-swipe-forward-out"),i.addClass(-1==e?"uk-slideshow-swipe-backward-in":"uk-slideshow-swipe-forward-in"),i.width(),o.promise()},scale:function(t,i,e){var o=u.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),i.css("animation-duration",this.options.duration+"ms"),i.css("opacity",1),t.one(u.support.animation.end,function(){t.css("opacity",0).removeClass("uk-slideshow-scale-out"),o.resolve()}.bind(this)),t.addClass("uk-slideshow-scale-out"),t.width(),o.promise()},fade:function(t,i,e){var o=u.$.Deferred();return t.css("animation-duration",this.options.duration+"ms"),i.css("animation-duration",this.options.duration+"ms"),i.css("opacity",1),i.data("cover")||i.data("placeholder")||i.css("opacity",1).one(u.support.animation.end,function(){i.removeClass("uk-slideshow-fade-in")}).addClass("uk-slideshow-fade-in"),t.one(u.support.animation.end,function(){t.css("opacity",0).removeClass("uk-slideshow-fade-out"),o.resolve()}.bind(this)),t.addClass("uk-slideshow-fade-out"),t.width(),o.promise()}},u.slideshow.animations=d,window.addEventListener("message",function(t){var i,e=t.data;if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e={}}t.origin&&-1<t.origin.indexOf("vimeo")&&"ready"==e.event&&e.player_id&&(i=u.$('[data-player-id="'+e.player_id+'"]')).length&&i.data("slideshow").mutemedia(i)},!1)}),function(t){var i;window.UIkit2&&(i=t(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-tooltip",["uikit"],function(){return i||t(UIkit2)})}(function(f){"use strict";var m,g,v;return f.component("tooltip",{defaults:{offset:5,pos:"top",animation:!1,delay:0,cls:"",activeClass:"uk-active",src:function(t){var i=t.attr("title");return void 0!==i&&t.data("cached-title",i).removeAttr("title"),t.data("cached-title")}},tip:"",boot:function(){f.$html.on("mouseenter.tooltip.uikit focus.tooltip.uikit","[data-uk-tooltip]",function(t){var i=f.$(this);i.data("tooltip")||(f.tooltip(i,f.Utils.options(i.attr("data-uk-tooltip"))),i.trigger("mouseenter"))})},init:function(){var i=this;m||(m=f.$('<div class="uk-tooltip"></div>').appendTo("body")),this.on({focus:function(t){i.show()},blur:function(t){i.hide()},mouseenter:function(t){i.show()},mouseleave:function(t){i.hide()}})},show:function(){if(this.tip="function"==typeof this.options.src?this.options.src(this.element):this.options.src,g&&clearTimeout(g),v&&clearInterval(v),"string"==typeof this.tip&&this.tip.length){m.stop().css({top:-2e3,visibility:"hidden"}).removeClass(this.options.activeClass).show(),m.html('<div class="uk-tooltip-inner">'+this.tip+"</div>");var t=this,i=f.$.extend({},this.element.offset(),{width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}),e=m[0].offsetWidth,o=m[0].offsetHeight,n="function"==typeof this.options.offset?this.options.offset.call(this.element):this.options.offset,s="function"==typeof this.options.pos?this.options.pos.call(this.element):this.options.pos,a=s.split("-"),r={display:"none",visibility:"visible",top:i.top+i.height+o,left:i.left};if("fixed"==f.$html.css("position")||"fixed"==f.$body.css("position")){var l=f.$("body").offset(),d=f.$("html").offset(),h=d.top+l.top,c=d.left+l.left;i.left-=c,i.top-=h}"left"!=a[0]&&"right"!=a[0]||"right"!=f.langdirection||(a[0]="left"==a[0]?"right":"left");var u={bottom:{top:i.top+i.height+n,left:i.left+i.width/2-e/2},top:{top:i.top-o-n,left:i.left+i.width/2-e/2},left:{top:i.top+i.height/2-o/2,left:i.left-e-n},right:{top:i.top+i.height/2-o/2,left:i.left+i.width+n}};f.$.extend(r,u[a[0]]),2==a.length&&(r.left="left"==a[1]?i.left:i.left+i.width-e);var p=this.checkBoundary(r.left,r.top,e,o);if(p){switch(p){case"x":s=2==a.length?a[0]+"-"+(r.left<0?"left":"right"):r.left<0?"right":"left";break;case"y":s=2==a.length?(r.top<0?"bottom":"top")+"-"+a[1]:r.top<0?"bottom":"top";break;case"xy":s=2==a.length?(r.top<0?"bottom":"top")+"-"+(r.left<0?"left":"right"):r.left<0?"right":"left"}a=s.split("-"),f.$.extend(r,u[a[0]]),2==a.length&&(r.left="left"==a[1]?i.left:i.left+i.width-e)}r.left-=f.$body.position().left,g=setTimeout(function(){m.css(r).attr("class",["uk-tooltip","uk-tooltip-"+s,t.options.cls].join(" ")),t.options.animation?m.css({opacity:0,display:"block"}).addClass(t.options.activeClass).animate({opacity:1},parseInt(t.options.animation,10)||400):m.show().addClass(t.options.activeClass),g=!1,v=setInterval(function(){t.element.is(":visible")||t.hide()},150)},parseInt(this.options.delay,10)||0)}},hide:function(){if(!this.element.is("input")||this.element[0]!==document.activeElement)if(g&&clearTimeout(g),v&&clearInterval(v),m.stop(),this.options.animation){var t=this;m.fadeOut(parseInt(this.options.animation,10)||400,function(){m.removeClass(t.options.activeClass)})}else m.hide().removeClass(this.options.activeClass)},content:function(){return this.tip},checkBoundary:function(t,i,e,o){var n="";return(t<0||t-f.$win.scrollLeft()+e>window.innerWidth)&&(n+="x"),(i<0||i-f.$win.scrollTop()+o>window.innerHeight)&&(n+="y"),n}}),f.tooltip}),"undefined"!=typeof UIkit&&UIkit.on("beforeready.uk.dom",function(){var i,t;void 0!==UIkit.components.accordion&&$.extend(UIkit.components.accordion.prototype.defaults,{easing:$.bez(easing_swiftOut),duration:200}),void 0!==UIkit.components.dropdown.prototype&&($.extend(UIkit.components.dropdown.prototype.defaults,{remaintime:150,delay:50}),t=UIkit.components.dropdown.prototype.show,UIkit.components.dropdown.prototype.show=function(){return this.dropdown.css({"min-width":this.dropdown.outerWidth()}).addClass("uk-dropdown-active uk-dropdown-shown"),t.apply(this,arguments)},i=UIkit.components.dropdown.prototype.hide,UIkit.components.dropdown.prototype.hide=function(){var t=this.dropdown;return t.removeClass("uk-dropdown-shown"),setTimeout(function(){t.removeClass("uk-dropdown-active")},280),i.apply(this,arguments)}),void 0!==UIkit.components.modal&&($.extend(UIkit.components.modal.prototype.defaults,{center:!0}),UIkit.modal.dialog.template='<div class="uk-modal uk-modal-dialog-replace"><div class="uk-modal-dialog" style="min-height:0;"></div></div>',$body.on("show.uk.modal",".uk-modal-dialog-replace",function(){setTimeout(function(){var t=$(".uk-modal-dialog-replace");if(t.find(".uk-button-primary").length){var i=t.find(".uk-button-primary").toggleClass("uk-button-primary md-btn-flat-primary");i.next("button")&&i.next("button").after(i)}t.find(".uk-button").length&&t.find(".uk-button").toggleClass("uk-button md-btn md-btn-flat"),t.find(".uk-margin-small-top").length&&t.find(".uk-margin-small-top").toggleClass("uk-margin-small-top uk-margin-top"),t.find("input.uk-width-1-1").length&&(t.find("input.uk-width-1-1").toggleClass("uk-width-1-1 md-input"),altair_md.inputs()),t.find(".uk-form").length&&t.find(".uk-form").removeClass("uk-form")},50)})),void 0!==UIkit.components.tooltip&&$.extend(UIkit.components.tooltip.prototype.defaults,{animation:280,offset:8})});
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/js/uikit_custom.min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_colors.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_colors.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_colors.less	(revision 60863)
@@ -0,0 +1,274 @@
+// colors
+
+    @md-color-red-50: #ffebee;
+    @md-color-red-100: #ffcdd2;
+    @md-color-red-200: #ef9a9a;
+    @md-color-red-300: #e57373;
+    @md-color-red-400: #ef5350;
+    @md-color-red-500: #f44336;
+    @md-color-red-600: #e53935;
+    @md-color-red-700: #d32f2f;
+    @md-color-red-800: #c62828;
+    @md-color-red-900: #b71c1c;
+    @md-color-red-A100: #ff8a80;
+    @md-color-red-A200: #ff5252;
+    @md-color-red-A400: #ff1744;
+    @md-color-red-A700: #d50000;
+
+    @md-color-pink-50: #fce4ec;
+    @md-color-pink-100: #f8bbd0;
+    @md-color-pink-200: #f48fb1;
+    @md-color-pink-300: #f06292;
+    @md-color-pink-400: #ec407a;
+    @md-color-pink-500: #e91e63;
+    @md-color-pink-600: #d81b60;
+    @md-color-pink-700: #c2185b;
+    @md-color-pink-800: #ad1457;
+    @md-color-pink-900: #880e4f;
+    @md-color-pink-A100: #ff80ab;
+    @md-color-pink-A200: #ff4081;
+    @md-color-pink-A400: #f50057;
+    @md-color-pink-A700: #c51162;
+
+    @md-color-purple-50: #f3e5f5;
+    @md-color-purple-100: #e1bee7;
+    @md-color-purple-200: #ce93d8;
+    @md-color-purple-300: #ba68c8;
+    @md-color-purple-400: #ab47bc;
+    @md-color-purple-500: #9c27b0;
+    @md-color-purple-600: #8e24aa;
+    @md-color-purple-700: #7b1fa2;
+    @md-color-purple-800: #6a1b9a;
+    @md-color-purple-900: #4a148c;
+    @md-color-purple-A100: #ea80fc;
+    @md-color-purple-A200: #e040fb;
+    @md-color-purple-A400: #d500f9;
+    @md-color-purple-A700: #aa00ff;
+
+    @md-color-deep-purple-50: #ede7f6;
+    @md-color-deep-purple-100: #d1c4e9;
+    @md-color-deep-purple-200: #b39ddb;
+    @md-color-deep-purple-300: #9575cd;
+    @md-color-deep-purple-400: #7e57c2;
+    @md-color-deep-purple-500: #673ab7;
+    @md-color-deep-purple-600: #5e35b1;
+    @md-color-deep-purple-700: #512da8;
+    @md-color-deep-purple-800: #4527a0;
+    @md-color-deep-purple-900: #311b92;
+    @md-color-deep-purple-A100: #b388ff;
+    @md-color-deep-purple-A200: #7c4dff;
+    @md-color-deep-purple-A400: #651fff;
+    @md-color-deep-purple-A700: #6200ea;
+
+    @md-color-indigo-50: #e8eaf6;
+    @md-color-indigo-100: #c5cae9;
+    @md-color-indigo-200: #9fa8da;
+    @md-color-indigo-300: #7986cb;
+    @md-color-indigo-400: #5c6bc0;
+    @md-color-indigo-500: #3f51b5;
+    @md-color-indigo-600: #3949ab;
+    @md-color-indigo-700: #303f9f;
+    @md-color-indigo-800: #283593;
+    @md-color-indigo-900: #1a237e;
+    @md-color-indigo-A100: #8c9eff;
+    @md-color-indigo-A200: #536dfe;
+    @md-color-indigo-A400: #3d5afe;
+    @md-color-indigo-A700: #304ffe;
+
+    @md-color-blue-50: #e3f2fd;
+    @md-color-blue-100: #bbdefb;
+    @md-color-blue-200: #90caf9;
+    @md-color-blue-300: #64b5f6;
+    @md-color-blue-400: #42a5f5;
+    @md-color-blue-500: #2196f3;
+    @md-color-blue-600: #1e88e5;
+    @md-color-blue-700: #1976d2;
+    @md-color-blue-800: #1565c0;
+    @md-color-blue-900: #0d47a1;
+    @md-color-blue-A100: #82b1ff;
+    @md-color-blue-A200: #448aff;
+    @md-color-blue-A400: #2979ff;
+    @md-color-blue-A700: #2962ff;
+
+    @md-color-light-blue-50: #e1f5fe;
+    @md-color-light-blue-100: #b3e5fc;
+    @md-color-light-blue-200: #81d4fa;
+    @md-color-light-blue-300: #4fc3f7;
+    @md-color-light-blue-400: #29b6f6;
+    @md-color-light-blue-500: #03a9f4;
+    @md-color-light-blue-600: #039be5;
+    @md-color-light-blue-700: #0288d1;
+    @md-color-light-blue-800: #0277bd;
+    @md-color-light-blue-900: #01579b;
+    @md-color-light-blue-A100: #80d8ff;
+    @md-color-light-blue-A200: #40c4ff;
+    @md-color-light-blue-A400: #00b0ff;
+    @md-color-light-blue-A700: #0091ea;
+
+    @md-color-cyan-50: #e0f7fa;
+    @md-color-cyan-100: #b2ebf2;
+    @md-color-cyan-200: #80deea;
+    @md-color-cyan-300: #4dd0e1;
+    @md-color-cyan-400: #26c6da;
+    @md-color-cyan-500: #00bcd4;
+    @md-color-cyan-600: #00acc1;
+    @md-color-cyan-700: #0097a7;
+    @md-color-cyan-800: #00838f;
+    @md-color-cyan-900: #006064;
+    @md-color-cyan-A100: #84ffff;
+    @md-color-cyan-A200: #18ffff;
+    @md-color-cyan-A400: #00e5ff;
+    @md-color-cyan-A700: #00b8d4;
+
+    @md-color-teal-50: #e0f2f1;
+    @md-color-teal-100: #b2dfdb;
+    @md-color-teal-200: #80cbc4;
+    @md-color-teal-300: #4db6ac;
+    @md-color-teal-400: #26a69a;
+    @md-color-teal-500: #009688;
+    @md-color-teal-600: #00897b;
+    @md-color-teal-700: #00796b;
+    @md-color-teal-800: #00695c;
+    @md-color-teal-900: #004d40;
+    @md-color-teal-A100: #a7ffeb;
+    @md-color-teal-A200: #64ffda;
+    @md-color-teal-A400: #1de9b6;
+    @md-color-teal-A700: #00bfa5;
+
+    @md-color-green-50: #e8f5e9;
+    @md-color-green-100: #c8e6c9;
+    @md-color-green-200: #a5d6a7;
+    @md-color-green-300: #81c784;
+    @md-color-green-400: #66bb6a;
+    @md-color-green-500: #4caf50;
+    @md-color-green-600: #43a047;
+    @md-color-green-700: #388e3c;
+    @md-color-green-800: #2e7d32;
+    @md-color-green-900: #1b5e20;
+    @md-color-green-A100: #b9f6ca;
+    @md-color-green-A200: #69f0ae;
+    @md-color-green-A400: #00e676;
+    @md-color-green-A700: #00c853;
+
+    @md-color-light-green-50: #f1f8e9;
+    @md-color-light-green-100: #dcedc8;
+    @md-color-light-green-200: #c5e1a5;
+    @md-color-light-green-300: #aed581;
+    @md-color-light-green-400: #9ccc65;
+    @md-color-light-green-500: #8bc34a;
+    @md-color-light-green-600: #7cb342;
+    @md-color-light-green-700: #689f38;
+    @md-color-light-green-800: #558b2f;
+    @md-color-light-green-900: #33691e;
+    @md-color-light-green-A100: #ccff90;
+    @md-color-light-green-A200: #b2ff59;
+    @md-color-light-green-A400: #76ff03;
+    @md-color-light-green-A700: #64dd17;
+
+    @md-color-lime-50: #f9fbe7;
+    @md-color-lime-100: #f0f4c3;
+    @md-color-lime-200: #e6ee9c;
+    @md-color-lime-300: #dce775;
+    @md-color-lime-400: #d4e157;
+    @md-color-lime-500: #cddc39;
+    @md-color-lime-600: #c0ca33;
+    @md-color-lime-700: #afb42b;
+    @md-color-lime-800: #9e9d24;
+    @md-color-lime-900: #827717;
+    @md-color-lime-A100: #f4ff81;
+    @md-color-lime-A200: #eeff41;
+    @md-color-lime-A400: #c6ff00;
+    @md-color-lime-A700: #aeea00;
+
+    @md-color-yellow-50: #fffde7;
+    @md-color-yellow-100: #fff9c4;
+    @md-color-yellow-200: #fff59d;
+    @md-color-yellow-300: #fff176;
+    @md-color-yellow-400: #ffee58;
+    @md-color-yellow-500: #ffeb3b;
+    @md-color-yellow-600: #fdd835;
+    @md-color-yellow-700: #fbc02d;
+    @md-color-yellow-800: #f9a825;
+    @md-color-yellow-900: #f57f17;
+    @md-color-yellow-A100: #ffff8d;
+    @md-color-yellow-A200: #ffff00;
+    @md-color-yellow-A400: #ffea00;
+    @md-color-yellow-A700: #ffd600;
+
+    @md-color-amber-50: #fff8e1;
+    @md-color-amber-100: #ffecb3;
+    @md-color-amber-200: #ffe082;
+    @md-color-amber-300: #ffd54f;
+    @md-color-amber-400: #ffca28;
+    @md-color-amber-500: #ffc107;
+    @md-color-amber-600: #ffb300;
+    @md-color-amber-700: #ffa000;
+    @md-color-amber-800: #ff8f00;
+    @md-color-amber-900: #ff6f00;
+    @md-color-amber-A100: #ffe57f;
+    @md-color-amber-A200: #ffd740;
+    @md-color-amber-A400: #ffc400;
+    @md-color-amber-A700: #ffab00;
+
+    @md-color-orange-50: #fff3e0;
+    @md-color-orange-100: #ffe0b2;
+    @md-color-orange-200: #ffcc80;
+    @md-color-orange-300: #ffb74d;
+    @md-color-orange-400: #ffa726;
+    @md-color-orange-500: #ff9800;
+    @md-color-orange-600: #fb8c00;
+    @md-color-orange-700: #f57c00;
+    @md-color-orange-800: #ef6c00;
+    @md-color-orange-900: #e65100;
+    @md-color-orange-A100: #ffd180;
+    @md-color-orange-A200: #ffab40;
+    @md-color-orange-A400: #ff9100;
+    @md-color-orange-A700: #ff6d00;
+
+    @md-color-deep-orange-50: #fbe9e7;
+    @md-color-deep-orange-100: #ffccbc;
+    @md-color-deep-orange-200: #ffab91;
+    @md-color-deep-orange-300: #ff8a65;
+    @md-color-deep-orange-400: #ff7043;
+    @md-color-deep-orange-500: #ff5722;
+    @md-color-deep-orange-600: #f4511e;
+    @md-color-deep-orange-700: #e64a19;
+    @md-color-deep-orange-800: #d84315;
+    @md-color-deep-orange-900: #bf360c;
+    @md-color-deep-orange-A100: #ff9e80;
+    @md-color-deep-orange-A200: #ff6e40;
+    @md-color-deep-orange-A400: #ff3d00;
+    @md-color-deep-orange-A700: #dd2c00;
+
+    @md-color-brown-50: #efebe9;
+    @md-color-brown-100: #d7ccc8;
+    @md-color-brown-200: #bcaaa4;
+    @md-color-brown-300: #a1887f;
+    @md-color-brown-400: #8d6e63;
+    @md-color-brown-500: #795548;
+    @md-color-brown-600: #6d4c41;
+    @md-color-brown-700: #5d4037;
+    @md-color-brown-800: #4e342e;
+    @md-color-brown-900: #3e2723;
+
+    @md-color-grey-50: #fafafa;
+    @md-color-grey-100: #f5f5f5;
+    @md-color-grey-200: #eeeeee;
+    @md-color-grey-300: #e0e0e0;
+    @md-color-grey-400: #bdbdbd;
+    @md-color-grey-500: #9e9e9e;
+    @md-color-grey-600: #757575;
+    @md-color-grey-700: #616161;
+    @md-color-grey-800: #424242;
+    @md-color-grey-900: #212121;
+
+    @md-color-blue-grey-50: #eceff1;
+    @md-color-blue-grey-100: #cfd8dc;
+    @md-color-blue-grey-200: #b0bec5;
+    @md-color-blue-grey-300: #90a4ae;
+    @md-color-blue-grey-400: #78909c;
+    @md-color-blue-grey-500: #607d8b;
+    @md-color-blue-grey-600: #546e7a;
+    @md-color-blue-grey-700: #455a64;
+    @md-color-blue-grey-800: #37474f;
+    @md-color-blue-grey-900: #263238;
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_colors.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_top_bar.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_top_bar.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_top_bar.less	(revision 60863)
@@ -0,0 +1,33 @@
+/* top bar */
+.md-top-bar {
+    .md-top-bar-checkbox {
+        padding-top: 10px;
+    }
+    .md-top-bar-icons {
+        margin-top: 5px;
+    }
+    .md-top-bar-icons,
+    .md-top-bar-checkbox {
+        display: inline-block;
+    }
+    .md-btn-group {
+        margin-top: 4px;
+    }
+    .md-top-bar-actions-left {
+        float: left;
+        padding-left: 16px;
+        .md-btn-group {
+            margin-left: 8px;
+        }
+    }
+    .md-top-bar-actions-right {
+        float: right;
+        padding-right: 16px;
+        .md-btn-group {
+            margin-right: 8px;
+        }
+    }
+    .md-btn-small {
+        padding: 2px 12px;
+    }
+}
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_top_bar.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/components/_pricing_table.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/components/_pricing_table.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/components/_pricing_table.less	(revision 60863)
@@ -0,0 +1,109 @@
+/* pricing tables */
+.pricing_table {
+    &.pricing_table_a {
+        text-align: center;
+        .pricing_table_plan {
+            font-size: 18px;
+            font-weight: 400;
+            padding: 16px 0;
+            margin-bottom: 16px;
+        }
+        .pricing_table_price {
+            padding: 8px 0 0;
+            font-size: 48px;
+            margin-bottom: 24px;
+            .currency {
+                vertical-align: top;
+                font-size: 24px;
+                padding: 0 4px;
+            }
+            .period {
+                font-size: 14px;
+                padding: 4px;
+                color: @text_muted;
+                display: block;
+            }
+        }
+        .pricing_table_features {
+            .reset_list();
+            li {
+                font-size: 16px;
+                padding: 8px 0;
+            }
+        }
+        .pricing_table_select {
+            padding: 32px 0;
+        }
+    }
+    &.pricing_table_b {
+        text-align: center;
+        .pricing_table_plan {
+            font-size: 16px;
+            font-weight: 400;
+            padding: 16px 0;
+            margin-bottom: 16px;
+            text-transform: uppercase;
+        }
+        .pricing_table_price {
+            padding: 8px 0 0;
+            font-size: 48px;
+            margin-bottom: 24px;
+            .currency {
+                vertical-align: top;
+                font-size: 24px;
+                padding: 0 4px;
+            }
+            .period {
+                font-size: 14px;
+                padding: 4px;
+                color: @text_muted;
+                display: block;
+            }
+        }
+        .pricing_table_features {
+            .reset_list();
+            li {
+                font-size: 16px;
+                padding: 8px 0;
+            }
+        }
+        .pricing_table_select {
+            padding: 32px 0;
+        }
+    }
+    &.pricing_table_c {
+        text-align: center;
+        .pricing_table_plan {
+            font-size: 16px;
+            font-weight: 400;
+            padding: 16px 0;
+            margin-bottom: 8px;
+        }
+        .pricing_table_price {
+            padding: 8px 0 0;
+            font-size: 48px;
+            margin-bottom: 24px;
+            .currency {
+                vertical-align: top;
+                font-size: 24px;
+                padding: 0 4px;
+            }
+            .period {
+                font-size: 14px;
+                color: @text_muted;
+                vertical-align: 0;
+                padding-left: 4px;
+            }
+        }
+        .pricing_table_features {
+            .reset_list();
+            li {
+                font-size: 16px;
+                padding: 8px 0;
+            }
+        }
+        .pricing_table_select {
+            padding: 32px 0;
+        }
+    }
+}
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/components/_pricing_table.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/main.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/main.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/main.less	(revision 60863)
@@ -0,0 +1,34 @@
+/*
+*  Altair Admin Landing Page
+*  author: tzd
+*
+*  Content:
+*    1. variables/mixins
+*    2. UIkit custom styles
+*    3. custom components
+*    4. material design styles
+*    5. partials (header,sidebars,top bar)
+*    6. altair landing page styles
+*
+*/
+
+/* 1. altair variables/mixins ======================== */
+@import (reference) "_variables_mixins";
+
+/* 2. UIkit custom styles ============================ */
+@import "_uikit_custom";
+
+/* 3. custom components ============================== */
+@import "components/_pricing_table";
+@import "components/_timeline";
+
+/* 4. material designv styles ========================= */
+@import "md/md_main";
+
+/* 5. partials (header,sidebars,top bar) ============= */
+
+/* 6. altair landing page styles ===================== */
+@import "_altair_landing_page";
+
+/* theme */
+//@import "themes/_default";
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/main.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/js/maps/european-union.js
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/js/maps/european-union.js	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/js/maps/european-union.js	(revision 60863)
@@ -0,0 +1,2 @@
+Highcharts.maps["custom/european-union"] = {"title":"European Union","version":"1.1.2","type":"FeatureCollection","copyright":"Copyright (c) 2015 Highsoft AS, Based on data from Natural Earth","copyrightShort":"Natural Earth","copyrightUrl":"http://www.naturalearthdata.com","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:102014"}},"hc-transform":{"default":{"crs":"+proj=lcc +lat_1=43 +lat_2=62 +lat_0=30 +lon_0=10 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defs","scale":0.000177281835398,"jsonres":15.5,"jsonmarginX":-999,"jsonmarginY":9851.0,"xoffset":-1706316.2597,"yoffset":4578113.15471}},
+  "features":[{"type":"Feature","id":"DK","properties":{"hc-group":"admin0","hc-middle-x":0.20,"hc-middle-y":0.46,"hc-key":"dk","hc-a2":"DK","name":"Denmark","labelrank":"4","country-abbrev":"Den.","subregion":"Northern Europe","region-wb":"Europe & Central Asia","iso-a3":"DNK","iso-a2":"DK","woe-id":"23424796","continent":"Europe"},"geometry":{"type":"MultiPolygon","coordinates":[[[[3751,4935],[3780,4922],[3757,4915],[3726,4948],[3751,4935]]],[[[4130,4975],[4125,4958],[4092,4958],[4077,4940],[4060,4958],[4095,4983],[4130,4975]]],[[[3654,4991],[3694,4954],[3684,4924],[3657,4937],[3655,4971],[3625,4984],[3654,4991]]],[[[3835,4948],[3817,4889],[3801,4920],[3811,4946],[3855,5014],[3835,4948]]],[[[4533,5066],[4580,5039],[4570,4995],[4518,5009],[4500,5023],[4509,5087],[4533,5066]]],[[[3417,5102],[3426,5098],[3423,5072],[3410,5099],[3417,5102]]],[[[4131,5142],[4120,5161],[4135,5186],[4147,5158],[4131,5142]]],[[[3795,5233],[3796,5207],[3778,5205],[3788,5237],[3795,5233]]],[[[3953,5477],[3941,5481],[3943,5487],[3964,5492],[3953,5477]]],[[[3510,5559],[3504,5513],[3484,5482],[3465,5477],[3448,5510],[3466,5540],[3510,5559]]],[[[3885,5671],[3865,5660],[3859,5633],[3830,5652],[3858,5669],[3885,5671]]],[[[3555,4909],[3549,4922],[3485,4940],[3457,4937],[3462,5009],[3443,5012],[3427,4990],[3425,5023],[3463,5011],[3452,5101],[3422,5109],[3401,5140],[3389,5126],[3363,5141],[3382,5215],[3416,5239],[3399,5295],[3370,5309],[3375,5335],[3376,5439],[3386,5476],[3408,5447],[3450,5446],[3462,5416],[3477,5416],[3480,5462],[3516,5513],[3541,5511],[3553,5484],[3531,5457],[3569,5460],[3572,5482],[3551,5540],[3572,5571],[3597,5579],[3627,5564],[3638,5583],[3676,5589],[3655,5602],[3568,5573],[3544,5590],[3508,5568],[3471,5559],[3438,5507],[3458,5462],[3446,5450],[3398,5507],[3403,5527],[3462,5610],[3489,5604],[3522,5621],[3563,5614],[3593,5621],[3620,5645],[3655,5710],[3684,5750],[3722,5753],[3786,5799],[3760,5744],[3779,5703],[3778,5643],[3763,5627],[3734,5543],[3750,5438],[3782,5425],[3822,5431],[3851,5405],[3843,5370],[3816,5334],[3796,5341],[3779,5299],[3769,5322],[3775,5353],[3757,5359],[3727,5313],[3736,5276],[3731,5243],[3671,5219],[3698,5212],[3700,5193],[3654,5170],[3665,5156],[3640,5129],[3604,5115],[3631,5111],[3619,5096],[3640,5042],[3635,5026],[3602,5015],[3617,4982],[3644,4961],[3645,4917],[3618,4945],[3592,4910],[3555,4909]]],[[[3864,4903],[3883,4917],[3867,4933],[3879,4951],[3908,4955],[3928,4933],[3968,4912],[3990,4932],[4014,4893],[3999,4864],[3971,4869],[3948,4856],[3864,4903]]],[[[3783,4976],[3725,4995],[3689,5019],[3670,5043],[3670,5072],[3634,5116],[3648,5131],[3671,5120],[3748,5151],[3773,5131],[3771,5100],[3793,5115],[3794,5152],[3816,5121],[3803,5106],[3827,5075],[3830,5032],[3817,4989],[3783,4976]]],[[[3975,5024],[3935,5036],[3908,5029],[3904,5052],[3877,5078],[3897,5086],[3886,5136],[3853,5186],[3903,5188],[3941,5223],[3940,5253],[3989,5263],[3972,5244],[3999,5175],[4008,5214],[4029,5244],[4042,5169],[4047,5192],[4033,5256],[4006,5264],[4069,5313],[4110,5306],[4133,5290],[4116,5252],[4134,5188],[4111,5157],[4075,5137],[4072,5104],[4110,5079],[4102,5050],[4066,5041],[4050,5016],[4065,5011],[4063,4970],[4047,4963],[4030,4955],[4068,4923],[4033,4879],[4035,4841],[4017,4868],[4023,4887],[3994,4932],[3994,4960],[4017,4963],[3975,5024]]]]}},{"type":"Feature","id":"DE","properties":{"hc-group":"admin0","hc-middle-x":0.46,"hc-middle-y":0.52,"hc-key":"de","hc-a2":"DE","name":"Germany","labelrank":"2","country-abbrev":"Ger.","subregion":"Western Europe","region-wb":"Europe & Central Asia","iso-a3":"DEU","iso-a2":"DE","woe-id":"23424829","continent":"Europe"},"geometry":{"type":"MultiPolygon","coordinates":[[[[3457,4937],[3485,4940],[3549,4922],[3555,4909],[3592,4910],[3617,4926],[3659,4893],[3675,4903],[3696,4868],[3693,4829],[3669,4804],[3712,4814],[3728,4787],[3744,4798],[3827,4760],[3854,4780],[3880,4769],[3878,4721],[3823,4679],[3848,4655],[3899,4672],[3911,4650],[3949,4639],[3955,4668],[3983,4711],[4053,4724],[4103,4763],[4129,4815],[4164,4804],[4107,4765],[4161,4792],[4196,4785],[4223,4807],[4240,4761],[4271,4749],[4304,4709],[4344,4728],[4363,4715],[4365,4735],[4439,4668],[4433,4658],[4438,4650],[4381,4636],[4382,4663],[4370,4646],[4401,4616],[4445,4614],[4453,4597],[4463,4539],[4487,4470],[4479,4401],[4444,4373],[4442,4339],[4491,4308],[4543,4263],[4526,4215],[4541,4172],[4558,4166],[4559,4126],[4574,4114],[4547,4030],[4574,3993],[4580,3945],[4621,3927],[4640,3864],[4631,3812],[4608,3748],[4570,3741],[4573,3761],[4544,3792],[4505,3795],[4496,3778],[4519,3749],[4434,3714],[4424,3696],[4379,3690],[4352,3654],[4310,3648],[4298,3621],[4269,3619],[4252,3592],[4234,3602],[4174,3584],[4142,3543],[4132,3514],[4122,3543],[4091,3559],[4126,3478],[4170,3457],[4182,3438],[4156,3388],[4205,3319],[4210,3295],[4242,3266],[4282,3258],[4320,3206],[4344,3199],[4382,3154],[4407,3158],[4451,3106],[4451,3059],[4436,3031],[4395,3048],[4375,2984],[4350,2962],[4302,2946],[4245,2901],[4249,2884],[4299,2820],[4280,2782],[4306,2780],[4318,2753],[4312,2714],[4293,2706],[4259,2730],[4254,2764],[4200,2750],[4185,2769],[4134,2772],[4133,2741],[4086,2741],[4062,2730],[4021,2733],[4008,2710],[3979,2707],[3948,2675],[3891,2671],[3852,2708],[3775,2725],[3783,2684],[3753,2643],[3723,2633],[3729,2666],[3705,2662],[3704,2684],[3679,2710],[3632,2717],[3589,2746],[3551,2758],[3501,2800],[3523,2755],[3466,2750],[3405,2795],[3376,2786],[3361,2756],[3397,2755],[3372,2732],[3317,2742],[3298,2728],[3244,2738],[3215,2724],[3196,2736],[3185,2797],[3207,2863],[3198,2891],[3237,2968],[3251,3046],[3311,3107],[3332,3148],[3279,3173],[3223,3175],[3173,3217],[3148,3198],[3063,3233],[3037,3223],[3000,3304],[2971,3312],[2973,3345],[3003,3384],[3006,3413],[2953,3443],[2931,3493],[2937,3515],[2944,3543],[2990,3571],[2985,3621],[2958,3625],[2957,3663],[2924,3706],[2939,3752],[2914,3791],[2959,3825],[2945,3850],[2974,3896],[2974,3932],[2958,3974],[2930,4002],[2929,4025],[2967,4050],[3014,4026],[3096,4063],[3071,4086],[3139,4142],[3145,4183],[3132,4209],[3081,4219],[3097,4268],[3146,4268],[3157,4330],[3177,4363],[3182,4447],[3203,4472],[3153,4488],[3167,4551],[3193,4574],[3323,4586],[3361,4534],[3341,4519],[3366,4491],[3388,4520],[3377,4549],[3432,4530],[3418,4572],[3435,4624],[3455,4633],[3486,4615],[3560,4625],[3612,4544],[3606,4578],[3582,4614],[3551,4632],[3513,4633],[3483,4677],[3512,4675],[3509,4710],[3488,4704],[3485,4743],[3507,4762],[3452,4750],[3448,4784],[3489,4791],[3516,4819],[3481,4874],[3461,4889],[3457,4937]],[[4383,4668],[4384,4682],[4410,4667],[4390,4704],[4360,4689],[4362,4708],[4355,4693],[4383,4668]]],[[[3105,4551],[3096,4549],[3091,4558],[3113,4563],[3105,4551]]],[[[3215,4590],[3184,4584],[3177,4587],[3195,4593],[3215,4590]]],[[[3266,4596],[3245,4596],[3241,4600],[3262,4600],[3266,4596]]],[[[3296,4603],[3287,4599],[3278,4602],[3284,4607],[3296,4603]]],[[[3956,4674],[3951,4658],[3934,4661],[3950,4677],[3956,4674]]],[[[3494,4807],[3481,4818],[3487,4823],[3508,4824],[3494,4807]]],[[[3910,4811],[3921,4792],[3886,4791],[3867,4807],[3887,4828],[3910,4811]]],[[[3456,4818],[3447,4816],[3444,4827],[3462,4835],[3456,4818]]],[[[4243,4858],[4236,4853],[4228,4828],[4234,4858],[4243,4858]]],[[[3403,4882],[3407,4861],[3401,4855],[3391,4869],[3403,4882]]],[[[3440,4877],[3409,4883],[3422,4895],[3437,4895],[3440,4877]]],[[[3409,4938],[3392,4937],[3408,4980],[3403,4960],[3409,4938]]],[[[4245,4843],[4280,4855],[4292,4828],[4303,4848],[4266,4873],[4283,4875],[4297,4853],[4328,4858],[4318,4823],[4353,4786],[4307,4784],[4267,4755],[4239,4779],[4262,4794],[4245,4843]]]]}},{"type":"Feature","id":"FR","properties":{"hc-group":"admin0","hc-middle-x":0.48,"hc-middle-y":0.50,"hc-key":"fr","hc-a2":"FR","name":"France","labelrank":"2","country-abbrev":"Fr.","subregion":"Western Europe","region-wb":"Europe & Central Asia","iso-a3":"FRA","iso-a2":"FR","woe-id":"-90","continent":"Europe"},"geometry":{"type":"MultiPolygon","coordinates":[[[[1314,2436],[1332,2401],[1321,2377],[1294,2431],[1314,2436]]],[[[1288,2516],[1319,2498],[1328,2483],[1270,2520],[1288,2516]]],[[[1143,2682],[1124,2683],[1125,2691],[1133,2690],[1143,2682]]],[[[1175,2758],[1163,2756],[1157,2779],[1176,2773],[1175,2758]]],[[[1006,2897],[1014,2887],[980,2899],[982,2921],[1006,2897]]],[[[688,3312],[678,3306],[671,3313],[684,3317],[688,3312]]],[[[1818,1292],[1825,1324],[1769,1340],[1759,1327],[1739,1366],[1698,1372],[1685,1392],[1596,1423],[1587,1376],[1504,1382],[1482,1403],[1434,1397],[1412,1434],[1378,1454],[1318,1448],[1285,1500],[1237,1510],[1131,1565],[1157,1611],[1084,1638],[1078,1668],[1108,1667],[1157,1715],[1207,1843],[1251,1985],[1272,2031],[1302,2028],[1282,2065],[1254,2023],[1321,2277],[1336,2299],[1392,2216],[1399,2138],[1408,2136],[1399,2245],[1385,2275],[1319,2345],[1316,2371],[1338,2372],[1354,2400],[1358,2459],[1339,2480],[1363,2507],[1289,2568],[1231,2603],[1226,2644],[1182,2709],[1191,2741],[1219,2774],[1190,2814],[1201,2857],[1171,2842],[1122,2892],[1157,2898],[1140,2933],[1075,2936],[1060,2957],[1093,2949],[1091,2973],[1028,2969],[948,3046],[884,3065],[873,3094],[838,3098],[810,3080],[781,3087],[778,3140],[734,3177],[815,3173],[818,3200],[790,3222],[772,3205],[777,3242],[847,3226],[797,3249],[820,3266],[737,3261],[743,3306],[758,3327],[793,3339],[844,3332],[914,3346],[932,3311],[946,3340],[991,3317],[1010,3361],[1038,3350],[1095,3354],[1101,3329],[1136,3281],[1156,3232],[1238,3272],[1253,3237],[1269,3251],[1332,3264],[1329,3237],[1423,3233],[1391,3265],[1406,3349],[1405,3409],[1371,3467],[1375,3520],[1365,3568],[1426,3536],[1469,3548],[1497,3516],[1478,3499],[1496,3457],[1563,3426],[1643,3408],[1677,3384],[1715,3391],[1758,3414],[1808,3418],[1750,3439],[1747,3454],[1785,3506],[1876,3538],[1975,3552],[2022,3581],[2044,3611],[2080,3618],[2058,3638],[2076,3726],[2086,3814],[2165,3847],[2272,3860],[2272,3860],[2284,3820],[2277,3785],[2311,3746],[2380,3752],[2397,3678],[2434,3672],[2467,3647],[2467,3608],[2537,3608],[2569,3579],[2551,3543],[2566,3521],[2550,3497],[2607,3480],[2651,3493],[2658,3522],[2696,3536],[2676,3487],[2686,3430],[2704,3431],[2768,3371],[2788,3367],[2801,3334],[2863,3343],[2895,3312],[2930,3326],[2971,3312],[3000,3304],[3037,3223],[3063,3233],[3148,3198],[3173,3217],[3223,3175],[3279,3173],[3332,3148],[3311,3107],[3251,3046],[3237,2968],[3198,2891],[3207,2863],[3185,2797],[3196,2736],[3152,2691],[3124,2689],[3112,2710],[3077,2715],[3046,2673],[3082,2667],[3063,2639],[2985,2564],[2952,2553],[2947,2497],[2882,2451],[2863,2398],[2879,2379],[2868,2345],[2840,2336],[2838,2312],[2870,2312],[2908,2341],[2913,2382],[2956,2390],[3016,2388],[3023,2345],[3010,2304],[3027,2300],[3060,2239],[3011,2211],[3009,2178],[3043,2153],[3046,2113],[3083,2081],[3070,2036],[3011,1999],[2989,2008],[2959,1993],[2984,1965],[2984,1939],[3027,1917],[3051,1862],[3035,1865],[3004,1822],[3018,1788],[3006,1769],[3041,1728],[3115,1688],[3176,1702],[3183,1674],[3134,1609],[3139,1587],[3099,1556],[3060,1548],[3056,1517],[3019,1517],[3006,1487],[2963,1477],[2932,1440],[2949,1414],[2801,1384],[2783,1402],[2763,1376],[2716,1422],[2652,1435],[2643,1478],[2592,1473],[2580,1491],[2618,1502],[2589,1544],[2594,1511],[2564,1510],[2538,1483],[2482,1494],[2472,1521],[2404,1528],[2384,1557],[2347,1555],[2273,1513],[2246,1487],[2218,1490],[2152,1442],[2131,1394],[2122,1275],[2148,1235],[2093,1252],[1983,1224],[1944,1255],[1891,1237],[1865,1266],[1818,1292]],[[1873,1267],[1882,1266],[1876,1280],[1870,1274],[1873,1267]]],[[[3510,839],[3412,898],[3414,922],[3442,938],[3390,950],[3411,978],[3403,1012],[3373,1003],[3367,1024],[3403,1046],[3368,1074],[3360,1107],[3392,1119],[3363,1139],[3400,1204],[3468,1230],[3489,1253],[3530,1237],[3542,1333],[3560,1341],[3574,1285],[3567,1228],[3584,1197],[3588,1065],[3553,1016],[3552,941],[3520,887],[3510,839]]]]}},{"type":"Feature","id":"IE","properties":{"hc-group":"admin0","hc-middle-x":0.59,"hc-middle-y":0.58,"hc-key":"ie","hc-a2":"IE","name":"Ireland","labelrank":"3","country-abbrev":"Ire.","subregion":"Northern Europe","region-wb":"Europe & Central Asia","iso-a3":"IRL","iso-a2":"IE","woe-id":"23424803","continent":"Europe"},"geometry":{"type":"MultiPolygon","coordinates":[[[[16,4462],[17,4458],[2,4458],[2,4466],[16,4462]]],[[[-50,4572],[-47,4566],[-72,4564],[-67,4570],[-50,4572]]],[[[152,4893],[166,4888],[164,4875],[142,4897],[152,4893]]],[[[176,4917],[170,4916],[168,4929],[178,4931],[176,4917]]],[[[189,5159],[178,5119],[167,5147],[133,5164],[189,5159]]],[[[515,5369],[501,5373],[509,5384],[515,5377],[515,5369]]],[[[829,5019],[850,4985],[809,4995],[798,4970],[818,4950],[807,4885],[825,4859],[807,4806],[788,4800],[804,4774],[801,4675],[742,4596],[735,4561],[690,4513],[671,4519],[694,4475],[681,4460],[640,4469],[602,4497],[584,4474],[577,4505],[561,4475],[485,4490],[457,4485],[447,4457],[401,4457],[360,4429],[315,4433],[332,4453],[304,4454],[301,4422],[216,4388],[189,4401],[106,4396],[85,4414],[1,4406],[2,4419],[64,4440],[16,4435],[30,4446],[86,4457],[77,4473],[9,4470],[-24,4460],[-29,4485],[48,4515],[-21,4510],[-40,4545],[-64,4532],[-64,4560],[-37,4564],[-34,4586],[33,4593],[42,4609],[-59,4630],[-53,4652],[8,4668],[57,4637],[75,4676],[58,4693],[112,4700],[130,4724],[191,4707],[252,4714],[254,4747],[217,4715],[182,4716],[146,4739],[114,4730],[95,4740],[150,4771],[165,4769],[205,4815],[184,4823],[237,4873],[254,4857],[278,4870],[295,4857],[304,4893],[184,4915],[197,4952],[143,4952],[167,4969],[125,4979],[112,5036],[149,5028],[139,5042],[174,5038],[176,5083],[238,5076],[246,5106],[184,5111],[191,5139],[208,5130],[206,5186],[196,5220],[207,5243],[241,5219],[234,5244],[336,5200],[340,5157],[366,5195],[436,5166],[464,5165],[437,5198],[516,5228],[551,5257],[519,5253],[500,5269],[456,5274],[441,5303],[473,5316],[503,5306],[492,5329],[531,5322],[516,5358],[564,5415],[591,5406],[648,5407],[678,5420],[684,5365],[662,5353],[691,5346],[690,5394],[699,5420],[734,5418],[730,5443],[758,5421],[792,5376],[750,5364],[730,5344],[699,5331],[656,5260],[621,5259],[604,5270],[589,5252],[611,5232],[590,5215],[564,5222],[528,5206],[563,5144],[567,5116],[601,5087],[651,5067],[689,5100],[681,5115],[717,5143],[741,5116],[747,5071],[770,5055],[765,5015],[829,5019]]]]}},{"type":"Feature","id":"HR","properties":{"hc-group":"admin0","hc-middle-x":0.73,"hc-middle-y":0.26,"hc-key":"hr","hc-a2":"HR","name":"Croatia","labelrank":"6","country-abbrev":"Cro.","subregion":"Southern Europe","region-wb":"Europe & Central Asia","iso-a3":"HRV","iso-a2":"HR","woe-id":"23424843","continent":"Europe"},"geometry":{"type":"MultiPolygon","coordinates":[[[[5248,1341],[5247,1332],[5227,1327],[5220,1339],[5248,1341]]],[[[5347,1359],[5428,1342],[5433,1336],[5349,1351],[5347,1359]]],[[[5205,1398],[5263,1407],[5303,1393],[5226,1378],[5177,1384],[5205,1398]]],[[[5074,1418],[5079,1406],[5059,1398],[5042,1412],[5074,1418]]],[[[5152,1472],[5196,1456],[5295,1455],[5184,1444],[5110,1458],[5152,1472]]],[[[5203,1512],[5206,1489],[5165,1484],[5118,1496],[5117,1520],[5203,1512]]],[[[5088,1520],[5111,1504],[5101,1501],[5069,1513],[5088,1520]]],[[[5094,1550],[5103,1548],[5075,1543],[5078,1553],[5094,1550]]],[[[4873,1621],[4860,1624],[4842,1640],[4850,1639],[4873,1621]]],[[[4887,1655],[4868,1660],[4845,1686],[4873,1676],[4887,1655]]],[[[4836,1702],[4828,1696],[4813,1709],[4798,1729],[4836,1702]]],[[[4756,1719],[4837,1656],[4820,1651],[4788,1695],[4756,1719]]],[[[4739,1782],[4727,1786],[4728,1801],[4735,1801],[4739,1782]]],[[[4742,1859],[4754,1862],[4836,1786],[4755,1826],[4742,1859]]],[[[4647,1853],[4646,1846],[4629,1887],[4643,1878],[4647,1853]]],[[[4717,1932],[4733,1910],[4741,1890],[4702,1931],[4717,1932]]],[[[4654,1961],[4653,1913],[4671,1860],[4650,1870],[4618,1955],[4636,1962],[4609,2011],[4627,2021],[4654,1961]]],[[[4668,2052],[4693,2004],[4728,1973],[4705,1962],[4686,1988],[4642,2001],[4663,2016],[4668,2052]]],[[[5309,1424],[5362,1398],[5410,1389],[5440,1403],[5453,1376],[5542,1328],[5592,1313],[5610,1271],[5442,1373],[5430,1366],[5358,1383],[5301,1412],[5309,1424]]],[[[5569,2344],[5563,2306],[5593,2267],[5592,2227],[5607,2237],[5612,2176],[5649,2156],[5693,2151],[5702,2128],[5644,2128],[5632,2112],[5645,2041],[5607,2021],[5579,2043],[5556,2082],[5525,2071],[5456,2094],[5448,2078],[5410,2086],[5374,2056],[5338,2083],[5315,2067],[5248,2081],[5232,2067],[5172,2103],[5146,2068],[5102,2076],[5080,2068],[5055,2007],[5027,2012],[4976,2065],[4939,2059],[4931,2043],[4937,1948],[4926,1929],[4948,1903],[4966,1911],[5019,1856],[5042,1808],[5049,1763],[5160,1660],[5170,1640],[5259,1570],[5294,1562],[5305,1525],[5350,1468],[5384,1450],[5405,1417],[5372,1411],[5322,1458],[5265,1486],[5217,1533],[5160,1540],[5093,1566],[5014,1544],[5000,1596],[4892,1662],[4815,1740],[4806,1761],[4849,1777],[4897,1766],[4848,1791],[4752,1887],[4745,1938],[4751,1968],[4727,2014],[4689,2037],[4671,2063],[4616,2080],[4584,1992],[4587,1969],[4561,1954],[4547,1911],[4511,1925],[4512,1941],[4466,2000],[4462,2049],[4438,2118],[4456,2112],[4521,2096],[4537,2124],[4563,2113],[4623,2118],[4643,2134],[4659,2175],[4685,2139],[4732,2123],[4736,2137],[4787,2115],[4834,2134],[4811,2168],[4833,2182],[4805,2200],[4845,2236],[4890,2245],[4892,2307],[4867,2328],[4880,2360],[4957,2395],[4959,2416],[5006,2420],[4993,2454],[5014,2473],[5051,2462],[5128,2426],[5156,2383],[5205,2361],[5241,2314],[5293,2314],[5310,2288],[5357,2271],[5429,2283],[5473,2275],[5522,2332],[5569,2344]]]]}},{"type":"Feature","id":"GB","properties":{"hc-group":"admin0","hc-middle-x":0.18,"hc-middle-y":0.36,"hc-key":"gb","hc-a2":"GB","name":"United Kingdom","labelrank":"2","country-abbrev":"U.K.","subregion":"Northern Europe","region-wb":"Europe & Central Asia","iso-a3":"GBR","iso-a2":"GB","woe-id":"-90","continent":"Europe"},"geometry":{"type":"MultiPolygon","coordinates":[[[[1305,3436],[1320,3407],[1280,3417],[1281,3437],[1305,3436]]],[[[1538,3861],[1578,3830],[1554,3806],[1525,3807],[1495,3837],[1538,3861]]],[[[1061,4728],[1066,4728],[1074,4705],[1055,4719],[1061,4728]]],[[[1140,4706],[1168,4701],[1105,4662],[1093,4664],[1073,4712],[1080,4747],[1108,4752],[1133,4739],[1140,4706]]],[[[1113,5371],[1077,5392],[1089,5454],[1121,5443],[1125,5408],[1113,5371]]],[[[1149,5453],[1135,5473],[1129,5513],[1147,5500],[1149,5453]]],[[[974,5523],[977,5476],[923,5458],[939,5478],[929,5515],[897,5494],[917,5539],[975,5557],[974,5523]]],[[[988,5607],[976,5588],[963,5587],[980,5611],[988,5607]]],[[[1040,5567],[996,5510],[979,5515],[984,5547],[1006,5571],[1054,5601],[1040,5567]]],[[[1084,5632],[1075,5611],[1072,5622],[1078,5631],[1084,5632]]],[[[1008,5713],[995,5716],[992,5721],[1001,5725],[1008,5713]]],[[[888,5733],[875,5755],[918,5758],[893,5743],[888,5733]]],[[[951,5767],[927,5768],[950,5783],[975,5789],[951,5767]]],[[[846,5913],[828,5903],[816,5909],[837,5929],[846,5913]]],[[[1027,5879],[1016,5858],[996,5882],[1021,5893],[1027,5879]]],[[[1100,5947],[1095,5946],[1088,5958],[1098,5957],[1100,5947]]],[[[881,6035],[875,6020],[897,5995],[859,5944],[852,5989],[881,6035]]],[[[896,6055],[905,6032],[891,6032],[875,6048],[896,6055]]],[[[1105,6010],[1094,5966],[1082,5976],[1096,6010],[1105,6010]]],[[[925,6101],[920,6058],[864,6097],[880,6115],[925,6101]]],[[[1019,6265],[1027,6250],[1016,6254],[1015,6265],[1019,6265]]],[[[1671,6304],[1658,6279],[1649,6310],[1662,6312],[1671,6304]]],[[[1620,6337],[1627,6312],[1605,6304],[1590,6336],[1620,6337]]],[[[1731,6396],[1743,6376],[1729,6372],[1723,6398],[1731,6396]]],[[[1669,6416],[1675,6400],[1661,6403],[1658,6421],[1669,6416]]],[[[1712,6428],[1712,6398],[1705,6397],[1700,6415],[1712,6428]]],[[[1772,6433],[1750,6416],[1738,6423],[1743,6430],[1772,6433]]],[[[1691,6464],[1697,6435],[1680,6440],[1670,6463],[1691,6464]]],[[[1975,6645],[1972,6632],[1968,6633],[1972,6650],[1975,6645]]],[[[2016,6666],[2013,6644],[2006,6649],[2007,6666],[2016,6666]]],[[[2038,6711],[2030,6713],[2035,6721],[2050,6722],[2038,6711]]],[[[2075,6788],[2078,6778],[2063,6779],[2057,6797],[2075,6788]]],[[[2041,6833],[2054,6829],[2037,6761],[2020,6766],[2024,6808],[2032,6797],[2041,6833]]],[[[2089,6843],[2077,6812],[2056,6816],[2076,6861],[2089,6843]]],[[[1232,3501],[1208,3506],[1212,3514],[1241,3526],[1232,3501]]],[[[1119,4954],[1083,4953],[1107,4996],[1146,5033],[1180,5041],[1180,5002],[1160,4977],[1119,4954]]],[[[9749,-100],[9748,-103],[9726,-118],[9757,-134],[9748,-142],[9728,-138],[9721,-136],[9728,-138],[9723,-139],[9709,-146],[9709,-146],[9708,-141],[9704,-131],[9697,-129],[9719,-123],[9749,-99],[9749,-100],[9749,-100],[9749,-100],[9749,-100],[9749,-100]],[[9717,-133],[9717,-129],[9714,-130],[9715,-133],[9717,-133]]],[[[-170,-368],[-172,-377],[-174,-367],[-170,-368]]],[[[9574,-303],[9562,-329],[9547,-305],[9509,-318],[9522,-298],[9574,-303]]],[[[1599,3866],[1565,3859],[1519,3902],[1535,3869],[1412,3856],[1399,3829],[1316,3856],[1307,3842],[1270,3881],[1240,3899],[1162,3895],[1111,3866],[1104,3825],[1071,3801],[1064,3776],[1036,3777],[1011,3815],[994,3811],[974,3840],[980,3864],[954,3846],[909,3839],[860,3849],[845,3821],[795,3821],[786,3782],[754,3757],[737,3801],[711,3819],[686,3801],[662,3806],[673,3837],[710,3847],[722,3837],[810,3890],[821,3917],[869,3929],[927,3983],[944,4043],[978,4030],[1007,4049],[1003,4073],[1026,4087],[1099,4083],[1167,4051],[1235,4041],[1244,4076],[1288,4117],[1308,4122],[1364,4186],[1318,4150],[1284,4140],[1264,4149],[1221,4123],[1216,4107],[1150,4120],[1119,4154],[1105,4198],[1079,4184],[1021,4194],[1024,4212],[1062,4211],[1027,4228],[1014,4259],[959,4256],[949,4237],[903,4230],[886,4243],[898,4265],[859,4281],[885,4293],[884,4317],[860,4338],[893,4344],[904,4361],[949,4351],[992,4379],[1014,4373],[1081,4404],[1105,4433],[1122,4477],[1113,4498],[1133,4530],[1121,4560],[1135,4588],[1079,4593],[1054,4567],[1009,4576],[1048,4611],[1096,4631],[1104,4656],[1145,4683],[1205,4690],[1253,4682],[1298,4692],[1330,4658],[1325,4694],[1350,4707],[1350,4741],[1395,4791],[1370,4806],[1385,4853],[1408,4853],[1408,4881],[1434,4904],[1427,4926],[1402,4918],[1399,4940],[1372,4907],[1356,4914],[1331,5005],[1310,5046],[1373,5148],[1407,5163],[1348,5187],[1337,5153],[1294,5157],[1268,5134],[1233,5147],[1201,5189],[1205,5157],[1193,5121],[1121,5193],[1101,5179],[1106,5124],[1074,5197],[1077,5246],[1091,5219],[1113,5279],[1139,5297],[1154,5329],[1200,5370],[1197,5398],[1163,5444],[1176,5456],[1179,5497],[1201,5512],[1191,5528],[1199,5561],[1162,5494],[1135,5520],[1106,5514],[1110,5551],[1095,5555],[1092,5508],[1101,5480],[1064,5445],[1066,5428],[1042,5390],[1042,5366],[1016,5350],[993,5358],[1013,5395],[1034,5461],[1082,5503],[1051,5485],[1051,5552],[1096,5606],[1086,5630],[1108,5670],[1121,5679],[1167,5675],[1121,5690],[1169,5753],[1090,5704],[1043,5751],[1064,5764],[1013,5782],[1023,5798],[1063,5798],[1076,5784],[1082,5826],[1107,5874],[1132,5895],[1152,5932],[1123,5962],[1123,6007],[1133,6029],[1160,6008],[1149,6062],[1156,6106],[1192,6124],[1212,6097],[1232,6120],[1270,6090],[1228,6165],[1250,6156],[1247,6210],[1321,6201],[1295,6210],[1288,6235],[1314,6261],[1309,6281],[1334,6311],[1381,6279],[1417,6268],[1400,6242],[1434,6265],[1514,6257],[1550,6267],[1585,6252],[1580,6270],[1641,6254],[1617,6219],[1618,6188],[1591,6160],[1553,6146],[1537,6128],[1435,6078],[1442,6054],[1410,6057],[1434,6040],[1474,6036],[1435,6002],[1423,6015],[1385,6007],[1358,5981],[1400,6002],[1431,5996],[1382,5951],[1495,5973],[1515,5992],[1548,5987],[1578,5966],[1606,5971],[1667,5950],[1735,5949],[1762,5938],[1775,5915],[1780,5871],[1736,5831],[1715,5773],[1693,5746],[1675,5704],[1632,5669],[1609,5626],[1565,5601],[1515,5603],[1481,5580],[1544,5600],[1547,5571],[1586,5539],[1546,5518],[1517,5527],[1474,5490],[1431,5487],[1380,5512],[1405,5490],[1482,5454],[1508,5456],[1536,5480],[1564,5473],[1612,5427],[1638,5417],[1679,5323],[1708,5304],[1707,5176],[1723,5115],[1727,5055],[1753,5003],[1805,4976],[1840,4945],[1860,4878],[1884,4842],[1909,4823],[1880,4800],[1887,4762],[1927,4678],[1894,4677],[1853,4718],[1868,4679],[1923,4628],[1947,4548],[1939,4507],[1905,4488],[1873,4455],[1888,4455],[1912,4422],[1936,4417],[1978,4466],[2049,4458],[2103,4438],[2165,4384],[2178,4337],[2178,4295],[2145,4233],[2129,4177],[2108,4172],[2051,4125],[2064,4113],[2036,4098],[2008,4114],[1995,4053],[1979,4037],[1899,4031],[1942,4017],[1913,4001],[1956,3985],[1954,4006],[1977,3995],[1983,3979],[1964,3982],[1990,3972],[2075,3974],[2067,3924],[2053,3898],[1988,3879],[1974,3843],[1941,3853],[1905,3834],[1854,3828],[1833,3809],[1752,3845],[1676,3848],[1627,3835],[1612,3868],[1603,3867],[1606,3864],[1606,3855],[1590,3857],[1599,3866]]],[[[997,5682],[1013,5713],[984,5744],[990,5760],[1027,5766],[1038,5753],[1045,5722],[1080,5703],[1085,5674],[1055,5656],[1039,5665],[967,5663],[1024,5682],[997,5682]]],[[[1078,5922],[1029,5923],[1013,5974],[1020,6000],[999,5985],[975,6027],[991,6041],[1013,6033],[1008,6067],[1042,6031],[1046,6070],[1067,6083],[1084,6043],[1071,5990],[1075,5965],[1101,5932],[1143,5929],[1131,5909],[1070,5872],[1089,5907],[1078,5922]]],[[[950,6144],[1000,6171],[961,6197],[968,6237],[992,6269],[1009,6241],[1038,6241],[1028,6273],[1113,6308],[1129,6320],[1138,6289],[1129,6271],[1095,6242],[1128,6241],[1115,6223],[1088,6236],[1083,6183],[1046,6155],[963,6117],[950,6144]]],[[[1621,6408],[1647,6408],[1668,6383],[1643,6366],[1674,6362],[1705,6333],[1682,6321],[1664,6348],[1628,6342],[1608,6376],[1621,6408]]],[[[1990,6689],[1958,6667],[1955,6695],[1937,6689],[1935,6717],[1979,6715],[1976,6768],[1951,6769],[1985,6802],[2004,6797],[1982,6739],[2005,6748],[2014,6730],[2029,6745],[2023,6708],[1999,6675],[1997,6631],[1972,6580],[1958,6591],[1985,6650],[1990,6689]]],[[[730,5344],[759,5329],[787,5369],[820,5356],[872,5366],[933,5341],[930,5298],[943,5289],[960,5221],[975,5211],[964,5184],[942,5180],[927,5154],[957,5170],[992,5156],[997,5095],[977,5061],[969,5082],[977,5119],[943,5072],[967,5077],[966,5051],[908,5042],[890,5003],[864,4992],[829,5019],[765,5015],[770,5055],[747,5071],[741,5116],[717,5143],[681,5115],[689,5100],[651,5067],[601,5087],[567,5116],[563,5144],[528,5206],[564,5222],[590,5215],[611,5232],[589,5252],[604,5270],[621,5259],[656,5260],[699,5331],[730,5344]]]]}},{"type":"Feature","id":"EE","properties":{"hc-group":"admin0","hc-middle-x":0.60,"hc-middle-y":0.51,"hc-key":"ee","hc-a2":"EE","name":"Estonia","labelrank":"6","country-abbrev":"Est.","subregion":"Northern Europe","region-wb":"Europe & Central Asia","iso-a3":"EST","iso-a2":"EE","woe-id":"23424805","continent":"Europe"},"geometry":{"type":"MultiPolygon","coordinates":[[[[5923,6125],[5913,6124],[5913,6136],[5922,6139],[5923,6125]]],[[[5791,6259],[5803,6240],[5776,6229],[5747,6244],[5758,6269],[5791,6259]]],[[[5746,6380],[5767,6382],[5775,6364],[5740,6357],[5746,6380]]],[[[5920,6570],[5916,6568],[5910,6577],[5913,6584],[5920,6570]]],[[[5684,6125],[5653,6105],[5643,6035],[5619,6009],[5612,6030],[5637,6084],[5578,6110],[5596,6141],[5569,6181],[5586,6188],[5602,6164],[5605,6187],[5628,6213],[5671,6240],[5682,6228],[5721,6245],[5795,6213],[5769,6209],[5754,6171],[5706,6119],[5684,6125]]],[[[5573,6321],[5635,6337],[5649,6377],[5672,6357],[5707,6354],[5731,6314],[5686,6296],[5679,6262],[5664,6255],[5638,6298],[5617,6311],[5597,6305],[5573,6321]]],[[[5985,6063],[5998,6129],[5988,6182],[5991,6213],[5957,6218],[5955,6196],[5932,6168],[5907,6187],[5868,6187],[5845,6242],[5821,6243],[5812,6301],[5855,6304],[5853,6325],[5795,6303],[5807,6322],[5786,6346],[5803,6368],[5777,6380],[5789,6413],[5776,6438],[5816,6467],[5866,6486],[5851,6504],[5892,6524],[5893,6541],[5919,6538],[5978,6571],[6007,6573],[6011,6587],[6054,6581],[6070,6597],[6054,6636],[6081,6614],[6091,6643],[6114,6621],[6117,6638],[6151,6632],[6209,6633],[6240,6642],[6269,6625],[6315,6626],[6358,6639],[6432,6644],[6448,6671],[6481,6646],[6443,6605],[6438,6516],[6410,6516],[6344,6482],[6333,6459],[6337,6429],[6378,6397],[6411,6326],[6439,6321],[6443,6297],[6480,6246],[6499,6209],[6535,6186],[6498,6161],[6500,6131],[6487,6120],[6490,6070],[6442,6067],[6407,6081],[6396,6060],[6355,6034],[6311,6057],[6263,6093],[6254,6114],[6220,6109],[6206,6127],[6187,6119],[6123,6156],[6119,6129],[6097,6148],[6078,6125],[6016,6093],[5985,6063]]]]}},{"type":"Feature","id":"CY","properties":{"hc-group":"admin0","hc-middle-x":0.21,"hc-middle-y":0.68,"hc-key":"cy","hc-a2":"CY","name":"Cyprus","labelrank":"5","country-abbrev":"Cyp.","subregion":"Western Asia","region-wb":"Europe & Central Asia","iso-a3":"CYP","iso-a2":"CY","woe-id":"-90","continent":"Asia"},"geometry":{"type":"MultiPolygon","coordinates":[[[[9717,-133],[9715,-133],[9714,-130],[9717,-129],[9717,-133]]],[[[9778,-94],[9807,-114],[9757,-134],[9726,-118],[9748,-103],[9757,-103],[9778,-94]]],[[[9709,-146],[9701,-199],[9625,-265],[9583,-283],[9574,-303],[9522,-298],[9509,-318],[9486,-326],[9414,-316],[9380,-283],[9350,-224],[9393,-222],[9415,-177],[9427,-181],[9432,-167],[9432,-167],[9441,-166],[9483,-192],[9561,-133],[9598,-136],[9620,-114],[9643,-159],[9657,-140],[9708,-141],[9709,-146],[9709,-146]]],[[[9721,-136],[9725,-135],[9731,-136],[9728,-138],[9721,-136]]]]}},{"type":"Feature","id":"FI","properties":{"hc-group":"admin0","hc-middle-x":0.58,"hc-middle-y":0.72,"hc-key":"fi","hc-a2":"FI","name":"Finland","labelrank":"3","country-abbrev":"Fin.","subregion":"Northern Europe","region-wb":"Europe & Central Asia","iso-a3":"FIN","iso-a2":"FI","woe-id":"23424812","continent":"Europe"},"geometry":{"type":"MultiPolygon","coordinates":[[[[5277,6595],[5260,6587],[5253,6586],[5260,6601],[5277,6595]]],[[[5287,6616],[5301,6613],[5297,6602],[5285,6602],[5287,6616]]],[[[5221,6618],[5243,6594],[5237,6582],[5212,6601],[5221,6618]]],[[[5241,6628],[5249,6630],[5247,6611],[5236,6618],[5241,6628]]],[[[5151,6640],[5139,6617],[5129,6633],[5136,6657],[5151,6640]]],[[[5255,6677],[5265,6671],[5260,6655],[5257,6668],[5255,6677]]],[[[5325,6680],[5318,6676],[5315,6691],[5326,6686],[5325,6680]]],[[[5312,6703],[5307,6697],[5307,6714],[5313,6711],[5312,6703]]],[[[5643,6660],[5640,6660],[5637,6673],[5647,6678],[5643,6660]]],[[[5575,6665],[5578,6644],[5569,6641],[5560,6665],[5575,6665]]],[[[5450,6666],[5448,6655],[5433,6651],[5438,6674],[5450,6666]]],[[[5485,6686],[5468,6662],[5459,6663],[5463,6685],[5485,6686]]],[[[5552,6686],[5546,6691],[5548,6699],[5557,6705],[5552,6686]]],[[[5411,6676],[5411,6667],[5392,6673],[5404,6681],[5411,6676]]],[[[5505,6672],[5492,6685],[5507,6698],[5504,6685],[5505,6672]]],[[[5541,6699],[5532,6700],[5535,6713],[5542,6715],[5541,6699]]],[[[5438,6701],[5443,6700],[5440,6691],[5434,6691],[5438,6701]]],[[[6041,6804],[6026,6820],[6028,6826],[6046,6814],[6041,6804]]],[[[5626,6713],[5632,6689],[5614,6651],[5582,6645],[5569,6702],[5621,6723],[5626,6713]]],[[[5489,6726],[5489,6715],[5479,6718],[5477,6724],[5489,6726]]],[[[5547,6728],[5528,6715],[5509,6717],[5515,6732],[5547,6728]]],[[[5558,6745],[5551,6731],[5541,6738],[5552,6750],[5558,6745]]],[[[5510,6742],[5534,6754],[5536,6749],[5522,6741],[5510,6742]]],[[[5483,6753],[5489,6731],[5460,6744],[5462,6771],[5483,6753]]],[[[5443,6764],[5440,6765],[5443,6779],[5450,6786],[5443,6764]]],[[[5386,6762],[5375,6765],[5372,6784],[5382,6773],[5386,6762]]],[[[5404,6783],[5404,6762],[5396,6766],[5384,6785],[5404,6783]]],[[[5378,6787],[5364,6800],[5369,6810],[5375,6801],[5378,6787]]],[[[5367,6885],[5352,6901],[5360,6909],[5372,6898],[5367,6885]]],[[[5252,7513],[5254,7506],[5241,7508],[5241,7522],[5252,7513]]],[[[5218,7605],[5236,7593],[5261,7587],[5247,7567],[5218,7605]]],[[[5347,7637],[5351,7631],[5349,7623],[5340,7625],[5347,7637]]],[[[5375,7639],[5365,7629],[5357,7620],[5352,7637],[5375,7639]]],[[[5255,7620],[5251,7610],[5237,7621],[5251,7634],[5255,7620]]],[[[5348,7657],[5344,7650],[5334,7640],[5338,7655],[5348,7657]]],[[[5426,7793],[5429,7781],[5421,7774],[5411,7786],[5426,7793]]],[[[5622,8237],[5597,8201],[5584,8220],[5593,8235],[5622,8237]]],[[[5650,6688],[5647,6683],[5634,6680],[5642,6695],[5649,6690],[5631,6711],[5647,6743],[5626,6747],[5579,6709],[5566,6719],[5585,6763],[5535,6756],[5499,6766],[5466,6790],[5455,6772],[5456,6819],[5432,6796],[5433,6774],[5387,6813],[5388,6848],[5367,6877],[5382,6891],[5355,6936],[5378,6938],[5371,6964],[5386,6985],[5377,7049],[5361,7094],[5393,7086],[5361,7119],[5346,7167],[5323,7203],[5302,7214],[5303,7256],[5313,7285],[5301,7290],[5299,7328],[5267,7338],[5259,7383],[5266,7399],[5247,7420],[5259,7478],[5274,7479],[5287,7511],[5286,7549],[5314,7539],[5286,7566],[5279,7590],[5300,7590],[5331,7615],[5337,7589],[5352,7614],[5374,7616],[5393,7644],[5361,7682],[5392,7697],[5402,7765],[5427,7745],[5437,7754],[5450,7809],[5473,7837],[5496,7844],[5489,7889],[5520,7889],[5511,7909],[5538,7955],[5552,7964],[5551,8006],[5587,8061],[5588,8107],[5622,8174],[5657,8197],[5688,8172],[5696,8200],[5671,8224],[5702,8223],[5677,8263],[5662,8264],[5666,8306],[5656,8377],[5614,8406],[5577,8417],[5563,8404],[5533,8454],[5519,8439],[5485,8449],[5453,8514],[5431,8545],[5407,8555],[5384,8624],[5406,8668],[5396,8726],[5405,8748],[5334,8843],[5330,8876],[5344,8888],[5340,8929],[5297,8942],[5305,8976],[5288,9020],[5282,9066],[5297,9085],[5258,9115],[5248,9138],[5227,9135],[5222,9162],[5206,9185],[5172,9210],[5110,9225],[5084,9221],[5061,9246],[5003,9275],[4950,9325],[4930,9330],[4930,9353],[4892,9369],[4902,9393],[4937,9378],[4949,9394],[4931,9422],[4935,9441],[4956,9461],[4997,9459],[5050,9387],[5099,9334],[5112,9300],[5130,9308],[5162,9298],[5180,9305],[5204,9287],[5259,9329],[5260,9356],[5275,9365],[5327,9340],[5367,9335],[5396,9308],[5420,9337],[5418,9393],[5434,9416],[5463,9426],[5471,9470],[5451,9523],[5455,9582],[5445,9629],[5449,9687],[5465,9697],[5483,9768],[5520,9783],[5548,9778],[5588,9828],[5590,9841],[5620,9851],[5662,9804],[5688,9798],[5695,9782],[5783,9763],[5824,9705],[5819,9675],[5792,9615],[5797,9580],[5818,9560],[5773,9506],[5775,9495],[5817,9496],[5816,9461],[5803,9397],[5807,9381],[5853,9299],[5862,9292],[5935,9282],[5997,9215],[6050,9185],[6054,9128],[6026,9051],[6002,8945],[6014,8898],[6054,8858],[6094,8808],[6115,8767],[6172,8706],[6218,8627],[6235,8578],[6221,8581],[6188,8556],[6211,8541],[6204,8522],[6216,8467],[6206,8434],[6240,8434],[6248,8400],[6230,8390],[6227,8361],[6268,8310],[6305,8316],[6332,8279],[6310,8252],[6333,8224],[6334,8200],[6378,8187],[6417,8167],[6433,8128],[6431,8098],[6408,8027],[6383,8004],[6474,7940],[6525,7928],[6595,7891],[6606,7868],[6667,7820],[6660,7780],[6659,7688],[6632,7613],[6604,7570],[6580,7501],[6536,7361],[6511,7320],[6483,7237],[6437,7177],[6421,7130],[6410,7123],[6370,7052],[6332,6963],[6292,6940],[6243,6961],[6223,6931],[6182,6899],[6176,6899],[6165,6883],[6157,6891],[6164,6900],[6151,6900],[6131,6876],[6104,6874],[6080,6890],[6085,6857],[6071,6843],[6083,6822],[6054,6816],[6036,6849],[6018,6833],[6019,6808],[5974,6798],[5975,6779],[5944,6760],[5892,6744],[5881,6701],[5862,6722],[5779,6672],[5728,6659],[5708,6619],[5657,6601],[5703,6644],[5680,6645],[5698,6679],[5657,6679],[5650,6688]]],[[[5174,6641],[5182,6697],[5209,6696],[5239,6677],[5229,6642],[5202,6665],[5213,6614],[5171,6605],[5146,6660],[5167,6673],[5174,6641]]]]}},{"type":"Feature","id":"GR","properties":{"hc-group":"admin0","hc-middle-x":0.21,"hc-middle-y":0.39,"hc-key":"gr","hc-a2":"GR","name":"Greece","labelrank":"3","country-abbrev":"Greece","subregion":"Southern Europe","region-wb":"Europe & Central Asia","iso-a3":"GRC","iso-a2":"GR","woe-id":"23424833","continent":"Europe"},"geometry":{"type":"MultiPolygon","coordinates":[[[[7331,-835],[7325,-838],[7307,-832],[7327,-823],[7331,-835]]],[[[8012,-492],[8016,-500],[7989,-520],[7987,-498],[8012,-492]]],[[[8041,-361],[8038,-425],[8064,-454],[8052,-485],[8017,-438],[8041,-361]]],[[[8105,-213],[8082,-220],[8082,-212],[8104,-206],[8105,-213]]],[[[6978,-462],[6980,-480],[6941,-468],[6943,-411],[6988,-450],[6978,-462]]],[[[7662,-272],[7643,-279],[7630,-274],[7638,-265],[7662,-272]]],[[[8242,-109],[8245,-128],[8223,-216],[8171,-303],[8149,-288],[8150,-245],[8127,-227],[8166,-159],[8212,-119],[8242,-109]]],[[[7570,-287],[7563,-302],[7540,-301],[7557,-286],[7570,-287]]],[[[8026,-151],[8034,-166],[8035,-178],[8012,-159],[8026,-151]]],[[[7972,-136],[7959,-126],[7970,-119],[7977,-126],[7972,-136]]],[[[7794,-167],[7761,-201],[7747,-178],[7767,-182],[7794,-167]]],[[[8125,-78],[8136,-75],[8145,-99],[8113,-96],[8125,-78]]],[[[7426,-247],[7416,-249],[7395,-239],[7399,-232],[7426,-247]]],[[[7463,-220],[7449,-230],[7455,-210],[7474,-204],[7463,-220]]],[[[7290,-227],[7318,-242],[7266,-264],[7267,-231],[7290,-227]]],[[[7525,-185],[7524,-209],[7489,-194],[7498,-170],[7525,-185]]],[[[7317,-194],[7324,-196],[7319,-212],[7304,-200],[7317,-194]]],[[[7957,-59],[7897,-104],[7923,-58],[7972,-25],[7993,-34],[7957,-59]]],[[[7679,-97],[7638,-139],[7629,-123],[7659,-88],[7679,-97]]],[[[7429,-131],[7418,-125],[7417,-115],[7428,-106],[7429,-131]]],[[[7322,-126],[7355,-149],[7345,-168],[7320,-133],[7322,-126]]],[[[7887,-2],[7906,-8],[7906,-29],[7879,-35],[7887,-2]]],[[[7470,-71],[7460,-116],[7434,-114],[7439,-82],[7470,-71]]],[[[7838,35],[7862,12],[7850,9],[7828,29],[7838,35]]],[[[7548,-62],[7546,-104],[7525,-125],[7488,-82],[7526,-34],[7548,-62]]],[[[7271,-87],[7281,-87],[7287,-108],[7263,-111],[7271,-87]]],[[[6945,-138],[6938,-140],[6927,-132],[6935,-126],[6945,-138]]],[[[7033,-88],[7023,-100],[6993,-109],[7013,-90],[7033,-88]]],[[[7765,75],[7764,60],[7761,51],[7758,73],[7765,75]]],[[[7253,-20],[7236,-61],[7229,-22],[7241,-4],[7253,-20]]],[[[7461,49],[7491,44],[7480,25],[7457,18],[7461,49]]],[[[7375,-3],[7357,-19],[7350,-9],[7360,27],[7375,-3]]],[[[7388,79],[7429,79],[7427,50],[7368,70],[7388,79]]],[[[7214,54],[7223,36],[7200,2],[7195,30],[7214,54]]],[[[7687,140],[7632,91],[7611,95],[7628,127],[7687,140]]],[[[7001,11],[6992,12],[6980,34],[7013,40],[7001,11]]],[[[7831,213],[7860,204],[7799,170],[7742,187],[7757,207],[7800,222],[7831,213]]],[[[6326,-50],[6389,-79],[6351,-110],[6295,-64],[6306,-29],[6326,-50]]],[[[7314,147],[7340,150],[7360,106],[7343,91],[7273,144],[7287,167],[7314,147]]],[[[6993,103],[6999,88],[6983,71],[6966,77],[6993,103]]],[[[6254,133],[6272,98],[6324,37],[6326,17],[6255,20],[6230,69],[6232,37],[6210,41],[6217,94],[6241,81],[6254,133]]],[[[7561,413],[7587,406],[7603,333],[7576,281],[7536,304],[7560,336],[7509,400],[7561,413]]],[[[7446,396],[7455,374],[7444,372],[7431,388],[7446,396]]],[[[6323,178],[6320,184],[6326,197],[6338,198],[6323,178]]],[[[6297,202],[6301,199],[6290,187],[6285,194],[6297,202]]],[[[6275,202],[6274,177],[6242,200],[6264,253],[6275,202]]],[[[7188,428],[7218,408],[7183,399],[7159,422],[7162,453],[7188,428]]],[[[6919,467],[6909,450],[6893,452],[6907,476],[6919,467]]],[[[6938,480],[6989,461],[6979,447],[6960,448],[6938,480]]],[[[6130,343],[6126,336],[6114,347],[6117,353],[6130,343]]],[[[7010,479],[7004,484],[7014,517],[7022,516],[7010,479]]],[[[7040,545],[7046,544],[7042,528],[7035,537],[7040,545]]],[[[7249,624],[7241,645],[7248,654],[7257,650],[7249,624]]],[[[6043,515],[6029,469],[6050,464],[6057,419],[6094,414],[6106,392],[6042,414],[6032,438],[5973,491],[6023,522],[6043,515]]],[[[7317,814],[7304,774],[7312,739],[7270,763],[7238,739],[7225,785],[7269,799],[7286,788],[7317,814]]],[[[7340,965],[7347,947],[7327,934],[7292,953],[7340,965]]],[[[7128,961],[7099,940],[7066,955],[7084,1010],[7118,1000],[7128,961]]],[[[6283,108],[6297,90],[6283,108],[6283,108],[6283,108]]],[[[7407,1366],[7473,1350],[7498,1282],[7438,1229],[7464,1144],[7439,1117],[7427,1073],[7408,1060],[7380,1087],[7284,1074],[7225,1086],[7162,1090],[7117,1033],[7079,1026],[7058,1051],[7019,1038],[7013,1004],[6967,962],[6895,965],[6873,934],[6932,892],[6914,877],[6954,851],[6961,874],[7020,844],[7063,810],[7047,790],[7008,829],[6945,846],[6896,823],[6922,789],[6976,773],[6986,723],[6931,748],[6897,789],[6829,795],[6819,771],[6866,728],[6909,719],[6921,698],[6864,705],[6838,697],[6809,778],[6741,793],[6683,838],[6718,860],[6696,885],[6666,841],[6629,818],[6653,791],[6639,725],[6649,692],[6687,668],[6732,619],[6757,569],[6804,546],[6854,500],[6879,460],[6826,426],[6847,457],[6828,483],[6773,497],[6755,471],[6764,432],[6823,406],[6807,376],[6765,344],[6723,348],[6713,322],[6745,332],[6765,315],[6837,310],[6849,287],[6874,303],[6904,296],[6919,254],[6960,258],[7005,224],[7075,217],[7114,186],[7095,168],[7114,99],[7139,60],[7133,27],[7094,60],[7059,64],[7031,100],[6998,104],[7001,126],[6920,88],[6875,40],[6918,35],[6926,-25],[6968,-41],[6984,-10],[6987,-45],[7023,-62],[6954,-92],[6952,-118],[6917,-108],[6926,-77],[6881,-62],[6822,-67],[6838,-109],[6902,-184],[6918,-225],[6960,-282],[6942,-306],[7000,-385],[6893,-331],[6872,-291],[6827,-306],[6814,-364],[6828,-406],[6787,-398],[6778,-340],[6733,-286],[6712,-283],[6710,-251],[6659,-272],[6656,-353],[6639,-330],[6610,-331],[6602,-289],[6572,-266],[6559,-233],[6581,-189],[6573,-155],[6534,-109],[6479,-84],[6462,-55],[6417,-41],[6462,55],[6459,86],[6518,74],[6550,124],[6594,144],[6667,109],[6692,111],[6783,92],[6835,61],[6859,78],[6826,90],[6845,108],[6877,106],[6910,127],[6885,144],[6771,170],[6757,189],[6737,158],[6695,198],[6696,164],[6598,168],[6561,157],[6548,134],[6507,134],[6492,115],[6449,143],[6403,103],[6375,171],[6324,214],[6308,245],[6277,240],[6292,279],[6342,290],[6359,272],[6370,315],[6349,332],[6332,315],[6288,337],[6271,285],[6254,321],[6168,375],[6102,441],[6105,477],[6133,507],[6124,527],[6150,543],[6124,588],[6149,614],[6197,629],[6203,692],[6223,750],[6263,782],[6258,825],[6236,845],[6251,873],[6331,902],[6378,899],[6420,937],[6442,982],[6502,1011],[6559,1007],[6626,1035],[6623,1081],[6660,1094],[6706,1095],[6740,1128],[6816,1134],[6874,1175],[6909,1179],[6905,1200],[6949,1220],[6960,1208],[7007,1232],[7035,1196],[7080,1180],[7102,1201],[7203,1172],[7258,1208],[7333,1221],[7384,1249],[7382,1299],[7345,1344],[7382,1371],[7407,1366]]],[[[7236,208],[7239,151],[7207,158],[7196,141],[7144,196],[7091,233],[7090,253],[6993,241],[6986,275],[6865,347],[6807,355],[6840,399],[6876,416],[6918,379],[6961,348],[7030,332],[7081,341],[7128,301],[7124,264],[7149,216],[7178,196],[7236,208]]],[[[7466,606],[7533,641],[7529,658],[7571,669],[7591,654],[7656,571],[7619,548],[7554,551],[7536,569],[7573,604],[7544,603],[7520,565],[7466,580],[7466,606]]],[[[7296,-598],[7332,-661],[7350,-663],[7441,-619],[7504,-607],[7530,-623],[7611,-610],[7641,-618],[7710,-591],[7707,-640],[7738,-655],[7792,-605],[7817,-611],[7837,-578],[7854,-606],[7850,-654],[7829,-671],[7785,-669],[7743,-689],[7690,-699],[7568,-749],[7477,-770],[7459,-721],[7422,-726],[7376,-708],[7282,-725],[7217,-726],[7167,-734],[7146,-720],[7149,-618],[7165,-649],[7184,-643],[7179,-589],[7207,-632],[7254,-627],[7296,-598]]],[[[6283,108],[6265,133],[6278,141],[6283,108],[6283,108]]]]}},{"type":"Feature","id":"SE","properties":{"hc-group":"admin0","hc-middle-x":0.52,"hc-middle-y":0.34,"hc-key":"se","hc-a2":"SE","name":"Sweden","labelrank":"3","country-abbrev":"Swe.","subregion":"Northern Europe","region-wb":"Europe & Central Asia","iso-a3":"SWE","iso-a2":"SE","woe-id":"23424954","continent":"Europe"},"geometry":{"type":"MultiPolygon","coordinates":[[[[4647,5343],[4652,5339],[4653,5330],[4644,5333],[4647,5343]]],[[[5170,5966],[5190,5960],[5144,5937],[5149,5957],[5170,5966]]],[[[3969,5895],[3957,5866],[3936,5863],[3932,5890],[3969,5895]]],[[[5167,6076],[5155,6075],[5149,6087],[5168,6085],[5167,6076]]],[[[4780,6047],[4777,6033],[4777,6025],[4769,6040],[4780,6047]]],[[[4997,6243],[4993,6230],[4978,6222],[4978,6234],[4997,6243]]],[[[4974,6258],[4963,6239],[4951,6243],[4956,6256],[4974,6258]]],[[[4895,6219],[4887,6220],[4883,6259],[4895,6240],[4895,6219]]],[[[5010,6272],[5004,6257],[4993,6263],[5009,6291],[5010,6272]]],[[[5052,6340],[5044,6339],[5051,6351],[5056,6347],[5052,6340]]],[[[5012,6343],[5015,6335],[5014,6325],[4984,6343],[5012,6343]]],[[[5036,6372],[5043,6366],[5036,6350],[5027,6369],[5036,6372]]],[[[5067,6386],[5061,6386],[5060,6396],[5069,6395],[5067,6386]]],[[[5028,6421],[5012,6384],[5003,6402],[5014,6420],[5028,6421]]],[[[5069,6453],[5060,6439],[5053,6445],[5064,6461],[5069,6453]]],[[[5042,6434],[5052,6454],[5058,6455],[5047,6438],[5042,6434]]],[[[5064,6511],[5066,6505],[5050,6500],[5058,6525],[5064,6511]]],[[[5019,6616],[5017,6608],[5009,6614],[5013,6626],[5019,6616]]],[[[4957,6695],[4981,6652],[4955,6668],[4951,6709],[4957,6695]]],[[[4827,7385],[4836,7386],[4833,7368],[4820,7365],[4827,7385]]],[[[5168,7743],[5177,7751],[5177,7728],[5171,7719],[5168,7743]]],[[[5286,8294],[5282,8287],[5272,8284],[5280,8296],[5286,8294]]],[[[5264,8282],[5253,8282],[5251,8293],[5259,8294],[5264,8282]]],[[[5268,8314],[5264,8309],[5267,8299],[5252,8315],[5268,8314]]],[[[5296,8343],[5307,8338],[5303,8330],[5295,8331],[5296,8343]]],[[[5344,8383],[5344,8373],[5330,8387],[5335,8395],[5344,8383]]],[[[5445,8416],[5439,8400],[5431,8406],[5430,8414],[5445,8416]]],[[[5322,8383],[5310,8384],[5309,8398],[5317,8394],[5322,8383]]],[[[3950,5957],[3942,5953],[3930,5961],[3955,6005],[3937,6017],[3933,5978],[3915,6007],[3886,5978],[3894,6051],[3876,6099],[3884,6118],[3865,6169],[3880,6206],[3901,6207],[3918,6148],[3951,6156],[3972,6257],[3949,6350],[3982,6415],[3973,6446],[4017,6455],[4062,6503],[4071,6524],[4066,6578],[4081,6609],[4080,6645],[4045,6717],[4024,6786],[4061,6808],[4087,6806],[4105,6857],[4112,6908],[4071,6960],[4042,6970],[4003,7012],[4021,7169],[4016,7200],[3986,7276],[3993,7321],[3984,7379],[4000,7404],[3966,7491],[3993,7543],[3987,7587],[4004,7606],[4053,7700],[4093,7733],[4126,7744],[4223,7724],[4249,7786],[4239,7859],[4174,7899],[4253,8059],[4262,8113],[4275,8133],[4274,8252],[4281,8297],[4263,8384],[4327,8397],[4378,8438],[4366,8505],[4393,8541],[4431,8635],[4473,8690],[4472,8737],[4428,8803],[4434,8830],[4467,8849],[4479,8878],[4495,8963],[4540,9008],[4550,9030],[4621,8994],[4646,9057],[4634,9131],[4634,9176],[4663,9191],[4689,9171],[4734,9178],[4844,9143],[4874,9188],[4839,9203],[4865,9245],[4872,9292],[4866,9325],[4834,9356],[4892,9369],[4930,9353],[4930,9330],[4950,9325],[5003,9275],[5061,9246],[5084,9221],[5110,9225],[5172,9210],[5206,9185],[5222,9162],[5227,9135],[5248,9138],[5258,9115],[5297,9085],[5282,9066],[5288,9020],[5305,8976],[5297,8942],[5340,8929],[5344,8888],[5330,8876],[5334,8843],[5405,8748],[5396,8726],[5406,8668],[5384,8624],[5407,8555],[5431,8545],[5453,8514],[5485,8449],[5459,8424],[5425,8439],[5386,8430],[5362,8391],[5298,8426],[5302,8396],[5272,8420],[5255,8399],[5270,8361],[5253,8365],[5280,8322],[5194,8353],[5251,8316],[5210,8308],[5236,8290],[5227,8272],[5171,8256],[5167,8245],[5203,8228],[5190,8211],[5153,8247],[5199,8184],[5178,8121],[5162,8118],[5158,8079],[5141,8072],[5192,8002],[5209,7997],[5217,7969],[5230,7978],[5208,7929],[5192,7919],[5161,7859],[5161,7813],[5150,7776],[5123,7743],[5115,7756],[5096,7701],[5064,7700],[5026,7651],[5021,7621],[4986,7657],[4998,7612],[4965,7622],[4968,7587],[4950,7574],[4942,7532],[4924,7540],[4889,7516],[4862,7450],[4875,7428],[4824,7393],[4818,7417],[4801,7405],[4797,7434],[4782,7440],[4824,7347],[4811,7342],[4783,7285],[4760,7286],[4742,7311],[4732,7269],[4762,7215],[4761,7167],[4748,7132],[4750,7094],[4762,7062],[4780,7058],[4772,7036],[4757,7058],[4717,7014],[4737,6987],[4729,6960],[4745,6942],[4742,6901],[4751,6837],[4780,6764],[4763,6749],[4798,6733],[4822,6738],[4836,6699],[4875,6729],[4885,6704],[4944,6662],[4963,6660],[4984,6628],[4947,6641],[4978,6605],[5027,6598],[5055,6536],[5035,6496],[5073,6503],[5020,6451],[5026,6442],[4988,6402],[4928,6370],[4948,6358],[4947,6367],[4967,6362],[4962,6354],[4950,6356],[4964,6347],[4977,6366],[5003,6360],[4992,6386],[5029,6358],[5011,6346],[4973,6346],[5000,6297],[4946,6266],[4928,6220],[4904,6220],[4899,6281],[4877,6269],[4881,6200],[4862,6199],[4863,6175],[4818,6152],[4810,6130],[4784,6116],[4674,6119],[4704,6100],[4720,6110],[4763,6109],[4791,6076],[4757,6056],[4713,6064],[4758,6043],[4773,6023],[4775,5965],[4748,5984],[4770,5950],[4760,5920],[4779,5888],[4751,5903],[4724,5888],[4776,5830],[4755,5835],[4780,5764],[4759,5735],[4751,5672],[4774,5634],[4751,5623],[4758,5604],[4745,5544],[4751,5520],[4731,5510],[4710,5439],[4705,5388],[4678,5335],[4672,5356],[4628,5367],[4587,5344],[4524,5350],[4480,5339],[4496,5305],[4447,5302],[4405,5235],[4405,5206],[4437,5147],[4408,5105],[4356,5115],[4313,5108],[4254,5084],[4197,5105],[4191,5151],[4212,5181],[4188,5203],[4130,5312],[4111,5359],[4161,5347],[4165,5362],[4129,5403],[4144,5418],[4174,5416],[4181,5438],[4168,5474],[4145,5473],[4121,5525],[4083,5551],[4064,5590],[4026,5715],[4006,5684],[4001,5763],[3966,5793],[3981,5809],[3962,5828],[3980,5888],[3987,5944],[3981,5973],[3959,5962],[3976,5952],[3979,5916],[3933,5902],[3919,5925],[3950,5957]]],[[[4757,5481],[4785,5583],[4800,5590],[4822,5661],[4830,5718],[4846,5732],[4848,5696],[4827,5600],[4813,5567],[4797,5492],[4791,5423],[4768,5386],[4757,5481]]],[[[5116,5731],[5067,5690],[5059,5632],[5034,5623],[5050,5662],[5016,5724],[5025,5762],[5009,5800],[5056,5895],[5096,5935],[5106,5912],[5138,5935],[5155,5914],[5135,5882],[5113,5881],[5111,5844],[5121,5794],[5146,5784],[5107,5746],[5116,5731]]]]}},{"type":"Feature","id":"NL","properties":{"hc-group":"admin0","hc-middle-x":0.35,"hc-middle-y":0.58,"hc-key":"nl","hc-a2":"NL","name":"Netherlands","labelrank":"5","country-abbrev":"Neth.","subregion":"Western Europe","region-wb":"Europe & Central Asia","iso-a3":"NLD","iso-a2":"NL","woe-id":"-90","continent":"Europe"},"geometry":{"type":"MultiPolygon","coordinates":[[[[2569,4018],[2561,3995],[2509,4030],[2556,4031],[2569,4018]]],[[[2764,4429],[2744,4397],[2730,4415],[2758,4453],[2764,4429]]],[[[2774,4463],[2763,4463],[2784,4482],[2797,4488],[2774,4463]]],[[[2866,4512],[2826,4498],[2821,4508],[2895,4524],[2866,4512]]],[[[2955,4527],[2962,4523],[2912,4516],[2912,4528],[2955,4527]]],[[[2998,4523],[2992,4527],[3009,4534],[3029,4531],[2998,4523]]],[[[2436,3931],[2473,3940],[2531,3913],[2556,3931],[2600,3915],[2578,3887],[2540,3871],[2487,3900],[2440,3892],[2436,3931]]],[[[2607,3914],[2550,3944],[2526,3928],[2502,3949],[2473,3953],[2461,3983],[2482,3993],[2532,3994],[2584,3938],[2613,3938],[2607,3960],[2562,3985],[2599,4011],[2580,4022],[2563,4063],[2585,4060],[2575,4102],[2601,4107],[2676,4202],[2696,4251],[2716,4338],[2734,4388],[2763,4367],[2794,4380],[2851,4419],[2866,4456],[2894,4479],[2966,4506],[3031,4504],[3101,4515],[3126,4506],[3131,4481],[3182,4447],[3177,4363],[3157,4330],[3146,4268],[3097,4268],[3081,4219],[3132,4209],[3145,4183],[3139,4142],[3071,4086],[3096,4063],[3014,4026],[2967,4050],[2929,4025],[2930,4002],[2958,3974],[2974,3932],[2974,3896],[2945,3850],[2959,3825],[2914,3791],[2939,3752],[2924,3706],[2865,3712],[2854,3741],[2873,3757],[2899,3830],[2846,3852],[2834,3874],[2785,3868],[2759,3905],[2751,3935],[2730,3912],[2705,3945],[2678,3924],[2652,3943],[2631,3935],[2632,3907],[2607,3914]],[[2905,4210],[2912,4213],[2913,4216],[2913,4216],[2913,4216],[2928,4228],[2928,4262],[2894,4270],[2926,4255],[2913,4216],[2913,4216],[2913,4216],[2905,4210],[2905,4210],[2905,4210],[2905,4210],[2867,4195],[2844,4171],[2792,4208],[2893,4270],[2888,4320],[2909,4337],[2853,4347],[2850,4413],[2787,4374],[2798,4325],[2830,4303],[2798,4280],[2779,4281],[2786,4225],[2762,4206],[2848,4165],[2905,4210],[2905,4210],[2905,4210],[2905,4210]]]]}},{"type":"Feature","id":"ES","properties":{"hc-group":"admin0","hc-middle-x":0.40,"hc-middle-y":0.51,"hc-key":"es","hc-a2":"ES","name":"Spain","labelrank":"2","country-abbrev":"Sp.","subregion":"Southern Europe","region-wb":"Europe & Central Asia","iso-a3":"ESP","iso-a2":"ES","woe-id":"23424950","continent":"Europe"},"geometry":{"type":"MultiPolygon","coordinates":[[[[1620,153],[1630,135],[1603,122],[1606,143],[1620,153]]],[[[1667,258],[1675,234],[1620,197],[1615,180],[1572,207],[1613,256],[1667,258]]],[[[2004,233],[1991,227],[1988,238],[2005,247],[2004,233]]],[[[2299,491],[2334,461],[2337,415],[2272,452],[2229,459],[2229,493],[2299,491]]],[[[1873,1267],[1870,1274],[1876,1280],[1882,1266],[1873,1267]]],[[[-199,-431],[-191,-432],[-174,-447],[-189,-457],[-199,-431]]],[[[1759,1327],[1750,1295],[1771,1274],[1818,1292],[1865,1266],[1891,1237],[1944,1255],[1983,1224],[2093,1252],[2148,1235],[2150,1207],[2175,1199],[2161,1175],[2136,1183],[2126,1148],[2147,1092],[2124,1057],[2070,1022],[1917,961],[1856,909],[1733,896],[1601,867],[1529,806],[1562,775],[1554,760],[1494,748],[1423,656],[1346,588],[1271,500],[1232,444],[1228,383],[1239,306],[1278,235],[1306,225],[1329,186],[1266,160],[1244,136],[1180,122],[1134,90],[1130,49],[1103,44],[1083,-12],[1023,-86],[1054,-124],[952,-136],[921,-116],[805,-165],[763,-208],[729,-283],[661,-339],[608,-298],[554,-297],[527,-329],[502,-329],[463,-299],[390,-285],[341,-295],[297,-271],[186,-248],[91,-241],[60,-276],[6,-293],[-38,-279],[-114,-293],[-170,-368],[-174,-367],[-188,-351],[-202,-388],[-246,-394],[-310,-323],[-339,-315],[-361,-273],[-361,-186],[-396,-158],[-382,-107],[-399,-54],[-479,31],[-523,54],[-603,70],[-596,164],[-603,189],[-565,239],[-538,252],[-511,298],[-471,308],[-449,297],[-418,345],[-456,347],[-497,444],[-455,526],[-396,550],[-365,593],[-373,625],[-403,633],[-423,711],[-412,745],[-449,797],[-452,825],[-330,799],[-271,886],[-296,946],[-227,985],[-235,1014],[-211,1073],[-202,1132],[-213,1190],[-183,1195],[-129,1250],[-93,1250],[-45,1278],[-9,1317],[-20,1338],[-80,1387],[-65,1442],[-189,1491],[-221,1460],[-306,1471],[-323,1496],[-402,1490],[-432,1496],[-437,1521],[-395,1559],[-415,1600],[-512,1593],[-546,1576],[-577,1559],[-568,1624],[-492,1667],[-549,1668],[-490,1706],[-536,1715],[-500,1776],[-558,1757],[-566,1780],[-518,1828],[-563,1848],[-554,1879],[-588,1889],[-574,1928],[-532,1962],[-491,1960],[-493,1978],[-457,1986],[-429,1964],[-342,1976],[-320,1947],[-315,1967],[-338,1996],[-326,2023],[-218,2057],[-215,2040],[-168,2041],[-114,2005],[-93,1965],[-52,1950],[33,1938],[61,1921],[126,1921],[194,1903],[211,1923],[235,1888],[296,1872],[345,1839],[437,1797],[511,1772],[654,1771],[700,1776],[707,1748],[793,1712],[832,1727],[871,1724],[949,1668],[1000,1651],[1078,1668],[1084,1638],[1157,1611],[1131,1565],[1237,1510],[1285,1500],[1318,1448],[1378,1454],[1412,1434],[1434,1397],[1482,1403],[1504,1382],[1587,1376],[1596,1423],[1685,1392],[1698,1372],[1739,1366],[1759,1327]]],[[[1961,350],[1939,371],[1898,346],[1870,393],[1959,447],[2016,472],[2076,483],[2053,458],[2066,422],[2112,422],[2139,409],[2118,362],[2068,295],[2027,271],[2005,302],[1960,318],[1961,350]]]]}},{"type":"Feature","id":"LT","properties":{"hc-group":"admin0","hc-middle-x":0.60,"hc-middle-y":0.49,"hc-key":"lt","hc-a2":"LT","name":"Lithuania","labelrank":"5","country-abbrev":"Lith.","subregion":"Northern Europe","region-wb":"Europe & Central Asia","iso-a3":"LTU","iso-a2":"LT","woe-id":"23424875","continent":"Europe"},"geometry":{"type":"MultiPolygon","coordinates":[[[[5577,5193],[5566,5195],[5583,5263],[5573,5330],[5583,5311],[5590,5241],[5577,5193]]],[[[6076,4871],[6054,4937],[6030,4953],[5942,4987],[5928,4971],[5908,4998],[5901,5079],[5917,5099],[5907,5132],[5873,5146],[5859,5174],[5802,5168],[5778,5152],[5668,5184],[5627,5211],[5605,5273],[5570,5337],[5551,5434],[5573,5441],[5590,5486],[5707,5565],[5729,5560],[5777,5570],[5808,5562],[5839,5585],[5881,5563],[5907,5587],[5941,5580],[5977,5594],[6024,5591],[6048,5580],[6076,5596],[6104,5591],[6130,5627],[6167,5659],[6191,5618],[6218,5591],[6312,5598],[6324,5582],[6417,5531],[6441,5504],[6498,5494],[6496,5391],[6560,5386],[6534,5332],[6486,5329],[6469,5270],[6432,5255],[6416,5228],[6416,5168],[6428,5137],[6415,5119],[6407,5064],[6437,5063],[6458,5040],[6456,5013],[6422,5003],[6418,5031],[6400,5047],[6385,5029],[6359,5026],[6341,4983],[6303,4980],[6293,4961],[6302,4925],[6281,4928],[6235,4886],[6201,4899],[6152,4888],[6106,4864],[6076,4871]]]]}},{"type":"Feature","id":"IT","properties":{"hc-group":"admin0","hc-middle-x":0.44,"hc-middle-y":0.38,"hc-key":"it","hc-a2":"IT","name":"Italy","labelrank":"2","country-abbrev":"Italy","subregion":"Southern Europe","region-wb":"Europe & Central Asia","iso-a3":"ITA","iso-a2":"IT","woe-id":"23424853","continent":"Europe"},"geometry":{"type":"MultiPolygon","coordinates":[[[[4186,-560],[4204,-571],[4199,-587],[4175,-572],[4186,-560]]],[[[4908,-45],[4895,-38],[4897,-26],[4906,-35],[4908,-45]]],[[[4898,-20],[4881,-12],[4883,-2],[4895,1],[4898,-20]]],[[[4871,8],[4854,14],[4867,19],[4874,14],[4871,8]]],[[[3295,148],[3320,129],[3306,100],[3292,131],[3295,148]]],[[[3282,144],[3270,146],[3263,161],[3283,172],[3282,144]]],[[[4615,660],[4589,660],[4592,675],[4616,668],[4615,660]]],[[[3303,760],[3302,748],[3283,742],[3290,761],[3303,760]]],[[[3559,790],[3545,789],[3545,795],[3556,804],[3559,790]]],[[[3903,1132],[3899,1129],[3885,1143],[3890,1151],[3903,1132]]],[[[3787,1280],[3776,1251],[3714,1261],[3725,1280],[3787,1280]]],[[[3650,1338],[3641,1344],[3651,1358],[3657,1349],[3650,1338]]],[[[3060,2239],[3093,2224],[3131,2231],[3170,2252],[3231,2229],[3264,2254],[3291,2292],[3285,2331],[3363,2384],[3359,2328],[3395,2288],[3444,2270],[3429,2245],[3451,2234],[3456,2197],[3490,2214],[3475,2241],[3494,2286],[3536,2343],[3535,2396],[3572,2398],[3575,2361],[3597,2337],[3629,2352],[3682,2356],[3699,2315],[3723,2328],[3709,2348],[3718,2374],[3699,2379],[3708,2431],[3730,2438],[3779,2411],[3787,2432],[3767,2452],[3784,2511],[3827,2510],[3839,2490],[3897,2483],[3916,2526],[3962,2550],[4020,2555],[4052,2547],[4092,2568],[4146,2582],[4127,2556],[4160,2519],[4162,2495],[4191,2466],[4281,2445],[4330,2443],[4365,2431],[4416,2437],[4464,2426],[4397,2353],[4410,2335],[4455,2322],[4421,2268],[4456,2257],[4449,2209],[4492,2191],[4519,2159],[4480,2145],[4482,2179],[4443,2204],[4417,2182],[4374,2196],[4342,2175],[4346,2154],[4316,2148],[4204,2084],[4236,2116],[4224,2128],[4175,2093],[4163,2046],[4191,1983],[4236,1945],[4219,1899],[4185,1905],[4178,1877],[4187,1797],[4208,1725],[4233,1692],[4286,1646],[4339,1623],[4409,1566],[4492,1518],[4547,1397],[4577,1298],[4609,1239],[4726,1132],[4757,1121],[4770,1091],[4829,1073],[4860,1051],[4934,1049],[5066,1070],[5092,1065],[5107,1027],[5050,976],[5051,934],[5078,913],[5215,857],[5326,829],[5380,803],[5431,762],[5560,720],[5570,692],[5621,667],[5674,615],[5698,570],[5682,540],[5675,469],[5601,496],[5571,538],[5576,558],[5535,606],[5456,602],[5383,626],[5384,647],[5341,657],[5311,631],[5277,555],[5250,514],[5259,478],[5231,426],[5240,390],[5297,374],[5401,318],[5401,230],[5424,203],[5403,161],[5339,161],[5287,124],[5272,94],[5288,4],[5236,-41],[5198,-93],[5184,-155],[5104,-169],[5080,-158],[5067,-120],[5069,-73],[5102,-59],[5125,4],[5106,60],[5185,94],[5191,141],[5153,193],[5123,303],[5089,339],[5061,431],[5016,490],[4954,464],[4899,511],[4847,530],[4864,579],[4835,631],[4801,661],[4704,626],[4735,673],[4691,704],[4645,700],[4583,792],[4551,823],[4518,808],[4458,832],[4395,808],[4358,859],[4298,872],[4252,926],[4203,957],[4181,1008],[4127,1047],[4107,1046],[4066,1120],[4006,1155],[3938,1155],[3958,1191],[3913,1249],[3854,1277],[3864,1304],[3843,1321],[3806,1313],[3797,1333],[3812,1381],[3787,1454],[3762,1481],[3748,1583],[3713,1646],[3656,1674],[3650,1660],[3577,1715],[3522,1749],[3434,1773],[3412,1772],[3355,1737],[3341,1703],[3302,1677],[3287,1632],[3240,1602],[3181,1585],[3139,1587],[3134,1609],[3183,1674],[3176,1702],[3115,1688],[3041,1728],[3006,1769],[3018,1788],[3004,1822],[3035,1865],[3051,1862],[3027,1917],[2984,1939],[2984,1965],[2959,1993],[2989,2008],[3011,1999],[3070,2036],[3083,2081],[3046,2113],[3043,2153],[3009,2178],[3011,2211],[3060,2239]],[[4232,1618],[4235,1645],[4222,1639],[4215,1626],[4232,1618]]],[[[4448,-127],[4501,-115],[4520,-151],[4620,-186],[4675,-159],[4738,-166],[4825,-140],[4848,-115],[4889,-103],[4935,-118],[4970,-81],[4983,-90],[5035,-58],[5053,-75],[5037,-124],[4972,-234],[4966,-291],[4951,-315],[4958,-368],[4995,-385],[4979,-402],[5020,-460],[4982,-484],[4966,-530],[4964,-574],[4914,-555],[4889,-567],[4814,-542],[4788,-497],[4757,-468],[4708,-447],[4660,-455],[4547,-399],[4476,-344],[4439,-344],[4397,-320],[4347,-325],[4304,-290],[4287,-251],[4304,-188],[4365,-133],[4401,-179],[4432,-167],[4448,-127]]],[[[3333,332],[3344,382],[3310,391],[3313,427],[3333,452],[3328,517],[3294,598],[3259,595],[3268,634],[3254,646],[3278,701],[3296,682],[3345,674],[3402,699],[3459,762],[3512,805],[3560,765],[3589,760],[3576,729],[3590,695],[3625,676],[3610,662],[3649,576],[3631,532],[3602,497],[3626,442],[3606,305],[3605,257],[3583,151],[3556,146],[3520,177],[3459,164],[3452,106],[3413,72],[3380,89],[3351,79],[3343,128],[3315,148],[3299,183],[3300,229],[3323,289],[3320,347],[3333,332]]]]}},{"type":"Feature","id":"MT","properties":{"hc-group":"admin0","hc-middle-x":0.66,"hc-middle-y":0.64,"hc-key":"mt","hc-a2":"MT","name":"Malta","labelrank":"5","country-abbrev":"Malta","subregion":"Southern Europe","region-wb":"Middle East & North Africa","iso-a3":"MLT","iso-a2":"MT","woe-id":"23424897","continent":"Europe"},"geometry":{"type":"MultiPolygon","coordinates":[[[[4853,-837],[4843,-851],[4795,-829],[4788,-801],[4836,-812],[4853,-837]]],[[[4776,-788],[4752,-783],[4769,-770],[4790,-781],[4776,-788]]]]}},{"type":"Feature","id":"NC","properties":{"hc-group":"admin0","hc-middle-x":0.59,"hc-middle-y":0.61,"hc-key":"nc","hc-a2":"NC","name":"Northern Cyprus","labelrank":"6","country-abbrev":"N. Cy.","subregion":"Western Asia","region-wb":"Europe & Central Asia","iso-a3":"-99","iso-a2":"NC","woe-id":"-90","continent":"Asia"},"geometry":{"type":"MultiPolygon","coordinates":[[[[9419,-174],[9423,-171],[9428,-169],[9424,-178],[9419,-174]]],[[[9749,-100],[9719,-123],[9697,-129],[9641,-128],[9612,-104],[9562,-123],[9487,-185],[9446,-165],[9486,-160],[9494,-132],[9476,-83],[9606,-63],[9660,-34],[9739,30],[9766,67],[9851,143],[9851,127],[9770,22],[9760,-11],[9732,-36],[9738,-72],[9775,-93],[9763,-95],[9749,-100],[9749,-100],[9749,-100]]]]}},{"type":"Feature","id":"PL","properties":{"hc-group":"admin0","hc-middle-x":0.55,"hc-middle-y":0.50,"hc-key":"pl","hc-a2":"PL","name":"Poland","labelrank":"3","country-abbrev":"Pol.","subregion":"Eastern Europe","region-wb":"Europe & Central Asia","iso-a3":"POL","iso-a2":"PL","woe-id":"23424923","continent":"Europe"},"geometry":{"type":"Polygon","coordinates":[[[4453,4597],[4457,4612],[4498,4589],[4515,4646],[4438,4650],[4433,4658],[4439,4668],[4467,4663],[4538,4703],[4626,4741],[4772,4798],[4805,4822],[4802,4835],[4841,4885],[4904,4906],[4919,4926],[4969,4956],[5061,4989],[5136,5001],[5160,4990],[5156,4971],[5190,4920],[5197,4886],[5222,4873],[5273,4868],[5337,4886],[5313,4871],[5343,4856],[5396,4898],[5401,4912],[5917,4965],[5928,4971],[5942,4987],[6030,4953],[6054,4937],[6076,4871],[6113,4777],[6167,4683],[6193,4651],[6222,4531],[6217,4508],[6140,4444],[6111,4371],[6123,4355],[6169,4350],[6208,4326],[6221,4301],[6213,4226],[6218,4182],[6258,4127],[6250,4106],[6307,4054],[6321,4017],[6372,3976],[6342,3966],[6370,3937],[6385,3887],[6369,3842],[6326,3828],[6227,3677],[6161,3534],[6186,3488],[6193,3429],[6226,3409],[6231,3382],[6166,3394],[6099,3404],[6055,3418],[6048,3437],[6010,3461],[5999,3451],[5965,3469],[5932,3458],[5897,3465],[5856,3443],[5843,3410],[5788,3433],[5715,3418],[5684,3389],[5673,3347],[5643,3358],[5613,3349],[5621,3371],[5609,3405],[5581,3404],[5537,3459],[5503,3429],[5492,3393],[5452,3384],[5442,3417],[5422,3417],[5404,3465],[5377,3469],[5354,3529],[5340,3524],[5250,3548],[5213,3533],[5188,3567],[5158,3585],[5186,3600],[5172,3632],[5159,3614],[5106,3612],[5072,3642],[5011,3649],[5035,3593],[4989,3547],[4911,3624],[4882,3637],[4916,3668],[4903,3706],[4856,3703],[4837,3688],[4827,3713],[4729,3739],[4712,3733],[4693,3782],[4633,3790],[4640,3750],[4608,3748],[4631,3812],[4640,3864],[4621,3927],[4580,3945],[4574,3993],[4547,4030],[4574,4114],[4559,4126],[4558,4166],[4541,4172],[4526,4215],[4543,4263],[4491,4308],[4442,4339],[4444,4373],[4479,4401],[4487,4470],[4463,4539],[4453,4597]]]}},{"type":"Feature","id":"SK","properties":{"hc-group":"admin0","hc-middle-x":0.41,"hc-middle-y":0.46,"hc-key":"sk","hc-a2":"SK","name":"Slovakia","labelrank":"6","country-abbrev":"Svk.","subregion":"Eastern Europe","region-wb":"Europe & Central Asia","iso-a3":"SVK","iso-a2":"SK","woe-id":"23424877","continent":"Europe"},"geometry":{"type":"Polygon","coordinates":[[[6166,3394],[6143,3320],[6142,3276],[6115,3236],[6120,3182],[6043,3149],[5972,3205],[5913,3174],[5844,3188],[5786,3166],[5766,3088],[5729,3072],[5684,3030],[5628,3052],[5605,3038],[5604,3014],[5554,2992],[5478,2976],[5461,2953],[5481,2913],[5458,2894],[5429,2895],[5366,2876],[5283,2865],[5229,2883],[5176,2929],[5138,2928],[5100,2971],[5090,3005],[5066,3030],[5079,3104],[5091,3148],[5116,3185],[5190,3178],[5251,3218],[5259,3246],[5290,3260],[5304,3332],[5330,3345],[5365,3401],[5422,3417],[5442,3417],[5452,3384],[5492,3393],[5503,3429],[5537,3459],[5581,3404],[5609,3405],[5621,3371],[5613,3349],[5643,3358],[5673,3347],[5684,3389],[5715,3418],[5788,3433],[5843,3410],[5856,3443],[5897,3465],[5932,3458],[5965,3469],[5999,3451],[6010,3461],[6048,3437],[6055,3418],[6099,3404],[6166,3394]]]}},{"type":"Feature","id":"HU","properties":{"hc-group":"admin0","hc-middle-x":0.52,"hc-middle-y":0.50,"hc-key":"hu","hc-a2":"HU","name":"Hungary","labelrank":"5","country-abbrev":"Hun.","subregion":"Eastern Europe","region-wb":"Europe & Central Asia","iso-a3":"HUN","iso-a2":"HU","woe-id":"23424844","continent":"Europe"},"geometry":{"type":"Polygon","coordinates":[[[6120,3182],[6148,3186],[6173,3141],[6197,3145],[6229,3108],[6257,3117],[6292,3072],[6272,3031],[6239,3004],[6216,3009],[6181,2981],[6165,2936],[6137,2905],[6145,2876],[6121,2842],[6112,2785],[6088,2753],[6076,2659],[6043,2621],[6021,2514],[6002,2496],[5960,2502],[5918,2452],[5887,2461],[5843,2435],[5775,2442],[5747,2428],[5696,2431],[5643,2369],[5600,2373],[5569,2344],[5522,2332],[5473,2275],[5429,2283],[5357,2271],[5310,2288],[5293,2314],[5241,2314],[5205,2361],[5156,2383],[5128,2426],[5051,2462],[5017,2502],[5025,2510],[4991,2567],[4954,2563],[4988,2609],[5032,2611],[5009,2717],[5051,2751],[5059,2773],[5044,2802],[4998,2810],[5036,2840],[5076,2821],[5132,2837],[5113,2882],[5138,2928],[5176,2929],[5229,2883],[5283,2865],[5366,2876],[5429,2895],[5458,2894],[5481,2913],[5461,2953],[5478,2976],[5554,2992],[5604,3014],[5605,3038],[5628,3052],[5684,3030],[5729,3072],[5766,3088],[5786,3166],[5844,3188],[5913,3174],[5972,3205],[6043,3149],[6120,3182]]]}},{"type":"Feature","id":"LU","properties":{"hc-group":"admin0","hc-middle-x":0.46,"hc-middle-y":0.05,"hc-key":"lu","hc-a2":"LU","name":"Luxembourg","labelrank":"6","country-abbrev":"Lux.","subregion":"Western Europe","region-wb":"Europe & Central Asia","iso-a3":"LUX","iso-a2":"LU","woe-id":"23424881","continent":"Europe"},"geometry":{"type":"Polygon","coordinates":[[[2971,3312],[2930,3326],[2895,3312],[2863,3343],[2884,3373],[2857,3419],[2854,3447],[2889,3510],[2915,3532],[2937,3515],[2931,3493],[2953,3443],[3006,3413],[3003,3384],[2973,3345],[2971,3312]]]}},{"type":"Feature","id":"SI","properties":{"hc-group":"admin0","hc-middle-x":0.39,"hc-middle-y":0.61,"hc-key":"si","hc-a2":"SI","name":"Slovenia","labelrank":"6","country-abbrev":"Slo.","subregion":"Southern Europe","region-wb":"Europe & Central Asia","iso-a3":"SVN","iso-a2":"SI","woe-id":"23424945","continent":"Europe"},"geometry":{"type":"Polygon","coordinates":[[[4456,2112],[4455,2126],[4480,2145],[4519,2159],[4492,2191],[4449,2209],[4456,2257],[4421,2268],[4455,2322],[4410,2335],[4397,2353],[4464,2426],[4537,2419],[4559,2407],[4612,2410],[4642,2393],[4691,2435],[4702,2465],[4745,2482],[4813,2486],[4829,2478],[4863,2512],[4942,2511],[4933,2552],[4954,2563],[4991,2567],[5025,2510],[5017,2502],[5051,2462],[5014,2473],[4993,2454],[5006,2420],[4959,2416],[4957,2395],[4880,2360],[4867,2328],[4892,2307],[4890,2245],[4845,2236],[4805,2200],[4833,2182],[4811,2168],[4834,2134],[4787,2115],[4736,2137],[4732,2123],[4685,2139],[4659,2175],[4643,2134],[4623,2118],[4563,2113],[4537,2124],[4521,2096],[4456,2112]]]}},{"type":"Feature","id":"BE","properties":{"hc-group":"admin0","hc-middle-x":0.53,"hc-middle-y":0.37,"hc-key":"be","hc-a2":"BE","name":"Belgium","labelrank":"2","country-abbrev":"Belg.","subregion":"Western Europe","region-wb":"Europe & Central Asia","iso-a3":"BEL","iso-a2":"BE","woe-id":"23424757","continent":"Europe"},"geometry":{"type":"Polygon","coordinates":[[[2937,3515],[2915,3532],[2889,3510],[2854,3447],[2857,3419],[2884,3373],[2863,3343],[2835,3346],[2801,3334],[2788,3367],[2768,3371],[2704,3431],[2686,3430],[2676,3487],[2696,3536],[2658,3522],[2651,3493],[2607,3480],[2550,3497],[2566,3521],[2551,3543],[2569,3579],[2537,3608],[2467,3608],[2467,3647],[2434,3672],[2397,3678],[2380,3752],[2311,3746],[2277,3785],[2284,3820],[2272,3860],[2393,3921],[2436,3931],[2440,3892],[2487,3900],[2540,3871],[2578,3887],[2600,3915],[2616,3886],[2607,3914],[2632,3907],[2631,3935],[2652,3943],[2678,3924],[2705,3945],[2730,3912],[2751,3935],[2759,3905],[2785,3868],[2834,3874],[2846,3852],[2899,3830],[2873,3757],[2854,3741],[2865,3712],[2924,3706],[2957,3663],[2958,3625],[2985,3621],[2990,3571],[2944,3543],[2937,3515]]]}},{"type":"Feature","id":"CNM","properties":{"hc-group":"admin0","hc-middle-x":0.55,"hc-middle-y":0.16,"hc-key":"cnm","hc-a2":"CN","name":"Cyprus No Mans Area","labelrank":"9","country-abbrev":null,"subregion":"Western Asia","region-wb":"Europe & Central Asia","iso-a3":"-99","iso-a2":null,"woe-id":"-99","continent":"Asia"},"geometry":{"type":"MultiPolygon","coordinates":[[[[9775,-93],[9778,-94],[9757,-103],[9748,-103],[9749,-100],[9749,-100],[9763,-95],[9775,-93]]],[[[9415,-177],[9419,-174],[9424,-178],[9428,-169],[9430,-168],[9432,-167],[9427,-181],[9415,-177]]],[[[9441,-166],[9446,-165],[9487,-185],[9562,-123],[9612,-104],[9641,-128],[9697,-129],[9704,-131],[9708,-141],[9657,-140],[9643,-159],[9620,-114],[9598,-136],[9561,-133],[9483,-192],[9441,-166]]]]}},{"type":"Feature","id":"BG","properties":{"hc-group":"admin0","hc-middle-x":0.52,"hc-middle-y":0.58,"hc-key":"bg","hc-a2":"BG","name":"Bulgaria","labelrank":"4","country-abbrev":"Bulg.","subregion":"Eastern Europe","region-wb":"Europe & Central Asia","iso-a3":"BGR","iso-a2":"BG","woe-id":"23424771","continent":"Europe"},"geometry":{"type":"Polygon","coordinates":[[[7749,2089],[7770,2031],[7755,1973],[7718,1982],[7684,1967],[7657,1881],[7656,1834],[7679,1746],[7646,1740],[7628,1708],[7638,1688],[7608,1679],[7602,1649],[7641,1657],[7683,1630],[7681,1610],[7748,1562],[7763,1535],[7715,1529],[7715,1513],[7674,1506],[7664,1487],[7589,1529],[7535,1510],[7522,1482],[7440,1441],[7442,1409],[7409,1399],[7407,1366],[7382,1371],[7345,1344],[7382,1299],[7384,1249],[7333,1221],[7258,1208],[7203,1172],[7102,1201],[7080,1180],[7035,1196],[7007,1232],[6960,1208],[6949,1220],[6905,1200],[6909,1179],[6874,1175],[6816,1134],[6740,1128],[6706,1095],[6660,1094],[6650,1170],[6660,1213],[6622,1254],[6606,1296],[6530,1318],[6478,1366],[6510,1400],[6508,1431],[6483,1447],[6486,1500],[6470,1518],[6485,1540],[6533,1553],[6539,1583],[6568,1621],[6572,1657],[6526,1689],[6456,1722],[6437,1769],[6401,1815],[6402,1873],[6442,1907],[6453,1955],[6534,1927],[6508,1892],[6505,1861],[6524,1845],[6609,1877],[6797,1872],[6868,1901],[6916,1894],[6971,1907],[7037,1907],[7063,1897],[7104,1911],[7149,1940],[7173,1989],[7210,2041],[7241,2061],[7339,2104],[7385,2134],[7437,2130],[7473,2105],[7530,2122],[7550,2103],[7587,2127],[7613,2088],[7671,2075],[7749,2089]]]}},{"type":"Feature","id":"RO","properties":{"hc-group":"admin0","hc-middle-x":0.45,"hc-middle-y":0.54,"hc-key":"ro","hc-a2":"RO","name":"Romania","labelrank":"3","country-abbrev":"Rom.","subregion":"Eastern Europe","region-wb":"Europe & Central Asia","iso-a3":"ROU","iso-a2":"RO","woe-id":"23424933","continent":"Europe"},"geometry":{"type":"Polygon","coordinates":[[[6453,1955],[6447,1977],[6404,2000],[6394,2028],[6450,2064],[6369,2096],[6349,2077],[6329,2021],[6312,2017],[6283,2056],[6249,2065],[6207,2054],[6182,2079],[6150,2075],[6137,2098],[6165,2123],[6128,2135],[6150,2186],[6033,2225],[5979,2266],[5972,2345],[5958,2337],[5921,2379],[5868,2403],[5843,2435],[5887,2461],[5918,2452],[5960,2502],[6002,2496],[6021,2514],[6043,2621],[6076,2659],[6088,2753],[6112,2785],[6121,2842],[6145,2876],[6137,2905],[6165,2936],[6181,2981],[6216,3009],[6239,3004],[6272,3031],[6292,3072],[6319,3088],[6332,3123],[6386,3103],[6470,3117],[6565,3108],[6601,3133],[6628,3135],[6709,3080],[6751,3108],[6770,3151],[6865,3183],[6945,3220],[6956,3290],[7023,3325],[7051,3327],[7096,3309],[7143,3260],[7192,3177],[7258,3131],[7266,3104],[7303,3085],[7330,3048],[7383,3027],[7452,2929],[7473,2861],[7472,2727],[7517,2623],[7498,2606],[7558,2567],[7574,2541],[7631,2532],[7674,2538],[7670,2565],[7706,2575],[7770,2631],[7845,2621],[7864,2569],[7878,2478],[7870,2462],[7777,2423],[7754,2470],[7732,2485],[7719,2443],[7746,2411],[7718,2385],[7748,2385],[7717,2341],[7726,2318],[7753,2356],[7716,2266],[7728,2214],[7748,2172],[7749,2089],[7671,2075],[7613,2088],[7587,2127],[7550,2103],[7530,2122],[7473,2105],[7437,2130],[7385,2134],[7339,2104],[7241,2061],[7210,2041],[7173,1989],[7149,1940],[7104,1911],[7063,1897],[7037,1907],[6971,1907],[6916,1894],[6868,1901],[6797,1872],[6609,1877],[6524,1845],[6505,1861],[6508,1892],[6534,1927],[6453,1955]]]}},{"type":"Feature","id":"LV","properties":{"hc-group":"admin0","hc-middle-x":0.68,"hc-middle-y":0.47,"hc-key":"lv","hc-a2":"LV","name":"Latvia","labelrank":"5","country-abbrev":"Lat.","subregion":"Northern Europe","region-wb":"Europe & Central Asia","iso-a3":"LVA","iso-a2":"LV","woe-id":"23424874","continent":"Europe"},"geometry":{"type":"Polygon","coordinates":[[[5551,5434],[5529,5486],[5519,5575],[5523,5618],[5517,5665],[5540,5688],[5563,5731],[5554,5807],[5586,5894],[5632,5915],[5718,5979],[5738,5929],[5809,5883],[5826,5879],[5859,5806],[5877,5792],[5940,5776],[5979,5798],[6014,5839],[6035,5876],[6032,5911],[6004,6010],[5985,6063],[6016,6093],[6078,6125],[6097,6148],[6119,6129],[6123,6156],[6187,6119],[6206,6127],[6220,6109],[6254,6114],[6263,6093],[6311,6057],[6355,6034],[6396,6060],[6407,6081],[6442,6067],[6490,6070],[6517,6077],[6522,6048],[6584,6020],[6592,5981],[6575,5964],[6588,5943],[6583,5880],[6607,5895],[6633,5881],[6629,5860],[6652,5849],[6661,5825],[6688,5811],[6720,5740],[6722,5703],[6684,5674],[6654,5611],[6655,5571],[6612,5572],[6601,5555],[6551,5556],[6533,5514],[6498,5494],[6441,5504],[6417,5531],[6324,5582],[6312,5598],[6218,5591],[6191,5618],[6167,5659],[6130,5627],[6104,5591],[6076,5596],[6048,5580],[6024,5591],[5977,5594],[5941,5580],[5907,5587],[5881,5563],[5839,5585],[5808,5562],[5777,5570],[5729,5560],[5707,5565],[5590,5486],[5573,5441],[5551,5434]]]}},{"type":"Feature","id":"AT","properties":{"hc-group":"admin0","hc-middle-x":0.68,"hc-middle-y":0.50,"hc-key":"at","hc-a2":"AT","name":"Austria","labelrank":"4","country-abbrev":"Aust.","subregion":"Western Europe","region-wb":"Europe & Central Asia","iso-a3":"AUT","iso-a2":"AT","woe-id":"23424750","continent":"Europe"},"geometry":{"type":"Polygon","coordinates":[[[3784,2511],[3766,2550],[3713,2505],[3661,2533],[3660,2556],[3603,2569],[3610,2584],[3591,2631],[3618,2675],[3598,2706],[3632,2717],[3679,2710],[3704,2684],[3705,2662],[3729,2666],[3723,2633],[3753,2643],[3783,2684],[3775,2725],[3852,2708],[3891,2671],[3948,2675],[3979,2707],[4008,2710],[4021,2733],[4062,2730],[4086,2741],[4133,2741],[4134,2772],[4185,2769],[4200,2750],[4254,2764],[4259,2730],[4293,2706],[4312,2714],[4318,2753],[4306,2780],[4280,2782],[4299,2820],[4249,2884],[4245,2901],[4302,2946],[4350,2962],[4375,2984],[4395,3048],[4436,3031],[4451,3059],[4451,3106],[4486,3089],[4506,3056],[4555,3049],[4582,3076],[4630,3063],[4648,3121],[4672,3118],[4679,3193],[4735,3189],[4821,3158],[4848,3164],[4893,3134],[4959,3130],[4973,3151],[5062,3137],[5079,3104],[5066,3030],[5090,3005],[5100,2971],[5138,2928],[5113,2882],[5132,2837],[5076,2821],[5036,2840],[4998,2810],[5044,2802],[5059,2773],[5051,2751],[5009,2717],[5032,2611],[4988,2609],[4954,2563],[4933,2552],[4942,2511],[4863,2512],[4829,2478],[4813,2486],[4745,2482],[4702,2465],[4691,2435],[4642,2393],[4612,2410],[4559,2407],[4537,2419],[4464,2426],[4416,2437],[4365,2431],[4330,2443],[4281,2445],[4191,2466],[4162,2495],[4160,2519],[4127,2556],[4146,2582],[4092,2568],[4052,2547],[4020,2555],[3962,2550],[3916,2526],[3897,2483],[3839,2490],[3827,2510],[3784,2511]]]}},{"type":"Feature","id":"CZ","properties":{"hc-group":"admin0","hc-middle-x":0.43,"hc-middle-y":0.48,"hc-key":"cz","hc-a2":"CZ","name":"Czech Republic","labelrank":"5","country-abbrev":"Cz. Rep.","subregion":"Eastern Europe","region-wb":"Europe & Central Asia","iso-a3":"CZE","iso-a2":"CZ","woe-id":"23424810","continent":"Europe"},"geometry":{"type":"Polygon","coordinates":[[[4451,3106],[4407,3158],[4382,3154],[4344,3199],[4320,3206],[4282,3258],[4242,3266],[4210,3295],[4205,3319],[4156,3388],[4182,3438],[4170,3457],[4126,3478],[4091,3559],[4122,3543],[4132,3514],[4142,3543],[4174,3584],[4234,3602],[4252,3592],[4269,3619],[4298,3621],[4310,3648],[4352,3654],[4379,3690],[4424,3696],[4434,3714],[4519,3749],[4496,3778],[4505,3795],[4544,3792],[4573,3761],[4570,3741],[4608,3748],[4640,3750],[4633,3790],[4693,3782],[4712,3733],[4729,3739],[4827,3713],[4837,3688],[4856,3703],[4903,3706],[4916,3668],[4882,3637],[4911,3624],[4989,3547],[5035,3593],[5011,3649],[5072,3642],[5106,3612],[5159,3614],[5172,3632],[5186,3600],[5158,3585],[5188,3567],[5213,3533],[5250,3548],[5340,3524],[5354,3529],[5377,3469],[5404,3465],[5422,3417],[5365,3401],[5330,3345],[5304,3332],[5290,3260],[5259,3246],[5251,3218],[5190,3178],[5116,3185],[5091,3148],[5079,3104],[5062,3137],[4973,3151],[4959,3130],[4893,3134],[4848,3164],[4821,3158],[4735,3189],[4679,3193],[4672,3118],[4648,3121],[4630,3063],[4582,3076],[4555,3049],[4506,3056],[4486,3089],[4451,3106]]]}},{"type":"Feature","id":"PT","properties":{"hc-group":"admin0","hc-middle-x":0.48,"hc-middle-y":0.35,"hc-key":"pt","hc-a2":"PT","name":"Portugal","labelrank":"2","country-abbrev":"Port.","subregion":"Southern Europe","region-wb":"Europe & Central Asia","iso-a3":"PRT","iso-a2":"PT","woe-id":"23424925","continent":"Europe"},"geometry":{"type":"Polygon","coordinates":[[[-603,70],[-629,69],[-706,41],[-749,45],[-796,85],[-859,99],[-902,123],[-919,115],[-999,117],[-954,173],[-913,245],[-883,377],[-899,390],[-852,452],[-843,505],[-868,551],[-806,510],[-831,541],[-869,559],[-934,547],[-919,587],[-925,626],[-876,621],[-843,641],[-849,684],[-879,661],[-889,631],[-941,632],[-978,654],[-943,716],[-938,746],[-896,811],[-901,847],[-861,850],[-813,888],[-801,917],[-718,1036],[-706,1081],[-651,1182],[-622,1192],[-628,1220],[-601,1281],[-593,1323],[-599,1362],[-591,1429],[-593,1515],[-580,1550],[-546,1576],[-512,1593],[-415,1600],[-395,1559],[-437,1521],[-432,1496],[-402,1490],[-323,1496],[-306,1471],[-221,1460],[-189,1491],[-65,1442],[-80,1387],[-20,1338],[-9,1317],[-45,1278],[-93,1250],[-129,1250],[-183,1195],[-213,1190],[-202,1132],[-211,1073],[-235,1014],[-227,985],[-296,946],[-271,886],[-330,799],[-452,825],[-449,797],[-412,745],[-423,711],[-403,633],[-373,625],[-365,593],[-396,550],[-455,526],[-497,444],[-456,347],[-418,345],[-449,297],[-471,308],[-511,298],[-538,252],[-565,239],[-603,189],[-596,164],[-603,70]]]}}]}
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/uikit_beforeready.js
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/uikit_beforeready.js	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/uikit_beforeready.js	(revision 60863)
@@ -0,0 +1,101 @@
+// http://getuikit.com/docs/documentation_javascript.html#js-override
+
+if (typeof UIkit !== 'undefined') {
+    UIkit.on('beforeready.uk.dom', function () {
+
+        // accrodion
+        if (typeof UIkit.components.accordion !== "undefined") { // check if accordion component is defined
+            $.extend(UIkit.components.accordion.prototype.defaults, {
+                easing: $.bez(easing_swiftOut),
+                duration: 200
+            });
+        }
+
+        // dropdown
+        if (typeof UIkit.components.dropdown.prototype !== "undefined") { // check if dropdown component is defined
+
+            $.extend(UIkit.components.dropdown.prototype.defaults, {
+                remaintime: 150,
+                delay: 50
+            });
+
+            (function() {
+                var old_show_function = UIkit.components.dropdown.prototype.show;
+
+                UIkit.components.dropdown.prototype.show = function() {
+
+                    this.dropdown
+                        .css({
+                            'min-width': this.dropdown.outerWidth()
+                        })
+                        .addClass('uk-dropdown-active uk-dropdown-shown');
+
+                    return old_show_function.apply(this, arguments);
+                }
+            })();
+
+            (function() {
+                var old_hide_function = UIkit.components.dropdown.prototype.hide;
+
+                UIkit.components.dropdown.prototype.hide = function() {
+
+                    var this_dropdown = this.dropdown;
+
+                    this_dropdown.removeClass('uk-dropdown-shown');
+
+                    var dropdown_timeout = setTimeout(function() {
+                        this_dropdown.removeClass('uk-dropdown-active')
+                    },280);
+
+                    return old_hide_function.apply(this, arguments);
+                }
+            })();
+
+        }
+
+        // modal
+        if (typeof UIkit.components.modal !== "undefined") { // check if modal component is defined
+            $.extend(UIkit.components.modal.prototype.defaults, {
+                center: true
+            });
+
+            UIkit.modal.dialog.template = '<div class="uk-modal uk-modal-dialog-replace"><div class="uk-modal-dialog" style="min-height:0;"></div></div>';
+            $body
+                .on('show.uk.modal', '.uk-modal-dialog-replace', function () {
+                    // customize uikit dialog
+                    setTimeout(function () {
+                        var dialogReplace = $('.uk-modal-dialog-replace');
+                        if (dialogReplace.find('.uk-button-primary').length) {
+                            var actionBtn = dialogReplace.find('.uk-button-primary').toggleClass('uk-button-primary md-btn-flat-primary');
+                            if (actionBtn.next('button')) {
+                                actionBtn.next('button').after(actionBtn);
+                            }
+                        }
+                        if (dialogReplace.find('.uk-button').length) {
+                            dialogReplace.find('.uk-button').toggleClass('uk-button md-btn md-btn-flat');
+                        }
+                        if (dialogReplace.find('.uk-margin-small-top').length) {
+                            dialogReplace.find('.uk-margin-small-top').toggleClass('uk-margin-small-top uk-margin-top');
+                        }
+                        if (dialogReplace.find('input.uk-width-1-1').length) {
+                            dialogReplace.find('input.uk-width-1-1').toggleClass('uk-width-1-1 md-input');
+                            // reinitialize md inputs
+                            altair_md.inputs();
+                        }
+                        if (dialogReplace.find('.uk-form').length) {
+                            dialogReplace.find('.uk-form').removeClass('uk-form');
+                        }
+                    }, 50)
+                });
+        }
+
+        // tooltip
+        if (typeof UIkit.components.tooltip !== "undefined") { // check if tooltip component is defined
+            $.extend(UIkit.components.tooltip.prototype.defaults, {
+                animation: 280,
+                offset: 8
+            });
+        }
+
+    });
+}
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/uikit_beforeready.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/jquery.nav.js
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/jquery.nav.js	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/jquery.nav.js	(revision 60863)
@@ -0,0 +1,258 @@
+/*
+ * jQuery One Page Nav Plugin
+ * http://github.com/davist11/jQuery-One-Page-Nav
+ *
+ * Copyright (c) 2010 Trevor Davis (http://trevordavis.net)
+ * Dual licensed under the MIT and GPL licenses.
+ * Uses the same license as jQuery, see:
+ * http://jquery.org/license
+ *
+ * @version 3.0.0
+ *
+ * Example usage:
+ * $('#nav').onePageNav({
+ *   currentClass: 'current',
+ *   changeHash: false,
+ *   scrollSpeed: 750
+ * });
+ */
+
+;(function($, window, document, undefined){
+
+    // our plugin constructor
+    var OnePageNav = function(elem, options){
+        this.elem = elem;
+        this.$elem = $(elem);
+        this.options = options;
+        this.metadata = this.$elem.data('plugin-options');
+        this.$win = $(window);
+        this.sections = {};
+        this.didScroll = false;
+        this.$doc = $(document);
+        this.docHeight = this.$doc.height();
+    };
+
+    // the plugin prototype
+    OnePageNav.prototype = {
+        defaults: {
+            navItems: 'a',
+            currentClass: 'current',
+            changeHash: false,
+            easing: 'swing',
+            filter: '',
+            scrollOffset: 0,
+            scrollSpeed: 750,
+            scrollThreshold: 0.5,
+            begin: false,
+            end: false,
+            scrollChange: false
+        },
+
+        init: function() {
+            // Introduce defaults that can be extended either
+            // globally or using an object literal.
+            this.config = $.extend({}, this.defaults, this.options, this.metadata);
+
+            this.$nav = this.$elem.find(this.config.navItems);
+
+            //Filter any links out of the nav
+            if(this.config.filter !== '') {
+                this.$nav = this.$nav.filter(this.config.filter);
+            }
+
+            //Handle clicks on the nav
+            this.$nav.on('click.onePageNav', $.proxy(this.handleClick, this));
+
+            //Get the section positions
+            this.getPositions();
+
+            //Handle scroll changes
+            this.bindInterval();
+
+            //Update the positions on resize too
+            this.$win.on('resize.onePageNav', $.proxy(this.getPositions, this));
+
+            return this;
+        },
+
+        adjustNav: function(self, $parent) {
+            self.$elem.find('.' + self.config.currentClass).removeClass(self.config.currentClass);
+            $parent.addClass(self.config.currentClass);
+        },
+
+        bindInterval: function() {
+            var self = this;
+            var docHeight;
+
+            self.$win.on('scroll.onePageNav', function() {
+                self.didScroll = true;
+            });
+
+            self.t = setInterval(function() {
+                docHeight = self.$doc.height();
+
+                //If it was scrolled
+                if(self.didScroll) {
+                    self.didScroll = false;
+                    self.scrollChange();
+                }
+
+                //If the document height changes
+                if(docHeight !== self.docHeight) {
+                    self.docHeight = docHeight;
+                    self.getPositions();
+                }
+            }, 250);
+        },
+
+        getHash: function($link) {
+            return $link.attr('href').split('#')[1];
+        },
+
+        getPositions: function() {
+            var self = this;
+            var linkHref;
+            var topPos;
+            var $target;
+
+            self.$nav.each(function() {
+                linkHref = self.getHash($(this));
+                $target = $('#' + linkHref);
+
+                if($target.length) {
+                    topPos = $target.offset().top;
+                    self.sections[linkHref] = Math.round(topPos);
+                }
+            });
+        },
+
+        getSection: function(windowPos) {
+            var returnValue = null;
+            var windowHeight = Math.round(this.$win.height() * this.config.scrollThreshold);
+
+            // Sort Sections by Position
+            this.sections = this.sortSectionsByPosition(this.sections);
+
+            for(var section in this.sections) {
+                if((this.sections[section] - windowHeight) < windowPos) {
+                    returnValue = section;
+                }
+            }
+
+            return returnValue;
+        },
+
+        /**
+         * Sort Sections by its position value
+         * based on http://am.aurlien.net/post/1221493460/sorting-javascript-objects
+         * @param  {Object} obj		Object to sort
+         * @return {Object}         sorted Object
+         */
+        sortSectionsByPosition: function (obj) {
+            var tempArray = [];
+            var tempObj = {};
+
+            // Transform Object in Array
+            for (var key in obj) {
+                if (obj.hasOwnProperty(key)) {
+                    tempArray.push(key);
+                }
+            }
+
+            tempArray.sort(function(a,b) {
+                var x = obj[a];
+                var y = obj[b];
+
+                return ((x < y) ? -1 : ((x > y) ? 1 : 0));
+            });
+
+            // Transform sorted tempArray back into Object
+            for (var i=0; i<tempArray.length; i++) {
+                tempObj[tempArray[i]] = obj[tempArray[i]];
+            }
+
+            return tempObj;
+        },
+
+        handleClick: function(e) {
+            var self = this;
+            var $link = $(e.currentTarget);
+            var $parent = $link.parent();
+            var newLoc = '#' + self.getHash($link);
+
+            if(!$parent.hasClass(self.config.currentClass)) {
+                //Start callback
+                if(self.config.begin) {
+                    self.config.begin();
+                }
+
+                //Change the highlighted nav item
+                self.adjustNav(self, $parent);
+
+                //Removing the auto-adjust on scroll
+                self.unbindInterval();
+
+                //Scroll to the correct position
+                self.scrollTo(newLoc, function() {
+                    //Do we need to change the hash?
+                    if(self.config.changeHash) {
+                        window.location.hash = newLoc;
+                    }
+
+                    //Add the auto-adjust on scroll back in
+                    self.bindInterval();
+
+                    //End callback
+                    if(self.config.end) {
+                        self.config.end();
+                    }
+                });
+            }
+
+            e.preventDefault();
+        },
+
+        scrollChange: function() {
+            var windowTop = this.$win.scrollTop();
+            var position = this.getSection(windowTop);
+            var $parent;
+
+            //If the position is set
+            if(position !== null) {
+                $parent = this.$elem.find('a[href$="#' + position + '"]').parent();
+
+                //If it's not already the current section
+                if(!$parent.hasClass(this.config.currentClass)) {
+                    //Change the highlighted nav item
+                    this.adjustNav(this, $parent);
+
+                    //If there is a scrollChange callback
+                    if(this.config.scrollChange) {
+                        this.config.scrollChange($parent);
+                    }
+                }
+            }
+        },
+
+        scrollTo: function(target, callback) {
+            var offset = $(target).offset().top;
+            $('html, body').animate({
+                scrollTop: offset + this.config.scrollOffset
+            }, this.config.scrollSpeed, this.config.easing, callback);
+        },
+
+        unbindInterval: function() {
+            clearInterval(this.t);
+            this.$win.unbind('scroll.onePageNav');
+        }
+    };
+
+    OnePageNav.defaults = OnePageNav.prototype.defaults;
+
+    $.fn.onePageNav = function(options) {
+        return this.each(function() {
+            new OnePageNav(this, options).init();
+        });
+    };
+
+})( jQuery, window , document );
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/jquery.nav.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/js/altair_lp_common.min.js
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/js/altair_lp_common.min.js	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/js/altair_lp_common.min.js	(revision 60863)
@@ -0,0 +1 @@
+var $body=$("body"),$html=$("html"),$window=$(window),$document=$(document),$header_main=$("#header_main"),header_main_height=$header_main.height(),easing_swiftOut=[.35,0,.25,1];function isHighDensity(){return window.matchMedia&&(window.matchMedia("only screen and (min-resolution: 124dpi), only screen and (min-resolution: 1.3dppx), only screen and (min-resolution: 48.8dpcm)").matches||window.matchMedia("only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 2.6/2), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (min-device-pixel-ratio: 1.3)").matches)||window.devicePixelRatio&&1.3<window.devicePixelRatio}function loadjscssfile(e,i){if("js"==i){var t=document.createElement("script");t.setAttribute("type","text/javascript"),t.setAttribute("src",e)}else"css"==i&&((t=document.createElement("link")).setAttribute("rel","stylesheet"),t.setAttribute("type","text/css"),t.setAttribute("href",e));void 0!==t&&document.getElementsByTagName("head")[0].appendChild(t)}function isTouchDevice(){return"ontouchstart"in document.documentElement}bez_easing_swiftOut=$.bez(easing_swiftOut),$(function(){altair_header_main.init(),altair_md.init()}),$window.on("load",function(){isHighDensity()&&(loadjscssfile("bower_components/dense/src/dense.js","js"),$("img").dense({glue:"@"})),isTouchDevice()&&FastClick.attach(document.body)}),altair_header_main={init:function(){altair_header_main.sticky_header(),altair_header_main.main_navigation()},sticky_header:function(){$body.addClass("header_sticky"),$(window).on("scroll touchmove",function(){$body.toggleClass("header_shadow",0<$(document).scrollTop())})},main_navigation:function(){$("#main_navigation").onePageNav({currentClass:"current_active",changeHash:!1,scrollSpeed:840,scrollThreshold:.4,filter:"",scrollOffset:-header_main_height,easing:bez_easing_swiftOut,begin:function(){},end:function(){$("#device-dummy").remove()},scrollChange:function(e){}})}},altair_md={init:function(){altair_md.inputs()},inputs:function(e){(void 0===e?$(".md-input"):$(e).find(".md-input")).each(function(){if(!$(this).closest(".md-input-wrapper").length){var e=$(this),i="";if(e.is('[class*="uk-form-width-"]'))for(var t=e.attr("class").split(" "),n=0;n<t.length;n++){if("uk-form-width-"==t[n].substr(0,14))i=t[n]}e.prev("label").length?e.prev("label").andSelf().wrapAll('<div class="md-input-wrapper"/>'):e.siblings("[data-uk-form-password]").length?e.siblings("[data-uk-form-password]").andSelf().wrapAll('<div class="md-input-wrapper"/>'):e.wrap('<div class="md-input-wrapper"/>'),e.closest(".md-input-wrapper").append('<span class="md-input-bar '+i+'"/>'),altair_md.update_input(e)}$body.on("focus",".md-input",function(){$(this).closest(".md-input-wrapper").addClass("md-input-focus")}).on("blur",".md-input",function(){$(this).closest(".md-input-wrapper").removeClass("md-input-focus"),$(this).hasClass("label-fixed")||(""!=$(this).val()?$(this).closest(".md-input-wrapper").addClass("md-input-filled"):$(this).closest(".md-input-wrapper").removeClass("md-input-filled"))}).on("change",".md-input",function(){altair_md.update_input($(this))})})},update_input:function(e){e.closest(".uk-input-group").removeClass("uk-input-group-danger uk-input-group-success"),e.closest(".md-input-wrapper").removeClass("md-input-wrapper-danger md-input-wrapper-success md-input-wrapper-disabled"),e.hasClass("md-input-danger")&&(e.closest(".uk-input-group").length&&e.closest(".uk-input-group").addClass("uk-input-group-danger"),e.closest(".md-input-wrapper").addClass("md-input-wrapper-danger")),e.hasClass("md-input-success")&&(e.closest(".uk-input-group").length&&e.closest(".uk-input-group").addClass("uk-input-group-success"),e.closest(".md-input-wrapper").addClass("md-input-wrapper-success")),e.prop("disabled")&&e.closest(".md-input-wrapper").addClass("md-input-wrapper-disabled"),e.hasClass("label-fixed")&&e.closest(".md-input-wrapper").addClass("md-input-filled"),""!=e.val()&&e.closest(".md-input-wrapper").addClass("md-input-filled")}};
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/js/altair_lp_common.min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/environments/environment.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/environments/environment.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/environments/environment.ts	(revision 60863)
@@ -0,0 +1,23 @@
+// This file can be replaced during build by using the `fileReplacements` array.
+// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
+// The list of file replacements can be found in `angular.json`.
+
+export const environment = {
+  production: false,
+  // API_ENDPOINT: '/uoa-repository-manager-service',
+  environmentName: 'dev',
+  API_ENDPOINT: 'http://stats.madgik.di.uoa.gr:8080/stats-api/',
+  // API_ENDPOINT: 'https://beta.services.openaire.eu/stats-tool/',
+  FAQ_ENDPOINT: 'http://audrey.athenarc.gr:5555/api',
+  FAQ_HOMEPAGE: 'http://audrey.athenarc.gr:5555',
+  profileName: 'openaire'
+};
+
+/*
+ * For easier debugging in development mode, you can import the following file
+ * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
+ *
+ * This import should be commented out in production mode because it will have a negative impact
+ * on performance if an error is thrown.
+ */
+// import 'zone.js/dist/zone-error';  // Included with Angular CLI.
Index: modules/open-science-observatory-ui/branches/gradient/src/test.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/test.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/test.ts	(revision 60863)
@@ -0,0 +1,20 @@
+// This file is required by karma.conf.js and loads recursively all the .spec and framework files
+
+import 'zone.js/dist/zone-testing';
+import { getTestBed } from '@angular/core/testing';
+import {
+  BrowserDynamicTestingModule,
+  platformBrowserDynamicTesting
+} from '@angular/platform-browser-dynamic/testing';
+
+declare const require: any;
+
+// First, initialize the Angular testing environment.
+getTestBed().initTestEnvironment(
+  BrowserDynamicTestingModule,
+  platformBrowserDynamicTesting()
+);
+// Then we find all the tests.
+const context = require.context('./', true, /\.spec\.ts$/);
+// And load the modules.
+context.keys().map(context);
Index: modules/open-science-observatory-ui/branches/gradient/src/styles.css
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/styles.css	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/styles.css	(revision 60863)
@@ -0,0 +1 @@
+/* You can add global styles to this file, and also import other style files */
Index: modules/open-science-observatory-ui/branches/gradient/src/environments/environment.beta.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/environments/environment.beta.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/environments/environment.beta.ts	(revision 60863)
@@ -0,0 +1,9 @@
+export const environment = {
+  production: true,
+  // API_ENDPOINT: '/api',
+  environmentName: 'beta',
+  API_ENDPOINT: 'https://beta.services.openaire.eu/stats-tool/',
+  FAQ_ENDPOINT: '/uoa-admin-tools/api',
+  FAQ_HOMEPAGE: '/uoa-admin-tools/dashboard',
+  profileName: 'openaire'
+};
Index: modules/open-science-observatory-ui/branches/gradient/src/tsconfig.app.json
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/tsconfig.app.json	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/tsconfig.app.json	(revision 60863)
@@ -0,0 +1,11 @@
+{
+  "extends": "../tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../out-tsc/app",
+    "types": []
+  },
+  "exclude": [
+    "test.ts",
+    "**/*.spec.ts"
+  ]
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/karma.conf.js
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/karma.conf.js	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/karma.conf.js	(revision 60863)
@@ -0,0 +1,31 @@
+// Karma configuration file, see link for more information
+// https://karma-runner.github.io/1.0/config/configuration-file.html
+
+module.exports = function (config) {
+  config.set({
+    basePath: '',
+    frameworks: ['jasmine', '@angular-devkit/build-angular'],
+    plugins: [
+      require('karma-jasmine'),
+      require('karma-chrome-launcher'),
+      require('karma-jasmine-html-reporter'),
+      require('karma-coverage-istanbul-reporter'),
+      require('@angular-devkit/build-angular/plugins/karma')
+    ],
+    client: {
+      clearContext: false // leave Jasmine Spec Runner output visible in browser
+    },
+    coverageIstanbulReporter: {
+      dir: require('path').join(__dirname, '../coverage'),
+      reports: ['html', 'lcovonly'],
+      fixWebpackSourcePaths: true
+    },
+    reporters: ['progress', 'kjhtml'],
+    port: 9876,
+    colors: true,
+    logLevel: config.LOG_INFO,
+    autoWatch: true,
+    browsers: ['Chrome'],
+    singleRun: false
+  });
+};
\ No newline at end of file
Index: modules/open-science-observatory-ui/branches/gradient/package.json
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/package.json	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/package.json	(revision 60863)
@@ -0,0 +1,59 @@
+{
+  "name": "open-science-observatory-ui",
+  "version": "0.0.0",
+  "scripts": {
+    "ng": "ng",
+    "start": "ng serve",
+    "build": "ng build",
+    "test": "ng test",
+    "lint": "ng lint",
+    "e2e": "ng e2e"
+  },
+  "private": true,
+  "dependencies": {
+    "@angular/animations": "~7.0.0",
+    "@angular/common": "~7.0.0",
+    "@angular/compiler": "~7.0.0",
+    "@angular/core": "~7.0.0",
+    "@angular/forms": "~7.0.0",
+    "@angular/http": "~7.0.0",
+    "@angular/platform-browser": "~7.0.0",
+    "@angular/platform-browser-dynamic": "~7.0.0",
+    "@angular/router": "~7.0.0",
+    "@highcharts/map-collection": "^1.1.2",
+    "angular-ng-autocomplete": "^2.0.1",
+    "core-js": "^2.5.4",
+    "dom-to-image": "^2.6.0",
+    "echarts": "^4.2.1",
+    "font-awesome": "^4.7.0",
+    "highcharts": "^7.2.0",
+    "highcharts-angular": "^2.4.0",
+    "jquery": "^3.4.1",
+    "jspdf": "^1.5.3",
+    "ngx-echarts": "^4.2.2",
+    "proj4": "^2.5.0",
+    "rxjs": "~6.3.3",
+    "uikit": "^3.2.1",
+    "zone.js": "~0.8.26"
+  },
+  "devDependencies": {
+    "@angular-devkit/build-angular": "~0.10.0",
+    "@angular/cli": "~7.0.4",
+    "@angular/compiler-cli": "~7.0.0",
+    "@angular/language-service": "~7.0.0",
+    "@types/jasmine": "~2.8.8",
+    "@types/jasminewd2": "~2.0.3",
+    "codelyzer": "~4.5.0",
+    "jasmine-core": "~2.99.1",
+    "jasmine-spec-reporter": "~4.2.1",
+    "karma": "~3.0.0",
+    "karma-chrome-launcher": "~2.2.0",
+    "karma-coverage-istanbul-reporter": "~2.0.1",
+    "karma-jasmine": "~1.1.2",
+    "karma-jasmine-html-reporter": "^0.2.2",
+    "protractor": "~5.4.0",
+    "ts-node": "~7.0.0",
+    "tslint": "~5.11.0",
+    "typescript": "~3.1.1"
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/tslint.json
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/tslint.json	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/tslint.json	(revision 60863)
@@ -0,0 +1,131 @@
+{
+  "rulesDirectory": [
+    "node_modules/codelyzer"
+  ],
+  "rules": {
+    "arrow-return-shorthand": true,
+    "callable-types": true,
+    "class-name": true,
+    "comment-format": [
+      true,
+      "check-space"
+    ],
+    "curly": true,
+    "deprecation": {
+      "severity": "warn"
+    },
+    "eofline": true,
+    "forin": true,
+    "import-blacklist": [
+      true,
+      "rxjs/Rx"
+    ],
+    "import-spacing": true,
+    "indent": [
+      true,
+      "spaces"
+    ],
+    "interface-over-type-literal": true,
+    "label-position": true,
+    "max-line-length": [
+      true,
+      140
+    ],
+    "member-access": false,
+    "member-ordering": [
+      true,
+      {
+        "order": [
+          "static-field",
+          "instance-field",
+          "static-method",
+          "instance-method"
+        ]
+      }
+    ],
+    "no-arg": true,
+    "no-bitwise": true,
+    "no-console": [
+      true,
+      "debug",
+      "info",
+      "time",
+      "timeEnd",
+      "trace"
+    ],
+    "no-construct": true,
+    "no-debugger": true,
+    "no-duplicate-super": true,
+    "no-empty": false,
+    "no-empty-interface": true,
+    "no-eval": true,
+    "no-inferrable-types": [
+      true,
+      "ignore-params"
+    ],
+    "no-misused-new": true,
+    "no-non-null-assertion": true,
+    "no-redundant-jsdoc": true,
+    "no-shadowed-variable": true,
+    "no-string-literal": false,
+    "no-string-throw": true,
+    "no-switch-case-fall-through": true,
+    "no-trailing-whitespace": true,
+    "no-unnecessary-initializer": true,
+    "no-unused-expression": true,
+    "no-use-before-declare": true,
+    "no-var-keyword": true,
+    "object-literal-sort-keys": false,
+    "one-line": [
+      true,
+      "check-open-brace",
+      "check-catch",
+      "check-else",
+      "check-whitespace"
+    ],
+    "prefer-const": true,
+    "quotemark": [
+      true,
+      "single"
+    ],
+    "radix": true,
+    "semicolon": [
+      true,
+      "always"
+    ],
+    "triple-equals": [
+      true,
+      "allow-null-check"
+    ],
+    "typedef-whitespace": [
+      true,
+      {
+        "call-signature": "nospace",
+        "index-signature": "nospace",
+        "parameter": "nospace",
+        "property-declaration": "nospace",
+        "variable-declaration": "nospace"
+      }
+    ],
+    "unified-signatures": true,
+    "variable-name": false,
+    "whitespace": [
+      true,
+      "check-branch",
+      "check-decl",
+      "check-operator",
+      "check-separator",
+      "check-type"
+    ],
+    "no-output-on-prefix": true,
+    "use-input-property-decorator": true,
+    "use-output-property-decorator": true,
+    "use-host-property-decorator": true,
+    "no-input-rename": true,
+    "no-output-rename": true,
+    "use-life-cycle-interface": true,
+    "use-pipe-transform-interface": true,
+    "component-class-suffix": true,
+    "directive-class-suffix": true
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/snow-depth-at-vikjafjell.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/snow-depth-at-vikjafjell.png
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/snow-depth-at-vikjafjell.png	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/snow-depth-at-vikjafjell.png	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/img/mocks/snow-depth-at-vikjafjell.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/png
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_buttons.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_buttons.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_buttons.less	(revision 60863)
@@ -0,0 +1,599 @@
+/* buttons */
+
+@fab_large_size:            64px;
+@fab_small_size:            48px;
+@fab_transition_delay:      50ms;
+
+.md-btn {
+    background: @white;
+    border: none;
+    border-radius: 2px;
+    .boxShadowHelper(1);
+    min-height: 31px;
+    min-width: 70px;
+    padding: 2px 16px;
+    text-align: center;
+    text-shadow: none;
+    text-transform: uppercase;
+    transition: all 280ms @md_easing;
+    color: @text_primary_color;
+    box-sizing: border-box;
+    cursor: pointer;
+    -webkit-appearance: none;
+    display: inline-block;
+    vertical-align: middle;
+    .md_font(500, 14px, 31px) !important;
+    &:hover,
+    &:focus,
+    &:active,
+    .uk-button-dropdown.uk-open > & {
+        background: @white;
+        outline: none;
+        text-decoration: none;
+        color: @text_primary_color;
+        .boxShadowHelper(2);
+    }
+    &:active,
+    .uk-button-dropdown.uk-open > & {
+        .boxShadowHelper(3);
+    }
+    &-flat {
+        .boxShadowHelper(0);
+        background: none;
+        &:hover,
+        &:focus {
+            background: @hover_btn;
+        }
+        &:active {
+            background: @active_btn;
+        }
+        &-danger {
+            &,
+            &:hover,
+            &:focus,
+            &:active {
+                color: @danger_color;
+            }
+            &:hover,
+            &:focus,
+            &:active {
+                background: lighten(@danger_color,40%);
+            }
+        }
+        &-primary {
+            &,
+            &:hover,
+            &:focus,
+            &:active {
+                color: @primary_color_dark;
+            }
+            &:hover,
+            &:focus,
+            &:active {
+                background: lighten(@primary_color,40%);
+            }
+        }
+        &-success {
+            &,
+            &:hover,
+            &:focus,
+            &:active {
+                color: @success_color;
+            }
+            &:hover,
+            &:focus,
+            &:active {
+                background: lighten(@success_color,40%);
+            }
+        }
+        &-warning {
+            &,
+            &:hover,
+            &:focus,
+            &:active {
+                color: @warning_color;
+            }
+            &:hover,
+            &:focus,
+            &:active {
+                background: lighten(@warning_color,40%);
+            }
+        }
+        &.disabled {
+            background: none !important;
+        }
+    }
+    &-danger {
+        &,
+        &:hover,
+        &:focus,
+        &:active {
+            background: @danger_color;
+        }
+    }
+    &-primary {
+        &,
+        &:hover,
+        &:focus,
+        &:active {
+            background: @primary_color;
+        }
+    }
+    &-success {
+        &,
+        &:hover,
+        &:focus,
+        &:active {
+            background: @success_color;
+        }
+    }
+    &-warning {
+        &,
+        &:hover,
+        &:focus,
+        &:active {
+            background: @warning_color;
+        }
+    }
+    &-danger,
+    &-primary,
+    &-success,
+    &-warning {
+        &,
+        &:hover,
+        &:focus,
+        &:active,
+        > i {
+            color: @white;
+        }
+    }
+    &.disabled {
+        &,
+        &:hover,
+        &:focus,
+        &:active {
+            color: #a8a8a8;
+            background: #eaeaea;
+            box-shadow: none !important;
+            cursor: default;
+            pointer-events: none;
+        }
+    }
+    > i {
+        &.material-icons {
+            margin-top: 5px;
+            font-size: 18px;
+        }
+    }
+    &-mini {
+        line-height: 21px !important;
+        min-width: 12px;
+        font-size: 10px !important;
+        min-height: 24px;
+    }
+    &-small {
+        line-height: 27px !important;
+        min-width: 14px;
+        font-size: 11px !important;
+    }
+    &-large {
+        line-height: 42px !important;
+        font-size: 16px !important;
+    }
+    &::-moz-focus-inner {
+        border: 0;
+        padding: 0;
+    }
+    + .md-btn {
+        margin-left: 8px;
+    }
+    &-block {
+        width: 100%;
+        & + & {
+            margin-left: 0;
+            margin-top: 12px;
+        }
+    }
+    + .md-btn-group {
+        margin-left: 16px;
+    }
+    &-facebook {
+        background: #3b5998 !important;
+    }
+    &-twitter {
+        background: #00aced !important;
+    }
+    &-gplus {
+        background: #dd4b39 !important;
+    }
+    &-facebook,
+    &-twitter,
+    &-gplus {
+        &,
+        > i {
+            color: @white !important;
+        }
+    }
+    &-icon {
+        &:extend(.md-btn-icon-default);
+        > i {
+            &:extend(.md-btn-icon-default > i);
+            &.no_margin {
+                margin-right: 0 !important;
+                margin-left: 0 !important;
+            }
+        }
+        &.md-btn-large {
+            &:extend(.md-btn-icon-large);
+            > i {
+                &:extend(.md-btn-icon-large > i);
+            }
+        }
+        &.md-btn-small {
+            &:extend(.md-btn-icon-small);
+            > i {
+                &:extend(.md-btn-icon-small > i);
+            }
+        }
+        &.md-btn-mini {
+            &:extend(.md-btn-icon-mini);
+            > i {
+                &:extend(.md-btn-icon-mini > i);
+            }
+        }
+    }
+}
+.md-btn-icon-large {
+    min-width: 72px;
+    > i {
+        font-size: 24px;
+        margin-right: 12px;
+        vertical-align: -3px;
+    }
+}
+.md-btn-icon-default {
+    min-width: 64px;
+    > i {
+        font-size: 18px;
+        margin-right: 8px;
+        vertical-align: -2px;
+    }
+}
+.md-btn-icon-small {
+    min-width: 48px;
+    > i {
+        font-size: 16px;
+        margin-right: 6px;
+        vertical-align: -2px;
+    }
+}
+.md-btn-icon-mini {
+    min-width: 36px;
+    > i {
+        font-size: 16px;
+        margin-right: 4px;
+        vertical-align: -2px;
+    }
+}
+
+.md-fab {
+    box-sizing: border-box;
+    width: @fab_large_size;
+    height: @fab_large_size;
+    border-radius: 50%;
+    background: @white;
+    color: @text_secondary_color;
+    display: block;
+    .boxShadowHelper(1);
+    transition: box-shadow 280ms @md_easing;
+    border: none;
+    position: relative;
+    text-align: center;
+    cursor: pointer;
+    &:hover,
+    &:focus,
+    &:active {
+        .boxShadowHelper(3);
+    }
+    > i {
+        font-size: 36px;
+        line-height: @fab_large_size;
+        height: inherit;
+        width: inherit;
+        position: absolute;
+        left: 0;
+        top: 0;
+        color: @text_secondary_color;
+    }
+    &.md-fab-accent {
+        background: @accent_color;
+        > i {
+            color: @white;
+        }
+    }
+    &.md-fab-success {
+        background: @success_color;
+        > i {
+            color: @white;
+        }
+    }
+    &.md-fab-danger {
+        background: @danger_color;
+        > i {
+            color: @white;
+        }
+    }
+    &.md-fab-primary {
+        background: @primary_color;
+        > i {
+            color: @white;
+        }
+    }
+    &.md-fab-warning {
+        background: @warning_color;
+        > i {
+            color: @white;
+        }
+    }
+    &.md-fab-small {
+        width: @fab_small_size;
+        height: @fab_small_size;
+        border-radius: 50%;
+        > i {
+            line-height: @fab_small_size;
+            height: inherit;
+            width: inherit;
+            font-size: 24px;
+        }
+    }
+    &-speed-dial {
+        .md-fab-action-close {
+            display: none;
+        }
+    }
+}
+.md-fab-wrapper {
+    position: fixed;
+    bottom: 24px;
+    right: 24px;
+    z-index: 1004;
+    transition: margin 280ms @md_easing;
+    @media @screen_medium_max {
+        bottom: 20px;
+        right: 20px;
+    }
+    > .md-fab + .md-fab {
+        margin-top: 16px;
+    }
+    &.md-fab-in-card {
+        position: absolute;
+    }
+}
+
+.md-fab-speed-dial {
+    .md-fab-wrapper-small {
+        position: absolute;
+        bottom: @fab_large_size + 16px;
+        right: 8px;
+        min-height: @fab_small_size;
+        width: @fab_small_size;
+        z-index: -1;
+        .md-fab-small {
+            transform: scale(0);
+            opacity: 0;
+            position: absolute;
+            right: 0;
+            &:nth-child(1) {
+                transition: box-shadow 280ms @md_easing,transform 100ms @md_easing @fab_transition_delay,opacity 100ms @md_easing @fab_transition_delay;
+            }
+            .generate-fab-child(@n, @i: 2) when (@i =< @n) {
+                // small buttons position
+                &:nth-last-child(@{i}) {
+                    bottom: (@fab_small_size * (@i - 1) ) + (16px * (@i - 1) );
+                }
+                // transition for small buttons (on hide)
+                &:nth-child(@{i}) {
+                    transition: box-shadow 280ms @md_easing,transform 100ms @md_easing ( @fab_transition_delay * @i ),opacity 100ms @md_easing ( @fab_transition_delay * @i );
+                }
+                .generate-fab-child(@n, (@i + 1));
+            }
+            .generate-fab-child(8);
+        }
+    }
+    &.md-fab-active {
+        .md-fab-small {
+            transform: scale(1);
+            opacity: 1;
+            z-index: 10;
+
+            // transition for small buttons (on show)
+            &:nth-last-child(1) {
+                transition: box-shadow 280ms @md_easing,transform 100ms @md_easing @fab_transition_delay,opacity 100ms @md_easing @fab_transition_delay;
+            }
+            .generate-fab-child-active(@n, @i: 2) when (@i =< @n) {
+                &:nth-last-child(@{i}) {
+                    transition: box-shadow 280ms @md_easing,transform 100ms @md_easing ( @fab_transition_delay * @i ),opacity 100ms @md_easing ( @fab_transition_delay * @i );
+                }
+                .generate-fab-child-active(@n, (@i + 1));
+            }
+            .generate-fab-child-active(8);
+        }
+    }
+}
+
+.md-fab-toolbar {
+    transition: all 280ms @md_easing;
+    cursor: default;
+    > i {
+        cursor: pointer;
+    }
+    &-actions {
+        visibility: hidden;
+        white-space: nowrap;
+        padding: 0 16px;
+        overflow: hidden;
+        box-sizing: border-box;
+        > a,
+        > button {
+            display: block;
+            float: left;
+            opacity: 0;
+            margin: 0 0 0 16px;
+            height: @fab_large_size;
+            width: 48px;
+            box-sizing: border-box;
+            transition: opacity 280ms @md_easing;
+            background: none;
+            border: none;
+            outline: none;
+            cursor: pointer;
+            &:first-child {
+                margin-left: 0;
+            }
+        }
+        .material-icons {
+            font-size: 36px;
+            line-height: @fab_large_size;
+        }
+    }
+    &.md-fab-animated {
+        .boxShadowHelper(1);
+        border-radius: 4px;
+        > i {
+            display: none;
+        }
+    }
+    &.md-fab-active {
+        .md-fab-toolbar-actions {
+            visibility: visible;
+            > a,
+            > button {
+                opacity: 1;
+            }
+        }
+    }
+    &.md-fab-small {
+        .md-fab-toolbar-actions {
+            > a,
+            > button {
+                height: @fab_small_size;
+                width: 36px;
+                padding: 0;
+                margin: 0 0 0 8px;
+                &:first-child {
+                    margin-left: 0;
+                }
+            }
+            .material-icons {
+                font-size: 24px;
+                line-height: @fab_small_size;
+                height: inherit;
+            }
+        }
+    }
+}
+
+.md-fab-sheet {
+    transition: all 280ms @md_easing;
+    cursor: default;
+    > i {
+        cursor: pointer;
+    }
+    &-actions {
+        visibility: hidden;
+        white-space: nowrap;
+        overflow: hidden;
+        box-sizing: border-box;
+        padding: 4px 0;
+        > a {
+            display: block;
+            opacity: 0;
+            padding: 4px 16px;
+            box-sizing: border-box;
+            .md_font(400, 16px, 32px);
+            text-align: left;
+            &,
+            &:hover {
+                color: @text_primary_color;
+            }
+        }
+        .material-icons {
+            font-size: 24px;
+            margin-right: 8px;
+            vertical-align: -6px;
+        }
+    }
+    &.md-fab-animated {
+        .boxShadowHelper(1);
+        border-radius: 4px;
+        > i {
+            display: none;
+        }
+    }
+    &.md-fab-active {
+        .md-fab-sheet-actions {
+            visibility: visible;
+            > a {
+                opacity: 1;
+            }
+        }
+    }
+}
+
+.sidebar_secondary_active {
+    .md-fab-wrapper {
+        margin-right: @sidebar_secondary_width - 16;
+        @media @screen_medium_max {
+            margin-right: @sidebar_secondary_width;
+        }
+    }
+}
+
+.md-toggle-group {
+    .md-toggle-button {
+        border-width: 0 0 2px;
+        border-style: solid;
+        border-color: transparent;
+        background: none;
+        line-height: 30px;
+        min-width: 42px;
+        text-align: center;
+        padding: 0 8px;
+        vertical-align: middle;
+        cursor: pointer;
+        &.md-toggle-active {
+            border-bottom-color: #212121;
+        }
+    }
+    &.md-toggle-group-small {
+        .md-toggle-button {
+            font-size: 11px;
+            line-height: 24px;
+            min-width: 16px;
+            padding: 0 6px;
+        }
+    }
+}
+
+.md-btn-group {
+    display: inline-block;
+    vertical-align: top;
+    position: relative;
+    font-size: 0;
+    white-space: nowrap;
+    .md-btn {
+        vertical-align: top;
+        margin-left: 0 !important;
+        &:first-child {
+            border-top-right-radius: 0;
+            border-bottom-right-radius: 0;
+        }
+        &:not(:first-child):not(:last-child) {
+            border-radius: 0;
+        }
+        &:last-child {
+            border-top-left-radius: 0;
+            border-bottom-left-radius: 0;
+        }
+    }
+}
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_buttons.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_panels.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_panels.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_panels.less	(revision 60863)
@@ -0,0 +1,49 @@
+/* panels */
+.md-panel-full {
+    .border-box();
+    position: relative;
+    overflow: hidden;
+    min-height: 100%;
+    > .uk-grid {
+        height: 100%;
+        [class*=uk-width] {
+            height: 100%;
+        }
+    }
+    .md-panel-full-aside {
+        margin: 16px 16px 32px;
+        padding: 16px;
+        &.md-panel-full-aside-bg {
+            background: @white;
+        }
+    }
+    .md-panel-full-content {
+        background: @white;
+        padding: 25px 25px 90px;
+        width: inherit;
+        min-width: 100%;
+        min-height: 100%;
+        > .md-panel-full-content-inner {
+            position: relative;
+            z-index: 10;
+        }
+        &:before {
+            width: inherit;
+            content: '';
+            position: absolute;
+            background: @white;
+            display: block;
+            right: 0;
+            top: 0;
+            bottom: 0;
+            .md-box-shadow-left();
+            z-index: 5;
+        }
+        .md-panel-full-content-header {
+            margin-bottom: 24px;
+            .md-panel-full-content-menu {
+                float: right;
+            }
+        }
+    }
+}
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_panels.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_forms.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_forms.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_forms.less	(revision 60863)
@@ -0,0 +1,239 @@
+/* forms */
+select,
+textarea,
+input:not([type]),
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"] {
+    outline: none;
+    &.md-input {
+        border-radius: 0;
+        border-width: 0 0 1px;
+        border-style: solid;
+        border-color: @border_color;
+        .md_font(400,15px,18px);
+        box-shadow: inset 0 -1px 0 rgba(0,0,0,0);
+        box-sizing: border-box;
+        padding: 12px 4px;
+        background: transparent;
+        width: 100%;
+        display: block;
+        &.md-input-danger {
+            border-color: @danger_color;
+            &:focus {
+                border-bottom-color: @danger_color;
+            }
+        }
+        &.md-input-success {
+            border-color: @success_color;
+            &:focus {
+                border-bottom-color: @success_color;
+            }
+        }
+        &:focus {
+            background: transparent;
+            border-color: @border_color;
+        }
+        &-small {
+            padding: 4px;
+        }
+        &.uk-form-width {
+            &-mini {
+                width: 40px;
+            }
+            &-small {
+                width: 130px;
+            }
+            &-medium {
+                width: 200px;
+            }
+            &-large {
+                width: 500px;
+            }
+        }
+    }
+}
+
+select.md-input {
+    &.uk-form-width-mini {
+        width: 65px;
+    }
+}
+
+.md-input {
+    &-width-small {
+        min-width: 80px !important;
+    }
+    &-width-medium {
+        min-width: 160px !important;
+    }
+    &-width-large {
+        min-width: 320px !important;
+    }
+}
+
+textarea {
+    &.md-input {
+        min-height: 80px;
+        resize: none;
+        overflow: hidden;
+        transition: height 200ms ease-out;
+        line-height: 24px;
+    }
+    &.no_autosize {
+        min-height: inherit;
+        overflow: auto;
+        transition: none;
+        resize: both;
+    }
+}
+
+.md-input-wrapper {
+    position: relative;
+    padding-top: 4px;
+    width: 100%;
+    display: block;
+    .md-input-bar {
+        display: block;
+        position: absolute;
+        bottom: 0;
+        left: 0;
+        width: 100%;
+        &:before,
+        &:after {
+            content: '';
+            display: block;
+            position: absolute;
+            bottom: 0;
+            width: 0;
+            height: 2px;
+            background: @primary_color_dark;
+            transition: width 400ms @md_easing;
+        }
+        &:before {
+            left: 50%
+        }
+        &:after {
+            right: 50%
+        }
+        &.uk-form-width {
+            &-mini {
+                width: 40px;
+            }
+            &-small {
+                width: 130px;
+            }
+            &-medium {
+                width: 200px;
+            }
+            &-large {
+                width: 500px;
+            }
+        }
+    }
+    > label {
+        color: @text_secondary_color;
+        position: absolute;
+        top: 16px;
+        left: 4px;
+        right: 0;
+        pointer-events: none;
+        transition: all 150ms ease-out;
+    }
+    + * {
+        margin-top: 10px;
+    }
+    &.md-input-wrapper-disabled {
+        > label {
+            color: @input_disabled_color;
+        }
+    }
+    &-count {
+        padding-bottom: 24px;
+        .md-input-bar {
+            bottom: 24px;
+        }
+        .text-count-wrapper {
+            font-size: 12px;
+            position: absolute;
+            right: 0;
+            bottom: 0;
+            opacity: 0;
+            transition: opacity 200ms ease-in;
+            .md-input-wrapper-count > & {
+                position: absolute;
+                bottom: 0;
+                right: 0;
+            }
+        }
+
+    }
+}
+
+.md-input-filled,
+.md-input-focus {
+    > label {
+        top: -6px;
+        font-size: 12px;
+    }
+    &.md-input-wrapper-count {
+        .text-count-wrapper {
+            opacity: 1;
+        }
+    }
+}
+.md-input-focus {
+    .md-input-bar:before,
+    .md-input-bar:after {
+        width: 50%;
+    }
+}
+
+.md-input-wrapper-danger {
+    .md-input-bar {
+        &:before,
+        &:after {
+            background: @danger_color;
+        }
+    }
+    &.md-input-wrapper-count {
+        .text-count-wrapper {
+            color: @danger_color;
+        }
+    }
+}
+
+.md-input-wrapper-success {
+    .md-input-bar {
+        &:before,
+        &:after {
+            background: @success_color;
+        }
+    }
+    &.md-input-wrapper-count {
+        .text-count-wrapper {
+            color: @success_color;
+        }
+    }
+}
+
+.md-form-group {
+    position: relative;
+}
+
+label.md-label {
+    color: #999;
+    padding: 0 6px;
+    font-size: 11px;
+}
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/md/_md_forms.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/less/components/_timeline.less
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/less/components/_timeline.less	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/less/components/_timeline.less	(revision 60863)
@@ -0,0 +1,125 @@
+.al_timeline {
+    position: relative;
+    padding: 24px 0 32px;
+    &:after {
+        position: absolute;
+        top: 0;
+        bottom: 0;
+        margin-left: -2px;
+        left: 50%;
+        content: '';
+        width: 4px;
+        background: rgba(255,255,255,.5);
+        display: block;
+    }
+    &_block {
+        .clearfix;
+        + * {
+            margin-top: 48px;
+        }
+        &:nth-child(even) {
+            .al_timeline {
+                &_content {
+                    float: right;
+                    &:after {
+                        border-left-color: transparent;
+                        border-right-color: @white;
+                        right: auto;
+                        left: -20px;
+                    }
+                }
+            }
+        }
+    }
+    &_content {
+        box-sizing: border-box;
+        background: @white;
+        width: 44%;
+        padding: 16px;
+        .boxShadowHelper(2);
+        position: relative;
+        border-radius: 4px;
+        &:after {
+            position: absolute;
+            top: 24px;
+            right: -20px;
+            content: '';
+            display: block;
+            border: 10px solid transparent;
+            border-left-color: @white;
+        }
+    }
+    &_image {
+        position: absolute;
+        left: 50%;
+        width: 64px;
+        height: 64px;
+        margin-left: -32px;
+        background: @white;
+        border-radius: 50%;
+        text-align: center;
+        z-index: 10;
+        .boxShadowHelper(2);
+        > i {
+            font-size: 32px;
+            line-height: 64px;
+        }
+    }
+}
+
+@media @screen_large_max {
+    .al_timeline {
+        &:after {
+            margin-left: 0;
+            left: 30px;
+        }
+        &_block {
+            padding-left: 96px;
+        }
+        &_content {
+            width: 100%;
+            &:after {
+                border-left-color: transparent;
+                border-right-color: @white;
+                right: auto;
+                left: -20px;
+            }
+        }
+        &_image {
+            left: 0;
+            margin-left: 0;
+        }
+    }
+}
+
+@media @screen_medium_max {
+    .al_timeline {
+        &:after {
+            margin-left: 0;
+            left: 22px;
+        }
+        &_block {
+            padding-left: 72px;
+        }
+        &_content {
+            width: 100%;
+            &:after {
+                border-left-color: transparent;
+                border-right-color: @white;
+                right: auto;
+                left: -20px;
+                top: 14px;
+            }
+        }
+        &_image {
+            width: 48px;
+            height: 48px;
+            left: 0;
+            margin-left: 0;
+            > i {
+                line-height: 48px;
+                font-size: 24px;
+            }
+        }
+    }
+}
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/less/components/_timeline.less
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/.gitkeep
===================================================================
Index: modules/open-science-observatory-ui/branches/gradient/e2e/tsconfig.e2e.json
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/e2e/tsconfig.e2e.json	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/e2e/tsconfig.e2e.json	(revision 60863)
@@ -0,0 +1,13 @@
+{
+  "extends": "../tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../out-tsc/app",
+    "module": "commonjs",
+    "target": "es5",
+    "types": [
+      "jasmine",
+      "jasminewd2",
+      "node"
+    ]
+  }
+}
\ No newline at end of file
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/js/common.min.js
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/js/common.min.js	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/js/common.min.js	(revision 60863)
@@ -0,0 +1 @@
+!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){var t=[],k=C.document,c=t.slice,g=t.concat,a=t.push,i=t.indexOf,n={},r=n.toString,h=n.hasOwnProperty,v={},o="2.2.4",E=function(e,t){return new E.fn.init(e,t)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,u=/^-ms-/,l=/-([\da-z])/gi,f=function(e,t){return t.toUpperCase()};function p(e){var t=!!e&&"length"in e&&e.length,n=E.type(e);return"function"!==n&&!E.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}E.fn=E.prototype={jquery:o,constructor:E,selector:"",length:0,toArray:function(){return c.call(this)},get:function(e){return null!=e?e<0?this[e+this.length]:this[e]:c.call(this)},pushStack:function(e){var t=E.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e){return E.each(this,e)},map:function(n){return this.pushStack(E.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(c.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:a,sort:t.sort,splice:t.splice},E.extend=E.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[a]||{},a++),"object"==typeof s||E.isFunction(s)||(s={}),a===u&&(s=this,a--);a<u;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],s!==(r=e[t])&&(l&&r&&(E.isPlainObject(r)||(i=E.isArray(r)))?(i?(i=!1,o=n&&E.isArray(n)?n:[]):o=n&&E.isPlainObject(n)?n:{},s[t]=E.extend(l,o,r)):void 0!==r&&(s[t]=r));return s},E.extend({expando:"jQuery"+(o+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===E.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){var t=e&&e.toString();return!E.isArray(e)&&0<=t-parseFloat(t)+1},isPlainObject:function(e){var t;if("object"!==E.type(e)||e.nodeType||E.isWindow(e))return!1;if(e.constructor&&!h.call(e,"constructor")&&!h.call(e.constructor.prototype||{},"isPrototypeOf"))return!1;for(t in e);return void 0===t||h.call(e,t)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[r.call(e)]||"object":typeof e},globalEval:function(e){var t,n=eval;(e=E.trim(e))&&(1===e.indexOf("use strict")?((t=k.createElement("script")).text=e,k.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(u,"ms-").replace(l,f)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var n,r=0;if(p(e))for(n=e.length;r<n&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(s,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?E.merge(n,"string"==typeof e?[e]:e):a.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,s=!n;i<o;i++)!t(e[i],i)!==s&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,s=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return g.apply([],s)},guid:1,proxy:function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),E.isFunction(e))return r=c.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(c.call(arguments)))}).guid=e.guid=e.guid||E.guid++,i},now:Date.now,support:v}),"function"==typeof Symbol&&(E.fn[Symbol.iterator]=t[Symbol.iterator]),E.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,h,b,o,i,g,f,v,w,u,l,T,C,s,k,m,a,c,y,E="sizzle"+1*new Date,x=n.document,S=0,r=0,p=ie(),d=ie(),N=ie(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],A=t.pop,L=t.push,q=t.push,H=t.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",F="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",I="\\["+F+"*("+M+")(?:"+F+"*([*^$|!~]?=)"+F+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+F+"*\\]",R=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(F+"+","g"),W=new RegExp("^"+F+"+|((?:^|[^\\\\])(?:\\\\.)*)"+F+"+$","g"),B=new RegExp("^"+F+"*,"+F+"*"),_=new RegExp("^"+F+"*([>+~]|"+F+")"+F+"*"),X=new RegExp("="+F+"*([^\\]'\"]*?)"+F+"*\\]","g"),z=new RegExp(R),Y=new RegExp("^"+M+"$"),U={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+R),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+F+"*(even|odd|(([+-]|)(\\d*)n|)"+F+"*(?:([+-]|)"+F+"*(\\d+)|))"+F+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+F+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+F+"*((?:-\\d)?\\d*)"+F+"*\\)|)(?=[^-]|$)","i")},V=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,G=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=/'|\\/g,ee=new RegExp("\\\\([\\da-f]{1,6}"+F+"?|("+F+")|.)","ig"),te=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},ne=function(){T()};try{q.apply(t=H.call(x.childNodes),x.childNodes),t[x.childNodes.length].nodeType}catch(e){q={apply:t.length?function(e,t){L.apply(e,H.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function re(e,t,n,r){var i,o,s,a,u,l,c,f,p=t&&t.ownerDocument,d=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==d&&9!==d&&11!==d)return n;if(!r&&((t?t.ownerDocument||t:x)!==C&&T(t),t=t||C,k)){if(11!==d&&(l=J.exec(e)))if(i=l[1]){if(9===d){if(!(s=t.getElementById(i)))return n;if(s.id===i)return n.push(s),n}else if(p&&(s=p.getElementById(i))&&y(t,s)&&s.id===i)return n.push(s),n}else{if(l[2])return q.apply(n,t.getElementsByTagName(e)),n;if((i=l[3])&&h.getElementsByClassName&&t.getElementsByClassName)return q.apply(n,t.getElementsByClassName(i)),n}if(h.qsa&&!N[e+" "]&&(!m||!m.test(e))){if(1!==d)p=t,f=e;else if("object"!==t.nodeName.toLowerCase()){for((a=t.getAttribute("id"))?a=a.replace(Z,"\\$&"):t.setAttribute("id",a=E),o=(c=g(e)).length,u=Y.test(a)?"#"+a:"[id='"+a+"']";o--;)c[o]=u+" "+he(c[o]);f=c.join(","),p=K.test(e)&&pe(t.parentNode)||t}if(f)try{return q.apply(n,p.querySelectorAll(f)),n}catch(e){}finally{a===E&&t.removeAttribute("id")}}}return v(e.replace(W,"$1"),t,n,r)}function ie(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function oe(e){return e[E]=!0,e}function se(e){var t=C.createElement("div");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ae(e,t){for(var n=e.split("|"),r=n.length;r--;)b.attrHandle[n[r]]=t}function ue(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||1<<31)-(~e.sourceIndex||1<<31);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function le(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function ce(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function fe(s){return oe(function(o){return o=+o,oe(function(e,t){for(var n,r=s([],e.length,o),i=r.length;i--;)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function pe(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in h=re.support={},i=re.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},T=re.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:x;return r!==C&&9===r.nodeType&&r.documentElement&&(s=(C=r).documentElement,k=!i(C),(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",ne,!1):n.attachEvent&&n.attachEvent("onunload",ne)),h.attributes=se(function(e){return e.className="i",!e.getAttribute("className")}),h.getElementsByTagName=se(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),h.getElementsByClassName=G.test(C.getElementsByClassName),h.getById=se(function(e){return s.appendChild(e).id=E,!C.getElementsByName||!C.getElementsByName(E).length}),h.getById?(b.find.ID=function(e,t){if(void 0!==t.getElementById&&k){var n=t.getElementById(e);return n?[n]:[]}},b.filter.ID=function(e){var t=e.replace(ee,te);return function(e){return e.getAttribute("id")===t}}):(delete b.find.ID,b.filter.ID=function(e){var n=e.replace(ee,te);return function(e){var t=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}}),b.find.TAG=h.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):h.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=h.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&k)return t.getElementsByClassName(e)},a=[],m=[],(h.qsa=G.test(C.querySelectorAll))&&(se(function(e){s.appendChild(e).innerHTML="<a id='"+E+"'></a><select id='"+E+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]="+F+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\["+F+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+E+"-]").length||m.push("~="),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+E+"+*").length||m.push(".#.+[+~]")}),se(function(e){var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name"+F+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:")})),(h.matchesSelector=G.test(c=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.oMatchesSelector||s.msMatchesSelector))&&se(function(e){h.disconnectedMatch=c.call(e,"div"),c.call(e,"[s!='']:x"),a.push("!=",R)}),m=m.length&&new RegExp(m.join("|")),a=a.length&&new RegExp(a.join("|")),t=G.test(s.compareDocumentPosition),y=t||G.test(s.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!h.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===x&&y(x,e)?-1:t===C||t.ownerDocument===x&&y(x,t)?1:u?O(u,e)-O(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],a=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?O(u,e)-O(u,t):0;if(i===o)return ue(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)a.unshift(n);for(;s[r]===a[r];)r++;return r?ue(s[r],a[r]):s[r]===x?-1:a[r]===x?1:0}),C},re.matches=function(e,t){return re(e,null,null,t)},re.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),t=t.replace(X,"='$1']"),h.matchesSelector&&k&&!N[t+" "]&&(!a||!a.test(t))&&(!m||!m.test(t)))try{var n=c.call(e,t);if(n||h.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){}return 0<re(t,C,null,[e]).length},re.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},re.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!k):void 0;return void 0!==r?r:h.attributes||!k?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},re.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},re.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!h.detectDuplicates,u=!h.sortStable&&e.slice(0),e.sort(j),l){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return u=null,e},o=re.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=o(t);return n},(b=re.selectors={cacheLength:50,createPseudo:oe,match:U,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ee,te),e[3]=(e[3]||e[4]||e[5]||"").replace(ee,te),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||re.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&re.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return U.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&z.test(n)&&(t=g(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ee,te).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+F+")"+e+"("+F+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=re.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace($," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var m="nth"!==h.slice(0,3),y="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,s,a,u,l=m!==y?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(m){for(;l;){for(s=e;s=s[l];)if(x?s.nodeName.toLowerCase()===f:1===s.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[y?c.firstChild:c.lastChild],y&&p){for(d=(a=(r=(i=(o=(s=c)[E]||(s[E]={}))[s.uniqueID]||(o[s.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],s=a&&c.childNodes[a];s=++a&&s&&s[l]||(d=a=0)||u.pop();)if(1===s.nodeType&&++d&&s===e){i[h]=[S,a,d];break}}else if(p&&(d=a=(r=(i=(o=(s=e)[E]||(s[E]={}))[s.uniqueID]||(o[s.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)for(;(s=++a&&s&&s[l]||(d=a=0)||u.pop())&&((x?s.nodeName.toLowerCase()!==f:1!==s.nodeType)||!++d||(p&&((i=(o=s[E]||(s[E]={}))[s.uniqueID]||(o[s.uniqueID]={}))[h]=[S,d]),s!==e)););return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,s=b.pseudos[e]||b.setFilters[e.toLowerCase()]||re.error("unsupported pseudo: "+e);return s[E]?s(o):1<s.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?oe(function(e,t){for(var n,r=s(e,o),i=r.length;i--;)e[n=O(e,r[i])]=!(t[n]=r[i])}):function(e){return s(e,0,t)}):s}},pseudos:{not:oe(function(e){var r=[],i=[],a=f(e.replace(W,"$1"));return a[E]?oe(function(e,t,n,r){for(var i,o=a(e,null,r,[]),s=e.length;s--;)(i=o[s])&&(e[s]=!(t[s]=i))}):function(e,t,n){return r[0]=e,a(r,null,n,i),r[0]=null,!i.pop()}}),has:oe(function(t){return function(e){return 0<re(t,e).length}}),contains:oe(function(t){return t=t.replace(ee,te),function(e){return-1<(e.textContent||e.innerText||o(e)).indexOf(t)}}),lang:oe(function(n){return Y.test(n||"")||re.error("unsupported lang: "+n),n=n.replace(ee,te).toLowerCase(),function(e){var t;do{if(t=k?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===s},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return V.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:fe(function(){return[0]}),last:fe(function(e,t){return[t-1]}),eq:fe(function(e,t,n){return[n<0?n+t:n]}),even:fe(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:fe(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:fe(function(e,t,n){for(var r=n<0?n+t:n;0<=--r;)e.push(r);return e}),gt:fe(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=le(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=ce(e);function de(){}function he(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function ge(a,e,t){var u=e.dir,l=t&&"parentNode"===u,c=r++;return e.first?function(e,t,n){for(;e=e[u];)if(1===e.nodeType||l)return a(e,t,n)}:function(e,t,n){var r,i,o,s=[S,c];if(n){for(;e=e[u];)if((1===e.nodeType||l)&&a(e,t,n))return!0}else for(;e=e[u];)if(1===e.nodeType||l){if((r=(i=(o=e[E]||(e[E]={}))[e.uniqueID]||(o[e.uniqueID]={}))[u])&&r[0]===S&&r[1]===c)return s[2]=r[2];if((i[u]=s)[2]=a(e,t,n))return!0}}}function ve(i){return 1<i.length?function(e,t,n){for(var r=i.length;r--;)if(!i[r](e,t,n))return!1;return!0}:i[0]}function me(e,t,n,r,i){for(var o,s=[],a=0,u=e.length,l=null!=t;a<u;a++)(o=e[a])&&(n&&!n(o,r,i)||(s.push(o),l&&t.push(a)));return s}function ye(d,h,g,v,m,e){return v&&!v[E]&&(v=ye(v)),m&&!m[E]&&(m=ye(m,e)),oe(function(e,t,n,r){var i,o,s,a=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)re(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:me(c,a,d,n,r),p=g?m||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v)for(i=me(p,u),v(i,[],n,r),o=i.length;o--;)(s=i[o])&&(p[u[o]]=!(f[u[o]]=s));if(e){if(m||d){if(m){for(i=[],o=p.length;o--;)(s=p[o])&&i.push(f[o]=s);m(null,p=[],i,r)}for(o=p.length;o--;)(s=p[o])&&-1<(i=m?O(e,s):a[o])&&(e[i]=!(t[i]=s))}}else p=me(p===t?p.splice(l,p.length):p),m?m(null,t,p,r):q.apply(t,p)})}function xe(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],s=o||b.relative[" "],a=o?1:0,u=ge(function(e){return e===i},s,!0),l=ge(function(e){return-1<O(i,e)},s,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];a<r;a++)if(t=b.relative[e[a].type])c=[ge(ve(c),t)];else{if((t=b.filter[e[a].type].apply(null,e[a].matches))[E]){for(n=++a;n<r&&!b.relative[e[n].type];n++);return ye(1<a&&ve(c),1<a&&he(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(W,"$1"),t,a<n&&xe(e.slice(a,n)),n<r&&xe(e=e.slice(n)),n<r&&he(e))}c.push(t)}return ve(c)}return de.prototype=b.filters=b.pseudos,b.setFilters=new de,g=re.tokenize=function(e,t){var n,r,i,o,s,a,u,l=d[e+" "];if(l)return t?0:l.slice(0);for(s=e,a=[],u=b.preFilter;s;){for(o in n&&!(r=B.exec(s))||(r&&(s=s.slice(r[0].length)||s),a.push(i=[])),n=!1,(r=_.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length)),b.filter)!(r=U[o].exec(s))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?re.error(e):d(e,a).slice(0)},f=re.compile=function(e,t){var n,v,m,y,x,r,i=[],o=[],s=N[e+" "];if(!s){for(t||(t=g(e)),n=t.length;n--;)(s=xe(t[n]))[E]?i.push(s):o.push(s);(s=N(e,(v=o,y=0<(m=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,s,a,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){for(s=0,t||o.ownerDocument===C||(T(o),n=!k);a=v[s++];)if(a(o,t||C,n)){r.push(o);break}i&&(S=h)}y&&((o=!a&&o)&&u--,e&&c.push(o))}if(u+=l,y&&l!==u){for(s=0;a=m[s++];)a(c,f,t,n);if(e){if(0<u)for(;l--;)c[l]||f[l]||(f[l]=A.call(r));f=me(f)}q.apply(r,f),i&&!e&&0<f.length&&1<u+m.length&&re.uniqueSort(r)}return i&&(S=h,w=p),c},y?oe(r):r))).selector=e}return s},v=re.select=function(e,t,n,r){var i,o,s,a,u,l="function"==typeof e&&e,c=!r&&g(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(s=o[0]).type&&h.getById&&9===t.nodeType&&k&&b.relative[o[1].type]){if(!(t=(b.find.ID(s.matches[0].replace(ee,te),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=U.needsContext.test(e)?0:o.length;i--&&(s=o[i],!b.relative[a=s.type]);)if((u=b.find[a])&&(r=u(s.matches[0].replace(ee,te),K.test(o[0].type)&&pe(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&he(o)))return q.apply(n,r),n;break}}return(l||f(e,c))(r,t,!k,n,!t||K.test(e)&&pe(t.parentNode)||t),n},h.sortStable=E.split("").sort(j).join("")===E,h.detectDuplicates=!!l,T(),h.sortDetached=se(function(e){return 1&e.compareDocumentPosition(C.createElement("div"))}),se(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ae("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),h.attributes&&se(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ae("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),se(function(e){return null==e.getAttribute("disabled")})||ae(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),re}(C);E.find=d,E.expr=d.selectors,E.expr[":"]=E.expr.pseudos,E.uniqueSort=E.unique=d.uniqueSort,E.text=d.getText,E.isXMLDoc=d.isXML,E.contains=d.contains;var m=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&E(e).is(n))break;r.push(e)}return r},y=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},x=E.expr.match.needsContext,b=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function T(e,n,r){if(E.isFunction(n))return E.grep(e,function(e,t){return!!n.call(e,t,e)!==r});if(n.nodeType)return E.grep(e,function(e){return e===n!==r});if("string"==typeof n){if(w.test(n))return E.filter(n,e,r);n=E.filter(n,e)}return E.grep(e,function(e){return-1<i.call(n,e)!==r})}E.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?E.find.matchesSelector(r,e)?[r]:[]:E.find.matches(e,E.grep(t,function(e){return 1===e.nodeType}))},E.fn.extend({find:function(e){var t,n=this.length,r=[],i=this;if("string"!=typeof e)return this.pushStack(E(e).filter(function(){for(t=0;t<n;t++)if(E.contains(i[t],this))return!0}));for(t=0;t<n;t++)E.find(e,i[t],r);return(r=this.pushStack(1<n?E.unique(r):r)).selector=this.selector?this.selector+" "+e:e,r},filter:function(e){return this.pushStack(T(this,e||[],!1))},not:function(e){return this.pushStack(T(this,e||[],!0))},is:function(e){return!!T(this,"string"==typeof e&&x.test(e)?E(e):e||[],!1).length}});var S,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;(E.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||S,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:N.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:k,!0)),b.test(r[1])&&E.isPlainObject(t))for(r in t)E.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=k.getElementById(r[2]))&&i.parentNode&&(this.length=1,this[0]=i),this.context=k,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):E.isFunction(e)?void 0!==n.ready?n.ready(e):e(E):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),E.makeArray(e,this))}).prototype=E.fn,S=E(k);var j=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(E.contains(this,t[e]))return!0})},closest:function(e,t){for(var n,r=0,i=this.length,o=[],s=x.test(e)||"string"!=typeof e?E(e,t||this.context):0;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(s?-1<s.index(n):1===n.nodeType&&E.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?E.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(E(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(E.uniqueSort(E.merge(this.get(),E(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),E.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return m(e,"parentNode")},parentsUntil:function(e,t,n){return m(e,"parentNode",n)},next:function(e){return A(e,"nextSibling")},prev:function(e){return A(e,"previousSibling")},nextAll:function(e){return m(e,"nextSibling")},prevAll:function(e){return m(e,"previousSibling")},nextUntil:function(e,t,n){return m(e,"nextSibling",n)},prevUntil:function(e,t,n){return m(e,"previousSibling",n)},siblings:function(e){return y((e.parentNode||{}).firstChild,e)},children:function(e){return y(e.firstChild)},contents:function(e){return e.contentDocument||E.merge([],e.childNodes)}},function(r,i){E.fn[r]=function(e,t){var n=E.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=E.filter(t,n)),1<this.length&&(D[r]||E.uniqueSort(n),j.test(r)&&n.reverse()),this.pushStack(n)}});var L,q=/\S+/g;function H(){k.removeEventListener("DOMContentLoaded",H),C.removeEventListener("load",H),E.ready()}E.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},E.each(e.match(q)||[],function(e,t){n[t]=!0}),n):E.extend({},r);var i,t,o,s,a=[],u=[],l=-1,c=function(){for(s=r.once,o=i=!0;u.length;l=-1)for(t=u.shift();++l<a.length;)!1===a[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=a.length,t=!1);r.memory||(t=!1),i=!1,s&&(a=t?[]:"")},f={add:function(){return a&&(t&&!i&&(l=a.length-1,u.push(t)),function n(e){E.each(e,function(e,t){E.isFunction(t)?r.unique&&f.has(t)||a.push(t):t&&t.length&&"string"!==E.type(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return E.each(arguments,function(e,t){for(var n;-1<(n=E.inArray(t,a,n));)a.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<E.inArray(e,a):0<a.length},empty:function(){return a&&(a=[]),this},disable:function(){return s=u=[],a=t="",this},disabled:function(){return!a},lock:function(){return s=u=[],t||(a=t=""),this},locked:function(){return!!s},fireWith:function(e,t){return s||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},E.extend({Deferred:function(e){var o=[["resolve","done",E.Callbacks("once memory"),"resolved"],["reject","fail",E.Callbacks("once memory"),"rejected"],["notify","progress",E.Callbacks("memory")]],i="pending",s={state:function(){return i},always:function(){return a.done(arguments).fail(arguments),this},then:function(){var i=arguments;return E.Deferred(function(r){E.each(o,function(e,t){var n=E.isFunction(i[e])&&i[e];a[t[1]](function(){var e=n&&n.apply(this,arguments);e&&E.isFunction(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this===s?r.promise():this,n?[e]:arguments)})}),i=null}).promise()},promise:function(e){return null!=e?E.extend(e,s):s}},a={};return s.pipe=s.then,E.each(o,function(e,t){var n=t[2],r=t[3];s[t[1]]=n.add,r&&n.add(function(){i=r},o[1^e][2].disable,o[2][2].lock),a[t[0]]=function(){return a[t[0]+"With"](this===a?s:this,arguments),this},a[t[0]+"With"]=n.fireWith}),s.promise(a),e&&e.call(a,a),a},when:function(e){var i,t,n,r=0,o=c.call(arguments),s=o.length,a=1!==s||e&&E.isFunction(e.promise)?s:0,u=1===a?e:E.Deferred(),l=function(t,n,r){return function(e){n[t]=this,r[t]=1<arguments.length?c.call(arguments):e,r===i?u.notifyWith(n,r):--a||u.resolveWith(n,r)}};if(1<s)for(i=new Array(s),t=new Array(s),n=new Array(s);r<s;r++)o[r]&&E.isFunction(o[r].promise)?o[r].promise().progress(l(r,t,i)).done(l(r,n,o)).fail(u.reject):--a;return a||u.resolveWith(n,o),u.promise()}}),E.fn.ready=function(e){return E.ready.promise().done(e),this},E.extend({isReady:!1,readyWait:1,holdReady:function(e){e?E.readyWait++:E.ready(!0)},ready:function(e){(!0===e?--E.readyWait:E.isReady)||(E.isReady=!0)!==e&&0<--E.readyWait||(L.resolveWith(k,[E]),E.fn.triggerHandler&&(E(k).triggerHandler("ready"),E(k).off("ready")))}}),E.ready.promise=function(e){return L||(L=E.Deferred(),"complete"===k.readyState||"loading"!==k.readyState&&!k.documentElement.doScroll?C.setTimeout(E.ready):(k.addEventListener("DOMContentLoaded",H),C.addEventListener("load",H))),L.promise(e)},E.ready.promise();var O=function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===E.type(n))for(a in i=!0,n)O(e,t,a,n[a],!0,o,s);else if(void 0!==r&&(i=!0,E.isFunction(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(E(e),n)})),t))for(;a<u;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o},P=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function F(){this.expando=E.expando+F.uid++}F.uid=1,F.prototype={register:function(e,t){var n=t||{};return e.nodeType?e[this.expando]=n:Object.defineProperty(e,this.expando,{value:n,writable:!0,configurable:!0}),e[this.expando]},cache:function(e){if(!P(e))return{};var t=e[this.expando];return t||(t={},P(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[t]=n;else for(r in t)i[r]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][t]},access:function(e,t,n){var r;return void 0===t||t&&"string"==typeof t&&void 0===n?void 0!==(r=this.get(e,t))?r:this.get(e,E.camelCase(t)):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r,i,o=e[this.expando];if(void 0!==o){if(void 0===t)this.register(e);else{E.isArray(t)?r=t.concat(t.map(E.camelCase)):(i=E.camelCase(t),r=t in o?[t,i]:(r=i)in o?[r]:r.match(q)||[]),n=r.length;for(;n--;)delete o[r[n]]}(void 0===t||E.isEmptyObject(o))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!E.isEmptyObject(t)}};var M=new F,I=new F,R=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,$=/[A-Z]/g;function W(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace($,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:R.test(n)?E.parseJSON(n):n)}catch(e){}I.set(e,t,n)}else n=void 0;return n}E.extend({hasData:function(e){return I.hasData(e)||M.hasData(e)},data:function(e,t,n){return I.access(e,t,n)},removeData:function(e,t){I.remove(e,t)},_data:function(e,t,n){return M.access(e,t,n)},_removeData:function(e,t){M.remove(e,t)}}),E.fn.extend({data:function(r,e){var t,n,i,o=this[0],s=o&&o.attributes;if(void 0===r){if(this.length&&(i=I.get(o),1===o.nodeType&&!M.get(o,"hasDataAttrs"))){for(t=s.length;t--;)s[t]&&0===(n=s[t].name).indexOf("data-")&&(n=E.camelCase(n.slice(5)),W(o,n,i[n]));M.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof r?this.each(function(){I.set(this,r)}):O(this,function(t){var e,n;if(o&&void 0===t)return void 0!==(e=I.get(o,r)||I.get(o,r.replace($,"-$&").toLowerCase()))?e:(n=E.camelCase(r),void 0!==(e=I.get(o,n))?e:void 0!==(e=W(o,n,void 0))?e:void 0);n=E.camelCase(r),this.each(function(){var e=I.get(this,n);I.set(this,n,t),-1<r.indexOf("-")&&void 0!==e&&I.set(this,r,t)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){I.remove(this,e)})}}),E.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=M.get(e,t),n&&(!r||E.isArray(n)?r=M.access(e,t,E.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=E.queue(e,t),r=n.length,i=n.shift(),o=E._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){E.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return M.get(e,n)||M.access(e,n,{empty:E.Callbacks("once memory").add(function(){M.remove(e,[t+"queue",n])})})}}),E.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?E.queue(this[0],t):void 0===n?this:this.each(function(){var e=E.queue(this,t,n);E._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&E.dequeue(this,t)})},dequeue:function(e){return this.each(function(){E.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=E.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";s--;)(n=M.get(o[s],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var B=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,_=new RegExp("^(?:([+-])=|)("+B+")([a-z%]*)$","i"),X=["Top","Right","Bottom","Left"],z=function(e,t){return e=t||e,"none"===E.css(e,"display")||!E.contains(e.ownerDocument,e)};function Y(e,t,n,r){var i,o=1,s=20,a=r?function(){return r.cur()}:function(){return E.css(e,t,"")},u=a(),l=n&&n[3]||(E.cssNumber[t]?"":"px"),c=(E.cssNumber[t]||"px"!==l&&+u)&&_.exec(E.css(e,t));if(c&&c[3]!==l)for(l=l||c[3],n=n||[],c=+u||1;c/=o=o||".5",E.style(e,t,c+l),o!==(o=a()/u)&&1!==o&&--s;);return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var U=/^(?:checkbox|radio)$/i,V=/<([\w:-]+)/,Q=/^$|\/(?:java|ecma)script/i,G={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function J(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&E.nodeName(e,t)?E.merge([e],n):n}function K(e,t){for(var n=0,r=e.length;n<r;n++)M.set(e[n],"globalEval",!t||M.get(t[n],"globalEval"))}G.optgroup=G.option,G.tbody=G.tfoot=G.colgroup=G.caption=G.thead,G.th=G.td;var Z,ee,te=/<|&#?\w+;/;function ne(e,t,n,r,i){for(var o,s,a,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===E.type(o))E.merge(p,o.nodeType?[o]:o);else if(te.test(o)){for(s=s||f.appendChild(t.createElement("div")),a=(V.exec(o)||["",""])[1].toLowerCase(),u=G[a]||G._default,s.innerHTML=u[1]+E.htmlPrefilter(o)+u[2],c=u[0];c--;)s=s.lastChild;E.merge(p,s.childNodes),(s=f.firstChild).textContent=""}else p.push(t.createTextNode(o));for(f.textContent="",d=0;o=p[d++];)if(r&&-1<E.inArray(o,r))i&&i.push(o);else if(l=E.contains(o.ownerDocument,o),s=J(f.appendChild(o),"script"),l&&K(s),n)for(c=0;o=s[c++];)Q.test(o.type||"")&&n.push(o);return f}Z=k.createDocumentFragment().appendChild(k.createElement("div")),(ee=k.createElement("input")).setAttribute("type","radio"),ee.setAttribute("checked","checked"),ee.setAttribute("name","t"),Z.appendChild(ee),v.checkClone=Z.cloneNode(!0).cloneNode(!0).lastChild.checked,Z.innerHTML="<textarea>x</textarea>",v.noCloneChecked=!!Z.cloneNode(!0).lastChild.defaultValue;var re=/^key/,ie=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,oe=/^([^.]*)(?:\.(.+)|)/;function se(){return!0}function ae(){return!1}function ue(){try{return k.activeElement}catch(e){}}function le(e,t,n,r,i,o){var s,a;if("object"==typeof t){for(a in"string"!=typeof n&&(r=r||n,n=void 0),t)le(e,a,n,r,t[a],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ae;else if(!i)return e;return 1===o&&(s=i,(i=function(e){return E().off(e),s.apply(this,arguments)}).guid=s.guid||(s.guid=E.guid++)),e.each(function(){E.event.add(this,t,i,r,n)})}E.event={global:{},add:function(t,e,n,r,i){var o,s,a,u,l,c,f,p,d,h,g,v=M.get(t);if(v)for(n.handler&&(n=(o=n).handler,i=o.selector),n.guid||(n.guid=E.guid++),(u=v.events)||(u=v.events={}),(s=v.handle)||(s=v.handle=function(e){return void 0!==E&&E.event.triggered!==e.type?E.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(q)||[""]).length;l--;)d=g=(a=oe.exec(e[l])||[])[1],h=(a[2]||"").split(".").sort(),d&&(f=E.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=E.event.special[d]||{},c=E.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&E.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,s)||t.addEventListener&&t.addEventListener(d,s)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),E.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,s,a,u,l,c,f,p,d,h,g,v=M.hasData(e)&&M.get(e);if(v&&(u=v.events)){for(l=(t=(t||"").match(q)||[""]).length;l--;)if(d=g=(a=oe.exec(t[l])||[])[1],h=(a[2]||"").split(".").sort(),d){for(f=E.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],a=a[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));s&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||E.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)E.event.remove(e,d+t[l],n,r,!0);E.isEmptyObject(u)&&M.remove(e,"handle events")}},dispatch:function(e){e=E.event.fix(e);var t,n,r,i,o,s,a=c.call(arguments),u=(M.get(this,"events")||{})[e.type]||[],l=E.event.special[e.type]||{};if((a[0]=e).delegateTarget=this,!l.preDispatch||!1!==l.preDispatch.call(this,e)){for(s=E.event.handlers.call(this,e,u),t=0;(i=s[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,void 0!==(r=((E.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a))&&!1===(e.result=r)&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!==this;u=u.parentNode||this)if(1===u.nodeType&&(!0!==u.disabled||"click"!==e.type)){for(r=[],n=0;n<a;n++)void 0===r[i=(o=t[n]).selector+" "]&&(r[i]=o.needsContext?-1<E(i,this).index(u):E.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&s.push({elem:u,handlers:r})}return a<t.length&&s.push({elem:this,handlers:t.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,o=t.button;return null==e.pageX&&null!=t.clientX&&(r=(n=e.target.ownerDocument||k).documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||void 0===o||(e.which=1&o?1:2&o?3:4&o?2:0),e}},fix:function(e){if(e[E.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];for(s||(this.fixHooks[i]=s=ie.test(i)?this.mouseHooks:re.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new E.Event(o),t=r.length;t--;)e[n=r[t]]=o[n];return e.target||(e.target=k),3===e.target.nodeType&&(e.target=e.target.parentNode),s.filter?s.filter(e,o):e},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ue()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===ue()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&E.nodeName(this,"input"))return this.click(),!1},_default:function(e){return E.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},E.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},E.Event=function(e,t){if(!(this instanceof E.Event))return new E.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?se:ae):this.type=e,t&&E.extend(this,t),this.timeStamp=e&&e.timeStamp||E.now(),this[E.expando]=!0},E.Event.prototype={constructor:E.Event,isDefaultPrevented:ae,isPropagationStopped:ae,isImmediatePropagationStopped:ae,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=se,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=se,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=se,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},E.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){E.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||E.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),E.fn.extend({on:function(e,t,n,r){return le(this,e,t,n,r)},one:function(e,t,n,r){return le(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,E(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ae),this.each(function(){E.event.remove(this,e,n,t)})}});var ce=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,fe=/<script|<style|<link/i,pe=/checked\s*(?:[^=]|=\s*.checked.)/i,de=/^true\/(.*)/,he=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function ge(e,t){return E.nodeName(e,"table")&&E.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ve(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function me(e){var t=de.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function ye(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(M.hasData(e)&&(o=M.access(e),s=M.set(t,o),l=o.events))for(i in delete s.handle,s.events={},l)for(n=0,r=l[i].length;n<r;n++)E.event.add(t,i,l[i][n]);I.hasData(e)&&(a=I.access(e),u=E.extend({},a),I.set(t,u))}}function xe(n,r,i,o){r=g.apply([],r);var e,t,s,a,u,l,c=0,f=n.length,p=f-1,d=r[0],h=E.isFunction(d);if(h||1<f&&"string"==typeof d&&!v.checkClone&&pe.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),xe(t,r,i,o)});if(f&&(t=(e=ne(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(a=(s=E.map(J(e,"script"),ve)).length;c<f;c++)u=e,c!==p&&(u=E.clone(u,!0,!0),a&&E.merge(s,J(u,"script"))),i.call(n[c],u,c);if(a)for(l=s[s.length-1].ownerDocument,E.map(s,me),c=0;c<a;c++)u=s[c],Q.test(u.type||"")&&!M.access(u,"globalEval")&&E.contains(l,u)&&(u.src?E._evalUrl&&E._evalUrl(u.src):E.globalEval(u.textContent.replace(he,"")))}return n}function be(e,t,n){for(var r,i=t?E.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||E.cleanData(J(r)),r.parentNode&&(n&&E.contains(r.ownerDocument,r)&&K(J(r,"script")),r.parentNode.removeChild(r));return e}E.extend({htmlPrefilter:function(e){return e.replace(ce,"<$1></$2>")},clone:function(e,t,n){var r,i,o,s,a,u,l,c=e.cloneNode(!0),f=E.contains(e.ownerDocument,e);if(!(v.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||E.isXMLDoc(e)))for(s=J(c),r=0,i=(o=J(e)).length;r<i;r++)a=o[r],u=s[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&U.test(a.type)?u.checked=a.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=a.defaultValue);if(t)if(n)for(o=o||J(e),s=s||J(c),r=0,i=o.length;r<i;r++)ye(o[r],s[r]);else ye(e,c);return 0<(s=J(c,"script")).length&&K(s,!f&&J(e,"script")),c},cleanData:function(e){for(var t,n,r,i=E.event.special,o=0;void 0!==(n=e[o]);o++)if(P(n)){if(t=n[M.expando]){if(t.events)for(r in t.events)i[r]?E.event.remove(n,r):E.removeEvent(n,r,t.handle);n[M.expando]=void 0}n[I.expando]&&(n[I.expando]=void 0)}}}),E.fn.extend({domManip:xe,detach:function(e){return be(this,e,!0)},remove:function(e){return be(this,e)},text:function(e){return O(this,function(e){return void 0===e?E.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return xe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||ge(this,e).appendChild(e)})},prepend:function(){return xe(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=ge(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return xe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return xe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(E.cleanData(J(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return E.clone(this,e,t)})},html:function(e){return O(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!fe.test(e)&&!G[(V.exec(e)||["",""])[1].toLowerCase()]){e=E.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(E.cleanData(J(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return xe(this,arguments,function(e){var t=this.parentNode;E.inArray(this,n)<0&&(E.cleanData(J(this)),t&&t.replaceChild(e,this))},n)}}),E.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,s){E.fn[e]=function(e){for(var t,n=[],r=E(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),E(r[o])[s](t),a.apply(n,t.get());return this.pushStack(n)}});var we,Te={HTML:"block",BODY:"block"};function Ce(e,t){var n=E(t.createElement(e)).appendTo(t.body),r=E.css(n[0],"display");return n.detach(),r}function ke(e){var t=k,n=Te[e];return n||("none"!==(n=Ce(e,t))&&n||((t=(we=(we||E("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement))[0].contentDocument).write(),t.close(),n=Ce(e,t),we.detach()),Te[e]=n),n}var Ee=/^margin/,Se=new RegExp("^("+B+")(?!px)[a-z%]+$","i"),Ne=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},je=function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=s[o];return i},De=k.documentElement;function Ae(e,t,n){var r,i,o,s,a=e.style;return""!==(s=(n=n||Ne(e))?n.getPropertyValue(t)||n[t]:void 0)&&void 0!==s||E.contains(e.ownerDocument,e)||(s=E.style(e,t)),n&&!v.pixelMarginRight()&&Se.test(s)&&Ee.test(t)&&(r=a.width,i=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=s,s=n.width,a.width=r,a.minWidth=i,a.maxWidth=o),void 0!==s?s+"":s}function Le(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){var t,n,r,i,o=k.createElement("div"),s=k.createElement("div");function e(){s.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",s.innerHTML="",De.appendChild(o);var e=C.getComputedStyle(s);t="1%"!==e.top,i="2px"===e.marginLeft,n="4px"===e.width,s.style.marginRight="50%",r="4px"===e.marginRight,De.removeChild(o)}s.style&&(s.style.backgroundClip="content-box",s.cloneNode(!0).style.backgroundClip="",v.clearCloneStyle="content-box"===s.style.backgroundClip,o.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",o.appendChild(s),E.extend(v,{pixelPosition:function(){return e(),t},boxSizingReliable:function(){return null==n&&e(),n},pixelMarginRight:function(){return null==n&&e(),r},reliableMarginLeft:function(){return null==n&&e(),i},reliableMarginRight:function(){var e,t=s.appendChild(k.createElement("div"));return t.style.cssText=s.style.cssText="-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",t.style.marginRight=t.style.width="0",s.style.width="1px",De.appendChild(o),e=!parseFloat(C.getComputedStyle(t).marginRight),De.removeChild(o),s.removeChild(t),e}}))}();var qe=/^(none|table(?!-c[ea]).+)/,He={position:"absolute",visibility:"hidden",display:"block"},Oe={letterSpacing:"0",fontWeight:"400"},Pe=["Webkit","O","Moz","ms"],Fe=k.createElement("div").style;function Me(e){if(e in Fe)return e;for(var t=e[0].toUpperCase()+e.slice(1),n=Pe.length;n--;)if((e=Pe[n]+t)in Fe)return e}function Ie(e,t,n){var r=_.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Re(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;o<4;o+=2)"margin"===n&&(s+=E.css(e,n+X[o],!0,i)),r?("content"===n&&(s-=E.css(e,"padding"+X[o],!0,i)),"margin"!==n&&(s-=E.css(e,"border"+X[o]+"Width",!0,i))):(s+=E.css(e,"padding"+X[o],!0,i),"padding"!==n&&(s+=E.css(e,"border"+X[o]+"Width",!0,i)));return s}function $e(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Ne(e),s="border-box"===E.css(e,"boxSizing",!1,o);if(i<=0||null==i){if(((i=Ae(e,t,o))<0||null==i)&&(i=e.style[t]),Se.test(i))return i;r=s&&(v.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+Re(e,t,n||(s?"border":"content"),r,o)+"px"}function We(e,t){for(var n,r,i,o=[],s=0,a=e.length;s<a;s++)(r=e[s]).style&&(o[s]=M.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&z(r)&&(o[s]=M.access(r,"olddisplay",ke(r.nodeName)))):(i=z(r),"none"===n&&i||M.set(r,"olddisplay",i?n:E.css(r,"display"))));for(s=0;s<a;s++)(r=e[s]).style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}function Be(e,t,n,r,i){return new Be.prototype.init(e,t,n,r,i)}E.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ae(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=E.camelCase(t),u=e.style;if(t=E.cssProps[a]||(E.cssProps[a]=Me(a)||a),s=E.cssHooks[t]||E.cssHooks[a],void 0===n)return s&&"get"in s&&void 0!==(i=s.get(e,!1,r))?i:u[t];"string"===(o=typeof n)&&(i=_.exec(n))&&i[1]&&(n=Y(e,t,i),o="number"),null!=n&&n==n&&("number"===o&&(n+=i&&i[3]||(E.cssNumber[a]?"":"px")),v.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&void 0===(n=s.set(e,n,r))||(u[t]=n))}},css:function(e,t,n,r){var i,o,s,a=E.camelCase(t);return t=E.cssProps[a]||(E.cssProps[a]=Me(a)||a),(s=E.cssHooks[t]||E.cssHooks[a])&&"get"in s&&(i=s.get(e,!0,n)),void 0===i&&(i=Ae(e,t,r)),"normal"===i&&t in Oe&&(i=Oe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),E.each(["height","width"],function(e,s){E.cssHooks[s]={get:function(e,t,n){if(t)return qe.test(E.css(e,"display"))&&0===e.offsetWidth?je(e,He,function(){return $e(e,s,n)}):$e(e,s,n)},set:function(e,t,n){var r,i=n&&Ne(e),o=n&&Re(e,s,n,"border-box"===E.css(e,"boxSizing",!1,i),i);return o&&(r=_.exec(t))&&"px"!==(r[3]||"px")&&(e.style[s]=t,t=E.css(e,s)),Ie(0,t,o)}}}),E.cssHooks.marginLeft=Le(v.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Ae(e,"marginLeft"))||e.getBoundingClientRect().left-je(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),E.cssHooks.marginRight=Le(v.reliableMarginRight,function(e,t){if(t)return je(e,{display:"inline-block"},Ae,[e,"marginRight"])}),E.each({margin:"",padding:"",border:"Width"},function(i,o){E.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+X[t]+o]=r[t]||r[t-2]||r[0];return n}},Ee.test(i)||(E.cssHooks[i+o].set=Ie)}),E.fn.extend({css:function(e,t){return O(this,function(e,t,n){var r,i,o={},s=0;if(E.isArray(t)){for(r=Ne(e),i=t.length;s<i;s++)o[t[s]]=E.css(e,t[s],!1,r);return o}return void 0!==n?E.style(e,t,n):E.css(e,t)},e,t,1<arguments.length)},show:function(){return We(this,!0)},hide:function(){return We(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){z(this)?E(this).show():E(this).hide()})}}),((E.Tween=Be).prototype={constructor:Be,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||E.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(E.cssNumber[n]?"":"px")},cur:function(){var e=Be.propHooks[this.prop];return e&&e.get?e.get(this):Be.propHooks._default.get(this)},run:function(e){var t,n=Be.propHooks[this.prop];return this.options.duration?this.pos=t=E.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Be.propHooks._default.set(this),this}}).init.prototype=Be.prototype,(Be.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=E.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){E.fx.step[e.prop]?E.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[E.cssProps[e.prop]]&&!E.cssHooks[e.prop]?e.elem[e.prop]=e.now:E.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Be.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},E.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},E.fx=Be.prototype.init,E.fx.step={};var _e,Xe,ze,Ye,Ue,Ve=/^(?:toggle|show|hide)$/,Qe=/queueHooks$/;function Ge(){return C.setTimeout(function(){_e=void 0}),_e=E.now()}function Je(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=X[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function Ke(e,t,n){for(var r,i=(Ze.tweeners[t]||[]).concat(Ze.tweeners["*"]),o=0,s=i.length;o<s;o++)if(r=i[o].call(n,t,e))return r}function Ze(o,e,t){var n,s,r=0,i=Ze.prefilters.length,a=E.Deferred().always(function(){delete u.elem}),u=function(){if(s)return!1;for(var e=_e||Ge(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return a.notifyWith(o,[l,n,t]),n<1&&i?t:(a.resolveWith(o,[l]),!1)},l=a.promise({elem:o,props:E.extend({},e),opts:E.extend(!0,{specialEasing:{},easing:E.easing._default},t),originalProperties:e,originalOptions:t,startTime:_e||Ge(),duration:t.duration,tweens:[],createTween:function(e,t){var n=E.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(s)return this;for(s=!0;t<n;t++)l.tweens[t].run(1);return e?(a.notifyWith(o,[l,1,0]),a.resolveWith(o,[l,e])):a.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,s;for(n in e)if(i=t[r=E.camelCase(n)],o=e[n],E.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(s=E.cssHooks[r])&&"expand"in s)for(n in o=s.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=Ze.prefilters[r].call(l,o,c,l.opts))return E.isFunction(n.stop)&&(E._queueHooks(l.elem,l.opts.queue).stop=E.proxy(n.stop,n)),n;return E.map(c,Ke,l),E.isFunction(l.opts.start)&&l.opts.start.call(o,l),E.fx.timer(E.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}E.Animation=E.extend(Ze,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return Y(n.elem,e,_.exec(t),n),n}]},tweener:function(e,t){E.isFunction(e)?(t=e,e=["*"]):e=e.match(q);for(var n,r=0,i=e.length;r<i;r++)n=e[r],Ze.tweeners[n]=Ze.tweeners[n]||[],Ze.tweeners[n].unshift(t)},prefilters:[function(t,e,n){var r,i,o,s,a,u,l,c=this,f={},p=t.style,d=t.nodeType&&z(t),h=M.get(t,"fxshow");for(r in n.queue||(null==(a=E._queueHooks(t,"fx")).unqueued&&(a.unqueued=0,u=a.empty.fire,a.empty.fire=function(){a.unqueued||u()}),a.unqueued++,c.always(function(){c.always(function(){a.unqueued--,E.queue(t,"fx").length||a.empty.fire()})})),1===t.nodeType&&("height"in e||"width"in e)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===("none"===(l=E.css(t,"display"))?M.get(t,"olddisplay")||ke(t.nodeName):l)&&"none"===E.css(t,"float")&&(p.display="inline-block")),n.overflow&&(p.overflow="hidden",c.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]})),e)if(i=e[r],Ve.exec(i)){if(delete e[r],o=o||"toggle"===i,i===(d?"hide":"show")){if("show"!==i||!h||void 0===h[r])continue;d=!0}f[r]=h&&h[r]||E.style(t,r)}else l=void 0;if(E.isEmptyObject(f))"inline"===("none"===l?ke(t.nodeName):l)&&(p.display=l);else for(r in h?"hidden"in h&&(d=h.hidden):h=M.access(t,"fxshow",{}),o&&(h.hidden=!d),d?E(t).show():c.done(function(){E(t).hide()}),c.done(function(){var e;for(e in M.remove(t,"fxshow"),f)E.style(t,e,f[e])}),f)s=Ke(d?h[r]:0,r,c),r in h||(h[r]=s.start,d&&(s.end=s.start,s.start="width"===r||"height"===r?1:0))}],prefilter:function(e,t){t?Ze.prefilters.unshift(e):Ze.prefilters.push(e)}}),E.speed=function(e,t,n){var r=e&&"object"==typeof e?E.extend({},e):{complete:n||!n&&t||E.isFunction(e)&&e,duration:e,easing:n&&t||t&&!E.isFunction(t)&&t};return r.duration=E.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in E.fx.speeds?E.fx.speeds[r.duration]:E.fx.speeds._default,null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){E.isFunction(r.old)&&r.old.call(this),r.queue&&E.dequeue(this,r.queue)},r},E.fn.extend({fadeTo:function(e,t,n,r){return this.filter(z).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=E.isEmptyObject(t),o=E.speed(e,n,r),s=function(){var e=Ze(this,E.extend({},t),o);(i||M.get(this,"finish"))&&e.stop(!0)};return s.finish=s,i||!1===o.queue?this.each(s):this.queue(o.queue,s)},stop:function(i,e,o){var s=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=E.timers,r=M.get(this);if(t)r[t]&&r[t].stop&&s(r[t]);else for(t in r)r[t]&&r[t].stop&&Qe.test(t)&&s(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||E.dequeue(this,i)})},finish:function(s){return!1!==s&&(s=s||"fx"),this.each(function(){var e,t=M.get(this),n=t[s+"queue"],r=t[s+"queueHooks"],i=E.timers,o=n?n.length:0;for(t.finish=!0,E.queue(this,s,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===s&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),E.each(["toggle","show","hide"],function(e,r){var i=E.fn[r];E.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(Je(r,!0),e,t,n)}}),E.each({slideDown:Je("show"),slideUp:Je("hide"),slideToggle:Je("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){E.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),E.timers=[],E.fx.tick=function(){var e,t=0,n=E.timers;for(_e=E.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||E.fx.stop(),_e=void 0},E.fx.timer=function(e){E.timers.push(e),e()?E.fx.start():E.timers.pop()},E.fx.interval=13,E.fx.start=function(){Xe||(Xe=C.setInterval(E.fx.tick,E.fx.interval))},E.fx.stop=function(){C.clearInterval(Xe),Xe=null},E.fx.speeds={slow:600,fast:200,_default:400},E.fn.delay=function(r,e){return r=E.fx&&E.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ze=k.createElement("input"),Ye=k.createElement("select"),Ue=Ye.appendChild(k.createElement("option")),ze.type="checkbox",v.checkOn=""!==ze.value,v.optSelected=Ue.selected,Ye.disabled=!0,v.optDisabled=!Ue.disabled,(ze=k.createElement("input")).value="t",ze.type="radio",v.radioValue="t"===ze.value;var et,tt=E.expr.attrHandle;E.fn.extend({attr:function(e,t){return O(this,E.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){E.removeAttr(this,e)})}}),E.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?E.prop(e,t,n):(1===o&&E.isXMLDoc(e)||(t=t.toLowerCase(),i=E.attrHooks[t]||(E.expr.match.bool.test(t)?et:void 0)),void 0!==n?null===n?void E.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=E.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!v.radioValue&&"radio"===t&&E.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(q);if(o&&1===e.nodeType)for(;n=o[i++];)r=E.propFix[n]||n,E.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)}}),et={set:function(e,t,n){return!1===t?E.removeAttr(e,n):e.setAttribute(n,n),n}},E.each(E.expr.match.bool.source.match(/\w+/g),function(e,t){var o=tt[t]||E.find.attr;tt[t]=function(e,t,n){var r,i;return n||(i=tt[t],tt[t]=r,r=null!=o(e,t,n)?t.toLowerCase():null,tt[t]=i),r}});var nt=/^(?:input|select|textarea|button)$/i,rt=/^(?:a|area)$/i;E.fn.extend({prop:function(e,t){return O(this,E.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[E.propFix[e]||e]})}}),E.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&E.isXMLDoc(e)||(t=E.propFix[t]||t,i=E.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=E.find.attr(e,"tabindex");return t?parseInt(t,10):nt.test(e.nodeName)||rt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),v.optSelected||(E.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),E.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){E.propFix[this.toLowerCase()]=this});var it=/[\t\r\n\f]/g;function ot(e){return e.getAttribute&&e.getAttribute("class")||""}E.fn.extend({addClass:function(t){var e,n,r,i,o,s,a,u=0;if(E.isFunction(t))return this.each(function(e){E(this).addClass(t.call(this,e,ot(this)))});if("string"==typeof t&&t)for(e=t.match(q)||[];n=this[u++];)if(i=ot(n),r=1===n.nodeType&&(" "+i+" ").replace(it," ")){for(s=0;o=e[s++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(a=E.trim(r))&&n.setAttribute("class",a)}return this},removeClass:function(t){var e,n,r,i,o,s,a,u=0;if(E.isFunction(t))return this.each(function(e){E(this).removeClass(t.call(this,e,ot(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof t&&t)for(e=t.match(q)||[];n=this[u++];)if(i=ot(n),r=1===n.nodeType&&(" "+i+" ").replace(it," ")){for(s=0;o=e[s++];)for(;-1<r.indexOf(" "+o+" ");)r=r.replace(" "+o+" "," ");i!==(a=E.trim(r))&&n.setAttribute("class",a)}return this},toggleClass:function(i,t){var o=typeof i;return"boolean"==typeof t&&"string"===o?t?this.addClass(i):this.removeClass(i):E.isFunction(i)?this.each(function(e){E(this).toggleClass(i.call(this,e,ot(this),t),t)}):this.each(function(){var e,t,n,r;if("string"===o)for(t=0,n=E(this),r=i.match(q)||[];e=r[t++];)n.hasClass(e)?n.removeClass(e):n.addClass(e);else void 0!==i&&"boolean"!==o||((e=ot(this))&&M.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":M.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&-1<(" "+ot(n)+" ").replace(it," ").indexOf(t))return!0;return!1}});var st=/\r/g,at=/[\x20\t\r\n\f]+/g;E.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=E.isFunction(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,E(this).val()):n)?t="":"number"==typeof t?t+="":E.isArray(t)&&(t=E.map(t,function(e){return null==e?"":e+""})),(r=E.valHooks[this.type]||E.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=E.valHooks[t.type]||E.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(st,""):null==e?"":e:void 0}}),E.extend({valHooks:{option:{get:function(e){var t=E.find.attr(e,"value");return null!=t?t:E.trim(E.text(e)).replace(at," ")}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,s=o?null:[],a=o?i+1:r.length,u=i<0?a:o?i:0;u<a;u++)if(((n=r[u]).selected||u===i)&&(v.optDisabled?!n.disabled:null===n.getAttribute("disabled"))&&(!n.parentNode.disabled||!E.nodeName(n.parentNode,"optgroup"))){if(t=E(n).val(),o)return t;s.push(t)}return s},set:function(e,t){for(var n,r,i=e.options,o=E.makeArray(t),s=i.length;s--;)((r=i[s]).selected=-1<E.inArray(E.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),E.each(["radio","checkbox"],function(){E.valHooks[this]={set:function(e,t){if(E.isArray(t))return e.checked=-1<E.inArray(E(e).val(),t)}},v.checkOn||(E.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var ut=/^(?:focusinfocus|focusoutblur)$/;E.extend(E.event,{trigger:function(e,t,n,r){var i,o,s,a,u,l,c,f=[n||k],p=h.call(e,"type")?e.type:e,d=h.call(e,"namespace")?e.namespace.split("."):[];if(o=s=n=n||k,3!==n.nodeType&&8!==n.nodeType&&!ut.test(p+E.event.triggered)&&(-1<p.indexOf(".")&&(p=(d=p.split(".")).shift(),d.sort()),u=p.indexOf(":")<0&&"on"+p,(e=e[E.expando]?e:new E.Event(p,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=d.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:E.makeArray(t,[e]),c=E.event.special[p]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!E.isWindow(n)){for(a=c.delegateType||p,ut.test(a+p)||(o=o.parentNode);o;o=o.parentNode)f.push(o),s=o;s===(n.ownerDocument||k)&&f.push(s.defaultView||s.parentWindow||C)}for(i=0;(o=f[i++])&&!e.isPropagationStopped();)e.type=1<i?a:c.bindType||p,(l=(M.get(o,"events")||{})[e.type]&&M.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&P(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=p,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(f.pop(),t)||!P(n)||u&&E.isFunction(n[p])&&!E.isWindow(n)&&((s=n[u])&&(n[u]=null),n[E.event.triggered=p](),E.event.triggered=void 0,s&&(n[u]=s)),e.result}},simulate:function(e,t,n){var r=E.extend(new E.Event,n,{type:e,isSimulated:!0});E.event.trigger(r,null,t)}}),E.fn.extend({trigger:function(e,t){return this.each(function(){E.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return E.event.trigger(e,t,n,!0)}}),E.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,n){E.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),E.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.focusin="onfocusin"in C,v.focusin||E.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){E.event.simulate(r,e.target,E.event.fix(e))};E.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=M.access(e,r);t||e.addEventListener(n,i,!0),M.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=M.access(e,r)-1;t?M.access(e,r,t):(e.removeEventListener(n,i,!0),M.remove(e,r))}}});var lt=C.location,ct=E.now(),ft=/\?/;E.parseJSON=function(e){return JSON.parse(e+"")},E.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||E.error("Invalid XML: "+e),t};var pt=/#.*$/,dt=/([?&])_=[^&]*/,ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,gt=/^(?:GET|HEAD)$/,vt=/^\/\//,mt={},yt={},xt="*/".concat("*"),bt=k.createElement("a");function wt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(q)||[];if(E.isFunction(t))for(;n=i[r++];)"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Tt(t,i,o,s){var a={},u=t===yt;function l(e){var r;return a[e]=!0,E.each(t[e]||[],function(e,t){var n=t(i,o,s);return"string"!=typeof n||u||a[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!a["*"]&&l("*")}function Ct(e,t){var n,r,i=E.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&E.extend(!0,e,r),e}bt.href=lt.href,E.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:lt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(lt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":xt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":E.parseJSON,"text xml":E.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ct(Ct(e,E.ajaxSettings),t):Ct(E.ajaxSettings,e)},ajaxPrefilter:wt(mt),ajaxTransport:wt(yt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,i,g=E.ajaxSetup({},t),v=g.context||g,m=g.context&&(v.nodeType||v.jquery)?E(v):E.event,y=E.Deferred(),x=E.Callbacks("once memory"),b=g.statusCode||{},o={},s={},w=0,a="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===w){if(!n)for(n={};t=ht.exec(p);)n[t[1].toLowerCase()]=t[2];t=n[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===w?p:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return w||(e=s[n]=s[n]||e,o[e]=t),this},overrideMimeType:function(e){return w||(g.mimeType=e),this},statusCode:function(e){var t;if(e)if(w<2)for(t in e)b[t]=[b[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||a;return c&&c.abort(t),u(0,t),this}};if(y.promise(T).complete=x.add,T.success=T.done,T.error=T.fail,g.url=((e||g.url||lt.href)+"").replace(pt,"").replace(vt,lt.protocol+"//"),g.type=t.method||t.type||g.method||g.type,g.dataTypes=E.trim(g.dataType||"*").toLowerCase().match(q)||[""],null==g.crossDomain){r=k.createElement("a");try{r.href=g.url,r.href=r.href,g.crossDomain=bt.protocol+"//"+bt.host!=r.protocol+"//"+r.host}catch(e){g.crossDomain=!0}}if(g.data&&g.processData&&"string"!=typeof g.data&&(g.data=E.param(g.data,g.traditional)),Tt(mt,g,t,T),2===w)return T;for(i in(h=E.event&&g.global)&&0==E.active++&&E.event.trigger("ajaxStart"),g.type=g.type.toUpperCase(),g.hasContent=!gt.test(g.type),f=g.url,g.hasContent||(g.data&&(f=g.url+=(ft.test(f)?"&":"?")+g.data,delete g.data),!1===g.cache&&(g.url=dt.test(f)?f.replace(dt,"$1_="+ct++):f+(ft.test(f)?"&":"?")+"_="+ct++)),g.ifModified&&(E.lastModified[f]&&T.setRequestHeader("If-Modified-Since",E.lastModified[f]),E.etag[f]&&T.setRequestHeader("If-None-Match",E.etag[f])),(g.data&&g.hasContent&&!1!==g.contentType||t.contentType)&&T.setRequestHeader("Content-Type",g.contentType),T.setRequestHeader("Accept",g.dataTypes[0]&&g.accepts[g.dataTypes[0]]?g.accepts[g.dataTypes[0]]+("*"!==g.dataTypes[0]?", "+xt+"; q=0.01":""):g.accepts["*"]),g.headers)T.setRequestHeader(i,g.headers[i]);if(g.beforeSend&&(!1===g.beforeSend.call(v,T,g)||2===w))return T.abort();for(i in a="abort",{success:1,error:1,complete:1})T[i](g[i]);if(c=Tt(yt,g,t,T)){if(T.readyState=1,h&&m.trigger("ajaxSend",[T,g]),2===w)return T;g.async&&0<g.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},g.timeout));try{w=1,c.send(o,u)}catch(e){if(!(w<2))throw e;u(-1,e)}}else u(-1,"No Transport");function u(e,t,n,r){var i,o,s,a,u,l=t;2!==w&&(w=2,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(a=function(e,t,n){for(var r,i,o,s,a=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in a)if(a[i]&&a[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}s||(s=i)}o=o||s}if(o)return o!==u[0]&&u.unshift(o),n[o]}(g,T,n)),a=function(e,t,n,r){var i,o,s,a,u,l={},c=e.dataTypes.slice();if(c[1])for(s in e.converters)l[s.toLowerCase()]=e.converters[s];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(s=l[u+" "+o]||l["* "+o]))for(i in l)if((a=i.split(" "))[1]===o&&(s=l[u+" "+a[0]]||l["* "+a[0]])){!0===s?s=l[i]:!0!==l[i]&&(o=a[0],c.unshift(a[1]));break}if(!0!==s)if(s&&e.throws)t=s(t);else try{t=s(t)}catch(e){return{state:"parsererror",error:s?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(g,a,T,i),i?(g.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(E.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(E.etag[f]=u)),204===e||"HEAD"===g.type?l="nocontent":304===e?l="notmodified":(l=a.state,o=a.data,i=!(s=a.error))):(s=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?y.resolveWith(v,[o,l,T]):y.rejectWith(v,[T,l,s]),T.statusCode(b),b=void 0,h&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,g,i?o:s]),x.fireWith(v,[T,l]),h&&(m.trigger("ajaxComplete",[T,g]),--E.active||E.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return E.get(e,t,n,"json")},getScript:function(e,t){return E.get(e,void 0,t,"script")}}),E.each(["get","post"],function(e,i){E[i]=function(e,t,n,r){return E.isFunction(t)&&(r=r||n,n=t,t=void 0),E.ajax(E.extend({url:e,type:i,dataType:r,data:t,success:n},E.isPlainObject(e)&&e))}}),E._evalUrl=function(e){return E.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,throws:!0})},E.fn.extend({wrapAll:function(t){var e;return E.isFunction(t)?this.each(function(e){E(this).wrapAll(t.call(this,e))}):(this[0]&&(e=E(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(n){return E.isFunction(n)?this.each(function(e){E(this).wrapInner(n.call(this,e))}):this.each(function(){var e=E(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=E.isFunction(t);return this.each(function(e){E(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(){return this.parent().each(function(){E.nodeName(this,"body")||E(this).replaceWith(this.childNodes)}).end()}}),E.expr.filters.hidden=function(e){return!E.expr.filters.visible(e)},E.expr.filters.visible=function(e){return 0<e.offsetWidth||0<e.offsetHeight||0<e.getClientRects().length};var kt=/%20/g,Et=/\[\]$/,St=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function Dt(n,e,r,i){var t;if(E.isArray(e))E.each(e,function(e,t){r||Et.test(n)?i(n,t):Dt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==E.type(e))i(n,e);else for(t in e)Dt(n+"["+t+"]",e[t],r,i)}E.param=function(e,t){var n,r=[],i=function(e,t){t=E.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=E.ajaxSettings&&E.ajaxSettings.traditional),E.isArray(e)||e.jquery&&!E.isPlainObject(e))E.each(e,function(){i(this.name,this.value)});else for(n in e)Dt(n,e[n],t,i);return r.join("&").replace(kt,"+")},E.fn.extend({serialize:function(){return E.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=E.prop(this,"elements");return e?E.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!E(this).is(":disabled")&&jt.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!U.test(e))}).map(function(e,t){var n=E(this).val();return null==n?null:E.isArray(n)?E.map(n,function(e){return{name:t.name,value:e.replace(St,"\r\n")}}):{name:t.name,value:n.replace(St,"\r\n")}}).get()}}),E.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var At={0:200,1223:204},Lt=E.ajaxSettings.xhr();v.cors=!!Lt&&"withCredentials"in Lt,v.ajax=Lt=!!Lt,E.ajaxTransport(function(i){var o,s;if(v.cors||Lt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=s=r.onload=r.onerror=r.onabort=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(At[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),s=r.onerror=o("error"),void 0!==r.onabort?r.onabort=s:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&s()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),E.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return E.globalEval(e),e}}}),E.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),E.ajaxTransport("script",function(n){var r,i;if(n.crossDomain)return{send:function(e,t){r=E("<script>").prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),k.head.appendChild(r[0])},abort:function(){i&&i()}}});var qt=[],Ht=/(=)\?(?=&|$)|\?\?/;E.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=qt.pop()||E.expando+"_"+ct++;return this[e]=!0,e}}),E.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,s=!1!==e.jsonp&&(Ht.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ht.test(e.data)&&"data");if(s||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=E.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,s?e[s]=e[s].replace(Ht,"$1"+r):!1!==e.jsonp&&(e.url+=(ft.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||E.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?E(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,qt.push(r)),o&&E.isFunction(i)&&i(o[0]),o=i=void 0}),"script"}),E.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||k;var r=b.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=ne([e],t,i),i&&i.length&&E(i).remove(),E.merge([],r.childNodes))};var Ot=E.fn.load;function Pt(e){return E.isWindow(e)?e:9===e.nodeType&&e.defaultView}E.fn.load=function(e,t,n){if("string"!=typeof e&&Ot)return Ot.apply(this,arguments);var r,i,o,s=this,a=e.indexOf(" ");return-1<a&&(r=E.trim(e.slice(a)),e=e.slice(0,a)),E.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<s.length&&E.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,s.html(r?E("<div>").append(E.parseHTML(e)).find(r):e)}).always(n&&function(e,t){s.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},E.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){E.fn[t]=function(e){return this.on(t,e)}}),E.expr.filters.animated=function(t){return E.grep(E.timers,function(e){return t===e.elem}).length},E.offset={setOffset:function(e,t,n){var r,i,o,s,a,u,l=E.css(e,"position"),c=E(e),f={};"static"===l&&(e.style.position="relative"),a=c.offset(),o=E.css(e,"top"),u=E.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(s=(r=c.position()).top,i=r.left):(s=parseFloat(o)||0,i=parseFloat(u)||0),E.isFunction(t)&&(t=t.call(e,n,E.extend({},a))),null!=t.top&&(f.top=t.top-a.top+s),null!=t.left&&(f.left=t.left-a.left+i),"using"in t?t.using.call(e,f):c.css(f)}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n,r=this[0],i={top:0,left:0},o=r&&r.ownerDocument;return o?(e=o.documentElement,E.contains(e,r)?(i=r.getBoundingClientRect(),n=Pt(o),{top:i.top+n.pageYOffset-e.clientTop,left:i.left+n.pageXOffset-e.clientLeft}):i):void 0},position:function(){if(this[0]){var e,t,n=this[0],r={top:0,left:0};return"fixed"===E.css(n,"position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),E.nodeName(e[0],"html")||(r=e.offset()),r.top+=E.css(e[0],"borderTopWidth",!0),r.left+=E.css(e[0],"borderLeftWidth",!0)),{top:t.top-r.top-E.css(n,"marginTop",!0),left:t.left-r.left-E.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===E.css(e,"position");)e=e.offsetParent;return e||De})}}),E.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;E.fn[t]=function(e){return O(this,function(e,t,n){var r=Pt(e);if(void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),E.each(["top","left"],function(e,n){E.cssHooks[n]=Le(v.pixelPosition,function(e,t){if(t)return t=Ae(e,n),Se.test(t)?E(e).position()[n]+"px":t})}),E.each({Height:"height",Width:"width"},function(o,s){E.each({padding:"inner"+o,content:s,"":"outer"+o},function(r,e){E.fn[e]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return O(this,function(e,t,n){var r;return E.isWindow(e)?e.document.documentElement["client"+o]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+o],r["scroll"+o],e.body["offset"+o],r["offset"+o],r["client"+o])):void 0===n?E.css(e,t,i):E.style(e,t,n,i)},s,n?e:void 0,n,null)}})}),E.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},size:function(){return this.length}}),E.fn.andSelf=E.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return E});var Ft=C.jQuery,Mt=C.$;return E.noConflict=function(e){return C.$===E&&(C.$=Mt),e&&C.jQuery===E&&(C.jQuery=Ft),E},e||(C.jQuery=C.$=E),E}),function(){"use strict";function a(i,e){var t;if(e=e||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=e.touchBoundary||10,this.layer=i,this.tapDelay=e.tapDelay||200,this.tapTimeout=e.tapTimeout||700,!a.notNeeded(i)){for(var n=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],r=0,o=n.length;r<o;r++)this[n[r]]=s(this[n[r]],this);u&&(i.addEventListener("mouseover",this.onMouse,!0),i.addEventListener("mousedown",this.onMouse,!0),i.addEventListener("mouseup",this.onMouse,!0)),i.addEventListener("click",this.onClick,!0),i.addEventListener("touchstart",this.onTouchStart,!1),i.addEventListener("touchmove",this.onTouchMove,!1),i.addEventListener("touchend",this.onTouchEnd,!1),i.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(i.removeEventListener=function(e,t,n){var r=Node.prototype.removeEventListener;"click"===e?r.call(i,e,t.hijacked||t,n):r.call(i,e,t,n)},i.addEventListener=function(e,t,n){var r=Node.prototype.addEventListener;"click"===e?r.call(i,e,t.hijacked||(t.hijacked=function(e){e.propagationStopped||t(e)}),n):r.call(i,e,t,n)}),"function"==typeof i.onclick&&(t=i.onclick,i.addEventListener("click",function(e){t(e)},!1),i.onclick=null)}function s(e,t){return function(){return e.apply(t,arguments)}}}var e=0<=navigator.userAgent.indexOf("Windows Phone"),u=0<navigator.userAgent.indexOf("Android")&&!e,l=/iP(ad|hone|od)/.test(navigator.userAgent)&&!e,c=l&&/OS 4_\d(_\d)?/.test(navigator.userAgent),f=l&&/OS [6-7]_\d/.test(navigator.userAgent),i=0<navigator.userAgent.indexOf("BB10");a.prototype.needsClick=function(e){switch(e.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(e.disabled)return!0;break;case"input":if(l&&"file"===e.type||e.disabled)return!0;break;case"label":case"iframe":case"video":return!0}return/\bneedsclick\b/.test(e.className)},a.prototype.needsFocus=function(e){switch(e.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!u;case"input":switch(e.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!e.disabled&&!e.readOnly;default:return/\bneedsfocus\b/.test(e.className)}},a.prototype.sendClick=function(e,t){var n,r;document.activeElement&&document.activeElement!==e&&document.activeElement.blur(),r=t.changedTouches[0],(n=document.createEvent("MouseEvents")).initMouseEvent(this.determineEventType(e),!0,!0,window,1,r.screenX,r.screenY,r.clientX,r.clientY,!1,!1,!1,!1,0,null),n.forwardedTouchEvent=!0,e.dispatchEvent(n)},a.prototype.determineEventType=function(e){return u&&"select"===e.tagName.toLowerCase()?"mousedown":"click"},a.prototype.focus=function(e){var t;l&&e.setSelectionRange&&0!==e.type.indexOf("date")&&"time"!==e.type&&"month"!==e.type?(t=e.value.length,e.setSelectionRange(t,t)):e.focus()},a.prototype.updateScrollParent=function(e){var t,n;if(!(t=e.fastClickScrollParent)||!t.contains(e)){n=e;do{if(n.scrollHeight>n.offsetHeight){t=n,e.fastClickScrollParent=n;break}n=n.parentElement}while(n)}t&&(t.fastClickLastScrollTop=t.scrollTop)},a.prototype.getTargetElementFromEventTarget=function(e){return e.nodeType===Node.TEXT_NODE?e.parentNode:e},a.prototype.onTouchStart=function(e){var t,n,r;if(1<e.targetTouches.length)return!0;if(t=this.getTargetElementFromEventTarget(e.target),n=e.targetTouches[0],l){if((r=window.getSelection()).rangeCount&&!r.isCollapsed)return!0;if(!c){if(n.identifier&&n.identifier===this.lastTouchIdentifier)return e.preventDefault(),!1;this.lastTouchIdentifier=n.identifier,this.updateScrollParent(t)}}return this.trackingClick=!0,this.trackingClickStart=e.timeStamp,this.targetElement=t,this.touchStartX=n.pageX,this.touchStartY=n.pageY,e.timeStamp-this.lastClickTime<this.tapDelay&&e.preventDefault(),!0},a.prototype.touchHasMoved=function(e){var t=e.changedTouches[0],n=this.touchBoundary;return Math.abs(t.pageX-this.touchStartX)>n||Math.abs(t.pageY-this.touchStartY)>n},a.prototype.onTouchMove=function(e){return this.trackingClick&&(this.targetElement!==this.getTargetElementFromEventTarget(e.target)||this.touchHasMoved(e))&&(this.trackingClick=!1,this.targetElement=null),!0},a.prototype.findControl=function(e){return void 0!==e.control?e.control:e.htmlFor?document.getElementById(e.htmlFor):e.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},a.prototype.onTouchEnd=function(e){var t,n,r,i,o,s=this.targetElement;if(!this.trackingClick)return!0;if(e.timeStamp-this.lastClickTime<this.tapDelay)return this.cancelNextClick=!0;if(e.timeStamp-this.trackingClickStart>this.tapTimeout)return!0;if(this.cancelNextClick=!1,this.lastClickTime=e.timeStamp,n=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,f&&(o=e.changedTouches[0],(s=document.elementFromPoint(o.pageX-window.pageXOffset,o.pageY-window.pageYOffset)||s).fastClickScrollParent=this.targetElement.fastClickScrollParent),"label"===(r=s.tagName.toLowerCase())){if(t=this.findControl(s)){if(this.focus(s),u)return!1;s=t}}else if(this.needsFocus(s))return 100<e.timeStamp-n||l&&window.top!==window&&"input"===r?this.targetElement=null:(this.focus(s),this.sendClick(s,e),l&&"select"===r||(this.targetElement=null,e.preventDefault())),!1;return!(!l||c||!(i=s.fastClickScrollParent)||i.fastClickLastScrollTop===i.scrollTop)||(this.needsClick(s)||(e.preventDefault(),this.sendClick(s,e)),!1)},a.prototype.onTouchCancel=function(){this.trackingClick=!1,this.targetElement=null},a.prototype.onMouse=function(e){return!this.targetElement||(!!e.forwardedTouchEvent||(!e.cancelable||(!(!this.needsClick(this.targetElement)||this.cancelNextClick)||(e.stopImmediatePropagation?e.stopImmediatePropagation():e.propagationStopped=!0,e.stopPropagation(),e.preventDefault(),!1))))},a.prototype.onClick=function(e){var t;return this.trackingClick?(this.targetElement=null,!(this.trackingClick=!1)):"submit"===e.target.type&&0===e.detail||((t=this.onMouse(e))||(this.targetElement=null),t)},a.prototype.destroy=function(){var e=this.layer;u&&(e.removeEventListener("mouseover",this.onMouse,!0),e.removeEventListener("mousedown",this.onMouse,!0),e.removeEventListener("mouseup",this.onMouse,!0)),e.removeEventListener("click",this.onClick,!0),e.removeEventListener("touchstart",this.onTouchStart,!1),e.removeEventListener("touchmove",this.onTouchMove,!1),e.removeEventListener("touchend",this.onTouchEnd,!1),e.removeEventListener("touchcancel",this.onTouchCancel,!1)},a.notNeeded=function(e){var t,n,r;if(void 0===window.ontouchstart)return!0;if(n=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!u)return!0;if(t=document.querySelector("meta[name=viewport]")){if(-1!==t.content.indexOf("user-scalable=no"))return!0;if(31<n&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}if(i&&10<=(r=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/))[1]&&3<=r[2]&&(t=document.querySelector("meta[name=viewport]"))){if(-1!==t.content.indexOf("user-scalable=no"))return!0;if(document.documentElement.scrollWidth<=window.outerWidth)return!0}return"none"===e.style.msTouchAction||"manipulation"===e.style.touchAction||(!!(27<=+(/Firefox\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]&&(t=document.querySelector("meta[name=viewport]"))&&(-1!==t.content.indexOf("user-scalable=no")||document.documentElement.scrollWidth<=window.outerWidth))||("none"===e.style.touchAction||"manipulation"===e.style.touchAction))},a.attach=function(e,t){return new a(e,t)},"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return a}):"undefined"!=typeof module&&module.exports?(module.exports=a.attach,module.exports.FastClick=a):window.FastClick=a}(),jQuery.extend({bez:function(o){var e="bez_"+jQuery.makeArray(arguments).join("_").replace(".","p");if("function"!=typeof jQuery.easing[e]){var s=function(n,r){var o=[null,null],s=[null,null],a=[null,null],u=function(e,t){return a[t]=3*n[t],s[t]=3*(r[t]-n[t])-a[t],o[t]=1-a[t]-s[t],e*(a[t]+e*(s[t]+e*o[t]))};return function(e){return u(function(e){for(var t,n,r=e,i=0;++i<14&&(t=u(r,0)-e,!(Math.abs(t)<.001));)r-=t/(n=r,a[0]+n*(2*s[0]+3*o[0]*n));return r}(e),1)}};jQuery.easing[e]=function(e,t,n,r,i){return r*s([o[0],o[1]],[o[2],o[3]])(t/i)+n}}return e}}),function(o,s,n,e){var t=function(e,t){this.elem=e,this.$elem=o(e),this.options=t,this.metadata=this.$elem.data("plugin-options"),this.$win=o(s),this.sections={},this.didScroll=!1,this.$doc=o(n),this.docHeight=this.$doc.height()};t.defaults=(t.prototype={defaults:{navItems:"a",currentClass:"current",changeHash:!1,easing:"swing",filter:"",scrollOffset:0,scrollSpeed:750,scrollThreshold:.5,begin:!1,end:!1,scrollChange:!1},init:function(){return this.config=o.extend({},this.defaults,this.options,this.metadata),this.$nav=this.$elem.find(this.config.navItems),""!==this.config.filter&&(this.$nav=this.$nav.filter(this.config.filter)),this.$nav.on("click.onePageNav",o.proxy(this.handleClick,this)),this.getPositions(),this.bindInterval(),this.$win.on("resize.onePageNav",o.proxy(this.getPositions,this)),this},adjustNav:function(e,t){e.$elem.find("."+e.config.currentClass).removeClass(e.config.currentClass),t.addClass(e.config.currentClass)},bindInterval:function(){var e,t=this;t.$win.on("scroll.onePageNav",function(){t.didScroll=!0}),t.t=setInterval(function(){e=t.$doc.height(),t.didScroll&&(t.didScroll=!1,t.scrollChange()),e!==t.docHeight&&(t.docHeight=e,t.getPositions())},250)},getHash:function(e){return e.attr("href").split("#")[1]},getPositions:function(){var e,t,n,r=this;r.$nav.each(function(){e=r.getHash(o(this)),(n=o("#"+e)).length&&(t=n.offset().top,r.sections[e]=Math.round(t))})},getSection:function(e){var t=null,n=Math.round(this.$win.height()*this.config.scrollThreshold);for(var r in this.sections=this.sortSectionsByPosition(this.sections),this.sections)this.sections[r]-n<e&&(t=r);return t},sortSectionsByPosition:function(i){var e=[],t={};for(var n in i)i.hasOwnProperty(n)&&e.push(n);e.sort(function(e,t){var n=i[e],r=i[t];return n<r?-1:r<n?1:0});for(var r=0;r<e.length;r++)t[e[r]]=i[e[r]];return t},handleClick:function(e){var t=this,n=o(e.currentTarget),r=n.parent(),i="#"+t.getHash(n);r.hasClass(t.config.currentClass)||(t.config.begin&&t.config.begin(),t.adjustNav(t,r),t.unbindInterval(),t.scrollTo(i,function(){t.config.changeHash&&(s.location.hash=i),t.bindInterval(),t.config.end&&t.config.end()})),e.preventDefault()},scrollChange:function(){var e,t=this.$win.scrollTop(),n=this.getSection(t);null!==n&&((e=this.$elem.find('a[href$="#'+n+'"]').parent()).hasClass(this.config.currentClass)||(this.adjustNav(this,e),this.config.scrollChange&&this.config.scrollChange(e)))},scrollTo:function(e,t){var n=o(e).offset().top;o("html, body").animate({scrollTop:n+this.config.scrollOffset},this.config.scrollSpeed,this.config.easing,t)},unbindInterval:function(){clearInterval(this.t),this.$win.unbind("scroll.onePageNav")}}).defaults,o.fn.onePageNav=function(e){return this.each(function(){new t(this,e).init()})}}(jQuery,window,document);
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/js/common.min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/uikit_beforeready.min.js
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/uikit_beforeready.min.js	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/uikit_beforeready.min.js	(revision 60863)
@@ -0,0 +1 @@
+"undefined"!=typeof UIkit&&UIkit.on("beforeready.uk.dom",function(){"undefined"!=typeof UIkit.components.accordion&&$.extend(UIkit.components.accordion.prototype.defaults,{easing:$.bez(easing_swiftOut),duration:200}),"undefined"!=typeof UIkit.components.dropdown.prototype&&($.extend(UIkit.components.dropdown.prototype.defaults,{remaintime:150,delay:50}),function(){var t=UIkit.components.dropdown.prototype.show;UIkit.components.dropdown.prototype.show=function(){return this.dropdown.css({"min-width":this.dropdown.outerWidth()}).addClass("uk-dropdown-active uk-dropdown-shown"),t.apply(this,arguments)}}(),function(){var t=UIkit.components.dropdown.prototype.hide;UIkit.components.dropdown.prototype.hide=function(){var o=this.dropdown;o.removeClass("uk-dropdown-shown");setTimeout(function(){o.removeClass("uk-dropdown-active")},280);return t.apply(this,arguments)}}()),"undefined"!=typeof UIkit.components.modal&&($.extend(UIkit.components.modal.prototype.defaults,{center:!0}),UIkit.modal.dialog.template='<div class="uk-modal uk-modal-dialog-replace"><div class="uk-modal-dialog" style="min-height:0;"></div></div>',$body.on("show.uk.modal",".uk-modal-dialog-replace",function(){setTimeout(function(){var t=$(".uk-modal-dialog-replace");if(t.find(".uk-button-primary").length){var o=t.find(".uk-button-primary").toggleClass("uk-button-primary md-btn-flat-primary");o.next("button")&&o.next("button").after(o)}t.find(".uk-button").length&&t.find(".uk-button").toggleClass("uk-button md-btn md-btn-flat"),t.find(".uk-margin-small-top").length&&t.find(".uk-margin-small-top").toggleClass("uk-margin-small-top uk-margin-top"),t.find("input.uk-width-1-1").length&&(t.find("input.uk-width-1-1").toggleClass("uk-width-1-1 md-input"),altair_md.inputs()),t.find(".uk-form").length&&t.find(".uk-form").removeClass("uk-form")},50)})),"undefined"!=typeof UIkit.components.tooltip&&$.extend(UIkit.components.tooltip.prototype.defaults,{animation:280,offset:8})});
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/uikit_beforeready.min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/js/altair_lp_common.js
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/js/altair_lp_common.js	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/js/altair_lp_common.js	(revision 60863)
@@ -0,0 +1,165 @@
+
+// variables
+var $body = $('body'),
+    $html = $('html'),
+    $window = $(window),
+    $document = $(document),
+    $header_main = $('#header_main'),
+    header_main_height = $header_main.height(),
+    easing_swiftOut = [ 0.35,0,0.25,1 ];
+    bez_easing_swiftOut = $.bez(easing_swiftOut);
+
+/* Detect hi-res devices */
+function isHighDensity() {
+    return ((window.matchMedia && (window.matchMedia('only screen and (min-resolution: 124dpi), only screen and (min-resolution: 1.3dppx), only screen and (min-resolution: 48.8dpcm)').matches || window.matchMedia('only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 2.6/2), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (min-device-pixel-ratio: 1.3)').matches)) || (window.devicePixelRatio && window.devicePixelRatio > 1.3));
+}
+
+/*
+ *  Dynamically loading an external JavaScript or CSS file
+ *  http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml
+ */
+function loadjscssfile(b,c){if("js"==c){var a=document.createElement("script");a.setAttribute("type","text/javascript");a.setAttribute("src",b)}else"css"==c&&(a=document.createElement("link"),a.setAttribute("rel","stylesheet"),a.setAttribute("type","text/css"),a.setAttribute("href",b));"undefined"!=typeof a&&document.getElementsByTagName("head")[0].appendChild(a)};
+
+/* detect touch devices */
+function isTouchDevice() {
+    return 'ontouchstart' in document.documentElement;
+}
+
+$(function() {
+    // header main
+    altair_header_main.init();
+    // inputs
+    altair_md.init();
+});
+
+$window.on('load',function () {
+    if(isHighDensity()) {
+        loadjscssfile("bower_components/dense/src/dense.js", "js");
+        // enable hires images
+        $('img').dense({
+            glue: "@"
+        });
+    }
+    if (isTouchDevice()) {
+        // fastClick (touch devices)
+        FastClick.attach(document.body);
+    }
+
+});
+
+altair_header_main = {
+    init: function () {
+        // sticky header
+        altair_header_main.sticky_header();
+        // main navigation
+        altair_header_main.main_navigation();
+    },
+    sticky_header: function () {
+        $body.addClass('header_sticky');
+        $(window).on("scroll touchmove", function () {
+            $body.toggleClass('header_shadow', $(document).scrollTop() > 0);
+        });
+    },
+    main_navigation: function() {
+        $('#main_navigation').onePageNav({
+            currentClass: 'current_active',
+            changeHash: false,
+            scrollSpeed: 840,
+            scrollThreshold: 0.4,
+            filter: '',
+            scrollOffset: -header_main_height,
+            easing: bez_easing_swiftOut,
+            begin: function() {
+                //Hack so you can click other menu items after the initial click (IOS)
+                //$('body').append('<div id="device-dummy" style="height: 1px;"></div>');
+            },
+            end: function() {
+                $('#device-dummy').remove();
+            },
+            scrollChange: function($currentListItem) {
+                //I get fired when you enter a section and I pass the list item of the section
+            }
+        });
+
+    }
+};
+
+altair_md = {
+    init: function () {
+        altair_md.inputs();
+    },
+    inputs: function(parent) {
+        var $mdInput = (typeof parent === 'undefined') ? $('.md-input') : $(parent).find('.md-input');
+        $mdInput.each(function() {
+            if(!$(this).closest('.md-input-wrapper').length) {
+                var $this = $(this),
+                    extraClass = '';
+
+                if($this.is('[class*="uk-form-width-"]')) {
+                    var elClasses = $this.attr('class').split (' ');
+                    for(var i = 0; i < elClasses.length; i++){
+                        var classPart = elClasses[i].substr(0,14);
+                        if(classPart == "uk-form-width-"){
+                            var extraClass = elClasses[i];
+                        }
+                    }
+                }
+
+                if( $this.prev('label').length ) {
+                    $this.prev('label').andSelf().wrapAll('<div class="md-input-wrapper"/>');
+                } else if($this.siblings('[data-uk-form-password]').length) {
+                    $this.siblings('[data-uk-form-password]').andSelf().wrapAll('<div class="md-input-wrapper"/>');
+                } else {
+                    $this.wrap('<div class="md-input-wrapper"/>');
+                }
+                $this.closest('.md-input-wrapper').append('<span class="md-input-bar '+extraClass+'"/>');
+
+                altair_md.update_input($this);
+            }
+            $body
+                .on('focus', '.md-input', function() {
+                    $(this).closest('.md-input-wrapper').addClass('md-input-focus')
+                })
+                .on('blur', '.md-input', function() {
+                    $(this).closest('.md-input-wrapper').removeClass('md-input-focus');
+                    if(!$(this).hasClass('label-fixed')) {
+                        if($(this).val() != '') {
+                            $(this).closest('.md-input-wrapper').addClass('md-input-filled')
+                        } else {
+                            $(this).closest('.md-input-wrapper').removeClass('md-input-filled')
+                        }
+                    }
+                })
+                .on('change', '.md-input', function() {
+                    altair_md.update_input($(this));
+                });
+        })
+    },
+    update_input: function(object) {
+        // clear wrapper classes
+        object.closest('.uk-input-group').removeClass('uk-input-group-danger uk-input-group-success');
+        object.closest('.md-input-wrapper').removeClass('md-input-wrapper-danger md-input-wrapper-success md-input-wrapper-disabled');
+
+        if(object.hasClass('md-input-danger')) {
+            if(object.closest('.uk-input-group').length) {
+                object.closest('.uk-input-group').addClass('uk-input-group-danger')
+            }
+            object.closest('.md-input-wrapper').addClass('md-input-wrapper-danger')
+        }
+        if(object.hasClass('md-input-success')) {
+            if(object.closest('.uk-input-group').length) {
+                object.closest('.uk-input-group').addClass('uk-input-group-success')
+            }
+            object.closest('.md-input-wrapper').addClass('md-input-wrapper-success')
+        }
+        if(object.prop('disabled')) {
+            object.closest('.md-input-wrapper').addClass('md-input-wrapper-disabled')
+        }
+        if(object.hasClass('label-fixed')) {
+            object.closest('.md-input-wrapper').addClass('md-input-filled')
+        }
+        if(object.val() != '') {
+            object.closest('.md-input-wrapper').addClass('md-input-filled')
+        }
+    }
+};
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/js/altair_lp_common.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/package-lock.json
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/package-lock.json	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/package-lock.json	(revision 60863)
@@ -0,0 +1,11248 @@
+{
+  "name": "open-science-observatory-ui",
+  "version": "0.0.0",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "@angular-devkit/architect": {
+      "version": "0.10.7",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.10.7.tgz",
+      "integrity": "sha512-S49LSslNRxIflHzrIrEgK7mGQ7HzETr/FU0fyTbB0vubcmfzMoYTsgYdK7SUz583lovc+UvASoUAhPJI3e35ng==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.0.7",
+        "rxjs": "6.3.3"
+      }
+    },
+    "@angular-devkit/build-angular": {
+      "version": "0.10.7",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.10.7.tgz",
+      "integrity": "sha512-wjhlMWWkGSSkdwd9elKfeeEgyig/eZGyF2wY5kZmWPBdeK/GfdBLyO15qh4ppRYI2SjyRvzl0tWDOA2Y0hKL0w==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/architect": "0.10.7",
+        "@angular-devkit/build-optimizer": "0.10.7",
+        "@angular-devkit/build-webpack": "0.10.7",
+        "@angular-devkit/core": "7.0.7",
+        "@ngtools/webpack": "7.0.7",
+        "ajv": "6.5.3",
+        "autoprefixer": "9.1.5",
+        "circular-dependency-plugin": "5.0.2",
+        "clean-css": "4.2.1",
+        "copy-webpack-plugin": "4.5.4",
+        "file-loader": "2.0.0",
+        "glob": "7.1.3",
+        "istanbul": "0.4.5",
+        "istanbul-instrumenter-loader": "3.0.1",
+        "karma-source-map-support": "1.3.0",
+        "less": "3.8.1",
+        "less-loader": "4.1.0",
+        "license-webpack-plugin": "2.0.2",
+        "loader-utils": "1.1.0",
+        "mini-css-extract-plugin": "0.4.3",
+        "minimatch": "3.0.4",
+        "node-sass": "4.9.3",
+        "opn": "5.3.0",
+        "parse5": "4.0.0",
+        "portfinder": "1.0.17",
+        "postcss": "7.0.5",
+        "postcss-import": "12.0.0",
+        "postcss-loader": "3.0.0",
+        "raw-loader": "0.5.1",
+        "rxjs": "6.3.3",
+        "sass-loader": "7.1.0",
+        "semver": "5.5.1",
+        "source-map-loader": "0.2.4",
+        "source-map-support": "0.5.9",
+        "speed-measure-webpack-plugin": "^1.2.3",
+        "stats-webpack-plugin": "0.7.0",
+        "style-loader": "0.23.0",
+        "stylus": "0.54.5",
+        "stylus-loader": "3.0.2",
+        "terser-webpack-plugin": "1.1.0",
+        "tree-kill": "1.2.0",
+        "webpack": "4.19.1",
+        "webpack-dev-middleware": "3.3.0",
+        "webpack-dev-server": "3.1.8",
+        "webpack-merge": "4.1.4",
+        "webpack-sources": "1.2.0",
+        "webpack-subresource-integrity": "1.1.0-rc.6"
+      }
+    },
+    "@angular-devkit/build-optimizer": {
+      "version": "0.10.7",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.10.7.tgz",
+      "integrity": "sha512-Ztj2U21B8zRO2csQS8mLv/+WKPPLePzaqJDk53Ou2r2HV+kh9GzYvgu1UFeGf/RyEeJi+9KnJGG2wPaeNqDNxg==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "1.1.0",
+        "source-map": "0.5.6",
+        "typescript": "3.1.6",
+        "webpack-sources": "1.2.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.6",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+          "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
+          "dev": true
+        }
+      }
+    },
+    "@angular-devkit/build-webpack": {
+      "version": "0.10.7",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.10.7.tgz",
+      "integrity": "sha512-sUzgIhm5yWHvRo3GF6mc1J58PCuY5nJDF2vlE8Jhlwkq+/VbJ/NVfTDYRQCeqI1jLcdMaVrVQXnXAWc4KpFNig==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/architect": "0.10.7",
+        "@angular-devkit/core": "7.0.7",
+        "rxjs": "6.3.3"
+      }
+    },
+    "@angular-devkit/core": {
+      "version": "7.0.7",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.0.7.tgz",
+      "integrity": "sha512-M8tTT9r3nUtWI3YyiyynHIQn+lQQgeKkxVZ+rdxvyvgE3U9+wn0yep5HkFLQETTuJetu9ARRRD94sD2XL3F/3A==",
+      "dev": true,
+      "requires": {
+        "ajv": "6.5.3",
+        "chokidar": "2.0.4",
+        "fast-json-stable-stringify": "2.0.0",
+        "rxjs": "6.3.3",
+        "source-map": "0.7.3"
+      }
+    },
+    "@angular-devkit/schematics": {
+      "version": "7.0.7",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.0.7.tgz",
+      "integrity": "sha512-E6GHu4257PvymRjFDtpGc0ykdcIcpFIfXr73lq8qxo1SBkqH7Y1/C670elDg9nrCte8PhnhJVNiwNgNS/ZTAzQ==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.0.7",
+        "rxjs": "6.3.3"
+      }
+    },
+    "@angular/animations": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.0.4.tgz",
+      "integrity": "sha512-QfFikT0FzYNMjdVg0LWTBijdu9JDJyzejnhCFlXxv+KR4zolpRK98/rU7CFW1Fg2jjL3/yL9PT1sf5I0fTJZYA==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/cli": {
+      "version": "7.0.7",
+      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.0.7.tgz",
+      "integrity": "sha512-SV3CcHa2oxDKwhOvHqZtysVRRT9pkO04Kv0Z1HEhlgIwqHyIU201R9/mo1gYmBHTNGxowKdvsGLsHQNpsHmQJw==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/architect": "0.10.7",
+        "@angular-devkit/core": "7.0.7",
+        "@angular-devkit/schematics": "7.0.7",
+        "@schematics/angular": "7.0.7",
+        "@schematics/update": "0.10.7",
+        "inquirer": "6.2.0",
+        "opn": "5.3.0",
+        "rxjs": "6.3.3",
+        "semver": "5.5.1",
+        "symbol-observable": "1.2.0"
+      }
+    },
+    "@angular/common": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.0.4.tgz",
+      "integrity": "sha512-akQojdqY/RBlItkDWAPI3k0Llk1wnbAp+f47yySi3cgQz9SaZ1/RLNWZV84I/cKrksb4ehorT/lTqRBojsAD1A==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/compiler": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.0.4.tgz",
+      "integrity": "sha512-ExDhH1cJkuJkUsgNRZyZBse0a7wWkQyG5O8HONi3Rzig9dalFEuve9jD04zfA1Jx1GTXhovqtGnF72x4kw0V8Q==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/compiler-cli": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.0.4.tgz",
+      "integrity": "sha512-kvhWt6OTb1Uduns9Vm+Dwd/UUBNSEU6Jgu+QOPeHr7lg+4NTyr9uQLU0DtfBP0ljOlds8esmfii5IIFTeUQw1Q==",
+      "dev": true,
+      "requires": {
+        "canonical-path": "1.0.0",
+        "chokidar": "^1.4.2",
+        "convert-source-map": "^1.5.1",
+        "dependency-graph": "^0.7.2",
+        "magic-string": "^0.25.0",
+        "minimist": "^1.2.0",
+        "reflect-metadata": "^0.1.2",
+        "shelljs": "^0.8.1",
+        "source-map": "^0.6.1",
+        "tslib": "^1.9.0",
+        "yargs": "9.0.1"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "anymatch": {
+          "version": "1.3.2",
+          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
+          "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
+          "dev": true,
+          "requires": {
+            "micromatch": "^2.1.5",
+            "normalize-path": "^2.0.0"
+          }
+        },
+        "arr-diff": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+          "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+          "dev": true,
+          "requires": {
+            "arr-flatten": "^1.0.1"
+          }
+        },
+        "array-unique": {
+          "version": "0.2.1",
+          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+          "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+          "dev": true
+        },
+        "braces": {
+          "version": "1.8.5",
+          "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+          "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+          "dev": true,
+          "requires": {
+            "expand-range": "^1.8.1",
+            "preserve": "^0.2.0",
+            "repeat-element": "^1.1.2"
+          }
+        },
+        "camelcase": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+          "dev": true
+        },
+        "chokidar": {
+          "version": "1.7.0",
+          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
+          "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
+          "dev": true,
+          "requires": {
+            "anymatch": "^1.3.0",
+            "async-each": "^1.0.0",
+            "fsevents": "^1.0.0",
+            "glob-parent": "^2.0.0",
+            "inherits": "^2.0.1",
+            "is-binary-path": "^1.0.0",
+            "is-glob": "^2.0.0",
+            "path-is-absolute": "^1.0.0",
+            "readdirp": "^2.0.0"
+          }
+        },
+        "cross-spawn": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+          "dev": true,
+          "requires": {
+            "lru-cache": "^4.0.1",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
+          }
+        },
+        "execa": {
+          "version": "0.7.0",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+          "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+          "dev": true,
+          "requires": {
+            "cross-spawn": "^5.0.1",
+            "get-stream": "^3.0.0",
+            "is-stream": "^1.1.0",
+            "npm-run-path": "^2.0.0",
+            "p-finally": "^1.0.0",
+            "signal-exit": "^3.0.0",
+            "strip-eof": "^1.0.0"
+          }
+        },
+        "expand-brackets": {
+          "version": "0.1.5",
+          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+          "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+          "dev": true,
+          "requires": {
+            "is-posix-bracket": "^0.1.0"
+          }
+        },
+        "extglob": {
+          "version": "0.3.2",
+          "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+          "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+          "dev": true,
+          "requires": {
+            "is-extglob": "^1.0.0"
+          }
+        },
+        "glob-parent": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+          "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+          "dev": true,
+          "requires": {
+            "is-glob": "^2.0.0"
+          }
+        },
+        "is-extglob": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+          "dev": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "is-glob": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+          "dev": true,
+          "requires": {
+            "is-extglob": "^1.0.0"
+          }
+        },
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        },
+        "load-json-file": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+          "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "parse-json": "^2.2.0",
+            "pify": "^2.0.0",
+            "strip-bom": "^3.0.0"
+          }
+        },
+        "mem": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+          "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+          "dev": true,
+          "requires": {
+            "mimic-fn": "^1.0.0"
+          }
+        },
+        "micromatch": {
+          "version": "2.3.11",
+          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+          "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+          "dev": true,
+          "requires": {
+            "arr-diff": "^2.0.0",
+            "array-unique": "^0.2.1",
+            "braces": "^1.8.2",
+            "expand-brackets": "^0.1.4",
+            "extglob": "^0.3.1",
+            "filename-regex": "^2.0.0",
+            "is-extglob": "^1.0.0",
+            "is-glob": "^2.0.1",
+            "kind-of": "^3.0.2",
+            "normalize-path": "^2.0.1",
+            "object.omit": "^2.0.0",
+            "parse-glob": "^3.0.4",
+            "regex-cache": "^0.4.2"
+          }
+        },
+        "mimic-fn": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+          "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+          "dev": true
+        },
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        },
+        "os-locale": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+          "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+          "dev": true,
+          "requires": {
+            "execa": "^0.7.0",
+            "lcid": "^1.0.0",
+            "mem": "^1.1.0"
+          }
+        },
+        "path-type": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+          "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+          "dev": true,
+          "requires": {
+            "pify": "^2.0.0"
+          }
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        },
+        "read-pkg": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+          "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+          "dev": true,
+          "requires": {
+            "load-json-file": "^2.0.0",
+            "normalize-package-data": "^2.3.2",
+            "path-type": "^2.0.0"
+          }
+        },
+        "read-pkg-up": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+          "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+          "dev": true,
+          "requires": {
+            "find-up": "^2.0.0",
+            "read-pkg": "^2.0.0"
+          }
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+          "dev": true,
+          "requires": {
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^3.0.0"
+          }
+        },
+        "strip-bom": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+          "dev": true
+        },
+        "which-module": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+          "dev": true
+        },
+        "y18n": {
+          "version": "3.2.1",
+          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+          "dev": true
+        },
+        "yargs": {
+          "version": "9.0.1",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz",
+          "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=",
+          "dev": true,
+          "requires": {
+            "camelcase": "^4.1.0",
+            "cliui": "^3.2.0",
+            "decamelize": "^1.1.1",
+            "get-caller-file": "^1.0.1",
+            "os-locale": "^2.0.0",
+            "read-pkg-up": "^2.0.0",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^1.0.1",
+            "set-blocking": "^2.0.0",
+            "string-width": "^2.0.0",
+            "which-module": "^2.0.0",
+            "y18n": "^3.2.1",
+            "yargs-parser": "^7.0.0"
+          }
+        },
+        "yargs-parser": {
+          "version": "7.0.0",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+          "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+          "dev": true,
+          "requires": {
+            "camelcase": "^4.1.0"
+          }
+        }
+      }
+    },
+    "@angular/core": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.0.4.tgz",
+      "integrity": "sha512-17SSmCz1wQoZKnVHF/T8UkWYPpDm5kPyoc1okkTTv8ZA2EAMMuZFFnRSAxEL5i7mNB9z5CvRqF2tRx/DbgbIRA==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/forms": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.0.4.tgz",
+      "integrity": "sha512-W3nN9n1VY9On9+9f7PDRbzJUg+mMq1bjkhWsk/b7DfaYdmlzpG+Wd6OfArob2edsqGqH1dvTM8q8aGbWiFZ7dA==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/http": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmjs.org/@angular/http/-/http-7.0.4.tgz",
+      "integrity": "sha512-oUGT7xS7FZYajuHq0DP6MgahacB5sJTRgxiUU4uhQ/mqV7aREODVJJgw7oHDhM7Cnyzzo0B9D0zpEljKmeCLWQ==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/language-service": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.0.4.tgz",
+      "integrity": "sha512-CuJ2Ii97sNoN1HOZOLxG1lEHsQFi8K/RSB/k2suWPKzdM53ldSkKoYRac38zW/uqNABYItgvxb7w0Vi7HhxLsg==",
+      "dev": true
+    },
+    "@angular/platform-browser": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.0.4.tgz",
+      "integrity": "sha512-4brYZZgsCJk1/a6JoSwaiVWO9+/T4iyE27dAgstao1nOf/jrBNKW2HnZtkWZmCCBK0WIk15wlB0Xr87OZbjNVA==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/platform-browser-dynamic": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.0.4.tgz",
+      "integrity": "sha512-k1I53zIg8YWhtQizLfq/tWrUUdY5vHV8pGHyt0/UTGDqat5TORd6LDFfzCSux0r3qZujCOGNi9f4/AbyV8B9lw==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/router": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.0.4.tgz",
+      "integrity": "sha512-nt1jJsxN+JmYZ6URamMdULUpH4aHdnNVKjWtjDI0OpdZvPx7PMFD8cfc92q0tavy2KqqexcceIb4BIC965gtpA==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@babel/code-frame": {
+      "version": "7.5.5",
+      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
+      "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
+      "dev": true,
+      "requires": {
+        "@babel/highlight": "^7.0.0"
+      }
+    },
+    "@babel/generator": {
+      "version": "7.6.3",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.3.tgz",
+      "integrity": "sha512-hLhYbAb3pHwxjlijC4AQ7mqZdcoujiNaW7izCT04CIowHK8psN0IN8QjDv0iyFtycF5FowUOTwDloIheI25aMw==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.6.3",
+        "jsesc": "^2.5.1",
+        "lodash": "^4.17.13",
+        "source-map": "^0.6.1"
+      },
+      "dependencies": {
+        "jsesc": {
+          "version": "2.5.2",
+          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-function-name": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
+      "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-get-function-arity": "^7.0.0",
+        "@babel/template": "^7.1.0",
+        "@babel/types": "^7.0.0"
+      }
+    },
+    "@babel/helper-get-function-arity": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
+      "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.0.0"
+      }
+    },
+    "@babel/helper-split-export-declaration": {
+      "version": "7.4.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz",
+      "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.4.4"
+      }
+    },
+    "@babel/highlight": {
+      "version": "7.5.0",
+      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
+      "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.0.0",
+        "esutils": "^2.0.2",
+        "js-tokens": "^4.0.0"
+      },
+      "dependencies": {
+        "js-tokens": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/parser": {
+      "version": "7.6.3",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.3.tgz",
+      "integrity": "sha512-sUZdXlva1dt2Vw2RqbMkmfoImubO0D0gaCrNngV6Hi0DA4x3o4mlrq0tbfY0dZEUIccH8I6wQ4qgEtwcpOR6Qg==",
+      "dev": true
+    },
+    "@babel/template": {
+      "version": "7.6.0",
+      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz",
+      "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.0.0",
+        "@babel/parser": "^7.6.0",
+        "@babel/types": "^7.6.0"
+      }
+    },
+    "@babel/traverse": {
+      "version": "7.6.3",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.3.tgz",
+      "integrity": "sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.5.5",
+        "@babel/generator": "^7.6.3",
+        "@babel/helper-function-name": "^7.1.0",
+        "@babel/helper-split-export-declaration": "^7.4.4",
+        "@babel/parser": "^7.6.3",
+        "@babel/types": "^7.6.3",
+        "debug": "^4.1.0",
+        "globals": "^11.1.0",
+        "lodash": "^4.17.13"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "globals": {
+          "version": "11.12.0",
+          "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+          "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+          "dev": true
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/types": {
+      "version": "7.6.3",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz",
+      "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==",
+      "dev": true,
+      "requires": {
+        "esutils": "^2.0.2",
+        "lodash": "^4.17.13",
+        "to-fast-properties": "^2.0.0"
+      },
+      "dependencies": {
+        "to-fast-properties": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+          "dev": true
+        }
+      }
+    },
+    "@highcharts/map-collection": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@highcharts/map-collection/-/map-collection-1.1.2.tgz",
+      "integrity": "sha512-lI/sUc1BkwfetYpyEsKafYdkiEsGXDpYTWmwSikD/L+C7RMHkc/6rZAjVjxp0Ph/B3Q3dEHeyOmCruG6WoSNAQ=="
+    },
+    "@ngtools/webpack": {
+      "version": "7.0.7",
+      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.0.7.tgz",
+      "integrity": "sha512-ukZv/8vhiVWLsEEWF1uena8GHRVUpwbPJ+8AupW25d2nNpwfsDtTIXKzTzRYeIQFFCnHJxr04lK18CVsn1lFaQ==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.0.7",
+        "enhanced-resolve": "4.1.0",
+        "rxjs": "6.3.3",
+        "tree-kill": "1.2.0",
+        "webpack-sources": "1.2.0"
+      }
+    },
+    "@schematics/angular": {
+      "version": "7.0.7",
+      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.0.7.tgz",
+      "integrity": "sha512-xDSMAtOdKNa5uqsEfbwBVHVCjpNSmIIcadi0Rki+5Nmobf5nnQWPly1/xj5aHzT6SKuV4BIMvsBG9UgI9Ss/Iw==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.0.7",
+        "@angular-devkit/schematics": "7.0.7",
+        "typescript": "3.1.6"
+      }
+    },
+    "@schematics/update": {
+      "version": "0.10.7",
+      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.10.7.tgz",
+      "integrity": "sha512-E4txrdnIcNn1K0xFPmY4ywAnVj+hN2QB1wBijoAMezYTEjcKxW0g6thPfUv6qhIPcphxrCOqwl6cIELZjq2dtA==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.0.7",
+        "@angular-devkit/schematics": "7.0.7",
+        "npm-registry-client": "8.6.0",
+        "rxjs": "6.3.3",
+        "semver": "5.5.1",
+        "semver-intersect": "1.4.0"
+      }
+    },
+    "@types/jasmine": {
+      "version": "2.8.16",
+      "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.16.tgz",
+      "integrity": "sha512-056oRlBBp7MDzr+HoU5su099s/s7wjZ3KcHxLfv+Byqb9MwdLUvsfLgw1VS97hsh3ddxSPyQu+olHMnoVTUY6g==",
+      "dev": true
+    },
+    "@types/jasminewd2": {
+      "version": "2.0.8",
+      "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz",
+      "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==",
+      "dev": true,
+      "requires": {
+        "@types/jasmine": "*"
+      }
+    },
+    "@types/q": {
+      "version": "0.0.32",
+      "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz",
+      "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=",
+      "dev": true
+    },
+    "@types/selenium-webdriver": {
+      "version": "3.0.16",
+      "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.16.tgz",
+      "integrity": "sha512-lMC2G0ItF2xv4UCiwbJGbnJlIuUixHrioOhNGHSCsYCJ8l4t9hMCUimCytvFv7qy6AfSzRxhRHoGa+UqaqwyeA==",
+      "dev": true
+    },
+    "@webassemblyjs/ast": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.6.tgz",
+      "integrity": "sha512-8nkZS48EVsMUU0v6F1LCIOw4RYWLm2plMtbhFTjNgeXmsTNLuU3xTRtnljt9BFQB+iPbLRobkNrCWftWnNC7wQ==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/helper-module-context": "1.7.6",
+        "@webassemblyjs/helper-wasm-bytecode": "1.7.6",
+        "@webassemblyjs/wast-parser": "1.7.6",
+        "mamacro": "^0.0.3"
+      }
+    },
+    "@webassemblyjs/floating-point-hex-parser": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.6.tgz",
+      "integrity": "sha512-VBOZvaOyBSkPZdIt5VBMg3vPWxouuM13dPXGWI1cBh3oFLNcFJ8s9YA7S9l4mPI7+Q950QqOmqj06oa83hNWBA==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-api-error": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.6.tgz",
+      "integrity": "sha512-SCzhcQWHXfrfMSKcj8zHg1/kL9kb3aa5TN4plc/EREOs5Xop0ci5bdVBApbk2yfVi8aL+Ly4Qpp3/TRAUInjrg==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-buffer": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.6.tgz",
+      "integrity": "sha512-1/gW5NaGsEOZ02fjnFiU8/OEEXU1uVbv2um0pQ9YVL3IHSkyk6xOwokzyqqO1qDZQUAllb+V8irtClPWntbVqw==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-code-frame": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.6.tgz",
+      "integrity": "sha512-+suMJOkSn9+vEvDvgyWyrJo5vJsWSDXZmJAjtoUq4zS4eqHyXImpktvHOZwXp1XQjO5H+YQwsBgqTQEc0J/5zg==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/wast-printer": "1.7.6"
+      }
+    },
+    "@webassemblyjs/helper-fsm": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.6.tgz",
+      "integrity": "sha512-HCS6KN3wgxUihGBW7WFzEC/o8Eyvk0d56uazusnxXthDPnkWiMv+kGi9xXswL2cvfYfeK5yiM17z2K5BVlwypw==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-module-context": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.6.tgz",
+      "integrity": "sha512-e8/6GbY7OjLM+6OsN7f2krC2qYVNaSr0B0oe4lWdmq5sL++8dYDD1TFbD1TdAdWMRTYNr/Qq7ovXWzia2EbSjw==",
+      "dev": true,
+      "requires": {
+        "mamacro": "^0.0.3"
+      }
+    },
+    "@webassemblyjs/helper-wasm-bytecode": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.6.tgz",
+      "integrity": "sha512-PzYFCb7RjjSdAOljyvLWVqd6adAOabJW+8yRT+NWhXuf1nNZWH+igFZCUK9k7Cx7CsBbzIfXjJc7u56zZgFj9Q==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-wasm-section": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.6.tgz",
+      "integrity": "sha512-3GS628ppDPSuwcYlQ7cDCGr4W2n9c4hLzvnRKeuz+lGsJSmc/ADVoYpm1ts2vlB1tGHkjtQMni+yu8mHoMlKlA==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.6",
+        "@webassemblyjs/helper-buffer": "1.7.6",
+        "@webassemblyjs/helper-wasm-bytecode": "1.7.6",
+        "@webassemblyjs/wasm-gen": "1.7.6"
+      }
+    },
+    "@webassemblyjs/ieee754": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.6.tgz",
+      "integrity": "sha512-V4cIp0ruyw+hawUHwQLn6o2mFEw4t50tk530oKsYXQhEzKR+xNGDxs/SFFuyTO7X3NzEu4usA3w5jzhl2RYyzQ==",
+      "dev": true,
+      "requires": {
+        "@xtuc/ieee754": "^1.2.0"
+      }
+    },
+    "@webassemblyjs/leb128": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.6.tgz",
+      "integrity": "sha512-ojdlG8WpM394lBow4ncTGJoIVZ4aAtNOWHhfAM7m7zprmkVcKK+2kK5YJ9Bmj6/ketTtOn7wGSHCtMt+LzqgYQ==",
+      "dev": true,
+      "requires": {
+        "@xtuc/long": "4.2.1"
+      }
+    },
+    "@webassemblyjs/utf8": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.6.tgz",
+      "integrity": "sha512-oId+tLxQ+AeDC34ELRYNSqJRaScB0TClUU6KQfpB8rNT6oelYlz8axsPhf6yPTg7PBJ/Z5WcXmUYiHEWgbbHJw==",
+      "dev": true
+    },
+    "@webassemblyjs/wasm-edit": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.6.tgz",
+      "integrity": "sha512-pTNjLO3o41v/Vz9VFLl+I3YLImpCSpodFW77pNoH4agn5I6GgSxXHXtvWDTvYJFty0jSeXZWLEmbaSIRUDlekg==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.6",
+        "@webassemblyjs/helper-buffer": "1.7.6",
+        "@webassemblyjs/helper-wasm-bytecode": "1.7.6",
+        "@webassemblyjs/helper-wasm-section": "1.7.6",
+        "@webassemblyjs/wasm-gen": "1.7.6",
+        "@webassemblyjs/wasm-opt": "1.7.6",
+        "@webassemblyjs/wasm-parser": "1.7.6",
+        "@webassemblyjs/wast-printer": "1.7.6"
+      }
+    },
+    "@webassemblyjs/wasm-gen": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.6.tgz",
+      "integrity": "sha512-mQvFJVumtmRKEUXMohwn8nSrtjJJl6oXwF3FotC5t6e2hlKMh8sIaW03Sck2MDzw9xPogZD7tdP5kjPlbH9EcQ==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.6",
+        "@webassemblyjs/helper-wasm-bytecode": "1.7.6",
+        "@webassemblyjs/ieee754": "1.7.6",
+        "@webassemblyjs/leb128": "1.7.6",
+        "@webassemblyjs/utf8": "1.7.6"
+      }
+    },
+    "@webassemblyjs/wasm-opt": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.6.tgz",
+      "integrity": "sha512-go44K90fSIsDwRgtHhX14VtbdDPdK2sZQtZqUcMRvTojdozj5tLI0VVJAzLCfz51NOkFXezPeVTAYFqrZ6rI8Q==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.6",
+        "@webassemblyjs/helper-buffer": "1.7.6",
+        "@webassemblyjs/wasm-gen": "1.7.6",
+        "@webassemblyjs/wasm-parser": "1.7.6"
+      }
+    },
+    "@webassemblyjs/wasm-parser": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.6.tgz",
+      "integrity": "sha512-t1T6TfwNY85pDA/HWPA8kB9xA4sp9ajlRg5W7EKikqrynTyFo+/qDzIpvdkOkOGjlS6d4n4SX59SPuIayR22Yg==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.6",
+        "@webassemblyjs/helper-api-error": "1.7.6",
+        "@webassemblyjs/helper-wasm-bytecode": "1.7.6",
+        "@webassemblyjs/ieee754": "1.7.6",
+        "@webassemblyjs/leb128": "1.7.6",
+        "@webassemblyjs/utf8": "1.7.6"
+      }
+    },
+    "@webassemblyjs/wast-parser": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.6.tgz",
+      "integrity": "sha512-1MaWTErN0ziOsNUlLdvwS+NS1QWuI/kgJaAGAMHX8+fMJFgOJDmN/xsG4h/A1Gtf/tz5VyXQciaqHZqp2q0vfg==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.6",
+        "@webassemblyjs/floating-point-hex-parser": "1.7.6",
+        "@webassemblyjs/helper-api-error": "1.7.6",
+        "@webassemblyjs/helper-code-frame": "1.7.6",
+        "@webassemblyjs/helper-fsm": "1.7.6",
+        "@xtuc/long": "4.2.1",
+        "mamacro": "^0.0.3"
+      }
+    },
+    "@webassemblyjs/wast-printer": {
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.6.tgz",
+      "integrity": "sha512-vHdHSK1tOetvDcl1IV1OdDeGNe/NDDQ+KzuZHMtqTVP1xO/tZ/IKNpj5BaGk1OYFdsDWQqb31PIwdEyPntOWRQ==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.6",
+        "@webassemblyjs/wast-parser": "1.7.6",
+        "@xtuc/long": "4.2.1"
+      }
+    },
+    "@xtuc/ieee754": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+      "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+      "dev": true
+    },
+    "@xtuc/long": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz",
+      "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==",
+      "dev": true
+    },
+    "abab": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
+      "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4="
+    },
+    "abbrev": {
+      "version": "1.0.9",
+      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
+      "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
+      "dev": true
+    },
+    "accepts": {
+      "version": "1.3.7",
+      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+      "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+      "dev": true,
+      "requires": {
+        "mime-types": "~2.1.24",
+        "negotiator": "0.6.2"
+      }
+    },
+    "acorn": {
+      "version": "5.7.3",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
+      "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
+      "dev": true
+    },
+    "acorn-dynamic-import": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz",
+      "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==",
+      "dev": true,
+      "requires": {
+        "acorn": "^5.0.0"
+      }
+    },
+    "acorn-globals": {
+      "version": "1.0.9",
+      "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
+      "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=",
+      "requires": {
+        "acorn": "^2.1.0"
+      },
+      "dependencies": {
+        "acorn": {
+          "version": "2.7.0",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
+          "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc="
+        }
+      }
+    },
+    "adm-zip": {
+      "version": "0.4.13",
+      "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz",
+      "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==",
+      "dev": true
+    },
+    "after": {
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
+      "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
+      "dev": true
+    },
+    "agent-base": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
+      "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
+      "dev": true,
+      "requires": {
+        "es6-promisify": "^5.0.0"
+      }
+    },
+    "ajv": {
+      "version": "6.5.3",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
+      "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
+      "dev": true,
+      "requires": {
+        "fast-deep-equal": "^2.0.1",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.4.1",
+        "uri-js": "^4.2.2"
+      }
+    },
+    "ajv-errors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
+      "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
+      "dev": true
+    },
+    "ajv-keywords": {
+      "version": "3.4.1",
+      "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
+      "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==",
+      "dev": true
+    },
+    "amdefine": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
+    },
+    "angular-ng-autocomplete": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/angular-ng-autocomplete/-/angular-ng-autocomplete-2.0.1.tgz",
+      "integrity": "sha512-IlKrUeMM6V0/ipnlXF5WluiWmav7eiIlZWtEoch6eXUGylYCHGNdwRO4Kb2snMQuY/6Kv6tDbRFT51Tihd3JwQ=="
+    },
+    "ansi-colors": {
+      "version": "3.2.4",
+      "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
+      "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==",
+      "dev": true
+    },
+    "ansi-escapes": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+      "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+      "dev": true
+    },
+    "ansi-html": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
+      "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
+      "dev": true
+    },
+    "ansi-regex": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+      "dev": true
+    },
+    "ansi-styles": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+      "dev": true,
+      "requires": {
+        "color-convert": "^1.9.0"
+      }
+    },
+    "anymatch": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+      "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+      "dev": true,
+      "requires": {
+        "micromatch": "^3.1.4",
+        "normalize-path": "^2.1.1"
+      }
+    },
+    "app-root-path": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz",
+      "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==",
+      "dev": true
+    },
+    "append-transform": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz",
+      "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==",
+      "dev": true,
+      "requires": {
+        "default-require-extensions": "^2.0.0"
+      }
+    },
+    "aproba": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+      "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+      "dev": true
+    },
+    "are-we-there-yet": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+      "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "delegates": "^1.0.0",
+        "readable-stream": "^2.0.6"
+      }
+    },
+    "argparse": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+      "dev": true,
+      "requires": {
+        "sprintf-js": "~1.0.2"
+      }
+    },
+    "arr-diff": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+      "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+      "dev": true
+    },
+    "arr-flatten": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+      "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+      "dev": true
+    },
+    "arr-union": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+      "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+      "dev": true
+    },
+    "array-equal": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
+      "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM="
+    },
+    "array-find-index": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+      "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+      "dev": true
+    },
+    "array-flatten": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
+      "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
+      "dev": true
+    },
+    "array-slice": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
+      "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=",
+      "dev": true
+    },
+    "array-union": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+      "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+      "dev": true,
+      "requires": {
+        "array-uniq": "^1.0.1"
+      }
+    },
+    "array-uniq": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+      "dev": true
+    },
+    "array-unique": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+      "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+      "dev": true
+    },
+    "arraybuffer.slice": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
+      "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==",
+      "dev": true
+    },
+    "arrify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+      "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+      "dev": true
+    },
+    "asap": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+      "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
+      "dev": true,
+      "optional": true
+    },
+    "asn1": {
+      "version": "0.2.4",
+      "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+      "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+      "requires": {
+        "safer-buffer": "~2.1.0"
+      }
+    },
+    "asn1.js": {
+      "version": "4.10.1",
+      "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+      "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.0.0",
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "assert": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+      "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+      "dev": true,
+      "requires": {
+        "object-assign": "^4.1.1",
+        "util": "0.10.3"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+          "dev": true
+        },
+        "util": {
+          "version": "0.10.3",
+          "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+          "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+          "dev": true,
+          "requires": {
+            "inherits": "2.0.1"
+          }
+        }
+      }
+    },
+    "assert-plus": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+      "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+    },
+    "assign-symbols": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+      "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+      "dev": true
+    },
+    "async": {
+      "version": "1.5.2",
+      "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+      "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+      "dev": true
+    },
+    "async-each": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+      "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
+      "dev": true
+    },
+    "async-foreach": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
+      "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
+      "dev": true,
+      "optional": true
+    },
+    "async-limiter": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+      "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
+      "dev": true
+    },
+    "asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+    },
+    "atob": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+      "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+      "dev": true
+    },
+    "autoprefixer": {
+      "version": "9.1.5",
+      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.1.5.tgz",
+      "integrity": "sha512-kk4Zb6RUc58ld7gdosERHMF3DzIYJc2fp5sX46qEsGXQQy5bXsu8qyLjoxuY1NuQ/cJuCYnx99BfjwnRggrYIw==",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.1.0",
+        "caniuse-lite": "^1.0.30000884",
+        "normalize-range": "^0.1.2",
+        "num2fraction": "^1.2.2",
+        "postcss": "^7.0.2",
+        "postcss-value-parser": "^3.2.3"
+      }
+    },
+    "aws-sign2": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+      "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
+    },
+    "aws4": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
+      "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
+    },
+    "babel-code-frame": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+      "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+      "dev": true,
+      "requires": {
+        "chalk": "^1.1.3",
+        "esutils": "^2.0.2",
+        "js-tokens": "^3.0.2"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true
+        }
+      }
+    },
+    "babel-generator": {
+      "version": "6.26.1",
+      "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
+      "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
+      "dev": true,
+      "requires": {
+        "babel-messages": "^6.23.0",
+        "babel-runtime": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "detect-indent": "^4.0.0",
+        "jsesc": "^1.3.0",
+        "lodash": "^4.17.4",
+        "source-map": "^0.5.7",
+        "trim-right": "^1.0.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
+    "babel-messages": {
+      "version": "6.23.0",
+      "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+      "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-runtime": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+      "dev": true,
+      "requires": {
+        "core-js": "^2.4.0",
+        "regenerator-runtime": "^0.11.0"
+      }
+    },
+    "babel-template": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+      "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.26.0",
+        "babel-traverse": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "babylon": "^6.18.0",
+        "lodash": "^4.17.4"
+      }
+    },
+    "babel-traverse": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+      "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+      "dev": true,
+      "requires": {
+        "babel-code-frame": "^6.26.0",
+        "babel-messages": "^6.23.0",
+        "babel-runtime": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "babylon": "^6.18.0",
+        "debug": "^2.6.8",
+        "globals": "^9.18.0",
+        "invariant": "^2.2.2",
+        "lodash": "^4.17.4"
+      }
+    },
+    "babel-types": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+      "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.26.0",
+        "esutils": "^2.0.2",
+        "lodash": "^4.17.4",
+        "to-fast-properties": "^1.0.3"
+      }
+    },
+    "babylon": {
+      "version": "6.18.0",
+      "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+      "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+      "dev": true
+    },
+    "backo2": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+      "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
+      "dev": true
+    },
+    "balanced-match": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+      "dev": true
+    },
+    "base": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+      "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+      "dev": true,
+      "requires": {
+        "cache-base": "^1.0.1",
+        "class-utils": "^0.3.5",
+        "component-emitter": "^1.2.1",
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.1",
+        "mixin-deep": "^1.2.0",
+        "pascalcase": "^0.1.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "base64-arraybuffer": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
+      "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
+    },
+    "base64-js": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
+      "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==",
+      "dev": true
+    },
+    "base64id": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
+      "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
+      "dev": true
+    },
+    "batch": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+      "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
+      "dev": true
+    },
+    "bcrypt-pbkdf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+      "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+      "requires": {
+        "tweetnacl": "^0.14.3"
+      }
+    },
+    "better-assert": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
+      "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
+      "dev": true,
+      "requires": {
+        "callsite": "1.0.0"
+      }
+    },
+    "big.js": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+      "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+      "dev": true
+    },
+    "binary-extensions": {
+      "version": "1.13.1",
+      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+      "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+      "dev": true
+    },
+    "blob": {
+      "version": "0.0.5",
+      "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
+      "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==",
+      "dev": true
+    },
+    "block-stream": {
+      "version": "0.0.9",
+      "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+      "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "inherits": "~2.0.0"
+      }
+    },
+    "blocking-proxy": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz",
+      "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==",
+      "dev": true,
+      "requires": {
+        "minimist": "^1.2.0"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        }
+      }
+    },
+    "bluebird": {
+      "version": "3.7.0",
+      "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.0.tgz",
+      "integrity": "sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg==",
+      "dev": true
+    },
+    "bn.js": {
+      "version": "4.11.8",
+      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+      "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+      "dev": true
+    },
+    "body-parser": {
+      "version": "1.19.0",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+      "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+      "dev": true,
+      "requires": {
+        "bytes": "3.1.0",
+        "content-type": "~1.0.4",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "http-errors": "1.7.2",
+        "iconv-lite": "0.4.24",
+        "on-finished": "~2.3.0",
+        "qs": "6.7.0",
+        "raw-body": "2.4.0",
+        "type-is": "~1.6.17"
+      },
+      "dependencies": {
+        "bytes": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+          "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+          "dev": true
+        },
+        "qs": {
+          "version": "6.7.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+          "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+          "dev": true
+        }
+      }
+    },
+    "bonjour": {
+      "version": "3.5.0",
+      "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
+      "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+      "dev": true,
+      "requires": {
+        "array-flatten": "^2.1.0",
+        "deep-equal": "^1.0.1",
+        "dns-equal": "^1.0.0",
+        "dns-txt": "^2.0.2",
+        "multicast-dns": "^6.0.1",
+        "multicast-dns-service-types": "^1.1.0"
+      }
+    },
+    "brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dev": true,
+      "requires": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "braces": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+      "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+      "dev": true,
+      "requires": {
+        "arr-flatten": "^1.1.0",
+        "array-unique": "^0.3.2",
+        "extend-shallow": "^2.0.1",
+        "fill-range": "^4.0.0",
+        "isobject": "^3.0.1",
+        "repeat-element": "^1.1.2",
+        "snapdragon": "^0.8.1",
+        "snapdragon-node": "^2.0.1",
+        "split-string": "^3.0.2",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "brorand": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+      "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+      "dev": true
+    },
+    "browserify-aes": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+      "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+      "dev": true,
+      "requires": {
+        "buffer-xor": "^1.0.3",
+        "cipher-base": "^1.0.0",
+        "create-hash": "^1.1.0",
+        "evp_bytestokey": "^1.0.3",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "browserify-cipher": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+      "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+      "dev": true,
+      "requires": {
+        "browserify-aes": "^1.0.4",
+        "browserify-des": "^1.0.0",
+        "evp_bytestokey": "^1.0.0"
+      }
+    },
+    "browserify-des": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+      "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+      "dev": true,
+      "requires": {
+        "cipher-base": "^1.0.1",
+        "des.js": "^1.0.0",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "browserify-rsa": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+      "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "randombytes": "^2.0.1"
+      }
+    },
+    "browserify-sign": {
+      "version": "4.0.4",
+      "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
+      "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.1",
+        "browserify-rsa": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "create-hmac": "^1.1.2",
+        "elliptic": "^6.0.0",
+        "inherits": "^2.0.1",
+        "parse-asn1": "^5.0.0"
+      }
+    },
+    "browserify-zlib": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+      "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+      "dev": true,
+      "requires": {
+        "pako": "~1.0.5"
+      }
+    },
+    "browserslist": {
+      "version": "4.7.1",
+      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.1.tgz",
+      "integrity": "sha512-QtULFqKIAtiyNx7NhZ/p4rB8m3xDozVo/pi5VgTlADLF2tNigz/QH+v0m5qhn7XfHT7u+607NcCNOnC0HZAlMg==",
+      "dev": true,
+      "requires": {
+        "caniuse-lite": "^1.0.30000999",
+        "electron-to-chromium": "^1.3.284",
+        "node-releases": "^1.1.36"
+      }
+    },
+    "browserstack": {
+      "version": "1.5.3",
+      "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.3.tgz",
+      "integrity": "sha512-AO+mECXsW4QcqC9bxwM29O7qWa7bJT94uBFzeb5brylIQwawuEziwq20dPYbins95GlWzOawgyDNdjYAo32EKg==",
+      "dev": true,
+      "requires": {
+        "https-proxy-agent": "^2.2.1"
+      }
+    },
+    "buffer": {
+      "version": "4.9.1",
+      "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+      "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+      "dev": true,
+      "requires": {
+        "base64-js": "^1.0.2",
+        "ieee754": "^1.1.4",
+        "isarray": "^1.0.0"
+      }
+    },
+    "buffer-alloc": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+      "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+      "dev": true,
+      "requires": {
+        "buffer-alloc-unsafe": "^1.1.0",
+        "buffer-fill": "^1.0.0"
+      }
+    },
+    "buffer-alloc-unsafe": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+      "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
+      "dev": true
+    },
+    "buffer-fill": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+      "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
+      "dev": true
+    },
+    "buffer-from": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+      "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+      "dev": true
+    },
+    "buffer-indexof": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
+      "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==",
+      "dev": true
+    },
+    "buffer-xor": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+      "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+      "dev": true
+    },
+    "builtin-modules": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+      "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+      "dev": true
+    },
+    "builtin-status-codes": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+      "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+      "dev": true
+    },
+    "builtins": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
+      "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=",
+      "dev": true
+    },
+    "bytes": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+      "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+      "dev": true
+    },
+    "cacache": {
+      "version": "10.0.4",
+      "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+      "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.5.1",
+        "chownr": "^1.0.1",
+        "glob": "^7.1.2",
+        "graceful-fs": "^4.1.11",
+        "lru-cache": "^4.1.1",
+        "mississippi": "^2.0.0",
+        "mkdirp": "^0.5.1",
+        "move-concurrently": "^1.0.1",
+        "promise-inflight": "^1.0.1",
+        "rimraf": "^2.6.2",
+        "ssri": "^5.2.4",
+        "unique-filename": "^1.1.0",
+        "y18n": "^4.0.0"
+      }
+    },
+    "cache-base": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+      "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+      "dev": true,
+      "requires": {
+        "collection-visit": "^1.0.0",
+        "component-emitter": "^1.2.1",
+        "get-value": "^2.0.6",
+        "has-value": "^1.0.0",
+        "isobject": "^3.0.1",
+        "set-value": "^2.0.0",
+        "to-object-path": "^0.3.0",
+        "union-value": "^1.0.0",
+        "unset-value": "^1.0.0"
+      }
+    },
+    "caller-callsite": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+      "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
+      "dev": true,
+      "requires": {
+        "callsites": "^2.0.0"
+      }
+    },
+    "caller-path": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+      "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
+      "dev": true,
+      "requires": {
+        "caller-callsite": "^2.0.0"
+      }
+    },
+    "callsite": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
+      "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
+      "dev": true
+    },
+    "callsites": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+      "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
+      "dev": true
+    },
+    "camelcase": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+      "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+      "dev": true,
+      "optional": true
+    },
+    "camelcase-keys": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+      "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "camelcase": "^2.0.0",
+        "map-obj": "^1.0.0"
+      }
+    },
+    "caniuse-lite": {
+      "version": "1.0.30001002",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001002.tgz",
+      "integrity": "sha512-pRuxPE8wdrWmVPKcDmJJiGBxr6lFJq4ivdSeo9FTmGj5Rb8NX3Mby2pARG57MXF15hYAhZ0nHV5XxT2ig4bz3g==",
+      "dev": true
+    },
+    "canonical-path": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz",
+      "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==",
+      "dev": true
+    },
+    "canvg": {
+      "version": "1.5.3",
+      "resolved": "https://registry.npmjs.org/canvg/-/canvg-1.5.3.tgz",
+      "integrity": "sha512-7Gn2IuQzvUQWPIuZuFHrzsTM0gkPz2RRT9OcbdmA03jeKk8kltrD8gqUzNX15ghY/4PV5bbe5lmD6yDLDY6Ybg==",
+      "requires": {
+        "jsdom": "^8.1.0",
+        "rgbcolor": "^1.0.1",
+        "stackblur-canvas": "^1.4.1",
+        "xmldom": "^0.1.22"
+      },
+      "dependencies": {
+        "stackblur-canvas": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-1.4.1.tgz",
+          "integrity": "sha1-hJqm+UsnL/JvZHH6QTDtH35HlVs="
+        }
+      }
+    },
+    "caseless": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+    },
+    "chalk": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+      "dev": true,
+      "requires": {
+        "ansi-styles": "^3.2.1",
+        "escape-string-regexp": "^1.0.5",
+        "supports-color": "^5.3.0"
+      }
+    },
+    "chardet": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+      "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
+      "dev": true
+    },
+    "chokidar": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
+      "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
+      "dev": true,
+      "requires": {
+        "anymatch": "^2.0.0",
+        "async-each": "^1.0.0",
+        "braces": "^2.3.0",
+        "fsevents": "^1.2.2",
+        "glob-parent": "^3.1.0",
+        "inherits": "^2.0.1",
+        "is-binary-path": "^1.0.0",
+        "is-glob": "^4.0.0",
+        "lodash.debounce": "^4.0.8",
+        "normalize-path": "^2.1.1",
+        "path-is-absolute": "^1.0.0",
+        "readdirp": "^2.0.0",
+        "upath": "^1.0.5"
+      }
+    },
+    "chownr": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
+      "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
+      "dev": true
+    },
+    "chrome-trace-event": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz",
+      "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==",
+      "dev": true,
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "cipher-base": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+      "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "circular-dependency-plugin": {
+      "version": "5.0.2",
+      "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz",
+      "integrity": "sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA==",
+      "dev": true
+    },
+    "circular-json": {
+      "version": "0.5.9",
+      "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz",
+      "integrity": "sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ==",
+      "dev": true
+    },
+    "class-utils": {
+      "version": "0.3.6",
+      "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+      "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+      "dev": true,
+      "requires": {
+        "arr-union": "^3.1.0",
+        "define-property": "^0.2.5",
+        "isobject": "^3.0.0",
+        "static-extend": "^0.1.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "clean-css": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
+      "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
+      "dev": true,
+      "requires": {
+        "source-map": "~0.6.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "cli-cursor": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+      "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+      "dev": true,
+      "requires": {
+        "restore-cursor": "^2.0.0"
+      }
+    },
+    "cli-width": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+      "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+      "dev": true
+    },
+    "cliui": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+      "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+      "dev": true,
+      "requires": {
+        "string-width": "^1.0.1",
+        "strip-ansi": "^3.0.1",
+        "wrap-ansi": "^2.0.0"
+      }
+    },
+    "clone": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+      "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
+      "dev": true
+    },
+    "clone-deep": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz",
+      "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==",
+      "dev": true,
+      "requires": {
+        "for-own": "^1.0.0",
+        "is-plain-object": "^2.0.4",
+        "kind-of": "^6.0.0",
+        "shallow-clone": "^1.0.0"
+      }
+    },
+    "co": {
+      "version": "4.6.0",
+      "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+      "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+      "dev": true
+    },
+    "code-point-at": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+      "dev": true
+    },
+    "codelyzer": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.5.0.tgz",
+      "integrity": "sha512-oO6vCkjqsVrEsmh58oNlnJkRXuA30hF8cdNAQV9DytEalDwyOFRvHMnlKFzmOStNerOmPGZU9GAHnBo4tGvtiQ==",
+      "dev": true,
+      "requires": {
+        "app-root-path": "^2.1.0",
+        "css-selector-tokenizer": "^0.7.0",
+        "cssauron": "^1.4.0",
+        "semver-dsl": "^1.0.1",
+        "source-map": "^0.5.7",
+        "sprintf-js": "^1.1.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "sprintf-js": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+          "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
+          "dev": true
+        }
+      }
+    },
+    "collection-visit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+      "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+      "dev": true,
+      "requires": {
+        "map-visit": "^1.0.0",
+        "object-visit": "^1.0.0"
+      }
+    },
+    "color-convert": {
+      "version": "1.9.3",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+      "dev": true,
+      "requires": {
+        "color-name": "1.1.3"
+      }
+    },
+    "color-name": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+      "dev": true
+    },
+    "colors": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+      "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+      "dev": true
+    },
+    "combine-lists": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz",
+      "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.5.0"
+      }
+    },
+    "combined-stream": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+      "requires": {
+        "delayed-stream": "~1.0.0"
+      }
+    },
+    "commander": {
+      "version": "2.20.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
+      "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
+      "dev": true
+    },
+    "commondir": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+      "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+      "dev": true
+    },
+    "compare-versions": {
+      "version": "3.5.1",
+      "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.5.1.tgz",
+      "integrity": "sha512-9fGPIB7C6AyM18CJJBHt5EnCZDG3oiTJYy0NjfIAGjKpzv0tkxWko7TNQHF5ymqm7IH03tqmeuBxtvD+Izh6mg==",
+      "dev": true
+    },
+    "component-bind": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
+      "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",
+      "dev": true
+    },
+    "component-emitter": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+      "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+      "dev": true
+    },
+    "component-inherit": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
+      "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
+      "dev": true
+    },
+    "compressible": {
+      "version": "2.0.17",
+      "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz",
+      "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==",
+      "dev": true,
+      "requires": {
+        "mime-db": ">= 1.40.0 < 2"
+      }
+    },
+    "compression": {
+      "version": "1.7.4",
+      "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
+      "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.5",
+        "bytes": "3.0.0",
+        "compressible": "~2.0.16",
+        "debug": "2.6.9",
+        "on-headers": "~1.0.2",
+        "safe-buffer": "5.1.2",
+        "vary": "~1.1.2"
+      }
+    },
+    "concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+      "dev": true
+    },
+    "concat-stream": {
+      "version": "1.6.2",
+      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+      "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+      "dev": true,
+      "requires": {
+        "buffer-from": "^1.0.0",
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.2.2",
+        "typedarray": "^0.0.6"
+      }
+    },
+    "connect": {
+      "version": "3.7.0",
+      "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
+      "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
+      "dev": true,
+      "requires": {
+        "debug": "2.6.9",
+        "finalhandler": "1.1.2",
+        "parseurl": "~1.3.3",
+        "utils-merge": "1.0.1"
+      }
+    },
+    "connect-history-api-fallback": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz",
+      "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==",
+      "dev": true
+    },
+    "console-browserify": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+      "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+      "dev": true,
+      "requires": {
+        "date-now": "^0.1.4"
+      }
+    },
+    "console-control-strings": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+      "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+      "dev": true,
+      "optional": true
+    },
+    "constants-browserify": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+      "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+      "dev": true
+    },
+    "content-disposition": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+      "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "5.1.2"
+      }
+    },
+    "content-type": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+      "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+      "dev": true
+    },
+    "convert-source-map": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
+      "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "~5.1.1"
+      }
+    },
+    "cookie": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+      "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
+      "dev": true
+    },
+    "cookie-signature": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+      "dev": true
+    },
+    "copy-concurrently": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+      "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.1.1",
+        "fs-write-stream-atomic": "^1.0.8",
+        "iferr": "^0.1.5",
+        "mkdirp": "^0.5.1",
+        "rimraf": "^2.5.4",
+        "run-queue": "^1.0.0"
+      }
+    },
+    "copy-descriptor": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+      "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+      "dev": true
+    },
+    "copy-webpack-plugin": {
+      "version": "4.5.4",
+      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.4.tgz",
+      "integrity": "sha512-0lstlEyj74OAtYMrDxlNZsU7cwFijAI3Ofz2fD6Mpo9r4xCv4yegfa3uHIKvZY1NSuOtE9nvG6TAhJ+uz9gDaQ==",
+      "dev": true,
+      "requires": {
+        "cacache": "^10.0.4",
+        "find-cache-dir": "^1.0.0",
+        "globby": "^7.1.1",
+        "is-glob": "^4.0.0",
+        "loader-utils": "^1.1.0",
+        "minimatch": "^3.0.4",
+        "p-limit": "^1.0.0",
+        "serialize-javascript": "^1.4.0"
+      }
+    },
+    "core-js": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
+      "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A=="
+    },
+    "core-util-is": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+    },
+    "cosmiconfig": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+      "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+      "dev": true,
+      "requires": {
+        "import-fresh": "^2.0.0",
+        "is-directory": "^0.3.1",
+        "js-yaml": "^3.13.1",
+        "parse-json": "^4.0.0"
+      },
+      "dependencies": {
+        "parse-json": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+          "dev": true,
+          "requires": {
+            "error-ex": "^1.3.1",
+            "json-parse-better-errors": "^1.0.1"
+          }
+        }
+      }
+    },
+    "create-ecdh": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
+      "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "elliptic": "^6.0.0"
+      }
+    },
+    "create-hash": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+      "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+      "dev": true,
+      "requires": {
+        "cipher-base": "^1.0.1",
+        "inherits": "^2.0.1",
+        "md5.js": "^1.3.4",
+        "ripemd160": "^2.0.1",
+        "sha.js": "^2.4.0"
+      }
+    },
+    "create-hmac": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+      "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+      "dev": true,
+      "requires": {
+        "cipher-base": "^1.0.3",
+        "create-hash": "^1.1.0",
+        "inherits": "^2.0.1",
+        "ripemd160": "^2.0.0",
+        "safe-buffer": "^5.0.1",
+        "sha.js": "^2.4.8"
+      }
+    },
+    "cross-spawn": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
+      "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "lru-cache": "^4.0.1",
+        "which": "^1.2.9"
+      }
+    },
+    "crypto-browserify": {
+      "version": "3.12.0",
+      "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+      "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+      "dev": true,
+      "requires": {
+        "browserify-cipher": "^1.0.0",
+        "browserify-sign": "^4.0.0",
+        "create-ecdh": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "create-hmac": "^1.1.0",
+        "diffie-hellman": "^5.0.0",
+        "inherits": "^2.0.1",
+        "pbkdf2": "^3.0.3",
+        "public-encrypt": "^4.0.0",
+        "randombytes": "^2.0.0",
+        "randomfill": "^1.0.3"
+      }
+    },
+    "css-parse": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz",
+      "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=",
+      "dev": true
+    },
+    "css-selector-tokenizer": {
+      "version": "0.7.1",
+      "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz",
+      "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==",
+      "dev": true,
+      "requires": {
+        "cssesc": "^0.1.0",
+        "fastparse": "^1.1.1",
+        "regexpu-core": "^1.0.0"
+      }
+    },
+    "cssauron": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz",
+      "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=",
+      "dev": true,
+      "requires": {
+        "through": "X.X.X"
+      }
+    },
+    "cssesc": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+      "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+      "dev": true
+    },
+    "cssom": {
+      "version": "0.3.8",
+      "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
+      "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
+    },
+    "cssstyle": {
+      "version": "0.2.37",
+      "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
+      "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
+      "requires": {
+        "cssom": "0.3.x"
+      }
+    },
+    "currently-unhandled": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+      "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+      "dev": true,
+      "requires": {
+        "array-find-index": "^1.0.1"
+      }
+    },
+    "custom-event": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
+      "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=",
+      "dev": true
+    },
+    "cyclist": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
+      "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
+      "dev": true
+    },
+    "dashdash": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "date-format": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz",
+      "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=",
+      "dev": true
+    },
+    "date-now": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+      "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
+      "dev": true
+    },
+    "debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "dev": true,
+      "requires": {
+        "ms": "2.0.0"
+      }
+    },
+    "decamelize": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+      "dev": true
+    },
+    "decode-uri-component": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+      "dev": true
+    },
+    "deep-equal": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.0.tgz",
+      "integrity": "sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw==",
+      "dev": true,
+      "requires": {
+        "is-arguments": "^1.0.4",
+        "is-date-object": "^1.0.1",
+        "is-regex": "^1.0.4",
+        "object-is": "^1.0.1",
+        "object-keys": "^1.1.1",
+        "regexp.prototype.flags": "^1.2.0"
+      }
+    },
+    "deep-is": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+      "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+    },
+    "default-gateway": {
+      "version": "2.7.2",
+      "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz",
+      "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==",
+      "dev": true,
+      "requires": {
+        "execa": "^0.10.0",
+        "ip-regex": "^2.1.0"
+      }
+    },
+    "default-require-extensions": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz",
+      "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=",
+      "dev": true,
+      "requires": {
+        "strip-bom": "^3.0.0"
+      },
+      "dependencies": {
+        "strip-bom": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+          "dev": true
+        }
+      }
+    },
+    "define-properties": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+      "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+      "dev": true,
+      "requires": {
+        "object-keys": "^1.0.12"
+      }
+    },
+    "define-property": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+      "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+      "dev": true,
+      "requires": {
+        "is-descriptor": "^1.0.2",
+        "isobject": "^3.0.1"
+      },
+      "dependencies": {
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "del": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz",
+      "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=",
+      "dev": true,
+      "requires": {
+        "globby": "^6.1.0",
+        "is-path-cwd": "^1.0.0",
+        "is-path-in-cwd": "^1.0.0",
+        "p-map": "^1.1.1",
+        "pify": "^3.0.0",
+        "rimraf": "^2.2.8"
+      },
+      "dependencies": {
+        "globby": {
+          "version": "6.1.0",
+          "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+          "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+          "dev": true,
+          "requires": {
+            "array-union": "^1.0.1",
+            "glob": "^7.0.3",
+            "object-assign": "^4.0.1",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          },
+          "dependencies": {
+            "pify": {
+              "version": "2.3.0",
+              "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+              "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+              "dev": true
+            }
+          }
+        }
+      }
+    },
+    "delayed-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+    },
+    "delegates": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+      "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+      "dev": true,
+      "optional": true
+    },
+    "depd": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+      "dev": true
+    },
+    "dependency-graph": {
+      "version": "0.7.2",
+      "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz",
+      "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==",
+      "dev": true
+    },
+    "des.js": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+      "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "destroy": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+      "dev": true
+    },
+    "detect-indent": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+      "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+      "dev": true,
+      "requires": {
+        "repeating": "^2.0.0"
+      }
+    },
+    "detect-node": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz",
+      "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
+      "dev": true
+    },
+    "di": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
+      "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=",
+      "dev": true
+    },
+    "diff": {
+      "version": "3.5.0",
+      "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+      "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+      "dev": true
+    },
+    "diffie-hellman": {
+      "version": "5.0.3",
+      "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+      "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "miller-rabin": "^4.0.0",
+        "randombytes": "^2.0.0"
+      }
+    },
+    "dir-glob": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
+      "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
+      "dev": true,
+      "requires": {
+        "path-type": "^3.0.0"
+      }
+    },
+    "dns-equal": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
+      "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
+      "dev": true
+    },
+    "dns-packet": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz",
+      "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==",
+      "dev": true,
+      "requires": {
+        "ip": "^1.1.0",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "dns-txt": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
+      "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+      "dev": true,
+      "requires": {
+        "buffer-indexof": "^1.0.0"
+      }
+    },
+    "dom-serialize": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
+      "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=",
+      "dev": true,
+      "requires": {
+        "custom-event": "~1.0.0",
+        "ent": "~2.2.0",
+        "extend": "^3.0.0",
+        "void-elements": "^2.0.0"
+      }
+    },
+    "dom-to-image": {
+      "version": "2.6.0",
+      "resolved": "https://registry.npmjs.org/dom-to-image/-/dom-to-image-2.6.0.tgz",
+      "integrity": "sha1-ilA2CAiMh7HCL5A0rgMuGJiVWGc="
+    },
+    "domain-browser": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+      "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+      "dev": true
+    },
+    "duplexify": {
+      "version": "3.7.1",
+      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+      "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "^1.0.0",
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.0.0",
+        "stream-shift": "^1.0.0"
+      }
+    },
+    "ecc-jsbn": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+      "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+      "requires": {
+        "jsbn": "~0.1.0",
+        "safer-buffer": "^2.1.0"
+      }
+    },
+    "echarts": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/echarts/-/echarts-4.2.1.tgz",
+      "integrity": "sha512-pw4xScRPsLegD/cqEcoXRKeA2SD4+s+Kyo0Na166NamOWhzNl2yI5RZ2rE97tBlAopNmhyMeBVpAeD5qb+ee1A==",
+      "requires": {
+        "zrender": "4.0.7"
+      }
+    },
+    "ee-first": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+      "dev": true
+    },
+    "electron-to-chromium": {
+      "version": "1.3.292",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.292.tgz",
+      "integrity": "sha512-hqkem5ANpt6mxVXmhAmlbdG8iicuyM/jEYgmP1tiHPeOLyZoTyGUzrDmJS/xyrrZy9frkW1uQcubicu7f6DS5g==",
+      "dev": true
+    },
+    "elliptic": {
+      "version": "6.5.1",
+      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz",
+      "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.4.0",
+        "brorand": "^1.0.1",
+        "hash.js": "^1.0.0",
+        "hmac-drbg": "^1.0.0",
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0",
+        "minimalistic-crypto-utils": "^1.0.0"
+      }
+    },
+    "emojis-list": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+      "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+      "dev": true
+    },
+    "encodeurl": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+      "dev": true
+    },
+    "end-of-stream": {
+      "version": "1.4.4",
+      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+      "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+      "dev": true,
+      "requires": {
+        "once": "^1.4.0"
+      }
+    },
+    "engine.io": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz",
+      "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.4",
+        "base64id": "1.0.0",
+        "cookie": "0.3.1",
+        "debug": "~3.1.0",
+        "engine.io-parser": "~2.1.0",
+        "ws": "~3.3.1"
+      },
+      "dependencies": {
+        "cookie": {
+          "version": "0.3.1",
+          "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+          "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
+          "dev": true
+        },
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        }
+      }
+    },
+    "engine.io-client": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz",
+      "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==",
+      "dev": true,
+      "requires": {
+        "component-emitter": "1.2.1",
+        "component-inherit": "0.0.3",
+        "debug": "~3.1.0",
+        "engine.io-parser": "~2.1.1",
+        "has-cors": "1.1.0",
+        "indexof": "0.0.1",
+        "parseqs": "0.0.5",
+        "parseuri": "0.0.5",
+        "ws": "~3.3.1",
+        "xmlhttprequest-ssl": "~1.5.4",
+        "yeast": "0.1.2"
+      },
+      "dependencies": {
+        "component-emitter": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+          "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+          "dev": true
+        },
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        }
+      }
+    },
+    "engine.io-parser": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz",
+      "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==",
+      "dev": true,
+      "requires": {
+        "after": "0.8.2",
+        "arraybuffer.slice": "~0.0.7",
+        "base64-arraybuffer": "0.1.5",
+        "blob": "0.0.5",
+        "has-binary2": "~1.0.2"
+      }
+    },
+    "enhanced-resolve": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
+      "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "memory-fs": "^0.4.0",
+        "tapable": "^1.0.0"
+      }
+    },
+    "ent": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
+      "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=",
+      "dev": true
+    },
+    "errno": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+      "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+      "dev": true,
+      "requires": {
+        "prr": "~1.0.1"
+      }
+    },
+    "error-ex": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+      "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+      "dev": true,
+      "requires": {
+        "is-arrayish": "^0.2.1"
+      }
+    },
+    "es-abstract": {
+      "version": "1.15.0",
+      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz",
+      "integrity": "sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ==",
+      "dev": true,
+      "requires": {
+        "es-to-primitive": "^1.2.0",
+        "function-bind": "^1.1.1",
+        "has": "^1.0.3",
+        "has-symbols": "^1.0.0",
+        "is-callable": "^1.1.4",
+        "is-regex": "^1.0.4",
+        "object-inspect": "^1.6.0",
+        "object-keys": "^1.1.1",
+        "string.prototype.trimleft": "^2.1.0",
+        "string.prototype.trimright": "^2.1.0"
+      }
+    },
+    "es-to-primitive": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
+      "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
+      "dev": true,
+      "requires": {
+        "is-callable": "^1.1.4",
+        "is-date-object": "^1.0.1",
+        "is-symbol": "^1.0.2"
+      }
+    },
+    "es6-promise": {
+      "version": "4.2.8",
+      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+      "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
+      "dev": true
+    },
+    "es6-promisify": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+      "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
+      "dev": true,
+      "requires": {
+        "es6-promise": "^4.0.3"
+      }
+    },
+    "escape-html": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+      "dev": true
+    },
+    "escape-string-regexp": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+      "dev": true
+    },
+    "escodegen": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
+      "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
+      "requires": {
+        "esprima": "^2.7.1",
+        "estraverse": "^1.9.1",
+        "esutils": "^2.0.2",
+        "optionator": "^0.8.1",
+        "source-map": "~0.2.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.2.0",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
+          "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
+          "optional": true,
+          "requires": {
+            "amdefine": ">=0.0.4"
+          }
+        }
+      }
+    },
+    "eslint-scope": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+      "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+      "dev": true,
+      "requires": {
+        "esrecurse": "^4.1.0",
+        "estraverse": "^4.1.1"
+      },
+      "dependencies": {
+        "estraverse": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+          "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+          "dev": true
+        }
+      }
+    },
+    "esprima": {
+      "version": "2.7.3",
+      "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+      "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE="
+    },
+    "esrecurse": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+      "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+      "dev": true,
+      "requires": {
+        "estraverse": "^4.1.0"
+      },
+      "dependencies": {
+        "estraverse": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+          "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+          "dev": true
+        }
+      }
+    },
+    "estraverse": {
+      "version": "1.9.3",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
+      "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q="
+    },
+    "esutils": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+    },
+    "etag": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+      "dev": true
+    },
+    "eventemitter3": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz",
+      "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==",
+      "dev": true
+    },
+    "events": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz",
+      "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==",
+      "dev": true
+    },
+    "eventsource": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz",
+      "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=",
+      "dev": true,
+      "requires": {
+        "original": ">=0.0.5"
+      }
+    },
+    "evp_bytestokey": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+      "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+      "dev": true,
+      "requires": {
+        "md5.js": "^1.3.4",
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "execa": {
+      "version": "0.10.0",
+      "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
+      "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
+      "dev": true,
+      "requires": {
+        "cross-spawn": "^6.0.0",
+        "get-stream": "^3.0.0",
+        "is-stream": "^1.1.0",
+        "npm-run-path": "^2.0.0",
+        "p-finally": "^1.0.0",
+        "signal-exit": "^3.0.0",
+        "strip-eof": "^1.0.0"
+      },
+      "dependencies": {
+        "cross-spawn": {
+          "version": "6.0.5",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+          "dev": true,
+          "requires": {
+            "nice-try": "^1.0.4",
+            "path-key": "^2.0.1",
+            "semver": "^5.5.0",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
+          }
+        }
+      }
+    },
+    "exit": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+      "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+      "dev": true
+    },
+    "expand-braces": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz",
+      "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=",
+      "dev": true,
+      "requires": {
+        "array-slice": "^0.2.3",
+        "array-unique": "^0.2.1",
+        "braces": "^0.1.2"
+      },
+      "dependencies": {
+        "array-unique": {
+          "version": "0.2.1",
+          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+          "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+          "dev": true
+        },
+        "braces": {
+          "version": "0.1.5",
+          "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz",
+          "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=",
+          "dev": true,
+          "requires": {
+            "expand-range": "^0.1.0"
+          }
+        },
+        "expand-range": {
+          "version": "0.1.1",
+          "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz",
+          "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=",
+          "dev": true,
+          "requires": {
+            "is-number": "^0.1.1",
+            "repeat-string": "^0.2.2"
+          }
+        },
+        "is-number": {
+          "version": "0.1.1",
+          "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz",
+          "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=",
+          "dev": true
+        },
+        "repeat-string": {
+          "version": "0.2.2",
+          "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz",
+          "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=",
+          "dev": true
+        }
+      }
+    },
+    "expand-brackets": {
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+      "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+      "dev": true,
+      "requires": {
+        "debug": "^2.3.3",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "posix-character-classes": "^0.1.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "expand-range": {
+      "version": "1.8.2",
+      "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+      "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+      "dev": true,
+      "requires": {
+        "fill-range": "^2.1.0"
+      },
+      "dependencies": {
+        "fill-range": {
+          "version": "2.2.4",
+          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
+          "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
+          "dev": true,
+          "requires": {
+            "is-number": "^2.1.0",
+            "isobject": "^2.0.0",
+            "randomatic": "^3.0.0",
+            "repeat-element": "^1.1.2",
+            "repeat-string": "^1.5.2"
+          }
+        },
+        "is-number": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+          "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+          "dev": true,
+          "requires": {
+            "kind-of": "^3.0.2"
+          }
+        },
+        "isobject": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+          "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+          "dev": true,
+          "requires": {
+            "isarray": "1.0.0"
+          }
+        },
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "express": {
+      "version": "4.17.1",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+      "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.7",
+        "array-flatten": "1.1.1",
+        "body-parser": "1.19.0",
+        "content-disposition": "0.5.3",
+        "content-type": "~1.0.4",
+        "cookie": "0.4.0",
+        "cookie-signature": "1.0.6",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "finalhandler": "~1.1.2",
+        "fresh": "0.5.2",
+        "merge-descriptors": "1.0.1",
+        "methods": "~1.1.2",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.3",
+        "path-to-regexp": "0.1.7",
+        "proxy-addr": "~2.0.5",
+        "qs": "6.7.0",
+        "range-parser": "~1.2.1",
+        "safe-buffer": "5.1.2",
+        "send": "0.17.1",
+        "serve-static": "1.14.1",
+        "setprototypeof": "1.1.1",
+        "statuses": "~1.5.0",
+        "type-is": "~1.6.18",
+        "utils-merge": "1.0.1",
+        "vary": "~1.1.2"
+      },
+      "dependencies": {
+        "array-flatten": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+          "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+          "dev": true
+        },
+        "qs": {
+          "version": "6.7.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+          "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+          "dev": true
+        }
+      }
+    },
+    "extend": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+    },
+    "extend-shallow": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+      "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+      "dev": true,
+      "requires": {
+        "assign-symbols": "^1.0.0",
+        "is-extendable": "^1.0.1"
+      },
+      "dependencies": {
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+          "dev": true,
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "external-editor": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+      "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+      "dev": true,
+      "requires": {
+        "chardet": "^0.7.0",
+        "iconv-lite": "^0.4.24",
+        "tmp": "^0.0.33"
+      }
+    },
+    "extglob": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+      "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+      "dev": true,
+      "requires": {
+        "array-unique": "^0.3.2",
+        "define-property": "^1.0.0",
+        "expand-brackets": "^2.1.4",
+        "extend-shallow": "^2.0.1",
+        "fragment-cache": "^0.2.1",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "extsprintf": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+    },
+    "fast-deep-equal": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+      "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
+    },
+    "fast-json-stable-stringify": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+      "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
+    },
+    "fast-levenshtein": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+      "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+    },
+    "fastparse": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
+      "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
+      "dev": true
+    },
+    "faye-websocket": {
+      "version": "0.10.0",
+      "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
+      "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+      "dev": true,
+      "requires": {
+        "websocket-driver": ">=0.5.1"
+      }
+    },
+    "figgy-pudding": {
+      "version": "3.5.1",
+      "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
+      "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==",
+      "dev": true
+    },
+    "figures": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+      "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+      "dev": true,
+      "requires": {
+        "escape-string-regexp": "^1.0.5"
+      }
+    },
+    "file-loader": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz",
+      "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.0.2",
+        "schema-utils": "^1.0.0"
+      }
+    },
+    "file-saver": {
+      "version": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e",
+      "from": "github:eligrey/FileSaver.js#1.3.8"
+    },
+    "filename-regex": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+      "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
+      "dev": true
+    },
+    "fileset": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
+      "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
+      "dev": true,
+      "requires": {
+        "glob": "^7.0.3",
+        "minimatch": "^3.0.3"
+      }
+    },
+    "fill-range": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+      "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^2.0.1",
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1",
+        "to-regex-range": "^2.1.0"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "finalhandler": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+      "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+      "dev": true,
+      "requires": {
+        "debug": "2.6.9",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.3",
+        "statuses": "~1.5.0",
+        "unpipe": "~1.0.0"
+      }
+    },
+    "find-cache-dir": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
+      "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+      "dev": true,
+      "requires": {
+        "commondir": "^1.0.1",
+        "make-dir": "^1.0.0",
+        "pkg-dir": "^2.0.0"
+      }
+    },
+    "find-up": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+      "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+      "dev": true,
+      "requires": {
+        "locate-path": "^2.0.0"
+      }
+    },
+    "flush-write-stream": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+      "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.3.6"
+      }
+    },
+    "follow-redirects": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz",
+      "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==",
+      "dev": true,
+      "requires": {
+        "debug": "^3.0.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+          "dev": true
+        }
+      }
+    },
+    "font-awesome": {
+      "version": "4.7.0",
+      "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
+      "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM="
+    },
+    "for-in": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+      "dev": true
+    },
+    "for-own": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+      "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+      "dev": true,
+      "requires": {
+        "for-in": "^1.0.1"
+      }
+    },
+    "forever-agent": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+      "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+    },
+    "form-data": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+      "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+      "requires": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.6",
+        "mime-types": "^2.1.12"
+      }
+    },
+    "forwarded": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+      "dev": true
+    },
+    "fragment-cache": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+      "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+      "dev": true,
+      "requires": {
+        "map-cache": "^0.2.2"
+      }
+    },
+    "fresh": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+      "dev": true
+    },
+    "from2": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+      "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.0.0"
+      }
+    },
+    "fs-access": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz",
+      "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=",
+      "dev": true,
+      "requires": {
+        "null-check": "^1.0.0"
+      }
+    },
+    "fs-write-stream-atomic": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+      "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "iferr": "^0.1.5",
+        "imurmurhash": "^0.1.4",
+        "readable-stream": "1 || 2"
+      }
+    },
+    "fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+      "dev": true
+    },
+    "fsevents": {
+      "version": "1.2.9",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
+      "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "nan": "^2.12.1",
+        "node-pre-gyp": "^0.12.0"
+      },
+      "dependencies": {
+        "abbrev": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+          "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+          "dev": true,
+          "optional": true
+        },
+        "ansi-regex": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+          "dev": true,
+          "optional": true
+        },
+        "aproba": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+          "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+          "dev": true,
+          "optional": true
+        },
+        "are-we-there-yet": {
+          "version": "1.1.5",
+          "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+          "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "delegates": "^1.0.0",
+            "readable-stream": "^2.0.6"
+          }
+        },
+        "balanced-match": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+          "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+          "dev": true,
+          "optional": true
+        },
+        "brace-expansion": {
+          "version": "1.1.11",
+          "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+          "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "balanced-match": "^1.0.0",
+            "concat-map": "0.0.1"
+          }
+        },
+        "chownr": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
+          "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
+          "dev": true,
+          "optional": true
+        },
+        "code-point-at": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+          "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+          "dev": true,
+          "optional": true
+        },
+        "concat-map": {
+          "version": "0.0.1",
+          "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+          "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+          "dev": true,
+          "optional": true
+        },
+        "console-control-strings": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+          "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+          "dev": true,
+          "optional": true
+        },
+        "core-util-is": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+          "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+          "dev": true,
+          "optional": true
+        },
+        "debug": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "deep-extend": {
+          "version": "0.6.0",
+          "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+          "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+          "dev": true,
+          "optional": true
+        },
+        "delegates": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+          "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+          "dev": true,
+          "optional": true
+        },
+        "detect-libc": {
+          "version": "1.0.3",
+          "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+          "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
+          "dev": true,
+          "optional": true
+        },
+        "fs-minipass": {
+          "version": "1.2.5",
+          "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
+          "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "minipass": "^2.2.1"
+          }
+        },
+        "fs.realpath": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+          "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+          "dev": true,
+          "optional": true
+        },
+        "gauge": {
+          "version": "2.7.4",
+          "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+          "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "aproba": "^1.0.3",
+            "console-control-strings": "^1.0.0",
+            "has-unicode": "^2.0.0",
+            "object-assign": "^4.1.0",
+            "signal-exit": "^3.0.0",
+            "string-width": "^1.0.1",
+            "strip-ansi": "^3.0.1",
+            "wide-align": "^1.1.0"
+          }
+        },
+        "glob": {
+          "version": "7.1.3",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+          "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.0.4",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "has-unicode": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+          "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+          "dev": true,
+          "optional": true
+        },
+        "iconv-lite": {
+          "version": "0.4.24",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+          "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "safer-buffer": ">= 2.1.2 < 3"
+          }
+        },
+        "ignore-walk": {
+          "version": "3.0.1",
+          "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
+          "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "minimatch": "^3.0.4"
+          }
+        },
+        "inflight": {
+          "version": "1.0.6",
+          "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+          "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "once": "^1.3.0",
+            "wrappy": "1"
+          }
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+          "dev": true,
+          "optional": true
+        },
+        "ini": {
+          "version": "1.3.5",
+          "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+          "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+          "dev": true,
+          "optional": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "number-is-nan": "^1.0.0"
+          }
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+          "dev": true,
+          "optional": true
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+          "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "brace-expansion": "^1.1.7"
+          }
+        },
+        "minimist": {
+          "version": "0.0.8",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+          "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+          "dev": true,
+          "optional": true
+        },
+        "minipass": {
+          "version": "2.3.5",
+          "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
+          "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "safe-buffer": "^5.1.2",
+            "yallist": "^3.0.0"
+          }
+        },
+        "minizlib": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
+          "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "minipass": "^2.2.1"
+          }
+        },
+        "mkdirp": {
+          "version": "0.5.1",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+          "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "minimist": "0.0.8"
+          }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true,
+          "optional": true
+        },
+        "needle": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/needle/-/needle-2.3.0.tgz",
+          "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "debug": "^4.1.0",
+            "iconv-lite": "^0.4.4",
+            "sax": "^1.2.4"
+          }
+        },
+        "node-pre-gyp": {
+          "version": "0.12.0",
+          "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz",
+          "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "detect-libc": "^1.0.2",
+            "mkdirp": "^0.5.1",
+            "needle": "^2.2.1",
+            "nopt": "^4.0.1",
+            "npm-packlist": "^1.1.6",
+            "npmlog": "^4.0.2",
+            "rc": "^1.2.7",
+            "rimraf": "^2.6.1",
+            "semver": "^5.3.0",
+            "tar": "^4"
+          }
+        },
+        "nopt": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+          "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "abbrev": "1",
+            "osenv": "^0.1.4"
+          }
+        },
+        "npm-bundled": {
+          "version": "1.0.6",
+          "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz",
+          "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
+          "dev": true,
+          "optional": true
+        },
+        "npm-packlist": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.1.tgz",
+          "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ignore-walk": "^3.0.1",
+            "npm-bundled": "^1.0.1"
+          }
+        },
+        "npmlog": {
+          "version": "4.1.2",
+          "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+          "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "are-we-there-yet": "~1.1.2",
+            "console-control-strings": "~1.1.0",
+            "gauge": "~2.7.3",
+            "set-blocking": "~2.0.0"
+          }
+        },
+        "number-is-nan": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+          "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+          "dev": true,
+          "optional": true
+        },
+        "object-assign": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+          "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+          "dev": true,
+          "optional": true
+        },
+        "once": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+          "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "wrappy": "1"
+          }
+        },
+        "os-homedir": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+          "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+          "dev": true,
+          "optional": true
+        },
+        "os-tmpdir": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+          "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+          "dev": true,
+          "optional": true
+        },
+        "osenv": {
+          "version": "0.1.5",
+          "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+          "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "os-homedir": "^1.0.0",
+            "os-tmpdir": "^1.0.0"
+          }
+        },
+        "path-is-absolute": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+          "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+          "dev": true,
+          "optional": true
+        },
+        "process-nextick-args": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+          "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+          "dev": true,
+          "optional": true
+        },
+        "rc": {
+          "version": "1.2.8",
+          "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+          "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "deep-extend": "^0.6.0",
+            "ini": "~1.3.0",
+            "minimist": "^1.2.0",
+            "strip-json-comments": "~2.0.1"
+          },
+          "dependencies": {
+            "minimist": {
+              "version": "1.2.0",
+              "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+              "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+              "dev": true,
+              "optional": true
+            }
+          }
+        },
+        "readable-stream": {
+          "version": "2.3.6",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+          "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.3",
+            "isarray": "~1.0.0",
+            "process-nextick-args": "~2.0.0",
+            "safe-buffer": "~5.1.1",
+            "string_decoder": "~1.1.1",
+            "util-deprecate": "~1.0.1"
+          }
+        },
+        "rimraf": {
+          "version": "2.6.3",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+          "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "glob": "^7.1.3"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+          "dev": true,
+          "optional": true
+        },
+        "safer-buffer": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+          "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+          "dev": true,
+          "optional": true
+        },
+        "sax": {
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+          "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+          "dev": true,
+          "optional": true
+        },
+        "semver": {
+          "version": "5.7.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+          "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
+          "dev": true,
+          "optional": true
+        },
+        "set-blocking": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+          "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+          "dev": true,
+          "optional": true
+        },
+        "signal-exit": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+          "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+          "dev": true,
+          "optional": true
+        },
+        "string-width": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "code-point-at": "^1.0.0",
+            "is-fullwidth-code-point": "^1.0.0",
+            "strip-ansi": "^3.0.0"
+          }
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-regex": "^2.0.0"
+          }
+        },
+        "strip-json-comments": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+          "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+          "dev": true,
+          "optional": true
+        },
+        "tar": {
+          "version": "4.4.8",
+          "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
+          "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "chownr": "^1.1.1",
+            "fs-minipass": "^1.2.5",
+            "minipass": "^2.3.4",
+            "minizlib": "^1.1.1",
+            "mkdirp": "^0.5.0",
+            "safe-buffer": "^5.1.2",
+            "yallist": "^3.0.2"
+          }
+        },
+        "util-deprecate": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+          "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+          "dev": true,
+          "optional": true
+        },
+        "wide-align": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+          "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "string-width": "^1.0.2 || 2"
+          }
+        },
+        "wrappy": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+          "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+          "dev": true,
+          "optional": true
+        },
+        "yallist": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "fstream": {
+      "version": "1.0.12",
+      "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
+      "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "inherits": "~2.0.0",
+        "mkdirp": ">=0.5 0",
+        "rimraf": "2"
+      }
+    },
+    "function-bind": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+      "dev": true
+    },
+    "gauge": {
+      "version": "2.7.4",
+      "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+      "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "aproba": "^1.0.3",
+        "console-control-strings": "^1.0.0",
+        "has-unicode": "^2.0.0",
+        "object-assign": "^4.1.0",
+        "signal-exit": "^3.0.0",
+        "string-width": "^1.0.1",
+        "strip-ansi": "^3.0.1",
+        "wide-align": "^1.1.0"
+      }
+    },
+    "gaze": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+      "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "globule": "^1.0.0"
+      }
+    },
+    "get-caller-file": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+      "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+      "dev": true
+    },
+    "get-stdin": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+      "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+      "dev": true,
+      "optional": true
+    },
+    "get-stream": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+      "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+      "dev": true
+    },
+    "get-value": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+      "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+      "dev": true
+    },
+    "getpass": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "glob": {
+      "version": "7.1.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+      "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+      "dev": true,
+      "requires": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.0.4",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      }
+    },
+    "glob-base": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+      "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+      "dev": true,
+      "requires": {
+        "glob-parent": "^2.0.0",
+        "is-glob": "^2.0.0"
+      },
+      "dependencies": {
+        "glob-parent": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+          "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+          "dev": true,
+          "requires": {
+            "is-glob": "^2.0.0"
+          }
+        },
+        "is-extglob": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+          "dev": true
+        },
+        "is-glob": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+          "dev": true,
+          "requires": {
+            "is-extglob": "^1.0.0"
+          }
+        }
+      }
+    },
+    "glob-parent": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+      "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+      "dev": true,
+      "requires": {
+        "is-glob": "^3.1.0",
+        "path-dirname": "^1.0.0"
+      },
+      "dependencies": {
+        "is-glob": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+          "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+          "dev": true,
+          "requires": {
+            "is-extglob": "^2.1.0"
+          }
+        }
+      }
+    },
+    "globals": {
+      "version": "9.18.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+      "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+      "dev": true
+    },
+    "globby": {
+      "version": "7.1.1",
+      "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
+      "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+      "dev": true,
+      "requires": {
+        "array-union": "^1.0.1",
+        "dir-glob": "^2.0.0",
+        "glob": "^7.1.2",
+        "ignore": "^3.3.5",
+        "pify": "^3.0.0",
+        "slash": "^1.0.0"
+      }
+    },
+    "globule": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
+      "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "glob": "~7.1.1",
+        "lodash": "~4.17.10",
+        "minimatch": "~3.0.2"
+      }
+    },
+    "graceful-fs": {
+      "version": "4.2.2",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+      "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+      "dev": true
+    },
+    "handle-thing": {
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz",
+      "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=",
+      "dev": true
+    },
+    "handlebars": {
+      "version": "4.4.3",
+      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.4.3.tgz",
+      "integrity": "sha512-B0W4A2U1ww3q7VVthTKfh+epHx+q4mCt6iK+zEAzbMBpWQAwxCeKxEGpj/1oQTpzPXDNSOG7hmG14TsISH50yw==",
+      "dev": true,
+      "requires": {
+        "neo-async": "^2.6.0",
+        "optimist": "^0.6.1",
+        "source-map": "^0.6.1",
+        "uglify-js": "^3.1.4"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "har-schema": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+      "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
+    },
+    "har-validator": {
+      "version": "5.1.3",
+      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+      "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+      "requires": {
+        "ajv": "^6.5.5",
+        "har-schema": "^2.0.0"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "6.10.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
+          "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
+          "requires": {
+            "fast-deep-equal": "^2.0.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        }
+      }
+    },
+    "has": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+      "dev": true,
+      "requires": {
+        "function-bind": "^1.1.1"
+      }
+    },
+    "has-ansi": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "^2.0.0"
+      }
+    },
+    "has-binary2": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
+      "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
+      "dev": true,
+      "requires": {
+        "isarray": "2.0.1"
+      },
+      "dependencies": {
+        "isarray": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+          "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
+          "dev": true
+        }
+      }
+    },
+    "has-cors": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
+      "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
+      "dev": true
+    },
+    "has-flag": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+      "dev": true
+    },
+    "has-symbols": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
+      "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
+      "dev": true
+    },
+    "has-unicode": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+      "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+      "dev": true,
+      "optional": true
+    },
+    "has-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+      "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+      "dev": true,
+      "requires": {
+        "get-value": "^2.0.6",
+        "has-values": "^1.0.0",
+        "isobject": "^3.0.0"
+      }
+    },
+    "has-values": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+      "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+      "dev": true,
+      "requires": {
+        "is-number": "^3.0.0",
+        "kind-of": "^4.0.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "hash-base": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+      "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "hash.js": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+      "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.3",
+        "minimalistic-assert": "^1.0.1"
+      }
+    },
+    "highcharts": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/highcharts/-/highcharts-7.2.0.tgz",
+      "integrity": "sha512-jOlMzj3oRuqNBoJg+rqHZI9vnlLHipwVfceJr00gAreXu8268UwahEh7yBGI/m1wa6Uc/XoBMIuzMpXUFMvFdg=="
+    },
+    "highcharts-angular": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/highcharts-angular/-/highcharts-angular-2.4.0.tgz",
+      "integrity": "sha512-Tmp2pfP/PeSI/xc3SqbyyZ5FSn6n98uij0vz+D+TVobuQP9EHrLxGHvyrlHqJFmaB0C2I9Ajk6Uo/QneWuSq3w==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "hmac-drbg": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+      "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+      "dev": true,
+      "requires": {
+        "hash.js": "^1.0.3",
+        "minimalistic-assert": "^1.0.0",
+        "minimalistic-crypto-utils": "^1.0.1"
+      }
+    },
+    "hosted-git-info": {
+      "version": "2.8.5",
+      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz",
+      "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==",
+      "dev": true
+    },
+    "hpack.js": {
+      "version": "2.1.6",
+      "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+      "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "obuf": "^1.0.0",
+        "readable-stream": "^2.0.1",
+        "wbuf": "^1.1.0"
+      }
+    },
+    "html-entities": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
+      "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
+      "dev": true
+    },
+    "http-deceiver": {
+      "version": "1.2.7",
+      "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+      "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
+      "dev": true
+    },
+    "http-errors": {
+      "version": "1.7.2",
+      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+      "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+      "dev": true,
+      "requires": {
+        "depd": "~1.1.2",
+        "inherits": "2.0.3",
+        "setprototypeof": "1.1.1",
+        "statuses": ">= 1.5.0 < 2",
+        "toidentifier": "1.0.0"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+          "dev": true
+        }
+      }
+    },
+    "http-parser-js": {
+      "version": "0.4.10",
+      "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz",
+      "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=",
+      "dev": true
+    },
+    "http-proxy": {
+      "version": "1.18.0",
+      "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz",
+      "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==",
+      "dev": true,
+      "requires": {
+        "eventemitter3": "^4.0.0",
+        "follow-redirects": "^1.0.0",
+        "requires-port": "^1.0.0"
+      }
+    },
+    "http-proxy-middleware": {
+      "version": "0.18.0",
+      "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz",
+      "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==",
+      "dev": true,
+      "requires": {
+        "http-proxy": "^1.16.2",
+        "is-glob": "^4.0.0",
+        "lodash": "^4.17.5",
+        "micromatch": "^3.1.9"
+      }
+    },
+    "http-signature": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+      "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "jsprim": "^1.2.2",
+        "sshpk": "^1.7.0"
+      }
+    },
+    "https-browserify": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
+      "dev": true
+    },
+    "https-proxy-agent": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz",
+      "integrity": "sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg==",
+      "dev": true,
+      "requires": {
+        "agent-base": "^4.3.0",
+        "debug": "^3.1.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+          "dev": true
+        }
+      }
+    },
+    "iconv-lite": {
+      "version": "0.4.24",
+      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+      "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+      "requires": {
+        "safer-buffer": ">= 2.1.2 < 3"
+      }
+    },
+    "ieee754": {
+      "version": "1.1.13",
+      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+      "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
+      "dev": true
+    },
+    "iferr": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+      "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+      "dev": true
+    },
+    "ignore": {
+      "version": "3.3.10",
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+      "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+      "dev": true
+    },
+    "image-size": {
+      "version": "0.5.5",
+      "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
+      "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
+      "dev": true,
+      "optional": true
+    },
+    "immediate": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+      "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=",
+      "dev": true
+    },
+    "import-cwd": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
+      "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
+      "dev": true,
+      "requires": {
+        "import-from": "^2.1.0"
+      }
+    },
+    "import-fresh": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+      "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+      "dev": true,
+      "requires": {
+        "caller-path": "^2.0.0",
+        "resolve-from": "^3.0.0"
+      }
+    },
+    "import-from": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
+      "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
+      "dev": true,
+      "requires": {
+        "resolve-from": "^3.0.0"
+      }
+    },
+    "import-local": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
+      "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
+      "dev": true,
+      "requires": {
+        "pkg-dir": "^3.0.0",
+        "resolve-cwd": "^2.0.0"
+      },
+      "dependencies": {
+        "find-up": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+          "dev": true,
+          "requires": {
+            "locate-path": "^3.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+          "dev": true,
+          "requires": {
+            "p-locate": "^3.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "p-limit": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+          "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+          "dev": true,
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.0.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+          "dev": true
+        },
+        "pkg-dir": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+          "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+          "dev": true,
+          "requires": {
+            "find-up": "^3.0.0"
+          }
+        }
+      }
+    },
+    "imurmurhash": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+      "dev": true
+    },
+    "in-publish": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
+      "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
+      "dev": true,
+      "optional": true
+    },
+    "indent-string": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+      "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "repeating": "^2.0.0"
+      }
+    },
+    "indexof": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
+      "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
+      "dev": true
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+      "dev": true,
+      "requires": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+      "dev": true
+    },
+    "ini": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+      "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+      "dev": true
+    },
+    "inquirer": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz",
+      "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==",
+      "dev": true,
+      "requires": {
+        "ansi-escapes": "^3.0.0",
+        "chalk": "^2.0.0",
+        "cli-cursor": "^2.1.0",
+        "cli-width": "^2.0.0",
+        "external-editor": "^3.0.0",
+        "figures": "^2.0.0",
+        "lodash": "^4.17.10",
+        "mute-stream": "0.0.7",
+        "run-async": "^2.2.0",
+        "rxjs": "^6.1.0",
+        "string-width": "^2.1.0",
+        "strip-ansi": "^4.0.0",
+        "through": "^2.3.6"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+          "dev": true,
+          "requires": {
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^3.0.0"
+          }
+        }
+      }
+    },
+    "internal-ip": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz",
+      "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==",
+      "dev": true,
+      "requires": {
+        "default-gateway": "^2.6.0",
+        "ipaddr.js": "^1.5.2"
+      }
+    },
+    "interpret": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
+      "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
+      "dev": true
+    },
+    "invariant": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+      "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+      "dev": true,
+      "requires": {
+        "loose-envify": "^1.0.0"
+      }
+    },
+    "invert-kv": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+      "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+      "dev": true
+    },
+    "ip": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+      "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
+      "dev": true
+    },
+    "ip-regex": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+      "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
+      "dev": true
+    },
+    "ipaddr.js": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
+      "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==",
+      "dev": true
+    },
+    "is-accessor-descriptor": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+      "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-arguments": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
+      "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==",
+      "dev": true
+    },
+    "is-arrayish": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+      "dev": true
+    },
+    "is-binary-path": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+      "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+      "dev": true,
+      "requires": {
+        "binary-extensions": "^1.0.0"
+      }
+    },
+    "is-buffer": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+      "dev": true
+    },
+    "is-callable": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
+      "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
+      "dev": true
+    },
+    "is-data-descriptor": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+      "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-date-object": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+      "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+      "dev": true
+    },
+    "is-descriptor": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+      "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+      "dev": true,
+      "requires": {
+        "is-accessor-descriptor": "^0.1.6",
+        "is-data-descriptor": "^0.1.4",
+        "kind-of": "^5.0.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+          "dev": true
+        }
+      }
+    },
+    "is-directory": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+      "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+      "dev": true
+    },
+    "is-dotfile": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+      "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
+      "dev": true
+    },
+    "is-equal-shallow": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+      "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+      "dev": true,
+      "requires": {
+        "is-primitive": "^2.0.0"
+      }
+    },
+    "is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+      "dev": true
+    },
+    "is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+      "dev": true
+    },
+    "is-finite": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+      "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+      "dev": true,
+      "requires": {
+        "number-is-nan": "^1.0.0"
+      }
+    },
+    "is-fullwidth-code-point": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+      "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+      "dev": true,
+      "requires": {
+        "number-is-nan": "^1.0.0"
+      }
+    },
+    "is-glob": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+      "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+      "dev": true,
+      "requires": {
+        "is-extglob": "^2.1.1"
+      }
+    },
+    "is-number": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+      "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-path-cwd": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+      "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
+      "dev": true
+    },
+    "is-path-in-cwd": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
+      "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
+      "dev": true,
+      "requires": {
+        "is-path-inside": "^1.0.0"
+      }
+    },
+    "is-path-inside": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+      "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+      "dev": true,
+      "requires": {
+        "path-is-inside": "^1.0.1"
+      }
+    },
+    "is-plain-object": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+      "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+      "dev": true,
+      "requires": {
+        "isobject": "^3.0.1"
+      }
+    },
+    "is-posix-bracket": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+      "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
+      "dev": true
+    },
+    "is-primitive": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+      "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+      "dev": true
+    },
+    "is-promise": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+      "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+      "dev": true
+    },
+    "is-regex": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+      "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+      "dev": true,
+      "requires": {
+        "has": "^1.0.1"
+      }
+    },
+    "is-stream": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+      "dev": true
+    },
+    "is-symbol": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
+      "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+      "dev": true,
+      "requires": {
+        "has-symbols": "^1.0.0"
+      }
+    },
+    "is-typedarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+      "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+    },
+    "is-utf8": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+      "dev": true,
+      "optional": true
+    },
+    "is-windows": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+      "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+      "dev": true
+    },
+    "is-wsl": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+      "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+      "dev": true
+    },
+    "isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+      "dev": true
+    },
+    "isbinaryfile": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
+      "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==",
+      "dev": true,
+      "requires": {
+        "buffer-alloc": "^1.2.0"
+      }
+    },
+    "isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+      "dev": true
+    },
+    "isobject": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+      "dev": true
+    },
+    "isstream": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+      "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+    },
+    "istanbul": {
+      "version": "0.4.5",
+      "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz",
+      "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=",
+      "dev": true,
+      "requires": {
+        "abbrev": "1.0.x",
+        "async": "1.x",
+        "escodegen": "1.8.x",
+        "esprima": "2.7.x",
+        "glob": "^5.0.15",
+        "handlebars": "^4.0.1",
+        "js-yaml": "3.x",
+        "mkdirp": "0.5.x",
+        "nopt": "3.x",
+        "once": "1.x",
+        "resolve": "1.1.x",
+        "supports-color": "^3.1.0",
+        "which": "^1.1.1",
+        "wordwrap": "^1.0.0"
+      },
+      "dependencies": {
+        "glob": {
+          "version": "5.0.15",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+          "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+          "dev": true,
+          "requires": {
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "2 || 3",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "istanbul-api": {
+      "version": "2.1.6",
+      "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.6.tgz",
+      "integrity": "sha512-x0Eicp6KsShG1k1rMgBAi/1GgY7kFGEBwQpw3PXGEmu+rBcBNhqU8g2DgY9mlepAsLPzrzrbqSgCGANnki4POA==",
+      "dev": true,
+      "requires": {
+        "async": "^2.6.2",
+        "compare-versions": "^3.4.0",
+        "fileset": "^2.0.3",
+        "istanbul-lib-coverage": "^2.0.5",
+        "istanbul-lib-hook": "^2.0.7",
+        "istanbul-lib-instrument": "^3.3.0",
+        "istanbul-lib-report": "^2.0.8",
+        "istanbul-lib-source-maps": "^3.0.6",
+        "istanbul-reports": "^2.2.4",
+        "js-yaml": "^3.13.1",
+        "make-dir": "^2.1.0",
+        "minimatch": "^3.0.4",
+        "once": "^1.4.0"
+      },
+      "dependencies": {
+        "async": {
+          "version": "2.6.3",
+          "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+          "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+          "dev": true,
+          "requires": {
+            "lodash": "^4.17.14"
+          }
+        },
+        "istanbul-lib-coverage": {
+          "version": "2.0.5",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
+          "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
+          "dev": true
+        },
+        "istanbul-lib-instrument": {
+          "version": "3.3.0",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
+          "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
+          "dev": true,
+          "requires": {
+            "@babel/generator": "^7.4.0",
+            "@babel/parser": "^7.4.3",
+            "@babel/template": "^7.4.0",
+            "@babel/traverse": "^7.4.3",
+            "@babel/types": "^7.4.0",
+            "istanbul-lib-coverage": "^2.0.5",
+            "semver": "^6.0.0"
+          }
+        },
+        "make-dir": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+          "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+          "dev": true,
+          "requires": {
+            "pify": "^4.0.1",
+            "semver": "^5.6.0"
+          },
+          "dependencies": {
+            "semver": {
+              "version": "5.7.1",
+              "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+              "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+              "dev": true
+            }
+          }
+        },
+        "pify": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+          "dev": true
+        },
+        "semver": {
+          "version": "6.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "dev": true
+        }
+      }
+    },
+    "istanbul-instrumenter-loader": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz",
+      "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==",
+      "dev": true,
+      "requires": {
+        "convert-source-map": "^1.5.0",
+        "istanbul-lib-instrument": "^1.7.3",
+        "loader-utils": "^1.1.0",
+        "schema-utils": "^0.3.0"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "5.5.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+          "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+          "dev": true,
+          "requires": {
+            "co": "^4.6.0",
+            "fast-deep-equal": "^1.0.0",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.3.0"
+          }
+        },
+        "fast-deep-equal": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+          "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+          "dev": true
+        },
+        "json-schema-traverse": {
+          "version": "0.3.1",
+          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+          "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+          "dev": true
+        },
+        "schema-utils": {
+          "version": "0.3.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
+          "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
+          "dev": true,
+          "requires": {
+            "ajv": "^5.0.0"
+          }
+        }
+      }
+    },
+    "istanbul-lib-coverage": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz",
+      "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==",
+      "dev": true
+    },
+    "istanbul-lib-hook": {
+      "version": "2.0.7",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz",
+      "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==",
+      "dev": true,
+      "requires": {
+        "append-transform": "^1.0.0"
+      }
+    },
+    "istanbul-lib-instrument": {
+      "version": "1.10.2",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz",
+      "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==",
+      "dev": true,
+      "requires": {
+        "babel-generator": "^6.18.0",
+        "babel-template": "^6.16.0",
+        "babel-traverse": "^6.18.0",
+        "babel-types": "^6.18.0",
+        "babylon": "^6.18.0",
+        "istanbul-lib-coverage": "^1.2.1",
+        "semver": "^5.3.0"
+      }
+    },
+    "istanbul-lib-report": {
+      "version": "2.0.8",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz",
+      "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==",
+      "dev": true,
+      "requires": {
+        "istanbul-lib-coverage": "^2.0.5",
+        "make-dir": "^2.1.0",
+        "supports-color": "^6.1.0"
+      },
+      "dependencies": {
+        "istanbul-lib-coverage": {
+          "version": "2.0.5",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
+          "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
+          "dev": true
+        },
+        "make-dir": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+          "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+          "dev": true,
+          "requires": {
+            "pify": "^4.0.1",
+            "semver": "^5.6.0"
+          }
+        },
+        "pify": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+          "dev": true
+        },
+        "semver": {
+          "version": "5.7.1",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "6.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+          "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^3.0.0"
+          }
+        }
+      }
+    },
+    "istanbul-lib-source-maps": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz",
+      "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==",
+      "dev": true,
+      "requires": {
+        "debug": "^4.1.1",
+        "istanbul-lib-coverage": "^2.0.5",
+        "make-dir": "^2.1.0",
+        "rimraf": "^2.6.3",
+        "source-map": "^0.6.1"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "istanbul-lib-coverage": {
+          "version": "2.0.5",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
+          "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
+          "dev": true
+        },
+        "make-dir": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+          "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+          "dev": true,
+          "requires": {
+            "pify": "^4.0.1",
+            "semver": "^5.6.0"
+          }
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+          "dev": true
+        },
+        "pify": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+          "dev": true
+        },
+        "semver": {
+          "version": "5.7.1",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "istanbul-reports": {
+      "version": "2.2.6",
+      "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz",
+      "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==",
+      "dev": true,
+      "requires": {
+        "handlebars": "^4.1.2"
+      }
+    },
+    "jasmine": {
+      "version": "2.8.0",
+      "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz",
+      "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=",
+      "dev": true,
+      "requires": {
+        "exit": "^0.1.2",
+        "glob": "^7.0.6",
+        "jasmine-core": "~2.8.0"
+      },
+      "dependencies": {
+        "jasmine-core": {
+          "version": "2.8.0",
+          "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz",
+          "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=",
+          "dev": true
+        }
+      }
+    },
+    "jasmine-core": {
+      "version": "2.99.1",
+      "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz",
+      "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=",
+      "dev": true
+    },
+    "jasmine-spec-reporter": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz",
+      "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==",
+      "dev": true,
+      "requires": {
+        "colors": "1.1.2"
+      }
+    },
+    "jasminewd2": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz",
+      "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=",
+      "dev": true
+    },
+    "jquery": {
+      "version": "3.4.1",
+      "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz",
+      "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw=="
+    },
+    "js-base64": {
+      "version": "2.5.1",
+      "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz",
+      "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==",
+      "dev": true,
+      "optional": true
+    },
+    "js-tokens": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+      "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+      "dev": true
+    },
+    "js-yaml": {
+      "version": "3.13.1",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+      "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+      "dev": true,
+      "requires": {
+        "argparse": "^1.0.7",
+        "esprima": "^4.0.0"
+      },
+      "dependencies": {
+        "esprima": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+          "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+          "dev": true
+        }
+      }
+    },
+    "jsbn": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+      "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+    },
+    "jsdom": {
+      "version": "8.5.0",
+      "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-8.5.0.tgz",
+      "integrity": "sha1-1Nj12/J2hjW2KmKCO5R89wcevJg=",
+      "requires": {
+        "abab": "^1.0.0",
+        "acorn": "^2.4.0",
+        "acorn-globals": "^1.0.4",
+        "array-equal": "^1.0.0",
+        "cssom": ">= 0.3.0 < 0.4.0",
+        "cssstyle": ">= 0.2.34 < 0.3.0",
+        "escodegen": "^1.6.1",
+        "iconv-lite": "^0.4.13",
+        "nwmatcher": ">= 1.3.7 < 2.0.0",
+        "parse5": "^1.5.1",
+        "request": "^2.55.0",
+        "sax": "^1.1.4",
+        "symbol-tree": ">= 3.1.0 < 4.0.0",
+        "tough-cookie": "^2.2.0",
+        "webidl-conversions": "^3.0.1",
+        "whatwg-url": "^2.0.1",
+        "xml-name-validator": ">= 2.0.1 < 3.0.0"
+      },
+      "dependencies": {
+        "acorn": {
+          "version": "2.7.0",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
+          "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc="
+        },
+        "parse5": {
+          "version": "1.5.1",
+          "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
+          "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ="
+        },
+        "sax": {
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+          "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+        }
+      }
+    },
+    "jsesc": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+      "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+      "dev": true
+    },
+    "json-parse-better-errors": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+      "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+      "dev": true
+    },
+    "json-schema": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+    },
+    "json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+    },
+    "json-stringify-safe": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+    },
+    "json3": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz",
+      "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==",
+      "dev": true
+    },
+    "json5": {
+      "version": "0.5.1",
+      "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+      "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+      "dev": true
+    },
+    "jspdf": {
+      "version": "1.5.3",
+      "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-1.5.3.tgz",
+      "integrity": "sha512-J9X76xnncMw+wIqb15HeWfPMqPwYxSpPY8yWPJ7rAZN/ZDzFkjCSZObryCyUe8zbrVRNiuCnIeQteCzMn7GnWw==",
+      "requires": {
+        "canvg": "1.5.3",
+        "file-saver": "github:eligrey/FileSaver.js#1.3.8",
+        "html2canvas": "1.0.0-alpha.12",
+        "omggif": "1.0.7",
+        "promise-polyfill": "8.1.0",
+        "stackblur-canvas": "2.2.0"
+      },
+      "dependencies": {
+        "css-line-break": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-1.0.1.tgz",
+          "integrity": "sha1-GfIGOjPpX7KDG4ZEbAuAwYivRQo=",
+          "requires": {
+            "base64-arraybuffer": "^0.1.5"
+          }
+        },
+        "html2canvas": {
+          "version": "1.0.0-alpha.12",
+          "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz",
+          "integrity": "sha1-OxmS48mz9WBjw1/WIElPN+uohRM=",
+          "requires": {
+            "css-line-break": "1.0.1"
+          }
+        }
+      }
+    },
+    "jsprim": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+      "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+      "requires": {
+        "assert-plus": "1.0.0",
+        "extsprintf": "1.3.0",
+        "json-schema": "0.2.3",
+        "verror": "1.10.0"
+      }
+    },
+    "jszip": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz",
+      "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==",
+      "dev": true,
+      "requires": {
+        "lie": "~3.3.0",
+        "pako": "~1.0.2",
+        "readable-stream": "~2.3.6",
+        "set-immediate-shim": "~1.0.1"
+      }
+    },
+    "karma": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/karma/-/karma-3.0.0.tgz",
+      "integrity": "sha512-ZTjyuDXVXhXsvJ1E4CnZzbCjSxD6sEdzEsFYogLuZM0yqvg/mgz+O+R1jb0J7uAQeuzdY8kJgx6hSNXLwFuHIQ==",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.3.0",
+        "body-parser": "^1.16.1",
+        "chokidar": "^2.0.3",
+        "colors": "^1.1.0",
+        "combine-lists": "^1.0.0",
+        "connect": "^3.6.0",
+        "core-js": "^2.2.0",
+        "di": "^0.0.1",
+        "dom-serialize": "^2.2.0",
+        "expand-braces": "^0.1.1",
+        "glob": "^7.1.1",
+        "graceful-fs": "^4.1.2",
+        "http-proxy": "^1.13.0",
+        "isbinaryfile": "^3.0.0",
+        "lodash": "^4.17.4",
+        "log4js": "^3.0.0",
+        "mime": "^2.3.1",
+        "minimatch": "^3.0.2",
+        "optimist": "^0.6.1",
+        "qjobs": "^1.1.4",
+        "range-parser": "^1.2.0",
+        "rimraf": "^2.6.0",
+        "safe-buffer": "^5.0.1",
+        "socket.io": "2.1.1",
+        "source-map": "^0.6.1",
+        "tmp": "0.0.33",
+        "useragent": "2.2.1"
+      },
+      "dependencies": {
+        "mime": {
+          "version": "2.4.4",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
+          "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "karma-chrome-launcher": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz",
+      "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==",
+      "dev": true,
+      "requires": {
+        "fs-access": "^1.0.0",
+        "which": "^1.2.1"
+      }
+    },
+    "karma-coverage-istanbul-reporter": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.6.tgz",
+      "integrity": "sha512-WFh77RI8bMIKdOvI/1/IBmgnM+Q7NOLhnwG91QJrM8lW+CIXCjTzhhUsT/svLvAkLmR10uWY4RyYbHMLkTglvg==",
+      "dev": true,
+      "requires": {
+        "istanbul-api": "^2.1.6",
+        "minimatch": "^3.0.4"
+      }
+    },
+    "karma-jasmine": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz",
+      "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=",
+      "dev": true
+    },
+    "karma-jasmine-html-reporter": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz",
+      "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=",
+      "dev": true,
+      "requires": {
+        "karma-jasmine": "^1.0.2"
+      }
+    },
+    "karma-source-map-support": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz",
+      "integrity": "sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==",
+      "dev": true,
+      "requires": {
+        "source-map-support": "^0.5.5"
+      }
+    },
+    "killable": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
+      "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==",
+      "dev": true
+    },
+    "kind-of": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+      "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+      "dev": true
+    },
+    "lcid": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+      "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+      "dev": true,
+      "requires": {
+        "invert-kv": "^1.0.0"
+      }
+    },
+    "less": {
+      "version": "3.8.1",
+      "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz",
+      "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==",
+      "dev": true,
+      "requires": {
+        "clone": "^2.1.2",
+        "errno": "^0.1.1",
+        "graceful-fs": "^4.1.2",
+        "image-size": "~0.5.0",
+        "mime": "^1.4.1",
+        "mkdirp": "^0.5.0",
+        "promise": "^7.1.1",
+        "request": "^2.83.0",
+        "source-map": "~0.6.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "less-loader": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz",
+      "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==",
+      "dev": true,
+      "requires": {
+        "clone": "^2.1.1",
+        "loader-utils": "^1.1.0",
+        "pify": "^3.0.0"
+      }
+    },
+    "levn": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+      "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+      "requires": {
+        "prelude-ls": "~1.1.2",
+        "type-check": "~0.3.2"
+      }
+    },
+    "license-webpack-plugin": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.0.2.tgz",
+      "integrity": "sha512-GsomZw5VoT20ST8qH2tOjBgbyhn6Pgs9M94g0mbvfBIV1VXufm1iKY+4dbgfTObj1Mp6nSRE3Zf74deOZr0KwA==",
+      "dev": true,
+      "requires": {
+        "webpack-sources": "^1.2.0"
+      }
+    },
+    "lie": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
+      "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
+      "dev": true,
+      "requires": {
+        "immediate": "~3.0.5"
+      }
+    },
+    "load-json-file": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+      "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "parse-json": "^2.2.0",
+        "pify": "^2.0.0",
+        "pinkie-promise": "^2.0.0",
+        "strip-bom": "^2.0.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "loader-runner": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+      "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
+      "dev": true
+    },
+    "loader-utils": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+      "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+      "dev": true,
+      "requires": {
+        "big.js": "^3.1.3",
+        "emojis-list": "^2.0.0",
+        "json5": "^0.5.0"
+      }
+    },
+    "locate-path": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+      "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+      "dev": true,
+      "requires": {
+        "p-locate": "^2.0.0",
+        "path-exists": "^3.0.0"
+      }
+    },
+    "lodash": {
+      "version": "4.17.15",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+      "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+      "dev": true
+    },
+    "lodash.assign": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
+      "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
+      "dev": true,
+      "optional": true
+    },
+    "lodash.clonedeep": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+      "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
+      "dev": true
+    },
+    "lodash.debounce": {
+      "version": "4.0.8",
+      "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+      "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
+      "dev": true
+    },
+    "lodash.mergewith": {
+      "version": "4.6.2",
+      "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz",
+      "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==",
+      "dev": true,
+      "optional": true
+    },
+    "lodash.tail": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
+      "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=",
+      "dev": true
+    },
+    "log4js": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npmjs.org/log4js/-/log4js-3.0.6.tgz",
+      "integrity": "sha512-ezXZk6oPJCWL483zj64pNkMuY/NcRX5MPiB0zE6tjZM137aeusrOnW1ecxgF9cmwMWkBMhjteQxBPoZBh9FDxQ==",
+      "dev": true,
+      "requires": {
+        "circular-json": "^0.5.5",
+        "date-format": "^1.2.0",
+        "debug": "^3.1.0",
+        "rfdc": "^1.1.2",
+        "streamroller": "0.7.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+          "dev": true
+        }
+      }
+    },
+    "loglevel": {
+      "version": "1.6.4",
+      "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.4.tgz",
+      "integrity": "sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g==",
+      "dev": true
+    },
+    "loose-envify": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+      "dev": true,
+      "requires": {
+        "js-tokens": "^3.0.0 || ^4.0.0"
+      }
+    },
+    "loud-rejection": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+      "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+      "dev": true,
+      "requires": {
+        "currently-unhandled": "^0.4.1",
+        "signal-exit": "^3.0.0"
+      }
+    },
+    "lru-cache": {
+      "version": "4.1.5",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+      "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+      "dev": true,
+      "requires": {
+        "pseudomap": "^1.0.2",
+        "yallist": "^2.1.2"
+      }
+    },
+    "magic-string": {
+      "version": "0.25.4",
+      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.4.tgz",
+      "integrity": "sha512-oycWO9nEVAP2RVPbIoDoA4Y7LFIJ3xRYov93gAyJhZkET1tNuB0u7uWkZS2LpBWTJUWnmau/To8ECWRC+jKNfw==",
+      "dev": true,
+      "requires": {
+        "sourcemap-codec": "^1.4.4"
+      }
+    },
+    "make-dir": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+      "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+      "dev": true,
+      "requires": {
+        "pify": "^3.0.0"
+      }
+    },
+    "make-error": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz",
+      "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==",
+      "dev": true
+    },
+    "mamacro": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz",
+      "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==",
+      "dev": true
+    },
+    "map-age-cleaner": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
+      "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
+      "dev": true,
+      "requires": {
+        "p-defer": "^1.0.0"
+      }
+    },
+    "map-cache": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+      "dev": true
+    },
+    "map-obj": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+      "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+      "dev": true,
+      "optional": true
+    },
+    "map-visit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+      "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+      "dev": true,
+      "requires": {
+        "object-visit": "^1.0.0"
+      }
+    },
+    "math-random": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
+      "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==",
+      "dev": true
+    },
+    "md5.js": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+      "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+      "dev": true,
+      "requires": {
+        "hash-base": "^3.0.0",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "media-typer": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+      "dev": true
+    },
+    "mem": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
+      "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
+      "dev": true,
+      "requires": {
+        "map-age-cleaner": "^0.1.1",
+        "mimic-fn": "^2.0.0",
+        "p-is-promise": "^2.0.0"
+      }
+    },
+    "memory-fs": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+      "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+      "dev": true,
+      "requires": {
+        "errno": "^0.1.3",
+        "readable-stream": "^2.0.1"
+      }
+    },
+    "meow": {
+      "version": "3.7.0",
+      "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+      "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "camelcase-keys": "^2.0.0",
+        "decamelize": "^1.1.2",
+        "loud-rejection": "^1.0.0",
+        "map-obj": "^1.0.1",
+        "minimist": "^1.1.3",
+        "normalize-package-data": "^2.3.4",
+        "object-assign": "^4.0.1",
+        "read-pkg-up": "^1.0.1",
+        "redent": "^1.0.0",
+        "trim-newlines": "^1.0.0"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "merge-descriptors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+      "dev": true
+    },
+    "methods": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+      "dev": true
+    },
+    "mgrs": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/mgrs/-/mgrs-1.0.0.tgz",
+      "integrity": "sha1-+5FYjnjJACVnI5XLQLJffNatGCk="
+    },
+    "micromatch": {
+      "version": "3.1.10",
+      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+      "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+      "dev": true,
+      "requires": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "braces": "^2.3.1",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "extglob": "^2.0.4",
+        "fragment-cache": "^0.2.1",
+        "kind-of": "^6.0.2",
+        "nanomatch": "^1.2.9",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.2"
+      }
+    },
+    "miller-rabin": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+      "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.0.0",
+        "brorand": "^1.0.1"
+      }
+    },
+    "mime": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+      "dev": true
+    },
+    "mime-db": {
+      "version": "1.40.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
+      "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
+    },
+    "mime-types": {
+      "version": "2.1.24",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
+      "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
+      "requires": {
+        "mime-db": "1.40.0"
+      }
+    },
+    "mimic-fn": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+      "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+      "dev": true
+    },
+    "mini-css-extract-plugin": {
+      "version": "0.4.3",
+      "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.3.tgz",
+      "integrity": "sha512-Mxs0nxzF1kxPv4TRi2NimewgXlJqh0rGE30vviCU2WHrpbta6wklnUV9dr9FUtoAHmB3p3LeXEC+ZjgHvB0Dzg==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "schema-utils": "^1.0.0",
+        "webpack-sources": "^1.1.0"
+      }
+    },
+    "minimalistic-assert": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+      "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+      "dev": true
+    },
+    "minimalistic-crypto-utils": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+      "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+      "dev": true
+    },
+    "minimatch": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+      "dev": true,
+      "requires": {
+        "brace-expansion": "^1.1.7"
+      }
+    },
+    "minimist": {
+      "version": "0.0.8",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+      "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+      "dev": true
+    },
+    "mississippi": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
+      "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
+      "dev": true,
+      "requires": {
+        "concat-stream": "^1.5.0",
+        "duplexify": "^3.4.2",
+        "end-of-stream": "^1.1.0",
+        "flush-write-stream": "^1.0.0",
+        "from2": "^2.1.0",
+        "parallel-transform": "^1.1.0",
+        "pump": "^2.0.1",
+        "pumpify": "^1.3.3",
+        "stream-each": "^1.1.0",
+        "through2": "^2.0.0"
+      }
+    },
+    "mixin-deep": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+      "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+      "dev": true,
+      "requires": {
+        "for-in": "^1.0.2",
+        "is-extendable": "^1.0.1"
+      },
+      "dependencies": {
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+          "dev": true,
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "mixin-object": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz",
+      "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=",
+      "dev": true,
+      "requires": {
+        "for-in": "^0.1.3",
+        "is-extendable": "^0.1.1"
+      },
+      "dependencies": {
+        "for-in": {
+          "version": "0.1.8",
+          "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz",
+          "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=",
+          "dev": true
+        }
+      }
+    },
+    "mkdirp": {
+      "version": "0.5.1",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+      "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+      "dev": true,
+      "requires": {
+        "minimist": "0.0.8"
+      }
+    },
+    "move-concurrently": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+      "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.1.1",
+        "copy-concurrently": "^1.0.0",
+        "fs-write-stream-atomic": "^1.0.8",
+        "mkdirp": "^0.5.1",
+        "rimraf": "^2.5.4",
+        "run-queue": "^1.0.3"
+      }
+    },
+    "ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+      "dev": true
+    },
+    "multicast-dns": {
+      "version": "6.2.3",
+      "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
+      "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
+      "dev": true,
+      "requires": {
+        "dns-packet": "^1.3.1",
+        "thunky": "^1.0.2"
+      }
+    },
+    "multicast-dns-service-types": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
+      "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
+      "dev": true
+    },
+    "mute-stream": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+      "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+      "dev": true
+    },
+    "nan": {
+      "version": "2.14.0",
+      "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+      "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
+      "dev": true,
+      "optional": true
+    },
+    "nanomatch": {
+      "version": "1.2.13",
+      "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+      "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+      "dev": true,
+      "requires": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "fragment-cache": "^0.2.1",
+        "is-windows": "^1.0.2",
+        "kind-of": "^6.0.2",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      }
+    },
+    "negotiator": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+      "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+      "dev": true
+    },
+    "neo-async": {
+      "version": "2.6.1",
+      "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
+      "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
+      "dev": true
+    },
+    "ngx-echarts": {
+      "version": "4.2.2",
+      "resolved": "https://registry.npmjs.org/ngx-echarts/-/ngx-echarts-4.2.2.tgz",
+      "integrity": "sha512-iLxOFnfKhUYP8Qw22AUY2ugSEd1Uvt6AeYhiaSqpg/G6NDmM/NwpdLt+fGAjax2aY7e94ORuwhXnl2gxtNzt7Q==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "nice-try": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+      "dev": true
+    },
+    "node-forge": {
+      "version": "0.9.0",
+      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz",
+      "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==",
+      "dev": true
+    },
+    "node-gyp": {
+      "version": "3.8.0",
+      "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
+      "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "fstream": "^1.0.0",
+        "glob": "^7.0.3",
+        "graceful-fs": "^4.1.2",
+        "mkdirp": "^0.5.0",
+        "nopt": "2 || 3",
+        "npmlog": "0 || 1 || 2 || 3 || 4",
+        "osenv": "0",
+        "request": "^2.87.0",
+        "rimraf": "2",
+        "semver": "~5.3.0",
+        "tar": "^2.0.0",
+        "which": "1"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "5.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+          "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "node-libs-browser": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
+      "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
+      "dev": true,
+      "requires": {
+        "assert": "^1.1.1",
+        "browserify-zlib": "^0.2.0",
+        "buffer": "^4.3.0",
+        "console-browserify": "^1.1.0",
+        "constants-browserify": "^1.0.0",
+        "crypto-browserify": "^3.11.0",
+        "domain-browser": "^1.1.1",
+        "events": "^3.0.0",
+        "https-browserify": "^1.0.0",
+        "os-browserify": "^0.3.0",
+        "path-browserify": "0.0.1",
+        "process": "^0.11.10",
+        "punycode": "^1.2.4",
+        "querystring-es3": "^0.2.0",
+        "readable-stream": "^2.3.3",
+        "stream-browserify": "^2.0.1",
+        "stream-http": "^2.7.2",
+        "string_decoder": "^1.0.0",
+        "timers-browserify": "^2.0.4",
+        "tty-browserify": "0.0.0",
+        "url": "^0.11.0",
+        "util": "^0.11.0",
+        "vm-browserify": "^1.0.1"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+          "dev": true
+        }
+      }
+    },
+    "node-releases": {
+      "version": "1.1.37",
+      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.37.tgz",
+      "integrity": "sha512-0EOsAEdn6S2vQdDGBWBpmClm5BCkXVkVOURdnhfg7//rxI2XbleRdKig87WuBrk+0PHZ4OhO58fRm9mzWW4jNw==",
+      "dev": true,
+      "requires": {
+        "semver": "^6.3.0"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "6.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "dev": true
+        }
+      }
+    },
+    "node-sass": {
+      "version": "4.9.3",
+      "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz",
+      "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "async-foreach": "^0.1.3",
+        "chalk": "^1.1.1",
+        "cross-spawn": "^3.0.0",
+        "gaze": "^1.0.0",
+        "get-stdin": "^4.0.1",
+        "glob": "^7.0.3",
+        "in-publish": "^2.0.0",
+        "lodash.assign": "^4.2.0",
+        "lodash.clonedeep": "^4.3.2",
+        "lodash.mergewith": "^4.6.0",
+        "meow": "^3.7.0",
+        "mkdirp": "^0.5.1",
+        "nan": "^2.10.0",
+        "node-gyp": "^3.8.0",
+        "npmlog": "^4.0.0",
+        "request": "2.87.0",
+        "sass-graph": "^2.2.4",
+        "stdout-stream": "^1.4.0",
+        "true-case-path": "^1.0.2"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "5.5.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+          "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "co": "^4.6.0",
+            "fast-deep-equal": "^1.0.0",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.3.0"
+          }
+        },
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true,
+          "optional": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "fast-deep-equal": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+          "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+          "dev": true,
+          "optional": true
+        },
+        "har-validator": {
+          "version": "5.0.3",
+          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
+          "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ajv": "^5.1.0",
+            "har-schema": "^2.0.0"
+          }
+        },
+        "json-schema-traverse": {
+          "version": "0.3.1",
+          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+          "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+          "dev": true,
+          "optional": true
+        },
+        "oauth-sign": {
+          "version": "0.8.2",
+          "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+          "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+          "dev": true,
+          "optional": true
+        },
+        "punycode": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+          "dev": true,
+          "optional": true
+        },
+        "request": {
+          "version": "2.87.0",
+          "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
+          "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "aws-sign2": "~0.7.0",
+            "aws4": "^1.6.0",
+            "caseless": "~0.12.0",
+            "combined-stream": "~1.0.5",
+            "extend": "~3.0.1",
+            "forever-agent": "~0.6.1",
+            "form-data": "~2.3.1",
+            "har-validator": "~5.0.3",
+            "http-signature": "~1.2.0",
+            "is-typedarray": "~1.0.0",
+            "isstream": "~0.1.2",
+            "json-stringify-safe": "~5.0.1",
+            "mime-types": "~2.1.17",
+            "oauth-sign": "~0.8.2",
+            "performance-now": "^2.1.0",
+            "qs": "~6.5.1",
+            "safe-buffer": "^5.1.1",
+            "tough-cookie": "~2.3.3",
+            "tunnel-agent": "^0.6.0",
+            "uuid": "^3.1.0"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true,
+          "optional": true
+        },
+        "tough-cookie": {
+          "version": "2.3.4",
+          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
+          "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "punycode": "^1.4.1"
+          }
+        }
+      }
+    },
+    "nopt": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+      "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+      "dev": true,
+      "requires": {
+        "abbrev": "1"
+      }
+    },
+    "normalize-package-data": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+      "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+      "dev": true,
+      "requires": {
+        "hosted-git-info": "^2.1.4",
+        "resolve": "^1.10.0",
+        "semver": "2 || 3 || 4 || 5",
+        "validate-npm-package-license": "^3.0.1"
+      },
+      "dependencies": {
+        "resolve": {
+          "version": "1.12.0",
+          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
+          "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
+          "dev": true,
+          "requires": {
+            "path-parse": "^1.0.6"
+          }
+        }
+      }
+    },
+    "normalize-path": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+      "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+      "dev": true,
+      "requires": {
+        "remove-trailing-separator": "^1.0.1"
+      }
+    },
+    "normalize-range": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+      "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+      "dev": true
+    },
+    "npm-package-arg": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz",
+      "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==",
+      "dev": true,
+      "requires": {
+        "hosted-git-info": "^2.7.1",
+        "osenv": "^0.1.5",
+        "semver": "^5.6.0",
+        "validate-npm-package-name": "^3.0.0"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "5.7.1",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+          "dev": true
+        }
+      }
+    },
+    "npm-registry-client": {
+      "version": "8.6.0",
+      "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.6.0.tgz",
+      "integrity": "sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==",
+      "dev": true,
+      "requires": {
+        "concat-stream": "^1.5.2",
+        "graceful-fs": "^4.1.6",
+        "normalize-package-data": "~1.0.1 || ^2.0.0",
+        "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0",
+        "npmlog": "2 || ^3.1.0 || ^4.0.0",
+        "once": "^1.3.3",
+        "request": "^2.74.0",
+        "retry": "^0.10.0",
+        "safe-buffer": "^5.1.1",
+        "semver": "2 >=2.2.1 || 3.x || 4 || 5",
+        "slide": "^1.1.3",
+        "ssri": "^5.2.4"
+      }
+    },
+    "npm-run-path": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+      "dev": true,
+      "requires": {
+        "path-key": "^2.0.0"
+      }
+    },
+    "npmlog": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+      "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "are-we-there-yet": "~1.1.2",
+        "console-control-strings": "~1.1.0",
+        "gauge": "~2.7.3",
+        "set-blocking": "~2.0.0"
+      }
+    },
+    "null-check": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz",
+      "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=",
+      "dev": true
+    },
+    "num2fraction": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+      "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+      "dev": true
+    },
+    "number-is-nan": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+      "dev": true
+    },
+    "nwmatcher": {
+      "version": "1.4.4",
+      "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz",
+      "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ=="
+    },
+    "oauth-sign": {
+      "version": "0.9.0",
+      "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+      "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
+    },
+    "object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+      "dev": true
+    },
+    "object-component": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
+      "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",
+      "dev": true
+    },
+    "object-copy": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+      "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+      "dev": true,
+      "requires": {
+        "copy-descriptor": "^0.1.0",
+        "define-property": "^0.2.5",
+        "kind-of": "^3.0.3"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "object-inspect": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
+      "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
+      "dev": true
+    },
+    "object-is": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
+      "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=",
+      "dev": true
+    },
+    "object-keys": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+      "dev": true
+    },
+    "object-visit": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+      "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+      "dev": true,
+      "requires": {
+        "isobject": "^3.0.0"
+      }
+    },
+    "object.getownpropertydescriptors": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
+      "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.2",
+        "es-abstract": "^1.5.1"
+      }
+    },
+    "object.omit": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+      "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+      "dev": true,
+      "requires": {
+        "for-own": "^0.1.4",
+        "is-extendable": "^0.1.1"
+      },
+      "dependencies": {
+        "for-own": {
+          "version": "0.1.5",
+          "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+          "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+          "dev": true,
+          "requires": {
+            "for-in": "^1.0.1"
+          }
+        }
+      }
+    },
+    "object.pick": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+      "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+      "dev": true,
+      "requires": {
+        "isobject": "^3.0.1"
+      }
+    },
+    "obuf": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
+      "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
+      "dev": true
+    },
+    "omggif": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.7.tgz",
+      "integrity": "sha1-WdLuywJj3oRjWz/riHwMmXPx5J0="
+    },
+    "on-finished": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+      "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+      "dev": true,
+      "requires": {
+        "ee-first": "1.1.1"
+      }
+    },
+    "on-headers": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+      "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+      "dev": true
+    },
+    "once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+      "dev": true,
+      "requires": {
+        "wrappy": "1"
+      }
+    },
+    "onetime": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+      "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+      "dev": true,
+      "requires": {
+        "mimic-fn": "^1.0.0"
+      },
+      "dependencies": {
+        "mimic-fn": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+          "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+          "dev": true
+        }
+      }
+    },
+    "opn": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz",
+      "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==",
+      "dev": true,
+      "requires": {
+        "is-wsl": "^1.1.0"
+      }
+    },
+    "optimist": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+      "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+      "dev": true,
+      "requires": {
+        "minimist": "~0.0.1",
+        "wordwrap": "~0.0.2"
+      },
+      "dependencies": {
+        "wordwrap": {
+          "version": "0.0.3",
+          "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+          "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
+          "dev": true
+        }
+      }
+    },
+    "optionator": {
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+      "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+      "requires": {
+        "deep-is": "~0.1.3",
+        "fast-levenshtein": "~2.0.4",
+        "levn": "~0.3.0",
+        "prelude-ls": "~1.1.2",
+        "type-check": "~0.3.2",
+        "wordwrap": "~1.0.0"
+      }
+    },
+    "original": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
+      "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==",
+      "dev": true,
+      "requires": {
+        "url-parse": "^1.4.3"
+      }
+    },
+    "os-browserify": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+      "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
+      "dev": true
+    },
+    "os-homedir": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+      "dev": true
+    },
+    "os-locale": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+      "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "lcid": "^1.0.0"
+      }
+    },
+    "os-tmpdir": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+      "dev": true
+    },
+    "osenv": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+      "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+      "dev": true,
+      "requires": {
+        "os-homedir": "^1.0.0",
+        "os-tmpdir": "^1.0.0"
+      }
+    },
+    "p-defer": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
+      "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
+      "dev": true
+    },
+    "p-finally": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+      "dev": true
+    },
+    "p-is-promise": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
+      "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
+      "dev": true
+    },
+    "p-limit": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+      "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+      "dev": true,
+      "requires": {
+        "p-try": "^1.0.0"
+      }
+    },
+    "p-locate": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+      "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+      "dev": true,
+      "requires": {
+        "p-limit": "^1.1.0"
+      }
+    },
+    "p-map": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
+      "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
+      "dev": true
+    },
+    "p-try": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+      "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+      "dev": true
+    },
+    "pako": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
+      "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==",
+      "dev": true
+    },
+    "parallel-transform": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
+      "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
+      "dev": true,
+      "requires": {
+        "cyclist": "^1.0.1",
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.1.5"
+      }
+    },
+    "parse-asn1": {
+      "version": "5.1.5",
+      "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz",
+      "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==",
+      "dev": true,
+      "requires": {
+        "asn1.js": "^4.0.0",
+        "browserify-aes": "^1.0.0",
+        "create-hash": "^1.1.0",
+        "evp_bytestokey": "^1.0.0",
+        "pbkdf2": "^3.0.3",
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "parse-glob": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+      "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+      "dev": true,
+      "requires": {
+        "glob-base": "^0.3.0",
+        "is-dotfile": "^1.0.0",
+        "is-extglob": "^1.0.0",
+        "is-glob": "^2.0.0"
+      },
+      "dependencies": {
+        "is-extglob": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+          "dev": true
+        },
+        "is-glob": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+          "dev": true,
+          "requires": {
+            "is-extglob": "^1.0.0"
+          }
+        }
+      }
+    },
+    "parse-json": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+      "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+      "dev": true,
+      "requires": {
+        "error-ex": "^1.2.0"
+      }
+    },
+    "parse5": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
+      "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==",
+      "dev": true
+    },
+    "parseqs": {
+      "version": "0.0.5",
+      "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
+      "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
+      "dev": true,
+      "requires": {
+        "better-assert": "~1.0.0"
+      }
+    },
+    "parseuri": {
+      "version": "0.0.5",
+      "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
+      "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
+      "dev": true,
+      "requires": {
+        "better-assert": "~1.0.0"
+      }
+    },
+    "parseurl": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+      "dev": true
+    },
+    "pascalcase": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+      "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+      "dev": true
+    },
+    "path-browserify": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
+      "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
+      "dev": true
+    },
+    "path-dirname": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+      "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+      "dev": true
+    },
+    "path-exists": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+      "dev": true
+    },
+    "path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+      "dev": true
+    },
+    "path-is-inside": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+      "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+      "dev": true
+    },
+    "path-key": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+      "dev": true
+    },
+    "path-parse": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+      "dev": true
+    },
+    "path-to-regexp": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+      "dev": true
+    },
+    "path-type": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+      "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+      "dev": true,
+      "requires": {
+        "pify": "^3.0.0"
+      }
+    },
+    "pbkdf2": {
+      "version": "3.0.17",
+      "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
+      "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
+      "dev": true,
+      "requires": {
+        "create-hash": "^1.1.2",
+        "create-hmac": "^1.1.4",
+        "ripemd160": "^2.0.1",
+        "safe-buffer": "^5.0.1",
+        "sha.js": "^2.4.8"
+      }
+    },
+    "performance-now": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+      "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+    },
+    "pify": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+      "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+      "dev": true
+    },
+    "pinkie": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+      "dev": true
+    },
+    "pinkie-promise": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+      "dev": true,
+      "requires": {
+        "pinkie": "^2.0.0"
+      }
+    },
+    "pkg-dir": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+      "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+      "dev": true,
+      "requires": {
+        "find-up": "^2.1.0"
+      }
+    },
+    "portfinder": {
+      "version": "1.0.17",
+      "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.17.tgz",
+      "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==",
+      "dev": true,
+      "requires": {
+        "async": "^1.5.2",
+        "debug": "^2.2.0",
+        "mkdirp": "0.5.x"
+      }
+    },
+    "posix-character-classes": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+      "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+      "dev": true
+    },
+    "postcss": {
+      "version": "7.0.5",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.5.tgz",
+      "integrity": "sha512-HBNpviAUFCKvEh7NZhw1e8MBPivRszIiUnhrJ+sBFVSYSqubrzwX3KG51mYgcRHX8j/cAgZJedONZcm5jTBdgQ==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.4.1",
+        "source-map": "^0.6.1",
+        "supports-color": "^5.5.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-import": {
+      "version": "12.0.0",
+      "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.0.tgz",
+      "integrity": "sha512-3KqKRZcaZAvxbY8DVLdd81tG5uKzbUQuiWIvy0o0fzEC42bKacqPYFWbfCQyw6L4LWUaqPz/idvIdbhpgQ32eQ==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.1",
+        "postcss-value-parser": "^3.2.3",
+        "read-cache": "^1.0.0",
+        "resolve": "^1.1.7"
+      }
+    },
+    "postcss-load-config": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz",
+      "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==",
+      "dev": true,
+      "requires": {
+        "cosmiconfig": "^5.0.0",
+        "import-cwd": "^2.0.0"
+      }
+    },
+    "postcss-loader": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz",
+      "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "postcss": "^7.0.0",
+        "postcss-load-config": "^2.0.0",
+        "schema-utils": "^1.0.0"
+      }
+    },
+    "postcss-value-parser": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+      "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+      "dev": true
+    },
+    "prelude-ls": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+      "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+    },
+    "preserve": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+      "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
+      "dev": true
+    },
+    "process": {
+      "version": "0.11.10",
+      "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+      "dev": true
+    },
+    "process-nextick-args": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+      "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+      "dev": true
+    },
+    "proj4": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.5.0.tgz",
+      "integrity": "sha512-XZTRT7OPdLzgvtTqL8DG2cEj8lYdovztOwiwpwRSYayOty5Ipf3H68dh/fiL+HKDEyetmQSMhkkMGiJoyziz3w==",
+      "requires": {
+        "mgrs": "1.0.0",
+        "wkt-parser": "^1.2.0"
+      }
+    },
+    "promise": {
+      "version": "7.3.1",
+      "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+      "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "asap": "~2.0.3"
+      }
+    },
+    "promise-inflight": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+      "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+      "dev": true
+    },
+    "promise-polyfill": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.0.tgz",
+      "integrity": "sha512-OzSf6gcCUQ01byV4BgwyUCswlaQQ6gzXc23aLQWhicvfX9kfsUiUhgt3CCQej8jDnl8/PhGF31JdHX2/MzF3WA=="
+    },
+    "protractor": {
+      "version": "5.4.2",
+      "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.2.tgz",
+      "integrity": "sha512-zlIj64Cr6IOWP7RwxVeD8O4UskLYPoyIcg0HboWJL9T79F1F0VWtKkGTr/9GN6BKL+/Q/GmM7C9kFVCfDbP5sA==",
+      "dev": true,
+      "requires": {
+        "@types/q": "^0.0.32",
+        "@types/selenium-webdriver": "^3.0.0",
+        "blocking-proxy": "^1.0.0",
+        "browserstack": "^1.5.1",
+        "chalk": "^1.1.3",
+        "glob": "^7.0.3",
+        "jasmine": "2.8.0",
+        "jasminewd2": "^2.1.0",
+        "optimist": "~0.6.0",
+        "q": "1.4.1",
+        "saucelabs": "^1.5.0",
+        "selenium-webdriver": "3.6.0",
+        "source-map-support": "~0.4.0",
+        "webdriver-js-extender": "2.1.0",
+        "webdriver-manager": "^12.0.6"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "del": {
+          "version": "2.2.2",
+          "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+          "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
+          "dev": true,
+          "requires": {
+            "globby": "^5.0.0",
+            "is-path-cwd": "^1.0.0",
+            "is-path-in-cwd": "^1.0.0",
+            "object-assign": "^4.0.1",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0",
+            "rimraf": "^2.2.8"
+          }
+        },
+        "globby": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+          "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
+          "dev": true,
+          "requires": {
+            "array-union": "^1.0.1",
+            "arrify": "^1.0.0",
+            "glob": "^7.0.3",
+            "object-assign": "^4.0.1",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "source-map-support": {
+          "version": "0.4.18",
+          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+          "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
+          "dev": true,
+          "requires": {
+            "source-map": "^0.5.6"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true
+        },
+        "webdriver-manager": {
+          "version": "12.1.7",
+          "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz",
+          "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==",
+          "dev": true,
+          "requires": {
+            "adm-zip": "^0.4.9",
+            "chalk": "^1.1.1",
+            "del": "^2.2.0",
+            "glob": "^7.0.3",
+            "ini": "^1.3.4",
+            "minimist": "^1.2.0",
+            "q": "^1.4.1",
+            "request": "^2.87.0",
+            "rimraf": "^2.5.2",
+            "semver": "^5.3.0",
+            "xml2js": "^0.4.17"
+          }
+        }
+      }
+    },
+    "proxy-addr": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
+      "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
+      "dev": true,
+      "requires": {
+        "forwarded": "~0.1.2",
+        "ipaddr.js": "1.9.0"
+      }
+    },
+    "prr": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+      "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+      "dev": true
+    },
+    "pseudomap": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+      "dev": true
+    },
+    "psl": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz",
+      "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw=="
+    },
+    "public-encrypt": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+      "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "browserify-rsa": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "parse-asn1": "^5.0.0",
+        "randombytes": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "pump": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+      "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "^1.1.0",
+        "once": "^1.3.1"
+      }
+    },
+    "pumpify": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+      "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+      "dev": true,
+      "requires": {
+        "duplexify": "^3.6.0",
+        "inherits": "^2.0.3",
+        "pump": "^2.0.0"
+      }
+    },
+    "punycode": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+      "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+    },
+    "q": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
+      "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=",
+      "dev": true
+    },
+    "qjobs": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz",
+      "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==",
+      "dev": true
+    },
+    "qs": {
+      "version": "6.5.2",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+      "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+    },
+    "querystring": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+      "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+      "dev": true
+    },
+    "querystring-es3": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+      "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+      "dev": true
+    },
+    "querystringify": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
+      "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
+      "dev": true
+    },
+    "randomatic": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
+      "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
+      "dev": true,
+      "requires": {
+        "is-number": "^4.0.0",
+        "kind-of": "^6.0.0",
+        "math-random": "^1.0.1"
+      },
+      "dependencies": {
+        "is-number": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
+          "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
+          "dev": true
+        }
+      }
+    },
+    "randombytes": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "randomfill": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+      "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+      "dev": true,
+      "requires": {
+        "randombytes": "^2.0.5",
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "range-parser": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+      "dev": true
+    },
+    "raw-body": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+      "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+      "dev": true,
+      "requires": {
+        "bytes": "3.1.0",
+        "http-errors": "1.7.2",
+        "iconv-lite": "0.4.24",
+        "unpipe": "1.0.0"
+      },
+      "dependencies": {
+        "bytes": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+          "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+          "dev": true
+        }
+      }
+    },
+    "raw-loader": {
+      "version": "0.5.1",
+      "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz",
+      "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=",
+      "dev": true
+    },
+    "read-cache": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+      "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
+      "dev": true,
+      "requires": {
+        "pify": "^2.3.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        }
+      }
+    },
+    "read-pkg": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+      "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "load-json-file": "^1.0.0",
+        "normalize-package-data": "^2.3.2",
+        "path-type": "^1.0.0"
+      },
+      "dependencies": {
+        "path-type": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+          "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "read-pkg-up": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+      "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "find-up": "^1.0.0",
+        "read-pkg": "^1.0.0"
+      },
+      "dependencies": {
+        "find-up": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "path-exists": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "path-exists": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "pinkie-promise": "^2.0.0"
+          }
+        }
+      }
+    },
+    "readable-stream": {
+      "version": "2.3.6",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+      "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+      "dev": true,
+      "requires": {
+        "core-util-is": "~1.0.0",
+        "inherits": "~2.0.3",
+        "isarray": "~1.0.0",
+        "process-nextick-args": "~2.0.0",
+        "safe-buffer": "~5.1.1",
+        "string_decoder": "~1.1.1",
+        "util-deprecate": "~1.0.1"
+      }
+    },
+    "readdirp": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+      "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.11",
+        "micromatch": "^3.1.10",
+        "readable-stream": "^2.0.2"
+      }
+    },
+    "rechoir": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+      "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+      "dev": true,
+      "requires": {
+        "resolve": "^1.1.6"
+      }
+    },
+    "redent": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+      "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "indent-string": "^2.1.0",
+        "strip-indent": "^1.0.1"
+      }
+    },
+    "reflect-metadata": {
+      "version": "0.1.13",
+      "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
+      "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==",
+      "dev": true
+    },
+    "regenerate": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
+      "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
+      "dev": true
+    },
+    "regenerator-runtime": {
+      "version": "0.11.1",
+      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+      "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+      "dev": true
+    },
+    "regex-cache": {
+      "version": "0.4.4",
+      "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
+      "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
+      "dev": true,
+      "requires": {
+        "is-equal-shallow": "^0.1.3"
+      }
+    },
+    "regex-not": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+      "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^3.0.2",
+        "safe-regex": "^1.1.0"
+      }
+    },
+    "regexp.prototype.flags": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz",
+      "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.2"
+      }
+    },
+    "regexpu-core": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
+      "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+      "dev": true,
+      "requires": {
+        "regenerate": "^1.2.1",
+        "regjsgen": "^0.2.0",
+        "regjsparser": "^0.1.4"
+      }
+    },
+    "regjsgen": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+      "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+      "dev": true
+    },
+    "regjsparser": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+      "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+      "dev": true,
+      "requires": {
+        "jsesc": "~0.5.0"
+      },
+      "dependencies": {
+        "jsesc": {
+          "version": "0.5.0",
+          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+          "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+          "dev": true
+        }
+      }
+    },
+    "remove-trailing-separator": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+      "dev": true
+    },
+    "repeat-element": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+      "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+      "dev": true
+    },
+    "repeat-string": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+      "dev": true
+    },
+    "repeating": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+      "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+      "dev": true,
+      "requires": {
+        "is-finite": "^1.0.0"
+      }
+    },
+    "request": {
+      "version": "2.88.0",
+      "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+      "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+      "requires": {
+        "aws-sign2": "~0.7.0",
+        "aws4": "^1.8.0",
+        "caseless": "~0.12.0",
+        "combined-stream": "~1.0.6",
+        "extend": "~3.0.2",
+        "forever-agent": "~0.6.1",
+        "form-data": "~2.3.2",
+        "har-validator": "~5.1.0",
+        "http-signature": "~1.2.0",
+        "is-typedarray": "~1.0.0",
+        "isstream": "~0.1.2",
+        "json-stringify-safe": "~5.0.1",
+        "mime-types": "~2.1.19",
+        "oauth-sign": "~0.9.0",
+        "performance-now": "^2.1.0",
+        "qs": "~6.5.2",
+        "safe-buffer": "^5.1.2",
+        "tough-cookie": "~2.4.3",
+        "tunnel-agent": "^0.6.0",
+        "uuid": "^3.3.2"
+      }
+    },
+    "require-directory": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+      "dev": true
+    },
+    "require-main-filename": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+      "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+      "dev": true
+    },
+    "requires-port": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+      "dev": true
+    },
+    "resolve": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+      "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+      "dev": true
+    },
+    "resolve-cwd": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+      "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+      "dev": true,
+      "requires": {
+        "resolve-from": "^3.0.0"
+      }
+    },
+    "resolve-from": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+      "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+      "dev": true
+    },
+    "resolve-url": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+      "dev": true
+    },
+    "restore-cursor": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+      "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+      "dev": true,
+      "requires": {
+        "onetime": "^2.0.0",
+        "signal-exit": "^3.0.2"
+      }
+    },
+    "ret": {
+      "version": "0.1.15",
+      "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+      "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+      "dev": true
+    },
+    "retry": {
+      "version": "0.10.1",
+      "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz",
+      "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=",
+      "dev": true
+    },
+    "rfdc": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz",
+      "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==",
+      "dev": true
+    },
+    "rgbcolor": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz",
+      "integrity": "sha1-1lBezbMEplldom+ktDMHMGd1lF0="
+    },
+    "rimraf": {
+      "version": "2.7.1",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+      "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+      "dev": true,
+      "requires": {
+        "glob": "^7.1.3"
+      }
+    },
+    "ripemd160": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+      "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+      "dev": true,
+      "requires": {
+        "hash-base": "^3.0.0",
+        "inherits": "^2.0.1"
+      }
+    },
+    "run-async": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+      "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+      "dev": true,
+      "requires": {
+        "is-promise": "^2.1.0"
+      }
+    },
+    "run-queue": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+      "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.1.1"
+      }
+    },
+    "rxjs": {
+      "version": "6.3.3",
+      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
+      "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "safe-buffer": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+    },
+    "safe-regex": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+      "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+      "dev": true,
+      "requires": {
+        "ret": "~0.1.10"
+      }
+    },
+    "safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+    },
+    "sass-graph": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
+      "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "glob": "^7.0.0",
+        "lodash": "^4.0.0",
+        "scss-tokenizer": "^0.2.3",
+        "yargs": "^7.0.0"
+      }
+    },
+    "sass-loader": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz",
+      "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==",
+      "dev": true,
+      "requires": {
+        "clone-deep": "^2.0.1",
+        "loader-utils": "^1.0.1",
+        "lodash.tail": "^4.1.1",
+        "neo-async": "^2.5.0",
+        "pify": "^3.0.0",
+        "semver": "^5.5.0"
+      }
+    },
+    "saucelabs": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz",
+      "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==",
+      "dev": true,
+      "requires": {
+        "https-proxy-agent": "^2.2.1"
+      }
+    },
+    "sax": {
+      "version": "0.5.8",
+      "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz",
+      "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=",
+      "dev": true
+    },
+    "schema-utils": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+      "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+      "dev": true,
+      "requires": {
+        "ajv": "^6.1.0",
+        "ajv-errors": "^1.0.0",
+        "ajv-keywords": "^3.1.0"
+      }
+    },
+    "scss-tokenizer": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
+      "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "js-base64": "^2.1.8",
+        "source-map": "^0.4.2"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.4.4",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "amdefine": ">=0.0.4"
+          }
+        }
+      }
+    },
+    "select-hose": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+      "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
+      "dev": true
+    },
+    "selenium-webdriver": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz",
+      "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==",
+      "dev": true,
+      "requires": {
+        "jszip": "^3.1.3",
+        "rimraf": "^2.5.4",
+        "tmp": "0.0.30",
+        "xml2js": "^0.4.17"
+      },
+      "dependencies": {
+        "tmp": {
+          "version": "0.0.30",
+          "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz",
+          "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=",
+          "dev": true,
+          "requires": {
+            "os-tmpdir": "~1.0.1"
+          }
+        }
+      }
+    },
+    "selfsigned": {
+      "version": "1.10.7",
+      "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz",
+      "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==",
+      "dev": true,
+      "requires": {
+        "node-forge": "0.9.0"
+      }
+    },
+    "semver": {
+      "version": "5.5.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
+      "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
+      "dev": true
+    },
+    "semver-dsl": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz",
+      "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=",
+      "dev": true,
+      "requires": {
+        "semver": "^5.3.0"
+      }
+    },
+    "semver-intersect": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz",
+      "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==",
+      "dev": true,
+      "requires": {
+        "semver": "^5.0.0"
+      }
+    },
+    "send": {
+      "version": "0.17.1",
+      "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+      "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+      "dev": true,
+      "requires": {
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "destroy": "~1.0.4",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "fresh": "0.5.2",
+        "http-errors": "~1.7.2",
+        "mime": "1.6.0",
+        "ms": "2.1.1",
+        "on-finished": "~2.3.0",
+        "range-parser": "~1.2.1",
+        "statuses": "~1.5.0"
+      },
+      "dependencies": {
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        }
+      }
+    },
+    "serialize-javascript": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz",
+      "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==",
+      "dev": true
+    },
+    "serve-index": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+      "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.4",
+        "batch": "0.6.1",
+        "debug": "2.6.9",
+        "escape-html": "~1.0.3",
+        "http-errors": "~1.6.2",
+        "mime-types": "~2.1.17",
+        "parseurl": "~1.3.2"
+      },
+      "dependencies": {
+        "http-errors": {
+          "version": "1.6.3",
+          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+          "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+          "dev": true,
+          "requires": {
+            "depd": "~1.1.2",
+            "inherits": "2.0.3",
+            "setprototypeof": "1.1.0",
+            "statuses": ">= 1.4.0 < 2"
+          }
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+          "dev": true
+        },
+        "setprototypeof": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+          "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+          "dev": true
+        }
+      }
+    },
+    "serve-static": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+      "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+      "dev": true,
+      "requires": {
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "parseurl": "~1.3.3",
+        "send": "0.17.1"
+      }
+    },
+    "set-blocking": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+      "dev": true
+    },
+    "set-immediate-shim": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
+      "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
+      "dev": true
+    },
+    "set-value": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+      "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^2.0.1",
+        "is-extendable": "^0.1.1",
+        "is-plain-object": "^2.0.3",
+        "split-string": "^3.0.1"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "setimmediate": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+      "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+      "dev": true
+    },
+    "setprototypeof": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+      "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
+      "dev": true
+    },
+    "sha.js": {
+      "version": "2.4.11",
+      "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+      "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "shallow-clone": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz",
+      "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==",
+      "dev": true,
+      "requires": {
+        "is-extendable": "^0.1.1",
+        "kind-of": "^5.0.0",
+        "mixin-object": "^2.0.1"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+          "dev": true
+        }
+      }
+    },
+    "shebang-command": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+      "dev": true,
+      "requires": {
+        "shebang-regex": "^1.0.0"
+      }
+    },
+    "shebang-regex": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+      "dev": true
+    },
+    "shelljs": {
+      "version": "0.8.3",
+      "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz",
+      "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==",
+      "dev": true,
+      "requires": {
+        "glob": "^7.0.0",
+        "interpret": "^1.0.0",
+        "rechoir": "^0.6.2"
+      }
+    },
+    "signal-exit": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+      "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+      "dev": true
+    },
+    "slash": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+      "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+      "dev": true
+    },
+    "slide": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
+      "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=",
+      "dev": true
+    },
+    "snapdragon": {
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+      "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+      "dev": true,
+      "requires": {
+        "base": "^0.11.1",
+        "debug": "^2.2.0",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "map-cache": "^0.2.2",
+        "source-map": "^0.5.6",
+        "source-map-resolve": "^0.5.0",
+        "use": "^3.1.0"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
+    "snapdragon-node": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+      "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+      "dev": true,
+      "requires": {
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.0",
+        "snapdragon-util": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "snapdragon-util": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+      "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.2.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "socket.io": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz",
+      "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==",
+      "dev": true,
+      "requires": {
+        "debug": "~3.1.0",
+        "engine.io": "~3.2.0",
+        "has-binary2": "~1.0.2",
+        "socket.io-adapter": "~1.1.0",
+        "socket.io-client": "2.1.1",
+        "socket.io-parser": "~3.2.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        }
+      }
+    },
+    "socket.io-adapter": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz",
+      "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=",
+      "dev": true
+    },
+    "socket.io-client": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz",
+      "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==",
+      "dev": true,
+      "requires": {
+        "backo2": "1.0.2",
+        "base64-arraybuffer": "0.1.5",
+        "component-bind": "1.0.0",
+        "component-emitter": "1.2.1",
+        "debug": "~3.1.0",
+        "engine.io-client": "~3.2.0",
+        "has-binary2": "~1.0.2",
+        "has-cors": "1.1.0",
+        "indexof": "0.0.1",
+        "object-component": "0.0.3",
+        "parseqs": "0.0.5",
+        "parseuri": "0.0.5",
+        "socket.io-parser": "~3.2.0",
+        "to-array": "0.1.4"
+      },
+      "dependencies": {
+        "component-emitter": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+          "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+          "dev": true
+        },
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        }
+      }
+    },
+    "socket.io-parser": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz",
+      "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==",
+      "dev": true,
+      "requires": {
+        "component-emitter": "1.2.1",
+        "debug": "~3.1.0",
+        "isarray": "2.0.1"
+      },
+      "dependencies": {
+        "component-emitter": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+          "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+          "dev": true
+        },
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "isarray": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+          "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
+          "dev": true
+        }
+      }
+    },
+    "sockjs": {
+      "version": "0.3.19",
+      "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz",
+      "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==",
+      "dev": true,
+      "requires": {
+        "faye-websocket": "^0.10.0",
+        "uuid": "^3.0.1"
+      }
+    },
+    "sockjs-client": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz",
+      "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=",
+      "dev": true,
+      "requires": {
+        "debug": "^2.6.6",
+        "eventsource": "0.1.6",
+        "faye-websocket": "~0.11.0",
+        "inherits": "^2.0.1",
+        "json3": "^3.3.2",
+        "url-parse": "^1.1.8"
+      },
+      "dependencies": {
+        "faye-websocket": {
+          "version": "0.11.3",
+          "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
+          "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==",
+          "dev": true,
+          "requires": {
+            "websocket-driver": ">=0.5.1"
+          }
+        }
+      }
+    },
+    "source-list-map": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
+      "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
+      "dev": true
+    },
+    "source-map": {
+      "version": "0.7.3",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+      "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+      "dev": true
+    },
+    "source-map-loader": {
+      "version": "0.2.4",
+      "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz",
+      "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==",
+      "dev": true,
+      "requires": {
+        "async": "^2.5.0",
+        "loader-utils": "^1.1.0"
+      },
+      "dependencies": {
+        "async": {
+          "version": "2.6.3",
+          "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+          "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+          "dev": true,
+          "requires": {
+            "lodash": "^4.17.14"
+          }
+        }
+      }
+    },
+    "source-map-resolve": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
+      "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
+      "dev": true,
+      "requires": {
+        "atob": "^2.1.1",
+        "decode-uri-component": "^0.2.0",
+        "resolve-url": "^0.2.1",
+        "source-map-url": "^0.4.0",
+        "urix": "^0.1.0"
+      }
+    },
+    "source-map-support": {
+      "version": "0.5.9",
+      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
+      "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
+      "dev": true,
+      "requires": {
+        "buffer-from": "^1.0.0",
+        "source-map": "^0.6.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "source-map-url": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+      "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+      "dev": true
+    },
+    "sourcemap-codec": {
+      "version": "1.4.6",
+      "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz",
+      "integrity": "sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==",
+      "dev": true
+    },
+    "spdx-correct": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
+      "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
+      "dev": true,
+      "requires": {
+        "spdx-expression-parse": "^3.0.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "spdx-exceptions": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+      "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
+      "dev": true
+    },
+    "spdx-expression-parse": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+      "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+      "dev": true,
+      "requires": {
+        "spdx-exceptions": "^2.1.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "spdx-license-ids": {
+      "version": "3.0.5",
+      "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+      "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
+      "dev": true
+    },
+    "spdy": {
+      "version": "3.4.7",
+      "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz",
+      "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=",
+      "dev": true,
+      "requires": {
+        "debug": "^2.6.8",
+        "handle-thing": "^1.2.5",
+        "http-deceiver": "^1.2.7",
+        "safe-buffer": "^5.0.1",
+        "select-hose": "^2.0.0",
+        "spdy-transport": "^2.0.18"
+      }
+    },
+    "spdy-transport": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.1.tgz",
+      "integrity": "sha512-q7D8c148escoB3Z7ySCASadkegMmUZW8Wb/Q1u0/XBgDKMO880rLQDj8Twiew/tYi7ghemKUi/whSYOwE17f5Q==",
+      "dev": true,
+      "requires": {
+        "debug": "^2.6.8",
+        "detect-node": "^2.0.3",
+        "hpack.js": "^2.1.6",
+        "obuf": "^1.1.1",
+        "readable-stream": "^2.2.9",
+        "safe-buffer": "^5.0.1",
+        "wbuf": "^1.7.2"
+      }
+    },
+    "speed-measure-webpack-plugin": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz",
+      "integrity": "sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.0.1"
+      }
+    },
+    "split-string": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+      "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^3.0.0"
+      }
+    },
+    "sprintf-js": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+      "dev": true
+    },
+    "sshpk": {
+      "version": "1.16.1",
+      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+      "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+      "requires": {
+        "asn1": "~0.2.3",
+        "assert-plus": "^1.0.0",
+        "bcrypt-pbkdf": "^1.0.0",
+        "dashdash": "^1.12.0",
+        "ecc-jsbn": "~0.1.1",
+        "getpass": "^0.1.1",
+        "jsbn": "~0.1.0",
+        "safer-buffer": "^2.0.2",
+        "tweetnacl": "~0.14.0"
+      }
+    },
+    "ssri": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
+      "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "stackblur-canvas": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.2.0.tgz",
+      "integrity": "sha512-5Gf8dtlf8k6NbLzuly2NkGrkS/Ahh+I5VUjO7TnFizdJtgpfpLLEdQlLe9umbcnZlitU84kfYjXE67xlSXfhfQ=="
+    },
+    "static-extend": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+      "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+      "dev": true,
+      "requires": {
+        "define-property": "^0.2.5",
+        "object-copy": "^0.1.0"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "stats-webpack-plugin": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/stats-webpack-plugin/-/stats-webpack-plugin-0.7.0.tgz",
+      "integrity": "sha512-NT0YGhwuQ0EOX+uPhhUcI6/+1Sq/pMzNuSCBVT4GbFl/ac6I/JZefBcjlECNfAb1t3GOx5dEj1Z7x0cAxeeVLQ==",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.4"
+      }
+    },
+    "statuses": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+      "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+      "dev": true
+    },
+    "stdout-stream": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
+      "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "readable-stream": "^2.0.1"
+      }
+    },
+    "stream-browserify": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+      "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
+      "dev": true,
+      "requires": {
+        "inherits": "~2.0.1",
+        "readable-stream": "^2.0.2"
+      }
+    },
+    "stream-each": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+      "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "^1.1.0",
+        "stream-shift": "^1.0.0"
+      }
+    },
+    "stream-http": {
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+      "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+      "dev": true,
+      "requires": {
+        "builtin-status-codes": "^3.0.0",
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.3.6",
+        "to-arraybuffer": "^1.0.0",
+        "xtend": "^4.0.0"
+      }
+    },
+    "stream-shift": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
+      "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
+      "dev": true
+    },
+    "streamroller": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz",
+      "integrity": "sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==",
+      "dev": true,
+      "requires": {
+        "date-format": "^1.2.0",
+        "debug": "^3.1.0",
+        "mkdirp": "^0.5.1",
+        "readable-stream": "^2.3.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+          "dev": true
+        }
+      }
+    },
+    "string-width": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+      "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+      "dev": true,
+      "requires": {
+        "code-point-at": "^1.0.0",
+        "is-fullwidth-code-point": "^1.0.0",
+        "strip-ansi": "^3.0.0"
+      }
+    },
+    "string.prototype.trimleft": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
+      "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.3",
+        "function-bind": "^1.1.1"
+      }
+    },
+    "string.prototype.trimright": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
+      "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.3",
+        "function-bind": "^1.1.1"
+      }
+    },
+    "string_decoder": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+      "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "~5.1.0"
+      }
+    },
+    "strip-ansi": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+      "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "^2.0.0"
+      }
+    },
+    "strip-bom": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+      "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "is-utf8": "^0.2.0"
+      }
+    },
+    "strip-eof": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+      "dev": true
+    },
+    "strip-indent": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+      "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "get-stdin": "^4.0.1"
+      }
+    },
+    "style-loader": {
+      "version": "0.23.0",
+      "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.0.tgz",
+      "integrity": "sha512-uCcN7XWHkqwGVt7skpInW6IGO1tG6ReyFQ1Cseh0VcN6VdcFQi62aG/2F3Y9ueA8x4IVlfaSUxpmQXQD9QrEuQ==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "schema-utils": "^0.4.5"
+      },
+      "dependencies": {
+        "schema-utils": {
+          "version": "0.4.7",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
+          "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        }
+      }
+    },
+    "stylus": {
+      "version": "0.54.5",
+      "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz",
+      "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=",
+      "dev": true,
+      "requires": {
+        "css-parse": "1.7.x",
+        "debug": "*",
+        "glob": "7.0.x",
+        "mkdirp": "0.5.x",
+        "sax": "0.5.x",
+        "source-map": "0.1.x"
+      },
+      "dependencies": {
+        "glob": {
+          "version": "7.0.6",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
+          "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
+          "dev": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.0.2",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "source-map": {
+          "version": "0.1.43",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+          "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+          "dev": true,
+          "requires": {
+            "amdefine": ">=0.0.4"
+          }
+        }
+      }
+    },
+    "stylus-loader": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz",
+      "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.0.2",
+        "lodash.clonedeep": "^4.5.0",
+        "when": "~3.6.x"
+      }
+    },
+    "supports-color": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+      "dev": true,
+      "requires": {
+        "has-flag": "^3.0.0"
+      }
+    },
+    "symbol-observable": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+      "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
+      "dev": true
+    },
+    "symbol-tree": {
+      "version": "3.2.4",
+      "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+      "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
+    },
+    "tapable": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
+      "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
+      "dev": true
+    },
+    "tar": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
+      "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "block-stream": "*",
+        "fstream": "^1.0.12",
+        "inherits": "2"
+      }
+    },
+    "terser": {
+      "version": "3.17.0",
+      "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz",
+      "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==",
+      "dev": true,
+      "requires": {
+        "commander": "^2.19.0",
+        "source-map": "~0.6.1",
+        "source-map-support": "~0.5.10"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        },
+        "source-map-support": {
+          "version": "0.5.13",
+          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+          "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+          "dev": true,
+          "requires": {
+            "buffer-from": "^1.0.0",
+            "source-map": "^0.6.0"
+          }
+        }
+      }
+    },
+    "terser-webpack-plugin": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz",
+      "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==",
+      "dev": true,
+      "requires": {
+        "cacache": "^11.0.2",
+        "find-cache-dir": "^2.0.0",
+        "schema-utils": "^1.0.0",
+        "serialize-javascript": "^1.4.0",
+        "source-map": "^0.6.1",
+        "terser": "^3.8.1",
+        "webpack-sources": "^1.1.0",
+        "worker-farm": "^1.5.2"
+      },
+      "dependencies": {
+        "cacache": {
+          "version": "11.3.3",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz",
+          "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==",
+          "dev": true,
+          "requires": {
+            "bluebird": "^3.5.5",
+            "chownr": "^1.1.1",
+            "figgy-pudding": "^3.5.1",
+            "glob": "^7.1.4",
+            "graceful-fs": "^4.1.15",
+            "lru-cache": "^5.1.1",
+            "mississippi": "^3.0.0",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^2.6.3",
+            "ssri": "^6.0.1",
+            "unique-filename": "^1.1.1",
+            "y18n": "^4.0.0"
+          }
+        },
+        "find-cache-dir": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+          "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+          "dev": true,
+          "requires": {
+            "commondir": "^1.0.1",
+            "make-dir": "^2.0.0",
+            "pkg-dir": "^3.0.0"
+          }
+        },
+        "find-up": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+          "dev": true,
+          "requires": {
+            "locate-path": "^3.0.0"
+          }
+        },
+        "glob": {
+          "version": "7.1.5",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz",
+          "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==",
+          "dev": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.0.4",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+          "dev": true,
+          "requires": {
+            "p-locate": "^3.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "lru-cache": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+          "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+          "dev": true,
+          "requires": {
+            "yallist": "^3.0.2"
+          }
+        },
+        "make-dir": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+          "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+          "dev": true,
+          "requires": {
+            "pify": "^4.0.1",
+            "semver": "^5.6.0"
+          }
+        },
+        "mississippi": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+          "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
+          "dev": true,
+          "requires": {
+            "concat-stream": "^1.5.0",
+            "duplexify": "^3.4.2",
+            "end-of-stream": "^1.1.0",
+            "flush-write-stream": "^1.0.0",
+            "from2": "^2.1.0",
+            "parallel-transform": "^1.1.0",
+            "pump": "^3.0.0",
+            "pumpify": "^1.3.3",
+            "stream-each": "^1.1.0",
+            "through2": "^2.0.0"
+          }
+        },
+        "p-limit": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+          "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+          "dev": true,
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.0.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+          "dev": true
+        },
+        "pify": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+          "dev": true
+        },
+        "pkg-dir": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+          "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+          "dev": true,
+          "requires": {
+            "find-up": "^3.0.0"
+          }
+        },
+        "pump": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+          "dev": true,
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        },
+        "semver": {
+          "version": "5.7.1",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        },
+        "ssri": {
+          "version": "6.0.1",
+          "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
+          "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
+          "dev": true,
+          "requires": {
+            "figgy-pudding": "^3.5.1"
+          }
+        },
+        "yallist": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+          "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+          "dev": true
+        }
+      }
+    },
+    "through": {
+      "version": "2.3.8",
+      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+      "dev": true
+    },
+    "through2": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+      "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+      "dev": true,
+      "requires": {
+        "readable-stream": "~2.3.6",
+        "xtend": "~4.0.1"
+      }
+    },
+    "thunky": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
+      "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
+      "dev": true
+    },
+    "timers-browserify": {
+      "version": "2.0.11",
+      "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz",
+      "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==",
+      "dev": true,
+      "requires": {
+        "setimmediate": "^1.0.4"
+      }
+    },
+    "tmp": {
+      "version": "0.0.33",
+      "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+      "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+      "dev": true,
+      "requires": {
+        "os-tmpdir": "~1.0.2"
+      }
+    },
+    "to-array": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
+      "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
+      "dev": true
+    },
+    "to-arraybuffer": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+      "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+      "dev": true
+    },
+    "to-fast-properties": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+      "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+      "dev": true
+    },
+    "to-object-path": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+      "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "to-regex": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+      "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+      "dev": true,
+      "requires": {
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "regex-not": "^1.0.2",
+        "safe-regex": "^1.1.0"
+      }
+    },
+    "to-regex-range": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+      "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+      "dev": true,
+      "requires": {
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1"
+      }
+    },
+    "toidentifier": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+      "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
+      "dev": true
+    },
+    "tough-cookie": {
+      "version": "2.4.3",
+      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+      "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+      "requires": {
+        "psl": "^1.1.24",
+        "punycode": "^1.4.1"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+        }
+      }
+    },
+    "tr46": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+      "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
+    },
+    "tree-kill": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz",
+      "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==",
+      "dev": true
+    },
+    "trim-newlines": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+      "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+      "dev": true,
+      "optional": true
+    },
+    "trim-right": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+      "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+      "dev": true
+    },
+    "true-case-path": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
+      "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "glob": "^7.1.2"
+      }
+    },
+    "ts-node": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz",
+      "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==",
+      "dev": true,
+      "requires": {
+        "arrify": "^1.0.0",
+        "buffer-from": "^1.1.0",
+        "diff": "^3.1.0",
+        "make-error": "^1.1.1",
+        "minimist": "^1.2.0",
+        "mkdirp": "^0.5.1",
+        "source-map-support": "^0.5.6",
+        "yn": "^2.0.0"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        }
+      }
+    },
+    "tslib": {
+      "version": "1.10.0",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
+      "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
+    },
+    "tslint": {
+      "version": "5.11.0",
+      "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz",
+      "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=",
+      "dev": true,
+      "requires": {
+        "babel-code-frame": "^6.22.0",
+        "builtin-modules": "^1.1.1",
+        "chalk": "^2.3.0",
+        "commander": "^2.12.1",
+        "diff": "^3.2.0",
+        "glob": "^7.1.1",
+        "js-yaml": "^3.7.0",
+        "minimatch": "^3.0.4",
+        "resolve": "^1.3.2",
+        "semver": "^5.3.0",
+        "tslib": "^1.8.0",
+        "tsutils": "^2.27.2"
+      },
+      "dependencies": {
+        "resolve": {
+          "version": "1.12.0",
+          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
+          "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
+          "dev": true,
+          "requires": {
+            "path-parse": "^1.0.6"
+          }
+        }
+      }
+    },
+    "tsutils": {
+      "version": "2.29.0",
+      "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
+      "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
+      "dev": true,
+      "requires": {
+        "tslib": "^1.8.1"
+      }
+    },
+    "tty-browserify": {
+      "version": "0.0.0",
+      "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+      "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+      "dev": true
+    },
+    "tunnel-agent": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+      "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+      "requires": {
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "tweetnacl": {
+      "version": "0.14.5",
+      "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+    },
+    "type-check": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+      "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+      "requires": {
+        "prelude-ls": "~1.1.2"
+      }
+    },
+    "type-is": {
+      "version": "1.6.18",
+      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+      "dev": true,
+      "requires": {
+        "media-typer": "0.3.0",
+        "mime-types": "~2.1.24"
+      }
+    },
+    "typedarray": {
+      "version": "0.0.6",
+      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+      "dev": true
+    },
+    "typescript": {
+      "version": "3.1.6",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz",
+      "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==",
+      "dev": true
+    },
+    "uglify-js": {
+      "version": "3.6.1",
+      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.1.tgz",
+      "integrity": "sha512-+dSJLJpXBb6oMHP+Yvw8hUgElz4gLTh82XuX68QiJVTXaE5ibl6buzhNkQdYhBlIhozWOC9ge16wyRmjG4TwVQ==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "commander": "2.20.0",
+        "source-map": "~0.6.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "uglifyjs-webpack-plugin": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz",
+      "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==",
+      "dev": true,
+      "requires": {
+        "cacache": "^10.0.4",
+        "find-cache-dir": "^1.0.0",
+        "schema-utils": "^0.4.5",
+        "serialize-javascript": "^1.4.0",
+        "source-map": "^0.6.1",
+        "uglify-es": "^3.3.4",
+        "webpack-sources": "^1.1.0",
+        "worker-farm": "^1.5.2"
+      },
+      "dependencies": {
+        "commander": {
+          "version": "2.13.0",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
+          "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
+          "dev": true
+        },
+        "schema-utils": {
+          "version": "0.4.7",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
+          "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        },
+        "uglify-es": {
+          "version": "3.3.9",
+          "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz",
+          "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==",
+          "dev": true,
+          "requires": {
+            "commander": "~2.13.0",
+            "source-map": "~0.6.1"
+          }
+        }
+      }
+    },
+    "uikit": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/uikit/-/uikit-3.2.1.tgz",
+      "integrity": "sha512-8mhv3n7m9/kGYv1+YPjTDGbI7HKK1o79wOyhpznoNYVTGhr1cwaTACITVVoUYONJxdqmIIGBA2OkKhMQ8zXwBg=="
+    },
+    "ultron": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+      "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
+      "dev": true
+    },
+    "union-value": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+      "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+      "dev": true,
+      "requires": {
+        "arr-union": "^3.1.0",
+        "get-value": "^2.0.6",
+        "is-extendable": "^0.1.1",
+        "set-value": "^2.0.1"
+      }
+    },
+    "unique-filename": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+      "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+      "dev": true,
+      "requires": {
+        "unique-slug": "^2.0.0"
+      }
+    },
+    "unique-slug": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+      "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+      "dev": true,
+      "requires": {
+        "imurmurhash": "^0.1.4"
+      }
+    },
+    "unpipe": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+      "dev": true
+    },
+    "unset-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+      "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+      "dev": true,
+      "requires": {
+        "has-value": "^0.3.1",
+        "isobject": "^3.0.0"
+      },
+      "dependencies": {
+        "has-value": {
+          "version": "0.3.1",
+          "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+          "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+          "dev": true,
+          "requires": {
+            "get-value": "^2.0.3",
+            "has-values": "^0.1.4",
+            "isobject": "^2.0.0"
+          },
+          "dependencies": {
+            "isobject": {
+              "version": "2.1.0",
+              "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+              "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+              "dev": true,
+              "requires": {
+                "isarray": "1.0.0"
+              }
+            }
+          }
+        },
+        "has-values": {
+          "version": "0.1.4",
+          "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+          "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+          "dev": true
+        }
+      }
+    },
+    "upath": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+      "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+      "dev": true
+    },
+    "uri-js": {
+      "version": "4.2.2",
+      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+      "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+      "requires": {
+        "punycode": "^2.1.0"
+      }
+    },
+    "urix": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+      "dev": true
+    },
+    "url": {
+      "version": "0.11.0",
+      "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+      "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+      "dev": true,
+      "requires": {
+        "punycode": "1.3.2",
+        "querystring": "0.2.0"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.3.2",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+          "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+          "dev": true
+        }
+      }
+    },
+    "url-join": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz",
+      "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==",
+      "dev": true
+    },
+    "url-parse": {
+      "version": "1.4.7",
+      "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
+      "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
+      "dev": true,
+      "requires": {
+        "querystringify": "^2.1.1",
+        "requires-port": "^1.0.0"
+      }
+    },
+    "use": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+      "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+      "dev": true
+    },
+    "useragent": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz",
+      "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=",
+      "dev": true,
+      "requires": {
+        "lru-cache": "2.2.x",
+        "tmp": "0.0.x"
+      },
+      "dependencies": {
+        "lru-cache": {
+          "version": "2.2.4",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz",
+          "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=",
+          "dev": true
+        }
+      }
+    },
+    "util": {
+      "version": "0.11.1",
+      "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+      "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+      "dev": true,
+      "requires": {
+        "inherits": "2.0.3"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+          "dev": true
+        }
+      }
+    },
+    "util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+      "dev": true
+    },
+    "util.promisify": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
+      "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.2",
+        "object.getownpropertydescriptors": "^2.0.3"
+      }
+    },
+    "utils-merge": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+      "dev": true
+    },
+    "uuid": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
+      "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="
+    },
+    "validate-npm-package-license": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+      "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+      "dev": true,
+      "requires": {
+        "spdx-correct": "^3.0.0",
+        "spdx-expression-parse": "^3.0.0"
+      }
+    },
+    "validate-npm-package-name": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
+      "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=",
+      "dev": true,
+      "requires": {
+        "builtins": "^1.0.3"
+      }
+    },
+    "vary": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+      "dev": true
+    },
+    "verror": {
+      "version": "1.10.0",
+      "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+      "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "core-util-is": "1.0.2",
+        "extsprintf": "^1.2.0"
+      }
+    },
+    "vm-browserify": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz",
+      "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==",
+      "dev": true
+    },
+    "void-elements": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
+      "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
+      "dev": true
+    },
+    "watchpack": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
+      "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
+      "dev": true,
+      "requires": {
+        "chokidar": "^2.0.2",
+        "graceful-fs": "^4.1.2",
+        "neo-async": "^2.5.0"
+      }
+    },
+    "wbuf": {
+      "version": "1.7.3",
+      "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
+      "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+      "dev": true,
+      "requires": {
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "webdriver-js-extender": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz",
+      "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==",
+      "dev": true,
+      "requires": {
+        "@types/selenium-webdriver": "^3.0.0",
+        "selenium-webdriver": "^3.0.1"
+      }
+    },
+    "webidl-conversions": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+      "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
+    },
+    "webpack": {
+      "version": "4.19.1",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.19.1.tgz",
+      "integrity": "sha512-j7Q/5QqZRqIFXJvC0E59ipLV5Hf6lAnS3ezC3I4HMUybwEDikQBVad5d+IpPtmaQPQArvgUZLXIN6lWijHBn4g==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.6",
+        "@webassemblyjs/helper-module-context": "1.7.6",
+        "@webassemblyjs/wasm-edit": "1.7.6",
+        "@webassemblyjs/wasm-parser": "1.7.6",
+        "acorn": "^5.6.2",
+        "acorn-dynamic-import": "^3.0.0",
+        "ajv": "^6.1.0",
+        "ajv-keywords": "^3.1.0",
+        "chrome-trace-event": "^1.0.0",
+        "enhanced-resolve": "^4.1.0",
+        "eslint-scope": "^4.0.0",
+        "json-parse-better-errors": "^1.0.2",
+        "loader-runner": "^2.3.0",
+        "loader-utils": "^1.1.0",
+        "memory-fs": "~0.4.1",
+        "micromatch": "^3.1.8",
+        "mkdirp": "~0.5.0",
+        "neo-async": "^2.5.0",
+        "node-libs-browser": "^2.0.0",
+        "schema-utils": "^0.4.4",
+        "tapable": "^1.1.0",
+        "uglifyjs-webpack-plugin": "^1.2.4",
+        "watchpack": "^1.5.0",
+        "webpack-sources": "^1.2.0"
+      },
+      "dependencies": {
+        "schema-utils": {
+          "version": "0.4.7",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
+          "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        }
+      }
+    },
+    "webpack-core": {
+      "version": "0.6.9",
+      "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz",
+      "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=",
+      "dev": true,
+      "requires": {
+        "source-list-map": "~0.1.7",
+        "source-map": "~0.4.1"
+      },
+      "dependencies": {
+        "source-list-map": {
+          "version": "0.1.8",
+          "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz",
+          "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.4.4",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+          "dev": true,
+          "requires": {
+            "amdefine": ">=0.0.4"
+          }
+        }
+      }
+    },
+    "webpack-dev-middleware": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.3.0.tgz",
+      "integrity": "sha512-5C5gXtOo1I6+0AEg4UPglYEtu3Rai6l5IiO6aUu65scHXz29dc3oIWMiRwvcNLXgL0HwRkRxa9N02ZjFt4hY8w==",
+      "dev": true,
+      "requires": {
+        "loud-rejection": "^1.6.0",
+        "memory-fs": "~0.4.1",
+        "mime": "^2.3.1",
+        "range-parser": "^1.0.3",
+        "url-join": "^4.0.0",
+        "webpack-log": "^2.0.0"
+      },
+      "dependencies": {
+        "mime": {
+          "version": "2.4.4",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
+          "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
+          "dev": true
+        }
+      }
+    },
+    "webpack-dev-server": {
+      "version": "3.1.8",
+      "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.8.tgz",
+      "integrity": "sha512-c+tcJtDqnPdxCAzEEZKdIPmg3i5i7cAHe+B+0xFNK0BlCc2HF/unYccbU7xTgfGc5xxhCztCQzFmsqim+KhI+A==",
+      "dev": true,
+      "requires": {
+        "ansi-html": "0.0.7",
+        "bonjour": "^3.5.0",
+        "chokidar": "^2.0.0",
+        "compression": "^1.5.2",
+        "connect-history-api-fallback": "^1.3.0",
+        "debug": "^3.1.0",
+        "del": "^3.0.0",
+        "express": "^4.16.2",
+        "html-entities": "^1.2.0",
+        "http-proxy-middleware": "~0.18.0",
+        "import-local": "^2.0.0",
+        "internal-ip": "^3.0.1",
+        "ip": "^1.1.5",
+        "killable": "^1.0.0",
+        "loglevel": "^1.4.1",
+        "opn": "^5.1.0",
+        "portfinder": "^1.0.9",
+        "schema-utils": "^1.0.0",
+        "selfsigned": "^1.9.1",
+        "serve-index": "^1.7.2",
+        "sockjs": "0.3.19",
+        "sockjs-client": "1.1.5",
+        "spdy": "^3.4.1",
+        "strip-ansi": "^3.0.0",
+        "supports-color": "^5.1.0",
+        "webpack-dev-middleware": "3.2.0",
+        "webpack-log": "^2.0.0",
+        "yargs": "12.0.2"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "camelcase": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+          "dev": true
+        },
+        "cliui": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+          "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+          "dev": true,
+          "requires": {
+            "string-width": "^2.1.1",
+            "strip-ansi": "^4.0.0",
+            "wrap-ansi": "^2.0.0"
+          },
+          "dependencies": {
+            "strip-ansi": {
+              "version": "4.0.0",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "^3.0.0"
+              }
+            }
+          }
+        },
+        "cross-spawn": {
+          "version": "6.0.5",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+          "dev": true,
+          "requires": {
+            "nice-try": "^1.0.4",
+            "path-key": "^2.0.1",
+            "semver": "^5.5.0",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
+          }
+        },
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "decamelize": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz",
+          "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==",
+          "dev": true,
+          "requires": {
+            "xregexp": "4.0.0"
+          }
+        },
+        "execa": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+          "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+          "dev": true,
+          "requires": {
+            "cross-spawn": "^6.0.0",
+            "get-stream": "^4.0.0",
+            "is-stream": "^1.1.0",
+            "npm-run-path": "^2.0.0",
+            "p-finally": "^1.0.0",
+            "signal-exit": "^3.0.0",
+            "strip-eof": "^1.0.0"
+          }
+        },
+        "find-up": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+          "dev": true,
+          "requires": {
+            "locate-path": "^3.0.0"
+          }
+        },
+        "get-stream": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+          "dev": true,
+          "requires": {
+            "pump": "^3.0.0"
+          }
+        },
+        "invert-kv": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
+          "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
+          "dev": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "lcid": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
+          "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
+          "dev": true,
+          "requires": {
+            "invert-kv": "^2.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+          "dev": true,
+          "requires": {
+            "p-locate": "^3.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "mime": {
+          "version": "2.4.4",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
+          "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
+          "dev": true
+        },
+        "ms": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+          "dev": true
+        },
+        "os-locale": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+          "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
+          "dev": true,
+          "requires": {
+            "execa": "^1.0.0",
+            "lcid": "^2.0.0",
+            "mem": "^4.0.0"
+          }
+        },
+        "p-limit": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+          "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+          "dev": true,
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.0.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+          "dev": true
+        },
+        "pump": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+          "dev": true,
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+          "dev": true,
+          "requires": {
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
+          },
+          "dependencies": {
+            "strip-ansi": {
+              "version": "4.0.0",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "^3.0.0"
+              }
+            }
+          }
+        },
+        "webpack-dev-middleware": {
+          "version": "3.2.0",
+          "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.2.0.tgz",
+          "integrity": "sha512-YJLMF/96TpKXaEQwaLEo+Z4NDK8aV133ROF6xp9pe3gQoS7sxfpXh4Rv9eC+8vCvWfmDjRQaMSlRPbO+9G6jgA==",
+          "dev": true,
+          "requires": {
+            "loud-rejection": "^1.6.0",
+            "memory-fs": "~0.4.1",
+            "mime": "^2.3.1",
+            "path-is-absolute": "^1.0.0",
+            "range-parser": "^1.0.3",
+            "url-join": "^4.0.0",
+            "webpack-log": "^2.0.0"
+          }
+        },
+        "which-module": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+          "dev": true
+        },
+        "yargs": {
+          "version": "12.0.2",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz",
+          "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==",
+          "dev": true,
+          "requires": {
+            "cliui": "^4.0.0",
+            "decamelize": "^2.0.0",
+            "find-up": "^3.0.0",
+            "get-caller-file": "^1.0.1",
+            "os-locale": "^3.0.0",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^1.0.1",
+            "set-blocking": "^2.0.0",
+            "string-width": "^2.0.0",
+            "which-module": "^2.0.0",
+            "y18n": "^3.2.1 || ^4.0.0",
+            "yargs-parser": "^10.1.0"
+          }
+        },
+        "yargs-parser": {
+          "version": "10.1.0",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
+          "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
+          "dev": true,
+          "requires": {
+            "camelcase": "^4.1.0"
+          }
+        }
+      }
+    },
+    "webpack-log": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
+      "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==",
+      "dev": true,
+      "requires": {
+        "ansi-colors": "^3.0.0",
+        "uuid": "^3.3.2"
+      }
+    },
+    "webpack-merge": {
+      "version": "4.1.4",
+      "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.4.tgz",
+      "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.5"
+      }
+    },
+    "webpack-sources": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz",
+      "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==",
+      "dev": true,
+      "requires": {
+        "source-list-map": "^2.0.0",
+        "source-map": "~0.6.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "webpack-subresource-integrity": {
+      "version": "1.1.0-rc.6",
+      "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.6.tgz",
+      "integrity": "sha512-Az7y8xTniNhaA0620AV1KPwWOqawurVVDzQSpPAeR5RwNbL91GoBSJAAo9cfd+GiFHwsS5bbHepBw1e6Hzxy4w==",
+      "dev": true,
+      "requires": {
+        "webpack-core": "^0.6.8"
+      }
+    },
+    "websocket-driver": {
+      "version": "0.7.3",
+      "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz",
+      "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==",
+      "dev": true,
+      "requires": {
+        "http-parser-js": ">=0.4.0 <0.4.11",
+        "safe-buffer": ">=5.1.0",
+        "websocket-extensions": ">=0.1.1"
+      }
+    },
+    "websocket-extensions": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
+      "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
+      "dev": true
+    },
+    "whatwg-url": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-2.0.1.tgz",
+      "integrity": "sha1-U5ayBD8CDub3BNnEXqhRnnJN5lk=",
+      "requires": {
+        "tr46": "~0.0.3",
+        "webidl-conversions": "^3.0.0"
+      }
+    },
+    "when": {
+      "version": "3.6.4",
+      "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz",
+      "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=",
+      "dev": true
+    },
+    "which": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+      "dev": true,
+      "requires": {
+        "isexe": "^2.0.0"
+      }
+    },
+    "which-module": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+      "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
+      "dev": true,
+      "optional": true
+    },
+    "wide-align": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+      "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "string-width": "^1.0.2 || 2"
+      }
+    },
+    "wkt-parser": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.2.3.tgz",
+      "integrity": "sha512-s7zrOedGuHbbzMaQOuf8HacuCYp3LmmrHjkkN//7UEAzsYz7xJ6J+j/84ZWZkQcrRqi3xXyuc4odPHj7PEB0bw=="
+    },
+    "wordwrap": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+      "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
+    },
+    "worker-farm": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
+      "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==",
+      "dev": true,
+      "requires": {
+        "errno": "~0.1.7"
+      }
+    },
+    "wrap-ansi": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+      "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+      "dev": true,
+      "requires": {
+        "string-width": "^1.0.1",
+        "strip-ansi": "^3.0.1"
+      }
+    },
+    "wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+      "dev": true
+    },
+    "ws": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+      "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+      "dev": true,
+      "requires": {
+        "async-limiter": "~1.0.0",
+        "safe-buffer": "~5.1.0",
+        "ultron": "~1.1.0"
+      }
+    },
+    "xml-name-validator": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
+      "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU="
+    },
+    "xml2js": {
+      "version": "0.4.22",
+      "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.22.tgz",
+      "integrity": "sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw==",
+      "dev": true,
+      "requires": {
+        "sax": ">=0.6.0",
+        "util.promisify": "~1.0.0",
+        "xmlbuilder": "~11.0.0"
+      },
+      "dependencies": {
+        "sax": {
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+          "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+          "dev": true
+        }
+      }
+    },
+    "xmlbuilder": {
+      "version": "11.0.1",
+      "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+      "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
+      "dev": true
+    },
+    "xmldom": {
+      "version": "0.1.27",
+      "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz",
+      "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk="
+    },
+    "xmlhttprequest-ssl": {
+      "version": "1.5.5",
+      "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
+      "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=",
+      "dev": true
+    },
+    "xregexp": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz",
+      "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==",
+      "dev": true
+    },
+    "xtend": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+      "dev": true
+    },
+    "y18n": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+      "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+      "dev": true
+    },
+    "yallist": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+      "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+      "dev": true
+    },
+    "yargs": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+      "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "camelcase": "^3.0.0",
+        "cliui": "^3.2.0",
+        "decamelize": "^1.1.1",
+        "get-caller-file": "^1.0.1",
+        "os-locale": "^1.4.0",
+        "read-pkg-up": "^1.0.1",
+        "require-directory": "^2.1.1",
+        "require-main-filename": "^1.0.1",
+        "set-blocking": "^2.0.0",
+        "string-width": "^1.0.2",
+        "which-module": "^1.0.0",
+        "y18n": "^3.2.1",
+        "yargs-parser": "^5.0.0"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+          "dev": true,
+          "optional": true
+        },
+        "y18n": {
+          "version": "3.2.1",
+          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "yargs-parser": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+      "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "camelcase": "^3.0.0"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "yeast": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
+      "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
+      "dev": true
+    },
+    "yn": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz",
+      "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=",
+      "dev": true
+    },
+    "zone.js": {
+      "version": "0.8.29",
+      "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.29.tgz",
+      "integrity": "sha512-mla2acNCMkWXBD+c+yeUrBUrzOxYMNFdQ6FGfigGGtEVBPJx07BQeJekjt9DmH1FtZek4E9rE1eRR9qQpxACOQ=="
+    },
+    "zrender": {
+      "version": "4.0.7",
+      "resolved": "https://registry.npmjs.org/zrender/-/zrender-4.0.7.tgz",
+      "integrity": "sha512-TNloHe0ums6zxbHfnaCryM61J4IWDajZwNq6dHk9vfWhhysO/OeFvvR0drBs/nbXha2YxSzfQj2FiCd6RVBe+Q=="
+    }
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/.editorconfig
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/.editorconfig	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/.editorconfig	(revision 60863)
@@ -0,0 +1,13 @@
+# Editor configuration, see http://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+max_line_length = off
+trim_trailing_whitespace = false
Index: modules/open-science-observatory-ui/branches/gradient/e2e/protractor.conf.js
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/e2e/protractor.conf.js	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/e2e/protractor.conf.js	(revision 60863)
@@ -0,0 +1,28 @@
+// Protractor configuration file, see link for more information
+// https://github.com/angular/protractor/blob/master/lib/config.ts
+
+const { SpecReporter } = require('jasmine-spec-reporter');
+
+exports.config = {
+  allScriptsTimeout: 11000,
+  specs: [
+    './src/**/*.e2e-spec.ts'
+  ],
+  capabilities: {
+    'browserName': 'chrome'
+  },
+  directConnect: true,
+  baseUrl: 'http://localhost:4200/',
+  framework: 'jasmine',
+  jasmineNodeOpts: {
+    showColors: true,
+    defaultTimeoutInterval: 30000,
+    print: function() {}
+  },
+  onPrepare() {
+    require('ts-node').register({
+      project: require('path').join(__dirname, './tsconfig.e2e.json')
+    });
+    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
+  }
+};
\ No newline at end of file
Index: modules/open-science-observatory-ui/branches/gradient/src/environments/environment.prod.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/environments/environment.prod.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/environments/environment.prod.ts	(revision 60863)
@@ -0,0 +1,9 @@
+export const environment = {
+  production: true,
+  // API_ENDPOINT: '/api',
+  environmentName: 'prod',
+  API_ENDPOINT: 'https://services.openaire.eu/stats-tool/',
+  FAQ_ENDPOINT: '/uoa-admin-tools/api',
+  FAQ_HOMEPAGE: '/uoa-admin-tools/dashboard',
+  profileName: 'OpenAIRE All-inclusive'
+};
Index: modules/open-science-observatory-ui/branches/gradient/src/browserslist
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/browserslist	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/browserslist	(revision 60863)
@@ -0,0 +1,11 @@
+# This file is currently used by autoprefixer to adjust CSS to support the below specified browsers
+# For additional information regarding the format and rule options, please see:
+# https://github.com/browserslist/browserslist#queries
+#
+# For IE 9-11 support, please remove 'not' from the last line of the file and adjust as needed
+
+> 0.5%
+last 2 versions
+Firefox ESR
+not dead
+not IE 9-11
\ No newline at end of file
Index: modules/open-science-observatory-ui/branches/gradient/src/main.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/main.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/main.ts	(revision 60863)
@@ -0,0 +1,12 @@
+import { enableProdMode } from '@angular/core';
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+
+import { AppModule } from './app/app.module';
+import { environment } from './environments/environment';
+
+if (environment.production) {
+  enableProdMode();
+}
+
+platformBrowserDynamic().bootstrapModule(AppModule)
+  .catch(err => console.error(err));
Index: modules/open-science-observatory-ui/branches/gradient/src/favicon.ico
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = image/x-icon
Index: modules/open-science-observatory-ui/branches/gradient/src/favicon.ico
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/favicon.ico	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/favicon.ico	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/favicon.ico
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+image/x-icon
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/tsconfig.json
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/tsconfig.json	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/tsconfig.json	(revision 60863)
@@ -0,0 +1,21 @@
+{
+  "compileOnSave": false,
+  "compilerOptions": {
+    "baseUrl": "./",
+    "outDir": "./dist/out-tsc",
+    "sourceMap": true,
+    "declaration": false,
+    "module": "es2015",
+    "moduleResolution": "node",
+    "emitDecoratorMetadata": true,
+    "experimentalDecorators": true,
+    "target": "es5",
+    "typeRoots": [
+      "node_modules/@types"
+    ],
+    "lib": [
+      "es2018",
+      "dom"
+    ]
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/e2e/src/app.e2e-spec.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/e2e/src/app.e2e-spec.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/e2e/src/app.e2e-spec.ts	(revision 60863)
@@ -0,0 +1,14 @@
+import { AppPage } from './app.po';
+
+describe('workspace-project App', () => {
+  let page: AppPage;
+
+  beforeEach(() => {
+    page = new AppPage();
+  });
+
+  it('should display welcome message', () => {
+    page.navigateTo();
+    expect(page.getParagraphText()).toEqual('Welcome to open-science-observatory-ui!');
+  });
+});
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/js/common.js
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/js/common.js	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/js/common.js	(revision 60863)
@@ -0,0 +1,10928 @@
+/*!
+ * jQuery JavaScript Library v2.2.4
+ * http://jquery.com/
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-05-20T17:23Z
+ */
+
+(function( global, factory ) {
+
+	if ( typeof module === "object" && typeof module.exports === "object" ) {
+		// For CommonJS and CommonJS-like environments where a proper `window`
+		// is present, execute the factory and get jQuery.
+		// For environments that do not have a `window` with a `document`
+		// (such as Node.js), expose a factory as module.exports.
+		// This accentuates the need for the creation of a real `window`.
+		// e.g. var jQuery = require("jquery")(window);
+		// See ticket #14549 for more info.
+		module.exports = global.document ?
+			factory( global, true ) :
+			function( w ) {
+				if ( !w.document ) {
+					throw new Error( "jQuery requires a window with a document" );
+				}
+				return factory( w );
+			};
+	} else {
+		factory( global );
+	}
+
+// Pass this if window is not defined yet
+}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Support: Firefox 18+
+// Can't be in strict mode, several libs including ASP.NET trace
+// the stack via arguments.caller.callee and Firefox dies if
+// you try to trace through "use strict" call chains. (#13335)
+//"use strict";
+var arr = [];
+
+var document = window.document;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var support = {};
+
+
+
+var
+	version = "2.2.4",
+
+	// Define a local copy of jQuery
+	jQuery = function( selector, context ) {
+
+		// The jQuery object is actually just the init constructor 'enhanced'
+		// Need init if jQuery is called (just allow error to be thrown if not included)
+		return new jQuery.fn.init( selector, context );
+	},
+
+	// Support: Android<4.1
+	// Make sure we trim BOM and NBSP
+	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+	// Matches dashed string for camelizing
+	rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([\da-z])/gi,
+
+	// Used by jQuery.camelCase as callback to replace()
+	fcamelCase = function( all, letter ) {
+		return letter.toUpperCase();
+	};
+
+jQuery.fn = jQuery.prototype = {
+
+	// The current version of jQuery being used
+	jquery: version,
+
+	constructor: jQuery,
+
+	// Start with an empty selector
+	selector: "",
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	toArray: function() {
+		return slice.call( this );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+		return num != null ?
+
+			// Return just the one element from the set
+			( num < 0 ? this[ num + this.length ] : this[ num ] ) :
+
+			// Return all the elements in a clean array
+			slice.call( this );
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems ) {
+
+		// Build a new jQuery matched element set
+		var ret = jQuery.merge( this.constructor(), elems );
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+		ret.context = this.context;
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	each: function( callback ) {
+		return jQuery.each( this, callback );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map( this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		} ) );
+	},
+
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ) );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	eq: function( i ) {
+		var len = this.length,
+			j = +i + ( i < 0 ? len : 0 );
+		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor();
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: push,
+	sort: arr.sort,
+	splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var options, name, src, copy, copyIsArray, clone,
+		target = arguments[ 0 ] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+
+		// Skip the boolean and the target
+		target = arguments[ i ] || {};
+		i++;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+		target = {};
+	}
+
+	// Extend jQuery itself if only one argument is passed
+	if ( i === length ) {
+		target = this;
+		i--;
+	}
+
+	for ( ; i < length; i++ ) {
+
+		// Only deal with non-null/undefined values
+		if ( ( options = arguments[ i ] ) != null ) {
+
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+					( copyIsArray = jQuery.isArray( copy ) ) ) ) {
+
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && jQuery.isArray( src ) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject( src ) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend( {
+
+	// Unique for each copy of jQuery on the page
+	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+	// Assume jQuery is ready without the ready module
+	isReady: true,
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	noop: function() {},
+
+	isFunction: function( obj ) {
+		return jQuery.type( obj ) === "function";
+	},
+
+	isArray: Array.isArray,
+
+	isWindow: function( obj ) {
+		return obj != null && obj === obj.window;
+	},
+
+	isNumeric: function( obj ) {
+
+		// parseFloat NaNs numeric-cast false positives (null|true|false|"")
+		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+		// subtraction forces infinities to NaN
+		// adding 1 corrects loss of precision from parseFloat (#15100)
+		var realStringObj = obj && obj.toString();
+		return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
+	},
+
+	isPlainObject: function( obj ) {
+		var key;
+
+		// Not plain objects:
+		// - Any object or value whose internal [[Class]] property is not "[object Object]"
+		// - DOM nodes
+		// - window
+		if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
+			return false;
+		}
+
+		// Not own constructor property must be Object
+		if ( obj.constructor &&
+				!hasOwn.call( obj, "constructor" ) &&
+				!hasOwn.call( obj.constructor.prototype || {}, "isPrototypeOf" ) ) {
+			return false;
+		}
+
+		// Own properties are enumerated firstly, so to speed up,
+		// if last one is own, then all properties are own
+		for ( key in obj ) {}
+
+		return key === undefined || hasOwn.call( obj, key );
+	},
+
+	isEmptyObject: function( obj ) {
+		var name;
+		for ( name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	type: function( obj ) {
+		if ( obj == null ) {
+			return obj + "";
+		}
+
+		// Support: Android<4.0, iOS<6 (functionish RegExp)
+		return typeof obj === "object" || typeof obj === "function" ?
+			class2type[ toString.call( obj ) ] || "object" :
+			typeof obj;
+	},
+
+	// Evaluates a script in a global context
+	globalEval: function( code ) {
+		var script,
+			indirect = eval;
+
+		code = jQuery.trim( code );
+
+		if ( code ) {
+
+			// If the code includes a valid, prologue position
+			// strict mode pragma, execute code by injecting a
+			// script tag into the document.
+			if ( code.indexOf( "use strict" ) === 1 ) {
+				script = document.createElement( "script" );
+				script.text = code;
+				document.head.appendChild( script ).parentNode.removeChild( script );
+			} else {
+
+				// Otherwise, avoid the DOM node creation, insertion
+				// and removal by using an indirect global eval
+
+				indirect( code );
+			}
+		}
+	},
+
+	// Convert dashed to camelCase; used by the css and data modules
+	// Support: IE9-11+
+	// Microsoft forgot to hump their vendor prefix (#9572)
+	camelCase: function( string ) {
+		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+	},
+
+	nodeName: function( elem, name ) {
+		return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+	},
+
+	each: function( obj, callback ) {
+		var length, i = 0;
+
+		if ( isArrayLike( obj ) ) {
+			length = obj.length;
+			for ( ; i < length; i++ ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		} else {
+			for ( i in obj ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		}
+
+		return obj;
+	},
+
+	// Support: Android<4.1
+	trim: function( text ) {
+		return text == null ?
+			"" :
+			( text + "" ).replace( rtrim, "" );
+	},
+
+	// results is for internal usage only
+	makeArray: function( arr, results ) {
+		var ret = results || [];
+
+		if ( arr != null ) {
+			if ( isArrayLike( Object( arr ) ) ) {
+				jQuery.merge( ret,
+					typeof arr === "string" ?
+					[ arr ] : arr
+				);
+			} else {
+				push.call( ret, arr );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, arr, i ) {
+		return arr == null ? -1 : indexOf.call( arr, elem, i );
+	},
+
+	merge: function( first, second ) {
+		var len = +second.length,
+			j = 0,
+			i = first.length;
+
+		for ( ; j < len; j++ ) {
+			first[ i++ ] = second[ j ];
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, invert ) {
+		var callbackInverse,
+			matches = [],
+			i = 0,
+			length = elems.length,
+			callbackExpect = !invert;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( ; i < length; i++ ) {
+			callbackInverse = !callback( elems[ i ], i );
+			if ( callbackInverse !== callbackExpect ) {
+				matches.push( elems[ i ] );
+			}
+		}
+
+		return matches;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var length, value,
+			i = 0,
+			ret = [];
+
+		// Go through the array, translating each of the items to their new values
+		if ( isArrayLike( elems ) ) {
+			length = elems.length;
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+
+		// Go through every key on the object,
+		} else {
+			for ( i in elems ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// Bind a function to a context, optionally partially applying any
+	// arguments.
+	proxy: function( fn, context ) {
+		var tmp, args, proxy;
+
+		if ( typeof context === "string" ) {
+			tmp = fn[ context ];
+			context = fn;
+			fn = tmp;
+		}
+
+		// Quick check to determine if target is callable, in the spec
+		// this throws a TypeError, but we will just return undefined.
+		if ( !jQuery.isFunction( fn ) ) {
+			return undefined;
+		}
+
+		// Simulated bind
+		args = slice.call( arguments, 2 );
+		proxy = function() {
+			return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+		};
+
+		// Set the guid of unique handler to the same of original handler, so it can be removed
+		proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+		return proxy;
+	},
+
+	now: Date.now,
+
+	// jQuery.support is not used in Core but other projects attach their
+	// properties to it so it needs to exist.
+	support: support
+} );
+
+// JSHint would error on this code due to the Symbol not being defined in ES5.
+// Defining this global in .jshintrc would create a danger of using the global
+// unguarded in another place, it seems safer to just disable JSHint for these
+// three lines.
+/* jshint ignore: start */
+if ( typeof Symbol === "function" ) {
+	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+/* jshint ignore: end */
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+	// Support: iOS 8.2 (not reproducible in simulator)
+	// `in` check used to prevent JIT error (gh-2145)
+	// hasOwn isn't used here due to false negatives
+	// regarding Nodelist length in IE
+	var length = !!obj && "length" in obj && obj.length,
+		type = jQuery.type( obj );
+
+	if ( type === "function" || jQuery.isWindow( obj ) ) {
+		return false;
+	}
+
+	return type === "array" || length === 0 ||
+		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.2.1
+ * http://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2015-10-17
+ */
+(function( window ) {
+
+var i,
+	support,
+	Expr,
+	getText,
+	isXML,
+	tokenize,
+	compile,
+	select,
+	outermostContext,
+	sortInput,
+	hasDuplicate,
+
+	// Local document vars
+	setDocument,
+	document,
+	docElem,
+	documentIsHTML,
+	rbuggyQSA,
+	rbuggyMatches,
+	matches,
+	contains,
+
+	// Instance-specific data
+	expando = "sizzle" + 1 * new Date(),
+	preferredDoc = window.document,
+	dirruns = 0,
+	done = 0,
+	classCache = createCache(),
+	tokenCache = createCache(),
+	compilerCache = createCache(),
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+		}
+		return 0;
+	},
+
+	// General-purpose constants
+	MAX_NEGATIVE = 1 << 31,
+
+	// Instance methods
+	hasOwn = ({}).hasOwnProperty,
+	arr = [],
+	pop = arr.pop,
+	push_native = arr.push,
+	push = arr.push,
+	slice = arr.slice,
+	// Use a stripped-down indexOf as it's faster than native
+	// http://jsperf.com/thor-indexof-vs-for/5
+	indexOf = function( list, elem ) {
+		var i = 0,
+			len = list.length;
+		for ( ; i < len; i++ ) {
+			if ( list[i] === elem ) {
+				return i;
+			}
+		}
+		return -1;
+	},
+
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+	// Regular expressions
+
+	// http://www.w3.org/TR/css3-selectors/#whitespace
+	whitespace = "[\\x20\\t\\r\\n\\f]",
+
+	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+	identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
+
+	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+		// Operator (capture 2)
+		"*([*^$|!~]?=)" + whitespace +
+		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+		"*\\]",
+
+	pseudos = ":(" + identifier + ")(?:\\((" +
+		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+		// 1. quoted (capture 3; capture 4 or capture 5)
+		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+		// 2. simple (capture 6)
+		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+		// 3. anything else (capture 2)
+		".*" +
+		")\\)|)",
+
+	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+	rwhitespace = new RegExp( whitespace + "+", "g" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+	rpseudo = new RegExp( pseudos ),
+	ridentifier = new RegExp( "^" + identifier + "$" ),
+
+	matchExpr = {
+		"ID": new RegExp( "^#(" + identifier + ")" ),
+		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
+		"ATTR": new RegExp( "^" + attributes ),
+		"PSEUDO": new RegExp( "^" + pseudos ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+		// For use in libraries implementing .is()
+		// We use this for POS matching in `select`
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+	},
+
+	rinputs = /^(?:input|select|textarea|button)$/i,
+	rheader = /^h\d$/i,
+
+	rnative = /^[^{]+\{\s*\[native \w/,
+
+	// Easily-parseable/retrievable ID or TAG or CLASS selectors
+	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+	rsibling = /[+~]/,
+	rescape = /'|\\/g,
+
+	// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+	funescape = function( _, escaped, escapedWhitespace ) {
+		var high = "0x" + escaped - 0x10000;
+		// NaN means non-codepoint
+		// Support: Firefox<24
+		// Workaround erroneous numeric interpretation of +"0x"
+		return high !== high || escapedWhitespace ?
+			escaped :
+			high < 0 ?
+				// BMP codepoint
+				String.fromCharCode( high + 0x10000 ) :
+				// Supplemental Plane codepoint (surrogate pair)
+				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+	},
+
+	// Used for iframes
+	// See setDocument()
+	// Removing the function wrapper causes a "Permission Denied"
+	// error in IE
+	unloadHandler = function() {
+		setDocument();
+	};
+
+// Optimize for push.apply( _, NodeList )
+try {
+	push.apply(
+		(arr = slice.call( preferredDoc.childNodes )),
+		preferredDoc.childNodes
+	);
+	// Support: Android<4.0
+	// Detect silently failing push.apply
+	arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+	push = { apply: arr.length ?
+
+		// Leverage slice if possible
+		function( target, els ) {
+			push_native.apply( target, slice.call(els) );
+		} :
+
+		// Support: IE<9
+		// Otherwise append directly
+		function( target, els ) {
+			var j = target.length,
+				i = 0;
+			// Can't trust NodeList.length
+			while ( (target[j++] = els[i++]) ) {}
+			target.length = j - 1;
+		}
+	};
+}
+
+function Sizzle( selector, context, results, seed ) {
+	var m, i, elem, nid, nidselect, match, groups, newSelector,
+		newContext = context && context.ownerDocument,
+
+		// nodeType defaults to 9, since context defaults to document
+		nodeType = context ? context.nodeType : 9;
+
+	results = results || [];
+
+	// Return early from calls with invalid selector or context
+	if ( typeof selector !== "string" || !selector ||
+		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+		return results;
+	}
+
+	// Try to shortcut find operations (as opposed to filters) in HTML documents
+	if ( !seed ) {
+
+		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+			setDocument( context );
+		}
+		context = context || document;
+
+		if ( documentIsHTML ) {
+
+			// If the selector is sufficiently simple, try using a "get*By*" DOM method
+			// (excepting DocumentFragment context, where the methods don't exist)
+			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+				// ID selector
+				if ( (m = match[1]) ) {
+
+					// Document context
+					if ( nodeType === 9 ) {
+						if ( (elem = context.getElementById( m )) ) {
+
+							// Support: IE, Opera, Webkit
+							// TODO: identify versions
+							// getElementById can match elements by name instead of ID
+							if ( elem.id === m ) {
+								results.push( elem );
+								return results;
+							}
+						} else {
+							return results;
+						}
+
+					// Element context
+					} else {
+
+						// Support: IE, Opera, Webkit
+						// TODO: identify versions
+						// getElementById can match elements by name instead of ID
+						if ( newContext && (elem = newContext.getElementById( m )) &&
+							contains( context, elem ) &&
+							elem.id === m ) {
+
+							results.push( elem );
+							return results;
+						}
+					}
+
+				// Type selector
+				} else if ( match[2] ) {
+					push.apply( results, context.getElementsByTagName( selector ) );
+					return results;
+
+				// Class selector
+				} else if ( (m = match[3]) && support.getElementsByClassName &&
+					context.getElementsByClassName ) {
+
+					push.apply( results, context.getElementsByClassName( m ) );
+					return results;
+				}
+			}
+
+			// Take advantage of querySelectorAll
+			if ( support.qsa &&
+				!compilerCache[ selector + " " ] &&
+				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+				if ( nodeType !== 1 ) {
+					newContext = context;
+					newSelector = selector;
+
+				// qSA looks outside Element context, which is not what we want
+				// Thanks to Andrew Dupont for this workaround technique
+				// Support: IE <=8
+				// Exclude object elements
+				} else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+					// Capture the context ID, setting it first if necessary
+					if ( (nid = context.getAttribute( "id" )) ) {
+						nid = nid.replace( rescape, "\\$&" );
+					} else {
+						context.setAttribute( "id", (nid = expando) );
+					}
+
+					// Prefix every selector in the list
+					groups = tokenize( selector );
+					i = groups.length;
+					nidselect = ridentifier.test( nid ) ? "#" + nid : "[id='" + nid + "']";
+					while ( i-- ) {
+						groups[i] = nidselect + " " + toSelector( groups[i] );
+					}
+					newSelector = groups.join( "," );
+
+					// Expand context for sibling selectors
+					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+						context;
+				}
+
+				if ( newSelector ) {
+					try {
+						push.apply( results,
+							newContext.querySelectorAll( newSelector )
+						);
+						return results;
+					} catch ( qsaError ) {
+					} finally {
+						if ( nid === expando ) {
+							context.removeAttribute( "id" );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	// All others
+	return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *	deleting the oldest entry
+ */
+function createCache() {
+	var keys = [];
+
+	function cache( key, value ) {
+		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+			// Only keep the most recent entries
+			delete cache[ keys.shift() ];
+		}
+		return (cache[ key + " " ] = value);
+	}
+	return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+	fn[ expando ] = true;
+	return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created div and expects a boolean result
+ */
+function assert( fn ) {
+	var div = document.createElement("div");
+
+	try {
+		return !!fn( div );
+	} catch (e) {
+		return false;
+	} finally {
+		// Remove from its parent by default
+		if ( div.parentNode ) {
+			div.parentNode.removeChild( div );
+		}
+		// release memory in IE
+		div = null;
+	}
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+	var arr = attrs.split("|"),
+		i = arr.length;
+
+	while ( i-- ) {
+		Expr.attrHandle[ arr[i] ] = handler;
+	}
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+	var cur = b && a,
+		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+			( ~b.sourceIndex || MAX_NEGATIVE ) -
+			( ~a.sourceIndex || MAX_NEGATIVE );
+
+	// Use IE sourceIndex if available on both nodes
+	if ( diff ) {
+		return diff;
+	}
+
+	// Check if b follows a
+	if ( cur ) {
+		while ( (cur = cur.nextSibling) ) {
+			if ( cur === b ) {
+				return -1;
+			}
+		}
+	}
+
+	return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return name === "input" && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return (name === "input" || name === "button") && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+	return markFunction(function( argument ) {
+		argument = +argument;
+		return markFunction(function( seed, matches ) {
+			var j,
+				matchIndexes = fn( [], seed.length, argument ),
+				i = matchIndexes.length;
+
+			// Match elements found at the specified indexes
+			while ( i-- ) {
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
+				}
+			}
+		});
+	});
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+	return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+	var hasCompare, parent,
+		doc = node ? node.ownerDocument || node : preferredDoc;
+
+	// Return early if doc is invalid or already selected
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+		return document;
+	}
+
+	// Update global variables
+	document = doc;
+	docElem = document.documentElement;
+	documentIsHTML = !isXML( document );
+
+	// Support: IE 9-11, Edge
+	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+	if ( (parent = document.defaultView) && parent.top !== parent ) {
+		// Support: IE 11
+		if ( parent.addEventListener ) {
+			parent.addEventListener( "unload", unloadHandler, false );
+
+		// Support: IE 9 - 10 only
+		} else if ( parent.attachEvent ) {
+			parent.attachEvent( "onunload", unloadHandler );
+		}
+	}
+
+	/* Attributes
+	---------------------------------------------------------------------- */
+
+	// Support: IE<8
+	// Verify that getAttribute really returns attributes and not properties
+	// (excepting IE8 booleans)
+	support.attributes = assert(function( div ) {
+		div.className = "i";
+		return !div.getAttribute("className");
+	});
+
+	/* getElement(s)By*
+	---------------------------------------------------------------------- */
+
+	// Check if getElementsByTagName("*") returns only elements
+	support.getElementsByTagName = assert(function( div ) {
+		div.appendChild( document.createComment("") );
+		return !div.getElementsByTagName("*").length;
+	});
+
+	// Support: IE<9
+	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+	// Support: IE<10
+	// Check if getElementById returns elements by name
+	// The broken getElementById methods don't pick up programatically-set names,
+	// so use a roundabout getElementsByName test
+	support.getById = assert(function( div ) {
+		docElem.appendChild( div ).id = expando;
+		return !document.getElementsByName || !document.getElementsByName( expando ).length;
+	});
+
+	// ID find and filter
+	if ( support.getById ) {
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var m = context.getElementById( id );
+				return m ? [ m ] : [];
+			}
+		};
+		Expr.filter["ID"] = function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				return elem.getAttribute("id") === attrId;
+			};
+		};
+	} else {
+		// Support: IE6/7
+		// getElementById is not reliable as a find shortcut
+		delete Expr.find["ID"];
+
+		Expr.filter["ID"] =  function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				var node = typeof elem.getAttributeNode !== "undefined" &&
+					elem.getAttributeNode("id");
+				return node && node.value === attrId;
+			};
+		};
+	}
+
+	// Tag
+	Expr.find["TAG"] = support.getElementsByTagName ?
+		function( tag, context ) {
+			if ( typeof context.getElementsByTagName !== "undefined" ) {
+				return context.getElementsByTagName( tag );
+
+			// DocumentFragment nodes don't have gEBTN
+			} else if ( support.qsa ) {
+				return context.querySelectorAll( tag );
+			}
+		} :
+
+		function( tag, context ) {
+			var elem,
+				tmp = [],
+				i = 0,
+				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+				results = context.getElementsByTagName( tag );
+
+			// Filter out possible comments
+			if ( tag === "*" ) {
+				while ( (elem = results[i++]) ) {
+					if ( elem.nodeType === 1 ) {
+						tmp.push( elem );
+					}
+				}
+
+				return tmp;
+			}
+			return results;
+		};
+
+	// Class
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+			return context.getElementsByClassName( className );
+		}
+	};
+
+	/* QSA/matchesSelector
+	---------------------------------------------------------------------- */
+
+	// QSA and matchesSelector support
+
+	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+	rbuggyMatches = [];
+
+	// qSa(:focus) reports false when true (Chrome 21)
+	// We allow this because of a bug in IE8/9 that throws an error
+	// whenever `document.activeElement` is accessed on an iframe
+	// So, we allow :focus to pass through QSA all the time to avoid the IE error
+	// See http://bugs.jquery.com/ticket/13378
+	rbuggyQSA = [];
+
+	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+		// Build QSA regex
+		// Regex strategy adopted from Diego Perini
+		assert(function( div ) {
+			// Select is set to empty string on purpose
+			// This is to test IE's treatment of not explicitly
+			// setting a boolean content attribute,
+			// since its presence should be enough
+			// http://bugs.jquery.com/ticket/12359
+			docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" +
+				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
+				"<option selected=''></option></select>";
+
+			// Support: IE8, Opera 11-12.16
+			// Nothing should be selected when empty strings follow ^= or $= or *=
+			// The test attribute must be unknown in Opera but "safe" for WinRT
+			// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+			if ( div.querySelectorAll("[msallowcapture^='']").length ) {
+				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+			}
+
+			// Support: IE8
+			// Boolean attributes and "value" are not treated correctly
+			if ( !div.querySelectorAll("[selected]").length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+			}
+
+			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+			if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+				rbuggyQSA.push("~=");
+			}
+
+			// Webkit/Opera - :checked should return selected option elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			// IE8 throws error here and will not see later tests
+			if ( !div.querySelectorAll(":checked").length ) {
+				rbuggyQSA.push(":checked");
+			}
+
+			// Support: Safari 8+, iOS 8+
+			// https://bugs.webkit.org/show_bug.cgi?id=136851
+			// In-page `selector#id sibing-combinator selector` fails
+			if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) {
+				rbuggyQSA.push(".#.+[+~]");
+			}
+		});
+
+		assert(function( div ) {
+			// Support: Windows 8 Native Apps
+			// The type and name attributes are restricted during .innerHTML assignment
+			var input = document.createElement("input");
+			input.setAttribute( "type", "hidden" );
+			div.appendChild( input ).setAttribute( "name", "D" );
+
+			// Support: IE8
+			// Enforce case-sensitivity of name attribute
+			if ( div.querySelectorAll("[name=d]").length ) {
+				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+			}
+
+			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+			// IE8 throws error here and will not see later tests
+			if ( !div.querySelectorAll(":enabled").length ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Opera 10-11 does not throw on post-comma invalid pseudos
+			div.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
+	}
+
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+		docElem.webkitMatchesSelector ||
+		docElem.mozMatchesSelector ||
+		docElem.oMatchesSelector ||
+		docElem.msMatchesSelector) )) ) {
+
+		assert(function( div ) {
+			// Check to see if it's possible to do matchesSelector
+			// on a disconnected node (IE 9)
+			support.disconnectedMatch = matches.call( div, "div" );
+
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( div, "[s!='']:x" );
+			rbuggyMatches.push( "!=", pseudos );
+		});
+	}
+
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+	/* Contains
+	---------------------------------------------------------------------- */
+	hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+	// Element contains another
+	// Purposefully self-exclusive
+	// As in, an element does not contain itself
+	contains = hasCompare || rnative.test( docElem.contains ) ?
+		function( a, b ) {
+			var adown = a.nodeType === 9 ? a.documentElement : a,
+				bup = b && b.parentNode;
+			return a === bup || !!( bup && bup.nodeType === 1 && (
+				adown.contains ?
+					adown.contains( bup ) :
+					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+			));
+		} :
+		function( a, b ) {
+			if ( b ) {
+				while ( (b = b.parentNode) ) {
+					if ( b === a ) {
+						return true;
+					}
+				}
+			}
+			return false;
+		};
+
+	/* Sorting
+	---------------------------------------------------------------------- */
+
+	// Document order sorting
+	sortOrder = hasCompare ?
+	function( a, b ) {
+
+		// Flag for duplicate removal
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		// Sort on method existence if only one input has compareDocumentPosition
+		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+		if ( compare ) {
+			return compare;
+		}
+
+		// Calculate position if both inputs belong to the same document
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+			a.compareDocumentPosition( b ) :
+
+			// Otherwise we know they are disconnected
+			1;
+
+		// Disconnected nodes
+		if ( compare & 1 ||
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+			// Choose the first element that is related to our preferred document
+			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+				return -1;
+			}
+			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+				return 1;
+			}
+
+			// Maintain original order
+			return sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+		}
+
+		return compare & 4 ? -1 : 1;
+	} :
+	function( a, b ) {
+		// Exit early if the nodes are identical
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var cur,
+			i = 0,
+			aup = a.parentNode,
+			bup = b.parentNode,
+			ap = [ a ],
+			bp = [ b ];
+
+		// Parentless nodes are either documents or disconnected
+		if ( !aup || !bup ) {
+			return a === document ? -1 :
+				b === document ? 1 :
+				aup ? -1 :
+				bup ? 1 :
+				sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+
+		// If the nodes are siblings, we can do a quick check
+		} else if ( aup === bup ) {
+			return siblingCheck( a, b );
+		}
+
+		// Otherwise we need full lists of their ancestors for comparison
+		cur = a;
+		while ( (cur = cur.parentNode) ) {
+			ap.unshift( cur );
+		}
+		cur = b;
+		while ( (cur = cur.parentNode) ) {
+			bp.unshift( cur );
+		}
+
+		// Walk down the tree looking for a discrepancy
+		while ( ap[i] === bp[i] ) {
+			i++;
+		}
+
+		return i ?
+			// Do a sibling check if the nodes have a common ancestor
+			siblingCheck( ap[i], bp[i] ) :
+
+			// Otherwise nodes in our document sort first
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
+			0;
+	};
+
+	return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+	return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	// Make sure that attribute selectors are quoted
+	expr = expr.replace( rattributeQuotes, "='$1']" );
+
+	if ( support.matchesSelector && documentIsHTML &&
+		!compilerCache[ expr + " " ] &&
+		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+		try {
+			var ret = matches.call( elem, expr );
+
+			// IE 9's matchesSelector returns false on disconnected nodes
+			if ( ret || support.disconnectedMatch ||
+					// As well, disconnected nodes are said to be in a document
+					// fragment in IE 9
+					elem.document && elem.document.nodeType !== 11 ) {
+				return ret;
+			}
+		} catch (e) {}
+	}
+
+	return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+	// Set document vars if needed
+	if ( ( context.ownerDocument || context ) !== document ) {
+		setDocument( context );
+	}
+	return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	var fn = Expr.attrHandle[ name.toLowerCase() ],
+		// Don't get fooled by Object.prototype properties (jQuery #13807)
+		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+			fn( elem, name, !documentIsHTML ) :
+			undefined;
+
+	return val !== undefined ?
+		val :
+		support.attributes || !documentIsHTML ?
+			elem.getAttribute( name ) :
+			(val = elem.getAttributeNode(name)) && val.specified ?
+				val.value :
+				null;
+};
+
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+	var elem,
+		duplicates = [],
+		j = 0,
+		i = 0;
+
+	// Unless we *know* we can detect duplicates, assume their presence
+	hasDuplicate = !support.detectDuplicates;
+	sortInput = !support.sortStable && results.slice( 0 );
+	results.sort( sortOrder );
+
+	if ( hasDuplicate ) {
+		while ( (elem = results[i++]) ) {
+			if ( elem === results[ i ] ) {
+				j = duplicates.push( i );
+			}
+		}
+		while ( j-- ) {
+			results.splice( duplicates[ j ], 1 );
+		}
+	}
+
+	// Clear input after sorting to release objects
+	// See https://github.com/jquery/sizzle/pull/225
+	sortInput = null;
+
+	return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+	var node,
+		ret = "",
+		i = 0,
+		nodeType = elem.nodeType;
+
+	if ( !nodeType ) {
+		// If no nodeType, this is expected to be an array
+		while ( (node = elem[i++]) ) {
+			// Do not traverse comment nodes
+			ret += getText( node );
+		}
+	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+		// Use textContent for elements
+		// innerText usage removed for consistency of new lines (jQuery #11153)
+		if ( typeof elem.textContent === "string" ) {
+			return elem.textContent;
+		} else {
+			// Traverse its children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				ret += getText( elem );
+			}
+		}
+	} else if ( nodeType === 3 || nodeType === 4 ) {
+		return elem.nodeValue;
+	}
+	// Do not include comment or processing instruction nodes
+
+	return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+	// Can be adjusted by the user
+	cacheLength: 50,
+
+	createPseudo: markFunction,
+
+	match: matchExpr,
+
+	attrHandle: {},
+
+	find: {},
+
+	relative: {
+		">": { dir: "parentNode", first: true },
+		" ": { dir: "parentNode" },
+		"+": { dir: "previousSibling", first: true },
+		"~": { dir: "previousSibling" }
+	},
+
+	preFilter: {
+		"ATTR": function( match ) {
+			match[1] = match[1].replace( runescape, funescape );
+
+			// Move the given value to match[3] whether quoted or unquoted
+			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+			if ( match[2] === "~=" ) {
+				match[3] = " " + match[3] + " ";
+			}
+
+			return match.slice( 0, 4 );
+		},
+
+		"CHILD": function( match ) {
+			/* matches from matchExpr["CHILD"]
+				1 type (only|nth|...)
+				2 what (child|of-type)
+				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+				4 xn-component of xn+y argument ([+-]?\d*n|)
+				5 sign of xn-component
+				6 x of xn-component
+				7 sign of y-component
+				8 y of y-component
+			*/
+			match[1] = match[1].toLowerCase();
+
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
+				// nth-* requires argument
+				if ( !match[3] ) {
+					Sizzle.error( match[0] );
+				}
+
+				// numeric x and y parameters for Expr.filter.CHILD
+				// remember that false/true cast respectively to 0/1
+				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
+			}
+
+			return match;
+		},
+
+		"PSEUDO": function( match ) {
+			var excess,
+				unquoted = !match[6] && match[2];
+
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
+				return null;
+			}
+
+			// Accept quoted arguments as-is
+			if ( match[3] ) {
+				match[2] = match[4] || match[5] || "";
+
+			// Strip excess characters from unquoted arguments
+			} else if ( unquoted && rpseudo.test( unquoted ) &&
+				// Get excess from tokenize (recursively)
+				(excess = tokenize( unquoted, true )) &&
+				// advance to the next closing parenthesis
+				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+				// excess is a negative index
+				match[0] = match[0].slice( 0, excess );
+				match[2] = unquoted.slice( 0, excess );
+			}
+
+			// Return only captures needed by the pseudo filter method (type and argument)
+			return match.slice( 0, 3 );
+		}
+	},
+
+	filter: {
+
+		"TAG": function( nodeNameSelector ) {
+			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+			return nodeNameSelector === "*" ?
+				function() { return true; } :
+				function( elem ) {
+					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+				};
+		},
+
+		"CLASS": function( className ) {
+			var pattern = classCache[ className + " " ];
+
+			return pattern ||
+				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+				classCache( className, function( elem ) {
+					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+				});
+		},
+
+		"ATTR": function( name, operator, check ) {
+			return function( elem ) {
+				var result = Sizzle.attr( elem, name );
+
+				if ( result == null ) {
+					return operator === "!=";
+				}
+				if ( !operator ) {
+					return true;
+				}
+
+				result += "";
+
+				return operator === "=" ? result === check :
+					operator === "!=" ? result !== check :
+					operator === "^=" ? check && result.indexOf( check ) === 0 :
+					operator === "*=" ? check && result.indexOf( check ) > -1 :
+					operator === "$=" ? check && result.slice( -check.length ) === check :
+					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+					false;
+			};
+		},
+
+		"CHILD": function( type, what, argument, first, last ) {
+			var simple = type.slice( 0, 3 ) !== "nth",
+				forward = type.slice( -4 ) !== "last",
+				ofType = what === "of-type";
+
+			return first === 1 && last === 0 ?
+
+				// Shortcut for :nth-*(n)
+				function( elem ) {
+					return !!elem.parentNode;
+				} :
+
+				function( elem, context, xml ) {
+					var cache, uniqueCache, outerCache, node, nodeIndex, start,
+						dir = simple !== forward ? "nextSibling" : "previousSibling",
+						parent = elem.parentNode,
+						name = ofType && elem.nodeName.toLowerCase(),
+						useCache = !xml && !ofType,
+						diff = false;
+
+					if ( parent ) {
+
+						// :(first|last|only)-(child|of-type)
+						if ( simple ) {
+							while ( dir ) {
+								node = elem;
+								while ( (node = node[ dir ]) ) {
+									if ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) {
+
+										return false;
+									}
+								}
+								// Reverse direction for :only-* (if we haven't yet done so)
+								start = dir = type === "only" && !start && "nextSibling";
+							}
+							return true;
+						}
+
+						start = [ forward ? parent.firstChild : parent.lastChild ];
+
+						// non-xml :nth-child(...) stores cache data on `parent`
+						if ( forward && useCache ) {
+
+							// Seek `elem` from a previously-cached index
+
+							// ...in a gzip-friendly way
+							node = parent;
+							outerCache = node[ expando ] || (node[ expando ] = {});
+
+							// Support: IE <9 only
+							// Defend against cloned attroperties (jQuery gh-1709)
+							uniqueCache = outerCache[ node.uniqueID ] ||
+								(outerCache[ node.uniqueID ] = {});
+
+							cache = uniqueCache[ type ] || [];
+							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+							diff = nodeIndex && cache[ 2 ];
+							node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+								// Fallback to seeking `elem` from the start
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								// When found, cache indexes on `parent` and break
+								if ( node.nodeType === 1 && ++diff && node === elem ) {
+									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+									break;
+								}
+							}
+
+						} else {
+							// Use previously-cached element index if available
+							if ( useCache ) {
+								// ...in a gzip-friendly way
+								node = elem;
+								outerCache = node[ expando ] || (node[ expando ] = {});
+
+								// Support: IE <9 only
+								// Defend against cloned attroperties (jQuery gh-1709)
+								uniqueCache = outerCache[ node.uniqueID ] ||
+									(outerCache[ node.uniqueID ] = {});
+
+								cache = uniqueCache[ type ] || [];
+								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+								diff = nodeIndex;
+							}
+
+							// xml :nth-child(...)
+							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
+							if ( diff === false ) {
+								// Use the same loop as above to seek `elem` from the start
+								while ( (node = ++nodeIndex && node && node[ dir ] ||
+									(diff = nodeIndex = 0) || start.pop()) ) {
+
+									if ( ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) &&
+										++diff ) {
+
+										// Cache the index of each encountered element
+										if ( useCache ) {
+											outerCache = node[ expando ] || (node[ expando ] = {});
+
+											// Support: IE <9 only
+											// Defend against cloned attroperties (jQuery gh-1709)
+											uniqueCache = outerCache[ node.uniqueID ] ||
+												(outerCache[ node.uniqueID ] = {});
+
+											uniqueCache[ type ] = [ dirruns, diff ];
+										}
+
+										if ( node === elem ) {
+											break;
+										}
+									}
+								}
+							}
+						}
+
+						// Incorporate the offset, then check against cycle size
+						diff -= last;
+						return diff === first || ( diff % first === 0 && diff / first >= 0 );
+					}
+				};
+		},
+
+		"PSEUDO": function( pseudo, argument ) {
+			// pseudo-class names are case-insensitive
+			// http://www.w3.org/TR/selectors/#pseudo-classes
+			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+			// Remember that setFilters inherits from pseudos
+			var args,
+				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+					Sizzle.error( "unsupported pseudo: " + pseudo );
+
+			// The user may use createPseudo to indicate that
+			// arguments are needed to create the filter function
+			// just as Sizzle does
+			if ( fn[ expando ] ) {
+				return fn( argument );
+			}
+
+			// But maintain support for old signatures
+			if ( fn.length > 1 ) {
+				args = [ pseudo, pseudo, "", argument ];
+				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+					markFunction(function( seed, matches ) {
+						var idx,
+							matched = fn( seed, argument ),
+							i = matched.length;
+						while ( i-- ) {
+							idx = indexOf( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
+						}
+					}) :
+					function( elem ) {
+						return fn( elem, 0, args );
+					};
+			}
+
+			return fn;
+		}
+	},
+
+	pseudos: {
+		// Potentially complex pseudos
+		"not": markFunction(function( selector ) {
+			// Trim the selector passed to compile
+			// to avoid treating leading and trailing
+			// spaces as combinators
+			var input = [],
+				results = [],
+				matcher = compile( selector.replace( rtrim, "$1" ) );
+
+			return matcher[ expando ] ?
+				markFunction(function( seed, matches, context, xml ) {
+					var elem,
+						unmatched = matcher( seed, null, xml, [] ),
+						i = seed.length;
+
+					// Match elements unmatched by `matcher`
+					while ( i-- ) {
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
+						}
+					}
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
+					matcher( input, null, xml, results );
+					// Don't keep the element (issue #299)
+					input[0] = null;
+					return !results.pop();
+				};
+		}),
+
+		"has": markFunction(function( selector ) {
+			return function( elem ) {
+				return Sizzle( selector, elem ).length > 0;
+			};
+		}),
+
+		"contains": markFunction(function( text ) {
+			text = text.replace( runescape, funescape );
+			return function( elem ) {
+				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+			};
+		}),
+
+		// "Whether an element is represented by a :lang() selector
+		// is based solely on the element's language value
+		// being equal to the identifier C,
+		// or beginning with the identifier C immediately followed by "-".
+		// The matching of C against the element's language value is performed case-insensitively.
+		// The identifier C does not have to be a valid language name."
+		// http://www.w3.org/TR/selectors/#lang-pseudo
+		"lang": markFunction( function( lang ) {
+			// lang value must be a valid identifier
+			if ( !ridentifier.test(lang || "") ) {
+				Sizzle.error( "unsupported lang: " + lang );
+			}
+			lang = lang.replace( runescape, funescape ).toLowerCase();
+			return function( elem ) {
+				var elemLang;
+				do {
+					if ( (elemLang = documentIsHTML ?
+						elem.lang :
+						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+						elemLang = elemLang.toLowerCase();
+						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+					}
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				return false;
+			};
+		}),
+
+		// Miscellaneous
+		"target": function( elem ) {
+			var hash = window.location && window.location.hash;
+			return hash && hash.slice( 1 ) === elem.id;
+		},
+
+		"root": function( elem ) {
+			return elem === docElem;
+		},
+
+		"focus": function( elem ) {
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+		},
+
+		// Boolean properties
+		"enabled": function( elem ) {
+			return elem.disabled === false;
+		},
+
+		"disabled": function( elem ) {
+			return elem.disabled === true;
+		},
+
+		"checked": function( elem ) {
+			// In CSS3, :checked should return both checked and selected elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			var nodeName = elem.nodeName.toLowerCase();
+			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+		},
+
+		"selected": function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		// Contents
+		"empty": function( elem ) {
+			// http://www.w3.org/TR/selectors/#empty-pseudo
+			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+			//   but not by others (comment: 8; processing instruction: 7; etc.)
+			// nodeType < 6 works because attributes (2) do not appear as children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				if ( elem.nodeType < 6 ) {
+					return false;
+				}
+			}
+			return true;
+		},
+
+		"parent": function( elem ) {
+			return !Expr.pseudos["empty"]( elem );
+		},
+
+		// Element/input types
+		"header": function( elem ) {
+			return rheader.test( elem.nodeName );
+		},
+
+		"input": function( elem ) {
+			return rinputs.test( elem.nodeName );
+		},
+
+		"button": function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && elem.type === "button" || name === "button";
+		},
+
+		"text": function( elem ) {
+			var attr;
+			return elem.nodeName.toLowerCase() === "input" &&
+				elem.type === "text" &&
+
+				// Support: IE<8
+				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+		},
+
+		// Position-in-collection
+		"first": createPositionalPseudo(function() {
+			return [ 0 ];
+		}),
+
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
+			return [ length - 1 ];
+		}),
+
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			return [ argument < 0 ? argument + length : argument ];
+		}),
+
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 0;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 1;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; --i >= 0; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; ++i < length; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		})
+	}
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+	Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+	Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+	var matched, match, tokens, type,
+		soFar, groups, preFilters,
+		cached = tokenCache[ selector + " " ];
+
+	if ( cached ) {
+		return parseOnly ? 0 : cached.slice( 0 );
+	}
+
+	soFar = selector;
+	groups = [];
+	preFilters = Expr.preFilter;
+
+	while ( soFar ) {
+
+		// Comma and first run
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
+			if ( match ) {
+				// Don't consume trailing commas as valid
+				soFar = soFar.slice( match[0].length ) || soFar;
+			}
+			groups.push( (tokens = []) );
+		}
+
+		matched = false;
+
+		// Combinators
+		if ( (match = rcombinators.exec( soFar )) ) {
+			matched = match.shift();
+			tokens.push({
+				value: matched,
+				// Cast descendant combinators to space
+				type: match[0].replace( rtrim, " " )
+			});
+			soFar = soFar.slice( matched.length );
+		}
+
+		// Filters
+		for ( type in Expr.filter ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
+				matched = match.shift();
+				tokens.push({
+					value: matched,
+					type: type,
+					matches: match
+				});
+				soFar = soFar.slice( matched.length );
+			}
+		}
+
+		if ( !matched ) {
+			break;
+		}
+	}
+
+	// Return the length of the invalid excess
+	// if we're just parsing
+	// Otherwise, throw an error or return tokens
+	return parseOnly ?
+		soFar.length :
+		soFar ?
+			Sizzle.error( selector ) :
+			// Cache the tokens
+			tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+	var i = 0,
+		len = tokens.length,
+		selector = "";
+	for ( ; i < len; i++ ) {
+		selector += tokens[i].value;
+	}
+	return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+	var dir = combinator.dir,
+		checkNonElements = base && dir === "parentNode",
+		doneName = done++;
+
+	return combinator.first ?
+		// Check against closest ancestor/preceding element
+		function( elem, context, xml ) {
+			while ( (elem = elem[ dir ]) ) {
+				if ( elem.nodeType === 1 || checkNonElements ) {
+					return matcher( elem, context, xml );
+				}
+			}
+		} :
+
+		// Check against all ancestor/preceding elements
+		function( elem, context, xml ) {
+			var oldCache, uniqueCache, outerCache,
+				newCache = [ dirruns, doneName ];
+
+			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+			if ( xml ) {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						if ( matcher( elem, context, xml ) ) {
+							return true;
+						}
+					}
+				}
+			} else {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+						// Support: IE <9 only
+						// Defend against cloned attroperties (jQuery gh-1709)
+						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+						if ( (oldCache = uniqueCache[ dir ]) &&
+							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+							// Assign to newCache so results back-propagate to previous elements
+							return (newCache[ 2 ] = oldCache[ 2 ]);
+						} else {
+							// Reuse newcache so results back-propagate to previous elements
+							uniqueCache[ dir ] = newCache;
+
+							// A match means we're done; a fail means we have to keep checking
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+								return true;
+							}
+						}
+					}
+				}
+			}
+		};
+}
+
+function elementMatcher( matchers ) {
+	return matchers.length > 1 ?
+		function( elem, context, xml ) {
+			var i = matchers.length;
+			while ( i-- ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
+					return false;
+				}
+			}
+			return true;
+		} :
+		matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+	var i = 0,
+		len = contexts.length;
+	for ( ; i < len; i++ ) {
+		Sizzle( selector, contexts[i], results );
+	}
+	return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+	var elem,
+		newUnmatched = [],
+		i = 0,
+		len = unmatched.length,
+		mapped = map != null;
+
+	for ( ; i < len; i++ ) {
+		if ( (elem = unmatched[i]) ) {
+			if ( !filter || filter( elem, context, xml ) ) {
+				newUnmatched.push( elem );
+				if ( mapped ) {
+					map.push( i );
+				}
+			}
+		}
+	}
+
+	return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+	if ( postFilter && !postFilter[ expando ] ) {
+		postFilter = setMatcher( postFilter );
+	}
+	if ( postFinder && !postFinder[ expando ] ) {
+		postFinder = setMatcher( postFinder, postSelector );
+	}
+	return markFunction(function( seed, results, context, xml ) {
+		var temp, i, elem,
+			preMap = [],
+			postMap = [],
+			preexisting = results.length,
+
+			// Get initial elements from seed or context
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+			// Prefilter to get matcher input, preserving a map for seed-results synchronization
+			matcherIn = preFilter && ( seed || !selector ) ?
+				condense( elems, preMap, preFilter, context, xml ) :
+				elems,
+
+			matcherOut = matcher ?
+				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+					// ...intermediate processing is necessary
+					[] :
+
+					// ...otherwise use results directly
+					results :
+				matcherIn;
+
+		// Find primary matches
+		if ( matcher ) {
+			matcher( matcherIn, matcherOut, context, xml );
+		}
+
+		// Apply postFilter
+		if ( postFilter ) {
+			temp = condense( matcherOut, postMap );
+			postFilter( temp, [], context, xml );
+
+			// Un-match failing elements by moving them back to matcherIn
+			i = temp.length;
+			while ( i-- ) {
+				if ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				}
+			}
+		}
+
+		if ( seed ) {
+			if ( postFinder || preFilter ) {
+				if ( postFinder ) {
+					// Get the final matcherOut by condensing this intermediate into postFinder contexts
+					temp = [];
+					i = matcherOut.length;
+					while ( i-- ) {
+						if ( (elem = matcherOut[i]) ) {
+							// Restore matcherIn since elem is not yet a final match
+							temp.push( (matcherIn[i] = elem) );
+						}
+					}
+					postFinder( null, (matcherOut = []), temp, xml );
+				}
+
+				// Move matched elements from seed to results to keep them synchronized
+				i = matcherOut.length;
+				while ( i-- ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+						seed[temp] = !(results[temp] = elem);
+					}
+				}
+			}
+
+		// Add elements to results, through postFinder if defined
+		} else {
+			matcherOut = condense(
+				matcherOut === results ?
+					matcherOut.splice( preexisting, matcherOut.length ) :
+					matcherOut
+			);
+			if ( postFinder ) {
+				postFinder( null, results, matcherOut, xml );
+			} else {
+				push.apply( results, matcherOut );
+			}
+		}
+	});
+}
+
+function matcherFromTokens( tokens ) {
+	var checkContext, matcher, j,
+		len = tokens.length,
+		leadingRelative = Expr.relative[ tokens[0].type ],
+		implicitRelative = leadingRelative || Expr.relative[" "],
+		i = leadingRelative ? 1 : 0,
+
+		// The foundational matcher ensures that elements are reachable from top-level context(s)
+		matchContext = addCombinator( function( elem ) {
+			return elem === checkContext;
+		}, implicitRelative, true ),
+		matchAnyContext = addCombinator( function( elem ) {
+			return indexOf( checkContext, elem ) > -1;
+		}, implicitRelative, true ),
+		matchers = [ function( elem, context, xml ) {
+			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+				(checkContext = context).nodeType ?
+					matchContext( elem, context, xml ) :
+					matchAnyContext( elem, context, xml ) );
+			// Avoid hanging onto element (issue #299)
+			checkContext = null;
+			return ret;
+		} ];
+
+	for ( ; i < len; i++ ) {
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		} else {
+			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+			// Return special upon seeing a positional matcher
+			if ( matcher[ expando ] ) {
+				// Find the next relative operator (if any) for proper handling
+				j = ++i;
+				for ( ; j < len; j++ ) {
+					if ( Expr.relative[ tokens[j].type ] ) {
+						break;
+					}
+				}
+				return setMatcher(
+					i > 1 && elementMatcher( matchers ),
+					i > 1 && toSelector(
+						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+					).replace( rtrim, "$1" ),
+					matcher,
+					i < j && matcherFromTokens( tokens.slice( i, j ) ),
+					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && toSelector( tokens )
+				);
+			}
+			matchers.push( matcher );
+		}
+	}
+
+	return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+	var bySet = setMatchers.length > 0,
+		byElement = elementMatchers.length > 0,
+		superMatcher = function( seed, context, xml, results, outermost ) {
+			var elem, j, matcher,
+				matchedCount = 0,
+				i = "0",
+				unmatched = seed && [],
+				setMatched = [],
+				contextBackup = outermostContext,
+				// We must always have either seed elements or outermost context
+				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				// Use integer dirruns iff this is the outermost matcher
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				len = elems.length;
+
+			if ( outermost ) {
+				outermostContext = context === document || context || outermost;
+			}
+
+			// Add elements passing elementMatchers directly to results
+			// Support: IE<9, Safari
+			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+				if ( byElement && elem ) {
+					j = 0;
+					if ( !context && elem.ownerDocument !== document ) {
+						setDocument( elem );
+						xml = !documentIsHTML;
+					}
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context || document, xml) ) {
+							results.push( elem );
+							break;
+						}
+					}
+					if ( outermost ) {
+						dirruns = dirrunsUnique;
+					}
+				}
+
+				// Track unmatched elements for set filters
+				if ( bySet ) {
+					// They will have gone through all possible matchers
+					if ( (elem = !matcher && elem) ) {
+						matchedCount--;
+					}
+
+					// Lengthen the array for every element, matched or not
+					if ( seed ) {
+						unmatched.push( elem );
+					}
+				}
+			}
+
+			// `i` is now the count of elements visited above, and adding it to `matchedCount`
+			// makes the latter nonnegative.
+			matchedCount += i;
+
+			// Apply set filters to unmatched elements
+			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+			// no element matchers and no seed.
+			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
+			// numerically zero.
+			if ( bySet && i !== matchedCount ) {
+				j = 0;
+				while ( (matcher = setMatchers[j++]) ) {
+					matcher( unmatched, setMatched, context, xml );
+				}
+
+				if ( seed ) {
+					// Reintegrate element matches to eliminate the need for sorting
+					if ( matchedCount > 0 ) {
+						while ( i-- ) {
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
+							}
+						}
+					}
+
+					// Discard index placeholder values to get only actual matches
+					setMatched = condense( setMatched );
+				}
+
+				// Add matches to results
+				push.apply( results, setMatched );
+
+				// Seedless set matches succeeding multiple successful matchers stipulate sorting
+				if ( outermost && !seed && setMatched.length > 0 &&
+					( matchedCount + setMatchers.length ) > 1 ) {
+
+					Sizzle.uniqueSort( results );
+				}
+			}
+
+			// Override manipulation of globals by nested matchers
+			if ( outermost ) {
+				dirruns = dirrunsUnique;
+				outermostContext = contextBackup;
+			}
+
+			return unmatched;
+		};
+
+	return bySet ?
+		markFunction( superMatcher ) :
+		superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+	var i,
+		setMatchers = [],
+		elementMatchers = [],
+		cached = compilerCache[ selector + " " ];
+
+	if ( !cached ) {
+		// Generate a function of recursive functions that can be used to check each element
+		if ( !match ) {
+			match = tokenize( selector );
+		}
+		i = match.length;
+		while ( i-- ) {
+			cached = matcherFromTokens( match[i] );
+			if ( cached[ expando ] ) {
+				setMatchers.push( cached );
+			} else {
+				elementMatchers.push( cached );
+			}
+		}
+
+		// Cache the compiled function
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+		// Save selector and tokenization
+		cached.selector = selector;
+	}
+	return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ *  selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ *  selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+	var i, tokens, token, type, find,
+		compiled = typeof selector === "function" && selector,
+		match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+	results = results || [];
+
+	// Try to minimize operations if there is only one selector in the list and no seed
+	// (the latter of which guarantees us context)
+	if ( match.length === 1 ) {
+
+		// Reduce context if the leading compound selector is an ID
+		tokens = match[0] = match[0].slice( 0 );
+		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+				support.getById && context.nodeType === 9 && documentIsHTML &&
+				Expr.relative[ tokens[1].type ] ) {
+
+			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+			if ( !context ) {
+				return results;
+
+			// Precompiled matchers will still verify ancestry, so step up a level
+			} else if ( compiled ) {
+				context = context.parentNode;
+			}
+
+			selector = selector.slice( tokens.shift().value.length );
+		}
+
+		// Fetch a seed set for right-to-left matching
+		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+		while ( i-- ) {
+			token = tokens[i];
+
+			// Abort if we hit a combinator
+			if ( Expr.relative[ (type = token.type) ] ) {
+				break;
+			}
+			if ( (find = Expr.find[ type ]) ) {
+				// Search, expanding context for leading sibling combinators
+				if ( (seed = find(
+					token.matches[0].replace( runescape, funescape ),
+					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+				)) ) {
+
+					// If seed is empty or no tokens remain, we can return early
+					tokens.splice( i, 1 );
+					selector = seed.length && toSelector( tokens );
+					if ( !selector ) {
+						push.apply( results, seed );
+						return results;
+					}
+
+					break;
+				}
+			}
+		}
+	}
+
+	// Compile and execute a filtering function if one is not provided
+	// Provide `match` to avoid retokenization if we modified the selector above
+	( compiled || compile( selector, match ) )(
+		seed,
+		context,
+		!documentIsHTML,
+		results,
+		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+	);
+	return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( div1 ) {
+	// Should return 1, but returns 4 (following)
+	return div1.compareDocumentPosition( document.createElement("div") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( div ) {
+	div.innerHTML = "<a href='#'></a>";
+	return div.firstChild.getAttribute("href") === "#" ;
+}) ) {
+	addHandle( "type|href|height|width", function( elem, name, isXML ) {
+		if ( !isXML ) {
+			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+		}
+	});
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( div ) {
+	div.innerHTML = "<input/>";
+	div.firstChild.setAttribute( "value", "" );
+	return div.firstChild.getAttribute( "value" ) === "";
+}) ) {
+	addHandle( "value", function( elem, name, isXML ) {
+		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+			return elem.defaultValue;
+		}
+	});
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( div ) {
+	return div.getAttribute("disabled") == null;
+}) ) {
+	addHandle( booleans, function( elem, name, isXML ) {
+		var val;
+		if ( !isXML ) {
+			return elem[ name ] === true ? name.toLowerCase() :
+					(val = elem.getAttributeNode( name )) && val.specified ?
+					val.value :
+				null;
+		}
+	});
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+
+
+
+var dir = function( elem, dir, until ) {
+	var matched = [],
+		truncate = until !== undefined;
+
+	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+		if ( elem.nodeType === 1 ) {
+			if ( truncate && jQuery( elem ).is( until ) ) {
+				break;
+			}
+			matched.push( elem );
+		}
+	}
+	return matched;
+};
+
+
+var siblings = function( n, elem ) {
+	var matched = [];
+
+	for ( ; n; n = n.nextSibling ) {
+		if ( n.nodeType === 1 && n !== elem ) {
+			matched.push( n );
+		}
+	}
+
+	return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+var rsingleTag = ( /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ );
+
+
+
+var risSimple = /^.[^:#\[\.,]*$/;
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+	if ( jQuery.isFunction( qualifier ) ) {
+		return jQuery.grep( elements, function( elem, i ) {
+			/* jshint -W018 */
+			return !!qualifier.call( elem, i, elem ) !== not;
+		} );
+
+	}
+
+	if ( qualifier.nodeType ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( elem === qualifier ) !== not;
+		} );
+
+	}
+
+	if ( typeof qualifier === "string" ) {
+		if ( risSimple.test( qualifier ) ) {
+			return jQuery.filter( qualifier, elements, not );
+		}
+
+		qualifier = jQuery.filter( qualifier, elements );
+	}
+
+	return jQuery.grep( elements, function( elem ) {
+		return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+	} );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+	var elem = elems[ 0 ];
+
+	if ( not ) {
+		expr = ":not(" + expr + ")";
+	}
+
+	return elems.length === 1 && elem.nodeType === 1 ?
+		jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
+		jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+			return elem.nodeType === 1;
+		} ) );
+};
+
+jQuery.fn.extend( {
+	find: function( selector ) {
+		var i,
+			len = this.length,
+			ret = [],
+			self = this;
+
+		if ( typeof selector !== "string" ) {
+			return this.pushStack( jQuery( selector ).filter( function() {
+				for ( i = 0; i < len; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			} ) );
+		}
+
+		for ( i = 0; i < len; i++ ) {
+			jQuery.find( selector, self[ i ], ret );
+		}
+
+		// Needed because $( selector, context ) becomes $( context ).find( selector )
+		ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
+		ret.selector = this.selector ? this.selector + " " + selector : selector;
+		return ret;
+	},
+	filter: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], false ) );
+	},
+	not: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], true ) );
+	},
+	is: function( selector ) {
+		return !!winnow(
+			this,
+
+			// If this is a positional/relative selector, check membership in the returned set
+			// so $("p:first").is("p:last") won't return true for a doc with two "p".
+			typeof selector === "string" && rneedsContext.test( selector ) ?
+				jQuery( selector ) :
+				selector || [],
+			false
+		).length;
+	}
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+	// A simple way to check for HTML strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	// Strict HTML recognition (#11290: must start with <)
+	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
+
+	init = jQuery.fn.init = function( selector, context, root ) {
+		var match, elem;
+
+		// HANDLE: $(""), $(null), $(undefined), $(false)
+		if ( !selector ) {
+			return this;
+		}
+
+		// Method init() accepts an alternate rootjQuery
+		// so migrate can support jQuery.sub (gh-2101)
+		root = root || rootjQuery;
+
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			if ( selector[ 0 ] === "<" &&
+				selector[ selector.length - 1 ] === ">" &&
+				selector.length >= 3 ) {
+
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
+
+			} else {
+				match = rquickExpr.exec( selector );
+			}
+
+			// Match html or make sure no context is specified for #id
+			if ( match && ( match[ 1 ] || !context ) ) {
+
+				// HANDLE: $(html) -> $(array)
+				if ( match[ 1 ] ) {
+					context = context instanceof jQuery ? context[ 0 ] : context;
+
+					// Option to run scripts is true for back-compat
+					// Intentionally let the error be thrown if parseHTML is not present
+					jQuery.merge( this, jQuery.parseHTML(
+						match[ 1 ],
+						context && context.nodeType ? context.ownerDocument || context : document,
+						true
+					) );
+
+					// HANDLE: $(html, props)
+					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+						for ( match in context ) {
+
+							// Properties of context are called as methods if possible
+							if ( jQuery.isFunction( this[ match ] ) ) {
+								this[ match ]( context[ match ] );
+
+							// ...and otherwise set as attributes
+							} else {
+								this.attr( match, context[ match ] );
+							}
+						}
+					}
+
+					return this;
+
+				// HANDLE: $(#id)
+				} else {
+					elem = document.getElementById( match[ 2 ] );
+
+					// Support: Blackberry 4.6
+					// gEBID returns nodes no longer in the document (#6963)
+					if ( elem && elem.parentNode ) {
+
+						// Inject the element directly into the jQuery object
+						this.length = 1;
+						this[ 0 ] = elem;
+					}
+
+					this.context = document;
+					this.selector = selector;
+					return this;
+				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || root ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
+			}
+
+		// HANDLE: $(DOMElement)
+		} else if ( selector.nodeType ) {
+			this.context = this[ 0 ] = selector;
+			this.length = 1;
+			return this;
+
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( jQuery.isFunction( selector ) ) {
+			return root.ready !== undefined ?
+				root.ready( selector ) :
+
+				// Execute immediately if ready is not present
+				selector( jQuery );
+		}
+
+		if ( selector.selector !== undefined ) {
+			this.selector = selector.selector;
+			this.context = selector.context;
+		}
+
+		return jQuery.makeArray( selector, this );
+	};
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+	// Methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.fn.extend( {
+	has: function( target ) {
+		var targets = jQuery( target, this ),
+			l = targets.length;
+
+		return this.filter( function() {
+			var i = 0;
+			for ( ; i < l; i++ ) {
+				if ( jQuery.contains( this, targets[ i ] ) ) {
+					return true;
+				}
+			}
+		} );
+	},
+
+	closest: function( selectors, context ) {
+		var cur,
+			i = 0,
+			l = this.length,
+			matched = [],
+			pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
+				jQuery( selectors, context || this.context ) :
+				0;
+
+		for ( ; i < l; i++ ) {
+			for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+				// Always skip document fragments
+				if ( cur.nodeType < 11 && ( pos ?
+					pos.index( cur ) > -1 :
+
+					// Don't pass non-elements to Sizzle
+					cur.nodeType === 1 &&
+						jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+					matched.push( cur );
+					break;
+				}
+			}
+		}
+
+		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+	},
+
+	// Determine the position of an element within the set
+	index: function( elem ) {
+
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+		}
+
+		// Index in selector
+		if ( typeof elem === "string" ) {
+			return indexOf.call( jQuery( elem ), this[ 0 ] );
+		}
+
+		// Locate the position of the desired element
+		return indexOf.call( this,
+
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[ 0 ] : elem
+		);
+	},
+
+	add: function( selector, context ) {
+		return this.pushStack(
+			jQuery.uniqueSort(
+				jQuery.merge( this.get(), jQuery( selector, context ) )
+			)
+		);
+	},
+
+	addBack: function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	}
+} );
+
+function sibling( cur, dir ) {
+	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+	return cur;
+}
+
+jQuery.each( {
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return sibling( elem, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return sibling( elem, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return siblings( ( elem.parentNode || {} ).firstChild, elem );
+	},
+	children: function( elem ) {
+		return siblings( elem.firstChild );
+	},
+	contents: function( elem ) {
+		return elem.contentDocument || jQuery.merge( [], elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var matched = jQuery.map( this, fn, until );
+
+		if ( name.slice( -5 ) !== "Until" ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			matched = jQuery.filter( selector, matched );
+		}
+
+		if ( this.length > 1 ) {
+
+			// Remove duplicates
+			if ( !guaranteedUnique[ name ] ) {
+				jQuery.uniqueSort( matched );
+			}
+
+			// Reverse order for parents* and prev-derivatives
+			if ( rparentsprev.test( name ) ) {
+				matched.reverse();
+			}
+		}
+
+		return this.pushStack( matched );
+	};
+} );
+var rnotwhite = ( /\S+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+	var object = {};
+	jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
+		object[ flag ] = true;
+	} );
+	return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	options: an optional list of space-separated options that will change how
+ *			the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+	// Convert options from String-formatted to Object-formatted if needed
+	// (we check in cache first)
+	options = typeof options === "string" ?
+		createOptions( options ) :
+		jQuery.extend( {}, options );
+
+	var // Flag to know if list is currently firing
+		firing,
+
+		// Last fire value for non-forgettable lists
+		memory,
+
+		// Flag to know if list was already fired
+		fired,
+
+		// Flag to prevent firing
+		locked,
+
+		// Actual callback list
+		list = [],
+
+		// Queue of execution data for repeatable lists
+		queue = [],
+
+		// Index of currently firing callback (modified by add/remove as needed)
+		firingIndex = -1,
+
+		// Fire callbacks
+		fire = function() {
+
+			// Enforce single-firing
+			locked = options.once;
+
+			// Execute callbacks for all pending executions,
+			// respecting firingIndex overrides and runtime changes
+			fired = firing = true;
+			for ( ; queue.length; firingIndex = -1 ) {
+				memory = queue.shift();
+				while ( ++firingIndex < list.length ) {
+
+					// Run callback and check for early termination
+					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+						options.stopOnFalse ) {
+
+						// Jump to end and forget the data so .add doesn't re-fire
+						firingIndex = list.length;
+						memory = false;
+					}
+				}
+			}
+
+			// Forget the data if we're done with it
+			if ( !options.memory ) {
+				memory = false;
+			}
+
+			firing = false;
+
+			// Clean up if we're done firing for good
+			if ( locked ) {
+
+				// Keep an empty list if we have data for future add calls
+				if ( memory ) {
+					list = [];
+
+				// Otherwise, this object is spent
+				} else {
+					list = "";
+				}
+			}
+		},
+
+		// Actual Callbacks object
+		self = {
+
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+
+					// If we have memory from a past run, we should fire after adding
+					if ( memory && !firing ) {
+						firingIndex = list.length - 1;
+						queue.push( memory );
+					}
+
+					( function add( args ) {
+						jQuery.each( args, function( _, arg ) {
+							if ( jQuery.isFunction( arg ) ) {
+								if ( !options.unique || !self.has( arg ) ) {
+									list.push( arg );
+								}
+							} else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
+
+								// Inspect recursively
+								add( arg );
+							}
+						} );
+					} )( arguments );
+
+					if ( memory && !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Remove a callback from the list
+			remove: function() {
+				jQuery.each( arguments, function( _, arg ) {
+					var index;
+					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+						list.splice( index, 1 );
+
+						// Handle firing indexes
+						if ( index <= firingIndex ) {
+							firingIndex--;
+						}
+					}
+				} );
+				return this;
+			},
+
+			// Check if a given callback is in the list.
+			// If no argument is given, return whether or not list has callbacks attached.
+			has: function( fn ) {
+				return fn ?
+					jQuery.inArray( fn, list ) > -1 :
+					list.length > 0;
+			},
+
+			// Remove all callbacks from the list
+			empty: function() {
+				if ( list ) {
+					list = [];
+				}
+				return this;
+			},
+
+			// Disable .fire and .add
+			// Abort any current/pending executions
+			// Clear all callbacks and values
+			disable: function() {
+				locked = queue = [];
+				list = memory = "";
+				return this;
+			},
+			disabled: function() {
+				return !list;
+			},
+
+			// Disable .fire
+			// Also disable .add unless we have memory (since it would have no effect)
+			// Abort any pending executions
+			lock: function() {
+				locked = queue = [];
+				if ( !memory ) {
+					list = memory = "";
+				}
+				return this;
+			},
+			locked: function() {
+				return !!locked;
+			},
+
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( !locked ) {
+					args = args || [];
+					args = [ context, args.slice ? args.slice() : args ];
+					queue.push( args );
+					if ( !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!fired;
+			}
+		};
+
+	return self;
+};
+
+
+jQuery.extend( {
+
+	Deferred: function( func ) {
+		var tuples = [
+
+				// action, add listener, listener list, final state
+				[ "resolve", "done", jQuery.Callbacks( "once memory" ), "resolved" ],
+				[ "reject", "fail", jQuery.Callbacks( "once memory" ), "rejected" ],
+				[ "notify", "progress", jQuery.Callbacks( "memory" ) ]
+			],
+			state = "pending",
+			promise = {
+				state: function() {
+					return state;
+				},
+				always: function() {
+					deferred.done( arguments ).fail( arguments );
+					return this;
+				},
+				then: function( /* fnDone, fnFail, fnProgress */ ) {
+					var fns = arguments;
+					return jQuery.Deferred( function( newDefer ) {
+						jQuery.each( tuples, function( i, tuple ) {
+							var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
+
+							// deferred[ done | fail | progress ] for forwarding actions to newDefer
+							deferred[ tuple[ 1 ] ]( function() {
+								var returned = fn && fn.apply( this, arguments );
+								if ( returned && jQuery.isFunction( returned.promise ) ) {
+									returned.promise()
+										.progress( newDefer.notify )
+										.done( newDefer.resolve )
+										.fail( newDefer.reject );
+								} else {
+									newDefer[ tuple[ 0 ] + "With" ](
+										this === promise ? newDefer.promise() : this,
+										fn ? [ returned ] : arguments
+									);
+								}
+							} );
+						} );
+						fns = null;
+					} ).promise();
+				},
+
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					return obj != null ? jQuery.extend( obj, promise ) : promise;
+				}
+			},
+			deferred = {};
+
+		// Keep pipe for back-compat
+		promise.pipe = promise.then;
+
+		// Add list-specific methods
+		jQuery.each( tuples, function( i, tuple ) {
+			var list = tuple[ 2 ],
+				stateString = tuple[ 3 ];
+
+			// promise[ done | fail | progress ] = list.add
+			promise[ tuple[ 1 ] ] = list.add;
+
+			// Handle state
+			if ( stateString ) {
+				list.add( function() {
+
+					// state = [ resolved | rejected ]
+					state = stateString;
+
+				// [ reject_list | resolve_list ].disable; progress_list.lock
+				}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
+			}
+
+			// deferred[ resolve | reject | notify ]
+			deferred[ tuple[ 0 ] ] = function() {
+				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? promise : this, arguments );
+				return this;
+			};
+			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+		} );
+
+		// Make the deferred a promise
+		promise.promise( deferred );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
+		}
+
+		// All done!
+		return deferred;
+	},
+
+	// Deferred helper
+	when: function( subordinate /* , ..., subordinateN */ ) {
+		var i = 0,
+			resolveValues = slice.call( arguments ),
+			length = resolveValues.length,
+
+			// the count of uncompleted subordinates
+			remaining = length !== 1 ||
+				( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
+
+			// the master Deferred.
+			// If resolveValues consist of only a single Deferred, just use that.
+			deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
+
+			// Update function for both resolve and progress values
+			updateFunc = function( i, contexts, values ) {
+				return function( value ) {
+					contexts[ i ] = this;
+					values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+					if ( values === progressValues ) {
+						deferred.notifyWith( contexts, values );
+					} else if ( !( --remaining ) ) {
+						deferred.resolveWith( contexts, values );
+					}
+				};
+			},
+
+			progressValues, progressContexts, resolveContexts;
+
+		// Add listeners to Deferred subordinates; treat others as resolved
+		if ( length > 1 ) {
+			progressValues = new Array( length );
+			progressContexts = new Array( length );
+			resolveContexts = new Array( length );
+			for ( ; i < length; i++ ) {
+				if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
+					resolveValues[ i ].promise()
+						.progress( updateFunc( i, progressContexts, progressValues ) )
+						.done( updateFunc( i, resolveContexts, resolveValues ) )
+						.fail( deferred.reject );
+				} else {
+					--remaining;
+				}
+			}
+		}
+
+		// If we're not waiting on anything, resolve the master
+		if ( !remaining ) {
+			deferred.resolveWith( resolveContexts, resolveValues );
+		}
+
+		return deferred.promise();
+	}
+} );
+
+
+// The deferred used on DOM ready
+var readyList;
+
+jQuery.fn.ready = function( fn ) {
+
+	// Add the callback
+	jQuery.ready.promise().done( fn );
+
+	return this;
+};
+
+jQuery.extend( {
+
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Hold (or release) the ready event
+	holdReady: function( hold ) {
+		if ( hold ) {
+			jQuery.readyWait++;
+		} else {
+			jQuery.ready( true );
+		}
+	},
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+
+		// Abort if there are pending holds or we're already ready
+		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+			return;
+		}
+
+		// Remember that the DOM is ready
+		jQuery.isReady = true;
+
+		// If a normal DOM Ready event fired, decrement, and wait if need be
+		if ( wait !== true && --jQuery.readyWait > 0 ) {
+			return;
+		}
+
+		// If there are functions bound, to execute
+		readyList.resolveWith( document, [ jQuery ] );
+
+		// Trigger any bound ready events
+		if ( jQuery.fn.triggerHandler ) {
+			jQuery( document ).triggerHandler( "ready" );
+			jQuery( document ).off( "ready" );
+		}
+	}
+} );
+
+/**
+ * The ready event handler and self cleanup method
+ */
+function completed() {
+	document.removeEventListener( "DOMContentLoaded", completed );
+	window.removeEventListener( "load", completed );
+	jQuery.ready();
+}
+
+jQuery.ready.promise = function( obj ) {
+	if ( !readyList ) {
+
+		readyList = jQuery.Deferred();
+
+		// Catch cases where $(document).ready() is called
+		// after the browser event has already occurred.
+		// Support: IE9-10 only
+		// Older IE sometimes signals "interactive" too soon
+		if ( document.readyState === "complete" ||
+			( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+			// Handle it asynchronously to allow scripts the opportunity to delay ready
+			window.setTimeout( jQuery.ready );
+
+		} else {
+
+			// Use the handy event callback
+			document.addEventListener( "DOMContentLoaded", completed );
+
+			// A fallback to window.onload, that will always work
+			window.addEventListener( "load", completed );
+		}
+	}
+	return readyList.promise( obj );
+};
+
+// Kick off the DOM ready check even if the user does not
+jQuery.ready.promise();
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+	var i = 0,
+		len = elems.length,
+		bulk = key == null;
+
+	// Sets many values
+	if ( jQuery.type( key ) === "object" ) {
+		chainable = true;
+		for ( i in key ) {
+			access( elems, fn, i, key[ i ], true, emptyGet, raw );
+		}
+
+	// Sets one value
+	} else if ( value !== undefined ) {
+		chainable = true;
+
+		if ( !jQuery.isFunction( value ) ) {
+			raw = true;
+		}
+
+		if ( bulk ) {
+
+			// Bulk operations run against the entire set
+			if ( raw ) {
+				fn.call( elems, value );
+				fn = null;
+
+			// ...except when executing function values
+			} else {
+				bulk = fn;
+				fn = function( elem, key, value ) {
+					return bulk.call( jQuery( elem ), value );
+				};
+			}
+		}
+
+		if ( fn ) {
+			for ( ; i < len; i++ ) {
+				fn(
+					elems[ i ], key, raw ?
+					value :
+					value.call( elems[ i ], i, fn( elems[ i ], key ) )
+				);
+			}
+		}
+	}
+
+	return chainable ?
+		elems :
+
+		// Gets
+		bulk ?
+			fn.call( elems ) :
+			len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+var acceptData = function( owner ) {
+
+	// Accepts only:
+	//  - Node
+	//    - Node.ELEMENT_NODE
+	//    - Node.DOCUMENT_NODE
+	//  - Object
+	//    - Any
+	/* jshint -W018 */
+	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+	this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+	register: function( owner, initial ) {
+		var value = initial || {};
+
+		// If it is a node unlikely to be stringify-ed or looped over
+		// use plain assignment
+		if ( owner.nodeType ) {
+			owner[ this.expando ] = value;
+
+		// Otherwise secure it in a non-enumerable, non-writable property
+		// configurability must be true to allow the property to be
+		// deleted with the delete operator
+		} else {
+			Object.defineProperty( owner, this.expando, {
+				value: value,
+				writable: true,
+				configurable: true
+			} );
+		}
+		return owner[ this.expando ];
+	},
+	cache: function( owner ) {
+
+		// We can accept data for non-element nodes in modern browsers,
+		// but we should not, see #8335.
+		// Always return an empty object.
+		if ( !acceptData( owner ) ) {
+			return {};
+		}
+
+		// Check if the owner object already has a cache
+		var value = owner[ this.expando ];
+
+		// If not, create one
+		if ( !value ) {
+			value = {};
+
+			// We can accept data for non-element nodes in modern browsers,
+			// but we should not, see #8335.
+			// Always return an empty object.
+			if ( acceptData( owner ) ) {
+
+				// If it is a node unlikely to be stringify-ed or looped over
+				// use plain assignment
+				if ( owner.nodeType ) {
+					owner[ this.expando ] = value;
+
+				// Otherwise secure it in a non-enumerable property
+				// configurable must be true to allow the property to be
+				// deleted when data is removed
+				} else {
+					Object.defineProperty( owner, this.expando, {
+						value: value,
+						configurable: true
+					} );
+				}
+			}
+		}
+
+		return value;
+	},
+	set: function( owner, data, value ) {
+		var prop,
+			cache = this.cache( owner );
+
+		// Handle: [ owner, key, value ] args
+		if ( typeof data === "string" ) {
+			cache[ data ] = value;
+
+		// Handle: [ owner, { properties } ] args
+		} else {
+
+			// Copy the properties one-by-one to the cache object
+			for ( prop in data ) {
+				cache[ prop ] = data[ prop ];
+			}
+		}
+		return cache;
+	},
+	get: function( owner, key ) {
+		return key === undefined ?
+			this.cache( owner ) :
+			owner[ this.expando ] && owner[ this.expando ][ key ];
+	},
+	access: function( owner, key, value ) {
+		var stored;
+
+		// In cases where either:
+		//
+		//   1. No key was specified
+		//   2. A string key was specified, but no value provided
+		//
+		// Take the "read" path and allow the get method to determine
+		// which value to return, respectively either:
+		//
+		//   1. The entire cache object
+		//   2. The data stored at the key
+		//
+		if ( key === undefined ||
+				( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+			stored = this.get( owner, key );
+
+			return stored !== undefined ?
+				stored : this.get( owner, jQuery.camelCase( key ) );
+		}
+
+		// When the key is not a string, or both a key and value
+		// are specified, set or extend (existing objects) with either:
+		//
+		//   1. An object of properties
+		//   2. A key and value
+		//
+		this.set( owner, key, value );
+
+		// Since the "set" path can have two possible entry points
+		// return the expected data based on which path was taken[*]
+		return value !== undefined ? value : key;
+	},
+	remove: function( owner, key ) {
+		var i, name, camel,
+			cache = owner[ this.expando ];
+
+		if ( cache === undefined ) {
+			return;
+		}
+
+		if ( key === undefined ) {
+			this.register( owner );
+
+		} else {
+
+			// Support array or space separated string of keys
+			if ( jQuery.isArray( key ) ) {
+
+				// If "name" is an array of keys...
+				// When data is initially created, via ("key", "val") signature,
+				// keys will be converted to camelCase.
+				// Since there is no way to tell _how_ a key was added, remove
+				// both plain key and camelCase key. #12786
+				// This will only penalize the array argument path.
+				name = key.concat( key.map( jQuery.camelCase ) );
+			} else {
+				camel = jQuery.camelCase( key );
+
+				// Try the string as a key before any manipulation
+				if ( key in cache ) {
+					name = [ key, camel ];
+				} else {
+
+					// If a key with the spaces exists, use it.
+					// Otherwise, create an array by matching non-whitespace
+					name = camel;
+					name = name in cache ?
+						[ name ] : ( name.match( rnotwhite ) || [] );
+				}
+			}
+
+			i = name.length;
+
+			while ( i-- ) {
+				delete cache[ name[ i ] ];
+			}
+		}
+
+		// Remove the expando if there's no more data
+		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+			// Support: Chrome <= 35-45+
+			// Webkit & Blink performance suffers when deleting properties
+			// from DOM nodes, so set to undefined instead
+			// https://code.google.com/p/chromium/issues/detail?id=378607
+			if ( owner.nodeType ) {
+				owner[ this.expando ] = undefined;
+			} else {
+				delete owner[ this.expando ];
+			}
+		}
+	},
+	hasData: function( owner ) {
+		var cache = owner[ this.expando ];
+		return cache !== undefined && !jQuery.isEmptyObject( cache );
+	}
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+//	Implementation Summary
+//
+//	1. Enforce API surface and semantic compatibility with 1.9.x branch
+//	2. Improve the module's maintainability by reducing the storage
+//		paths to a single mechanism.
+//	3. Use the same single mechanism to support "private" and "user" data.
+//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+//	5. Avoid exposing implementation details on user objects (eg. expando properties)
+//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+	rmultiDash = /[A-Z]/g;
+
+function dataAttr( elem, key, data ) {
+	var name;
+
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = data === "true" ? true :
+					data === "false" ? false :
+					data === "null" ? null :
+
+					// Only convert to a number if it doesn't change the string
+					+data + "" === data ? +data :
+					rbrace.test( data ) ? jQuery.parseJSON( data ) :
+					data;
+			} catch ( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			dataUser.set( elem, key, data );
+		} else {
+			data = undefined;
+		}
+	}
+	return data;
+}
+
+jQuery.extend( {
+	hasData: function( elem ) {
+		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+	},
+
+	data: function( elem, name, data ) {
+		return dataUser.access( elem, name, data );
+	},
+
+	removeData: function( elem, name ) {
+		dataUser.remove( elem, name );
+	},
+
+	// TODO: Now that all calls to _data and _removeData have been replaced
+	// with direct calls to dataPriv methods, these can be deprecated.
+	_data: function( elem, name, data ) {
+		return dataPriv.access( elem, name, data );
+	},
+
+	_removeData: function( elem, name ) {
+		dataPriv.remove( elem, name );
+	}
+} );
+
+jQuery.fn.extend( {
+	data: function( key, value ) {
+		var i, name, data,
+			elem = this[ 0 ],
+			attrs = elem && elem.attributes;
+
+		// Gets all values
+		if ( key === undefined ) {
+			if ( this.length ) {
+				data = dataUser.get( elem );
+
+				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+					i = attrs.length;
+					while ( i-- ) {
+
+						// Support: IE11+
+						// The attrs elements can be null (#14894)
+						if ( attrs[ i ] ) {
+							name = attrs[ i ].name;
+							if ( name.indexOf( "data-" ) === 0 ) {
+								name = jQuery.camelCase( name.slice( 5 ) );
+								dataAttr( elem, name, data[ name ] );
+							}
+						}
+					}
+					dataPriv.set( elem, "hasDataAttrs", true );
+				}
+			}
+
+			return data;
+		}
+
+		// Sets multiple values
+		if ( typeof key === "object" ) {
+			return this.each( function() {
+				dataUser.set( this, key );
+			} );
+		}
+
+		return access( this, function( value ) {
+			var data, camelKey;
+
+			// The calling jQuery object (element matches) is not empty
+			// (and therefore has an element appears at this[ 0 ]) and the
+			// `value` parameter was not undefined. An empty jQuery object
+			// will result in `undefined` for elem = this[ 0 ] which will
+			// throw an exception if an attempt to read a data cache is made.
+			if ( elem && value === undefined ) {
+
+				// Attempt to get data from the cache
+				// with the key as-is
+				data = dataUser.get( elem, key ) ||
+
+					// Try to find dashed key if it exists (gh-2779)
+					// This is for 2.2.x only
+					dataUser.get( elem, key.replace( rmultiDash, "-$&" ).toLowerCase() );
+
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				camelKey = jQuery.camelCase( key );
+
+				// Attempt to get data from the cache
+				// with the key camelized
+				data = dataUser.get( elem, camelKey );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// Attempt to "discover" the data in
+				// HTML5 custom data-* attrs
+				data = dataAttr( elem, camelKey, undefined );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// We tried really hard, but the data doesn't exist.
+				return;
+			}
+
+			// Set the data...
+			camelKey = jQuery.camelCase( key );
+			this.each( function() {
+
+				// First, attempt to store a copy or reference of any
+				// data that might've been store with a camelCased key.
+				var data = dataUser.get( this, camelKey );
+
+				// For HTML5 data-* attribute interop, we have to
+				// store property names with dashes in a camelCase form.
+				// This might not apply to all properties...*
+				dataUser.set( this, camelKey, value );
+
+				// *... In the case of properties that might _actually_
+				// have dashes, we need to also store a copy of that
+				// unchanged property.
+				if ( key.indexOf( "-" ) > -1 && data !== undefined ) {
+					dataUser.set( this, key, value );
+				}
+			} );
+		}, null, value, arguments.length > 1, null, true );
+	},
+
+	removeData: function( key ) {
+		return this.each( function() {
+			dataUser.remove( this, key );
+		} );
+	}
+} );
+
+
+jQuery.extend( {
+	queue: function( elem, type, data ) {
+		var queue;
+
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			queue = dataPriv.get( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !queue || jQuery.isArray( data ) ) {
+					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+				} else {
+					queue.push( data );
+				}
+			}
+			return queue || [];
+		}
+	},
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			startLength = queue.length,
+			fn = queue.shift(),
+			hooks = jQuery._queueHooks( elem, type ),
+			next = function() {
+				jQuery.dequeue( elem, type );
+			};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+			startLength--;
+		}
+
+		if ( fn ) {
+
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
+			}
+
+			// Clear up the last queue stop function
+			delete hooks.stop;
+			fn.call( elem, next, hooks );
+		}
+
+		if ( !startLength && hooks ) {
+			hooks.empty.fire();
+		}
+	},
+
+	// Not public - generate a queueHooks object, or return the current one
+	_queueHooks: function( elem, type ) {
+		var key = type + "queueHooks";
+		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+			empty: jQuery.Callbacks( "once memory" ).add( function() {
+				dataPriv.remove( elem, [ type + "queue", key ] );
+			} )
+		} );
+	}
+} );
+
+jQuery.fn.extend( {
+	queue: function( type, data ) {
+		var setter = 2;
+
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+			setter--;
+		}
+
+		if ( arguments.length < setter ) {
+			return jQuery.queue( this[ 0 ], type );
+		}
+
+		return data === undefined ?
+			this :
+			this.each( function() {
+				var queue = jQuery.queue( this, type, data );
+
+				// Ensure a hooks for this queue
+				jQuery._queueHooks( this, type );
+
+				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+					jQuery.dequeue( this, type );
+				}
+			} );
+	},
+	dequeue: function( type ) {
+		return this.each( function() {
+			jQuery.dequeue( this, type );
+		} );
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, obj ) {
+		var tmp,
+			count = 1,
+			defer = jQuery.Deferred(),
+			elements = this,
+			i = this.length,
+			resolve = function() {
+				if ( !( --count ) ) {
+					defer.resolveWith( elements, [ elements ] );
+				}
+			};
+
+		if ( typeof type !== "string" ) {
+			obj = type;
+			type = undefined;
+		}
+		type = type || "fx";
+
+		while ( i-- ) {
+			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+			if ( tmp && tmp.empty ) {
+				count++;
+				tmp.empty.add( resolve );
+			}
+		}
+		resolve();
+		return defer.promise( obj );
+	}
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHidden = function( elem, el ) {
+
+		// isHidden might be called from jQuery#filter function;
+		// in that case, element will be second argument
+		elem = el || elem;
+		return jQuery.css( elem, "display" ) === "none" ||
+			!jQuery.contains( elem.ownerDocument, elem );
+	};
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+	var adjusted,
+		scale = 1,
+		maxIterations = 20,
+		currentValue = tween ?
+			function() { return tween.cur(); } :
+			function() { return jQuery.css( elem, prop, "" ); },
+		initial = currentValue(),
+		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+		// Starting value computation is required for potential unit mismatches
+		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+			rcssNum.exec( jQuery.css( elem, prop ) );
+
+	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+		// Trust units reported by jQuery.css
+		unit = unit || initialInUnit[ 3 ];
+
+		// Make sure we update the tween properties later on
+		valueParts = valueParts || [];
+
+		// Iteratively approximate from a nonzero starting point
+		initialInUnit = +initial || 1;
+
+		do {
+
+			// If previous iteration zeroed out, double until we get *something*.
+			// Use string for doubling so we don't accidentally see scale as unchanged below
+			scale = scale || ".5";
+
+			// Adjust and apply
+			initialInUnit = initialInUnit / scale;
+			jQuery.style( elem, prop, initialInUnit + unit );
+
+		// Update scale, tolerating zero or NaN from tween.cur()
+		// Break the loop if scale is unchanged or perfect, or if we've just had enough.
+		} while (
+			scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
+		);
+	}
+
+	if ( valueParts ) {
+		initialInUnit = +initialInUnit || +initial || 0;
+
+		// Apply relative offset (+=/-=) if specified
+		adjusted = valueParts[ 1 ] ?
+			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+			+valueParts[ 2 ];
+		if ( tween ) {
+			tween.unit = unit;
+			tween.start = initialInUnit;
+			tween.end = adjusted;
+		}
+	}
+	return adjusted;
+}
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([\w:-]+)/ );
+
+var rscriptType = ( /^$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+	// Support: IE9
+	option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+	// XHTML parsers do not magically insert elements in the
+	// same way that tag soup parsers do. So we cannot shorten
+	// this by omitting <tbody> or other required elements.
+	thead: [ 1, "<table>", "</table>" ],
+	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+	_default: [ 0, "", "" ]
+};
+
+// Support: IE9
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+	// Support: IE9-11+
+	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
+	var ret = typeof context.getElementsByTagName !== "undefined" ?
+			context.getElementsByTagName( tag || "*" ) :
+			typeof context.querySelectorAll !== "undefined" ?
+				context.querySelectorAll( tag || "*" ) :
+			[];
+
+	return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
+		jQuery.merge( [ context ], ret ) :
+		ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+	var i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		dataPriv.set(
+			elems[ i ],
+			"globalEval",
+			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
+		);
+	}
+}
+
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+	var elem, tmp, tag, wrap, contains, j,
+		fragment = context.createDocumentFragment(),
+		nodes = [],
+		i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		elem = elems[ i ];
+
+		if ( elem || elem === 0 ) {
+
+			// Add nodes directly
+			if ( jQuery.type( elem ) === "object" ) {
+
+				// Support: Android<4.1, PhantomJS<2
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+			// Convert non-html into a text node
+			} else if ( !rhtml.test( elem ) ) {
+				nodes.push( context.createTextNode( elem ) );
+
+			// Convert html into DOM nodes
+			} else {
+				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+				// Deserialize a standard representation
+				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+				wrap = wrapMap[ tag ] || wrapMap._default;
+				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+				// Descend through wrappers to the right content
+				j = wrap[ 0 ];
+				while ( j-- ) {
+					tmp = tmp.lastChild;
+				}
+
+				// Support: Android<4.1, PhantomJS<2
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, tmp.childNodes );
+
+				// Remember the top-level container
+				tmp = fragment.firstChild;
+
+				// Ensure the created nodes are orphaned (#12392)
+				tmp.textContent = "";
+			}
+		}
+	}
+
+	// Remove wrapper from fragment
+	fragment.textContent = "";
+
+	i = 0;
+	while ( ( elem = nodes[ i++ ] ) ) {
+
+		// Skip elements already in the context collection (trac-4087)
+		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+			if ( ignored ) {
+				ignored.push( elem );
+			}
+			continue;
+		}
+
+		contains = jQuery.contains( elem.ownerDocument, elem );
+
+		// Append to fragment
+		tmp = getAll( fragment.appendChild( elem ), "script" );
+
+		// Preserve script evaluation history
+		if ( contains ) {
+			setGlobalEval( tmp );
+		}
+
+		// Capture executables
+		if ( scripts ) {
+			j = 0;
+			while ( ( elem = tmp[ j++ ] ) ) {
+				if ( rscriptType.test( elem.type || "" ) ) {
+					scripts.push( elem );
+				}
+			}
+		}
+	}
+
+	return fragment;
+}
+
+
+( function() {
+	var fragment = document.createDocumentFragment(),
+		div = fragment.appendChild( document.createElement( "div" ) ),
+		input = document.createElement( "input" );
+
+	// Support: Android 4.0-4.3, Safari<=5.1
+	// Check state lost if the name is set (#11217)
+	// Support: Windows Web Apps (WWA)
+	// `name` and `type` must use .setAttribute for WWA (#14901)
+	input.setAttribute( "type", "radio" );
+	input.setAttribute( "checked", "checked" );
+	input.setAttribute( "name", "t" );
+
+	div.appendChild( input );
+
+	// Support: Safari<=5.1, Android<4.2
+	// Older WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE<=11+
+	// Make sure textarea (and checkbox) defaultValue is properly cloned
+	div.innerHTML = "<textarea>x</textarea>";
+	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+
+
+var
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+	return true;
+}
+
+function returnFalse() {
+	return false;
+}
+
+// Support: IE9
+// See #13393 for more info
+function safeActiveElement() {
+	try {
+		return document.activeElement;
+	} catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+	var origFn, type;
+
+	// Types can be a map of types/handlers
+	if ( typeof types === "object" ) {
+
+		// ( types-Object, selector, data )
+		if ( typeof selector !== "string" ) {
+
+			// ( types-Object, data )
+			data = data || selector;
+			selector = undefined;
+		}
+		for ( type in types ) {
+			on( elem, type, selector, data, types[ type ], one );
+		}
+		return elem;
+	}
+
+	if ( data == null && fn == null ) {
+
+		// ( types, fn )
+		fn = selector;
+		data = selector = undefined;
+	} else if ( fn == null ) {
+		if ( typeof selector === "string" ) {
+
+			// ( types, selector, fn )
+			fn = data;
+			data = undefined;
+		} else {
+
+			// ( types, data, fn )
+			fn = data;
+			data = selector;
+			selector = undefined;
+		}
+	}
+	if ( fn === false ) {
+		fn = returnFalse;
+	} else if ( !fn ) {
+		return elem;
+	}
+
+	if ( one === 1 ) {
+		origFn = fn;
+		fn = function( event ) {
+
+			// Can use an empty set, since event contains the info
+			jQuery().off( event );
+			return origFn.apply( this, arguments );
+		};
+
+		// Use same guid so caller can remove using origFn
+		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+	}
+	return elem.each( function() {
+		jQuery.event.add( this, types, fn, data, selector );
+	} );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+	global: {},
+
+	add: function( elem, types, handler, data, selector ) {
+
+		var handleObjIn, eventHandle, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.get( elem );
+
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
+			return;
+		}
+
+		// Caller can pass in an object of custom data in lieu of the handler
+		if ( handler.handler ) {
+			handleObjIn = handler;
+			handler = handleObjIn.handler;
+			selector = handleObjIn.selector;
+		}
+
+		// Make sure that the handler has a unique ID, used to find/remove it later
+		if ( !handler.guid ) {
+			handler.guid = jQuery.guid++;
+		}
+
+		// Init the element's event structure and main handler, if this is the first
+		if ( !( events = elemData.events ) ) {
+			events = elemData.events = {};
+		}
+		if ( !( eventHandle = elemData.handle ) ) {
+			eventHandle = elemData.handle = function( e ) {
+
+				// Discard the second event of a jQuery.event.trigger() and
+				// when an event is called after a page has unloaded
+				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+			};
+		}
+
+		// Handle multiple events separated by a space
+		types = ( types || "" ).match( rnotwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// There *must* be a type, no attaching namespace-only handlers
+			if ( !type ) {
+				continue;
+			}
+
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
+
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
+
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend( {
+				type: type,
+				origType: origType,
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+				namespace: namespaces.join( "." )
+			}, handleObjIn );
+
+			// Init the event handler queue if we're the first
+			if ( !( handlers = events[ type ] ) ) {
+				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
+
+				// Only use addEventListener if the special events handler returns false
+				if ( !special.setup ||
+					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+					if ( elem.addEventListener ) {
+						elem.addEventListener( type, eventHandle );
+					}
+				}
+			}
+
+			if ( special.add ) {
+				special.add.call( elem, handleObj );
+
+				if ( !handleObj.handler.guid ) {
+					handleObj.handler.guid = handler.guid;
+				}
+			}
+
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
+
+			// Keep track of which events have ever been used, for event optimization
+			jQuery.event.global[ type ] = true;
+		}
+
+	},
+
+	// Detach an event or set of events from an element
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+
+		var j, origCount, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+		if ( !elemData || !( events = elemData.events ) ) {
+			return;
+		}
+
+		// Once for each type.namespace in types; type may be omitted
+		types = ( types || "" ).match( rnotwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+				}
+				continue;
+			}
+
+			special = jQuery.event.special[ type ] || {};
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+			handlers = events[ type ] || [];
+			tmp = tmp[ 2 ] &&
+				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+			// Remove matching events
+			origCount = j = handlers.length;
+			while ( j-- ) {
+				handleObj = handlers[ j ];
+
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					( !handler || handler.guid === handleObj.guid ) &&
+					( !tmp || tmp.test( handleObj.namespace ) ) &&
+					( !selector || selector === handleObj.selector ||
+						selector === "**" && handleObj.selector ) ) {
+					handlers.splice( j, 1 );
+
+					if ( handleObj.selector ) {
+						handlers.delegateCount--;
+					}
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
+					}
+				}
+			}
+
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( origCount && !handlers.length ) {
+				if ( !special.teardown ||
+					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+					jQuery.removeEvent( elem, type, elemData.handle );
+				}
+
+				delete events[ type ];
+			}
+		}
+
+		// Remove data and the expando if it's no longer used
+		if ( jQuery.isEmptyObject( events ) ) {
+			dataPriv.remove( elem, "handle events" );
+		}
+	},
+
+	dispatch: function( event ) {
+
+		// Make a writable jQuery.Event from the native event object
+		event = jQuery.event.fix( event );
+
+		var i, j, ret, matched, handleObj,
+			handlerQueue = [],
+			args = slice.call( arguments ),
+			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+			special = jQuery.event.special[ event.type ] || {};
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
+		args[ 0 ] = event;
+		event.delegateTarget = this;
+
+		// Call the preDispatch hook for the mapped type, and let it bail if desired
+		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+			return;
+		}
+
+		// Determine handlers
+		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+		// Run delegates first; they may want to stop propagation beneath us
+		i = 0;
+		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+			event.currentTarget = matched.elem;
+
+			j = 0;
+			while ( ( handleObj = matched.handlers[ j++ ] ) &&
+				!event.isImmediatePropagationStopped() ) {
+
+				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
+				// a subset or equal to those in the bound event (both can have no namespace).
+				if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+					event.handleObj = handleObj;
+					event.data = handleObj.data;
+
+					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+						handleObj.handler ).apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						if ( ( event.result = ret ) === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
+					}
+				}
+			}
+		}
+
+		// Call the postDispatch hook for the mapped type
+		if ( special.postDispatch ) {
+			special.postDispatch.call( this, event );
+		}
+
+		return event.result;
+	},
+
+	handlers: function( event, handlers ) {
+		var i, matches, sel, handleObj,
+			handlerQueue = [],
+			delegateCount = handlers.delegateCount,
+			cur = event.target;
+
+		// Support (at least): Chrome, IE9
+		// Find delegate handlers
+		// Black-hole SVG <use> instance trees (#13180)
+		//
+		// Support: Firefox<=42+
+		// Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)
+		if ( delegateCount && cur.nodeType &&
+			( event.type !== "click" || isNaN( event.button ) || event.button < 1 ) ) {
+
+			for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+				// Don't check non-elements (#13208)
+				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				if ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== "click" ) ) {
+					matches = [];
+					for ( i = 0; i < delegateCount; i++ ) {
+						handleObj = handlers[ i ];
+
+						// Don't conflict with Object.prototype properties (#13203)
+						sel = handleObj.selector + " ";
+
+						if ( matches[ sel ] === undefined ) {
+							matches[ sel ] = handleObj.needsContext ?
+								jQuery( sel, this ).index( cur ) > -1 :
+								jQuery.find( sel, this, null, [ cur ] ).length;
+						}
+						if ( matches[ sel ] ) {
+							matches.push( handleObj );
+						}
+					}
+					if ( matches.length ) {
+						handlerQueue.push( { elem: cur, handlers: matches } );
+					}
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		if ( delegateCount < handlers.length ) {
+			handlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } );
+		}
+
+		return handlerQueue;
+	},
+
+	// Includes some event props shared by KeyEvent and MouseEvent
+	props: ( "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase " +
+		"metaKey relatedTarget shiftKey target timeStamp view which" ).split( " " ),
+
+	fixHooks: {},
+
+	keyHooks: {
+		props: "char charCode key keyCode".split( " " ),
+		filter: function( event, original ) {
+
+			// Add which for key events
+			if ( event.which == null ) {
+				event.which = original.charCode != null ? original.charCode : original.keyCode;
+			}
+
+			return event;
+		}
+	},
+
+	mouseHooks: {
+		props: ( "button buttons clientX clientY offsetX offsetY pageX pageY " +
+			"screenX screenY toElement" ).split( " " ),
+		filter: function( event, original ) {
+			var eventDoc, doc, body,
+				button = original.button;
+
+			// Calculate pageX/Y if missing and clientX/Y available
+			if ( event.pageX == null && original.clientX != null ) {
+				eventDoc = event.target.ownerDocument || document;
+				doc = eventDoc.documentElement;
+				body = eventDoc.body;
+
+				event.pageX = original.clientX +
+					( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) -
+					( doc && doc.clientLeft || body && body.clientLeft || 0 );
+				event.pageY = original.clientY +
+					( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) -
+					( doc && doc.clientTop  || body && body.clientTop  || 0 );
+			}
+
+			// Add which for click: 1 === left; 2 === middle; 3 === right
+			// Note: button is not normalized, so don't use it
+			if ( !event.which && button !== undefined ) {
+				event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
+			}
+
+			return event;
+		}
+	},
+
+	fix: function( event ) {
+		if ( event[ jQuery.expando ] ) {
+			return event;
+		}
+
+		// Create a writable copy of the event object and normalize some properties
+		var i, prop, copy,
+			type = event.type,
+			originalEvent = event,
+			fixHook = this.fixHooks[ type ];
+
+		if ( !fixHook ) {
+			this.fixHooks[ type ] = fixHook =
+				rmouseEvent.test( type ) ? this.mouseHooks :
+				rkeyEvent.test( type ) ? this.keyHooks :
+				{};
+		}
+		copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
+
+		event = new jQuery.Event( originalEvent );
+
+		i = copy.length;
+		while ( i-- ) {
+			prop = copy[ i ];
+			event[ prop ] = originalEvent[ prop ];
+		}
+
+		// Support: Cordova 2.5 (WebKit) (#13255)
+		// All events should have a target; Cordova deviceready doesn't
+		if ( !event.target ) {
+			event.target = document;
+		}
+
+		// Support: Safari 6.0+, Chrome<28
+		// Target should not be a text node (#504, #13143)
+		if ( event.target.nodeType === 3 ) {
+			event.target = event.target.parentNode;
+		}
+
+		return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
+	},
+
+	special: {
+		load: {
+
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
+		},
+		focus: {
+
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					this.focus();
+					return false;
+				}
+			},
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
+				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
+
+			// For checkbox, fire native event so checked state will be right
+			trigger: function() {
+				if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {
+					this.click();
+					return false;
+				}
+			},
+
+			// For cross-browser consistency, don't fire native .click() on links
+			_default: function( event ) {
+				return jQuery.nodeName( event.target, "a" );
+			}
+		},
+
+		beforeunload: {
+			postDispatch: function( event ) {
+
+				// Support: Firefox 20+
+				// Firefox doesn't alert if the returnValue field is not set.
+				if ( event.result !== undefined && event.originalEvent ) {
+					event.originalEvent.returnValue = event.result;
+				}
+			}
+		}
+	}
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+	// This "if" is needed for plain objects
+	if ( elem.removeEventListener ) {
+		elem.removeEventListener( type, handle );
+	}
+};
+
+jQuery.Event = function( src, props ) {
+
+	// Allow instantiation without the 'new' keyword
+	if ( !( this instanceof jQuery.Event ) ) {
+		return new jQuery.Event( src, props );
+	}
+
+	// Event object
+	if ( src && src.type ) {
+		this.originalEvent = src;
+		this.type = src.type;
+
+		// Events bubbling up the document may have been marked as prevented
+		// by a handler lower down the tree; reflect the correct value.
+		this.isDefaultPrevented = src.defaultPrevented ||
+				src.defaultPrevented === undefined &&
+
+				// Support: Android<4.0
+				src.returnValue === false ?
+			returnTrue :
+			returnFalse;
+
+	// Event type
+	} else {
+		this.type = src;
+	}
+
+	// Put explicitly provided properties onto the event object
+	if ( props ) {
+		jQuery.extend( this, props );
+	}
+
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || jQuery.now();
+
+	// Mark it as fixed
+	this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+	constructor: jQuery.Event,
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse,
+	isSimulated: false,
+
+	preventDefault: function() {
+		var e = this.originalEvent;
+
+		this.isDefaultPrevented = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.preventDefault();
+		}
+	},
+	stopPropagation: function() {
+		var e = this.originalEvent;
+
+		this.isPropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopPropagation();
+		}
+	},
+	stopImmediatePropagation: function() {
+		var e = this.originalEvent;
+
+		this.isImmediatePropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopImmediatePropagation();
+		}
+
+		this.stopPropagation();
+	}
+};
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://code.google.com/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+	mouseenter: "mouseover",
+	mouseleave: "mouseout",
+	pointerenter: "pointerover",
+	pointerleave: "pointerout"
+}, function( orig, fix ) {
+	jQuery.event.special[ orig ] = {
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var ret,
+				target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj;
+
+			// For mouseenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
+		}
+	};
+} );
+
+jQuery.fn.extend( {
+	on: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn );
+	},
+	one: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		var handleObj, type;
+		if ( types && types.preventDefault && types.handleObj ) {
+
+			// ( event )  dispatched jQuery.Event
+			handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace ?
+					handleObj.origType + "." + handleObj.namespace :
+					handleObj.origType,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
+		}
+		if ( typeof types === "object" ) {
+
+			// ( types-object [, selector] )
+			for ( type in types ) {
+				this.off( type, selector, types[ type ] );
+			}
+			return this;
+		}
+		if ( selector === false || typeof selector === "function" ) {
+
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each( function() {
+			jQuery.event.remove( this, types, fn, selector );
+		} );
+	}
+} );
+
+
+var
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
+
+	// Support: IE 10-11, Edge 10240+
+	// In IE/Edge using regex groups here causes severe slowdowns.
+	// See https://connect.microsoft.com/IE/feedback/details/1736512/
+	rnoInnerhtml = /<script|<style|<link/i,
+
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rscriptTypeMasked = /^true\/(.*)/,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+// Manipulating tables requires a tbody
+function manipulationTarget( elem, content ) {
+	return jQuery.nodeName( elem, "table" ) &&
+		jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
+
+		elem.getElementsByTagName( "tbody" )[ 0 ] ||
+			elem.appendChild( elem.ownerDocument.createElement( "tbody" ) ) :
+		elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+	return elem;
+}
+function restoreScript( elem ) {
+	var match = rscriptTypeMasked.exec( elem.type );
+
+	if ( match ) {
+		elem.type = match[ 1 ];
+	} else {
+		elem.removeAttribute( "type" );
+	}
+
+	return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
+
+	// 1. Copy private data: events, handlers, etc.
+	if ( dataPriv.hasData( src ) ) {
+		pdataOld = dataPriv.access( src );
+		pdataCur = dataPriv.set( dest, pdataOld );
+		events = pdataOld.events;
+
+		if ( events ) {
+			delete pdataCur.handle;
+			pdataCur.events = {};
+
+			for ( type in events ) {
+				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+					jQuery.event.add( dest, type, events[ type ][ i ] );
+				}
+			}
+		}
+	}
+
+	// 2. Copy user data
+	if ( dataUser.hasData( src ) ) {
+		udataOld = dataUser.access( src );
+		udataCur = jQuery.extend( {}, udataOld );
+
+		dataUser.set( dest, udataCur );
+	}
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+	var nodeName = dest.nodeName.toLowerCase();
+
+	// Fails to persist the checked state of a cloned checkbox or radio button.
+	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+		dest.checked = src.checked;
+
+	// Fails to return the selected option to the default selected state when cloning options
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
+	}
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+	// Flatten any nested arrays
+	args = concat.apply( [], args );
+
+	var fragment, first, scripts, hasScripts, node, doc,
+		i = 0,
+		l = collection.length,
+		iNoClone = l - 1,
+		value = args[ 0 ],
+		isFunction = jQuery.isFunction( value );
+
+	// We can't cloneNode fragments that contain checked, in WebKit
+	if ( isFunction ||
+			( l > 1 && typeof value === "string" &&
+				!support.checkClone && rchecked.test( value ) ) ) {
+		return collection.each( function( index ) {
+			var self = collection.eq( index );
+			if ( isFunction ) {
+				args[ 0 ] = value.call( this, index, self.html() );
+			}
+			domManip( self, args, callback, ignored );
+		} );
+	}
+
+	if ( l ) {
+		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+		first = fragment.firstChild;
+
+		if ( fragment.childNodes.length === 1 ) {
+			fragment = first;
+		}
+
+		// Require either new content or an interest in ignored elements to invoke the callback
+		if ( first || ignored ) {
+			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+			hasScripts = scripts.length;
+
+			// Use the original fragment for the last item
+			// instead of the first because it can end up
+			// being emptied incorrectly in certain situations (#8070).
+			for ( ; i < l; i++ ) {
+				node = fragment;
+
+				if ( i !== iNoClone ) {
+					node = jQuery.clone( node, true, true );
+
+					// Keep references to cloned scripts for later restoration
+					if ( hasScripts ) {
+
+						// Support: Android<4.1, PhantomJS<2
+						// push.apply(_, arraylike) throws on ancient WebKit
+						jQuery.merge( scripts, getAll( node, "script" ) );
+					}
+				}
+
+				callback.call( collection[ i ], node, i );
+			}
+
+			if ( hasScripts ) {
+				doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+				// Reenable scripts
+				jQuery.map( scripts, restoreScript );
+
+				// Evaluate executable scripts on first document insertion
+				for ( i = 0; i < hasScripts; i++ ) {
+					node = scripts[ i ];
+					if ( rscriptType.test( node.type || "" ) &&
+						!dataPriv.access( node, "globalEval" ) &&
+						jQuery.contains( doc, node ) ) {
+
+						if ( node.src ) {
+
+							// Optional AJAX dependency, but won't run scripts if not present
+							if ( jQuery._evalUrl ) {
+								jQuery._evalUrl( node.src );
+							}
+						} else {
+							jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return collection;
+}
+
+function remove( elem, selector, keepData ) {
+	var node,
+		nodes = selector ? jQuery.filter( selector, elem ) : elem,
+		i = 0;
+
+	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+		if ( !keepData && node.nodeType === 1 ) {
+			jQuery.cleanData( getAll( node ) );
+		}
+
+		if ( node.parentNode ) {
+			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+				setGlobalEval( getAll( node, "script" ) );
+			}
+			node.parentNode.removeChild( node );
+		}
+	}
+
+	return elem;
+}
+
+jQuery.extend( {
+	htmlPrefilter: function( html ) {
+		return html.replace( rxhtmlTag, "<$1></$2>" );
+	},
+
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var i, l, srcElements, destElements,
+			clone = elem.cloneNode( true ),
+			inPage = jQuery.contains( elem.ownerDocument, elem );
+
+		// Fix IE cloning issues
+		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+				!jQuery.isXMLDoc( elem ) ) {
+
+			// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
+			destElements = getAll( clone );
+			srcElements = getAll( elem );
+
+			for ( i = 0, l = srcElements.length; i < l; i++ ) {
+				fixInput( srcElements[ i ], destElements[ i ] );
+			}
+		}
+
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			if ( deepDataAndEvents ) {
+				srcElements = srcElements || getAll( elem );
+				destElements = destElements || getAll( clone );
+
+				for ( i = 0, l = srcElements.length; i < l; i++ ) {
+					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+				}
+			} else {
+				cloneCopyEvent( elem, clone );
+			}
+		}
+
+		// Preserve script evaluation history
+		destElements = getAll( clone, "script" );
+		if ( destElements.length > 0 ) {
+			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+		}
+
+		// Return the cloned set
+		return clone;
+	},
+
+	cleanData: function( elems ) {
+		var data, elem, type,
+			special = jQuery.event.special,
+			i = 0;
+
+		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+			if ( acceptData( elem ) ) {
+				if ( ( data = elem[ dataPriv.expando ] ) ) {
+					if ( data.events ) {
+						for ( type in data.events ) {
+							if ( special[ type ] ) {
+								jQuery.event.remove( elem, type );
+
+							// This is a shortcut to avoid jQuery.event.remove's overhead
+							} else {
+								jQuery.removeEvent( elem, type, data.handle );
+							}
+						}
+					}
+
+					// Support: Chrome <= 35-45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataPriv.expando ] = undefined;
+				}
+				if ( elem[ dataUser.expando ] ) {
+
+					// Support: Chrome <= 35-45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataUser.expando ] = undefined;
+				}
+			}
+		}
+	}
+} );
+
+jQuery.fn.extend( {
+
+	// Keep domManip exposed until 3.0 (gh-2225)
+	domManip: domManip,
+
+	detach: function( selector ) {
+		return remove( this, selector, true );
+	},
+
+	remove: function( selector ) {
+		return remove( this, selector );
+	},
+
+	text: function( value ) {
+		return access( this, function( value ) {
+			return value === undefined ?
+				jQuery.text( this ) :
+				this.empty().each( function() {
+					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+						this.textContent = value;
+					}
+				} );
+		}, null, value, arguments.length );
+	},
+
+	append: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.appendChild( elem );
+			}
+		} );
+	},
+
+	prepend: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.insertBefore( elem, target.firstChild );
+			}
+		} );
+	},
+
+	before: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this );
+			}
+		} );
+	},
+
+	after: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
+			}
+		} );
+	},
+
+	empty: function() {
+		var elem,
+			i = 0;
+
+		for ( ; ( elem = this[ i ] ) != null; i++ ) {
+			if ( elem.nodeType === 1 ) {
+
+				// Prevent memory leaks
+				jQuery.cleanData( getAll( elem, false ) );
+
+				// Remove any remaining nodes
+				elem.textContent = "";
+			}
+		}
+
+		return this;
+	},
+
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+		return this.map( function() {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		} );
+	},
+
+	html: function( value ) {
+		return access( this, function( value ) {
+			var elem = this[ 0 ] || {},
+				i = 0,
+				l = this.length;
+
+			if ( value === undefined && elem.nodeType === 1 ) {
+				return elem.innerHTML;
+			}
+
+			// See if we can take a shortcut and just use innerHTML
+			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+				value = jQuery.htmlPrefilter( value );
+
+				try {
+					for ( ; i < l; i++ ) {
+						elem = this[ i ] || {};
+
+						// Remove element nodes and prevent memory leaks
+						if ( elem.nodeType === 1 ) {
+							jQuery.cleanData( getAll( elem, false ) );
+							elem.innerHTML = value;
+						}
+					}
+
+					elem = 0;
+
+				// If using innerHTML throws an exception, use the fallback method
+				} catch ( e ) {}
+			}
+
+			if ( elem ) {
+				this.empty().append( value );
+			}
+		}, null, value, arguments.length );
+	},
+
+	replaceWith: function() {
+		var ignored = [];
+
+		// Make the changes, replacing each non-ignored context element with the new content
+		return domManip( this, arguments, function( elem ) {
+			var parent = this.parentNode;
+
+			if ( jQuery.inArray( this, ignored ) < 0 ) {
+				jQuery.cleanData( getAll( this ) );
+				if ( parent ) {
+					parent.replaceChild( elem, this );
+				}
+			}
+
+		// Force callback invocation
+		}, ignored );
+	}
+} );
+
+jQuery.each( {
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var elems,
+			ret = [],
+			insert = jQuery( selector ),
+			last = insert.length - 1,
+			i = 0;
+
+		for ( ; i <= last; i++ ) {
+			elems = i === last ? this : this.clone( true );
+			jQuery( insert[ i ] )[ original ]( elems );
+
+			// Support: QtWebKit
+			// .get() because push.apply(_, arraylike) throws
+			push.apply( ret, elems.get() );
+		}
+
+		return this.pushStack( ret );
+	};
+} );
+
+
+var iframe,
+	elemdisplay = {
+
+		// Support: Firefox
+		// We have to pre-define these values for FF (#10227)
+		HTML: "block",
+		BODY: "block"
+	};
+
+/**
+ * Retrieve the actual display of a element
+ * @param {String} name nodeName of the element
+ * @param {Object} doc Document object
+ */
+
+// Called only from within defaultDisplay
+function actualDisplay( name, doc ) {
+	var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
+
+		display = jQuery.css( elem[ 0 ], "display" );
+
+	// We don't have any data stored on the element,
+	// so use "detach" method as fast way to get rid of the element
+	elem.detach();
+
+	return display;
+}
+
+/**
+ * Try to determine the default display value of an element
+ * @param {String} nodeName
+ */
+function defaultDisplay( nodeName ) {
+	var doc = document,
+		display = elemdisplay[ nodeName ];
+
+	if ( !display ) {
+		display = actualDisplay( nodeName, doc );
+
+		// If the simple way fails, read from inside an iframe
+		if ( display === "none" || !display ) {
+
+			// Use the already-created iframe if possible
+			iframe = ( iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" ) )
+				.appendTo( doc.documentElement );
+
+			// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
+			doc = iframe[ 0 ].contentDocument;
+
+			// Support: IE
+			doc.write();
+			doc.close();
+
+			display = actualDisplay( nodeName, doc );
+			iframe.detach();
+		}
+
+		// Store the correct default display
+		elemdisplay[ nodeName ] = display;
+	}
+
+	return display;
+}
+var rmargin = ( /^margin/ );
+
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+
+		// Support: IE<=11+, Firefox<=30+ (#15098, #14150)
+		// IE throws on elements created in popups
+		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+		var view = elem.ownerDocument.defaultView;
+
+		if ( !view || !view.opener ) {
+			view = window;
+		}
+
+		return view.getComputedStyle( elem );
+	};
+
+var swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+
+var documentElement = document.documentElement;
+
+
+
+( function() {
+	var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
+		container = document.createElement( "div" ),
+		div = document.createElement( "div" );
+
+	// Finish early in limited (non-browser) environments
+	if ( !div.style ) {
+		return;
+	}
+
+	// Support: IE9-11+
+	// Style of cloned element affects source element cloned (#8908)
+	div.style.backgroundClip = "content-box";
+	div.cloneNode( true ).style.backgroundClip = "";
+	support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+	container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
+		"padding:0;margin-top:1px;position:absolute";
+	container.appendChild( div );
+
+	// Executing both pixelPosition & boxSizingReliable tests require only one layout
+	// so they're executed at the same time to save the second computation.
+	function computeStyleTests() {
+		div.style.cssText =
+
+			// Support: Firefox<29, Android 2.3
+			// Vendor-prefix box-sizing
+			"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;" +
+			"position:relative;display:block;" +
+			"margin:auto;border:1px;padding:1px;" +
+			"top:1%;width:50%";
+		div.innerHTML = "";
+		documentElement.appendChild( container );
+
+		var divStyle = window.getComputedStyle( div );
+		pixelPositionVal = divStyle.top !== "1%";
+		reliableMarginLeftVal = divStyle.marginLeft === "2px";
+		boxSizingReliableVal = divStyle.width === "4px";
+
+		// Support: Android 4.0 - 4.3 only
+		// Some styles come back with percentage values, even though they shouldn't
+		div.style.marginRight = "50%";
+		pixelMarginRightVal = divStyle.marginRight === "4px";
+
+		documentElement.removeChild( container );
+	}
+
+	jQuery.extend( support, {
+		pixelPosition: function() {
+
+			// This test is executed only once but we still do memoizing
+			// since we can use the boxSizingReliable pre-computing.
+			// No need to check if the test was already performed, though.
+			computeStyleTests();
+			return pixelPositionVal;
+		},
+		boxSizingReliable: function() {
+			if ( boxSizingReliableVal == null ) {
+				computeStyleTests();
+			}
+			return boxSizingReliableVal;
+		},
+		pixelMarginRight: function() {
+
+			// Support: Android 4.0-4.3
+			// We're checking for boxSizingReliableVal here instead of pixelMarginRightVal
+			// since that compresses better and they're computed together anyway.
+			if ( boxSizingReliableVal == null ) {
+				computeStyleTests();
+			}
+			return pixelMarginRightVal;
+		},
+		reliableMarginLeft: function() {
+
+			// Support: IE <=8 only, Android 4.0 - 4.3 only, Firefox <=3 - 37
+			if ( boxSizingReliableVal == null ) {
+				computeStyleTests();
+			}
+			return reliableMarginLeftVal;
+		},
+		reliableMarginRight: function() {
+
+			// Support: Android 2.3
+			// Check if div with explicit width and no margin-right incorrectly
+			// gets computed margin-right based on width of container. (#3333)
+			// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+			// This support function is only executed once so no memoizing is needed.
+			var ret,
+				marginDiv = div.appendChild( document.createElement( "div" ) );
+
+			// Reset CSS: box-sizing; display; margin; border; padding
+			marginDiv.style.cssText = div.style.cssText =
+
+				// Support: Android 2.3
+				// Vendor-prefix box-sizing
+				"-webkit-box-sizing:content-box;box-sizing:content-box;" +
+				"display:block;margin:0;border:0;padding:0";
+			marginDiv.style.marginRight = marginDiv.style.width = "0";
+			div.style.width = "1px";
+			documentElement.appendChild( container );
+
+			ret = !parseFloat( window.getComputedStyle( marginDiv ).marginRight );
+
+			documentElement.removeChild( container );
+			div.removeChild( marginDiv );
+
+			return ret;
+		}
+	} );
+} )();
+
+
+function curCSS( elem, name, computed ) {
+	var width, minWidth, maxWidth, ret,
+		style = elem.style;
+
+	computed = computed || getStyles( elem );
+	ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined;
+
+	// Support: Opera 12.1x only
+	// Fall back to style even without computed
+	// computed is undefined for elems on document fragments
+	if ( ( ret === "" || ret === undefined ) && !jQuery.contains( elem.ownerDocument, elem ) ) {
+		ret = jQuery.style( elem, name );
+	}
+
+	// Support: IE9
+	// getPropertyValue is only needed for .css('filter') (#12537)
+	if ( computed ) {
+
+		// A tribute to the "awesome hack by Dean Edwards"
+		// Android Browser returns percentage for some values,
+		// but width seems to be reliably pixels.
+		// This is against the CSSOM draft spec:
+		// http://dev.w3.org/csswg/cssom/#resolved-values
+		if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+
+			// Remember the original values
+			width = style.width;
+			minWidth = style.minWidth;
+			maxWidth = style.maxWidth;
+
+			// Put in the new values to get a computed value out
+			style.minWidth = style.maxWidth = style.width = ret;
+			ret = computed.width;
+
+			// Revert the changed values
+			style.width = width;
+			style.minWidth = minWidth;
+			style.maxWidth = maxWidth;
+		}
+	}
+
+	return ret !== undefined ?
+
+		// Support: IE9-11+
+		// IE returns zIndex value as an integer.
+		ret + "" :
+		ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+	// Define the hook, we'll check on the first run if it's really needed.
+	return {
+		get: function() {
+			if ( conditionFn() ) {
+
+				// Hook not needed (or it's not possible to use it due
+				// to missing dependency), remove it.
+				delete this.get;
+				return;
+			}
+
+			// Hook needed; redefine it so that the support test is not executed again.
+			return ( this.get = hookFn ).apply( this, arguments );
+		}
+	};
+}
+
+
+var
+
+	// Swappable if display is none or starts with table
+	// except "table", "table-cell", or "table-caption"
+	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: "0",
+		fontWeight: "400"
+	},
+
+	cssPrefixes = [ "Webkit", "O", "Moz", "ms" ],
+	emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+	// Shortcut for names that are not vendor prefixed
+	if ( name in emptyStyle ) {
+		return name;
+	}
+
+	// Check for vendor prefixed names
+	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+		i = cssPrefixes.length;
+
+	while ( i-- ) {
+		name = cssPrefixes[ i ] + capName;
+		if ( name in emptyStyle ) {
+			return name;
+		}
+	}
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+	// Any relative (+/-) values have already been
+	// normalized at this point
+	var matches = rcssNum.exec( value );
+	return matches ?
+
+		// Guard against undefined "subtract", e.g., when used as in cssHooks
+		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+		value;
+}
+
+function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
+	var i = extra === ( isBorderBox ? "border" : "content" ) ?
+
+		// If we already have the right measurement, avoid augmentation
+		4 :
+
+		// Otherwise initialize for horizontal or vertical properties
+		name === "width" ? 1 : 0,
+
+		val = 0;
+
+	for ( ; i < 4; i += 2 ) {
+
+		// Both box models exclude margin, so add it if we want it
+		if ( extra === "margin" ) {
+			val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+		}
+
+		if ( isBorderBox ) {
+
+			// border-box includes padding, so remove it if we want content
+			if ( extra === "content" ) {
+				val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
+
+			// At this point, extra isn't border nor margin, so remove border
+			if ( extra !== "margin" ) {
+				val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		} else {
+
+			// At this point, extra isn't content, so add padding
+			val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+			// At this point, extra isn't content nor padding, so add border
+			if ( extra !== "padding" ) {
+				val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		}
+	}
+
+	return val;
+}
+
+function getWidthOrHeight( elem, name, extra ) {
+
+	// Start with offset property, which is equivalent to the border-box value
+	var valueIsBorderBox = true,
+		val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
+		styles = getStyles( elem ),
+		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+	// Some non-html elements return undefined for offsetWidth, so check for null/undefined
+	// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
+	// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
+	if ( val <= 0 || val == null ) {
+
+		// Fall back to computed then uncomputed css if necessary
+		val = curCSS( elem, name, styles );
+		if ( val < 0 || val == null ) {
+			val = elem.style[ name ];
+		}
+
+		// Computed unit is not pixels. Stop here and return.
+		if ( rnumnonpx.test( val ) ) {
+			return val;
+		}
+
+		// Check for style in case a browser which returns unreliable values
+		// for getComputedStyle silently falls back to the reliable elem.style
+		valueIsBorderBox = isBorderBox &&
+			( support.boxSizingReliable() || val === elem.style[ name ] );
+
+		// Normalize "", auto, and prepare for extra
+		val = parseFloat( val ) || 0;
+	}
+
+	// Use the active box-sizing model to add/subtract irrelevant styles
+	return ( val +
+		augmentWidthOrHeight(
+			elem,
+			name,
+			extra || ( isBorderBox ? "border" : "content" ),
+			valueIsBorderBox,
+			styles
+		)
+	) + "px";
+}
+
+function showHide( elements, show ) {
+	var display, elem, hidden,
+		values = [],
+		index = 0,
+		length = elements.length;
+
+	for ( ; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+
+		values[ index ] = dataPriv.get( elem, "olddisplay" );
+		display = elem.style.display;
+		if ( show ) {
+
+			// Reset the inline display of this element to learn if it is
+			// being hidden by cascaded rules or not
+			if ( !values[ index ] && display === "none" ) {
+				elem.style.display = "";
+			}
+
+			// Set elements which have been overridden with display: none
+			// in a stylesheet to whatever the default browser style is
+			// for such an element
+			if ( elem.style.display === "" && isHidden( elem ) ) {
+				values[ index ] = dataPriv.access(
+					elem,
+					"olddisplay",
+					defaultDisplay( elem.nodeName )
+				);
+			}
+		} else {
+			hidden = isHidden( elem );
+
+			if ( display !== "none" || !hidden ) {
+				dataPriv.set(
+					elem,
+					"olddisplay",
+					hidden ? display : jQuery.css( elem, "display" )
+				);
+			}
+		}
+	}
+
+	// Set the display of most of the elements in a second loop
+	// to avoid the constant reflow
+	for ( index = 0; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+		if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
+			elem.style.display = show ? values[ index ] || "" : "none";
+		}
+	}
+
+	return elements;
+}
+
+jQuery.extend( {
+
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity" );
+					return ret === "" ? "1" : ret;
+				}
+			}
+		}
+	},
+
+	// Don't automatically add "px" to these possibly-unitless properties
+	cssNumber: {
+		"animationIterationCount": true,
+		"columnCount": true,
+		"fillOpacity": true,
+		"flexGrow": true,
+		"flexShrink": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"order": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
+
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {
+		"float": "cssFloat"
+	},
+
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
+
+		// Make sure that we're working with the right name
+		var ret, type, hooks,
+			origName = jQuery.camelCase( name ),
+			style = elem.style;
+
+		name = jQuery.cssProps[ origName ] ||
+			( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
+
+		// Gets hook for the prefixed version, then unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
+
+			// Convert "+=" or "-=" to relative numbers (#7345)
+			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+				value = adjustCSS( elem, name, ret );
+
+				// Fixes bug #9237
+				type = "number";
+			}
+
+			// Make sure that null and NaN values aren't set (#7116)
+			if ( value == null || value !== value ) {
+				return;
+			}
+
+			// If a number was passed in, add the unit (except for certain CSS properties)
+			if ( type === "number" ) {
+				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+			}
+
+			// Support: IE9-11+
+			// background-* props affect original clone's values
+			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+				style[ name ] = "inherit";
+			}
+
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !( "set" in hooks ) ||
+				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+				style[ name ] = value;
+			}
+
+		} else {
+
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks &&
+				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+				return ret;
+			}
+
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
+	},
+
+	css: function( elem, name, extra, styles ) {
+		var val, num, hooks,
+			origName = jQuery.camelCase( name );
+
+		// Make sure that we're working with the right name
+		name = jQuery.cssProps[ origName ] ||
+			( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
+
+		// Try prefixed name followed by the unprefixed name
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks ) {
+			val = hooks.get( elem, true, extra );
+		}
+
+		// Otherwise, if a way to get the computed value exists, use that
+		if ( val === undefined ) {
+			val = curCSS( elem, name, styles );
+		}
+
+		// Convert "normal" to computed value
+		if ( val === "normal" && name in cssNormalTransform ) {
+			val = cssNormalTransform[ name ];
+		}
+
+		// Make numeric if forced or a qualifier was provided and val looks numeric
+		if ( extra === "" || extra ) {
+			num = parseFloat( val );
+			return extra === true || isFinite( num ) ? num || 0 : val;
+		}
+		return val;
+	}
+} );
+
+jQuery.each( [ "height", "width" ], function( i, name ) {
+	jQuery.cssHooks[ name ] = {
+		get: function( elem, computed, extra ) {
+			if ( computed ) {
+
+				// Certain elements can have dimension info if we invisibly show them
+				// but it must have a current display style that would benefit
+				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+					elem.offsetWidth === 0 ?
+						swap( elem, cssShow, function() {
+							return getWidthOrHeight( elem, name, extra );
+						} ) :
+						getWidthOrHeight( elem, name, extra );
+			}
+		},
+
+		set: function( elem, value, extra ) {
+			var matches,
+				styles = extra && getStyles( elem ),
+				subtract = extra && augmentWidthOrHeight(
+					elem,
+					name,
+					extra,
+					jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+					styles
+				);
+
+			// Convert to pixels if value adjustment is needed
+			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+				( matches[ 3 ] || "px" ) !== "px" ) {
+
+				elem.style[ name ] = value;
+				value = jQuery.css( elem, name );
+			}
+
+			return setPositiveNumber( elem, value, subtract );
+		}
+	};
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+	function( elem, computed ) {
+		if ( computed ) {
+			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+				elem.getBoundingClientRect().left -
+					swap( elem, { marginLeft: 0 }, function() {
+						return elem.getBoundingClientRect().left;
+					} )
+				) + "px";
+		}
+	}
+);
+
+// Support: Android 2.3
+jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
+	function( elem, computed ) {
+		if ( computed ) {
+			return swap( elem, { "display": "inline-block" },
+				curCSS, [ elem, "marginRight" ] );
+		}
+	}
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+	margin: "",
+	padding: "",
+	border: "Width"
+}, function( prefix, suffix ) {
+	jQuery.cssHooks[ prefix + suffix ] = {
+		expand: function( value ) {
+			var i = 0,
+				expanded = {},
+
+				// Assumes a single number if not a string
+				parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+			for ( ; i < 4; i++ ) {
+				expanded[ prefix + cssExpand[ i ] + suffix ] =
+					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+			}
+
+			return expanded;
+		}
+	};
+
+	if ( !rmargin.test( prefix ) ) {
+		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+	}
+} );
+
+jQuery.fn.extend( {
+	css: function( name, value ) {
+		return access( this, function( elem, name, value ) {
+			var styles, len,
+				map = {},
+				i = 0;
+
+			if ( jQuery.isArray( name ) ) {
+				styles = getStyles( elem );
+				len = name.length;
+
+				for ( ; i < len; i++ ) {
+					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+				}
+
+				return map;
+			}
+
+			return value !== undefined ?
+				jQuery.style( elem, name, value ) :
+				jQuery.css( elem, name );
+		}, name, value, arguments.length > 1 );
+	},
+	show: function() {
+		return showHide( this, true );
+	},
+	hide: function() {
+		return showHide( this );
+	},
+	toggle: function( state ) {
+		if ( typeof state === "boolean" ) {
+			return state ? this.show() : this.hide();
+		}
+
+		return this.each( function() {
+			if ( isHidden( this ) ) {
+				jQuery( this ).show();
+			} else {
+				jQuery( this ).hide();
+			}
+		} );
+	}
+} );
+
+
+function Tween( elem, options, prop, end, easing ) {
+	return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+	constructor: Tween,
+	init: function( elem, options, prop, end, easing, unit ) {
+		this.elem = elem;
+		this.prop = prop;
+		this.easing = easing || jQuery.easing._default;
+		this.options = options;
+		this.start = this.now = this.cur();
+		this.end = end;
+		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+	},
+	cur: function() {
+		var hooks = Tween.propHooks[ this.prop ];
+
+		return hooks && hooks.get ?
+			hooks.get( this ) :
+			Tween.propHooks._default.get( this );
+	},
+	run: function( percent ) {
+		var eased,
+			hooks = Tween.propHooks[ this.prop ];
+
+		if ( this.options.duration ) {
+			this.pos = eased = jQuery.easing[ this.easing ](
+				percent, this.options.duration * percent, 0, 1, this.options.duration
+			);
+		} else {
+			this.pos = eased = percent;
+		}
+		this.now = ( this.end - this.start ) * eased + this.start;
+
+		if ( this.options.step ) {
+			this.options.step.call( this.elem, this.now, this );
+		}
+
+		if ( hooks && hooks.set ) {
+			hooks.set( this );
+		} else {
+			Tween.propHooks._default.set( this );
+		}
+		return this;
+	}
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+	_default: {
+		get: function( tween ) {
+			var result;
+
+			// Use a property on the element directly when it is not a DOM element,
+			// or when there is no matching style property that exists.
+			if ( tween.elem.nodeType !== 1 ||
+				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
+				return tween.elem[ tween.prop ];
+			}
+
+			// Passing an empty string as a 3rd parameter to .css will automatically
+			// attempt a parseFloat and fallback to a string if the parse fails.
+			// Simple values such as "10px" are parsed to Float;
+			// complex values such as "rotate(1rad)" are returned as-is.
+			result = jQuery.css( tween.elem, tween.prop, "" );
+
+			// Empty strings, null, undefined and "auto" are converted to 0.
+			return !result || result === "auto" ? 0 : result;
+		},
+		set: function( tween ) {
+
+			// Use step hook for back compat.
+			// Use cssHook if its there.
+			// Use .style if available and use plain properties where available.
+			if ( jQuery.fx.step[ tween.prop ] ) {
+				jQuery.fx.step[ tween.prop ]( tween );
+			} else if ( tween.elem.nodeType === 1 &&
+				( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+					jQuery.cssHooks[ tween.prop ] ) ) {
+				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+			} else {
+				tween.elem[ tween.prop ] = tween.now;
+			}
+		}
+	}
+};
+
+// Support: IE9
+// Panic based approach to setting things on disconnected nodes
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+	set: function( tween ) {
+		if ( tween.elem.nodeType && tween.elem.parentNode ) {
+			tween.elem[ tween.prop ] = tween.now;
+		}
+	}
+};
+
+jQuery.easing = {
+	linear: function( p ) {
+		return p;
+	},
+	swing: function( p ) {
+		return 0.5 - Math.cos( p * Math.PI ) / 2;
+	},
+	_default: "swing"
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back Compat <1.8 extension point
+jQuery.fx.step = {};
+
+
+
+
+var
+	fxNow, timerId,
+	rfxtypes = /^(?:toggle|show|hide)$/,
+	rrun = /queueHooks$/;
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+	window.setTimeout( function() {
+		fxNow = undefined;
+	} );
+	return ( fxNow = jQuery.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+	var which,
+		i = 0,
+		attrs = { height: type };
+
+	// If we include width, step value is 1 to do all cssExpand values,
+	// otherwise step value is 2 to skip over Left and Right
+	includeWidth = includeWidth ? 1 : 0;
+	for ( ; i < 4 ; i += 2 - includeWidth ) {
+		which = cssExpand[ i ];
+		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+	}
+
+	if ( includeWidth ) {
+		attrs.opacity = attrs.width = type;
+	}
+
+	return attrs;
+}
+
+function createTween( value, prop, animation ) {
+	var tween,
+		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
+		index = 0,
+		length = collection.length;
+	for ( ; index < length; index++ ) {
+		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
+
+			// We're done with this property
+			return tween;
+		}
+	}
+}
+
+function defaultPrefilter( elem, props, opts ) {
+	/* jshint validthis: true */
+	var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
+		anim = this,
+		orig = {},
+		style = elem.style,
+		hidden = elem.nodeType && isHidden( elem ),
+		dataShow = dataPriv.get( elem, "fxshow" );
+
+	// Handle queue: false promises
+	if ( !opts.queue ) {
+		hooks = jQuery._queueHooks( elem, "fx" );
+		if ( hooks.unqueued == null ) {
+			hooks.unqueued = 0;
+			oldfire = hooks.empty.fire;
+			hooks.empty.fire = function() {
+				if ( !hooks.unqueued ) {
+					oldfire();
+				}
+			};
+		}
+		hooks.unqueued++;
+
+		anim.always( function() {
+
+			// Ensure the complete handler is called before this completes
+			anim.always( function() {
+				hooks.unqueued--;
+				if ( !jQuery.queue( elem, "fx" ).length ) {
+					hooks.empty.fire();
+				}
+			} );
+		} );
+	}
+
+	// Height/width overflow pass
+	if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
+
+		// Make sure that nothing sneaks out
+		// Record all 3 overflow attributes because IE9-10 do not
+		// change the overflow attribute when overflowX and
+		// overflowY are set to the same value
+		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+		// Set display property to inline-block for height/width
+		// animations on inline elements that are having width/height animated
+		display = jQuery.css( elem, "display" );
+
+		// Test default display if display is currently "none"
+		checkDisplay = display === "none" ?
+			dataPriv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
+
+		if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
+			style.display = "inline-block";
+		}
+	}
+
+	if ( opts.overflow ) {
+		style.overflow = "hidden";
+		anim.always( function() {
+			style.overflow = opts.overflow[ 0 ];
+			style.overflowX = opts.overflow[ 1 ];
+			style.overflowY = opts.overflow[ 2 ];
+		} );
+	}
+
+	// show/hide pass
+	for ( prop in props ) {
+		value = props[ prop ];
+		if ( rfxtypes.exec( value ) ) {
+			delete props[ prop ];
+			toggle = toggle || value === "toggle";
+			if ( value === ( hidden ? "hide" : "show" ) ) {
+
+				// If there is dataShow left over from a stopped hide or show
+				// and we are going to proceed with show, we should pretend to be hidden
+				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+					hidden = true;
+				} else {
+					continue;
+				}
+			}
+			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+
+		// Any non-fx value stops us from restoring the original display value
+		} else {
+			display = undefined;
+		}
+	}
+
+	if ( !jQuery.isEmptyObject( orig ) ) {
+		if ( dataShow ) {
+			if ( "hidden" in dataShow ) {
+				hidden = dataShow.hidden;
+			}
+		} else {
+			dataShow = dataPriv.access( elem, "fxshow", {} );
+		}
+
+		// Store state if its toggle - enables .stop().toggle() to "reverse"
+		if ( toggle ) {
+			dataShow.hidden = !hidden;
+		}
+		if ( hidden ) {
+			jQuery( elem ).show();
+		} else {
+			anim.done( function() {
+				jQuery( elem ).hide();
+			} );
+		}
+		anim.done( function() {
+			var prop;
+
+			dataPriv.remove( elem, "fxshow" );
+			for ( prop in orig ) {
+				jQuery.style( elem, prop, orig[ prop ] );
+			}
+		} );
+		for ( prop in orig ) {
+			tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+
+			if ( !( prop in dataShow ) ) {
+				dataShow[ prop ] = tween.start;
+				if ( hidden ) {
+					tween.end = tween.start;
+					tween.start = prop === "width" || prop === "height" ? 1 : 0;
+				}
+			}
+		}
+
+	// If this is a noop like .hide().hide(), restore an overwritten display value
+	} else if ( ( display === "none" ? defaultDisplay( elem.nodeName ) : display ) === "inline" ) {
+		style.display = display;
+	}
+}
+
+function propFilter( props, specialEasing ) {
+	var index, name, easing, value, hooks;
+
+	// camelCase, specialEasing and expand cssHook pass
+	for ( index in props ) {
+		name = jQuery.camelCase( index );
+		easing = specialEasing[ name ];
+		value = props[ index ];
+		if ( jQuery.isArray( value ) ) {
+			easing = value[ 1 ];
+			value = props[ index ] = value[ 0 ];
+		}
+
+		if ( index !== name ) {
+			props[ name ] = value;
+			delete props[ index ];
+		}
+
+		hooks = jQuery.cssHooks[ name ];
+		if ( hooks && "expand" in hooks ) {
+			value = hooks.expand( value );
+			delete props[ name ];
+
+			// Not quite $.extend, this won't overwrite existing keys.
+			// Reusing 'index' because we have the correct "name"
+			for ( index in value ) {
+				if ( !( index in props ) ) {
+					props[ index ] = value[ index ];
+					specialEasing[ index ] = easing;
+				}
+			}
+		} else {
+			specialEasing[ name ] = easing;
+		}
+	}
+}
+
+function Animation( elem, properties, options ) {
+	var result,
+		stopped,
+		index = 0,
+		length = Animation.prefilters.length,
+		deferred = jQuery.Deferred().always( function() {
+
+			// Don't match elem in the :animated selector
+			delete tick.elem;
+		} ),
+		tick = function() {
+			if ( stopped ) {
+				return false;
+			}
+			var currentTime = fxNow || createFxNow(),
+				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+
+				// Support: Android 2.3
+				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+				temp = remaining / animation.duration || 0,
+				percent = 1 - temp,
+				index = 0,
+				length = animation.tweens.length;
+
+			for ( ; index < length ; index++ ) {
+				animation.tweens[ index ].run( percent );
+			}
+
+			deferred.notifyWith( elem, [ animation, percent, remaining ] );
+
+			if ( percent < 1 && length ) {
+				return remaining;
+			} else {
+				deferred.resolveWith( elem, [ animation ] );
+				return false;
+			}
+		},
+		animation = deferred.promise( {
+			elem: elem,
+			props: jQuery.extend( {}, properties ),
+			opts: jQuery.extend( true, {
+				specialEasing: {},
+				easing: jQuery.easing._default
+			}, options ),
+			originalProperties: properties,
+			originalOptions: options,
+			startTime: fxNow || createFxNow(),
+			duration: options.duration,
+			tweens: [],
+			createTween: function( prop, end ) {
+				var tween = jQuery.Tween( elem, animation.opts, prop, end,
+						animation.opts.specialEasing[ prop ] || animation.opts.easing );
+				animation.tweens.push( tween );
+				return tween;
+			},
+			stop: function( gotoEnd ) {
+				var index = 0,
+
+					// If we are going to the end, we want to run all the tweens
+					// otherwise we skip this part
+					length = gotoEnd ? animation.tweens.length : 0;
+				if ( stopped ) {
+					return this;
+				}
+				stopped = true;
+				for ( ; index < length ; index++ ) {
+					animation.tweens[ index ].run( 1 );
+				}
+
+				// Resolve when we played the last frame; otherwise, reject
+				if ( gotoEnd ) {
+					deferred.notifyWith( elem, [ animation, 1, 0 ] );
+					deferred.resolveWith( elem, [ animation, gotoEnd ] );
+				} else {
+					deferred.rejectWith( elem, [ animation, gotoEnd ] );
+				}
+				return this;
+			}
+		} ),
+		props = animation.props;
+
+	propFilter( props, animation.opts.specialEasing );
+
+	for ( ; index < length ; index++ ) {
+		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
+		if ( result ) {
+			if ( jQuery.isFunction( result.stop ) ) {
+				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+					jQuery.proxy( result.stop, result );
+			}
+			return result;
+		}
+	}
+
+	jQuery.map( props, createTween, animation );
+
+	if ( jQuery.isFunction( animation.opts.start ) ) {
+		animation.opts.start.call( elem, animation );
+	}
+
+	jQuery.fx.timer(
+		jQuery.extend( tick, {
+			elem: elem,
+			anim: animation,
+			queue: animation.opts.queue
+		} )
+	);
+
+	// attach callbacks from options
+	return animation.progress( animation.opts.progress )
+		.done( animation.opts.done, animation.opts.complete )
+		.fail( animation.opts.fail )
+		.always( animation.opts.always );
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+	tweeners: {
+		"*": [ function( prop, value ) {
+			var tween = this.createTween( prop, value );
+			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
+			return tween;
+		} ]
+	},
+
+	tweener: function( props, callback ) {
+		if ( jQuery.isFunction( props ) ) {
+			callback = props;
+			props = [ "*" ];
+		} else {
+			props = props.match( rnotwhite );
+		}
+
+		var prop,
+			index = 0,
+			length = props.length;
+
+		for ( ; index < length ; index++ ) {
+			prop = props[ index ];
+			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
+			Animation.tweeners[ prop ].unshift( callback );
+		}
+	},
+
+	prefilters: [ defaultPrefilter ],
+
+	prefilter: function( callback, prepend ) {
+		if ( prepend ) {
+			Animation.prefilters.unshift( callback );
+		} else {
+			Animation.prefilters.push( callback );
+		}
+	}
+} );
+
+jQuery.speed = function( speed, easing, fn ) {
+	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+		complete: fn || !fn && easing ||
+			jQuery.isFunction( speed ) && speed,
+		duration: speed,
+		easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+	};
+
+	opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ?
+		opt.duration : opt.duration in jQuery.fx.speeds ?
+			jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
+
+	// Normalize opt.queue - true/undefined/null -> "fx"
+	if ( opt.queue == null || opt.queue === true ) {
+		opt.queue = "fx";
+	}
+
+	// Queueing
+	opt.old = opt.complete;
+
+	opt.complete = function() {
+		if ( jQuery.isFunction( opt.old ) ) {
+			opt.old.call( this );
+		}
+
+		if ( opt.queue ) {
+			jQuery.dequeue( this, opt.queue );
+		}
+	};
+
+	return opt;
+};
+
+jQuery.fn.extend( {
+	fadeTo: function( speed, to, easing, callback ) {
+
+		// Show any hidden elements after setting opacity to 0
+		return this.filter( isHidden ).css( "opacity", 0 ).show()
+
+			// Animate to the value specified
+			.end().animate( { opacity: to }, speed, easing, callback );
+	},
+	animate: function( prop, speed, easing, callback ) {
+		var empty = jQuery.isEmptyObject( prop ),
+			optall = jQuery.speed( speed, easing, callback ),
+			doAnimation = function() {
+
+				// Operate on a copy of prop so per-property easing won't be lost
+				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+				// Empty animations, or finishing resolves immediately
+				if ( empty || dataPriv.get( this, "finish" ) ) {
+					anim.stop( true );
+				}
+			};
+			doAnimation.finish = doAnimation;
+
+		return empty || optall.queue === false ?
+			this.each( doAnimation ) :
+			this.queue( optall.queue, doAnimation );
+	},
+	stop: function( type, clearQueue, gotoEnd ) {
+		var stopQueue = function( hooks ) {
+			var stop = hooks.stop;
+			delete hooks.stop;
+			stop( gotoEnd );
+		};
+
+		if ( typeof type !== "string" ) {
+			gotoEnd = clearQueue;
+			clearQueue = type;
+			type = undefined;
+		}
+		if ( clearQueue && type !== false ) {
+			this.queue( type || "fx", [] );
+		}
+
+		return this.each( function() {
+			var dequeue = true,
+				index = type != null && type + "queueHooks",
+				timers = jQuery.timers,
+				data = dataPriv.get( this );
+
+			if ( index ) {
+				if ( data[ index ] && data[ index ].stop ) {
+					stopQueue( data[ index ] );
+				}
+			} else {
+				for ( index in data ) {
+					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+						stopQueue( data[ index ] );
+					}
+				}
+			}
+
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this &&
+					( type == null || timers[ index ].queue === type ) ) {
+
+					timers[ index ].anim.stop( gotoEnd );
+					dequeue = false;
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Start the next in the queue if the last step wasn't forced.
+			// Timers currently will call their complete callbacks, which
+			// will dequeue but only if they were gotoEnd.
+			if ( dequeue || !gotoEnd ) {
+				jQuery.dequeue( this, type );
+			}
+		} );
+	},
+	finish: function( type ) {
+		if ( type !== false ) {
+			type = type || "fx";
+		}
+		return this.each( function() {
+			var index,
+				data = dataPriv.get( this ),
+				queue = data[ type + "queue" ],
+				hooks = data[ type + "queueHooks" ],
+				timers = jQuery.timers,
+				length = queue ? queue.length : 0;
+
+			// Enable finishing flag on private data
+			data.finish = true;
+
+			// Empty the queue first
+			jQuery.queue( this, type, [] );
+
+			if ( hooks && hooks.stop ) {
+				hooks.stop.call( this, true );
+			}
+
+			// Look for any active animations, and finish them
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+					timers[ index ].anim.stop( true );
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Look for any animations in the old queue and finish them
+			for ( index = 0; index < length; index++ ) {
+				if ( queue[ index ] && queue[ index ].finish ) {
+					queue[ index ].finish.call( this );
+				}
+			}
+
+			// Turn off finishing flag
+			delete data.finish;
+		} );
+	}
+} );
+
+jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+	var cssFn = jQuery.fn[ name ];
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return speed == null || typeof speed === "boolean" ?
+			cssFn.apply( this, arguments ) :
+			this.animate( genFx( name, true ), speed, easing, callback );
+	};
+} );
+
+// Generate shortcuts for custom animations
+jQuery.each( {
+	slideDown: genFx( "show" ),
+	slideUp: genFx( "hide" ),
+	slideToggle: genFx( "toggle" ),
+	fadeIn: { opacity: "show" },
+	fadeOut: { opacity: "hide" },
+	fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return this.animate( props, speed, easing, callback );
+	};
+} );
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+	var timer,
+		i = 0,
+		timers = jQuery.timers;
+
+	fxNow = jQuery.now();
+
+	for ( ; i < timers.length; i++ ) {
+		timer = timers[ i ];
+
+		// Checks the timer has not already been removed
+		if ( !timer() && timers[ i ] === timer ) {
+			timers.splice( i--, 1 );
+		}
+	}
+
+	if ( !timers.length ) {
+		jQuery.fx.stop();
+	}
+	fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+	jQuery.timers.push( timer );
+	if ( timer() ) {
+		jQuery.fx.start();
+	} else {
+		jQuery.timers.pop();
+	}
+};
+
+jQuery.fx.interval = 13;
+jQuery.fx.start = function() {
+	if ( !timerId ) {
+		timerId = window.setInterval( jQuery.fx.tick, jQuery.fx.interval );
+	}
+};
+
+jQuery.fx.stop = function() {
+	window.clearInterval( timerId );
+
+	timerId = null;
+};
+
+jQuery.fx.speeds = {
+	slow: 600,
+	fast: 200,
+
+	// Default speed
+	_default: 400
+};
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// http://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+	type = type || "fx";
+
+	return this.queue( type, function( next, hooks ) {
+		var timeout = window.setTimeout( next, time );
+		hooks.stop = function() {
+			window.clearTimeout( timeout );
+		};
+	} );
+};
+
+
+( function() {
+	var input = document.createElement( "input" ),
+		select = document.createElement( "select" ),
+		opt = select.appendChild( document.createElement( "option" ) );
+
+	input.type = "checkbox";
+
+	// Support: iOS<=5.1, Android<=4.2+
+	// Default value for a checkbox should be "on"
+	support.checkOn = input.value !== "";
+
+	// Support: IE<=11+
+	// Must access selectedIndex to make default options select
+	support.optSelected = opt.selected;
+
+	// Support: Android<=2.3
+	// Options inside disabled selects are incorrectly marked as disabled
+	select.disabled = true;
+	support.optDisabled = !opt.disabled;
+
+	// Support: IE<=11+
+	// An input loses its value after becoming a radio
+	input = document.createElement( "input" );
+	input.value = "t";
+	input.type = "radio";
+	support.radioValue = input.value === "t";
+} )();
+
+
+var boolHook,
+	attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+	attr: function( name, value ) {
+		return access( this, jQuery.attr, name, value, arguments.length > 1 );
+	},
+
+	removeAttr: function( name ) {
+		return this.each( function() {
+			jQuery.removeAttr( this, name );
+		} );
+	}
+} );
+
+jQuery.extend( {
+	attr: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set attributes on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === "undefined" ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		// All attributes are lowercase
+		// Grab necessary hook if one is defined
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+			name = name.toLowerCase();
+			hooks = jQuery.attrHooks[ name ] ||
+				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+		}
+
+		if ( value !== undefined ) {
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+				return;
+			}
+
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			elem.setAttribute( name, value + "" );
+			return value;
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		ret = jQuery.find.attr( elem, name );
+
+		// Non-existent attributes return null, we normalize to undefined
+		return ret == null ? undefined : ret;
+	},
+
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				if ( !support.radioValue && value === "radio" &&
+					jQuery.nodeName( elem, "input" ) ) {
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
+				}
+			}
+		}
+	},
+
+	removeAttr: function( elem, value ) {
+		var name, propName,
+			i = 0,
+			attrNames = value && value.match( rnotwhite );
+
+		if ( attrNames && elem.nodeType === 1 ) {
+			while ( ( name = attrNames[ i++ ] ) ) {
+				propName = jQuery.propFix[ name ] || name;
+
+				// Boolean attributes get special treatment (#10870)
+				if ( jQuery.expr.match.bool.test( name ) ) {
+
+					// Set corresponding property to false
+					elem[ propName ] = false;
+				}
+
+				elem.removeAttribute( name );
+			}
+		}
+	}
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+	set: function( elem, value, name ) {
+		if ( value === false ) {
+
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else {
+			elem.setAttribute( name, name );
+		}
+		return name;
+	}
+};
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+	var getter = attrHandle[ name ] || jQuery.find.attr;
+
+	attrHandle[ name ] = function( elem, name, isXML ) {
+		var ret, handle;
+		if ( !isXML ) {
+
+			// Avoid an infinite loop by temporarily removing this function from the getter
+			handle = attrHandle[ name ];
+			attrHandle[ name ] = ret;
+			ret = getter( elem, name, isXML ) != null ?
+				name.toLowerCase() :
+				null;
+			attrHandle[ name ] = handle;
+		}
+		return ret;
+	};
+} );
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+	rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+	prop: function( name, value ) {
+		return access( this, jQuery.prop, name, value, arguments.length > 1 );
+	},
+
+	removeProp: function( name ) {
+		return this.each( function() {
+			delete this[ jQuery.propFix[ name ] || name ];
+		} );
+	}
+} );
+
+jQuery.extend( {
+	prop: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set properties on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
+		}
+
+		if ( value !== undefined ) {
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			return ( elem[ name ] = value );
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		return elem[ name ];
+	},
+
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+
+				// elem.tabIndex doesn't always return the
+				// correct value when it hasn't been explicitly set
+				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+				// Use proper attribute retrieval(#12072)
+				var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+				return tabindex ?
+					parseInt( tabindex, 10 ) :
+					rfocusable.test( elem.nodeName ) ||
+						rclickable.test( elem.nodeName ) && elem.href ?
+							0 :
+							-1;
+			}
+		}
+	},
+
+	propFix: {
+		"for": "htmlFor",
+		"class": "className"
+	}
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+if ( !support.optSelected ) {
+	jQuery.propHooks.selected = {
+		get: function( elem ) {
+			var parent = elem.parentNode;
+			if ( parent && parent.parentNode ) {
+				parent.parentNode.selectedIndex;
+			}
+			return null;
+		},
+		set: function( elem ) {
+			var parent = elem.parentNode;
+			if ( parent ) {
+				parent.selectedIndex;
+
+				if ( parent.parentNode ) {
+					parent.parentNode.selectedIndex;
+				}
+			}
+		}
+	};
+}
+
+jQuery.each( [
+	"tabIndex",
+	"readOnly",
+	"maxLength",
+	"cellSpacing",
+	"cellPadding",
+	"rowSpan",
+	"colSpan",
+	"useMap",
+	"frameBorder",
+	"contentEditable"
+], function() {
+	jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+
+
+
+var rclass = /[\t\r\n\f]/g;
+
+function getClass( elem ) {
+	return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+jQuery.fn.extend( {
+	addClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		if ( typeof value === "string" && value ) {
+			classes = value.match( rnotwhite ) || [];
+
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+				cur = elem.nodeType === 1 &&
+					( " " + curValue + " " ).replace( rclass, " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+							cur += clazz + " ";
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = jQuery.trim( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	removeClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		if ( !arguments.length ) {
+			return this.attr( "class", "" );
+		}
+
+		if ( typeof value === "string" && value ) {
+			classes = value.match( rnotwhite ) || [];
+
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+
+				// This expression is here for better compressibility (see addClass)
+				cur = elem.nodeType === 1 &&
+					( " " + curValue + " " ).replace( rclass, " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+
+						// Remove *all* instances
+						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+							cur = cur.replace( " " + clazz + " ", " " );
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = jQuery.trim( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value;
+
+		if ( typeof stateVal === "boolean" && type === "string" ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).toggleClass(
+					value.call( this, i, getClass( this ), stateVal ),
+					stateVal
+				);
+			} );
+		}
+
+		return this.each( function() {
+			var className, i, self, classNames;
+
+			if ( type === "string" ) {
+
+				// Toggle individual class names
+				i = 0;
+				self = jQuery( this );
+				classNames = value.match( rnotwhite ) || [];
+
+				while ( ( className = classNames[ i++ ] ) ) {
+
+					// Check each className given, space separated list
+					if ( self.hasClass( className ) ) {
+						self.removeClass( className );
+					} else {
+						self.addClass( className );
+					}
+				}
+
+			// Toggle whole class name
+			} else if ( value === undefined || type === "boolean" ) {
+				className = getClass( this );
+				if ( className ) {
+
+					// Store className if set
+					dataPriv.set( this, "__className__", className );
+				}
+
+				// If the element has a class name or if we're passed `false`,
+				// then remove the whole classname (if there was one, the above saved it).
+				// Otherwise bring back whatever was previously saved (if anything),
+				// falling back to the empty string if nothing was stored.
+				if ( this.setAttribute ) {
+					this.setAttribute( "class",
+						className || value === false ?
+						"" :
+						dataPriv.get( this, "__className__" ) || ""
+					);
+				}
+			}
+		} );
+	},
+
+	hasClass: function( selector ) {
+		var className, elem,
+			i = 0;
+
+		className = " " + selector + " ";
+		while ( ( elem = this[ i++ ] ) ) {
+			if ( elem.nodeType === 1 &&
+				( " " + getClass( elem ) + " " ).replace( rclass, " " )
+					.indexOf( className ) > -1
+			) {
+				return true;
+			}
+		}
+
+		return false;
+	}
+} );
+
+
+
+
+var rreturn = /\r/g,
+	rspaces = /[\x20\t\r\n\f]+/g;
+
+jQuery.fn.extend( {
+	val: function( value ) {
+		var hooks, ret, isFunction,
+			elem = this[ 0 ];
+
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.type ] ||
+					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+				if ( hooks &&
+					"get" in hooks &&
+					( ret = hooks.get( elem, "value" ) ) !== undefined
+				) {
+					return ret;
+				}
+
+				ret = elem.value;
+
+				return typeof ret === "string" ?
+
+					// Handle most common string cases
+					ret.replace( rreturn, "" ) :
+
+					// Handle cases where value is null/undef or number
+					ret == null ? "" : ret;
+			}
+
+			return;
+		}
+
+		isFunction = jQuery.isFunction( value );
+
+		return this.each( function( i ) {
+			var val;
+
+			if ( this.nodeType !== 1 ) {
+				return;
+			}
+
+			if ( isFunction ) {
+				val = value.call( this, i, jQuery( this ).val() );
+			} else {
+				val = value;
+			}
+
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+
+			} else if ( typeof val === "number" ) {
+				val += "";
+
+			} else if ( jQuery.isArray( val ) ) {
+				val = jQuery.map( val, function( value ) {
+					return value == null ? "" : value + "";
+				} );
+			}
+
+			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
+			}
+		} );
+	}
+} );
+
+jQuery.extend( {
+	valHooks: {
+		option: {
+			get: function( elem ) {
+
+				var val = jQuery.find.attr( elem, "value" );
+				return val != null ?
+					val :
+
+					// Support: IE10-11+
+					// option.text throws exceptions (#14686, #14858)
+					// Strip and collapse whitespace
+					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+					jQuery.trim( jQuery.text( elem ) ).replace( rspaces, " " );
+			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, option,
+					options = elem.options,
+					index = elem.selectedIndex,
+					one = elem.type === "select-one" || index < 0,
+					values = one ? null : [],
+					max = one ? index + 1 : options.length,
+					i = index < 0 ?
+						max :
+						one ? index : 0;
+
+				// Loop through all the selected options
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
+
+					// IE8-9 doesn't update selected after form reset (#2551)
+					if ( ( option.selected || i === index ) &&
+
+							// Don't return options that are disabled or in a disabled optgroup
+							( support.optDisabled ?
+								!option.disabled : option.getAttribute( "disabled" ) === null ) &&
+							( !option.parentNode.disabled ||
+								!jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
+
+						// Get the specific value for the option
+						value = jQuery( option ).val();
+
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
+					}
+				}
+
+				return values;
+			},
+
+			set: function( elem, value ) {
+				var optionSet, option,
+					options = elem.options,
+					values = jQuery.makeArray( value ),
+					i = options.length;
+
+				while ( i-- ) {
+					option = options[ i ];
+					if ( option.selected =
+						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+					) {
+						optionSet = true;
+					}
+				}
+
+				// Force browsers to behave consistently when non-matching value is set
+				if ( !optionSet ) {
+					elem.selectedIndex = -1;
+				}
+				return values;
+			}
+		}
+	}
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = {
+		set: function( elem, value ) {
+			if ( jQuery.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+			}
+		}
+	};
+	if ( !support.checkOn ) {
+		jQuery.valHooks[ this ].get = function( elem ) {
+			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+		};
+	}
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
+
+jQuery.extend( jQuery.event, {
+
+	trigger: function( event, data, elem, onlyHandlers ) {
+
+		var i, cur, tmp, bubbleType, ontype, handle, special,
+			eventPath = [ elem || document ],
+			type = hasOwn.call( event, "type" ) ? event.type : event,
+			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+		cur = tmp = elem = elem || document;
+
+		// Don't do events on text and comment nodes
+		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+			return;
+		}
+
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
+		if ( type.indexOf( "." ) > -1 ) {
+
+			// Namespaced trigger; create a regexp to match event type in handle()
+			namespaces = type.split( "." );
+			type = namespaces.shift();
+			namespaces.sort();
+		}
+		ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+		// Caller can pass in a jQuery.Event object, Object, or just an event type string
+		event = event[ jQuery.expando ] ?
+			event :
+			new jQuery.Event( type, typeof event === "object" && event );
+
+		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+		event.isTrigger = onlyHandlers ? 2 : 3;
+		event.namespace = namespaces.join( "." );
+		event.rnamespace = event.namespace ?
+			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+			null;
+
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
+		}
+
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data == null ?
+			[ event ] :
+			jQuery.makeArray( data, [ event ] );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+			return;
+		}
+
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+			bubbleType = special.delegateType || type;
+			if ( !rfocusMorph.test( bubbleType + type ) ) {
+				cur = cur.parentNode;
+			}
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push( cur );
+				tmp = cur;
+			}
+
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( tmp === ( elem.ownerDocument || document ) ) {
+				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+			}
+		}
+
+		// Fire handlers on the event path
+		i = 0;
+		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+
+			event.type = i > 1 ?
+				bubbleType :
+				special.bindType || type;
+
+			// jQuery handler
+			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+				dataPriv.get( cur, "handle" );
+			if ( handle ) {
+				handle.apply( cur, data );
+			}
+
+			// Native handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && handle.apply && acceptData( cur ) ) {
+				event.result = handle.apply( cur, data );
+				if ( event.result === false ) {
+					event.preventDefault();
+				}
+			}
+		}
+		event.type = type;
+
+		// If nobody prevented the default action, do it now
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+			if ( ( !special._default ||
+				special._default.apply( eventPath.pop(), data ) === false ) &&
+				acceptData( elem ) ) {
+
+				// Call a native DOM method on the target with the same name name as the event.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
+
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					tmp = elem[ ontype ];
+
+					if ( tmp ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+					elem[ type ]();
+					jQuery.event.triggered = undefined;
+
+					if ( tmp ) {
+						elem[ ontype ] = tmp;
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	// Piggyback on a donor event to simulate a different one
+	// Used only for `focus(in | out)` events
+	simulate: function( type, elem, event ) {
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{
+				type: type,
+				isSimulated: true
+			}
+		);
+
+		jQuery.event.trigger( e, null, elem );
+	}
+
+} );
+
+jQuery.fn.extend( {
+
+	trigger: function( type, data ) {
+		return this.each( function() {
+			jQuery.event.trigger( type, data, this );
+		} );
+	},
+	triggerHandler: function( type, data ) {
+		var elem = this[ 0 ];
+		if ( elem ) {
+			return jQuery.event.trigger( type, data, elem, true );
+		}
+	}
+} );
+
+
+jQuery.each( ( "blur focus focusin focusout load resize scroll unload click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup error contextmenu" ).split( " " ),
+	function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+} );
+
+jQuery.fn.extend( {
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	}
+} );
+
+
+
+
+support.focusin = "onfocusin" in window;
+
+
+// Support: Firefox
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome, Safari
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://code.google.com/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+		// Attach a single capturing handler on the document while someone wants focusin/focusout
+		var handler = function( event ) {
+			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+		};
+
+		jQuery.event.special[ fix ] = {
+			setup: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix );
+
+				if ( !attaches ) {
+					doc.addEventListener( orig, handler, true );
+				}
+				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+			},
+			teardown: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix ) - 1;
+
+				if ( !attaches ) {
+					doc.removeEventListener( orig, handler, true );
+					dataPriv.remove( doc, fix );
+
+				} else {
+					dataPriv.access( doc, fix, attaches );
+				}
+			}
+		};
+	} );
+}
+var location = window.location;
+
+var nonce = jQuery.now();
+
+var rquery = ( /\?/ );
+
+
+
+// Support: Android 2.3
+// Workaround failure to string-cast null input
+jQuery.parseJSON = function( data ) {
+	return JSON.parse( data + "" );
+};
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+	var xml;
+	if ( !data || typeof data !== "string" ) {
+		return null;
+	}
+
+	// Support: IE9
+	try {
+		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+	} catch ( e ) {
+		xml = undefined;
+	}
+
+	if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
+		jQuery.error( "Invalid XML: " + data );
+	}
+	return xml;
+};
+
+
+var
+	rhash = /#.*$/,
+	rts = /([?&])_=[^&]*/,
+	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+
+	// #7653, #8125, #8152: local protocol detection
+	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+	rnoContent = /^(?:GET|HEAD)$/,
+	rprotocol = /^\/\//,
+
+	/* Prefilters
+	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+	 * 2) These are called:
+	 *    - BEFORE asking for a transport
+	 *    - AFTER param serialization (s.data is a string if s.processData is true)
+	 * 3) key is the dataType
+	 * 4) the catchall symbol "*" can be used
+	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+	 */
+	prefilters = {},
+
+	/* Transports bindings
+	 * 1) key is the dataType
+	 * 2) the catchall symbol "*" can be used
+	 * 3) selection will start with transport dataType and THEN go to "*" if needed
+	 */
+	transports = {},
+
+	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	allTypes = "*/".concat( "*" ),
+
+	// Anchor tag for parsing the document origin
+	originAnchor = document.createElement( "a" );
+	originAnchor.href = location.href;
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+	// dataTypeExpression is optional and defaults to "*"
+	return function( dataTypeExpression, func ) {
+
+		if ( typeof dataTypeExpression !== "string" ) {
+			func = dataTypeExpression;
+			dataTypeExpression = "*";
+		}
+
+		var dataType,
+			i = 0,
+			dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];
+
+		if ( jQuery.isFunction( func ) ) {
+
+			// For each dataType in the dataTypeExpression
+			while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+				// Prepend if requested
+				if ( dataType[ 0 ] === "+" ) {
+					dataType = dataType.slice( 1 ) || "*";
+					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
+
+				// Otherwise append
+				} else {
+					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
+				}
+			}
+		}
+	};
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+	var inspected = {},
+		seekingTransport = ( structure === transports );
+
+	function inspect( dataType ) {
+		var selected;
+		inspected[ dataType ] = true;
+		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+			if ( typeof dataTypeOrTransport === "string" &&
+				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
+				options.dataTypes.unshift( dataTypeOrTransport );
+				inspect( dataTypeOrTransport );
+				return false;
+			} else if ( seekingTransport ) {
+				return !( selected = dataTypeOrTransport );
+			}
+		} );
+		return selected;
+	}
+
+	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+	var key, deep,
+		flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+	for ( key in src ) {
+		if ( src[ key ] !== undefined ) {
+			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+		}
+	}
+	if ( deep ) {
+		jQuery.extend( true, target, deep );
+	}
+
+	return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+	var ct, type, finalDataType, firstDataType,
+		contents = s.contents,
+		dataTypes = s.dataTypes;
+
+	// Remove auto dataType and get content-type in the process
+	while ( dataTypes[ 0 ] === "*" ) {
+		dataTypes.shift();
+		if ( ct === undefined ) {
+			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
+		}
+	}
+
+	// Check if we're dealing with a known content-type
+	if ( ct ) {
+		for ( type in contents ) {
+			if ( contents[ type ] && contents[ type ].test( ct ) ) {
+				dataTypes.unshift( type );
+				break;
+			}
+		}
+	}
+
+	// Check to see if we have a response for the expected dataType
+	if ( dataTypes[ 0 ] in responses ) {
+		finalDataType = dataTypes[ 0 ];
+	} else {
+
+		// Try convertible dataTypes
+		for ( type in responses ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
+				finalDataType = type;
+				break;
+			}
+			if ( !firstDataType ) {
+				firstDataType = type;
+			}
+		}
+
+		// Or just use first one
+		finalDataType = finalDataType || firstDataType;
+	}
+
+	// If we found a dataType
+	// We add the dataType to the list if needed
+	// and return the corresponding response
+	if ( finalDataType ) {
+		if ( finalDataType !== dataTypes[ 0 ] ) {
+			dataTypes.unshift( finalDataType );
+		}
+		return responses[ finalDataType ];
+	}
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+	var conv2, current, conv, tmp, prev,
+		converters = {},
+
+		// Work with a copy of dataTypes in case we need to modify it for conversion
+		dataTypes = s.dataTypes.slice();
+
+	// Create converters map with lowercased keys
+	if ( dataTypes[ 1 ] ) {
+		for ( conv in s.converters ) {
+			converters[ conv.toLowerCase() ] = s.converters[ conv ];
+		}
+	}
+
+	current = dataTypes.shift();
+
+	// Convert to each sequential dataType
+	while ( current ) {
+
+		if ( s.responseFields[ current ] ) {
+			jqXHR[ s.responseFields[ current ] ] = response;
+		}
+
+		// Apply the dataFilter if provided
+		if ( !prev && isSuccess && s.dataFilter ) {
+			response = s.dataFilter( response, s.dataType );
+		}
+
+		prev = current;
+		current = dataTypes.shift();
+
+		if ( current ) {
+
+		// There's only work to do if current dataType is non-auto
+			if ( current === "*" ) {
+
+				current = prev;
+
+			// Convert response if prev dataType is non-auto and differs from current
+			} else if ( prev !== "*" && prev !== current ) {
+
+				// Seek a direct converter
+				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+				// If none found, seek a pair
+				if ( !conv ) {
+					for ( conv2 in converters ) {
+
+						// If conv2 outputs current
+						tmp = conv2.split( " " );
+						if ( tmp[ 1 ] === current ) {
+
+							// If prev can be converted to accepted input
+							conv = converters[ prev + " " + tmp[ 0 ] ] ||
+								converters[ "* " + tmp[ 0 ] ];
+							if ( conv ) {
+
+								// Condense equivalence converters
+								if ( conv === true ) {
+									conv = converters[ conv2 ];
+
+								// Otherwise, insert the intermediate dataType
+								} else if ( converters[ conv2 ] !== true ) {
+									current = tmp[ 0 ];
+									dataTypes.unshift( tmp[ 1 ] );
+								}
+								break;
+							}
+						}
+					}
+				}
+
+				// Apply converter (if not an equivalence)
+				if ( conv !== true ) {
+
+					// Unless errors are allowed to bubble, catch and return them
+					if ( conv && s.throws ) {
+						response = conv( response );
+					} else {
+						try {
+							response = conv( response );
+						} catch ( e ) {
+							return {
+								state: "parsererror",
+								error: conv ? e : "No conversion from " + prev + " to " + current
+							};
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return { state: "success", data: response };
+}
+
+jQuery.extend( {
+
+	// Counter for holding the number of active queries
+	active: 0,
+
+	// Last-Modified header cache for next request
+	lastModified: {},
+	etag: {},
+
+	ajaxSettings: {
+		url: location.href,
+		type: "GET",
+		isLocal: rlocalProtocol.test( location.protocol ),
+		global: true,
+		processData: true,
+		async: true,
+		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+		/*
+		timeout: 0,
+		data: null,
+		dataType: null,
+		username: null,
+		password: null,
+		cache: null,
+		throws: false,
+		traditional: false,
+		headers: {},
+		*/
+
+		accepts: {
+			"*": allTypes,
+			text: "text/plain",
+			html: "text/html",
+			xml: "application/xml, text/xml",
+			json: "application/json, text/javascript"
+		},
+
+		contents: {
+			xml: /\bxml\b/,
+			html: /\bhtml/,
+			json: /\bjson\b/
+		},
+
+		responseFields: {
+			xml: "responseXML",
+			text: "responseText",
+			json: "responseJSON"
+		},
+
+		// Data converters
+		// Keys separate source (or catchall "*") and destination types with a single space
+		converters: {
+
+			// Convert anything to text
+			"* text": String,
+
+			// Text to html (true = no transformation)
+			"text html": true,
+
+			// Evaluate text as a json expression
+			"text json": jQuery.parseJSON,
+
+			// Parse text as xml
+			"text xml": jQuery.parseXML
+		},
+
+		// For options that shouldn't be deep extended:
+		// you can add your own custom options here if
+		// and when you create one that shouldn't be
+		// deep extended (see ajaxExtend)
+		flatOptions: {
+			url: true,
+			context: true
+		}
+	},
+
+	// Creates a full fledged settings object into target
+	// with both ajaxSettings and settings fields.
+	// If target is omitted, writes into ajaxSettings.
+	ajaxSetup: function( target, settings ) {
+		return settings ?
+
+			// Building a settings object
+			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+			// Extending ajaxSettings
+			ajaxExtend( jQuery.ajaxSettings, target );
+	},
+
+	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+	ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+	// Main method
+	ajax: function( url, options ) {
+
+		// If url is an object, simulate pre-1.5 signature
+		if ( typeof url === "object" ) {
+			options = url;
+			url = undefined;
+		}
+
+		// Force options to be an object
+		options = options || {};
+
+		var transport,
+
+			// URL without anti-cache param
+			cacheURL,
+
+			// Response headers
+			responseHeadersString,
+			responseHeaders,
+
+			// timeout handle
+			timeoutTimer,
+
+			// Url cleanup var
+			urlAnchor,
+
+			// To know if global events are to be dispatched
+			fireGlobals,
+
+			// Loop variable
+			i,
+
+			// Create the final options object
+			s = jQuery.ajaxSetup( {}, options ),
+
+			// Callbacks context
+			callbackContext = s.context || s,
+
+			// Context for global events is callbackContext if it is a DOM node or jQuery collection
+			globalEventContext = s.context &&
+				( callbackContext.nodeType || callbackContext.jquery ) ?
+					jQuery( callbackContext ) :
+					jQuery.event,
+
+			// Deferreds
+			deferred = jQuery.Deferred(),
+			completeDeferred = jQuery.Callbacks( "once memory" ),
+
+			// Status-dependent callbacks
+			statusCode = s.statusCode || {},
+
+			// Headers (they are sent all at once)
+			requestHeaders = {},
+			requestHeadersNames = {},
+
+			// The jqXHR state
+			state = 0,
+
+			// Default abort message
+			strAbort = "canceled",
+
+			// Fake xhr
+			jqXHR = {
+				readyState: 0,
+
+				// Builds headers hashtable if needed
+				getResponseHeader: function( key ) {
+					var match;
+					if ( state === 2 ) {
+						if ( !responseHeaders ) {
+							responseHeaders = {};
+							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+							}
+						}
+						match = responseHeaders[ key.toLowerCase() ];
+					}
+					return match == null ? null : match;
+				},
+
+				// Raw string
+				getAllResponseHeaders: function() {
+					return state === 2 ? responseHeadersString : null;
+				},
+
+				// Caches the header
+				setRequestHeader: function( name, value ) {
+					var lname = name.toLowerCase();
+					if ( !state ) {
+						name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
+						requestHeaders[ name ] = value;
+					}
+					return this;
+				},
+
+				// Overrides response content-type header
+				overrideMimeType: function( type ) {
+					if ( !state ) {
+						s.mimeType = type;
+					}
+					return this;
+				},
+
+				// Status-dependent callbacks
+				statusCode: function( map ) {
+					var code;
+					if ( map ) {
+						if ( state < 2 ) {
+							for ( code in map ) {
+
+								// Lazy-add the new callback in a way that preserves old ones
+								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+							}
+						} else {
+
+							// Execute the appropriate callbacks
+							jqXHR.always( map[ jqXHR.status ] );
+						}
+					}
+					return this;
+				},
+
+				// Cancel the request
+				abort: function( statusText ) {
+					var finalText = statusText || strAbort;
+					if ( transport ) {
+						transport.abort( finalText );
+					}
+					done( 0, finalText );
+					return this;
+				}
+			};
+
+		// Attach deferreds
+		deferred.promise( jqXHR ).complete = completeDeferred.add;
+		jqXHR.success = jqXHR.done;
+		jqXHR.error = jqXHR.fail;
+
+		// Remove hash character (#7531: and string promotion)
+		// Add protocol if not provided (prefilters might expect it)
+		// Handle falsy url in the settings object (#10093: consistency with old signature)
+		// We also use the url parameter if available
+		s.url = ( ( url || s.url || location.href ) + "" ).replace( rhash, "" )
+			.replace( rprotocol, location.protocol + "//" );
+
+		// Alias method option to type as per ticket #12004
+		s.type = options.method || options.type || s.method || s.type;
+
+		// Extract dataTypes list
+		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
+
+		// A cross-domain request is in order when the origin doesn't match the current origin.
+		if ( s.crossDomain == null ) {
+			urlAnchor = document.createElement( "a" );
+
+			// Support: IE8-11+
+			// IE throws exception if url is malformed, e.g. http://example.com:80x/
+			try {
+				urlAnchor.href = s.url;
+
+				// Support: IE8-11+
+				// Anchor's host property isn't correctly set when s.url is relative
+				urlAnchor.href = urlAnchor.href;
+				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
+					urlAnchor.protocol + "//" + urlAnchor.host;
+			} catch ( e ) {
+
+				// If there is an error parsing the URL, assume it is crossDomain,
+				// it can be rejected by the transport if it is invalid
+				s.crossDomain = true;
+			}
+		}
+
+		// Convert data if not already a string
+		if ( s.data && s.processData && typeof s.data !== "string" ) {
+			s.data = jQuery.param( s.data, s.traditional );
+		}
+
+		// Apply prefilters
+		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+		// If request was aborted inside a prefilter, stop there
+		if ( state === 2 ) {
+			return jqXHR;
+		}
+
+		// We can fire global events as of now if asked to
+		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+		fireGlobals = jQuery.event && s.global;
+
+		// Watch for a new set of requests
+		if ( fireGlobals && jQuery.active++ === 0 ) {
+			jQuery.event.trigger( "ajaxStart" );
+		}
+
+		// Uppercase the type
+		s.type = s.type.toUpperCase();
+
+		// Determine if request has content
+		s.hasContent = !rnoContent.test( s.type );
+
+		// Save the URL in case we're toying with the If-Modified-Since
+		// and/or If-None-Match header later on
+		cacheURL = s.url;
+
+		// More options handling for requests with no content
+		if ( !s.hasContent ) {
+
+			// If data is available, append data to url
+			if ( s.data ) {
+				cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
+
+				// #9682: remove data so that it's not used in an eventual retry
+				delete s.data;
+			}
+
+			// Add anti-cache in url if needed
+			if ( s.cache === false ) {
+				s.url = rts.test( cacheURL ) ?
+
+					// If there is already a '_' parameter, set its value
+					cacheURL.replace( rts, "$1_=" + nonce++ ) :
+
+					// Otherwise add one to the end
+					cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
+			}
+		}
+
+		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+		if ( s.ifModified ) {
+			if ( jQuery.lastModified[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+			}
+			if ( jQuery.etag[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+			}
+		}
+
+		// Set the correct header, if data is being sent
+		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+			jqXHR.setRequestHeader( "Content-Type", s.contentType );
+		}
+
+		// Set the Accepts header for the server, depending on the dataType
+		jqXHR.setRequestHeader(
+			"Accept",
+			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+				s.accepts[ s.dataTypes[ 0 ] ] +
+					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+				s.accepts[ "*" ]
+		);
+
+		// Check for headers option
+		for ( i in s.headers ) {
+			jqXHR.setRequestHeader( i, s.headers[ i ] );
+		}
+
+		// Allow custom headers/mimetypes and early abort
+		if ( s.beforeSend &&
+			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
+
+			// Abort if not done already and return
+			return jqXHR.abort();
+		}
+
+		// Aborting is no longer a cancellation
+		strAbort = "abort";
+
+		// Install callbacks on deferreds
+		for ( i in { success: 1, error: 1, complete: 1 } ) {
+			jqXHR[ i ]( s[ i ] );
+		}
+
+		// Get transport
+		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+		// If no transport, we auto-abort
+		if ( !transport ) {
+			done( -1, "No Transport" );
+		} else {
+			jqXHR.readyState = 1;
+
+			// Send global event
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+			}
+
+			// If request was aborted inside ajaxSend, stop there
+			if ( state === 2 ) {
+				return jqXHR;
+			}
+
+			// Timeout
+			if ( s.async && s.timeout > 0 ) {
+				timeoutTimer = window.setTimeout( function() {
+					jqXHR.abort( "timeout" );
+				}, s.timeout );
+			}
+
+			try {
+				state = 1;
+				transport.send( requestHeaders, done );
+			} catch ( e ) {
+
+				// Propagate exception as error if not done
+				if ( state < 2 ) {
+					done( -1, e );
+
+				// Simply rethrow otherwise
+				} else {
+					throw e;
+				}
+			}
+		}
+
+		// Callback for when everything is done
+		function done( status, nativeStatusText, responses, headers ) {
+			var isSuccess, success, error, response, modified,
+				statusText = nativeStatusText;
+
+			// Called once
+			if ( state === 2 ) {
+				return;
+			}
+
+			// State is "done" now
+			state = 2;
+
+			// Clear timeout if it exists
+			if ( timeoutTimer ) {
+				window.clearTimeout( timeoutTimer );
+			}
+
+			// Dereference transport for early garbage collection
+			// (no matter how long the jqXHR object will be used)
+			transport = undefined;
+
+			// Cache response headers
+			responseHeadersString = headers || "";
+
+			// Set readyState
+			jqXHR.readyState = status > 0 ? 4 : 0;
+
+			// Determine if successful
+			isSuccess = status >= 200 && status < 300 || status === 304;
+
+			// Get response data
+			if ( responses ) {
+				response = ajaxHandleResponses( s, jqXHR, responses );
+			}
+
+			// Convert no matter what (that way responseXXX fields are always set)
+			response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+			// If successful, handle type chaining
+			if ( isSuccess ) {
+
+				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+				if ( s.ifModified ) {
+					modified = jqXHR.getResponseHeader( "Last-Modified" );
+					if ( modified ) {
+						jQuery.lastModified[ cacheURL ] = modified;
+					}
+					modified = jqXHR.getResponseHeader( "etag" );
+					if ( modified ) {
+						jQuery.etag[ cacheURL ] = modified;
+					}
+				}
+
+				// if no content
+				if ( status === 204 || s.type === "HEAD" ) {
+					statusText = "nocontent";
+
+				// if not modified
+				} else if ( status === 304 ) {
+					statusText = "notmodified";
+
+				// If we have data, let's convert it
+				} else {
+					statusText = response.state;
+					success = response.data;
+					error = response.error;
+					isSuccess = !error;
+				}
+			} else {
+
+				// Extract error from statusText and normalize for non-aborts
+				error = statusText;
+				if ( status || !statusText ) {
+					statusText = "error";
+					if ( status < 0 ) {
+						status = 0;
+					}
+				}
+			}
+
+			// Set data for the fake xhr object
+			jqXHR.status = status;
+			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+			// Success/Error
+			if ( isSuccess ) {
+				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+			} else {
+				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+			}
+
+			// Status-dependent callbacks
+			jqXHR.statusCode( statusCode );
+			statusCode = undefined;
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+					[ jqXHR, s, isSuccess ? success : error ] );
+			}
+
+			// Complete
+			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
+				// Handle the global AJAX counter
+				if ( !( --jQuery.active ) ) {
+					jQuery.event.trigger( "ajaxStop" );
+				}
+			}
+		}
+
+		return jqXHR;
+	},
+
+	getJSON: function( url, data, callback ) {
+		return jQuery.get( url, data, callback, "json" );
+	},
+
+	getScript: function( url, callback ) {
+		return jQuery.get( url, undefined, callback, "script" );
+	}
+} );
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+	jQuery[ method ] = function( url, data, callback, type ) {
+
+		// Shift arguments if data argument was omitted
+		if ( jQuery.isFunction( data ) ) {
+			type = type || callback;
+			callback = data;
+			data = undefined;
+		}
+
+		// The url can be an options object (which then must have .url)
+		return jQuery.ajax( jQuery.extend( {
+			url: url,
+			type: method,
+			dataType: type,
+			data: data,
+			success: callback
+		}, jQuery.isPlainObject( url ) && url ) );
+	};
+} );
+
+
+jQuery._evalUrl = function( url ) {
+	return jQuery.ajax( {
+		url: url,
+
+		// Make this explicit, since user can override this through ajaxSetup (#11264)
+		type: "GET",
+		dataType: "script",
+		async: false,
+		global: false,
+		"throws": true
+	} );
+};
+
+
+jQuery.fn.extend( {
+	wrapAll: function( html ) {
+		var wrap;
+
+		if ( jQuery.isFunction( html ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).wrapAll( html.call( this, i ) );
+			} );
+		}
+
+		if ( this[ 0 ] ) {
+
+			// The elements to wrap the target around
+			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+			if ( this[ 0 ].parentNode ) {
+				wrap.insertBefore( this[ 0 ] );
+			}
+
+			wrap.map( function() {
+				var elem = this;
+
+				while ( elem.firstElementChild ) {
+					elem = elem.firstElementChild;
+				}
+
+				return elem;
+			} ).append( this );
+		}
+
+		return this;
+	},
+
+	wrapInner: function( html ) {
+		if ( jQuery.isFunction( html ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).wrapInner( html.call( this, i ) );
+			} );
+		}
+
+		return this.each( function() {
+			var self = jQuery( this ),
+				contents = self.contents();
+
+			if ( contents.length ) {
+				contents.wrapAll( html );
+
+			} else {
+				self.append( html );
+			}
+		} );
+	},
+
+	wrap: function( html ) {
+		var isFunction = jQuery.isFunction( html );
+
+		return this.each( function( i ) {
+			jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
+		} );
+	},
+
+	unwrap: function() {
+		return this.parent().each( function() {
+			if ( !jQuery.nodeName( this, "body" ) ) {
+				jQuery( this ).replaceWith( this.childNodes );
+			}
+		} ).end();
+	}
+} );
+
+
+jQuery.expr.filters.hidden = function( elem ) {
+	return !jQuery.expr.filters.visible( elem );
+};
+jQuery.expr.filters.visible = function( elem ) {
+
+	// Support: Opera <= 12.12
+	// Opera reports offsetWidths and offsetHeights less than zero on some elements
+	// Use OR instead of AND as the element is not visible if either is true
+	// See tickets #10406 and #13132
+	return elem.offsetWidth > 0 || elem.offsetHeight > 0 || elem.getClientRects().length > 0;
+};
+
+
+
+
+var r20 = /%20/g,
+	rbracket = /\[\]$/,
+	rCRLF = /\r?\n/g,
+	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+	rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+	var name;
+
+	if ( jQuery.isArray( obj ) ) {
+
+		// Serialize array item.
+		jQuery.each( obj, function( i, v ) {
+			if ( traditional || rbracket.test( prefix ) ) {
+
+				// Treat each array item as a scalar.
+				add( prefix, v );
+
+			} else {
+
+				// Item is non-scalar (array or object), encode its numeric index.
+				buildParams(
+					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+					v,
+					traditional,
+					add
+				);
+			}
+		} );
+
+	} else if ( !traditional && jQuery.type( obj ) === "object" ) {
+
+		// Serialize object item.
+		for ( name in obj ) {
+			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+		}
+
+	} else {
+
+		// Serialize scalar item.
+		add( prefix, obj );
+	}
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+	var prefix,
+		s = [],
+		add = function( key, value ) {
+
+			// If value is a function, invoke it and return its value
+			value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
+			s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
+		};
+
+	// Set traditional to true for jQuery <= 1.3.2 behavior.
+	if ( traditional === undefined ) {
+		traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
+	}
+
+	// If an array was passed in, assume that it is an array of form elements.
+	if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+		// Serialize the form elements
+		jQuery.each( a, function() {
+			add( this.name, this.value );
+		} );
+
+	} else {
+
+		// If traditional, encode the "old" way (the way 1.3.2 or older
+		// did it), otherwise encode params recursively.
+		for ( prefix in a ) {
+			buildParams( prefix, a[ prefix ], traditional, add );
+		}
+	}
+
+	// Return the resulting serialization
+	return s.join( "&" ).replace( r20, "+" );
+};
+
+jQuery.fn.extend( {
+	serialize: function() {
+		return jQuery.param( this.serializeArray() );
+	},
+	serializeArray: function() {
+		return this.map( function() {
+
+			// Can add propHook for "elements" to filter or add form elements
+			var elements = jQuery.prop( this, "elements" );
+			return elements ? jQuery.makeArray( elements ) : this;
+		} )
+		.filter( function() {
+			var type = this.type;
+
+			// Use .is( ":disabled" ) so that fieldset[disabled] works
+			return this.name && !jQuery( this ).is( ":disabled" ) &&
+				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+				( this.checked || !rcheckableType.test( type ) );
+		} )
+		.map( function( i, elem ) {
+			var val = jQuery( this ).val();
+
+			return val == null ?
+				null :
+				jQuery.isArray( val ) ?
+					jQuery.map( val, function( val ) {
+						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+					} ) :
+					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+		} ).get();
+	}
+} );
+
+
+jQuery.ajaxSettings.xhr = function() {
+	try {
+		return new window.XMLHttpRequest();
+	} catch ( e ) {}
+};
+
+var xhrSuccessStatus = {
+
+		// File protocol always yields status code 0, assume 200
+		0: 200,
+
+		// Support: IE9
+		// #1450: sometimes IE returns 1223 when it should be 204
+		1223: 204
+	},
+	xhrSupported = jQuery.ajaxSettings.xhr();
+
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+support.ajax = xhrSupported = !!xhrSupported;
+
+jQuery.ajaxTransport( function( options ) {
+	var callback, errorCallback;
+
+	// Cross domain only allowed if supported through XMLHttpRequest
+	if ( support.cors || xhrSupported && !options.crossDomain ) {
+		return {
+			send: function( headers, complete ) {
+				var i,
+					xhr = options.xhr();
+
+				xhr.open(
+					options.type,
+					options.url,
+					options.async,
+					options.username,
+					options.password
+				);
+
+				// Apply custom fields if provided
+				if ( options.xhrFields ) {
+					for ( i in options.xhrFields ) {
+						xhr[ i ] = options.xhrFields[ i ];
+					}
+				}
+
+				// Override mime type if needed
+				if ( options.mimeType && xhr.overrideMimeType ) {
+					xhr.overrideMimeType( options.mimeType );
+				}
+
+				// X-Requested-With header
+				// For cross-domain requests, seeing as conditions for a preflight are
+				// akin to a jigsaw puzzle, we simply never set it to be sure.
+				// (it can always be set on a per-request basis or even using ajaxSetup)
+				// For same-domain requests, won't change header if already provided.
+				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
+					headers[ "X-Requested-With" ] = "XMLHttpRequest";
+				}
+
+				// Set headers
+				for ( i in headers ) {
+					xhr.setRequestHeader( i, headers[ i ] );
+				}
+
+				// Callback
+				callback = function( type ) {
+					return function() {
+						if ( callback ) {
+							callback = errorCallback = xhr.onload =
+								xhr.onerror = xhr.onabort = xhr.onreadystatechange = null;
+
+							if ( type === "abort" ) {
+								xhr.abort();
+							} else if ( type === "error" ) {
+
+								// Support: IE9
+								// On a manual native abort, IE9 throws
+								// errors on any property access that is not readyState
+								if ( typeof xhr.status !== "number" ) {
+									complete( 0, "error" );
+								} else {
+									complete(
+
+										// File: protocol always yields status 0; see #8605, #14207
+										xhr.status,
+										xhr.statusText
+									);
+								}
+							} else {
+								complete(
+									xhrSuccessStatus[ xhr.status ] || xhr.status,
+									xhr.statusText,
+
+									// Support: IE9 only
+									// IE9 has no XHR2 but throws on binary (trac-11426)
+									// For XHR2 non-text, let the caller handle it (gh-2498)
+									( xhr.responseType || "text" ) !== "text"  ||
+									typeof xhr.responseText !== "string" ?
+										{ binary: xhr.response } :
+										{ text: xhr.responseText },
+									xhr.getAllResponseHeaders()
+								);
+							}
+						}
+					};
+				};
+
+				// Listen to events
+				xhr.onload = callback();
+				errorCallback = xhr.onerror = callback( "error" );
+
+				// Support: IE9
+				// Use onreadystatechange to replace onabort
+				// to handle uncaught aborts
+				if ( xhr.onabort !== undefined ) {
+					xhr.onabort = errorCallback;
+				} else {
+					xhr.onreadystatechange = function() {
+
+						// Check readyState before timeout as it changes
+						if ( xhr.readyState === 4 ) {
+
+							// Allow onerror to be called first,
+							// but that will not handle a native abort
+							// Also, save errorCallback to a variable
+							// as xhr.onerror cannot be accessed
+							window.setTimeout( function() {
+								if ( callback ) {
+									errorCallback();
+								}
+							} );
+						}
+					};
+				}
+
+				// Create the abort callback
+				callback = callback( "abort" );
+
+				try {
+
+					// Do send the request (this may raise an exception)
+					xhr.send( options.hasContent && options.data || null );
+				} catch ( e ) {
+
+					// #14683: Only rethrow if this hasn't been notified as an error yet
+					if ( callback ) {
+						throw e;
+					}
+				}
+			},
+
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+// Install script dataType
+jQuery.ajaxSetup( {
+	accepts: {
+		script: "text/javascript, application/javascript, " +
+			"application/ecmascript, application/x-ecmascript"
+	},
+	contents: {
+		script: /\b(?:java|ecma)script\b/
+	},
+	converters: {
+		"text script": function( text ) {
+			jQuery.globalEval( text );
+			return text;
+		}
+	}
+} );
+
+// Handle cache's special case and crossDomain
+jQuery.ajaxPrefilter( "script", function( s ) {
+	if ( s.cache === undefined ) {
+		s.cache = false;
+	}
+	if ( s.crossDomain ) {
+		s.type = "GET";
+	}
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+	// This transport only deals with cross domain requests
+	if ( s.crossDomain ) {
+		var script, callback;
+		return {
+			send: function( _, complete ) {
+				script = jQuery( "<script>" ).prop( {
+					charset: s.scriptCharset,
+					src: s.url
+				} ).on(
+					"load error",
+					callback = function( evt ) {
+						script.remove();
+						callback = null;
+						if ( evt ) {
+							complete( evt.type === "error" ? 404 : 200, evt.type );
+						}
+					}
+				);
+
+				// Use native DOM manipulation to avoid our domManip AJAX trickery
+				document.head.appendChild( script[ 0 ] );
+			},
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+var oldCallbacks = [],
+	rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+	jsonp: "callback",
+	jsonpCallback: function() {
+		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+		this[ callback ] = true;
+		return callback;
+	}
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+	var callbackName, overwritten, responseContainer,
+		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+			"url" :
+			typeof s.data === "string" &&
+				( s.contentType || "" )
+					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+				rjsonp.test( s.data ) && "data"
+		);
+
+	// Handle iff the expected data type is "jsonp" or we have a parameter to set
+	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+		// Get callback name, remembering preexisting value associated with it
+		callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
+			s.jsonpCallback() :
+			s.jsonpCallback;
+
+		// Insert callback into url or form data
+		if ( jsonProp ) {
+			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+		} else if ( s.jsonp !== false ) {
+			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+		}
+
+		// Use data converter to retrieve json after script execution
+		s.converters[ "script json" ] = function() {
+			if ( !responseContainer ) {
+				jQuery.error( callbackName + " was not called" );
+			}
+			return responseContainer[ 0 ];
+		};
+
+		// Force json dataType
+		s.dataTypes[ 0 ] = "json";
+
+		// Install callback
+		overwritten = window[ callbackName ];
+		window[ callbackName ] = function() {
+			responseContainer = arguments;
+		};
+
+		// Clean-up function (fires after converters)
+		jqXHR.always( function() {
+
+			// If previous value didn't exist - remove it
+			if ( overwritten === undefined ) {
+				jQuery( window ).removeProp( callbackName );
+
+			// Otherwise restore preexisting value
+			} else {
+				window[ callbackName ] = overwritten;
+			}
+
+			// Save back as free
+			if ( s[ callbackName ] ) {
+
+				// Make sure that re-using the options doesn't screw things around
+				s.jsonpCallback = originalSettings.jsonpCallback;
+
+				// Save the callback name for future use
+				oldCallbacks.push( callbackName );
+			}
+
+			// Call if it was a function and we have a response
+			if ( responseContainer && jQuery.isFunction( overwritten ) ) {
+				overwritten( responseContainer[ 0 ] );
+			}
+
+			responseContainer = overwritten = undefined;
+		} );
+
+		// Delegate to script
+		return "script";
+	}
+} );
+
+
+
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+	if ( !data || typeof data !== "string" ) {
+		return null;
+	}
+	if ( typeof context === "boolean" ) {
+		keepScripts = context;
+		context = false;
+	}
+	context = context || document;
+
+	var parsed = rsingleTag.exec( data ),
+		scripts = !keepScripts && [];
+
+	// Single tag
+	if ( parsed ) {
+		return [ context.createElement( parsed[ 1 ] ) ];
+	}
+
+	parsed = buildFragment( [ data ], context, scripts );
+
+	if ( scripts && scripts.length ) {
+		jQuery( scripts ).remove();
+	}
+
+	return jQuery.merge( [], parsed.childNodes );
+};
+
+
+// Keep a copy of the old load method
+var _load = jQuery.fn.load;
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+	if ( typeof url !== "string" && _load ) {
+		return _load.apply( this, arguments );
+	}
+
+	var selector, type, response,
+		self = this,
+		off = url.indexOf( " " );
+
+	if ( off > -1 ) {
+		selector = jQuery.trim( url.slice( off ) );
+		url = url.slice( 0, off );
+	}
+
+	// If it's a function
+	if ( jQuery.isFunction( params ) ) {
+
+		// We assume that it's the callback
+		callback = params;
+		params = undefined;
+
+	// Otherwise, build a param string
+	} else if ( params && typeof params === "object" ) {
+		type = "POST";
+	}
+
+	// If we have elements to modify, make the request
+	if ( self.length > 0 ) {
+		jQuery.ajax( {
+			url: url,
+
+			// If "type" variable is undefined, then "GET" method will be used.
+			// Make value of this field explicit since
+			// user can override it through ajaxSetup method
+			type: type || "GET",
+			dataType: "html",
+			data: params
+		} ).done( function( responseText ) {
+
+			// Save response for use in complete callback
+			response = arguments;
+
+			self.html( selector ?
+
+				// If a selector was specified, locate the right elements in a dummy div
+				// Exclude scripts to avoid IE 'Permission Denied' errors
+				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+				// Otherwise use the full result
+				responseText );
+
+		// If the request succeeds, this function gets "data", "status", "jqXHR"
+		// but they are ignored because response was set above.
+		// If it fails, this function gets "jqXHR", "status", "error"
+		} ).always( callback && function( jqXHR, status ) {
+			self.each( function() {
+				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+			} );
+		} );
+	}
+
+	return this;
+};
+
+
+
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+	"ajaxStart",
+	"ajaxStop",
+	"ajaxComplete",
+	"ajaxError",
+	"ajaxSuccess",
+	"ajaxSend"
+], function( i, type ) {
+	jQuery.fn[ type ] = function( fn ) {
+		return this.on( type, fn );
+	};
+} );
+
+
+
+
+jQuery.expr.filters.animated = function( elem ) {
+	return jQuery.grep( jQuery.timers, function( fn ) {
+		return elem === fn.elem;
+	} ).length;
+};
+
+
+
+
+/**
+ * Gets a window from an element
+ */
+function getWindow( elem ) {
+	return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;
+}
+
+jQuery.offset = {
+	setOffset: function( elem, options, i ) {
+		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+			position = jQuery.css( elem, "position" ),
+			curElem = jQuery( elem ),
+			props = {};
+
+		// Set position first, in-case top/left are set even on static elem
+		if ( position === "static" ) {
+			elem.style.position = "relative";
+		}
+
+		curOffset = curElem.offset();
+		curCSSTop = jQuery.css( elem, "top" );
+		curCSSLeft = jQuery.css( elem, "left" );
+		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+		// Need to be able to calculate position if either
+		// top or left is auto and position is either absolute or fixed
+		if ( calculatePosition ) {
+			curPosition = curElem.position();
+			curTop = curPosition.top;
+			curLeft = curPosition.left;
+
+		} else {
+			curTop = parseFloat( curCSSTop ) || 0;
+			curLeft = parseFloat( curCSSLeft ) || 0;
+		}
+
+		if ( jQuery.isFunction( options ) ) {
+
+			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+		}
+
+		if ( options.top != null ) {
+			props.top = ( options.top - curOffset.top ) + curTop;
+		}
+		if ( options.left != null ) {
+			props.left = ( options.left - curOffset.left ) + curLeft;
+		}
+
+		if ( "using" in options ) {
+			options.using.call( elem, props );
+
+		} else {
+			curElem.css( props );
+		}
+	}
+};
+
+jQuery.fn.extend( {
+	offset: function( options ) {
+		if ( arguments.length ) {
+			return options === undefined ?
+				this :
+				this.each( function( i ) {
+					jQuery.offset.setOffset( this, options, i );
+				} );
+		}
+
+		var docElem, win,
+			elem = this[ 0 ],
+			box = { top: 0, left: 0 },
+			doc = elem && elem.ownerDocument;
+
+		if ( !doc ) {
+			return;
+		}
+
+		docElem = doc.documentElement;
+
+		// Make sure it's not a disconnected DOM node
+		if ( !jQuery.contains( docElem, elem ) ) {
+			return box;
+		}
+
+		box = elem.getBoundingClientRect();
+		win = getWindow( doc );
+		return {
+			top: box.top + win.pageYOffset - docElem.clientTop,
+			left: box.left + win.pageXOffset - docElem.clientLeft
+		};
+	},
+
+	position: function() {
+		if ( !this[ 0 ] ) {
+			return;
+		}
+
+		var offsetParent, offset,
+			elem = this[ 0 ],
+			parentOffset = { top: 0, left: 0 };
+
+		// Fixed elements are offset from window (parentOffset = {top:0, left: 0},
+		// because it is its only offset parent
+		if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+			// Assume getBoundingClientRect is there when computed position is fixed
+			offset = elem.getBoundingClientRect();
+
+		} else {
+
+			// Get *real* offsetParent
+			offsetParent = this.offsetParent();
+
+			// Get correct offsets
+			offset = this.offset();
+			if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
+				parentOffset = offsetParent.offset();
+			}
+
+			// Add offsetParent borders
+			parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
+			parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
+		}
+
+		// Subtract parent offsets and element margins
+		return {
+			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+		};
+	},
+
+	// This method will return documentElement in the following cases:
+	// 1) For the element inside the iframe without offsetParent, this method will return
+	//    documentElement of the parent window
+	// 2) For the hidden or detached element
+	// 3) For body or html element, i.e. in case of the html node - it will return itself
+	//
+	// but those exceptions were never presented as a real life use-cases
+	// and might be considered as more preferable results.
+	//
+	// This logic, however, is not guaranteed and can change at any point in the future
+	offsetParent: function() {
+		return this.map( function() {
+			var offsetParent = this.offsetParent;
+
+			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+				offsetParent = offsetParent.offsetParent;
+			}
+
+			return offsetParent || documentElement;
+		} );
+	}
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+	var top = "pageYOffset" === prop;
+
+	jQuery.fn[ method ] = function( val ) {
+		return access( this, function( elem, method, val ) {
+			var win = getWindow( elem );
+
+			if ( val === undefined ) {
+				return win ? win[ prop ] : elem[ method ];
+			}
+
+			if ( win ) {
+				win.scrollTo(
+					!top ? val : win.pageXOffset,
+					top ? val : win.pageYOffset
+				);
+
+			} else {
+				elem[ method ] = val;
+			}
+		}, method, val, arguments.length );
+	};
+} );
+
+// Support: Safari<7-8+, Chrome<37-44+
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+		function( elem, computed ) {
+			if ( computed ) {
+				computed = curCSS( elem, prop );
+
+				// If curCSS returns percentage, fallback to offset
+				return rnumnonpx.test( computed ) ?
+					jQuery( elem ).position()[ prop ] + "px" :
+					computed;
+			}
+		}
+	);
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+		function( defaultExtra, funcName ) {
+
+		// Margin is only for outerHeight, outerWidth
+		jQuery.fn[ funcName ] = function( margin, value ) {
+			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+			return access( this, function( elem, type, value ) {
+				var doc;
+
+				if ( jQuery.isWindow( elem ) ) {
+
+					// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
+					// isn't a whole lot we can do. See pull request at this URL for discussion:
+					// https://github.com/jquery/jquery/pull/764
+					return elem.document.documentElement[ "client" + name ];
+				}
+
+				// Get document width or height
+				if ( elem.nodeType === 9 ) {
+					doc = elem.documentElement;
+
+					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+					// whichever is greatest
+					return Math.max(
+						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+						elem.body[ "offset" + name ], doc[ "offset" + name ],
+						doc[ "client" + name ]
+					);
+				}
+
+				return value === undefined ?
+
+					// Get width or height on the element, requesting but not forcing parseFloat
+					jQuery.css( elem, type, extra ) :
+
+					// Set width or height on the element
+					jQuery.style( elem, type, value, extra );
+			}, type, chainable ? margin : undefined, chainable, null );
+		};
+	} );
+} );
+
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	},
+	size: function() {
+		return this.length;
+	}
+} );
+
+jQuery.fn.andSelf = jQuery.fn.addBack;
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+	define( "jquery", [], function() {
+		return jQuery;
+	} );
+}
+
+
+
+var
+
+	// Map over jQuery in case of overwrite
+	_jQuery = window.jQuery,
+
+	// Map over the $ in case of overwrite
+	_$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+	if ( window.$ === jQuery ) {
+		window.$ = _$;
+	}
+
+	if ( deep && window.jQuery === jQuery ) {
+		window.jQuery = _jQuery;
+	}
+
+	return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+	window.jQuery = window.$ = jQuery;
+}
+
+return jQuery;
+}));
+
+;(function () {
+	'use strict';
+
+	/**
+	 * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.
+	 *
+	 * @codingstandard ftlabs-jsv2
+	 * @copyright The Financial Times Limited [All Rights Reserved]
+	 * @license MIT License (see LICENSE.txt)
+	 */
+
+	/*jslint browser:true, node:true*/
+	/*global define, Event, Node*/
+
+
+	/**
+	 * Instantiate fast-clicking listeners on the specified layer.
+	 *
+	 * @constructor
+	 * @param {Element} layer The layer to listen on
+	 * @param {Object} [options={}] The options to override the defaults
+	 */
+	function FastClick(layer, options) {
+		var oldOnClick;
+
+		options = options || {};
+
+		/**
+		 * Whether a click is currently being tracked.
+		 *
+		 * @type boolean
+		 */
+		this.trackingClick = false;
+
+
+		/**
+		 * Timestamp for when click tracking started.
+		 *
+		 * @type number
+		 */
+		this.trackingClickStart = 0;
+
+
+		/**
+		 * The element being tracked for a click.
+		 *
+		 * @type EventTarget
+		 */
+		this.targetElement = null;
+
+
+		/**
+		 * X-coordinate of touch start event.
+		 *
+		 * @type number
+		 */
+		this.touchStartX = 0;
+
+
+		/**
+		 * Y-coordinate of touch start event.
+		 *
+		 * @type number
+		 */
+		this.touchStartY = 0;
+
+
+		/**
+		 * ID of the last touch, retrieved from Touch.identifier.
+		 *
+		 * @type number
+		 */
+		this.lastTouchIdentifier = 0;
+
+
+		/**
+		 * Touchmove boundary, beyond which a click will be cancelled.
+		 *
+		 * @type number
+		 */
+		this.touchBoundary = options.touchBoundary || 10;
+
+
+		/**
+		 * The FastClick layer.
+		 *
+		 * @type Element
+		 */
+		this.layer = layer;
+
+		/**
+		 * The minimum time between tap(touchstart and touchend) events
+		 *
+		 * @type number
+		 */
+		this.tapDelay = options.tapDelay || 200;
+
+		/**
+		 * The maximum time for a tap
+		 *
+		 * @type number
+		 */
+		this.tapTimeout = options.tapTimeout || 700;
+
+		if (FastClick.notNeeded(layer)) {
+			return;
+		}
+
+		// Some old versions of Android don't have Function.prototype.bind
+		function bind(method, context) {
+			return function() { return method.apply(context, arguments); };
+		}
+
+
+		var methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel'];
+		var context = this;
+		for (var i = 0, l = methods.length; i < l; i++) {
+			context[methods[i]] = bind(context[methods[i]], context);
+		}
+
+		// Set up event handlers as required
+		if (deviceIsAndroid) {
+			layer.addEventListener('mouseover', this.onMouse, true);
+			layer.addEventListener('mousedown', this.onMouse, true);
+			layer.addEventListener('mouseup', this.onMouse, true);
+		}
+
+		layer.addEventListener('click', this.onClick, true);
+		layer.addEventListener('touchstart', this.onTouchStart, false);
+		layer.addEventListener('touchmove', this.onTouchMove, false);
+		layer.addEventListener('touchend', this.onTouchEnd, false);
+		layer.addEventListener('touchcancel', this.onTouchCancel, false);
+
+		// Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)
+		// which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick
+		// layer when they are cancelled.
+		if (!Event.prototype.stopImmediatePropagation) {
+			layer.removeEventListener = function(type, callback, capture) {
+				var rmv = Node.prototype.removeEventListener;
+				if (type === 'click') {
+					rmv.call(layer, type, callback.hijacked || callback, capture);
+				} else {
+					rmv.call(layer, type, callback, capture);
+				}
+			};
+
+			layer.addEventListener = function(type, callback, capture) {
+				var adv = Node.prototype.addEventListener;
+				if (type === 'click') {
+					adv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) {
+						if (!event.propagationStopped) {
+							callback(event);
+						}
+					}), capture);
+				} else {
+					adv.call(layer, type, callback, capture);
+				}
+			};
+		}
+
+		// If a handler is already declared in the element's onclick attribute, it will be fired before
+		// FastClick's onClick handler. Fix this by pulling out the user-defined handler function and
+		// adding it as listener.
+		if (typeof layer.onclick === 'function') {
+
+			// Android browser on at least 3.2 requires a new reference to the function in layer.onclick
+			// - the old one won't work if passed to addEventListener directly.
+			oldOnClick = layer.onclick;
+			layer.addEventListener('click', function(event) {
+				oldOnClick(event);
+			}, false);
+			layer.onclick = null;
+		}
+	}
+
+	/**
+	* Windows Phone 8.1 fakes user agent string to look like Android and iPhone.
+	*
+	* @type boolean
+	*/
+	var deviceIsWindowsPhone = navigator.userAgent.indexOf("Windows Phone") >= 0;
+
+	/**
+	 * Android requires exceptions.
+	 *
+	 * @type boolean
+	 */
+	var deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0 && !deviceIsWindowsPhone;
+
+
+	/**
+	 * iOS requires exceptions.
+	 *
+	 * @type boolean
+	 */
+	var deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent) && !deviceIsWindowsPhone;
+
+
+	/**
+	 * iOS 4 requires an exception for select elements.
+	 *
+	 * @type boolean
+	 */
+	var deviceIsIOS4 = deviceIsIOS && (/OS 4_\d(_\d)?/).test(navigator.userAgent);
+
+
+	/**
+	 * iOS 6.0-7.* requires the target element to be manually derived
+	 *
+	 * @type boolean
+	 */
+	var deviceIsIOSWithBadTarget = deviceIsIOS && (/OS [6-7]_\d/).test(navigator.userAgent);
+
+	/**
+	 * BlackBerry requires exceptions.
+	 *
+	 * @type boolean
+	 */
+	var deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0;
+
+	/**
+	 * Determine whether a given element requires a native click.
+	 *
+	 * @param {EventTarget|Element} target Target DOM element
+	 * @returns {boolean} Returns true if the element needs a native click
+	 */
+	FastClick.prototype.needsClick = function(target) {
+		switch (target.nodeName.toLowerCase()) {
+
+		// Don't send a synthetic click to disabled inputs (issue #62)
+		case 'button':
+		case 'select':
+		case 'textarea':
+			if (target.disabled) {
+				return true;
+			}
+
+			break;
+		case 'input':
+
+			// File inputs need real clicks on iOS 6 due to a browser bug (issue #68)
+			if ((deviceIsIOS && target.type === 'file') || target.disabled) {
+				return true;
+			}
+
+			break;
+		case 'label':
+		case 'iframe': // iOS8 homescreen apps can prevent events bubbling into frames
+		case 'video':
+			return true;
+		}
+
+		return (/\bneedsclick\b/).test(target.className);
+	};
+
+
+	/**
+	 * Determine whether a given element requires a call to focus to simulate click into element.
+	 *
+	 * @param {EventTarget|Element} target Target DOM element
+	 * @returns {boolean} Returns true if the element requires a call to focus to simulate native click.
+	 */
+	FastClick.prototype.needsFocus = function(target) {
+		switch (target.nodeName.toLowerCase()) {
+		case 'textarea':
+			return true;
+		case 'select':
+			return !deviceIsAndroid;
+		case 'input':
+			switch (target.type) {
+			case 'button':
+			case 'checkbox':
+			case 'file':
+			case 'image':
+			case 'radio':
+			case 'submit':
+				return false;
+			}
+
+			// No point in attempting to focus disabled inputs
+			return !target.disabled && !target.readOnly;
+		default:
+			return (/\bneedsfocus\b/).test(target.className);
+		}
+	};
+
+
+	/**
+	 * Send a click event to the specified element.
+	 *
+	 * @param {EventTarget|Element} targetElement
+	 * @param {Event} event
+	 */
+	FastClick.prototype.sendClick = function(targetElement, event) {
+		var clickEvent, touch;
+
+		// On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24)
+		if (document.activeElement && document.activeElement !== targetElement) {
+			document.activeElement.blur();
+		}
+
+		touch = event.changedTouches[0];
+
+		// Synthesise a click event, with an extra attribute so it can be tracked
+		clickEvent = document.createEvent('MouseEvents');
+		clickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);
+		clickEvent.forwardedTouchEvent = true;
+		targetElement.dispatchEvent(clickEvent);
+	};
+
+	FastClick.prototype.determineEventType = function(targetElement) {
+
+		//Issue #159: Android Chrome Select Box does not open with a synthetic click event
+		if (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') {
+			return 'mousedown';
+		}
+
+		return 'click';
+	};
+
+
+	/**
+	 * @param {EventTarget|Element} targetElement
+	 */
+	FastClick.prototype.focus = function(targetElement) {
+		var length;
+
+		// Issue #160: on iOS 7, some input elements (e.g. date datetime month) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724.
+		if (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month') {
+			length = targetElement.value.length;
+			targetElement.setSelectionRange(length, length);
+		} else {
+			targetElement.focus();
+		}
+	};
+
+
+	/**
+	 * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it.
+	 *
+	 * @param {EventTarget|Element} targetElement
+	 */
+	FastClick.prototype.updateScrollParent = function(targetElement) {
+		var scrollParent, parentElement;
+
+		scrollParent = targetElement.fastClickScrollParent;
+
+		// Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the
+		// target element was moved to another parent.
+		if (!scrollParent || !scrollParent.contains(targetElement)) {
+			parentElement = targetElement;
+			do {
+				if (parentElement.scrollHeight > parentElement.offsetHeight) {
+					scrollParent = parentElement;
+					targetElement.fastClickScrollParent = parentElement;
+					break;
+				}
+
+				parentElement = parentElement.parentElement;
+			} while (parentElement);
+		}
+
+		// Always update the scroll top tracker if possible.
+		if (scrollParent) {
+			scrollParent.fastClickLastScrollTop = scrollParent.scrollTop;
+		}
+	};
+
+
+	/**
+	 * @param {EventTarget} targetElement
+	 * @returns {Element|EventTarget}
+	 */
+	FastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) {
+
+		// On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node.
+		if (eventTarget.nodeType === Node.TEXT_NODE) {
+			return eventTarget.parentNode;
+		}
+
+		return eventTarget;
+	};
+
+
+	/**
+	 * On touch start, record the position and scroll offset.
+	 *
+	 * @param {Event} event
+	 * @returns {boolean}
+	 */
+	FastClick.prototype.onTouchStart = function(event) {
+		var targetElement, touch, selection;
+
+		// Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111).
+		if (event.targetTouches.length > 1) {
+			return true;
+		}
+
+		targetElement = this.getTargetElementFromEventTarget(event.target);
+		touch = event.targetTouches[0];
+
+		if (deviceIsIOS) {
+
+			// Only trusted events will deselect text on iOS (issue #49)
+			selection = window.getSelection();
+			if (selection.rangeCount && !selection.isCollapsed) {
+				return true;
+			}
+
+			if (!deviceIsIOS4) {
+
+				// Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23):
+				// when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched
+				// with the same identifier as the touch event that previously triggered the click that triggered the alert.
+				// Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an
+				// immediately preceeding touch event (issue #52), so this fix is unavailable on that platform.
+				// Issue 120: touch.identifier is 0 when Chrome dev tools 'Emulate touch events' is set with an iOS device UA string,
+				// which causes all touch events to be ignored. As this block only applies to iOS, and iOS identifiers are always long,
+				// random integers, it's safe to to continue if the identifier is 0 here.
+				if (touch.identifier && touch.identifier === this.lastTouchIdentifier) {
+					event.preventDefault();
+					return false;
+				}
+
+				this.lastTouchIdentifier = touch.identifier;
+
+				// If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and:
+				// 1) the user does a fling scroll on the scrollable layer
+				// 2) the user stops the fling scroll with another tap
+				// then the event.target of the last 'touchend' event will be the element that was under the user's finger
+				// when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check
+				// is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42).
+				this.updateScrollParent(targetElement);
+			}
+		}
+
+		this.trackingClick = true;
+		this.trackingClickStart = event.timeStamp;
+		this.targetElement = targetElement;
+
+		this.touchStartX = touch.pageX;
+		this.touchStartY = touch.pageY;
+
+		// Prevent phantom clicks on fast double-tap (issue #36)
+		if ((event.timeStamp - this.lastClickTime) < this.tapDelay) {
+			event.preventDefault();
+		}
+
+		return true;
+	};
+
+
+	/**
+	 * Based on a touchmove event object, check whether the touch has moved past a boundary since it started.
+	 *
+	 * @param {Event} event
+	 * @returns {boolean}
+	 */
+	FastClick.prototype.touchHasMoved = function(event) {
+		var touch = event.changedTouches[0], boundary = this.touchBoundary;
+
+		if (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) {
+			return true;
+		}
+
+		return false;
+	};
+
+
+	/**
+	 * Update the last position.
+	 *
+	 * @param {Event} event
+	 * @returns {boolean}
+	 */
+	FastClick.prototype.onTouchMove = function(event) {
+		if (!this.trackingClick) {
+			return true;
+		}
+
+		// If the touch has moved, cancel the click tracking
+		if (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) {
+			this.trackingClick = false;
+			this.targetElement = null;
+		}
+
+		return true;
+	};
+
+
+	/**
+	 * Attempt to find the labelled control for the given label element.
+	 *
+	 * @param {EventTarget|HTMLLabelElement} labelElement
+	 * @returns {Element|null}
+	 */
+	FastClick.prototype.findControl = function(labelElement) {
+
+		// Fast path for newer browsers supporting the HTML5 control attribute
+		if (labelElement.control !== undefined) {
+			return labelElement.control;
+		}
+
+		// All browsers under test that support touch events also support the HTML5 htmlFor attribute
+		if (labelElement.htmlFor) {
+			return document.getElementById(labelElement.htmlFor);
+		}
+
+		// If no for attribute exists, attempt to retrieve the first labellable descendant element
+		// the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label
+		return labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea');
+	};
+
+
+	/**
+	 * On touch end, determine whether to send a click event at once.
+	 *
+	 * @param {Event} event
+	 * @returns {boolean}
+	 */
+	FastClick.prototype.onTouchEnd = function(event) {
+		var forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement;
+
+		if (!this.trackingClick) {
+			return true;
+		}
+
+		// Prevent phantom clicks on fast double-tap (issue #36)
+		if ((event.timeStamp - this.lastClickTime) < this.tapDelay) {
+			this.cancelNextClick = true;
+			return true;
+		}
+
+		if ((event.timeStamp - this.trackingClickStart) > this.tapTimeout) {
+			return true;
+		}
+
+		// Reset to prevent wrong click cancel on input (issue #156).
+		this.cancelNextClick = false;
+
+		this.lastClickTime = event.timeStamp;
+
+		trackingClickStart = this.trackingClickStart;
+		this.trackingClick = false;
+		this.trackingClickStart = 0;
+
+		// On some iOS devices, the targetElement supplied with the event is invalid if the layer
+		// is performing a transition or scroll, and has to be re-detected manually. Note that
+		// for this to function correctly, it must be called *after* the event target is checked!
+		// See issue #57; also filed as rdar://13048589 .
+		if (deviceIsIOSWithBadTarget) {
+			touch = event.changedTouches[0];
+
+			// In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null
+			targetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement;
+			targetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent;
+		}
+
+		targetTagName = targetElement.tagName.toLowerCase();
+		if (targetTagName === 'label') {
+			forElement = this.findControl(targetElement);
+			if (forElement) {
+				this.focus(targetElement);
+				if (deviceIsAndroid) {
+					return false;
+				}
+
+				targetElement = forElement;
+			}
+		} else if (this.needsFocus(targetElement)) {
+
+			// Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through.
+			// Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37).
+			if ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) {
+				this.targetElement = null;
+				return false;
+			}
+
+			this.focus(targetElement);
+			this.sendClick(targetElement, event);
+
+			// Select elements need the event to go through on iOS 4, otherwise the selector menu won't open.
+			// Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others)
+			if (!deviceIsIOS || targetTagName !== 'select') {
+				this.targetElement = null;
+				event.preventDefault();
+			}
+
+			return false;
+		}
+
+		if (deviceIsIOS && !deviceIsIOS4) {
+
+			// Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled
+			// and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42).
+			scrollParent = targetElement.fastClickScrollParent;
+			if (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) {
+				return true;
+			}
+		}
+
+		// Prevent the actual click from going though - unless the target node is marked as requiring
+		// real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted.
+		if (!this.needsClick(targetElement)) {
+			event.preventDefault();
+			this.sendClick(targetElement, event);
+		}
+
+		return false;
+	};
+
+
+	/**
+	 * On touch cancel, stop tracking the click.
+	 *
+	 * @returns {void}
+	 */
+	FastClick.prototype.onTouchCancel = function() {
+		this.trackingClick = false;
+		this.targetElement = null;
+	};
+
+
+	/**
+	 * Determine mouse events which should be permitted.
+	 *
+	 * @param {Event} event
+	 * @returns {boolean}
+	 */
+	FastClick.prototype.onMouse = function(event) {
+
+		// If a target element was never set (because a touch event was never fired) allow the event
+		if (!this.targetElement) {
+			return true;
+		}
+
+		if (event.forwardedTouchEvent) {
+			return true;
+		}
+
+		// Programmatically generated events targeting a specific element should be permitted
+		if (!event.cancelable) {
+			return true;
+		}
+
+		// Derive and check the target element to see whether the mouse event needs to be permitted;
+		// unless explicitly enabled, prevent non-touch click events from triggering actions,
+		// to prevent ghost/doubleclicks.
+		if (!this.needsClick(this.targetElement) || this.cancelNextClick) {
+
+			// Prevent any user-added listeners declared on FastClick element from being fired.
+			if (event.stopImmediatePropagation) {
+				event.stopImmediatePropagation();
+			} else {
+
+				// Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)
+				event.propagationStopped = true;
+			}
+
+			// Cancel the event
+			event.stopPropagation();
+			event.preventDefault();
+
+			return false;
+		}
+
+		// If the mouse event is permitted, return true for the action to go through.
+		return true;
+	};
+
+
+	/**
+	 * On actual clicks, determine whether this is a touch-generated click, a click action occurring
+	 * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or
+	 * an actual click which should be permitted.
+	 *
+	 * @param {Event} event
+	 * @returns {boolean}
+	 */
+	FastClick.prototype.onClick = function(event) {
+		var permitted;
+
+		// It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early.
+		if (this.trackingClick) {
+			this.targetElement = null;
+			this.trackingClick = false;
+			return true;
+		}
+
+		// Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target.
+		if (event.target.type === 'submit' && event.detail === 0) {
+			return true;
+		}
+
+		permitted = this.onMouse(event);
+
+		// Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through.
+		if (!permitted) {
+			this.targetElement = null;
+		}
+
+		// If clicks are permitted, return true for the action to go through.
+		return permitted;
+	};
+
+
+	/**
+	 * Remove all FastClick's event listeners.
+	 *
+	 * @returns {void}
+	 */
+	FastClick.prototype.destroy = function() {
+		var layer = this.layer;
+
+		if (deviceIsAndroid) {
+			layer.removeEventListener('mouseover', this.onMouse, true);
+			layer.removeEventListener('mousedown', this.onMouse, true);
+			layer.removeEventListener('mouseup', this.onMouse, true);
+		}
+
+		layer.removeEventListener('click', this.onClick, true);
+		layer.removeEventListener('touchstart', this.onTouchStart, false);
+		layer.removeEventListener('touchmove', this.onTouchMove, false);
+		layer.removeEventListener('touchend', this.onTouchEnd, false);
+		layer.removeEventListener('touchcancel', this.onTouchCancel, false);
+	};
+
+
+	/**
+	 * Check whether FastClick is needed.
+	 *
+	 * @param {Element} layer The layer to listen on
+	 */
+	FastClick.notNeeded = function(layer) {
+		var metaViewport;
+		var chromeVersion;
+		var blackberryVersion;
+		var firefoxVersion;
+
+		// Devices that don't support touch don't need FastClick
+		if (typeof window.ontouchstart === 'undefined') {
+			return true;
+		}
+
+		// Chrome version - zero for other browsers
+		chromeVersion = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];
+
+		if (chromeVersion) {
+
+			if (deviceIsAndroid) {
+				metaViewport = document.querySelector('meta[name=viewport]');
+
+				if (metaViewport) {
+					// Chrome on Android with user-scalable="no" doesn't need FastClick (issue #89)
+					if (metaViewport.content.indexOf('user-scalable=no') !== -1) {
+						return true;
+					}
+					// Chrome 32 and above with width=device-width or less don't need FastClick
+					if (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) {
+						return true;
+					}
+				}
+
+			// Chrome desktop doesn't need FastClick (issue #15)
+			} else {
+				return true;
+			}
+		}
+
+		if (deviceIsBlackBerry10) {
+			blackberryVersion = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/);
+
+			// BlackBerry 10.3+ does not require Fastclick library.
+			// https://github.com/ftlabs/fastclick/issues/251
+			if (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) {
+				metaViewport = document.querySelector('meta[name=viewport]');
+
+				if (metaViewport) {
+					// user-scalable=no eliminates click delay.
+					if (metaViewport.content.indexOf('user-scalable=no') !== -1) {
+						return true;
+					}
+					// width=device-width (or less than device-width) eliminates click delay.
+					if (document.documentElement.scrollWidth <= window.outerWidth) {
+						return true;
+					}
+				}
+			}
+		}
+
+		// IE10 with -ms-touch-action: none or manipulation, which disables double-tap-to-zoom (issue #97)
+		if (layer.style.msTouchAction === 'none' || layer.style.touchAction === 'manipulation') {
+			return true;
+		}
+
+		// Firefox version - zero for other browsers
+		firefoxVersion = +(/Firefox\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];
+
+		if (firefoxVersion >= 27) {
+			// Firefox 27+ does not have tap delay if the content is not zoomable - https://bugzilla.mozilla.org/show_bug.cgi?id=922896
+
+			metaViewport = document.querySelector('meta[name=viewport]');
+			if (metaViewport && (metaViewport.content.indexOf('user-scalable=no') !== -1 || document.documentElement.scrollWidth <= window.outerWidth)) {
+				return true;
+			}
+		}
+
+		// IE11: prefixed -ms-touch-action is no longer supported and it's recomended to use non-prefixed version
+		// http://msdn.microsoft.com/en-us/library/windows/apps/Hh767313.aspx
+		if (layer.style.touchAction === 'none' || layer.style.touchAction === 'manipulation') {
+			return true;
+		}
+
+		return false;
+	};
+
+
+	/**
+	 * Factory method for creating a FastClick object
+	 *
+	 * @param {Element} layer The layer to listen on
+	 * @param {Object} [options={}] The options to override the defaults
+	 */
+	FastClick.attach = function(layer, options) {
+		return new FastClick(layer, options);
+	};
+
+
+	if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {
+
+		// AMD. Register as an anonymous module.
+		define(function() {
+			return FastClick;
+		});
+	} else if (typeof module !== 'undefined' && module.exports) {
+		module.exports = FastClick.attach;
+		module.exports.FastClick = FastClick;
+	} else {
+		window.FastClick = FastClick;
+	}
+}());
+
+/*!
+ * Bez v1.0.10-g5ae0136
+ * http://github.com/rdallasgray/bez
+ * 
+ * A plugin to convert CSS3 cubic-bezier co-ordinates to jQuery-compatible easing functions
+ * 
+ * With thanks to Nikolay Nemshilov for clarification on the cubic-bezier maths
+ * See http://st-on-it.blogspot.com/2011/05/calculating-cubic-bezier-function.html
+ * 
+ * Copyright 2011 Robert Dallas Gray. All rights reserved.
+ * Provided under the FreeBSD license: https://github.com/rdallasgray/bez/blob/master/LICENSE.txt
+*/jQuery.extend({bez:function(a){var b="bez_"+jQuery.makeArray(arguments).join("_").replace(".","p");if(typeof jQuery.easing[b]!="function"){var c=function(a,b){var c=[null,null],d=[null,null],e=[null,null],f=function(f,g){return e[g]=3*a[g],d[g]=3*(b[g]-a[g])-e[g],c[g]=1-e[g]-d[g],f*(e[g]+f*(d[g]+f*c[g]))},g=function(a){return e[0]+a*(2*d[0]+3*c[0]*a)},h=function(a){var b=a,c=0,d;while(++c<14){d=f(b,0)-a;if(Math.abs(d)<.001)break;b-=d/g(b)}return b};return function(a){return f(h(a),1)}};jQuery.easing[b]=function(b,d,e,f,g){return f*c([a[0],a[1]],[a[2],a[3]])(d/g)+e}}return b}});
+
+/*
+ * jQuery One Page Nav Plugin
+ * http://github.com/davist11/jQuery-One-Page-Nav
+ *
+ * Copyright (c) 2010 Trevor Davis (http://trevordavis.net)
+ * Dual licensed under the MIT and GPL licenses.
+ * Uses the same license as jQuery, see:
+ * http://jquery.org/license
+ *
+ * @version 3.0.0
+ *
+ * Example usage:
+ * $('#nav').onePageNav({
+ *   currentClass: 'current',
+ *   changeHash: false,
+ *   scrollSpeed: 750
+ * });
+ */
+
+;(function($, window, document, undefined){
+
+    // our plugin constructor
+    var OnePageNav = function(elem, options){
+        this.elem = elem;
+        this.$elem = $(elem);
+        this.options = options;
+        this.metadata = this.$elem.data('plugin-options');
+        this.$win = $(window);
+        this.sections = {};
+        this.didScroll = false;
+        this.$doc = $(document);
+        this.docHeight = this.$doc.height();
+    };
+
+    // the plugin prototype
+    OnePageNav.prototype = {
+        defaults: {
+            navItems: 'a',
+            currentClass: 'current',
+            changeHash: false,
+            easing: 'swing',
+            filter: '',
+            scrollOffset: 0,
+            scrollSpeed: 750,
+            scrollThreshold: 0.5,
+            begin: false,
+            end: false,
+            scrollChange: false
+        },
+
+        init: function() {
+            // Introduce defaults that can be extended either
+            // globally or using an object literal.
+            this.config = $.extend({}, this.defaults, this.options, this.metadata);
+
+            this.$nav = this.$elem.find(this.config.navItems);
+
+            //Filter any links out of the nav
+            if(this.config.filter !== '') {
+                this.$nav = this.$nav.filter(this.config.filter);
+            }
+
+            //Handle clicks on the nav
+            this.$nav.on('click.onePageNav', $.proxy(this.handleClick, this));
+
+            //Get the section positions
+            this.getPositions();
+
+            //Handle scroll changes
+            this.bindInterval();
+
+            //Update the positions on resize too
+            this.$win.on('resize.onePageNav', $.proxy(this.getPositions, this));
+
+            return this;
+        },
+
+        adjustNav: function(self, $parent) {
+            self.$elem.find('.' + self.config.currentClass).removeClass(self.config.currentClass);
+            $parent.addClass(self.config.currentClass);
+        },
+
+        bindInterval: function() {
+            var self = this;
+            var docHeight;
+
+            self.$win.on('scroll.onePageNav', function() {
+                self.didScroll = true;
+            });
+
+            self.t = setInterval(function() {
+                docHeight = self.$doc.height();
+
+                //If it was scrolled
+                if(self.didScroll) {
+                    self.didScroll = false;
+                    self.scrollChange();
+                }
+
+                //If the document height changes
+                if(docHeight !== self.docHeight) {
+                    self.docHeight = docHeight;
+                    self.getPositions();
+                }
+            }, 250);
+        },
+
+        getHash: function($link) {
+            return $link.attr('href').split('#')[1];
+        },
+
+        getPositions: function() {
+            var self = this;
+            var linkHref;
+            var topPos;
+            var $target;
+
+            self.$nav.each(function() {
+                linkHref = self.getHash($(this));
+                $target = $('#' + linkHref);
+
+                if($target.length) {
+                    topPos = $target.offset().top;
+                    self.sections[linkHref] = Math.round(topPos);
+                }
+            });
+        },
+
+        getSection: function(windowPos) {
+            var returnValue = null;
+            var windowHeight = Math.round(this.$win.height() * this.config.scrollThreshold);
+
+            // Sort Sections by Position
+            this.sections = this.sortSectionsByPosition(this.sections);
+
+            for(var section in this.sections) {
+                if((this.sections[section] - windowHeight) < windowPos) {
+                    returnValue = section;
+                }
+            }
+
+            return returnValue;
+        },
+
+        /**
+         * Sort Sections by its position value
+         * based on http://am.aurlien.net/post/1221493460/sorting-javascript-objects
+         * @param  {Object} obj		Object to sort
+         * @return {Object}         sorted Object
+         */
+        sortSectionsByPosition: function (obj) {
+            var tempArray = [];
+            var tempObj = {};
+
+            // Transform Object in Array
+            for (var key in obj) {
+                if (obj.hasOwnProperty(key)) {
+                    tempArray.push(key);
+                }
+            }
+
+            tempArray.sort(function(a,b) {
+                var x = obj[a];
+                var y = obj[b];
+
+                return ((x < y) ? -1 : ((x > y) ? 1 : 0));
+            });
+
+            // Transform sorted tempArray back into Object
+            for (var i=0; i<tempArray.length; i++) {
+                tempObj[tempArray[i]] = obj[tempArray[i]];
+            }
+
+            return tempObj;
+        },
+
+        handleClick: function(e) {
+            var self = this;
+            var $link = $(e.currentTarget);
+            var $parent = $link.parent();
+            var newLoc = '#' + self.getHash($link);
+
+            if(!$parent.hasClass(self.config.currentClass)) {
+                //Start callback
+                if(self.config.begin) {
+                    self.config.begin();
+                }
+
+                //Change the highlighted nav item
+                self.adjustNav(self, $parent);
+
+                //Removing the auto-adjust on scroll
+                self.unbindInterval();
+
+                //Scroll to the correct position
+                self.scrollTo(newLoc, function() {
+                    //Do we need to change the hash?
+                    if(self.config.changeHash) {
+                        window.location.hash = newLoc;
+                    }
+
+                    //Add the auto-adjust on scroll back in
+                    self.bindInterval();
+
+                    //End callback
+                    if(self.config.end) {
+                        self.config.end();
+                    }
+                });
+            }
+
+            e.preventDefault();
+        },
+
+        scrollChange: function() {
+            var windowTop = this.$win.scrollTop();
+            var position = this.getSection(windowTop);
+            var $parent;
+
+            //If the position is set
+            if(position !== null) {
+                $parent = this.$elem.find('a[href$="#' + position + '"]').parent();
+
+                //If it's not already the current section
+                if(!$parent.hasClass(this.config.currentClass)) {
+                    //Change the highlighted nav item
+                    this.adjustNav(this, $parent);
+
+                    //If there is a scrollChange callback
+                    if(this.config.scrollChange) {
+                        this.config.scrollChange($parent);
+                    }
+                }
+            }
+        },
+
+        scrollTo: function(target, callback) {
+            var offset = $(target).offset().top;
+            $('html, body').animate({
+                scrollTop: offset + this.config.scrollOffset
+            }, this.config.scrollSpeed, this.config.easing, callback);
+        },
+
+        unbindInterval: function() {
+            clearInterval(this.t);
+            this.$win.unbind('scroll.onePageNav');
+        }
+    };
+
+    OnePageNav.defaults = OnePageNav.prototype.defaults;
+
+    $.fn.onePageNav = function(options) {
+        return this.each(function() {
+            new OnePageNav(this, options).init();
+        });
+    };
+
+})( jQuery, window , document );
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/js/common.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/dense.js
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/dense.js	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/dense.js	(revision 60863)
@@ -0,0 +1,399 @@
+/**
+ * Dense - Device pixel ratio aware images
+ *
+ * @link    http://dense.rah.pw
+ * @license MIT
+ */
+
+/*
+ * Copyright (C) 2013 Jukka Svahn
+ *
+ * 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.
+ */
+
+/**
+ * @name jQuery
+ * @class
+ */
+
+/**
+ * @name fn
+ * @class
+ * @memberOf jQuery
+ */
+
+(function (factory)
+{
+    'use strict';
+
+    if (typeof define === 'function' && define.amd)
+    {
+        define(['jquery'], factory);
+    }
+    else
+    {
+        factory(window.jQuery || window.Zepto);
+    }
+}(function ($)
+{
+    'use strict';
+
+    /**
+     * An array of checked image URLs.
+     */
+
+    var pathStack = [],
+
+        /**
+         * Methods.
+         */
+
+        methods = {},
+
+        /**
+         * Regular expression to check whether the URL has a protocol.
+         *
+         * Is used to check whether the image URL is external.
+         */
+
+        regexHasProtocol = /^([a-z]:)?\/\//i,
+
+        /**
+         * Regular expression that split extensions from the file.
+         *
+         * Is used to inject the DPR suffix to the name.
+         */
+
+        regexSuffix = /\.\w+$/,
+
+        /**
+         * Device pixel ratio.
+         */
+
+        devicePixelRatio;
+
+    /**
+     * Init is the default method responsible for rendering
+     * a pixel-ratio-aware images.
+     *
+     * This method is used to select the images that
+     * should display retina-size images on high pixel ratio
+     * devices. Dense defaults to the init method if no
+     * method is specified.
+     *
+     * When attached to an image, the correct image variation is
+     * selected based on the device's pixel ratio. If the image element
+     * defines <code>data-{ratio}x</code> attributes (e.g. data-1x, data-2x, data-3x),
+     * the most appropriate of those is selected.
+     *
+     * If no data-ratio attributes are defined, the retina image is
+     * constructed from the <code>src</code> attribute.
+     * The searched high pixel ratio images follows
+     * a <code>{imageName}_{ratio}x.{ext}</code> naming convention.
+     * For an image found in /path/to/images/image.jpg, the 2x retina
+     * image would be looked from /path/to/images/image_2x.jpg.
+     *
+     * When image is constructed from the src, the image existance is
+     * verified using HTTP HEAD request, if <code>ping</code> option is
+     * <code>true</code>. The check makes sure no HTTP error code is returned,
+     * and that the received content-type is of an image. Vector image formats,
+     * like svg, are skipped based on the file extension.
+     *
+     * This method can also be used to load image in semi-lazy fashion,
+     * and avoid larger extra HTTP requests due to retina replacements.
+     * The data-1x attribute can be used to supstitute the src, making
+     * sure the browser doesn't try to download the normal image variation
+     * before the JavaScript driven behaviour kicks in.
+     *
+     * Some classes are added to the selected elements while Dense is processing
+     * the document. These classes include <code>dense-image</code>, <code>dense-loading</code>
+     * and <code>dense-ready</code>. These classes can be used to style the images,
+     * or hide them while they are being loaded.
+     *
+     * @param {Object} [options={}] Options
+     * @param {Boolean} [options.ping=null] Check image existence. If the default <code>NULL</code> checks local images, <code>FALSE</code> disables checking and <code>TRUE</code> checks even external images cross-domain
+     * @param {String} [options.dimensions=preserve] What to do with the image's <code>width</code> and <code>height</code> attributes. Either <code>update</code>, <code>remove</code> or <code>preserve</code>
+     * @param {String} [options.glue=_] String that glues the retina "nx" suffix to the image. This option can be used to change the naming convention between the two commonly used practices, <code>image@2x.jpg</code> and <code>image_2x.jpg</code>
+     * @param {Array} [options.skipExtensions=['svg']] Skipped image file extensions. There might be situations where you might want to exclude vector image formats
+     * @return {Object} this
+     * @method init
+     * @memberof jQuery.fn.dense
+     * @fires jQuery.fn.dense#denseRetinaReady.dense
+     * @example
+     * $('img').dense({
+     *  ping: false,
+     *  dimension: 'update'
+     * });
+     */
+
+    methods.init = function (options)
+    {
+        options = $.extend({
+            ping: null,
+            dimensions: 'preserve',
+            glue: '_',
+            skipExtensions: ['svg']
+        }, options);
+
+        this.each(function ()
+        {
+            var $this = $(this);
+
+            if (!$this.is('img') || $this.hasClass('dense-image'))
+            {
+                return;
+            }
+
+            $this.addClass('dense-image dense-loading');
+
+            var image = methods.getImageAttribute.call(this),
+                originalImage = $this.attr('src'),
+                ping = false,
+                updateImage;
+
+            if (!image)
+            {
+                if (!originalImage || devicePixelRatio === 1 || $.inArray(originalImage.split('.').pop().split(/[\?\#]/).shift(), options.skipExtensions) !== -1)
+                {
+                    $this.removeClass('dense-image dense-loading');
+                    return;
+                }
+
+                image = originalImage.replace(regexSuffix, function (extension)
+                {
+                    var pixelRatio = $this.attr('data-dense-cap') ? $this.attr('data-dense-cap') : devicePixelRatio;
+                    return options.glue + pixelRatio + 'x' + extension;
+                });
+
+                ping = options.ping !== false && $.inArray(image, pathStack) === -1 && (options.ping === true || !regexHasProtocol.test(image) || image.indexOf('//'+document.domain) === 0 || image.indexOf(document.location.protocol+'//'+document.domain) === 0);
+            }
+
+            updateImage = function ()
+            {
+                var readyImage = function ()
+                {
+                    $this.removeClass('dense-loading').addClass('dense-ready').trigger('denseRetinaReady.dense');
+                };
+
+                $this.attr('src', image);
+
+                if (options.dimensions === 'update')
+                {
+                    $this.dense('updateDimensions').one('denseDimensionChanged', readyImage);
+                }
+                else
+                {
+                    if (options.dimensions === 'remove')
+                    {
+                        $this.removeAttr('width height');
+                    }
+
+                    readyImage();
+                }
+            };
+
+            if (ping)
+            {
+                $.ajax({
+                    url  : image,
+                    type : 'HEAD'
+                })
+                    .done(function (data, textStatus, jqXHR)
+                    {
+                        var type = jqXHR.getResponseHeader('Content-type');
+
+                        if (!type || type.indexOf('image/') === 0)
+                        {
+                            pathStack.push(image);
+                            updateImage();
+                        }
+                    });
+            }
+            else
+            {
+                updateImage();
+            }
+        });
+
+        return this;
+    };
+
+    /**
+     * Sets an image's width and height attributes to its native values.
+     *
+     * Updates an img element's dimensions to the source image's
+     * real values. This method is asynchronous, so you can not directly
+     * return its values. Instead, use the 'dense-dimensions-updated'
+     * event to detect when the action is done.
+     *
+     * @return {Object} this
+     * @method updateDimensions
+     * @memberof jQuery.fn.dense
+     * @fires jQuery.fn.dense#denseDimensionChanged.dense
+     * @example
+     * var image = $('img').dense('updateDimensions');
+     */
+
+    methods.updateDimensions = function ()
+    {
+        return this.each(function ()
+        {
+            var img, $this = $(this), src = $this.attr('src');
+
+            if (src)
+            {
+                img = new Image();
+                img.src = src;
+
+                $(img).on('load.dense', function ()
+                {
+                    $this.attr({
+                        width: img.width,
+                        height: img.height
+                    }).trigger('denseDimensionChanged.dense');
+                });
+            }
+        });
+    };
+
+    /**
+     * Gets device pixel ratio rounded up to the closest integer.
+     *
+     * @return {Integer} The pixel ratio
+     * @method devicePixelRatio
+     * @memberof jQuery.fn.dense
+     * @example
+     * var ratio = $(window).dense('devicePixelRatio');
+     * alert(ratio);
+     */
+
+    methods.devicePixelRatio = function ()
+    {
+        var pixelRatio = 1;
+
+        if ($.type(window.devicePixelRatio) !== 'undefined')
+        {
+            pixelRatio = window.devicePixelRatio;
+        }
+        else if ($.type(window.matchMedia) !== 'undefined')
+        {
+            $.each([1.3, 2, 3, 4, 5, 6], function (key, ratio)
+            {
+                var mediaQuery = [
+                    '(-webkit-min-device-pixel-ratio: '+ratio+')',
+                    '(min-resolution: '+Math.floor(ratio*96)+'dpi)',
+                    '(min-resolution: '+ratio+'dppx)'
+                ].join(',');
+
+                if (!window.matchMedia(mediaQuery).matches)
+                {
+                    return false;
+                }
+
+                pixelRatio = ratio;
+            });
+        }
+
+        return Math.ceil(pixelRatio);
+    };
+
+    /**
+     * Gets an appropriate URL for the pixel ratio from the data attribute list.
+     *
+     * Selects the most appropriate <code>data-{ratio}x</code> attribute from
+     * the given element's attributes. If the devices pixel ratio is greater
+     * than the largest specified image, the largest one of the available is used.
+     *
+     * @return {String|Boolean} The attribute value
+     * @method getImageAttribute
+     * @memberof jQuery.fn.dense
+     * @example
+     * var image = $('<div data-1x="image.jpg" data-2x="image_2x.jpg" />').dense('getImageAttribute');
+     * $('body').css('background-image', 'url(' + image + ')');
+     */
+
+    methods.getImageAttribute = function ()
+    {
+        var $this = $(this).eq(0), image = false, url;
+
+        for (var i = 1; i <= devicePixelRatio; i++)
+        {
+            url = $this.attr('data-' + i + 'x');
+
+            if (url)
+            {
+                image = url;
+            }
+        }
+
+        return image;
+    };
+
+    devicePixelRatio = methods.devicePixelRatio();
+
+    /**
+     * Dense offers few methods and options that can be used to both customize the
+     * plugin's functionality and return resulting values. All interaction is done through
+     * the <code>$.fn.dense()</code> method, that accepts a called method and its options
+     * object as its arguments. Both arguments are optional, and either one can be omitted.
+     *
+     * @param {String} [method=init] The called method
+     * @param {Object} [options={}] Options passed to the method
+     * @class dense
+     * @memberof jQuery.fn
+     */
+
+    $.fn.dense = function (method, options)
+    {
+        if ($.type(method) !== 'string' || $.type(methods[method]) !== 'function')
+        {
+            options = method;
+            method = 'init';
+        }
+
+        return methods[method].call(this, options);
+    };
+
+    /**
+     * Initialize automatically when document is ready.
+     *
+     * Dense is initialized automatically if the body element
+     * has a <code>dense-retina</code> class.
+     */
+
+    $(function ()
+    {
+        $('body.dense-retina img').dense();
+    });
+
+    /**
+     * This event is invoked when a retina image has finished loading.
+     *
+     * @event jQuery.fn.dense#denseRetinaReady.dense
+     * @type {Object}
+     */
+
+    /**
+     * This event is invoked when an image's dimension values
+     * have been updated by the <code>updateDimensions</code>
+     * method.
+     *
+     * @event jQuery.fn.dense#denseDimensionChanged.dense
+     * @type {Object}
+     */
+}));
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/js/custom/dense.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/assets/js/uikit_custom.js
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/assets/js/uikit_custom.js	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/assets/js/uikit_custom.js	(revision 60863)
@@ -0,0 +1,6955 @@
+/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
+(function(core) {
+
+    var uikit;
+
+    if (!window.jQuery) {
+        throw new Error('UIkit 2.x requires jQuery');
+    } else {
+        uikit = core(window.jQuery);
+    }
+
+    if (typeof define == 'function' && define.amd) { // AMD
+
+        define('uikit', function(){
+
+            uikit.load = function(res, req, onload, config) {
+
+                var resources = res.split(','), load = [], i, base = (config.config && config.config.uikit && config.config.uikit.base ? config.config.uikit.base : '').replace(/\/+$/g, '');
+
+                if (!base) {
+                    throw new Error('Please define base path to UIkit in the requirejs config.');
+                }
+
+                for (i = 0; i < resources.length; i += 1) {
+                    var resource = resources[i].replace(/\./g, '/');
+                    load.push(base+'/components/'+resource);
+                }
+
+                req(load, function() {
+                    onload(uikit);
+                });
+            };
+
+            return uikit;
+        });
+    }
+
+})(function($) {
+
+    "use strict";
+
+    if (window.UIkit2) {
+        return window.UIkit2;
+    }
+
+    var UI = {}, _UI = window.UIkit || undefined;
+
+    UI.version = '2.27.5';
+
+    UI.noConflict = function() {
+        // restore UIkit version
+        if (_UI) {
+            window.UIkit = _UI;
+            $.UIkit      = _UI;
+            $.fn.uk      = _UI.fn;
+        }
+
+        return UI;
+    };
+
+    window.UIkit2 = UI;
+
+    if (!_UI) {
+        window.UIkit = UI;
+    }
+
+    // cache jQuery
+    UI.$ = $;
+
+    UI.$doc  = UI.$(document);
+    UI.$win  = UI.$(window);
+    UI.$html = UI.$('html');
+
+    UI.support = {};
+    UI.support.transition = (function() {
+
+        var transitionEnd = (function() {
+
+            var element = document.body || document.documentElement,
+                transEndEventNames = {
+                    WebkitTransition : 'webkitTransitionEnd',
+                    MozTransition    : 'transitionend',
+                    OTransition      : 'oTransitionEnd otransitionend',
+                    transition       : 'transitionend'
+                }, name;
+
+            for (name in transEndEventNames) {
+                if (element.style[name] !== undefined) return transEndEventNames[name];
+            }
+        }());
+
+        return transitionEnd && { end: transitionEnd };
+    })();
+
+    UI.support.animation = (function() {
+
+        var animationEnd = (function() {
+
+            var element = document.body || document.documentElement,
+                animEndEventNames = {
+                    WebkitAnimation : 'webkitAnimationEnd',
+                    MozAnimation    : 'animationend',
+                    OAnimation      : 'oAnimationEnd oanimationend',
+                    animation       : 'animationend'
+                }, name;
+
+            for (name in animEndEventNames) {
+                if (element.style[name] !== undefined) return animEndEventNames[name];
+            }
+        }());
+
+        return animationEnd && { end: animationEnd };
+    })();
+
+    // requestAnimationFrame polyfill
+    //https://github.com/darius/requestAnimationFrame
+    (function() {
+
+        Date.now = Date.now || function() { return new Date().getTime(); };
+
+        var vendors = ['webkit', 'moz'];
+        for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {
+            var vp = vendors[i];
+            window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];
+            window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']
+                                       || window[vp+'CancelRequestAnimationFrame']);
+        }
+        if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) // iOS6 is buggy
+            || !window.requestAnimationFrame || !window.cancelAnimationFrame) {
+            var lastTime = 0;
+            window.requestAnimationFrame = function(callback) {
+                var now = Date.now();
+                var nextTime = Math.max(lastTime + 16, now);
+                return setTimeout(function() { callback(lastTime = nextTime); },
+                                  nextTime - now);
+            };
+            window.cancelAnimationFrame = clearTimeout;
+        }
+    }());
+
+    UI.support.touch = (
+        ('ontouchstart' in document) ||
+        (window.DocumentTouch && document instanceof window.DocumentTouch)  ||
+        (window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 0) || //IE 10
+        (window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 0) || //IE >=11
+        false
+    );
+
+    UI.support.mutationobserver = (window.MutationObserver || window.WebKitMutationObserver || null);
+
+    UI.Utils = {};
+
+    UI.Utils.isFullscreen = function() {
+        return document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement || document.fullscreenElement || false;
+    };
+
+    UI.Utils.str2json = function(str, notevil) {
+        try {
+            if (notevil) {
+                return JSON.parse(str
+                    // wrap keys without quote with valid double quote
+                    .replace(/([\$\w]+)\s*:/g, function(_, $1){return '"'+$1+'":';})
+                    // replacing single quote wrapped ones to double quote
+                    .replace(/'([^']+)'/g, function(_, $1){return '"'+$1+'"';})
+                );
+            } else {
+                return (new Function('', 'var json = ' + str + '; return JSON.parse(JSON.stringify(json));'))();
+            }
+        } catch(e) { return false; }
+    };
+
+    UI.Utils.debounce = function(func, wait, immediate) {
+        var timeout;
+        return function() {
+            var context = this, args = arguments;
+            var later = function() {
+                timeout = null;
+                if (!immediate) func.apply(context, args);
+            };
+            var callNow = immediate && !timeout;
+            clearTimeout(timeout);
+            timeout = setTimeout(later, wait);
+            if (callNow) func.apply(context, args);
+        };
+    };
+
+    UI.Utils.throttle = function (func, limit) {
+        var wait = false;
+        return function () {
+            if (!wait) {
+                func.call();
+                wait = true;
+                setTimeout(function () {
+                    wait = false;
+                }, limit);
+            }
+        }
+    };
+
+    UI.Utils.removeCssRules = function(selectorRegEx) {
+        var idx, idxs, stylesheet, _i, _j, _k, _len, _len1, _len2, _ref;
+
+        if(!selectorRegEx) return;
+
+        setTimeout(function(){
+            try {
+              _ref = document.styleSheets;
+              for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+                stylesheet = _ref[_i];
+                idxs = [];
+                stylesheet.cssRules = stylesheet.cssRules;
+                for (idx = _j = 0, _len1 = stylesheet.cssRules.length; _j < _len1; idx = ++_j) {
+                  if (stylesheet.cssRules[idx].type === CSSRule.STYLE_RULE && selectorRegEx.test(stylesheet.cssRules[idx].selectorText)) {
+                    idxs.unshift(idx);
+                  }
+                }
+                for (_k = 0, _len2 = idxs.length; _k < _len2; _k++) {
+                  stylesheet.deleteRule(idxs[_k]);
+                }
+              }
+            } catch (_error) {}
+        }, 0);
+    };
+
+    UI.Utils.isInView = function(element, options) {
+
+        var $element = $(element);
+
+        if (!$element.is(':visible')) {
+            return false;
+        }
+
+        var window_left = UI.$win.scrollLeft(), window_top = UI.$win.scrollTop(), offset = $element.offset(), left = offset.left, top = offset.top;
+
+        options = $.extend({topoffset:0, leftoffset:0}, options);
+
+        if (top + $element.height() >= window_top && top - options.topoffset <= window_top + UI.$win.height() &&
+            left + $element.width() >= window_left && left - options.leftoffset <= window_left + UI.$win.width()) {
+          return true;
+        } else {
+          return false;
+        }
+    };
+
+    UI.Utils.checkDisplay = function(context, initanimation) {
+
+        var elements = UI.$('[data-uk-margin], [data-uk-grid-match], [data-uk-grid-margin], [data-uk-check-display]', context || document), animated;
+
+        if (context && !elements.length) {
+            elements = $(context);
+        }
+
+        elements.trigger('display.uk.check');
+
+        // fix firefox / IE animations
+        if (initanimation) {
+
+            if (typeof(initanimation)!='string') {
+                initanimation = '[class*="uk-animation-"]';
+            }
+
+            elements.find(initanimation).each(function(){
+
+                var ele  = UI.$(this),
+                    cls  = ele.attr('class'),
+                    anim = cls.match(/uk-animation-(.+)/);
+
+                ele.removeClass(anim[0]).width();
+
+                ele.addClass(anim[0]);
+            });
+        }
+
+        return elements;
+    };
+
+    UI.Utils.options = function(string) {
+
+        if ($.type(string)!='string') return string;
+
+        if (string.indexOf(':') != -1 && string.trim().substr(-1) != '}') {
+            string = '{'+string+'}';
+        }
+
+        var start = (string ? string.indexOf("{") : -1), options = {};
+
+        if (start != -1) {
+            try {
+                options = UI.Utils.str2json(string.substr(start));
+            } catch (e) {}
+        }
+
+        return options;
+    };
+
+    UI.Utils.animate = function(element, cls) {
+
+        var d = $.Deferred();
+
+        element = UI.$(element);
+
+        element.css('display', 'none').addClass(cls).one(UI.support.animation.end, function() {
+            element.removeClass(cls);
+            d.resolve();
+        });
+
+        element.css('display', '');
+
+        return d.promise();
+    };
+
+    UI.Utils.uid = function(prefix) {
+        return (prefix || 'id') + (new Date().getTime())+"RAND"+(Math.ceil(Math.random() * 100000));
+    };
+
+    UI.Utils.template = function(str, data) {
+
+        var tokens = str.replace(/\n/g, '\\n').replace(/\{\{\{\s*(.+?)\s*\}\}\}/g, "{{!$1}}").split(/(\{\{\s*(.+?)\s*\}\})/g),
+            i=0, toc, cmd, prop, val, fn, output = [], openblocks = 0;
+
+        while(i < tokens.length) {
+
+            toc = tokens[i];
+
+            if(toc.match(/\{\{\s*(.+?)\s*\}\}/)) {
+                i = i + 1;
+                toc  = tokens[i];
+                cmd  = toc[0];
+                prop = toc.substring(toc.match(/^(\^|\#|\!|\~|\:)/) ? 1:0);
+
+                switch(cmd) {
+                    case '~':
+                        output.push('for(var $i=0;$i<'+prop+'.length;$i++) { var $item = '+prop+'[$i];');
+                        openblocks++;
+                        break;
+                    case ':':
+                        output.push('for(var $key in '+prop+') { var $val = '+prop+'[$key];');
+                        openblocks++;
+                        break;
+                    case '#':
+                        output.push('if('+prop+') {');
+                        openblocks++;
+                        break;
+                    case '^':
+                        output.push('if(!'+prop+') {');
+                        openblocks++;
+                        break;
+                    case '/':
+                        output.push('}');
+                        openblocks--;
+                        break;
+                    case '!':
+                        output.push('__ret.push('+prop+');');
+                        break;
+                    default:
+                        output.push('__ret.push(escape('+prop+'));');
+                        break;
+                }
+            } else {
+                output.push("__ret.push('"+toc.replace(/\'/g, "\\'")+"');");
+            }
+            i = i + 1;
+        }
+
+        fn  = new Function('$data', [
+            'var __ret = [];',
+            'try {',
+            'with($data){', (!openblocks ? output.join('') : '__ret = ["Not all blocks are closed correctly."]'), '};',
+            '}catch(e){__ret = [e.message];}',
+            'return __ret.join("").replace(/\\n\\n/g, "\\n");',
+            "function escape(html) { return String(html).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');}"
+        ].join("\n"));
+
+        return data ? fn(data) : fn;
+    };
+
+    UI.Utils.focus = function(element, extra) {
+
+        element = $(element);
+
+        if (!element.length) {
+            return element;
+        }
+
+        var autofocus = element.find('[autofocus]:first'), tabidx;
+
+        if (autofocus.length) {
+            return autofocus.focus();
+        }
+
+        autofocus = element.find(':input'+(extra && (','+extra) || '')).first();
+
+        if (autofocus.length) {
+            return autofocus.focus();
+        }
+
+        if (!element.attr('tabindex')) {
+            tabidx = 1000;
+            element.attr('tabindex', tabidx);
+        }
+
+        element[0].focus();
+
+        if (tabidx) {
+            element.attr('tabindex', '');
+        }
+
+        return element;
+    }
+
+    UI.Utils.events       = {};
+    UI.Utils.events.click = UI.support.touch ? 'tap' : 'click';
+
+    // deprecated
+
+    UI.fn = function(command, options) {
+
+        var args = arguments, cmd = command.match(/^([a-z\-]+)(?:\.([a-z]+))?/i), component = cmd[1], method = cmd[2];
+
+        if (!UI[component]) {
+            $.error('UIkit component [' + component + '] does not exist.');
+            return this;
+        }
+
+        return this.each(function() {
+            var $this = $(this), data = $this.data(component);
+            if (!data) $this.data(component, (data = UI[component](this, method ? undefined : options)));
+            if (method) data[method].apply(data, Array.prototype.slice.call(args, 1));
+        });
+    };
+
+    $.UIkit          = UI;
+    $.fn.uk          = UI.fn;
+
+    UI.langdirection = UI.$html.attr("dir") == "rtl" ? "right" : "left";
+
+    UI.components    = {};
+
+    UI.component = function(name, def, override) {
+
+        if (UI.components[name] && !override) {
+            return UI.components[name];
+        }
+
+        var fn = function(element, options) {
+
+            var $this = this;
+
+            this.UIkit   = UI;
+            this.element = element ? UI.$(element) : null;
+            this.options = $.extend(true, {}, this.defaults, options);
+            this.plugins = {};
+
+            if (this.element) {
+                this.element.data(name, this);
+            }
+
+            this.init();
+
+            (this.options.plugins.length ? this.options.plugins : Object.keys(fn.plugins)).forEach(function(plugin) {
+
+                if (fn.plugins[plugin].init) {
+                    fn.plugins[plugin].init($this);
+                    $this.plugins[plugin] = true;
+                }
+
+            });
+
+            this.trigger('init.uk.component', [name, this]);
+
+            return this;
+        };
+
+        fn.plugins = {};
+
+        $.extend(true, fn.prototype, {
+
+            defaults : {plugins: []},
+
+            boot: function(){},
+            init: function(){},
+
+            on: function(a1,a2,a3){
+                return UI.$(this.element || this).on(a1,a2,a3);
+            },
+
+            one: function(a1,a2,a3){
+                return UI.$(this.element || this).one(a1,a2,a3);
+            },
+
+            off: function(evt){
+                return UI.$(this.element || this).off(evt);
+            },
+
+            trigger: function(evt, params) {
+                return UI.$(this.element || this).trigger(evt, params);
+            },
+
+            find: function(selector) {
+                return UI.$(this.element ? this.element: []).find(selector);
+            },
+
+            proxy: function(obj, methods) {
+
+                var $this = this;
+
+                methods.split(' ').forEach(function(method) {
+                    if (!$this[method]) $this[method] = function() { return obj[method].apply(obj, arguments); };
+                });
+            },
+
+            mixin: function(obj, methods) {
+
+                var $this = this;
+
+                methods.split(' ').forEach(function(method) {
+                    if (!$this[method]) $this[method] = obj[method].bind($this);
+                });
+            },
+
+            option: function() {
+
+                if (arguments.length == 1) {
+                    return this.options[arguments[0]] || undefined;
+                } else if (arguments.length == 2) {
+                    this.options[arguments[0]] = arguments[1];
+                }
+            }
+
+        }, def);
+
+        this.components[name] = fn;
+
+        this[name] = function() {
+
+            var element, options;
+
+            if (arguments.length) {
+
+                switch(arguments.length) {
+                    case 1:
+
+                        if (typeof arguments[0] === 'string' || arguments[0].nodeType || arguments[0] instanceof jQuery) {
+                            element = $(arguments[0]);
+                        } else {
+                            options = arguments[0];
+                        }
+
+                        break;
+                    case 2:
+
+                        element = $(arguments[0]);
+                        options = arguments[1];
+                        break;
+                }
+            }
+
+            if (element && element.data(name)) {
+                return element.data(name);
+            }
+
+            return (new UI.components[name](element, options));
+        };
+
+        if (UI.domready) {
+            UI.component.boot(name);
+        }
+
+        return fn;
+    };
+
+    UI.plugin = function(component, name, def) {
+        this.components[component].plugins[name] = def;
+    };
+
+    UI.component.boot = function(name) {
+
+        if (UI.components[name].prototype && UI.components[name].prototype.boot && !UI.components[name].booted) {
+            UI.components[name].prototype.boot.apply(UI, []);
+            UI.components[name].booted = true;
+        }
+    };
+
+    UI.component.bootComponents = function() {
+
+        for (var component in UI.components) {
+            UI.component.boot(component);
+        }
+    };
+
+
+    // DOM mutation save ready helper function
+
+    UI.domObservers = [];
+    UI.domready     = false;
+
+    UI.ready = function(fn) {
+
+        UI.domObservers.push(fn);
+
+        if (UI.domready) {
+            fn(document);
+        }
+    };
+
+    UI.on = function(a1,a2,a3){
+
+        if (a1 && a1.indexOf('ready.uk.dom') > -1 && UI.domready) {
+            a2.apply(UI.$doc);
+        }
+
+        return UI.$doc.on(a1,a2,a3);
+    };
+
+    UI.one = function(a1,a2,a3){
+
+        if (a1 && a1.indexOf('ready.uk.dom') > -1 && UI.domready) {
+            a2.apply(UI.$doc);
+            return UI.$doc;
+        }
+
+        return UI.$doc.one(a1,a2,a3);
+    };
+
+    UI.trigger = function(evt, params) {
+        return UI.$doc.trigger(evt, params);
+    };
+
+    UI.domObserve = function(selector, fn) {
+
+        if(!UI.support.mutationobserver) return;
+
+        fn = fn || function() {};
+
+        UI.$(selector).each(function() {
+
+            var element  = this,
+                $element = UI.$(element);
+
+            if ($element.data('observer')) {
+                return;
+            }
+
+            try {
+
+                var observer = new UI.support.mutationobserver(UI.Utils.debounce(function(mutations) {
+                    fn.apply(element, [$element]);
+                    $element.trigger('changed.uk.dom');
+                }, 50), {childList: true, subtree: true});
+
+                // pass in the target node, as well as the observer options
+                observer.observe(element, { childList: true, subtree: true });
+
+                $element.data('observer', observer);
+
+            } catch(e) {}
+        });
+    };
+
+    UI.init = function(root) {
+
+        root = root || document;
+
+        UI.domObservers.forEach(function(fn){
+            fn(root);
+        });
+    };
+
+    UI.on('domready.uk.dom', function(){
+
+        UI.init();
+
+        if (UI.domready) UI.Utils.checkDisplay();
+    });
+
+    document.addEventListener('DOMContentLoaded', function(){
+
+        var domReady = function() {
+
+            UI.$body = UI.$('body');
+
+            UI.trigger('beforeready.uk.dom');
+
+            UI.component.bootComponents();
+
+            // custom scroll observer
+            var rafToken = requestAnimationFrame((function(){
+
+                var memory = {dir: {x:0, y:0}, x: window.pageXOffset, y:window.pageYOffset};
+
+                var fn = function(){
+                    // reading this (window.page[X|Y]Offset) causes a full page recalc of the layout in Chrome,
+                    // so we only want to do this once
+                    var wpxo = window.pageXOffset;
+                    var wpyo = window.pageYOffset;
+
+                    // Did the scroll position change since the last time we were here?
+                    if (memory.x != wpxo || memory.y != wpyo) {
+
+                        // Set the direction of the scroll and store the new position
+                        if (wpxo != memory.x) {memory.dir.x = wpxo > memory.x ? 1:-1; } else { memory.dir.x = 0; }
+                        if (wpyo != memory.y) {memory.dir.y = wpyo > memory.y ? 1:-1; } else { memory.dir.y = 0; }
+
+                        memory.x = wpxo;
+                        memory.y = wpyo;
+
+                        // Trigger the scroll event, this could probably be sent using memory.clone() but this is
+                        // more explicit and easier to see exactly what is being sent in the event.
+                        UI.$doc.trigger('scrolling.uk.document', [{
+                            dir: {x: memory.dir.x, y: memory.dir.y}, x: wpxo, y: wpyo
+                        }]);
+                    }
+
+                    cancelAnimationFrame(rafToken);
+                    rafToken = requestAnimationFrame(fn);
+                };
+
+                if (UI.support.touch) {
+                    UI.$html.on('touchmove touchend MSPointerMove MSPointerUp pointermove pointerup', fn);
+                }
+
+                if (memory.x || memory.y) fn();
+
+                return fn;
+
+            })());
+
+            // run component init functions on dom
+            UI.trigger('domready.uk.dom');
+
+            if (UI.support.touch) {
+
+                // remove css hover rules for touch devices
+                // UI.Utils.removeCssRules(/\.uk-(?!navbar).*:hover/);
+
+                // viewport unit fix for uk-height-viewport - should be fixed in iOS 8
+                if (navigator.userAgent.match(/(iPad|iPhone|iPod)/g)) {
+
+                    UI.$win.on('load orientationchange resize', UI.Utils.debounce((function(){
+
+                        var fn = function() {
+                            $('.uk-height-viewport').css('height', window.innerHeight);
+                            return fn;
+                        };
+
+                        return fn();
+
+                    })(), 100));
+                }
+            }
+
+            UI.trigger('afterready.uk.dom');
+
+            // mark that domready is left behind
+            UI.domready = true;
+
+            // auto init js components
+            if (UI.support.mutationobserver) {
+
+                var initFn = UI.Utils.debounce(function(){
+                    requestAnimationFrame(function(){ UI.init(document.body);});
+                }, 10);
+
+                (new UI.support.mutationobserver(function(mutations) {
+
+                    var init = false;
+
+                    mutations.every(function(mutation){
+
+                        if (mutation.type != 'childList') return true;
+
+                        for (var i = 0, node; i < mutation.addedNodes.length; ++i) {
+
+                            node = mutation.addedNodes[i];
+
+                            if (node.outerHTML && node.outerHTML.indexOf('data-uk-') !== -1) {
+                                return (init = true) && false;
+                            }
+                        }
+                        return true;
+                    });
+
+                    if (init) initFn();
+
+                })).observe(document.body, {childList: true, subtree: true});
+            }
+        };
+
+        if (document.readyState == 'complete' || document.readyState == 'interactive') {
+            setTimeout(domReady);
+        }
+
+        return domReady;
+
+    }());
+
+    // add touch identifier class
+    UI.$html.addClass(UI.support.touch ? 'uk-touch' : 'uk-notouch');
+
+    // add uk-hover class on tap to support overlays on touch devices
+    if (UI.support.touch) {
+
+        var hoverset = false,
+            exclude,
+            hovercls = 'uk-hover',
+            selector = '.uk-overlay, .uk-overlay-hover, .uk-overlay-toggle, .uk-animation-hover, .uk-has-hover';
+
+        UI.$html.on('mouseenter touchstart MSPointerDown pointerdown', selector, function() {
+
+            if (hoverset) $('.'+hovercls).removeClass(hovercls);
+
+            hoverset = $(this).addClass(hovercls);
+
+        }).on('mouseleave touchend MSPointerUp pointerup', function(e) {
+
+            exclude = $(e.target).parents(selector);
+
+            if (hoverset) {
+                hoverset.not(exclude).removeClass(hovercls);
+            }
+        });
+    }
+
+    return UI;
+});
+
+//  Based on Zeptos touch.js
+//  https://raw.github.com/madrobby/zepto/master/src/touch.js
+//  Zepto.js may be freely distributed under the MIT license.
+
+;(function($){
+
+  if ($.fn.swipeLeft) {
+    return;
+  }
+
+
+  var touch = {}, touchTimeout, tapTimeout, swipeTimeout, longTapTimeout, longTapDelay = 750, gesture;
+  var hasTouchEvents = 'ontouchstart' in window,
+      hasPointerEvents = window.PointerEvent,
+      hasTouch = hasTouchEvents
+      || window.DocumentTouch && document instanceof DocumentTouch
+      || navigator.msPointerEnabled && navigator.msMaxTouchPoints > 0 // IE 10
+      || navigator.pointerEnabled && navigator.maxTouchPoints > 0; // IE >=11
+
+  function swipeDirection(x1, x2, y1, y2) {
+    return Math.abs(x1 - x2) >= Math.abs(y1 - y2) ? (x1 - x2 > 0 ? 'Left' : 'Right') : (y1 - y2 > 0 ? 'Up' : 'Down');
+  }
+
+  function longTap() {
+    longTapTimeout = null;
+    if (touch.last) {
+      if ( touch.el !== undefined ) touch.el.trigger('longTap');
+      touch = {};
+    }
+  }
+
+  function cancelLongTap() {
+    if (longTapTimeout) clearTimeout(longTapTimeout);
+    longTapTimeout = null;
+  }
+
+  function cancelAll() {
+    if (touchTimeout)   clearTimeout(touchTimeout);
+    if (tapTimeout)     clearTimeout(tapTimeout);
+    if (swipeTimeout)   clearTimeout(swipeTimeout);
+    if (longTapTimeout) clearTimeout(longTapTimeout);
+    touchTimeout = tapTimeout = swipeTimeout = longTapTimeout = null;
+    touch = {};
+  }
+
+  function isPrimaryTouch(event){
+    return event.pointerType == event.MSPOINTER_TYPE_TOUCH && event.isPrimary;
+  }
+
+  $(function(){
+    var now, delta, deltaX = 0, deltaY = 0, firstTouch;
+
+    if ('MSGesture' in window) {
+      gesture = new MSGesture();
+      gesture.target = document.body;
+    }
+
+    $(document)
+      .on('MSGestureEnd gestureend', function(e){
+
+        var swipeDirectionFromVelocity = e.originalEvent.velocityX > 1 ? 'Right' : e.originalEvent.velocityX < -1 ? 'Left' : e.originalEvent.velocityY > 1 ? 'Down' : e.originalEvent.velocityY < -1 ? 'Up' : null;
+
+        if (swipeDirectionFromVelocity && touch.el !== undefined) {
+          touch.el.trigger('swipe');
+          touch.el.trigger('swipe'+ swipeDirectionFromVelocity);
+        }
+      })
+      // MSPointerDown: for IE10
+      // pointerdown: for IE11
+      .on('touchstart MSPointerDown pointerdown', function(e){
+
+        if(e.type == 'MSPointerDown' && !isPrimaryTouch(e.originalEvent)) return;
+
+        firstTouch = (e.type == 'MSPointerDown' || e.type == 'pointerdown') ? e : e.originalEvent.touches[0];
+
+        now      = Date.now();
+        delta    = now - (touch.last || now);
+        touch.el = $('tagName' in firstTouch.target ? firstTouch.target : firstTouch.target.parentNode);
+
+        if(touchTimeout) clearTimeout(touchTimeout);
+
+        touch.x1 = firstTouch.pageX;
+        touch.y1 = firstTouch.pageY;
+
+        if (delta > 0 && delta <= 250) touch.isDoubleTap = true;
+
+        touch.last = now;
+        longTapTimeout = setTimeout(longTap, longTapDelay);
+
+        // adds the current touch contact for IE gesture recognition
+        if (e.originalEvent && e.originalEvent.pointerId && gesture && ( e.type == 'MSPointerDown' || e.type == 'pointerdown' || e.type == 'touchstart' ) ) {
+          gesture.addPointer(e.originalEvent.pointerId);
+        }
+
+      })
+      // MSPointerMove: for IE10
+      // pointermove: for IE11
+      .on('touchmove MSPointerMove pointermove', function(e){
+
+        if (e.type == 'MSPointerMove' && !isPrimaryTouch(e.originalEvent)) return;
+
+        firstTouch = (e.type == 'MSPointerMove' || e.type == 'pointermove') ? e : e.originalEvent.touches[0];
+
+        cancelLongTap();
+        touch.x2 = firstTouch.pageX;
+        touch.y2 = firstTouch.pageY;
+
+        deltaX += Math.abs(touch.x1 - touch.x2);
+        deltaY += Math.abs(touch.y1 - touch.y2);
+      })
+      // MSPointerUp: for IE10
+      // pointerup: for IE11
+      .on('touchend MSPointerUp pointerup', function(e){
+
+        if (e.type == 'MSPointerUp' && !isPrimaryTouch(e.originalEvent)) return;
+
+        cancelLongTap();
+
+        // swipe
+        if ((touch.x2 && Math.abs(touch.x1 - touch.x2) > 30) || (touch.y2 && Math.abs(touch.y1 - touch.y2) > 30)){
+
+          swipeTimeout = setTimeout(function() {
+            if ( touch.el !== undefined ) {
+              touch.el.trigger('swipe');
+              touch.el.trigger('swipe' + (swipeDirection(touch.x1, touch.x2, touch.y1, touch.y2)));
+            }
+            touch = {};
+          }, 0);
+
+        // normal tap
+        } else if ('last' in touch) {
+
+          // don't fire tap when delta position changed by more than 30 pixels,
+          // for instance when moving to a point and back to origin
+          if (isNaN(deltaX) || (deltaX < 30 && deltaY < 30)) {
+            // delay by one tick so we can cancel the 'tap' event if 'scroll' fires
+            // ('tap' fires before 'scroll')
+            tapTimeout = setTimeout(function() {
+
+              // trigger universal 'tap' with the option to cancelTouch()
+              // (cancelTouch cancels processing of single vs double taps for faster 'tap' response)
+              var event = $.Event('tap');
+              event.cancelTouch = cancelAll;
+              if ( touch.el !== undefined ) touch.el.trigger(event);
+
+              // trigger double tap immediately
+              if (touch.isDoubleTap) {
+                if ( touch.el !== undefined ) touch.el.trigger('doubleTap');
+                touch = {};
+              }
+
+              // trigger single tap after 250ms of inactivity
+              else {
+                touchTimeout = setTimeout(function(){
+                  touchTimeout = null;
+                  if ( touch.el !== undefined ) touch.el.trigger('singleTap');
+                  touch = {};
+                }, 250);
+              }
+            }, 0);
+          } else {
+            touch = {};
+          }
+          deltaX = deltaY = 0;
+        }
+      })
+      // when the browser window loses focus,
+      // for example when a modal dialog is shown,
+      // cancel all ongoing events
+      .on('touchcancel MSPointerCancel pointercancel', function(e){
+
+        // Ignore pointercancel if the event supports touch events, to prevent pointercancel in swipe gesture
+        if ((e.type == 'touchcancel' && hasTouchEvents && hasTouch) || (!hasTouchEvents && e.type == 'pointercancel' && hasPointerEvents)) {
+          cancelAll();
+        }
+
+    });
+
+    // scrolling the window indicates intention of the user
+    // to scroll, not tap or swipe, so cancel all ongoing events
+    $(window).on('scroll', cancelAll);
+  });
+
+  ['swipe', 'swipeLeft', 'swipeRight', 'swipeUp', 'swipeDown', 'doubleTap', 'tap', 'singleTap', 'longTap'].forEach(function(eventName){
+    $.fn[eventName] = function(callback){ return $(this).on(eventName, callback); };
+  });
+})(jQuery);
+
+(function(UI) {
+
+    "use strict";
+
+    var stacks = [];
+
+    UI.component('stackMargin', {
+
+        defaults: {
+            cls: 'uk-margin-small-top',
+            rowfirst: false,
+            observe: false
+        },
+
+        boot: function() {
+
+            // init code
+            UI.ready(function(context) {
+
+                UI.$('[data-uk-margin]', context).each(function() {
+
+                    var ele = UI.$(this);
+
+                    if (!ele.data('stackMargin')) {
+                        UI.stackMargin(ele, UI.Utils.options(ele.attr('data-uk-margin')));
+                    }
+                });
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            UI.$win.on('resize orientationchange', (function() {
+
+                var fn = function() {
+                    $this.process();
+                };
+
+                UI.$(function() {
+                    fn();
+                    UI.$win.on('load', fn);
+                });
+
+                return UI.Utils.debounce(fn, 20);
+            })());
+
+            this.on('display.uk.check', function(e) {
+                if (this.element.is(':visible')) this.process();
+            }.bind(this));
+
+            if (this.options.observe) {
+
+                UI.domObserve(this.element, function(e) {
+                    if ($this.element.is(':visible')) $this.process();
+                });
+            }
+
+            stacks.push(this);
+        },
+
+        process: function() {
+
+            var $this = this, columns = this.element.children();
+
+            UI.Utils.stackMargin(columns, this.options);
+
+            if (!this.options.rowfirst || !columns.length) {
+                return this;
+            }
+
+            // Mark first column elements
+            var group = {}, minleft = false;
+
+            columns.removeClass(this.options.rowfirst).each(function(offset, $ele){
+
+                $ele = UI.$(this);
+
+                if (this.style.display != 'none') {
+                    offset = $ele.offset().left;
+                    ((group[offset] = group[offset] || []) && group[offset]).push(this);
+                    minleft = minleft === false ? offset : Math.min(minleft, offset);
+                }
+            });
+
+            UI.$(group[minleft]).addClass(this.options.rowfirst);
+
+            return this;
+        }
+
+    });
+
+
+    // responsive element e.g. iframes
+
+    (function(){
+
+        var elements = [], check = function(ele) {
+
+            if (!ele.is(':visible')) return;
+
+            var width  = ele.parent().width(),
+                iwidth = ele.data('width'),
+                ratio  = (width / iwidth),
+                height = Math.floor(ratio * ele.data('height'));
+
+            ele.css({height: (width < iwidth) ? height : ele.data('height')});
+        };
+
+        UI.component('responsiveElement', {
+
+            defaults: {},
+
+            boot: function() {
+
+                // init code
+                UI.ready(function(context) {
+
+                    UI.$('iframe.uk-responsive-width, [data-uk-responsive]', context).each(function() {
+
+                        var ele = UI.$(this), obj;
+
+                        if (!ele.data('responsiveElement')) {
+                            obj = UI.responsiveElement(ele, {});
+                        }
+                    });
+                });
+            },
+
+            init: function() {
+
+                var ele = this.element;
+
+                if (ele.attr('width') && ele.attr('height')) {
+
+                    ele.data({
+                        width : ele.attr('width'),
+                        height: ele.attr('height')
+                    }).on('display.uk.check', function(){
+                        check(ele);
+                    });
+
+                    check(ele);
+
+                    elements.push(ele);
+                }
+            }
+        });
+
+        UI.$win.on('resize load', UI.Utils.debounce(function(){
+
+            elements.forEach(function(ele){
+                check(ele);
+            });
+
+        }, 15));
+
+    })();
+
+
+    // helper
+
+    UI.Utils.stackMargin = function(elements, options) {
+
+        options = UI.$.extend({
+            cls: 'uk-margin-small-top'
+        }, options);
+
+        elements = UI.$(elements).removeClass(options.cls);
+
+        var min = false;
+
+        elements.each(function(offset, height, pos, $ele){
+
+            $ele   = UI.$(this);
+
+            if ($ele.css('display') != 'none') {
+
+                offset = $ele.offset();
+                height = $ele.outerHeight();
+                pos    = offset.top + height;
+
+                $ele.data({
+                    ukMarginPos: pos,
+                    ukMarginTop: offset.top
+                });
+
+                if (min === false || (offset.top < min.top) ) {
+
+                    min = {
+                        top  : offset.top,
+                        left : offset.left,
+                        pos  : pos
+                    };
+                }
+            }
+
+        }).each(function($ele) {
+
+            $ele   = UI.$(this);
+
+            if ($ele.css('display') != 'none' && $ele.data('ukMarginTop') > min.top && $ele.data('ukMarginPos') > min.pos) {
+                $ele.addClass(options.cls);
+            }
+        });
+    };
+
+    UI.Utils.matchHeights = function(elements, options) {
+
+        elements = UI.$(elements).css('min-height', '');
+        options  = UI.$.extend({ row : true }, options);
+
+        var matchHeights = function(group){
+
+            if (group.length < 2) return;
+
+            var max = 0;
+
+            group.each(function() {
+                max = Math.max(max, UI.$(this).outerHeight());
+            }).each(function() {
+
+                var element = UI.$(this),
+                    height  = max - (element.css('box-sizing') == 'border-box' ? 0 : (element.outerHeight() - element.height()));
+
+                element.css('min-height', height + 'px');
+            });
+        };
+
+        if (options.row) {
+
+            elements.first().width(); // force redraw
+
+            setTimeout(function(){
+
+                var lastoffset = false, group = [];
+
+                elements.each(function() {
+
+                    var ele = UI.$(this), offset = ele.offset().top;
+
+                    if (offset != lastoffset && group.length) {
+
+                        matchHeights(UI.$(group));
+                        group  = [];
+                        offset = ele.offset().top;
+                    }
+
+                    group.push(ele);
+                    lastoffset = offset;
+                });
+
+                if (group.length) {
+                    matchHeights(UI.$(group));
+                }
+
+            }, 0);
+
+        } else {
+            matchHeights(elements);
+        }
+    };
+
+    (function(cacheSvgs){
+
+        UI.Utils.inlineSvg = function(selector, root) {
+
+            var images = UI.$(selector || 'img[src$=".svg"]', root || document).each(function(){
+
+                var img = UI.$(this),
+                    src = img.attr('src');
+
+                if (!cacheSvgs[src]) {
+
+                    var d = UI.$.Deferred();
+
+                    UI.$.get(src, {nc: Math.random()}, function(data){
+                        d.resolve(UI.$(data).find('svg'));
+                    });
+
+                    cacheSvgs[src] = d.promise();
+                }
+
+                cacheSvgs[src].then(function(svg) {
+
+                    var $svg = UI.$(svg).clone();
+
+                    if (img.attr('id')) $svg.attr('id', img.attr('id'));
+                    if (img.attr('class')) $svg.attr('class', img.attr('class'));
+                    if (img.attr('style')) $svg.attr('style', img.attr('style'));
+
+                    if (img.attr('width')) {
+                        $svg.attr('width', img.attr('width'));
+                        if (!img.attr('height'))  $svg.removeAttr('height');
+                    }
+
+                    if (img.attr('height')){
+                        $svg.attr('height', img.attr('height'));
+                        if (!img.attr('width')) $svg.removeAttr('width');
+                    }
+
+                    img.replaceWith($svg);
+                });
+            });
+        };
+
+        // init code
+        UI.ready(function(context) {
+            UI.Utils.inlineSvg('[data-uk-svg]', context);
+        });
+
+    })({});
+
+    UI.Utils.getCssVar = function(name) {
+
+        /* usage in css:  .var-name:before { content:"xyz" } */
+
+        var val, doc = document.documentElement, element = doc.appendChild(document.createElement('div'));
+
+        element.classList.add('var-'+name);
+
+        try {
+            val = JSON.parse(val = getComputedStyle(element, ':before').content.replace(/^["'](.*)["']$/, '$1'));
+        } catch (e) {
+            val = undefined;
+        }
+
+        doc.removeChild(element);
+
+        return val;
+    }
+
+})(UIkit2);
+
+(function(UI) {
+
+    "use strict";
+
+    UI.component('smoothScroll', {
+
+        boot: function() {
+
+            // init code
+            UI.$html.on('click.smooth-scroll.uikit', '[data-uk-smooth-scroll]', function(e) {
+                var ele = UI.$(this);
+
+                if (!ele.data('smoothScroll')) {
+                    var obj = UI.smoothScroll(ele, UI.Utils.options(ele.attr('data-uk-smooth-scroll')));
+                    ele.trigger('click');
+                }
+
+                return false;
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            this.on('click', function(e) {
+                e.preventDefault();
+                scrollToElement(UI.$(this.hash).length ? UI.$(this.hash) : UI.$('body'), $this.options);
+            });
+        }
+    });
+
+    function scrollToElement(ele, options) {
+
+        options = UI.$.extend({
+            duration: 1000,
+            transition: 'easeOutExpo',
+            offset: 0,
+            complete: function(){}
+        }, options);
+
+        // get / set parameters
+        var target    = ele.offset().top - options.offset,
+            docheight = UI.$doc.height(),
+            winheight = window.innerHeight;
+
+        if ((target + winheight) > docheight) {
+            target = docheight - winheight;
+        }
+
+        // animate to target, fire callback when done
+        UI.$('html,body').stop().animate({scrollTop: target}, options.duration, options.transition).promise().done(options.complete);
+    }
+
+    UI.Utils.scrollToElement = scrollToElement;
+
+    if (!UI.$.easing.easeOutExpo) {
+        UI.$.easing.easeOutExpo = function(x, t, b, c, d) { return (t == d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b; };
+    }
+
+})(UIkit2);
+
+(function(UI) {
+
+    "use strict";
+
+    var $win           = UI.$win,
+        $doc           = UI.$doc,
+        scrollspies    = [],
+        checkScrollSpy = function() {
+            for(var i=0; i < scrollspies.length; i++) {
+                window.requestAnimationFrame.apply(window, [scrollspies[i].check]);
+            }
+        };
+
+    UI.component('scrollspy', {
+
+        defaults: {
+            target     : false,
+            cls        : 'uk-scrollspy-inview',
+            initcls    : 'uk-scrollspy-init-inview',
+            topoffset  : 0,
+            leftoffset : 0,
+            repeat     : false,
+            delay      : 0
+        },
+
+        boot: function() {
+
+            // listen to scroll and resize
+            $doc.on('scrolling.uk.document', checkScrollSpy);
+            $win.on('load resize orientationchange', UI.Utils.debounce(checkScrollSpy, 50));
+
+            // init code
+            UI.ready(function(context) {
+
+                UI.$('[data-uk-scrollspy]', context).each(function() {
+
+                    var element = UI.$(this);
+
+                    if (!element.data('scrollspy')) {
+                        var obj = UI.scrollspy(element, UI.Utils.options(element.attr('data-uk-scrollspy')));
+                    }
+                });
+            });
+        },
+
+        init: function() {
+
+            var $this = this, inviewstate, initinview, togglecls = this.options.cls.split(/,/), fn = function(){
+
+                var elements     = $this.options.target ? $this.element.find($this.options.target) : $this.element,
+                    delayIdx     = elements.length === 1 ? 1 : 0,
+                    toggleclsIdx = 0;
+
+                elements.each(function(idx){
+
+                    var element     = UI.$(this),
+                        inviewstate = element.data('inviewstate'),
+                        inview      = UI.Utils.isInView(element, $this.options),
+                        toggle      = element.attr('data-uk-scrollspy-cls') || togglecls[toggleclsIdx].trim();
+
+                    if (inview && !inviewstate && !element.data('scrollspy-idle')) {
+
+                        if (!initinview) {
+                            element.addClass($this.options.initcls);
+                            $this.offset = element.offset();
+                            initinview = true;
+
+                            element.trigger('init.uk.scrollspy');
+                        }
+
+                        element.data('scrollspy-idle', setTimeout(function(){
+
+                            element.addClass('uk-scrollspy-inview').toggleClass(toggle).width();
+                            element.trigger('inview.uk.scrollspy');
+
+                            element.data('scrollspy-idle', false);
+                            element.data('inviewstate', true);
+
+                        }, $this.options.delay * delayIdx));
+
+                        delayIdx++;
+                    }
+
+                    if (!inview && inviewstate && $this.options.repeat) {
+
+                        if (element.data('scrollspy-idle')) {
+                            clearTimeout(element.data('scrollspy-idle'));
+                            element.data('scrollspy-idle', false);
+                        }
+
+                        element.removeClass('uk-scrollspy-inview').toggleClass(toggle);
+                        element.data('inviewstate', false);
+
+                        element.trigger('outview.uk.scrollspy');
+                    }
+
+                    toggleclsIdx = togglecls[toggleclsIdx + 1] ? (toggleclsIdx + 1) : 0;
+
+                });
+            };
+
+            fn();
+
+            this.check = fn;
+
+            scrollspies.push(this);
+        }
+    });
+
+
+    var scrollspynavs = [],
+        checkScrollSpyNavs = function() {
+            for(var i=0; i < scrollspynavs.length; i++) {
+                window.requestAnimationFrame.apply(window, [scrollspynavs[i].check]);
+            }
+        };
+
+    UI.component('scrollspynav', {
+
+        defaults: {
+            cls          : 'uk-active',
+            closest      : false,
+            topoffset    : 0,
+            leftoffset   : 0,
+            smoothscroll : false
+        },
+
+        boot: function() {
+
+            // listen to scroll and resize
+            $doc.on('scrolling.uk.document', checkScrollSpyNavs);
+            $win.on('resize orientationchange', UI.Utils.debounce(checkScrollSpyNavs, 50));
+
+            // init code
+            UI.ready(function(context) {
+
+                UI.$('[data-uk-scrollspy-nav]', context).each(function() {
+
+                    var element = UI.$(this);
+
+                    if (!element.data('scrollspynav')) {
+                        var obj = UI.scrollspynav(element, UI.Utils.options(element.attr('data-uk-scrollspy-nav')));
+                    }
+                });
+            });
+        },
+
+        init: function() {
+
+            var ids     = [],
+                links   = this.find("a[href^='#']").each(function(){ if(this.getAttribute('href').trim()!=='#') ids.push(this.getAttribute('href')); }),
+                targets = UI.$(ids.join(",")),
+
+                clsActive  = this.options.cls,
+                clsClosest = this.options.closest || this.options.closest;
+
+            var $this = this, inviews, fn = function(){
+
+                inviews = [];
+
+                for (var i=0 ; i < targets.length ; i++) {
+                    if (UI.Utils.isInView(targets.eq(i), $this.options)) {
+                        inviews.push(targets.eq(i));
+                    }
+                }
+
+                if (inviews.length) {
+
+                    var navitems,
+                        scrollTop = $win.scrollTop(),
+                        target = (function(){
+                            for(var i=0; i< inviews.length;i++){
+                                if (inviews[i].offset().top - $this.options.topoffset >= scrollTop){
+                                    return inviews[i];
+                                }
+                            }
+                        })();
+
+                    if (!target) return;
+
+                    if ($this.options.closest) {
+                        links.blur().closest(clsClosest).removeClass(clsActive);
+                        navitems = links.filter("a[href='#"+target.attr('id')+"']").closest(clsClosest).addClass(clsActive);
+                    } else {
+                        navitems = links.removeClass(clsActive).filter("a[href='#"+target.attr("id")+"']").addClass(clsActive);
+                    }
+
+                    $this.element.trigger('inview.uk.scrollspynav', [target, navitems]);
+                }
+            };
+
+            if (this.options.smoothscroll && UI.smoothScroll) {
+                links.each(function(){
+                    UI.smoothScroll(this, $this.options.smoothscroll);
+                });
+            }
+
+            fn();
+
+            this.element.data('scrollspynav', this);
+
+            this.check = fn;
+            scrollspynavs.push(this);
+
+        }
+    });
+
+})(UIkit2);
+
+(function(UI){
+
+    "use strict";
+
+    var toggles = [];
+
+    UI.component('toggle', {
+
+        defaults: {
+            target    : false,
+            cls       : 'uk-hidden',
+            animation : false,
+            duration  : 200
+        },
+
+        boot: function(){
+
+            // init code
+            UI.ready(function(context) {
+
+                UI.$('[data-uk-toggle]', context).each(function() {
+                    var ele = UI.$(this);
+
+                    if (!ele.data('toggle')) {
+                        var obj = UI.toggle(ele, UI.Utils.options(ele.attr('data-uk-toggle')));
+                    }
+                });
+
+                setTimeout(function(){
+
+                    toggles.forEach(function(toggle){
+                        toggle.getToggles();
+                    });
+
+                }, 0);
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            this.aria = (this.options.cls.indexOf('uk-hidden') !== -1);
+
+            this.on('click', function(e) {
+
+                if ($this.element.is('a[href="#"]')) {
+                    e.preventDefault();
+                }
+
+                $this.toggle();
+            });
+
+            toggles.push(this);
+        },
+
+        toggle: function() {
+
+            this.getToggles();
+
+            if(!this.totoggle.length) return;
+
+            if (this.options.animation && UI.support.animation) {
+
+                var $this = this, animations = this.options.animation.split(',');
+
+                if (animations.length == 1) {
+                    animations[1] = animations[0];
+                }
+
+                animations[0] = animations[0].trim();
+                animations[1] = animations[1].trim();
+
+                this.totoggle.css('animation-duration', this.options.duration+'ms');
+
+                this.totoggle.each(function(){
+
+                    var ele = UI.$(this);
+
+                    if (ele.hasClass($this.options.cls)) {
+
+                        ele.toggleClass($this.options.cls);
+
+                        UI.Utils.animate(ele, animations[0]).then(function(){
+                            ele.css('animation-duration', '');
+                            UI.Utils.checkDisplay(ele);
+                        });
+
+                    } else {
+
+                        UI.Utils.animate(this, animations[1]+' uk-animation-reverse').then(function(){
+                            ele.toggleClass($this.options.cls).css('animation-duration', '');
+                            UI.Utils.checkDisplay(ele);
+                        });
+
+                    }
+
+                });
+
+            } else {
+                this.totoggle.toggleClass(this.options.cls);
+                UI.Utils.checkDisplay(this.totoggle);
+            }
+
+            this.updateAria();
+
+        },
+
+        getToggles: function() {
+            this.totoggle = this.options.target ? UI.$(this.options.target):[];
+            this.updateAria();
+        },
+
+        updateAria: function() {
+            if (this.aria && this.totoggle.length) {
+                this.totoggle.not('[aria-hidden]').each(function(){
+                    UI.$(this).attr('aria-hidden', UI.$(this).hasClass('uk-hidden'));
+                });
+            }
+        }
+    });
+
+})(UIkit2);
+
+(function(UI) {
+
+    "use strict";
+
+    UI.component('alert', {
+
+        defaults: {
+            fade: true,
+            duration: 200,
+            trigger: '.uk-alert-close'
+        },
+
+        boot: function() {
+
+            // init code
+            UI.$html.on('click.alert.uikit', '[data-uk-alert]', function(e) {
+
+                var ele = UI.$(this);
+
+                if (!ele.data('alert')) {
+
+                    var alert = UI.alert(ele, UI.Utils.options(ele.attr('data-uk-alert')));
+
+                    if (UI.$(e.target).is(alert.options.trigger)) {
+                        e.preventDefault();
+                        alert.close();
+                    }
+                }
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            this.on('click', this.options.trigger, function(e) {
+                e.preventDefault();
+                $this.close();
+            });
+        },
+
+        close: function() {
+
+            var element       = this.trigger('close.uk.alert'),
+                removeElement = function () {
+                    this.trigger('closed.uk.alert').remove();
+                }.bind(this);
+
+            if (this.options.fade) {
+                element.css('overflow', 'hidden').css("max-height", element.height()).animate({
+                    height         : 0,
+                    opacity        : 0,
+                    paddingTop    : 0,
+                    paddingBottom : 0,
+                    marginTop     : 0,
+                    marginBottom  : 0
+                }, this.options.duration, removeElement);
+            } else {
+                removeElement();
+            }
+        }
+
+    });
+
+})(UIkit2);
+
+(function(UI) {
+
+    "use strict";
+
+    UI.component('buttonRadio', {
+
+        defaults: {
+            activeClass: 'uk-active',
+            target: '.uk-button'
+        },
+
+        boot: function() {
+
+            // init code
+            UI.$html.on('click.buttonradio.uikit', '[data-uk-button-radio]', function(e) {
+
+                var ele = UI.$(this);
+
+                if (!ele.data('buttonRadio')) {
+
+                    var obj    = UI.buttonRadio(ele, UI.Utils.options(ele.attr('data-uk-button-radio'))),
+                        target = UI.$(e.target);
+
+                    if (target.is(obj.options.target)) {
+                        target.trigger('click');
+                    }
+                }
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            // Init ARIA
+            this.find($this.options.target).attr('aria-checked', 'false').filter('.' + $this.options.activeClass).attr('aria-checked', 'true');
+
+            this.on('click', this.options.target, function(e) {
+
+                var ele = UI.$(this);
+
+                if (ele.is('a[href="#"]')) e.preventDefault();
+
+                $this.find($this.options.target).not(ele).removeClass($this.options.activeClass).blur();
+                ele.addClass($this.options.activeClass);
+
+                // Update ARIA
+                $this.find($this.options.target).not(ele).attr('aria-checked', 'false');
+                ele.attr('aria-checked', 'true');
+
+                $this.trigger('change.uk.button', [ele]);
+            });
+
+        },
+
+        getSelected: function() {
+            return this.find('.' + this.options.activeClass);
+        }
+    });
+
+    UI.component('buttonCheckbox', {
+
+        defaults: {
+            activeClass: 'uk-active',
+            target: '.uk-button'
+        },
+
+        boot: function() {
+
+            UI.$html.on('click.buttoncheckbox.uikit', '[data-uk-button-checkbox]', function(e) {
+                var ele = UI.$(this);
+
+                if (!ele.data('buttonCheckbox')) {
+
+                    var obj    = UI.buttonCheckbox(ele, UI.Utils.options(ele.attr('data-uk-button-checkbox'))),
+                        target = UI.$(e.target);
+
+                    if (target.is(obj.options.target)) {
+                        target.trigger('click');
+                    }
+                }
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            // Init ARIA
+            this.find($this.options.target).attr('aria-checked', 'false').filter('.' + $this.options.activeClass).attr('aria-checked', 'true');
+
+            this.on('click', this.options.target, function(e) {
+                var ele = UI.$(this);
+
+                if (ele.is('a[href="#"]')) e.preventDefault();
+
+                ele.toggleClass($this.options.activeClass).blur();
+
+                // Update ARIA
+                ele.attr('aria-checked', ele.hasClass($this.options.activeClass));
+
+                $this.trigger('change.uk.button', [ele]);
+            });
+
+        },
+
+        getSelected: function() {
+            return this.find('.' + this.options.activeClass);
+        }
+    });
+
+
+    UI.component('button', {
+
+        defaults: {},
+
+        boot: function() {
+
+            UI.$html.on('click.button.uikit', '[data-uk-button]', function(e) {
+                var ele = UI.$(this);
+
+                if (!ele.data('button')) {
+
+                    var obj = UI.button(ele, UI.Utils.options(ele.attr('data-uk-button')));
+                    ele.trigger('click');
+                }
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            // Init ARIA
+            this.element.attr('aria-pressed', this.element.hasClass("uk-active"));
+
+            this.on('click', function(e) {
+
+                if ($this.element.is('a[href="#"]')) e.preventDefault();
+
+                $this.toggle();
+                $this.trigger('change.uk.button', [$this.element.blur().hasClass('uk-active')]);
+            });
+
+        },
+
+        toggle: function() {
+            this.element.toggleClass('uk-active');
+
+            // Update ARIA
+            this.element.attr('aria-pressed', this.element.hasClass('uk-active'));
+        }
+    });
+
+})(UIkit2);
+
+(function(UI) {
+
+    "use strict";
+
+    var active = false, hoverIdle, flips = {
+        x: {
+            'bottom-left'   : 'bottom-right',
+            'bottom-right'  : 'bottom-left',
+            'bottom-center' : 'bottom-center',
+            'top-left'      : 'top-right',
+            'top-right'     : 'top-left',
+            'top-center'    : 'top-center',
+            'left-top'      : 'right-top',
+            'left-bottom'   : 'right-bottom',
+            'left-center'   : 'right-center',
+            'right-top'     : 'left-top',
+            'right-bottom'  : 'left-bottom',
+            'right-center'  : 'left-center'
+        },
+        y: {
+            'bottom-left'   : 'top-left',
+            'bottom-right'  : 'top-right',
+            'bottom-center' : 'top-center',
+            'top-left'      : 'bottom-left',
+            'top-right'     : 'bottom-right',
+            'top-center'    : 'bottom-center',
+            'left-top'      : 'left-bottom',
+            'left-bottom'   : 'left-top',
+            'left-center'   : 'left-center',
+            'right-top'     : 'right-bottom',
+            'right-bottom'  : 'right-top',
+            'right-center'  : 'right-center'
+        },
+        xy: {
+            'bottom-left'   : 'top-right',
+            'bottom-right'  : 'top-left',
+            'bottom-center' : 'top-center',
+            'top-left'      : 'bottom-right',
+            'top-right'     : 'bottom-left',
+            'top-center'    : 'bottom-center',
+            'left-top'      : 'right-bottom',
+            'left-bottom'   : 'right-top',
+            'left-center'   : 'right-center',
+            'right-top'     : 'left-bottom',
+            'right-bottom'  : 'left-top',
+            'right-center'  : 'left-center'
+        }
+    };
+
+    UI.component('dropdown', {
+
+        defaults: {
+           mode            : 'hover',
+           pos             : 'bottom-left',
+           offset          : 0,
+           remaintime      : 800,
+           justify         : false,
+           boundary        : UI.$win,
+           delay           : 0,
+           dropdownSelector: '.uk-dropdown,.uk-dropdown-blank',
+           hoverDelayIdle  : 250,
+           preventflip     : false
+        },
+
+        remainIdle: false,
+
+        boot: function() {
+
+            var triggerevent = UI.support.touch ? 'click' : 'mouseenter';
+
+            // init code
+            UI.$html.on(triggerevent+'.dropdown.uikit focus pointerdown', '[data-uk-dropdown]', function(e) {
+
+                var ele = UI.$(this);
+
+                if (!ele.data('dropdown')) {
+
+                    var dropdown = UI.dropdown(ele, UI.Utils.options(ele.attr('data-uk-dropdown')));
+
+                    if (e.type=='click' || (e.type=='mouseenter' && dropdown.options.mode=='hover')) {
+                        dropdown.element.trigger(triggerevent);
+                    }
+
+                    if (dropdown.dropdown.length) {
+                        e.preventDefault();
+                    }
+                }
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            this.dropdown     = this.find(this.options.dropdownSelector);
+            this.offsetParent = this.dropdown.parents().filter(function() {
+                return UI.$.inArray(UI.$(this).css('position'), ['relative', 'fixed', 'absolute']) !== -1;
+            }).slice(0,1);
+
+            if (!this.offsetParent.length) {
+                this.offsetParent = this.element;
+            }
+
+            this.centered  = this.dropdown.hasClass('uk-dropdown-center');
+            this.justified = this.options.justify ? UI.$(this.options.justify) : false;
+
+            this.boundary  = UI.$(this.options.boundary);
+
+            if (!this.boundary.length) {
+                this.boundary = UI.$win;
+            }
+
+            // legacy DEPRECATED!
+            if (this.dropdown.hasClass('uk-dropdown-up')) {
+                this.options.pos = 'top-left';
+            }
+            if (this.dropdown.hasClass('uk-dropdown-flip')) {
+                this.options.pos = this.options.pos.replace('left','right');
+            }
+            if (this.dropdown.hasClass('uk-dropdown-center')) {
+                this.options.pos = this.options.pos.replace(/(left|right)/,'center');
+            }
+            //-- end legacy
+
+            // Init ARIA
+            this.element.attr('aria-haspopup', 'true');
+            this.element.attr('aria-expanded', this.element.hasClass('uk-open'));
+            this.dropdown.attr('aria-hidden', 'true');
+
+            if (this.options.mode == 'click' || UI.support.touch) {
+
+                this.on('click.uk.dropdown', function(e) {
+
+                    var $target = UI.$(e.target);
+
+                    if (!$target.parents($this.options.dropdownSelector).length) {
+
+                        if ($target.is("a[href='#']") || $target.parent().is("a[href='#']") || ($this.dropdown.length && !$this.dropdown.is(':visible')) ){
+                            e.preventDefault();
+                        }
+
+                        $target.blur();
+                    }
+
+                    if (!$this.element.hasClass('uk-open')) {
+
+                        $this.show();
+
+                    } else {
+
+                        if (!$this.dropdown.find(e.target).length || $target.is('.uk-dropdown-close') || $target.parents('.uk-dropdown-close').length) {
+                            $this.hide();
+                        }
+                    }
+                });
+
+            } else {
+
+                this.on('mouseenter', function(e) {
+
+                    $this.trigger('pointerenter.uk.dropdown', [$this]);
+
+                    if ($this.remainIdle) {
+                        clearTimeout($this.remainIdle);
+                    }
+
+                    if (hoverIdle) {
+                        clearTimeout(hoverIdle);
+                    }
+
+                    if (active && active == $this) {
+                        return;
+                    }
+
+                    // pseudo manuAim
+                    if (active && active != $this) {
+
+                        hoverIdle = setTimeout(function() {
+                            hoverIdle = setTimeout($this.show.bind($this), $this.options.delay);
+                        }, $this.options.hoverDelayIdle);
+
+                    } else {
+
+                        hoverIdle = setTimeout($this.show.bind($this), $this.options.delay);
+                    }
+
+                }).on('mouseleave', function() {
+
+                    if (hoverIdle) {
+                        clearTimeout(hoverIdle);
+                    }
+
+                    $this.remainIdle = setTimeout(function() {
+                        if (active && active == $this) $this.hide();
+                    }, $this.options.remaintime);
+
+                    $this.trigger('pointerleave.uk.dropdown', [$this]);
+
+                }).on('click', function(e){
+
+                    var $target = UI.$(e.target);
+
+                    if ($this.remainIdle) {
+                        clearTimeout($this.remainIdle);
+                    }
+
+                    if (active && active == $this) {
+                        if (!$this.dropdown.find(e.target).length || $target.is('.uk-dropdown-close') || $target.parents('.uk-dropdown-close').length) {
+                            $this.hide();
+                        }
+                        return;
+                    }
+
+                    if ($target.is("a[href='#']") || $target.parent().is("a[href='#']")){
+                        e.preventDefault();
+                    }
+
+                    $this.show();
+                });
+            }
+        },
+
+        show: function(){
+
+            UI.$html.off('click.outer.dropdown');
+
+            if (active && active != this) {
+                active.hide(true);
+            }
+
+            if (hoverIdle) {
+                clearTimeout(hoverIdle);
+            }
+
+            this.trigger('beforeshow.uk.dropdown', [this]);
+
+            this.checkDimensions();
+            this.element.addClass('uk-open');
+
+            // Update ARIA
+            this.element.attr('aria-expanded', 'true');
+            this.dropdown.attr('aria-hidden', 'false');
+
+            this.trigger('show.uk.dropdown', [this]);
+
+            UI.Utils.checkDisplay(this.dropdown, true);
+            UI.Utils.focus(this.dropdown);
+            active = this;
+
+            this.registerOuterClick();
+        },
+
+        hide: function(force) {
+
+            this.trigger('beforehide.uk.dropdown', [this, force]);
+
+            this.element.removeClass('uk-open');
+
+            if (this.remainIdle) {
+                clearTimeout(this.remainIdle);
+            }
+
+            this.remainIdle = false;
+
+            // Update ARIA
+            this.element.attr('aria-expanded', 'false');
+            this.dropdown.attr('aria-hidden', 'true');
+
+            this.trigger('hide.uk.dropdown', [this, force]);
+
+            if (active == this) active = false;
+        },
+
+        registerOuterClick: function(){
+
+            var $this = this;
+
+            UI.$html.off('click.outer.dropdown');
+
+            setTimeout(function() {
+
+                UI.$html.on('click.outer.dropdown', function(e) {
+
+                    if (hoverIdle) {
+                        clearTimeout(hoverIdle);
+                    }
+
+                    var $target = UI.$(e.target);
+
+                    if (active == $this && !$this.element.find(e.target).length) {
+                        $this.hide(true);
+                        UI.$html.off('click.outer.dropdown');
+                    }
+                });
+            }, 10);
+        },
+
+        checkDimensions: function() {
+
+            if (!this.dropdown.length) return;
+
+            // reset
+            this.dropdown.removeClass('uk-dropdown-top uk-dropdown-bottom uk-dropdown-left uk-dropdown-right uk-dropdown-stack uk-dropdown-autoflip').css({
+                topLeft :'',
+                left :'',
+                marginLeft :'',
+                marginRight :''
+            });
+
+            if (this.justified && this.justified.length) {
+                this.dropdown.css('min-width', '');
+            }
+
+            var $this          = this,
+                pos            = UI.$.extend({}, this.offsetParent.offset(), {width: this.offsetParent[0].offsetWidth, height: this.offsetParent[0].offsetHeight}),
+                posoffset      = this.options.offset,
+                dropdown       = this.dropdown,
+                offset         = dropdown.show().offset() || {left: 0, top: 0},
+                width          = dropdown.outerWidth(),
+                height         = dropdown.outerHeight(),
+                boundarywidth  = this.boundary.width(),
+                boundaryoffset = this.boundary[0] !== window && this.boundary.offset() ? this.boundary.offset(): {top:0, left:0},
+                dpos           = this.options.pos;
+
+            var variants =  {
+                    'bottom-left'   : {top: 0 + pos.height + posoffset, left: 0},
+                    'bottom-right'  : {top: 0 + pos.height + posoffset, left: 0 + pos.width - width},
+                    'bottom-center' : {top: 0 + pos.height + posoffset, left: 0 + pos.width / 2 - width / 2},
+                    'top-left'      : {top: 0 - height - posoffset, left: 0},
+                    'top-right'     : {top: 0 - height - posoffset, left: 0 + pos.width - width},
+                    'top-center'    : {top: 0 - height - posoffset, left: 0 + pos.width / 2 - width / 2},
+                    'left-top'      : {top: 0, left: 0 - width - posoffset},
+                    'left-bottom'   : {top: 0 + pos.height - height, left: 0 - width - posoffset},
+                    'left-center'   : {top: 0 + pos.height / 2 - height / 2, left: 0 - width - posoffset},
+                    'right-top'     : {top: 0, left: 0 + pos.width + posoffset},
+                    'right-bottom'  : {top: 0 + pos.height - height, left: 0 + pos.width + posoffset},
+                    'right-center'  : {top: 0 + pos.height / 2 - height / 2, left: 0 + pos.width + posoffset}
+                },
+                css = {},
+                pp;
+
+            pp = dpos.split('-');
+            css = variants[dpos] ? variants[dpos] : variants['bottom-left'];
+
+            // justify dropdown
+            if (this.justified && this.justified.length) {
+                justify(dropdown.css({left:0}), this.justified, boundarywidth);
+            } else {
+
+                if (this.options.preventflip !== true) {
+
+                    var fdpos;
+
+                    switch(this.checkBoundary(pos.left + css.left, pos.top + css.top, width, height, boundarywidth)) {
+                        case "x":
+                            if(this.options.preventflip !=='x') fdpos = flips['x'][dpos] || 'right-top';
+                            break;
+                        case "y":
+                            if(this.options.preventflip !=='y') fdpos = flips['y'][dpos] || 'top-left';
+                            break;
+                        case "xy":
+                            if(!this.options.preventflip) fdpos = flips['xy'][dpos] || 'right-bottom';
+                            break;
+                    }
+
+                    if (fdpos) {
+
+                        pp  = fdpos.split('-');
+                        css = variants[fdpos] ? variants[fdpos] : variants['bottom-left'];
+                        dropdown.addClass('uk-dropdown-autoflip');
+
+                        // check flipped
+                        if (this.checkBoundary(pos.left + css.left, pos.top + css.top, width, height, boundarywidth)) {
+                            pp  = dpos.split('-');
+                            css = variants[dpos] ? variants[dpos] : variants['bottom-left'];
+                        }
+                    }
+                }
+            }
+
+            if (width > boundarywidth) {
+                dropdown.addClass('uk-dropdown-stack');
+                this.trigger('stack.uk.dropdown', [this]);
+            }
+
+            dropdown.css(css).css('display', '').addClass('uk-dropdown-'+pp[0]);
+        },
+
+        checkBoundary: function(left, top, width, height, boundarywidth) {
+
+            var axis = "";
+
+            if (left < 0 || ((left - UI.$win.scrollLeft())+width) > boundarywidth) {
+               axis += "x";
+            }
+
+            if ((top - UI.$win.scrollTop()) < 0 || ((top - UI.$win.scrollTop())+height) > window.innerHeight) {
+               axis += "y";
+            }
+
+            return axis;
+        }
+    });
+
+
+    UI.component('dropdownOverlay', {
+
+        defaults: {
+           justify : false,
+           cls     : '',
+           duration: 200
+        },
+
+        boot: function() {
+
+            // init code
+            UI.ready(function(context) {
+
+                UI.$('[data-uk-dropdown-overlay]', context).each(function() {
+                    var ele = UI.$(this);
+
+                    if (!ele.data('dropdownOverlay')) {
+                        UI.dropdownOverlay(ele, UI.Utils.options(ele.attr('data-uk-dropdown-overlay')));
+                    }
+                });
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            this.justified = this.options.justify ? UI.$(this.options.justify) : false;
+            this.overlay   = this.element.find('uk-dropdown-overlay');
+
+            if (!this.overlay.length) {
+                this.overlay = UI.$('<div class="uk-dropdown-overlay"></div>').appendTo(this.element);
+            }
+
+            this.overlay.addClass(this.options.cls);
+
+            this.on({
+
+                'beforeshow.uk.dropdown': function(e, dropdown) {
+                    $this.dropdown = dropdown;
+
+                    if ($this.justified && $this.justified.length) {
+                        justify($this.overlay.css({display:'block', marginLeft:'', marginRight:''}), $this.justified, $this.justified.outerWidth());
+                    }
+                },
+
+                'show.uk.dropdown': function(e, dropdown) {
+
+                    var h = $this.dropdown.dropdown.outerHeight(true);
+
+                    $this.dropdown.element.removeClass('uk-open');
+
+                    $this.overlay.stop().css('display', 'block').animate({height: h}, $this.options.duration, function() {
+
+                       $this.dropdown.dropdown.css('visibility', '');
+                       $this.dropdown.element.addClass('uk-open');
+
+                       UI.Utils.checkDisplay($this.dropdown.dropdown, true);
+                    });
+
+                    $this.pointerleave = false;
+                },
+
+                'hide.uk.dropdown': function() {
+                    $this.overlay.stop().animate({height: 0}, $this.options.duration);
+                },
+
+                'pointerenter.uk.dropdown': function(e, dropdown) {
+                    clearTimeout($this.remainIdle);
+                },
+
+                'pointerleave.uk.dropdown': function(e, dropdown) {
+                    $this.pointerleave = true;
+                }
+            });
+
+
+            this.overlay.on({
+
+                'mouseenter': function() {
+                    if ($this.remainIdle) {
+                        clearTimeout($this.dropdown.remainIdle);
+                        clearTimeout($this.remainIdle);
+                    }
+                },
+
+                'mouseleave': function(){
+
+                    if ($this.pointerleave && active) {
+
+                        $this.remainIdle = setTimeout(function() {
+                           if(active) active.hide();
+                        }, active.options.remaintime);
+                    }
+                }
+            })
+        }
+
+    });
+
+
+    function justify(ele, justifyTo, boundarywidth, offset) {
+
+        ele           = UI.$(ele);
+        justifyTo     = UI.$(justifyTo);
+        boundarywidth = boundarywidth || window.innerWidth;
+        offset        = offset || ele.offset();
+
+        if (justifyTo.length) {
+
+            var jwidth = justifyTo.outerWidth();
+
+            ele.css('min-width', jwidth);
+
+            if (UI.langdirection == 'right') {
+
+                var right1   = boundarywidth - (justifyTo.offset().left + jwidth),
+                    right2   = boundarywidth - (ele.offset().left + ele.outerWidth());
+
+                ele.css('margin-right', right1 - right2);
+
+            } else {
+                ele.css('margin-left', justifyTo.offset().left - offset.left);
+            }
+        }
+    }
+
+})(UIkit2);
+
+(function(UI) {
+
+    "use strict";
+
+    var grids = [];
+
+    UI.component('gridMatchHeight', {
+
+        defaults: {
+            target        : false,
+            row           : true,
+            ignorestacked : false,
+            observe       : false
+        },
+
+        boot: function() {
+
+            // init code
+            UI.ready(function(context) {
+
+                UI.$('[data-uk-grid-match]', context).each(function() {
+                    var grid = UI.$(this), obj;
+
+                    if (!grid.data('gridMatchHeight')) {
+                        obj = UI.gridMatchHeight(grid, UI.Utils.options(grid.attr('data-uk-grid-match')));
+                    }
+                });
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            this.columns  = this.element.children();
+            this.elements = this.options.target ? this.find(this.options.target) : this.columns;
+
+            if (!this.columns.length) return;
+
+            UI.$win.on('load resize orientationchange', (function() {
+
+                var fn = function() {
+                    if ($this.element.is(':visible')) $this.match();
+                };
+
+                UI.$(function() { fn(); });
+
+                return UI.Utils.debounce(fn, 50);
+            })());
+
+            if (this.options.observe) {
+
+                UI.domObserve(this.element, function(e) {
+                    if ($this.element.is(':visible')) $this.match();
+                });
+            }
+
+            this.on('display.uk.check', function(e) {
+                if(this.element.is(':visible')) this.match();
+            }.bind(this));
+
+            grids.push(this);
+        },
+
+        match: function() {
+
+            var firstvisible = this.columns.filter(':visible:first');
+
+            if (!firstvisible.length) return;
+
+            var stacked = Math.ceil(100 * parseFloat(firstvisible.css('width')) / parseFloat(firstvisible.parent().css('width'))) >= 100;
+
+            if (stacked && !this.options.ignorestacked) {
+                this.revert();
+            } else {
+                UI.Utils.matchHeights(this.elements, this.options);
+            }
+
+            return this;
+        },
+
+        revert: function() {
+            this.elements.css('min-height', '');
+            return this;
+        }
+    });
+
+    UI.component('gridMargin', {
+
+        defaults: {
+            cls      : 'uk-grid-margin',
+            rowfirst : 'uk-row-first'
+        },
+
+        boot: function() {
+
+            // init code
+            UI.ready(function(context) {
+
+                UI.$('[data-uk-grid-margin]', context).each(function() {
+                    var grid = UI.$(this), obj;
+
+                    if (!grid.data('gridMargin')) {
+                        obj = UI.gridMargin(grid, UI.Utils.options(grid.attr('data-uk-grid-margin')));
+                    }
+                });
+            });
+        },
+
+        init: function() {
+
+            var stackMargin = UI.stackMargin(this.element, this.options);
+        }
+    });
+
+})(UIkit2);
+
+(function(UI) {
+
+    "use strict";
+
+    var active = false, activeCount = 0, $html = UI.$html, body;
+
+    UI.$win.on('resize orientationchange', UI.Utils.debounce(function(){
+        UI.$('.uk-modal.uk-open').each(function(){
+            return UI.$(this).data('modal') && UI.$(this).data('modal').resize();
+        });
+    }, 150));
+
+    UI.component('modal', {
+
+        defaults: {
+            keyboard: true,
+            bgclose: true,
+            minScrollHeight: 150,
+            center: false,
+            modal: true
+        },
+
+        scrollable: false,
+        transition: false,
+        hasTransitioned: true,
+
+        init: function() {
+
+            if (!body) body = UI.$('body');
+
+            if (!this.element.length) return;
+
+            var $this = this;
+
+            this.paddingdir = 'padding-' + (UI.langdirection == 'left' ? 'right':'left');
+            this.dialog     = this.find('.uk-modal-dialog');
+
+            this.active     = false;
+
+            // Update ARIA
+            this.element.attr('aria-hidden', this.element.hasClass('uk-open'));
+
+            this.on('click', '.uk-modal-close', function(e) {
+
+                e.preventDefault();
+
+                var modal = UI.$(e.target).closest('.uk-modal');
+                if (modal[0] === $this.element[0]) $this.hide();
+
+            }).on('click', function(e) {
+
+                var target = UI.$(e.target);
+
+                if (target[0] == $this.element[0] && $this.options.bgclose) {
+                    $this.hide();
+                }
+            });
+
+            UI.domObserve(this.element, function(e) { $this.resize(); });
+        },
+
+        toggle: function() {
+            return this[this.isActive() ? 'hide' : 'show']();
+        },
+
+        show: function() {
+
+            if (!this.element.length) return;
+
+            var $this = this;
+
+            if (this.isActive()) return;
+
+            if (this.options.modal && active) {
+                active.hide(true);
+            }
+
+            this.element.removeClass('uk-open').show();
+            this.resize(true);
+
+            if (this.options.modal) {
+                active = this;
+            }
+
+            this.active = true;
+
+            activeCount++;
+
+            if (UI.support.transition) {
+                this.hasTransitioned = false;
+                this.element.one(UI.support.transition.end, function(){
+                    $this.hasTransitioned = true;
+                    UI.Utils.focus($this.dialog, 'a[href]');
+                }).addClass('uk-open');
+            } else {
+                this.element.addClass('uk-open');
+                UI.Utils.focus(this.dialog, 'a[href]');
+            }
+
+            $html.addClass('uk-modal-page').height(); // force browser engine redraw
+
+            // Update ARIA
+            this.element.attr('aria-hidden', 'false');
+
+            this.element.trigger('show.uk.modal');
+
+            UI.Utils.checkDisplay(this.dialog, true);
+
+            return this;
+        },
+
+        hide: function(force) {
+
+            if (!force && UI.support.transition && this.hasTransitioned) {
+
+                var $this = this;
+
+                this.one(UI.support.transition.end, function() {
+                    $this._hide();
+                }).removeClass('uk-open');
+
+            } else {
+
+                this._hide();
+            }
+
+            return this;
+        },
+
+        resize: function(force) {
+
+            if (!this.isActive() && !force) return;
+
+            var bodywidth  = body.width();
+
+            this.scrollbarwidth = window.innerWidth - bodywidth;
+
+            body.css(this.paddingdir, this.scrollbarwidth);
+
+            this.element.css('overflow-y', this.scrollbarwidth ? 'scroll' : 'auto');
+
+            if (!this.updateScrollable() && this.options.center) {
+
+                var dh  = this.dialog.outerHeight(),
+                pad = parseInt(this.dialog.css('margin-top'), 10) + parseInt(this.dialog.css('margin-bottom'), 10);
+
+                if ((dh + pad) < window.innerHeight) {
+                    this.dialog.css({top: (window.innerHeight/2 - dh/2) - pad });
+                } else {
+                    this.dialog.css({top: ''});
+                }
+            }
+        },
+
+        updateScrollable: function() {
+
+            // has scrollable?
+            var scrollable = this.dialog.find('.uk-overflow-container:visible:first');
+
+            if (scrollable.length) {
+
+                scrollable.css('height', 0);
+
+                var offset = Math.abs(parseInt(this.dialog.css('margin-top'), 10)),
+                dh     = this.dialog.outerHeight(),
+                wh     = window.innerHeight,
+                h      = wh - 2*(offset < 20 ? 20:offset) - dh;
+
+                scrollable.css({
+                    maxHeight: (h < this.options.minScrollHeight ? '':h),
+                    height:''
+                });
+
+                return true;
+            }
+
+            return false;
+        },
+
+        _hide: function() {
+
+            this.active = false;
+            if (activeCount > 0) activeCount--;
+            else activeCount = 0;
+
+            this.element.hide().removeClass('uk-open');
+
+            // Update ARIA
+            this.element.attr('aria-hidden', 'true');
+
+            if (!activeCount) {
+                $html.removeClass('uk-modal-page');
+                body.css(this.paddingdir, "");
+            }
+
+            if (active===this) active = false;
+
+            this.trigger('hide.uk.modal');
+        },
+
+        isActive: function() {
+            return this.element.hasClass('uk-open');
+        }
+
+    });
+
+    UI.component('modalTrigger', {
+
+        boot: function() {
+
+            // init code
+            UI.$html.on('click.modal.uikit', '[data-uk-modal]', function(e) {
+
+                var ele = UI.$(this);
+
+                if (ele.is('a')) {
+                    e.preventDefault();
+                }
+
+                if (!ele.data('modalTrigger')) {
+                    var modal = UI.modalTrigger(ele, UI.Utils.options(ele.attr('data-uk-modal')));
+                    modal.show();
+                }
+
+            });
+
+            // close modal on esc button
+            UI.$html.on('keydown.modal.uikit', function (e) {
+
+                if (active && e.keyCode === 27 && active.options.keyboard) { // ESC
+                    e.preventDefault();
+                    active.hide();
+                }
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            this.options = UI.$.extend({
+                target: $this.element.is('a') ? $this.element.attr('href') : false
+            }, this.options);
+
+            this.modal = UI.modal(this.options.target, this.options);
+
+            this.on("click", function(e) {
+                e.preventDefault();
+                $this.show();
+            });
+
+            //methods
+            this.proxy(this.modal, 'show hide isActive');
+        }
+    });
+
+    UI.modal.dialog = function(content, options) {
+
+        var modal = UI.modal(UI.$(UI.modal.dialog.template).appendTo('body'), options);
+
+        modal.on('hide.uk.modal', function(){
+            if (modal.persist) {
+                modal.persist.appendTo(modal.persist.data('modalPersistParent'));
+                modal.persist = false;
+            }
+            modal.element.remove();
+        });
+
+        setContent(content, modal);
+
+        return modal;
+    };
+
+    UI.modal.dialog.template = '<div class="uk-modal"><div class="uk-modal-dialog" style="min-height:0;"></div></div>';
+
+    UI.modal.alert = function(content, options) {
+
+        options = UI.$.extend(true, {bgclose:false, keyboard:false, modal:false, labels:UI.modal.labels}, options);
+
+        var modal = UI.modal.dialog(([
+            '<div class="uk-margin uk-modal-content">'+String(content)+'</div>',
+            '<div class="uk-modal-footer uk-text-right"><button class="uk-button uk-button-primary uk-modal-close">'+options.labels.Ok+'</button></div>'
+        ]).join(""), options);
+
+        modal.on('show.uk.modal', function(){
+            setTimeout(function(){
+                modal.element.find('button:first').focus();
+            }, 50);
+        });
+
+        return modal.show();
+    };
+
+    UI.modal.confirm = function(content, onconfirm, oncancel) {
+
+        var options = arguments.length > 1 && arguments[arguments.length-1] ? arguments[arguments.length-1] : {};
+
+        onconfirm = UI.$.isFunction(onconfirm) ? onconfirm : function(){};
+        oncancel  = UI.$.isFunction(oncancel) ? oncancel : function(){};
+        options   = UI.$.extend(true, {bgclose:false, keyboard:false, modal:false, labels:UI.modal.labels}, UI.$.isFunction(options) ? {}:options);
+
+        var modal = UI.modal.dialog(([
+            '<div class="uk-margin uk-modal-content">'+String(content)+'</div>',
+            '<div class="uk-modal-footer uk-text-right"><button class="uk-button js-modal-confirm-cancel">'+options.labels.Cancel+'</button> <button class="uk-button uk-button-primary js-modal-confirm">'+options.labels.Ok+'</button></div>'
+        ]).join(""), options);
+
+        modal.element.find(".js-modal-confirm, .js-modal-confirm-cancel").on("click", function(){
+            UI.$(this).is('.js-modal-confirm') ? onconfirm() : oncancel();
+            modal.hide();
+        });
+
+        modal.on('show.uk.modal', function(){
+            setTimeout(function(){
+                modal.element.find('.js-modal-confirm').focus();
+            }, 50);
+        });
+
+        return modal.show();
+    };
+
+    UI.modal.prompt = function(text, value, onsubmit, options) {
+
+        onsubmit = UI.$.isFunction(onsubmit) ? onsubmit : function(value){};
+        options  = UI.$.extend(true, {bgclose:false, keyboard:false, modal:false, labels:UI.modal.labels}, options);
+
+        var modal = UI.modal.dialog(([
+            text ? '<div class="uk-modal-content uk-form">'+String(text)+'</div>':'',
+            '<div class="uk-margin-small-top uk-modal-content uk-form"><p><input type="text" class="uk-width-1-1"></p></div>',
+            '<div class="uk-modal-footer uk-text-right"><button class="uk-button uk-modal-close">'+options.labels.Cancel+'</button> <button class="uk-button uk-button-primary js-modal-ok">'+options.labels.Ok+'</button></div>'
+        ]).join(""), options),
+
+        input = modal.element.find("input[type='text']").val(value || '').on('keyup', function(e){
+            if (e.keyCode == 13) {
+                modal.element.find('.js-modal-ok').trigger('click');
+            }
+        });
+
+        modal.element.find('.js-modal-ok').on('click', function(){
+            if (onsubmit(input.val())!==false){
+                modal.hide();
+            }
+        });
+
+        return modal.show();
+    };
+
+    UI.modal.blockUI = function(content, options) {
+
+        var modal = UI.modal.dialog(([
+            '<div class="uk-margin uk-modal-content">'+String(content || '<div class="uk-text-center">...</div>')+'</div>'
+        ]).join(""), UI.$.extend({bgclose:false, keyboard:false, modal:false}, options));
+
+        modal.content = modal.element.find('.uk-modal-content:first');
+
+        return modal.show();
+    };
+
+    UI.modal.labels = {
+        Ok: 'Ok',
+        Cancel: 'Cancel'
+    };
+
+    // helper functions
+    function setContent(content, modal){
+
+        if(!modal) return;
+
+        if (typeof content === 'object') {
+
+            // convert DOM object to a jQuery object
+            content = content instanceof jQuery ? content : UI.$(content);
+
+            if(content.parent().length) {
+                modal.persist = content;
+                modal.persist.data('modalPersistParent', content.parent());
+            }
+        }else if (typeof content === 'string' || typeof content === 'number') {
+                // just insert the data as innerHTML
+                content = UI.$('<div></div>').html(content);
+        }else {
+                // unsupported data type!
+                content = UI.$('<div></div>').html('UIkit2.modal Error: Unsupported data type: ' + typeof content);
+        }
+
+        content.appendTo(modal.element.find('.uk-modal-dialog'));
+
+        return modal;
+    }
+
+})(UIkit2);
+
+(function(UI) {
+
+    "use strict";
+
+    UI.component('nav', {
+
+        defaults: {
+            toggle: '>li.uk-parent > a[href="#"]',
+            lists: '>li.uk-parent > ul',
+            multiple: false
+        },
+
+        boot: function() {
+
+            // init code
+            UI.ready(function(context) {
+
+                UI.$('[data-uk-nav]', context).each(function() {
+                    var nav = UI.$(this);
+
+                    if (!nav.data('nav')) {
+                        var obj = UI.nav(nav, UI.Utils.options(nav.attr('data-uk-nav')));
+                    }
+                });
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            this.on('click.uk.nav', this.options.toggle, function(e) {
+                e.preventDefault();
+                var ele = UI.$(this);
+                $this.open(ele.parent()[0] == $this.element[0] ? ele : ele.parent("li"));
+            });
+
+            this.update();
+
+            UI.domObserve(this.element, function(e) {
+                if ($this.element.find($this.options.lists).not('[role]').length) {
+                    $this.update();
+                }
+            });
+        },
+
+        update: function() {
+
+            var $this = this;
+
+            this.find(this.options.lists).each(function() {
+
+                var $ele   = UI.$(this).attr('role', 'menu'),
+                    parent = $ele.closest('li'),
+                    active = parent.hasClass("uk-active");
+
+                if (!parent.data('list-container')) {
+                    $ele.wrap('<div style="overflow:hidden;height:0;position:relative;"></div>');
+                    parent.data('list-container', $ele.parent()[active ? 'removeClass':'addClass']('uk-hidden'));
+                }
+
+                // Init ARIA
+                parent.attr('aria-expanded', parent.hasClass("uk-open"));
+
+                if (active) $this.open(parent, true);
+            });
+        },
+
+        open: function(li, noanimation) {
+
+            var $this = this, element = this.element, $li = UI.$(li), $container = $li.data('list-container');
+
+            if (!this.options.multiple) {
+
+                element.children('.uk-open').not(li).each(function() {
+
+                    var ele = UI.$(this);
+
+                    if (ele.data('list-container')) {
+                        ele.data('list-container').stop().animate({height: 0}, function() {
+                            UI.$(this).parent().removeClass('uk-open').end().addClass('uk-hidden');
+                        });
+                    }
+                });
+            }
+
+            $li.toggleClass('uk-open');
+
+            // Update ARIA
+            $li.attr('aria-expanded', $li.hasClass('uk-open'));
+
+            if ($container) {
+
+                if ($li.hasClass('uk-open')) {
+                    $container.removeClass('uk-hidden');
+                }
+
+                if (noanimation) {
+
+                    $container.stop().height($li.hasClass('uk-open') ? 'auto' : 0);
+
+                    if (!$li.hasClass('uk-open')) {
+                        $container.addClass('uk-hidden');
+                    }
+
+                    this.trigger('display.uk.check');
+
+                } else {
+
+                    $container.stop().animate({
+                        height: ($li.hasClass('uk-open') ? getHeight($container.find('ul:first')) : 0)
+                    }, function() {
+
+                        if (!$li.hasClass('uk-open')) {
+                            $container.addClass('uk-hidden');
+                        } else {
+                            $container.css('height', '');
+                        }
+
+                        $this.trigger('display.uk.check');
+                    });
+                }
+            }
+        }
+    });
+
+
+    // helper
+
+    function getHeight(ele) {
+
+        var $ele = UI.$(ele), height = 'auto';
+
+        if ($ele.is(':visible')) {
+            height = $ele.outerHeight();
+        } else {
+
+            var tmp = {
+                position: $ele.css('position'),
+                visibility: $ele.css('visibility'),
+                display: $ele.css('display')
+            };
+
+            height = $ele.css({position: 'absolute', visibility: 'hidden', display: 'block'}).outerHeight();
+
+            $ele.css(tmp); // reset element
+        }
+
+        return height;
+    }
+
+})(UIkit2);
+
+(function(UI) {
+
+    "use strict";
+
+    var scrollpos = {x: window.scrollX, y: window.scrollY},
+        $win      = UI.$win,
+        $doc      = UI.$doc,
+        $html     = UI.$html,
+        Offcanvas = {
+
+        show: function(element, options) {
+
+            element = UI.$(element);
+
+            if (!element.length) return;
+
+            options = UI.$.extend({mode: 'push'}, options);
+
+            var $body     = UI.$('body'),
+                bar       = element.find('.uk-offcanvas-bar:first'),
+                rtl       = (UI.langdirection == 'right'),
+                flip      = bar.hasClass('uk-offcanvas-bar-flip') ? -1:1,
+                dir       = flip * (rtl ? -1 : 1),
+
+                scrollbarwidth =  window.innerWidth - $body.width();
+
+            scrollpos = {x: window.pageXOffset, y: window.pageYOffset};
+
+            bar.attr('mode', options.mode);
+            element.addClass('uk-active');
+
+            $body.css({width: window.innerWidth - scrollbarwidth, height: window.innerHeight}).addClass('uk-offcanvas-page');
+
+            if (options.mode == 'push' || options.mode == 'reveal') {
+                $body.css((rtl ? 'margin-right' : 'margin-left'), (rtl ? -1 : 1) * (bar.outerWidth() * dir));
+            }
+
+            if (options.mode == 'reveal') {
+                bar.css('clip', 'rect(0, '+bar.outerWidth()+'px, 100vh, 0)');
+            }
+
+            $html.css('margin-top', scrollpos.y * -1).width(); // .width() - force redraw
+
+
+            bar.addClass('uk-offcanvas-bar-show');
+
+            this._initElement(element);
+
+            bar.trigger('show.uk.offcanvas', [element, bar]);
+
+            // Update ARIA
+            element.attr('aria-hidden', 'false');
+        },
+
+        hide: function(force) {
+
+            var $body = UI.$('body'),
+                panel = UI.$('.uk-offcanvas.uk-active'),
+                rtl   = (UI.langdirection == 'right'),
+                bar   = panel.find('.uk-offcanvas-bar:first'),
+                finalize = function() {
+                    $body.removeClass('uk-offcanvas-page').css({width: '', height: '', marginLeft: '', marginRight: ''});
+                    panel.removeClass('uk-active');
+
+                    bar.removeClass('uk-offcanvas-bar-show');
+                    $html.css('margin-top', '');
+                    window.scrollTo(scrollpos.x, scrollpos.y);
+                    bar.trigger('hide.uk.offcanvas', [panel, bar]);
+
+                    // Update ARIA
+                    panel.attr('aria-hidden', 'true');
+                };
+
+            if (!panel.length) return;
+            if (bar.attr('mode') == 'none') force = true;
+
+            if (UI.support.transition && !force) {
+
+                $body.one(UI.support.transition.end, function() {
+                    finalize();
+                }).css((rtl ? 'margin-right' : 'margin-left'), '');
+
+                if (bar.attr('mode') == 'reveal') {
+                    bar.css('clip', '');
+                }
+
+                setTimeout(function(){
+                    bar.removeClass('uk-offcanvas-bar-show');
+                }, 0);
+
+            } else {
+                finalize();
+            }
+        },
+
+        _initElement: function(element) {
+
+            if (element.data('OffcanvasInit')) return;
+
+            element.on('click.uk.offcanvas swipeRight.uk.offcanvas swipeLeft.uk.offcanvas', function(e) {
+
+                var target = UI.$(e.target);
+
+                if (e.type.match(/swipe/)) {
+                    if (target.parents('.uk-offcanvas-bar:first').length) return;
+                } else {
+
+                    if (!target.hasClass('uk-offcanvas-close')) {
+                        if (target.hasClass('uk-offcanvas-bar')) return;
+                        if (target.parents('.uk-offcanvas-bar:first').length) return;
+                    }
+                }
+
+                e.stopImmediatePropagation();
+                Offcanvas.hide();
+            });
+
+            element.on('click', 'a[href*="#"]', function(e){
+
+                var link = UI.$(this),
+                    href = link.attr('href');
+
+                if (href == '#') {
+                    return;
+                }
+
+                UI.$doc.one('hide.uk.offcanvas', function() {
+
+                    var target;
+
+                    try {
+                        target = UI.$(link[0].hash);
+                    } catch (e){
+                        target = '';
+                    }
+
+                    if (!target.length) {
+                        target = UI.$('[name="'+link[0].hash.replace('#','')+'"]');
+                    }
+
+                    if (target.length && UI.Utils.scrollToElement) {
+                        UI.Utils.scrollToElement(target, UI.Utils.options(link.attr('data-uk-smooth-scroll') || '{}'));
+                    } else {
+                        window.location.href = href;
+                    }
+                });
+
+                Offcanvas.hide();
+            });
+
+            element.data('OffcanvasInit', true);
+        }
+    };
+
+    UI.component('offcanvasTrigger', {
+
+        boot: function() {
+
+            // init code
+            $html.on('click.offcanvas.uikit', '[data-uk-offcanvas]', function(e) {
+
+                e.preventDefault();
+
+                var ele = UI.$(this);
+
+                if (!ele.data('offcanvasTrigger')) {
+                    var obj = UI.offcanvasTrigger(ele, UI.Utils.options(ele.attr('data-uk-offcanvas')));
+                    ele.trigger("click");
+                }
+            });
+
+            $html.on('keydown.uk.offcanvas', function(e) {
+
+                if (e.keyCode === 27) { // ESC
+                    Offcanvas.hide();
+                }
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            this.options = UI.$.extend({
+                target: $this.element.is('a') ? $this.element.attr('href') : false,
+                mode: 'push'
+            }, this.options);
+
+            this.on('click', function(e) {
+                e.preventDefault();
+                Offcanvas.show($this.options.target, $this.options);
+            });
+        }
+    });
+
+    UI.offcanvas = Offcanvas;
+
+})(UIkit2);
+
+(function(UI) {
+
+    "use strict";
+
+    var Animations;
+
+    UI.component('switcher', {
+
+        defaults: {
+            connect   : false,
+            toggle    : '>*',
+            active    : 0,
+            animation : false,
+            duration  : 200,
+            swiping   : true
+        },
+
+        animating: false,
+
+        boot: function() {
+
+            // init code
+            UI.ready(function(context) {
+
+                UI.$('[data-uk-switcher]', context).each(function() {
+                    var switcher = UI.$(this);
+
+                    if (!switcher.data('switcher')) {
+                        var obj = UI.switcher(switcher, UI.Utils.options(switcher.attr('data-uk-switcher')));
+                    }
+                });
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            this.on('click.uk.switcher', this.options.toggle, function(e) {
+                e.preventDefault();
+                $this.show(this);
+            });
+
+            if (!this.options.connect) {
+                return;
+            }
+
+            this.connect = UI.$(this.options.connect);
+
+            if (!this.connect.length) {
+                return;
+            }
+
+            this.connect.on('click.uk.switcher', '[data-uk-switcher-item]', function(e) {
+
+                e.preventDefault();
+
+                var item = UI.$(this).attr('data-uk-switcher-item');
+
+                if ($this.index == item) return;
+
+                switch(item) {
+                    case 'next':
+                    case 'previous':
+                        $this.show($this.index + (item=='next' ? 1:-1));
+                        break;
+                    default:
+                        $this.show(parseInt(item, 10));
+                }
+            });
+
+            if (this.options.swiping) {
+
+                this.connect.on('swipeRight swipeLeft', function(e) {
+                    e.preventDefault();
+                    if (!window.getSelection().toString()) {
+                        $this.show($this.index + (e.type == 'swipeLeft' ? 1 : -1));
+                    }
+                });
+            }
+
+            this.update();
+        },
+
+        update: function() {
+
+            this.connect.children().removeClass('uk-active').attr('aria-hidden', 'true');
+
+            var toggles = this.find(this.options.toggle),
+                active  = toggles.filter('.uk-active');
+
+            if (active.length) {
+                this.show(active, false);
+            } else {
+
+                if (this.options.active===false) return;
+
+                active = toggles.eq(this.options.active);
+                this.show(active.length ? active : toggles.eq(0), false);
+            }
+
+            // Init ARIA for toggles
+            toggles.not(active).attr('aria-expanded', 'false');
+            active.attr('aria-expanded', 'true');
+        },
+
+        show: function(tab, animate) {
+
+            if (this.animating) {
+                return;
+            }
+
+            var toggles = this.find(this.options.toggle);
+
+            if (isNaN(tab)) {
+                tab = UI.$(tab);
+            } else {
+                tab = tab < 0 ? toggles.length-1 : tab;
+                tab = toggles.eq(toggles[tab] ? tab : 0);
+            }
+
+            var $this     = this,
+                active    = UI.$(tab),
+                animation = Animations[this.options.animation] || function(current, next) {
+
+                    if (!$this.options.animation) {
+                        return Animations.none.apply($this);
+                    }
+
+                    var anim = $this.options.animation.split(',');
+
+                    if (anim.length == 1) {
+                        anim[1] = anim[0];
+                    }
+
+                    anim[0] = anim[0].trim();
+                    anim[1] = anim[1].trim();
+
+                    return coreAnimation.apply($this, [anim, current, next]);
+                };
+
+            if (animate===false || !UI.support.animation) {
+                animation = Animations.none;
+            }
+
+            if (active.hasClass("uk-disabled")) return;
+
+            // Update ARIA for Toggles
+            toggles.attr('aria-expanded', 'false');
+            active.attr('aria-expanded', 'true');
+
+            toggles.filter(".uk-active").removeClass("uk-active");
+            active.addClass("uk-active");
+
+            if (this.options.connect && this.connect.length) {
+
+                this.index = this.find(this.options.toggle).index(active);
+
+                if (this.index == -1 ) {
+                    this.index = 0;
+                }
+
+                this.connect.each(function() {
+
+                    var container = UI.$(this),
+                        children  = UI.$(container.children()),
+                        current   = UI.$(children.filter('.uk-active')),
+                        next      = UI.$(children.eq($this.index));
+
+                        $this.animating = true;
+
+                        animation.apply($this, [current, next]).then(function(){
+
+                            current.removeClass("uk-active");
+                            next.addClass("uk-active");
+
+                            // Update ARIA for connect
+                            current.attr('aria-hidden', 'true');
+                            next.attr('aria-hidden', 'false');
+
+                            UI.Utils.checkDisplay(next, true);
+
+                            $this.animating = false;
+
+                        });
+                });
+            }
+
+            this.trigger("show.uk.switcher", [active]);
+        }
+    });
+
+    Animations = {
+
+        'none': function() {
+            var d = UI.$.Deferred();
+            d.resolve();
+            return d.promise();
+        },
+
+        'fade': function(current, next) {
+            return coreAnimation.apply(this, ['uk-animation-fade', current, next]);
+        },
+
+        'slide-bottom': function(current, next) {
+            return coreAnimation.apply(this, ['uk-animation-slide-bottom', current, next]);
+        },
+
+        'slide-top': function(current, next) {
+            return coreAnimation.apply(this, ['uk-animation-slide-top', current, next]);
+        },
+
+        'slide-vertical': function(current, next, dir) {
+
+            var anim = ['uk-animation-slide-top', 'uk-animation-slide-bottom'];
+
+            if (current && current.index() > next.index()) {
+                anim.reverse();
+            }
+
+            return coreAnimation.apply(this, [anim, current, next]);
+        },
+
+        'slide-left': function(current, next) {
+            return coreAnimation.apply(this, ['uk-animation-slide-left', current, next]);
+        },
+
+        'slide-right': function(current, next) {
+            return coreAnimation.apply(this, ['uk-animation-slide-right', current, next]);
+        },
+
+        'slide-horizontal': function(current, next, dir) {
+
+            var anim = ['uk-animation-slide-right', 'uk-animation-slide-left'];
+
+            if (current && current.index() > next.index()) {
+                anim.reverse();
+            }
+
+            return coreAnimation.apply(this, [anim, current, next]);
+        },
+
+        'scale': function(current, next) {
+            return coreAnimation.apply(this, ['uk-animation-scale-up', current, next]);
+        }
+    };
+
+    UI.switcher.animations = Animations;
+
+
+    // helpers
+
+    function coreAnimation(cls, current, next) {
+
+        var d = UI.$.Deferred(), clsIn = cls, clsOut = cls, release;
+
+        if (next[0]===current[0]) {
+            d.resolve();
+            return d.promise();
+        }
+
+        if (typeof(cls) == 'object') {
+            clsIn  = cls[0];
+            clsOut = cls[1] || cls[0];
+        }
+
+        UI.$body.css('overflow-x', 'hidden'); // fix scroll jumping in iOS
+
+        release = function() {
+
+            if (current) current.hide().removeClass('uk-active '+clsOut+' uk-animation-reverse');
+
+            next.addClass(clsIn).one(UI.support.animation.end, function() {
+
+                setTimeout(function () {
+                    next.removeClass(''+clsIn+'').css({opacity:'', display:''});
+                }, 0);
+
+                d.resolve();
+
+                UI.$body.css('overflow-x', '');
+
+                if (current) current.css({opacity:'', display:''});
+
+            }.bind(this)).show();
+        };
+
+        next.css('animation-duration', this.options.duration+'ms');
+
+        if (current && current.length) {
+
+            current.css('animation-duration', this.options.duration+'ms');
+
+            current.css('display', 'none').addClass(clsOut+' uk-animation-reverse').one(UI.support.animation.end, function() {
+                release();
+            }.bind(this)).css('display', '');
+
+        } else {
+            next.addClass('uk-active');
+            release();
+        }
+
+        return d.promise();
+    }
+
+})(UIkit2);
+
+(function(UI) {
+
+    "use strict";
+
+    UI.component('tab', {
+
+        defaults: {
+            target    : '>li:not(.uk-tab-responsive, .uk-disabled)',
+            connect   : false,
+            active    : 0,
+            animation : false,
+            duration  : 200,
+            swiping   : true
+        },
+
+        boot: function() {
+
+            // init code
+            UI.ready(function(context) {
+
+                UI.$('[data-uk-tab]', context).each(function() {
+
+                    var tab = UI.$(this);
+
+                    if (!tab.data('tab')) {
+                        var obj = UI.tab(tab, UI.Utils.options(tab.attr('data-uk-tab')));
+                    }
+                });
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            this.current = false;
+
+            this.on('click.uk.tab', this.options.target, function(e) {
+
+                e.preventDefault();
+
+                if ($this.switcher && $this.switcher.animating) {
+                    return;
+                }
+
+                var current = $this.find($this.options.target).not(this);
+
+                current.removeClass('uk-active').blur();
+
+                $this.trigger('change.uk.tab', [UI.$(this).addClass('uk-active'), $this.current]);
+
+                $this.current = UI.$(this);
+
+                // Update ARIA
+                if (!$this.options.connect) {
+                    current.attr('aria-expanded', 'false');
+                    UI.$(this).attr('aria-expanded', 'true');
+                }
+            });
+
+            if (this.options.connect) {
+                this.connect = UI.$(this.options.connect);
+            }
+
+            // init responsive tab
+            this.responsivetab = UI.$('<li class="uk-tab-responsive uk-active"><a></a></li>').append('<div class="uk-dropdown uk-dropdown-small"><ul class="uk-nav uk-nav-dropdown"></ul><div>');
+
+            this.responsivetab.dropdown = this.responsivetab.find('.uk-dropdown');
+            this.responsivetab.lst      = this.responsivetab.dropdown.find('ul');
+            this.responsivetab.caption  = this.responsivetab.find('a:first');
+
+            if (this.element.hasClass('uk-tab-bottom')) this.responsivetab.dropdown.addClass('uk-dropdown-up');
+
+            // handle click
+            this.responsivetab.lst.on('click.uk.tab', 'a', function(e) {
+
+                e.preventDefault();
+                e.stopPropagation();
+
+                var link = UI.$(this);
+
+                $this.element.children('li:not(.uk-tab-responsive)').eq(link.data('index')).trigger('click');
+            });
+
+            this.on('show.uk.switcher change.uk.tab', function(e, tab) {
+                $this.responsivetab.caption.html(tab.text());
+            });
+
+            this.element.append(this.responsivetab);
+
+            // init UIkit components
+            if (this.options.connect) {
+
+                this.switcher = UI.switcher(this.element, {
+                    toggle    : '>li:not(.uk-tab-responsive)',
+                    connect   : this.options.connect,
+                    active    : this.options.active,
+                    animation : this.options.animation,
+                    duration  : this.options.duration,
+                    swiping   : this.options.swiping
+                });
+            }
+
+            UI.dropdown(this.responsivetab, {mode: 'click', preventflip: 'y'});
+
+            // init
+            $this.trigger('change.uk.tab', [this.element.find(this.options.target).not('.uk-tab-responsive').filter('.uk-active')]);
+
+            this.check();
+
+            UI.$win.on('resize orientationchange', UI.Utils.debounce(function(){
+                if ($this.element.is(':visible'))  $this.check();
+            }, 100));
+
+            this.on('display.uk.check', function(){
+                if ($this.element.is(':visible'))  $this.check();
+            });
+        },
+
+        check: function() {
+
+            var children = this.element.children('li:not(.uk-tab-responsive)').removeClass('uk-hidden');
+
+            if (!children.length) {
+                this.responsivetab.addClass('uk-hidden');
+                return;
+            }
+
+            var top          = (children.eq(0).offset().top + Math.ceil(children.eq(0).height()/2)),
+                doresponsive = false,
+                item, link, clone;
+
+            this.responsivetab.lst.empty();
+
+            children.each(function(){
+
+                if (UI.$(this).offset().top > top) {
+                    doresponsive = true;
+                }
+            });
+
+            if (doresponsive) {
+
+                for (var i = 0; i < children.length; i++) {
+
+                    item  = UI.$(children.eq(i));
+                    link  = item.find('a');
+
+                    if (item.css('float') != 'none' && !item.attr('uk-dropdown')) {
+
+                        if (!item.hasClass('uk-disabled')) {
+
+                            clone = UI.$(item[0].outerHTML);
+                            clone.find('a').data('index', i);
+
+                            this.responsivetab.lst.append(clone);
+                        }
+
+                        item.addClass('uk-hidden');
+                    }
+                }
+            }
+
+            this.responsivetab[this.responsivetab.lst.children('li').length ? 'removeClass':'addClass']('uk-hidden');
+        }
+    });
+
+})(UIkit2);
+
+(function(UI){
+
+    "use strict";
+
+    UI.component('cover', {
+
+        defaults: {
+            automute : true
+        },
+
+        boot: function() {
+
+            // auto init
+            UI.ready(function(context) {
+
+                UI.$('[data-uk-cover]', context).each(function(){
+
+                    var ele = UI.$(this);
+
+                    if(!ele.data('cover')) {
+                        var plugin = UI.cover(ele, UI.Utils.options(ele.attr('data-uk-cover')));
+                    }
+                });
+            });
+        },
+
+        init: function() {
+
+            this.parent = this.element.parent();
+
+            UI.$win.on('load resize orientationchange', UI.Utils.debounce(function(){
+                this.check();
+            }.bind(this), 100));
+
+            this.on('display.uk.check', function(e) {
+                if (this.element.is(':visible')) this.check();
+            }.bind(this));
+
+            this.check();
+
+            if (this.element.is('iframe') && this.options.automute) {
+
+                var src = this.element.attr('src');
+
+                this.element.attr('src', '').on('load', function(){
+                    this.contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}', '*');
+                }).attr('src', [src, (src.indexOf('?') > -1 ? '&':'?'), 'enablejsapi=1&api=1'].join(''));
+            }
+        },
+
+        check: function() {
+
+            this.element.css({ width  : '', height : '' });
+
+            this.dimension = {w: this.element.width(), h: this.element.height()};
+
+            if (this.element.attr('width') && !isNaN(this.element.attr('width'))) {
+                this.dimension.w = this.element.attr('width');
+            }
+
+            if (this.element.attr('height') && !isNaN(this.element.attr('height'))) {
+                this.dimension.h = this.element.attr('height');
+            }
+
+            this.ratio = this.dimension.w / this.dimension.h;
+
+            var w = this.parent.width(), h = this.parent.height(), width, height;
+
+            // if element height < parent height (gap underneath)
+            if ((w / this.ratio) < h) {
+
+                width  = Math.ceil(h * this.ratio);
+                height = h;
+
+            // element width < parent width (gap to right)
+            } else {
+
+                width  = w;
+                height = Math.ceil(w / this.ratio);
+            }
+
+            this.element.css({ width  : width, height : height });
+        }
+    });
+
+})(UIkit2);
+
+/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
+(function(addon) {
+    var component;
+
+    if (window.UIkit2) {
+        component = addon(UIkit2);
+    }
+
+    if (typeof define == 'function' && define.amd) {
+        define('uikit-accordion', ['uikit'], function(){
+            return component || addon(UIkit2);
+        });
+    }
+})(function(UI){
+
+    "use strict";
+
+    UI.component('accordion', {
+
+        defaults: {
+            showfirst  : true,
+            collapse   : true,
+            animate    : true,
+            easing     : 'swing',
+            duration   : 300,
+            toggle     : '.uk-accordion-title',
+            containers : '.uk-accordion-content',
+            clsactive  : 'uk-active'
+        },
+
+        boot:  function() {
+
+            // init code
+            UI.ready(function(context) {
+
+                setTimeout(function(){
+
+                    UI.$('[data-uk-accordion]', context).each(function(){
+
+                        var ele = UI.$(this);
+
+                        if (!ele.data('accordion')) {
+                            UI.accordion(ele, UI.Utils.options(ele.attr('data-uk-accordion')));
+                        }
+                    });
+
+                }, 0);
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            this.element.on('click.uk.accordion', this.options.toggle, function(e) {
+
+                e.preventDefault();
+
+                $this.toggleItem(UI.$(this).data('wrapper'), $this.options.animate, $this.options.collapse);
+            });
+
+            this.update(true);
+
+            UI.domObserve(this.element, function(e) {
+                if ($this.element.children($this.options.containers).length) {
+                    $this.update();
+                }
+            });
+        },
+
+        toggleItem: function(wrapper, animated, collapse) {
+
+            var $this = this;
+
+            wrapper.data('toggle').toggleClass(this.options.clsactive);
+            wrapper.data('content').toggleClass(this.options.clsactive);
+
+            var active = wrapper.data('toggle').hasClass(this.options.clsactive);
+
+            if (collapse) {
+                this.toggle.not(wrapper.data('toggle')).removeClass(this.options.clsactive);
+                this.content.not(wrapper.data('content')).removeClass(this.options.clsactive)
+                    .parent().stop().css('overflow', 'hidden').animate({ height: 0 }, {easing: this.options.easing, duration: animated ? this.options.duration : 0}).attr('aria-expanded', 'false');
+            }
+
+            wrapper.stop().css('overflow', 'hidden');
+
+            if (animated) {
+
+                wrapper.animate({ height: active ? getHeight(wrapper.data('content')) : 0 }, {easing: this.options.easing, duration: this.options.duration, complete: function() {
+
+                    if (active) {
+                        wrapper.css({'overflow': '', 'height': 'auto'});
+                        UI.Utils.checkDisplay(wrapper.data('content'));
+                    }
+
+                    $this.trigger('display.uk.check');
+                }});
+
+            } else {
+
+                wrapper.height(active ? 'auto' : 0);
+
+                if (active) {
+                    wrapper.css({'overflow': ''});
+                    UI.Utils.checkDisplay(wrapper.data('content'));
+                }
+
+                this.trigger('display.uk.check');
+            }
+
+            // Update ARIA
+            wrapper.attr('aria-expanded', active);
+
+            this.element.trigger('toggle.uk.accordion', [active, wrapper.data('toggle'), wrapper.data('content')]);
+        },
+
+        update: function(init) {
+
+            var $this = this, $content, $wrapper, $toggle;
+
+            this.toggle = this.find(this.options.toggle);
+            this.content = this.find(this.options.containers);
+
+            this.content.each(function(index) {
+
+                $content = UI.$(this);
+
+                if ($content.parent().data('wrapper')) {
+                    $wrapper = $content.parent();
+                } else {
+                    $wrapper = UI.$(this).wrap('<div data-wrapper="true" style="overflow:hidden;height:0;position:relative;"></div>').parent();
+
+                    // Init ARIA
+                    $wrapper.attr('aria-expanded', 'false');
+                }
+
+                $toggle = $this.toggle.eq(index);
+
+                $wrapper.data('toggle', $toggle);
+                $wrapper.data('content', $content);
+                $toggle.data('wrapper', $wrapper);
+                $content.data('wrapper', $wrapper);
+            });
+
+            this.element.trigger('update.uk.accordion', [this]);
+
+            if (init && this.options.showfirst) {
+                this.toggleItem(this.toggle.eq(0).data('wrapper'), false, false);
+            }
+        }
+
+    });
+
+    // helper
+
+    function getHeight(ele) {
+
+        var $ele = UI.$(ele), height = "auto";
+
+        if ($ele.is(":visible")) {
+            height = $ele.outerHeight();
+        } else {
+
+            var tmp = {
+                position   : $ele.css('position'),
+                visibility : $ele.css('visibility'),
+                display    : $ele.css('display')
+            };
+
+            height = $ele.css({position: 'absolute', visibility: 'hidden', display: 'block'}).outerHeight();
+
+            $ele.css(tmp); // reset element
+        }
+
+        return height;
+    }
+
+    return UI.accordion;
+});
+
+/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
+(function(addon) {
+
+    var component;
+
+    if (window.UIkit2) {
+        component = addon(UIkit2);
+    }
+
+    if (typeof define == 'function' && define.amd) {
+        define('uikit-grid', ['uikit'], function(){
+            return component || addon(UIkit2);
+        });
+    }
+
+})(function(UI){
+
+    "use strict";
+
+    UI.component('grid', {
+
+        defaults: {
+            colwidth  : 'auto',
+            animation : true,
+            duration  : 300,
+            gutter    : 0,
+            controls  : false,
+            filter    : false,
+            origin    : UI.langdirection
+        },
+
+        boot:  function() {
+
+            // init code
+            UI.ready(function(context) {
+
+                UI.$('[data-uk-grid]', context).each(function(){
+
+                    var ele = UI.$(this);
+
+                    if(!ele.data('grid')) {
+                        UI.grid(ele, UI.Utils.options(ele.attr('data-uk-grid')));
+                    }
+                });
+            });
+        },
+
+        init: function() {
+
+            var $this = this, gutter = String(this.options.gutter).trim().split(' ');
+
+            this.gutterv  = parseInt(gutter[0], 10);
+            this.gutterh  = parseInt((gutter[1] || gutter[0]), 10);
+
+            // make sure parent element has the right position property
+            this.element.css({'position': 'relative'});
+
+            this.controls = null;
+            this.origin   = this.options.origin;
+
+            if (this.options.controls) {
+
+                this.controls = UI.$(this.options.controls);
+
+                // filter
+                this.controls.on('click', '[data-uk-filter]', function(e){
+                    e.preventDefault();
+                    $this.filter(UI.$(this).attr('data-uk-filter'));
+                });
+
+                // sort
+                this.controls.on('click', '[data-uk-sort]', function(e){
+                    e.preventDefault();
+                    var cmd = UI.$(this).attr('data-uk-sort').split(':');
+                    $this.sort(cmd[0], cmd[1]);
+                });
+            }
+
+            UI.$win.on('load resize orientationchange', UI.Utils.debounce(function(){
+
+                if ($this.currentfilter) {
+                    $this.filter($this.currentfilter);
+                } else {
+                    this.update();
+                }
+
+            }.bind(this), 100));
+
+            this.on('display.uk.check', function(){
+                if ($this.element.is(':visible'))  $this.update();
+            });
+
+            UI.domObserve(this.element, function(e) {
+                $this.update();
+            });
+
+            if (this.options.filter !== false) {
+                this.filter(this.options.filter);
+            } else {
+                this.update();
+            }
+        },
+
+        _prepareElements: function() {
+
+            var children = this.element.children().not('[data-grid-prepared]'), css;
+
+            // exit if no already prepared elements found
+            if (!children.length) {
+                return;
+            }
+
+            css = {
+                position  : 'absolute',
+                boxSizing : 'border-box',
+                width     : this.options.colwidth == 'auto' ? '' : this.options.colwidth
+            };
+
+            if (this.options.gutter) {
+
+                css['padding-'+this.origin] = this.gutterh;
+                css['padding-bottom'] = this.gutterv;
+
+                this.element.css('margin-'+this.origin, this.gutterh * -1);
+            }
+
+            children.attr('data-grid-prepared', 'true').css(css);
+        },
+
+        update: function(elements) {
+
+            var $this = this;
+
+            this._prepareElements();
+
+            elements = elements || this.element.children(':visible');
+
+            var children  = elements,
+                maxwidth  = this.element.width() + (2*this.gutterh) + 2,
+                left      = 0,
+                top       = 0,
+                positions = [],
+
+                item, width, height, pos, posi, i, z, max, size;
+
+            this.trigger('beforeupdate.uk.grid', [children]);
+
+            children.each(function(index){
+
+                item   = UI.$(this);
+                size   = this.getBoundingClientRect();
+                width  = size.width;
+                height = size.height;
+                left   = 0;
+                top    = 0;
+
+                for (i=0,max=positions.length;i<max;i++) {
+
+                    pos = positions[i];
+
+                    if (left <= pos.aX) { left = pos.aX; }
+                    if (maxwidth < (left + width)) { left = 0; }
+                    if (top <= pos.aY) { top = pos.aY; }
+                }
+
+                posi = {
+                    ele    : item,
+                    top    : top,
+                    width  : width,
+                    height : height,
+                    aY     : (top  + height),
+                    aX     : (left + width)
+                };
+
+                posi[$this.origin] = left;
+
+                positions.push(posi);
+            });
+
+            var posPrev, maxHeight = 0, positionto;
+
+            // fix top
+            for (i=0,max=positions.length;i<max;i++) {
+
+                pos = positions[i];
+                top = 0;
+
+                for (z=0;z<i;z++) {
+
+                    posPrev = positions[z];
+
+                    // (posPrev.left + 1) fixex 1px bug when using % based widths
+                    if (pos[this.origin] < posPrev.aX && (posPrev[this.origin] +1) < pos.aX) {
+                        top = posPrev.aY;
+                    }
+                }
+
+                pos.top = top;
+                pos.aY  = top + pos.height;
+
+                maxHeight = Math.max(maxHeight, pos.aY);
+            }
+
+            maxHeight = maxHeight - this.gutterv;
+
+            if (this.options.animation) {
+
+                this.element.stop().animate({'height': maxHeight}, 100);
+
+                positions.forEach(function(pos){
+
+                    positionto = {"top": pos.top, opacity: 1};
+                    positionto[$this.origin] = pos[$this.origin];
+
+                    pos.ele.stop().animate(positionto, this.options.duration);
+                }.bind(this));
+
+            } else {
+
+                this.element.css('height', maxHeight);
+
+                positions.forEach(function(pos){
+                    positionto = {"top": pos.top, opacity: 1};
+                    positionto[$this.origin] = pos[$this.origin];
+                    pos.ele.css(positionto);
+                }.bind(this));
+            }
+
+            // make sure to trigger possible scrollpies etc.
+            setTimeout(function() {
+                UI.$doc.trigger('scrolling.uk.document');
+            }, 2 * this.options.duration * (this.options.animation ? 1:0));
+
+            this.trigger('afterupdate.uk.grid', [children]);
+        },
+
+        filter: function(filter) {
+
+            this.currentfilter = filter;
+
+            filter = filter || [];
+
+            if (typeof(filter) === 'number') {
+                filter = filter.toString();
+            }
+
+            if (typeof(filter) === 'string') {
+                filter = filter.split(/,/).map(function(item){ return item.trim(); });
+            }
+
+            var $this = this, children = this.element.children(), elements = {"visible": [], "hidden": []}, visible, hidden;
+
+            children.each(function(index){
+
+                var ele = UI.$(this), f = ele.attr('data-uk-filter'), infilter = filter.length ? false : true;
+
+                if (f) {
+
+                    f = f.split(/,/).map(function(item){ return item.trim(); });
+
+                    filter.forEach(function(item){
+                        if (f.indexOf(item) > -1) infilter = true;
+                    });
+                }
+
+                elements[infilter ? "visible":"hidden"].push(ele);
+            });
+
+            // convert to jQuery collections
+            elements.hidden  = UI.$(elements.hidden).map(function () {return this[0];});
+            elements.visible = UI.$(elements.visible).map(function () {return this[0];});
+
+            elements.hidden.attr('aria-hidden', 'true').filter(':visible').fadeOut(this.options.duration);
+            elements.visible.attr('aria-hidden', 'false').filter(':hidden').css('opacity', 0).show();
+
+            $this.update(elements.visible);
+
+            if (this.controls && this.controls.length) {
+                this.controls.find('[data-uk-filter]').removeClass('uk-active').filter('[data-uk-filter="'+filter+'"]').addClass('uk-active');
+            }
+        },
+
+        sort: function(by, order){
+
+            order = order || 1;
+
+            // covert from string (asc|desc) to number
+            if (typeof(order) === 'string') {
+                order = order.toLowerCase() == 'desc' ? -1 : 1;
+            }
+
+            var elements = this.element.children();
+
+            elements.sort(function(a, b){
+
+                a = UI.$(a);
+                b = UI.$(b);
+
+                return (b.data(by) || '') < (a.data(by) || '') ? order : (order*-1);
+
+            }).appendTo(this.element);
+
+            this.update(elements.filter(':visible'));
+
+            if (this.controls && this.controls.length) {
+                this.controls.find('[data-uk-sort]').removeClass('uk-active').filter('[data-uk-sort="'+by+':'+(order == -1 ? 'desc':'asc')+'"]').addClass('uk-active');
+            }
+        }
+    });
+
+});
+
+/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
+(function(addon) {
+
+    var component;
+
+    if (window.UIkit2) {
+        component = addon(UIkit2);
+    }
+
+    if (typeof define == 'function' && define.amd) { // AMD
+        define('uikit-lightbox', ['uikit'], function(){
+            return component || addon(UIkit2);
+        });
+    }
+
+})(function(UI){
+
+    "use strict";
+
+    var modal, cache = {};
+
+    UI.component('lightbox', {
+
+        defaults: {
+            allowfullscreen : true,
+            duration        : 400,
+            group           : false,
+            keyboard        : true
+        },
+
+        index : 0,
+        items : false,
+
+        boot: function() {
+
+            UI.$html.on('click', '[data-uk-lightbox]', function(e){
+
+                e.preventDefault();
+
+                var link = UI.$(this);
+
+                if (!link.data('lightbox')) {
+
+                    UI.lightbox(link, UI.Utils.options(link.attr('data-uk-lightbox')));
+                }
+
+                link.data('lightbox').show(link);
+            });
+
+            // keyboard navigation
+            UI.$doc.on('keyup', function(e) {
+
+                if (modal && modal.is(':visible') && modal.lightbox.options.keyboard) {
+
+                    e.preventDefault();
+
+                    switch(e.keyCode) {
+                        case 37:
+                            modal.lightbox.previous();
+                            break;
+                        case 39:
+                            modal.lightbox.next();
+                            break;
+                    }
+                }
+            });
+        },
+
+        init: function() {
+
+            var siblings = [];
+
+            this.index    = 0;
+            this.siblings = [];
+
+            if (this.element && this.element.length) {
+
+                var domSiblings  = this.options.group ? UI.$('[data-uk-lightbox*="'+this.options.group+'"]') : this.element;
+
+                domSiblings.each(function() {
+
+                    var ele = UI.$(this);
+
+                    siblings.push({
+                        source : ele.attr('href'),
+                        title  : ele.attr('data-title') || ele.attr('title'),
+                        type   : ele.attr("data-lightbox-type") || 'auto',
+                        link   : ele
+                    });
+                });
+
+                this.index    = domSiblings.index(this.element);
+                this.siblings = siblings;
+
+            } else if (this.options.group && this.options.group.length) {
+                this.siblings = this.options.group;
+            }
+
+            this.trigger('lightbox-init', [this]);
+        },
+
+        show: function(index) {
+
+            this.modal = getModal(this);
+
+            // stop previous animation
+            this.modal.dialog.stop();
+            this.modal.content.stop();
+
+            var $this = this, promise = UI.$.Deferred(), data, item;
+
+            index = index || 0;
+
+            // index is a jQuery object or DOM element
+            if (typeof(index) == 'object') {
+
+                this.siblings.forEach(function(s, idx){
+
+                    if (index[0] === s.link[0]) {
+                        index = idx;
+                    }
+                });
+            }
+
+            // fix index if needed
+            if ( index < 0 ) {
+                index = this.siblings.length - index;
+            } else if (!this.siblings[index]) {
+                index = 0;
+            }
+
+            item   = this.siblings[index];
+
+            data = {
+                lightbox : $this,
+                source   : item.source,
+                type     : item.type,
+                index    : index,
+                promise  : promise,
+                title    : item.title,
+                item     : item,
+                meta     : {
+                    content : '',
+                    width   : null,
+                    height  : null
+                }
+            };
+
+            this.index = index;
+
+            this.modal.content.empty();
+
+            if (!this.modal.is(':visible')) {
+                this.modal.content.css({width:'', height:''}).empty();
+                this.modal.modal.show();
+            }
+
+            this.modal.loader.removeClass('uk-hidden');
+
+            promise.promise().done(function() {
+
+                $this.data = data;
+                $this.fitSize(data);
+
+            }).fail(function(){
+
+                data.meta.content = '<div class="uk-position-cover uk-flex uk-flex-middle uk-flex-center"><strong>Loading resource failed!</strong></div>';
+                data.meta.width   = 400;
+                data.meta.height  = 300;
+
+                $this.data = data;
+                $this.fitSize(data);
+            });
+
+            $this.trigger('showitem.uk.lightbox', [data]);
+        },
+
+        fitSize: function() {
+
+            var $this    = this,
+                data     = this.data,
+                pad      = this.modal.dialog.outerWidth() - this.modal.dialog.width(),
+                dpadTop  = parseInt(this.modal.dialog.css('margin-top'), 10),
+                dpadBot  = parseInt(this.modal.dialog.css('margin-bottom'), 10),
+                dpad     = dpadTop + dpadBot,
+                content  = data.meta.content,
+                duration = $this.options.duration;
+
+            if (this.siblings.length > 1) {
+
+                content = [
+                    content,
+                    '<a href="#" class="uk-slidenav uk-slidenav-contrast uk-slidenav-previous uk-hidden-touch" data-lightbox-previous></a>',
+                    '<a href="#" class="uk-slidenav uk-slidenav-contrast uk-slidenav-next uk-hidden-touch" data-lightbox-next></a>'
+                ].join('');
+            }
+
+            // calculate width
+            var tmp = UI.$('<div>&nbsp;</div>').css({
+                opacity   : 0,
+                position  : 'absolute',
+                top       : 0,
+                left      : 0,
+                width     : '100%',
+                maxWidth  : $this.modal.dialog.css('max-width'),
+                padding   : $this.modal.dialog.css('padding'),
+                margin    : $this.modal.dialog.css('margin')
+            }), maxwidth, maxheight, w = data.meta.width, h = data.meta.height;
+
+            tmp.appendTo('body').width();
+
+            maxwidth  = tmp.width();
+            maxheight = window.innerHeight - dpad;
+
+            tmp.remove();
+
+            this.modal.dialog.find('.uk-modal-caption').remove();
+
+            if (data.title) {
+                this.modal.dialog.append('<div class="uk-modal-caption">'+data.title+'</div>');
+                maxheight -= this.modal.dialog.find('.uk-modal-caption').outerHeight();
+            }
+
+            if (maxwidth < data.meta.width) {
+
+                h = Math.floor( h * (maxwidth / w) );
+                w = maxwidth;
+            }
+
+            if (maxheight < h) {
+
+                h = Math.floor(maxheight);
+                w = Math.ceil(data.meta.width * (maxheight/data.meta.height));
+            }
+
+            this.modal.content.css('opacity', 0).width(w).html(content);
+
+            if (data.type == 'iframe') {
+                this.modal.content.find('iframe:first').height(h);
+            }
+
+            var dh   = h + pad,
+                t    = Math.floor(window.innerHeight/2 - dh/2) - dpad;
+
+            if (t < 0) { t = 0; }
+
+            this.modal.closer.addClass('uk-hidden');
+
+            if ($this.modal.data('mwidth') == w &&  $this.modal.data('mheight') == h) {
+                duration = 0;
+            }
+
+            this.modal.dialog.animate({width: w + pad, height: h + pad, top: t }, duration, 'swing', function() {
+                $this.modal.loader.addClass('uk-hidden');
+                $this.modal.content.css({width:''}).animate({opacity: 1}, function() {
+                    $this.modal.closer.removeClass('uk-hidden');
+                });
+
+                $this.modal.data({mwidth: w, mheight: h});
+            });
+        },
+
+        next: function() {
+            this.show(this.siblings[(this.index+1)] ? (this.index+1) : 0);
+        },
+
+        previous: function() {
+            this.show(this.siblings[(this.index-1)] ? (this.index-1) : this.siblings.length-1);
+        }
+    });
+
+
+    // Plugins
+
+    UI.plugin('lightbox', 'image', {
+
+        init: function(lightbox) {
+
+            lightbox.on('showitem.uk.lightbox', function(e, data){
+
+                if (data.type == 'image' || data.source && data.source.match(/\.(jpg|jpeg|png|gif|svg)$/i)) {
+
+                    var resolve = function(source, width, height) {
+
+                        data.meta = {
+                            content : '<img class="uk-responsive-width" width="'+width+'" height="'+height+'" src ="'+source+'">',
+                            width   : width,
+                            height  : height
+                        };
+
+                        data.type = 'image';
+
+                        data.promise.resolve();
+                    };
+
+                    if (!cache[data.source]) {
+
+                        var img = new Image();
+
+                        img.onerror = function(){
+                            data.promise.reject('Loading image failed');
+                        };
+
+                        img.onload = function(){
+                            cache[data.source] = {width: img.width, height: img.height};
+                            resolve(data.source, cache[data.source].width, cache[data.source].height);
+                        };
+
+                        img.src = data.source;
+
+                    } else {
+                        resolve(data.source, cache[data.source].width, cache[data.source].height);
+                    }
+                }
+            });
+        }
+    });
+
+    UI.plugin('lightbox', 'youtube', {
+
+        init: function(lightbox) {
+
+            var youtubeRegExp = /(\/\/.*?youtube\.[a-z]+)\/watch\?v=([^&]+)&?(.*)/,
+                youtubeRegExpShort = /youtu\.be\/(.*)/;
+
+
+            lightbox.on('showitem.uk.lightbox', function(e, data){
+
+                var id, matches, resolve = function(id, width, height) {
+
+                    data.meta = {
+                        content: '<iframe src="//www.youtube.com/embed/'+id+'" width="'+width+'" height="'+height+'" style="max-width:100%;"'+(modal.lightbox.options.allowfullscreen?' allowfullscreen':'')+'></iframe>',
+                        width: width,
+                        height: height
+                    };
+
+                    data.type = 'iframe';
+
+                    data.promise.resolve();
+                };
+
+                if (matches = data.source.match(youtubeRegExp)) {
+                    id = matches[2];
+                }
+
+                if (matches = data.source.match(youtubeRegExpShort)) {
+                    id = matches[1];
+                }
+
+                if (id) {
+
+                    if(!cache[id]) {
+
+                        var img = new Image(), lowres = false;
+
+                        img.onerror = function(){
+                            cache[id] = {width:640, height:320};
+                            resolve(id, cache[id].width, cache[id].height);
+                        };
+
+                        img.onload = function(){
+                            //youtube default 404 thumb, fall back to lowres
+                            if (img.width == 120 && img.height == 90) {
+                                if (!lowres) {
+                                    lowres = true;
+                                    img.src = '//img.youtube.com/vi/' + id + '/0.jpg';
+                                } else {
+                                    cache[id] = {width: 640, height: 320};
+                                    resolve(id, cache[id].width, cache[id].height);
+                                }
+                            } else {
+                                cache[id] = {width: img.width, height: img.height};
+                                resolve(id, img.width, img.height);
+                            }
+                        };
+
+                        img.src = '//img.youtube.com/vi/'+id+'/maxresdefault.jpg';
+
+                    } else {
+                        resolve(id, cache[id].width, cache[id].height);
+                    }
+
+                    e.stopImmediatePropagation();
+                }
+            });
+        }
+    });
+
+
+    UI.plugin('lightbox', 'vimeo', {
+
+        init: function(lightbox) {
+
+            var regex = /(\/\/.*?)vimeo\.[a-z]+\/([0-9]+).*?/, matches;
+
+
+            lightbox.on('showitem.uk.lightbox', function(e, data){
+
+                var id, resolve = function(id, width, height) {
+
+                    data.meta = {
+                        content: '<iframe src="//player.vimeo.com/video/'+id+'" width="'+width+'" height="'+height+'" style="width:100%;box-sizing:border-box;"'+(modal.lightbox.options.allowfullscreen?' allowfullscreen':'')+'></iframe>',
+                        width: width,
+                        height: height
+                    };
+
+                    data.type = 'iframe';
+
+                    data.promise.resolve();
+                };
+
+                if (matches = data.source.match(regex)) {
+
+                    id = matches[2];
+
+                    if(!cache[id]) {
+
+                        UI.$.ajax({
+                            type     : 'GET',
+                            url      : '//vimeo.com/api/oembed.json?url=' + encodeURI(data.source),
+                            jsonp    : 'callback',
+                            dataType : 'jsonp',
+                            success  : function(data) {
+                                cache[id] = {width:data.width, height:data.height};
+                                resolve(id, cache[id].width, cache[id].height);
+                            }
+                        });
+
+                    } else {
+                        resolve(id, cache[id].width, cache[id].height);
+                    }
+
+                    e.stopImmediatePropagation();
+                }
+            });
+        }
+    });
+
+    UI.plugin('lightbox', 'video', {
+
+        init: function(lightbox) {
+
+            lightbox.on('showitem.uk.lightbox', function(e, data){
+
+
+                var resolve = function(source, width, height) {
+
+                    data.meta = {
+                        content: '<video class="uk-responsive-width" src="'+source+'" width="'+width+'" height="'+height+'" controls></video>',
+                        width: width,
+                        height: height
+                    };
+
+                    data.type = 'video';
+
+                    data.promise.resolve();
+                };
+
+                if (data.type == 'video' || data.source.match(/\.(mp4|webm|ogv)$/i)) {
+
+                    if (!cache[data.source]) {
+
+                        var vid = UI.$('<video style="position:fixed;visibility:hidden;top:-10000px;"></video>').attr('src', data.source).appendTo('body');
+
+                        var idle = setInterval(function() {
+
+                            if (vid[0].videoWidth) {
+                                clearInterval(idle);
+                                cache[data.source] = {width: vid[0].videoWidth, height: vid[0].videoHeight};
+                                resolve(data.source, cache[data.source].width, cache[data.source].height);
+                                vid.remove();
+                            }
+
+                        }, 20);
+
+                    } else {
+                        resolve(data.source, cache[data.source].width, cache[data.source].height);
+                    }
+                }
+            });
+        }
+    });
+
+
+    UI.plugin('lightbox', 'iframe', {
+
+        init: function (lightbox) {
+
+            lightbox.on('showitem.uk.lightbox', function (e, data) {
+
+                var resolve = function (source, width, height) {
+
+                    data.meta = {
+                        content: '<iframe class="uk-responsive-width" src="' + source + '" width="' + width + '" height="' + height + '"'+(modal.lightbox.options.allowfullscreen?' allowfullscreen':'')+'></iframe>',
+                        width: width,
+                        height: height
+                    };
+
+                    data.type = 'iframe';
+
+                    data.promise.resolve();
+                };
+
+                if (data.type === 'iframe' || data.source.match(/\.(html|php)$/)) {
+                    resolve(data.source, (lightbox.options.width || 800), (lightbox.options.height || 600));
+                }
+            });
+
+        }
+    });
+
+    function getModal(lightbox) {
+
+        if (modal) {
+            modal.lightbox = lightbox;
+            return modal;
+        }
+
+        // init lightbox container
+        modal = UI.$([
+            '<div class="uk-modal">',
+                '<div class="uk-modal-dialog uk-modal-dialog-lightbox uk-slidenav-position" style="margin-left:auto;margin-right:auto;width:200px;height:200px;top:'+Math.abs(window.innerHeight/2 - 200)+'px;">',
+                    '<a href="#" class="uk-modal-close uk-close uk-close-alt"></a>',
+                    '<div class="uk-lightbox-content"></div>',
+                    '<div class="uk-modal-spinner uk-hidden"></div>',
+                '</div>',
+            '</div>'
+        ].join('')).appendTo('body');
+
+        modal.dialog  = modal.find('.uk-modal-dialog:first');
+        modal.content = modal.find('.uk-lightbox-content:first');
+        modal.loader  = modal.find('.uk-modal-spinner:first');
+        modal.closer  = modal.find('.uk-close.uk-close-alt');
+        modal.modal   = UI.modal(modal, {modal:false});
+
+        // next / previous
+        modal.on('swipeRight swipeLeft', function(e) {
+            modal.lightbox[e.type=='swipeLeft' ? 'next':'previous']();
+        }).on('click', '[data-lightbox-previous], [data-lightbox-next]', function(e){
+            e.preventDefault();
+            modal.lightbox[UI.$(this).is('[data-lightbox-next]') ? 'next':'previous']();
+        });
+
+        // destroy content on modal hide
+        modal.on('hide.uk.modal', function(e) {
+            modal.content.html('');
+        });
+
+        var resizeCache = {w: window.innerWidth, h:window.innerHeight};
+
+        UI.$win.on('load resize orientationchange', UI.Utils.debounce(function(e){
+
+            if (resizeCache.w !== window.innerWidth && modal.is(':visible') && !UI.Utils.isFullscreen()) {
+                modal.lightbox.fitSize();
+            }
+
+            resizeCache = {w: window.innerWidth, h:window.innerHeight};
+
+        }, 100));
+
+        modal.lightbox = lightbox;
+
+        return modal;
+    }
+
+    UI.lightbox.create = function(items, options) {
+
+        if (!items) return;
+
+        var group = [], o;
+
+        items.forEach(function(item) {
+
+            group.push(UI.$.extend({
+                source : '',
+                title  : '',
+                type   : 'auto',
+                link   : false
+            }, (typeof(item) == 'string' ? {'source': item} : item)));
+        });
+
+        o = UI.lightbox(UI.$.extend({}, options, {'group':group}));
+
+        return o;
+    };
+
+    return UI.lightbox;
+});
+
+/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
+(function(addon) {
+
+    var component;
+
+    if (window.UIkit2) {
+        component = addon(UIkit2);
+    }
+
+    if (typeof define == 'function' && define.amd) {
+        define('uikit-parallax', ['uikit'], function(){
+            return component || addon(UIkit2);
+        });
+    }
+
+})(function(UI){
+
+    "use strict";
+
+    var parallaxes      = [],
+        supports3d      = false,
+        scrolltop       = 0,
+        wh              = window.innerHeight,
+        checkParallaxes = function() {
+
+            scrolltop = UI.$win.scrollTop();
+
+            window.requestAnimationFrame(function(){
+                for (var i=0; i < parallaxes.length; i++) {
+                    parallaxes[i].process();
+                }
+            });
+        };
+
+
+    UI.component('parallax', {
+
+        defaults: {
+            velocity : 0.5,
+            target   : false,
+            viewport : false,
+            media    : false
+        },
+
+        boot: function() {
+
+            supports3d = (function(){
+
+                var el = document.createElement('div'),
+                    has3d,
+                    transforms = {
+                        'WebkitTransform':'-webkit-transform',
+                        'MSTransform':'-ms-transform',
+                        'MozTransform':'-moz-transform',
+                        'Transform':'transform'
+                    };
+
+                // Add it to the body to get the computed style.
+                document.body.insertBefore(el, null);
+
+                for (var t in transforms) {
+                    if (el.style[t] !== undefined) {
+                        el.style[t] = 'translate3d(1px,1px,1px)';
+                        has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);
+                    }
+                }
+
+                document.body.removeChild(el);
+
+                return (has3d !== undefined && has3d.length > 0 && has3d !== "none");
+            })();
+
+            // listen to scroll and resize
+            UI.$doc.on('scrolling.uk.document', checkParallaxes);
+            UI.$win.on('load resize orientationchange', UI.Utils.debounce(function(){
+                wh = window.innerHeight;
+                checkParallaxes();
+            }, 50));
+
+            // init code
+            UI.ready(function(context) {
+
+                UI.$('[data-uk-parallax]', context).each(function() {
+
+                    var parallax = UI.$(this);
+
+                    if (!parallax.data('parallax')) {
+                        UI.parallax(parallax, UI.Utils.options(parallax.attr('data-uk-parallax')));
+                    }
+                });
+            });
+        },
+
+        init: function() {
+
+            this.base     = this.options.target ? UI.$(this.options.target) : this.element;
+            this.props    = {};
+            this.velocity = (this.options.velocity || 1);
+
+            var reserved  = ['target','velocity','viewport','plugins','media'];
+
+            Object.keys(this.options).forEach(function(prop){
+
+                if (reserved.indexOf(prop) !== -1) {
+                    return;
+                }
+
+                var start, end, dir, diff, startend = String(this.options[prop]).split(',');
+
+                if (prop.match(/color/i)) {
+                    start = startend[1] ? startend[0] : this._getStartValue(prop),
+                    end   = startend[1] ? startend[1] : startend[0];
+
+                    if (!start) {
+                        start = 'rgba(255,255,255,0)';
+                    }
+
+                } else {
+                    start = parseFloat(startend[1] ? startend[0] : this._getStartValue(prop)),
+                    end   = parseFloat(startend[1] ? startend[1] : startend[0]);
+                    diff  = (start < end ? (end-start):(start-end));
+                    dir   = (start < end ? 1:-1);
+                }
+
+                this.props[prop] = { start: start, end: end, dir: dir, diff: diff };
+
+            }.bind(this));
+
+            parallaxes.push(this);
+        },
+
+        process: function() {
+
+            if (this.options.media) {
+
+                switch(typeof(this.options.media)) {
+                    case 'number':
+                        if (window.innerWidth < this.options.media) {
+                            return false;
+                        }
+                        break;
+                    case 'string':
+                        if (window.matchMedia && !window.matchMedia(this.options.media).matches) {
+                            return false;
+                        }
+                        break;
+                }
+            }
+
+            var percent = this.percentageInViewport();
+
+            if (this.options.viewport !== false) {
+                percent = (this.options.viewport === 0) ? 1 : percent / this.options.viewport;
+            }
+
+            this.update(percent);
+        },
+
+        percentageInViewport: function() {
+
+            var top     = this.base.offset().top,
+                height  = this.base.outerHeight(),
+                distance, percentage, percent;
+
+            if (top > (scrolltop + wh)) {
+                percent = 0;
+            } else if ((top + height) < scrolltop) {
+                percent = 1;
+            } else {
+
+                if ((top + height) < wh) {
+
+                    percent = (scrolltop < wh ? scrolltop : scrolltop - wh) / (top+height);
+
+                } else {
+
+                    distance   = (scrolltop + wh) - top;
+                    percentage = Math.round(distance / ((wh + height) / 100));
+                    percent    = percentage/100;
+                }
+            }
+
+            return percent;
+        },
+
+        update: function(percent) {
+
+            var $this      = this,
+                css        = {transform:'', filter:''},
+                compercent = percent * (1 - (this.velocity - (this.velocity * percent))),
+                opts, val;
+
+            if (compercent < 0) compercent = 0;
+            if (compercent > 1) compercent = 1;
+
+            if (this._percent !== undefined && this._percent == compercent) {
+                return;
+            }
+
+            Object.keys(this.props).forEach(function(prop) {
+
+                opts = this.props[prop];
+
+                if (percent === 0) {
+                    val = opts.start;
+                } else if(percent === 1) {
+                    val = opts.end;
+                } else if(opts.diff !== undefined) {
+                    val = opts.start + (opts.diff * compercent * opts.dir);
+                }
+
+                if ((prop == 'bg' || prop == 'bgp') && !this._bgcover) {
+                    this._bgcover = initBgImageParallax(this, prop, opts);
+                }
+
+                switch(prop) {
+
+                    // transforms
+                    case 'x':
+                        css.transform += supports3d ? ' translate3d('+val+'px, 0, 0)':' translateX('+val+'px)';
+                        break;
+                    case 'xp':
+                        css.transform += supports3d ? ' translate3d('+val+'%, 0, 0)':' translateX('+val+'%)';
+                        break;
+                    case 'y':
+                        css.transform += supports3d ? ' translate3d(0, '+val+'px, 0)':' translateY('+val+'px)';
+                        break;
+                    case 'yp':
+                        css.transform += supports3d ? ' translate3d(0, '+val+'%, 0)':' translateY('+val+'%)';
+                        break;
+                    case 'rotate':
+                        css.transform += ' rotate('+val+'deg)';
+                        break;
+                    case 'scale':
+                        css.transform += ' scale('+val+')';
+                        break;
+
+                    // bg image
+                    case 'bg':
+
+                        // don't move if image height is too small
+                        // if ($this.element.data('bgsize') && ($this.element.data('bgsize').h + val - window.innerHeight) < 0) {
+                        //     break;
+                        // }
+
+                        css['background-position'] = '50% '+val+'px';
+                        break;
+                    case 'bgp':
+                        css['background-position'] = '50% '+val+'%';
+                        break;
+
+                    // color
+                    case 'color':
+                    case 'background-color':
+                    case 'border-color':
+                        css[prop] = calcColor(opts.start, opts.end, compercent);
+                        break;
+
+                    // CSS Filter
+                    case 'blur':
+                        css.filter += ' blur('+val+'px)';
+                        break;
+                    case 'hue':
+                        css.filter += ' hue-rotate('+val+'deg)';
+                        break;
+                    case 'grayscale':
+                        css.filter += ' grayscale('+val+'%)';
+                        break;
+                    case 'invert':
+                        css.filter += ' invert('+val+'%)';
+                        break;
+                    case 'fopacity':
+                        css.filter += ' opacity('+val+'%)';
+                        break;
+                    case 'saturate':
+                        css.filter += ' saturate('+val+'%)';
+                        break;
+                    case 'sepia':
+                        css.filter += ' sepia('+val+'%)';
+                        break;
+
+                    default:
+                        css[prop] = val;
+                        break;
+                }
+
+            }.bind(this));
+
+            if (css.filter) {
+                css['-webkit-filter'] = css.filter;
+            }
+
+            this.element.css(css);
+
+            this._percent = compercent;
+        },
+
+        _getStartValue: function(prop) {
+
+            var value = 0;
+
+            switch(prop) {
+                case 'scale':
+                    value = 1;
+                    break;
+                default:
+                    value = this.element.css(prop);
+            }
+
+            return (value || 0);
+        }
+
+    });
+
+
+    // helper
+
+    function initBgImageParallax(obj, prop, opts) {
+
+        var img = new Image(), url, element, size, check, ratio, width, height;
+
+        element = obj.element.css({backgroundSize: 'cover',  backgroundRepeat: 'no-repeat'});
+        url     = element.css('background-image').replace(/^url\(/g, '').replace(/\)$/g, '').replace(/("|')/g, '');
+        check   = function() {
+
+            var w = element.innerWidth(), h = element.innerHeight(), extra = (prop=='bg') ? opts.diff : (opts.diff/100) * h;
+
+            h += extra;
+            w += Math.ceil(extra * ratio);
+
+            if (w-extra < size.w && h < size.h) {
+                return obj.element.css({backgroundSize: 'auto'});
+            }
+
+            // if element height < parent height (gap underneath)
+            if ((w / ratio) < h) {
+
+                width  = Math.ceil(h * ratio);
+                height = h;
+
+                if (h > window.innerHeight) {
+                    width  = width * 1.2;
+                    height = height * 1.2;
+                }
+
+            // element width < parent width (gap to right)
+            } else {
+
+                width  = w;
+                height = Math.ceil(w / ratio);
+            }
+
+            element.css({backgroundSize: (width+'px '+height+'px')}).data('bgsize', {w:width,h:height});
+        };
+
+        img.onerror = function(){
+            // image url doesn't exist
+        };
+
+        img.onload = function(){
+            size  = {w:img.width, h:img.height};
+            ratio = img.width / img.height;
+
+            UI.$win.on('load resize orientationchange', UI.Utils.debounce(function(){
+                check();
+            }, 50));
+
+            check();
+        };
+
+        img.src = url;
+
+        return true;
+    }
+
+
+    // Some named colors to work with, added by Bradley Ayers
+    // From Interface by Stefan Petre
+    // http://interface.eyecon.ro/
+    var colors = {
+        'black': [0,0,0,1],
+        'blue': [0,0,255,1],
+        'brown': [165,42,42,1],
+        'cyan': [0,255,255,1],
+        'fuchsia': [255,0,255,1],
+        'gold': [255,215,0,1],
+        'green': [0,128,0,1],
+        'indigo': [75,0,130,1],
+        'khaki': [240,230,140,1],
+        'lime': [0,255,0,1],
+        'magenta': [255,0,255,1],
+        'maroon': [128,0,0,1],
+        'navy': [0,0,128,1],
+        'olive': [128,128,0,1],
+        'orange': [255,165,0,1],
+        'pink': [255,192,203,1],
+        'purple': [128,0,128,1],
+        'violet': [128,0,128,1],
+        'red': [255,0,0,1],
+        'silver': [192,192,192,1],
+        'white': [255,255,255,1],
+        'yellow': [255,255,0,1],
+        'transparent': [255,255,255,0]
+    };
+
+    function calcColor(start, end, pos) {
+
+        start = parseColor(start);
+        end   = parseColor(end);
+        pos   = pos || 0;
+
+        return calculateColor(start, end, pos);
+    }
+
+    /**!
+     * @preserve Color animation 1.6.0
+     * http://www.bitstorm.org/jquery/color-animation/
+     * Copyright 2011, 2013 Edwin Martin <edwin@bitstorm.org>
+     * Released under the MIT and GPL licenses.
+     */
+
+    // Calculate an in-between color. Returns "#aabbcc"-like string.
+    function calculateColor(begin, end, pos) {
+        var color = 'rgba('
+                + parseInt((begin[0] + pos * (end[0] - begin[0])), 10) + ','
+                + parseInt((begin[1] + pos * (end[1] - begin[1])), 10) + ','
+                + parseInt((begin[2] + pos * (end[2] - begin[2])), 10) + ','
+                + (begin && end ? parseFloat(begin[3] + pos * (end[3] - begin[3])) : 1);
+
+        color += ')';
+        return color;
+    }
+
+    // Parse an CSS-syntax color. Outputs an array [r, g, b]
+    function parseColor(color) {
+
+        var match, quadruplet;
+
+        // Match #aabbcc
+        if (match = /#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(color)) {
+            quadruplet = [parseInt(match[1], 16), parseInt(match[2], 16), parseInt(match[3], 16), 1];
+
+            // Match #abc
+        } else if (match = /#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(color)) {
+            quadruplet = [parseInt(match[1], 16) * 17, parseInt(match[2], 16) * 17, parseInt(match[3], 16) * 17, 1];
+
+            // Match rgb(n, n, n)
+        } else if (match = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) {
+            quadruplet = [parseInt(match[1]), parseInt(match[2]), parseInt(match[3]), 1];
+
+        } else if (match = /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9\.]*)\s*\)/.exec(color)) {
+            quadruplet = [parseInt(match[1], 10), parseInt(match[2], 10), parseInt(match[3], 10),parseFloat(match[4])];
+
+            // No browser returns rgb(n%, n%, n%), so little reason to support this format.
+        } else {
+            quadruplet = colors[color] || [255,255,255,0];
+        }
+        return quadruplet;
+    }
+
+    return UI.parallax;
+});
+
+/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
+(function(addon) {
+
+    var component;
+
+    if (window.UIkit2) {
+        component = addon(UIkit2);
+    }
+
+    if (typeof define == 'function' && define.amd) {
+        define('uikit-slider', ['uikit'], function(){
+            return component || addon(UIkit2);
+        });
+    }
+
+})(function(UI){
+
+    "use strict";
+
+    var dragging, delayIdle, anchor, dragged, store = {};
+
+    UI.component('slider', {
+
+        defaults: {
+            center           : false,
+            threshold        : 10,
+            infinite         : true,
+            autoplay         : false,
+            autoplayInterval : 7000,
+            pauseOnHover     : true,
+            activecls        : 'uk-active'
+        },
+
+        boot:  function() {
+
+            // init code
+            UI.ready(function(context) {
+
+                setTimeout(function(){
+
+                    UI.$('[data-uk-slider]', context).each(function(){
+
+                        var ele = UI.$(this);
+
+                        if (!ele.data('slider')) {
+                            UI.slider(ele, UI.Utils.options(ele.attr('data-uk-slider')));
+                        }
+                    });
+
+                }, 0);
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            this.container = this.element.find('.uk-slider');
+            this.focus     = 0;
+
+            UI.$win.on('resize load', UI.Utils.debounce(function() {
+                $this.update(true);
+            }, 100));
+
+            this.on('click.uk.slider', '[data-uk-slider-item]', function(e) {
+
+                e.preventDefault();
+
+                var item = UI.$(this).attr('data-uk-slider-item');
+
+                if ($this.focus == item) return;
+
+                // stop autoplay
+                $this.stop();
+
+                switch(item) {
+                    case 'next':
+                    case 'previous':
+                        $this[item=='next' ? 'next':'previous']();
+                        break;
+                    default:
+                        $this.updateFocus(parseInt(item, 10));
+                }
+            });
+
+            this.container.on({
+
+                'touchstart mousedown': function(evt) {
+
+                    if (evt.originalEvent && evt.originalEvent.touches) {
+                        evt = evt.originalEvent.touches[0];
+                    }
+
+                    // ignore right click button
+                    if (evt.button && evt.button==2 || !$this.active) {
+                        return;
+                    }
+
+                    // stop autoplay
+                    $this.stop();
+
+                    anchor  = UI.$(evt.target).is('a') ? UI.$(evt.target) : UI.$(evt.target).parents('a:first');
+                    dragged = false;
+
+                    if (anchor.length) {
+
+                        anchor.one('click', function(e){
+                            if (dragged) e.preventDefault();
+                        });
+                    }
+
+                    delayIdle = function(e) {
+
+                        dragged  = true;
+                        dragging = $this;
+                        store    = {
+                            touchx : parseInt(e.pageX, 10),
+                            dir    : 1,
+                            focus  : $this.focus,
+                            base   : $this.options.center ? 'center':'area'
+                        };
+
+                        if (e.originalEvent && e.originalEvent.touches) {
+                            e = e.originalEvent.touches[0];
+                        }
+
+                        dragging.element.data({
+                            'pointer-start': {x: parseInt(e.pageX, 10), y: parseInt(e.pageY, 10)},
+                            'pointer-pos-start': $this.pos
+                        });
+
+                        $this.container.addClass('uk-drag');
+
+                        delayIdle = false;
+                    };
+
+                    delayIdle.x         = parseInt(evt.pageX, 10);
+                    delayIdle.threshold = $this.options.threshold;
+
+                },
+
+                mouseenter: function() { if ($this.options.pauseOnHover) $this.hovering = true;  },
+                mouseleave: function() { $this.hovering = false; }
+            });
+
+            this.update(true);
+
+            this.on('display.uk.check', function(){
+                if ($this.element.is(":visible")) {
+                    $this.update(true);
+                }
+            });
+
+            // prevent dragging links + images
+            this.element.find('a,img').attr('draggable', 'false');
+
+            // Set autoplay
+            if (this.options.autoplay) {
+                this.start();
+            }
+
+            UI.domObserve(this.element, function(e) {
+                if ($this.element.children(':not([data-slider-slide])').length) {
+                    $this.update(true);
+                }
+            });
+
+        },
+
+        update: function(focus) {
+
+            var $this = this, pos = 0, maxheight = 0, item, width, cwidth, size;
+
+            this.items = this.container.children().filter(':visible');
+            this.vp    = this.element[0].getBoundingClientRect().width;
+
+            this.container.css({'min-width': '', 'min-height': ''});
+
+            this.items.each(function(idx){
+
+                item      = UI.$(this).attr('data-slider-slide', idx);
+                size      = item.css({'left': '', 'width':''})[0].getBoundingClientRect();
+                width     = size.width;
+                cwidth    = item.width();
+                maxheight = Math.max(maxheight, size.height);
+
+                item.css({'left': pos, 'width':width}).data({'idx':idx, 'left': pos, 'width': width, 'cwidth':cwidth, 'area': (pos+width), 'center':(pos - ($this.vp/2 - cwidth/2))});
+
+                pos += width;
+            });
+
+            this.container.css({'min-width': pos, 'min-height': maxheight});
+
+            if (this.options.infinite && (pos <= (2*this.vp) || this.items.length < 5) && !this.itemsResized) {
+
+                // fill with cloned items
+                this.container.children().each(function(idx){
+                   $this.container.append($this.items.eq(idx).clone(true).attr('id', ''));
+                }).each(function(idx){
+                   $this.container.append($this.items.eq(idx).clone(true).attr('id', ''));
+                });
+
+                this.itemsResized = true;
+
+                return this.update();
+            }
+
+            this.cw     = pos;
+            this.pos    = 0;
+            this.active = pos >= this.vp;
+
+            this.container.css({
+                '-ms-transform': '',
+                '-webkit-transform': '',
+                'transform': ''
+            });
+
+            if (focus) this.updateFocus(this.focus);
+        },
+
+        updatePos: function(pos) {
+            this.pos = pos;
+            this.container.css({
+                '-ms-transform': 'translateX('+pos+'px)',
+                '-webkit-transform': 'translateX('+pos+'px)',
+                'transform': 'translateX('+pos+'px)'
+            });
+        },
+
+        updateFocus: function(idx, dir) {
+
+            if (!this.active) {
+                return;
+            }
+
+            dir = dir || (idx > this.focus ? 1:-1);
+
+            var item = this.items.eq(idx), area, i;
+
+            if (this.options.infinite) {
+                this.infinite(idx, dir);
+            }
+
+            if (this.options.center) {
+
+                this.updatePos(item.data('center')*-1);
+
+                this.items.filter('.'+this.options.activecls).removeClass(this.options.activecls);
+                item.addClass(this.options.activecls);
+
+            } else {
+
+                if (this.options.infinite) {
+
+                    this.updatePos(item.data('left')*-1);
+
+                } else {
+
+                    area = 0;
+
+                    for (i=idx;i<this.items.length;i++) {
+                        area += this.items.eq(i).data('width');
+                    }
+
+
+                    if (area > this.vp) {
+
+                        this.updatePos(item.data('left')*-1);
+
+                    } else {
+
+                        if (dir == 1) {
+
+                            area = 0;
+
+                            for (i=this.items.length-1;i>=0;i--) {
+
+                                area += this.items.eq(i).data('width');
+
+                                if (area == this.vp) {
+                                    idx = i;
+                                    break;
+                                }
+
+                                if (area > this.vp) {
+                                    idx = (i < this.items.length-1) ? i+1 : i;
+                                    break;
+                                }
+                            }
+
+                            if (area > this.vp) {
+                                this.updatePos((this.container.width() - this.vp) * -1);
+                            } else {
+                                this.updatePos(this.items.eq(idx).data('left')*-1);
+                            }
+                        }
+                    }
+                }
+            }
+
+            // mark elements
+            var left = this.items.eq(idx).data('left');
+
+            this.items.removeClass('uk-slide-before uk-slide-after').each(function(i){
+                if (i!==idx) {
+                    UI.$(this).addClass(UI.$(this).data('left') < left ? 'uk-slide-before':'uk-slide-after');
+                }
+            });
+
+            this.focus = idx;
+
+            this.trigger('focusitem.uk.slider', [idx,this.items.eq(idx),this]);
+        },
+
+        next: function() {
+
+            var focus = this.items[this.focus + 1] ? (this.focus + 1) : (this.options.infinite ? 0:this.focus);
+
+            this.updateFocus(focus, 1);
+        },
+
+        previous: function() {
+
+            var focus = this.items[this.focus - 1] ? (this.focus - 1) : (this.options.infinite ? (this.items[this.focus - 1] ? this.items-1:this.items.length-1):this.focus);
+
+            this.updateFocus(focus, -1);
+        },
+
+        start: function() {
+
+            this.stop();
+
+            var $this = this;
+
+            this.interval = setInterval(function() {
+                if (!$this.hovering) $this.next();
+            }, this.options.autoplayInterval);
+
+        },
+
+        stop: function() {
+            if (this.interval) clearInterval(this.interval);
+        },
+
+        infinite: function(baseidx, direction) {
+
+            var $this = this, item = this.items.eq(baseidx), i, z = baseidx, move = [], area = 0;
+
+            if (direction == 1) {
+
+
+                for (i=0;i<this.items.length;i++) {
+
+                    if (z != baseidx) {
+                        area += this.items.eq(z).data('width');
+                        move.push(this.items.eq(z));
+                    }
+
+                    if (area > this.vp) {
+                        break;
+                    }
+
+                    z = z+1 == this.items.length ? 0:z+1;
+                }
+
+                if (move.length) {
+
+                    move.forEach(function(itm){
+
+                        var left = item.data('area');
+
+                        itm.css({'left': left}).data({
+                            left  : left,
+                            area  : (left+itm.data('width')),
+                            center: (left - ($this.vp/2 - itm.data('cwidth')/2))
+                        });
+
+                        item = itm;
+                    });
+                }
+
+
+            } else {
+
+                for (i=this.items.length-1;i >-1 ;i--) {
+
+                    area += this.items.eq(z).data('width');
+
+                    if (z != baseidx) {
+                        move.push(this.items.eq(z));
+                    }
+
+                    if (area > this.vp) {
+                        break;
+                    }
+
+                    z = z-1 == -1 ? this.items.length-1:z-1;
+                }
+
+                if (move.length) {
+
+                    move.forEach(function(itm){
+
+                        var left = item.data('left') - itm.data('width');
+
+                        itm.css({'left': left}).data({
+                            left  : left,
+                            area  : (left+itm.data('width')),
+                            center: (left - ($this.vp/2 - itm.data('cwidth')/2))
+                        });
+
+                        item = itm;
+                    });
+                }
+            }
+        }
+    });
+
+    // handle dragging
+    UI.$doc.on('mousemove.uk.slider touchmove.uk.slider', function(e) {
+
+        if (e.originalEvent && e.originalEvent.touches) {
+            e = e.originalEvent.touches[0];
+        }
+
+        if (delayIdle && Math.abs(e.pageX - delayIdle.x) > delayIdle.threshold) {
+
+            if (!window.getSelection().toString()) {
+                delayIdle(e);
+            } else {
+                dragging = delayIdle = false;
+            }
+        }
+
+        if (!dragging) {
+            return;
+        }
+
+        var x, xDiff, pos, dir, focus, item, next, diff, i, z, itm;
+
+        if (e.clientX || e.clientY) {
+            x = e.clientX;
+        } else if (e.pageX || e.pageY) {
+            x = e.pageX - document.body.scrollLeft - document.documentElement.scrollLeft;
+        }
+
+        focus = store.focus;
+        xDiff = x - dragging.element.data('pointer-start').x;
+        pos   = dragging.element.data('pointer-pos-start') + xDiff;
+        dir   = x > dragging.element.data('pointer-start').x ? -1:1;
+        item  = dragging.items.eq(store.focus);
+
+        if (dir == 1) {
+
+            diff = item.data('left') + Math.abs(xDiff);
+
+            for (i=0,z=store.focus;i<dragging.items.length;i++) {
+
+                itm = dragging.items.eq(z);
+
+                if (z != store.focus && itm.data('left') < diff && itm.data('area') > diff) {
+                    focus = z;
+                    break;
+                }
+
+                z = z+1 == dragging.items.length ? 0:z+1;
+            }
+
+        } else {
+
+            diff = item.data('left') - Math.abs(xDiff);
+
+            for (i=0,z=store.focus;i<dragging.items.length;i++) {
+
+                itm = dragging.items.eq(z);
+
+                if (z != store.focus && itm.data('area') <= item.data('left') && itm.data('center') < diff) {
+                    focus = z;
+                    break;
+                }
+
+                z = z-1 == -1 ? dragging.items.length-1:z-1;
+            }
+        }
+
+        if (dragging.options.infinite && focus!=store._focus) {
+            dragging.infinite(focus, dir);
+        }
+
+        dragging.updatePos(pos);
+
+        store.dir     = dir;
+        store._focus  = focus;
+        store.touchx  = parseInt(e.pageX, 10);
+        store.diff    = diff;
+    });
+
+    UI.$doc.on('mouseup.uk.slider touchend.uk.slider', function(e) {
+
+        if (dragging) {
+
+            dragging.container.removeClass('uk-drag');
+
+            // TODO is this needed?
+            dragging.items.eq(store.focus);
+
+            var itm, focus = false, i, z;
+
+            if (store.dir == 1) {
+
+                for (i=0,z=store.focus;i<dragging.items.length;i++) {
+
+                    itm = dragging.items.eq(z);
+
+                    if (z != store.focus && itm.data('left') > store.diff) {
+                        focus = z;
+                        break;
+                    }
+
+                    z = z+1 == dragging.items.length ? 0:z+1;
+                }
+                if (!dragging.options.infinite && !focus) {
+                    focus = dragging.items.length;
+                }
+
+            } else {
+
+                for (i=0,z=store.focus;i<dragging.items.length;i++) {
+
+                    itm = dragging.items.eq(z);
+
+                    if (z != store.focus && itm.data('left') < store.diff) {
+                        focus = z;
+                        break;
+                    }
+
+                    z = z-1 == -1 ? dragging.items.length-1:z-1;
+                }
+                if (!dragging.options.infinite && !focus) {
+                    focus = 0
+                }
+            }
+
+            dragging.updateFocus(focus!==false ? focus:store._focus);
+
+        }
+
+        dragging = delayIdle = false;
+    });
+
+    return UI.slider;
+});
+
+/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
+(function(addon) {
+
+    var component;
+
+    if (window.UIkit2) {
+        component = addon(UIkit2);
+    }
+
+    if (typeof define == 'function' && define.amd) {
+        define('uikit-slideshow', ['uikit'], function() {
+            return component || addon(UIkit2);
+        });
+    }
+
+})(function(UI) {
+
+    "use strict";
+
+    var Animations, playerId = 0;
+
+    UI.component('slideshow', {
+
+        defaults: {
+            animation          : 'fade',
+            duration           : 500,
+            height             : 'auto',
+            start              : 0,
+            autoplay           : false,
+            autoplayInterval   : 7000,
+            videoautoplay      : true,
+            videomute          : true,
+            slices             : 15,
+            pauseOnHover       : true,
+            kenburns           : false,
+            kenburnsanimations : [
+                'uk-animation-middle-left',
+                'uk-animation-top-right',
+                'uk-animation-bottom-left',
+                'uk-animation-top-center',
+                '', // middle-center
+                'uk-animation-bottom-right'
+            ]
+        },
+
+        current  : false,
+        interval : null,
+        hovering : false,
+
+        boot: function() {
+
+            // init code
+            UI.ready(function(context) {
+
+                UI.$('[data-uk-slideshow]', context).each(function() {
+
+                    var slideshow = UI.$(this);
+
+                    if (!slideshow.data('slideshow')) {
+                        UI.slideshow(slideshow, UI.Utils.options(slideshow.attr('data-uk-slideshow')));
+                    }
+                });
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            this.container     = this.element.hasClass('uk-slideshow') ? this.element : UI.$(this.find('.uk-slideshow:first'));
+            this.current       = this.options.start;
+            this.animating     = false;
+
+            this.fixFullscreen = navigator.userAgent.match(/(iPad|iPhone|iPod)/g) && this.container.hasClass('uk-slideshow-fullscreen'); // viewport unit fix for height:100vh - should be fixed in iOS 8
+
+            if (this.options.kenburns) {
+
+                this.kbanimduration = this.options.kenburns === true ? '15s': this.options.kenburns;
+
+                if (!String(this.kbanimduration).match(/(ms|s)$/)) {
+                    this.kbanimduration += 'ms';
+                }
+
+                if (typeof(this.options.kenburnsanimations) == 'string') {
+                    this.options.kenburnsanimations = this.options.kenburnsanimations.split(',');
+                }
+            }
+
+            this.update();
+
+            this.on('click.uk.slideshow', '[data-uk-slideshow-item]', function(e) {
+
+                e.preventDefault();
+
+                var slide = UI.$(this).attr('data-uk-slideshow-item');
+
+                if ($this.current == slide) return;
+
+                switch(slide) {
+                    case 'next':
+                    case 'previous':
+                        $this[slide=='next' ? 'next':'previous']();
+                        break;
+                    default:
+                        $this.show(parseInt(slide, 10));
+                }
+
+                $this.stop();
+            });
+
+            UI.$win.on("resize load", UI.Utils.debounce(function() {
+                $this.resize();
+
+                if ($this.fixFullscreen) {
+                    $this.container.css('height', window.innerHeight);
+                    $this.slides.css('height', window.innerHeight);
+                }
+            }, 100));
+
+            // chrome image load fix
+            setTimeout(function(){
+                $this.resize();
+            }, 80);
+
+            // Set autoplay
+            if (this.options.autoplay) {
+                this.start();
+            }
+
+            if (this.options.videoautoplay && this.slides.eq(this.current).data('media')) {
+                this.playmedia(this.slides.eq(this.current).data('media'));
+            }
+
+            if (this.options.kenburns) {
+                this.applyKenBurns(this.slides.eq(this.current));
+            }
+
+            this.container.on({
+                mouseenter: function() { if ($this.options.pauseOnHover) $this.hovering = true;  },
+                mouseleave: function() { $this.hovering = false; }
+            });
+
+            this.on('swipeRight swipeLeft', function(e) {
+                $this[e.type=='swipeLeft' ? 'next' : 'previous']();
+            });
+
+            this.on('display.uk.check', function(){
+                if ($this.element.is(':visible')) {
+
+                    $this.resize();
+
+                    if ($this.fixFullscreen) {
+                        $this.container.css('height', window.innerHeight);
+                        $this.slides.css('height', window.innerHeight);
+                    }
+                }
+            });
+
+            UI.domObserve(this.element, function(e) {
+                if ($this.container.children(':not([data-slideshow-slide])').not('.uk-slideshow-ghost').length) {
+                    $this.update(true);
+                }
+            });
+        },
+
+        update: function(resize) {
+
+            var $this = this, canvas, processed = 0;
+
+            this.slides        = this.container.children();
+            this.slidesCount   = this.slides.length;
+
+            if (!this.slides.eq(this.current).length) {
+                this.current = 0;
+            }
+
+            this.slides.each(function(index) {
+
+                var slide = UI.$(this);
+
+                if (slide.data('processed')) {
+                    return;
+                }
+
+                var media = slide.children('img,video,iframe').eq(0), type = 'html';
+
+                slide.data('media', media);
+                slide.data('sizer', media);
+
+                if (media.length) {
+
+                    var placeholder;
+
+                    type = media[0].nodeName.toLowerCase();
+
+                    switch(media[0].nodeName) {
+                        case 'IMG':
+
+                            var cover = UI.$('<div class="uk-cover-background uk-position-cover"></div>').css({'background-image':'url('+ media.attr('src') + ')'});
+
+                            if (media.attr('width') && media.attr('height')) {
+                                placeholder = UI.$('<canvas></canvas>').attr({width:media.attr('width'), height:media.attr('height')});
+                                media.replaceWith(placeholder);
+                                media = placeholder;
+                                placeholder = undefined;
+                            }
+
+                            media.css({width: '100%',height: 'auto', opacity:0});
+                            slide.prepend(cover).data('cover', cover);
+                            break;
+
+                        case 'IFRAME':
+
+                            var src = media[0].src, iframeId = 'sw-'+(++playerId);
+
+                            media
+                                .attr('src', '').on('load', function(){
+
+                                    if (index !== $this.current || (index == $this.current && !$this.options.videoautoplay)) {
+                                        $this.pausemedia(media);
+                                    }
+
+                                    if ($this.options.videomute) {
+
+                                        $this.mutemedia(media);
+
+                                        var inv = setInterval((function(ic) {
+                                            return function() {
+                                                $this.mutemedia(media);
+                                                if (++ic >= 4) clearInterval(inv);
+                                            }
+                                        })(0), 250);
+                                    }
+
+                                })
+                                .data('slideshow', $this)  // add self-reference for the vimeo-ready listener
+                                .attr('data-player-id', iframeId)  // add frameId for the vimeo-ready listener
+                                .attr('src', [src, (src.indexOf('?') > -1 ? '&':'?'), 'enablejsapi=1&api=1&player_id='+iframeId].join(''))
+                                .addClass('uk-position-absolute');
+
+                            // disable pointer events
+                            if(!UI.support.touch) media.css('pointer-events', 'none');
+
+                            placeholder = true;
+
+                            if (UI.cover) {
+                                UI.cover(media);
+                                media.attr('data-uk-cover', '{}');
+                            }
+
+                            break;
+
+                        case 'VIDEO':
+                            media.addClass('uk-cover-object uk-position-absolute');
+                            placeholder = true;
+
+                            if ($this.options.videomute) $this.mutemedia(media);
+                    }
+
+                    if (placeholder) {
+
+                        canvas  = UI.$('<canvas></canvas>').attr({'width': media[0].width, 'height': media[0].height});
+                        var img = UI.$('<img style="width:100%;height:auto;">').attr('src', canvas[0].toDataURL());
+
+                        slide.prepend(img);
+                        slide.data('sizer', img);
+                    }
+
+                } else {
+                    slide.data('sizer', slide);
+                }
+
+                if ($this.hasKenBurns(slide)) {
+
+                    slide.data('cover').css({
+                        '-webkit-animation-duration': $this.kbanimduration,
+                        'animation-duration': $this.kbanimduration
+                    });
+                }
+
+                slide.data('processed', ++processed);
+                slide.attr('data-slideshow-slide', type);
+            });
+
+            if (processed) {
+
+                this.triggers = this.find('[data-uk-slideshow-item]');
+
+                // Set start slide
+                this.slides.attr('aria-hidden', 'true').removeClass('uk-active').eq(this.current).addClass('uk-active').attr('aria-hidden', 'false');
+                this.triggers.filter('[data-uk-slideshow-item="'+this.current+'"]').addClass('uk-active');
+            }
+
+            if (resize && processed) {
+                this.resize();
+            }
+        },
+
+        resize: function() {
+
+            if (this.container.hasClass('uk-slideshow-fullscreen')) return;
+
+            var height = this.options.height;
+
+            if (this.options.height === 'auto') {
+
+                height = 0;
+
+                this.slides.css('height', '').each(function() {
+                    height = Math.max(height, UI.$(this).height());
+                });
+            }
+
+            this.container.css('height', height);
+            this.slides.css('height', height);
+        },
+
+        show: function(index, direction) {
+
+            if (this.animating || this.current == index) return;
+
+            this.animating = true;
+
+            var $this        = this,
+                current      = this.slides.eq(this.current),
+                next         = this.slides.eq(index),
+                dir          = direction ? direction : this.current < index ? 1 : -1,
+                currentmedia = current.data('media'),
+                animation    = Animations[this.options.animation] ? this.options.animation : 'fade',
+                nextmedia    = next.data('media'),
+                finalize     = function() {
+
+                    if (!$this.animating) return;
+
+                    if (currentmedia && currentmedia.is('video,iframe')) {
+                        $this.pausemedia(currentmedia);
+                    }
+
+                    if (nextmedia && nextmedia.is('video,iframe')) {
+                        $this.playmedia(nextmedia);
+                    }
+
+                    next.addClass('uk-active').attr('aria-hidden', 'false');
+                    current.removeClass('uk-active').attr('aria-hidden', 'true');
+
+                    $this.animating = false;
+                    $this.current   = index;
+
+                    UI.Utils.checkDisplay(next, '[class*="uk-animation-"]:not(.uk-cover-background.uk-position-cover)');
+
+                    $this.trigger('show.uk.slideshow', [next, current, $this]);
+                };
+
+            $this.applyKenBurns(next);
+
+            // animation fallback
+            if (!UI.support.animation) {
+                animation = 'none';
+            }
+
+            current = UI.$(current);
+            next    = UI.$(next);
+
+            $this.trigger('beforeshow.uk.slideshow', [next, current, $this]);
+
+            Animations[animation].apply(this, [current, next, dir]).then(finalize);
+
+            $this.triggers.removeClass('uk-active');
+            $this.triggers.filter('[data-uk-slideshow-item="'+index+'"]').addClass('uk-active');
+        },
+
+        applyKenBurns: function(slide) {
+
+            if (!this.hasKenBurns(slide)) {
+                return;
+            }
+
+            var animations = this.options.kenburnsanimations,
+                index      = this.kbindex || 0;
+
+
+            slide.data('cover').attr('class', 'uk-cover-background uk-position-cover').width();
+            slide.data('cover').addClass(['uk-animation-scale', 'uk-animation-reverse', animations[index].trim()].join(' '));
+
+            this.kbindex = animations[index + 1] ? (index+1):0;
+        },
+
+        hasKenBurns: function(slide) {
+            return (this.options.kenburns && slide.data('cover'));
+        },
+
+        next: function() {
+            this.show(this.slides[this.current + 1] ? (this.current + 1) : 0, 1);
+        },
+
+        previous: function() {
+            this.show(this.slides[this.current - 1] ? (this.current - 1) : (this.slides.length - 1), -1);
+        },
+
+        start: function() {
+
+            this.stop();
+
+            var $this = this;
+
+            this.interval = setInterval(function() {
+                if (!$this.hovering) $this.next();
+            }, this.options.autoplayInterval);
+
+        },
+
+        stop: function() {
+            if (this.interval) clearInterval(this.interval);
+        },
+
+        playmedia: function(media) {
+
+            if (!(media && media[0])) return;
+
+            switch(media[0].nodeName) {
+                case 'VIDEO':
+
+                    if (!this.options.videomute) {
+                        media[0].muted = false;
+                    }
+
+                    media[0].play();
+                    break;
+                case 'IFRAME':
+
+                    if (!this.options.videomute) {
+                        media[0].contentWindow.postMessage('{ "event": "command", "func": "unmute", "method":"setVolume", "value":1}', '*');
+                    }
+
+                    media[0].contentWindow.postMessage('{ "event": "command", "func": "playVideo", "method":"play"}', '*');
+                    break;
+            }
+        },
+
+        pausemedia: function(media) {
+
+            switch(media[0].nodeName) {
+                case 'VIDEO':
+                    media[0].pause();
+                    break;
+                case 'IFRAME':
+                    media[0].contentWindow.postMessage('{ "event": "command", "func": "pauseVideo", "method":"pause"}', '*');
+                    break;
+            }
+        },
+
+        mutemedia: function(media) {
+
+            switch(media[0].nodeName) {
+                case 'VIDEO':
+                    media[0].muted = true;
+                    break;
+                case 'IFRAME':
+                    media[0].contentWindow.postMessage('{ "event": "command", "func": "mute", "method":"setVolume", "value":0}', '*');
+                    break;
+            }
+        }
+    });
+
+    Animations = {
+
+        'none': function() {
+
+            var d = UI.$.Deferred();
+            d.resolve();
+            return d.promise();
+        },
+
+        'scroll': function(current, next, dir) {
+
+            var d = UI.$.Deferred();
+
+            current.css('animation-duration', this.options.duration+'ms');
+            next.css('animation-duration', this.options.duration+'ms');
+
+            next.css('opacity', 1).one(UI.support.animation.end, function() {
+
+                current.css('opacity', 0).removeClass(dir == -1 ? 'uk-slideshow-scroll-backward-out' : 'uk-slideshow-scroll-forward-out');
+                next.removeClass(dir == -1 ? 'uk-slideshow-scroll-backward-in' : 'uk-slideshow-scroll-forward-in');
+                d.resolve();
+
+            }.bind(this));
+
+            current.addClass(dir == -1 ? 'uk-slideshow-scroll-backward-out' : 'uk-slideshow-scroll-forward-out');
+            next.addClass(dir == -1 ? 'uk-slideshow-scroll-backward-in' : 'uk-slideshow-scroll-forward-in');
+            next.width(); // force redraw
+
+            return d.promise();
+        },
+
+        'swipe': function(current, next, dir) {
+
+            var d = UI.$.Deferred();
+
+            current.css('animation-duration', this.options.duration+'ms');
+            next.css('animation-duration', this.options.duration+'ms');
+
+            next.css('opacity', 1).one(UI.support.animation.end, function() {
+
+                current.css('opacity', 0).removeClass(dir === -1 ? 'uk-slideshow-swipe-backward-out' : 'uk-slideshow-swipe-forward-out');
+                next.removeClass(dir === -1 ? 'uk-slideshow-swipe-backward-in' : 'uk-slideshow-swipe-forward-in');
+                d.resolve();
+
+            }.bind(this));
+
+            current.addClass(dir == -1 ? 'uk-slideshow-swipe-backward-out' : 'uk-slideshow-swipe-forward-out');
+            next.addClass(dir == -1 ? 'uk-slideshow-swipe-backward-in' : 'uk-slideshow-swipe-forward-in');
+            next.width(); // force redraw
+
+            return d.promise();
+        },
+
+        'scale': function(current, next, dir) {
+
+            var d = UI.$.Deferred();
+
+            current.css('animation-duration', this.options.duration+'ms');
+            next.css('animation-duration', this.options.duration+'ms');
+
+            next.css('opacity', 1);
+
+            current.one(UI.support.animation.end, function() {
+
+                current.css('opacity', 0).removeClass('uk-slideshow-scale-out');
+                d.resolve();
+
+            }.bind(this));
+
+            current.addClass('uk-slideshow-scale-out');
+            current.width(); // force redraw
+
+            return d.promise();
+        },
+
+        'fade': function(current, next, dir) {
+
+            var d = UI.$.Deferred();
+
+            current.css('animation-duration', this.options.duration+'ms');
+            next.css('animation-duration', this.options.duration+'ms');
+
+            next.css('opacity', 1);
+
+            // for plain text content slides - looks smoother
+            if (!(next.data('cover') || next.data('placeholder'))) {
+
+                next.css('opacity', 1).one(UI.support.animation.end, function() {
+                    next.removeClass('uk-slideshow-fade-in');
+                }).addClass('uk-slideshow-fade-in');
+            }
+
+            current.one(UI.support.animation.end, function() {
+
+                current.css('opacity', 0).removeClass('uk-slideshow-fade-out');
+                d.resolve();
+
+            }.bind(this));
+
+            current.addClass('uk-slideshow-fade-out');
+            current.width(); // force redraw
+
+            return d.promise();
+        }
+    };
+
+    UI.slideshow.animations = Animations;
+
+    // Listen for messages from the vimeo player
+    window.addEventListener('message', function onMessageReceived(e) {
+
+        var data = e.data, iframe;
+
+        if (typeof(data) == 'string') {
+
+            try {
+                data = JSON.parse(data);
+            } catch(err) {
+                data = {};
+            }
+        }
+
+        if (e.origin && e.origin.indexOf('vimeo') > -1 && data.event == 'ready' && data.player_id) {
+            iframe = UI.$('[data-player-id="'+ data.player_id+'"]');
+
+            if (iframe.length) {
+                iframe.data('slideshow').mutemedia(iframe);
+            }
+        }
+    }, false);
+
+});
+
+/*! UIkit 2.27.5 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
+(function(addon) {
+    var component;
+
+    if (window.UIkit2) {
+        component = addon(UIkit2);
+    }
+
+    if (typeof define == 'function' && define.amd) {
+        define('uikit-tooltip', ['uikit'], function(){
+            return component || addon(UIkit2);
+        });
+    }
+
+})(function(UI){
+
+    "use strict";
+
+    var $tooltip,   // tooltip container
+        tooltipdelay, checkIdle;
+
+    UI.component('tooltip', {
+
+        defaults: {
+            offset: 5,
+            pos: 'top',
+            animation: false,
+            delay: 0, // in miliseconds
+            cls: '',
+            activeClass: 'uk-active',
+            src: function(ele) {
+                var title = ele.attr('title');
+
+                if (title !== undefined) {
+                    ele.data('cached-title', title).removeAttr('title');
+                }
+
+                return ele.data("cached-title");
+            }
+        },
+
+        tip: '',
+
+        boot: function() {
+
+            // init code
+            UI.$html.on('mouseenter.tooltip.uikit focus.tooltip.uikit', '[data-uk-tooltip]', function(e) {
+                var ele = UI.$(this);
+
+                if (!ele.data('tooltip')) {
+                    UI.tooltip(ele, UI.Utils.options(ele.attr('data-uk-tooltip')));
+                    ele.trigger('mouseenter');
+                }
+            });
+        },
+
+        init: function() {
+
+            var $this = this;
+
+            if (!$tooltip) {
+                $tooltip = UI.$('<div class="uk-tooltip"></div>').appendTo("body");
+            }
+
+            this.on({
+                focus      : function(e) { $this.show(); },
+                blur       : function(e) { $this.hide(); },
+                mouseenter : function(e) { $this.show(); },
+                mouseleave : function(e) { $this.hide(); }
+            });
+        },
+
+        show: function() {
+
+            this.tip = typeof(this.options.src) === 'function' ? this.options.src(this.element) : this.options.src;
+
+            if (tooltipdelay) clearTimeout(tooltipdelay);
+            if (checkIdle)    clearInterval(checkIdle);
+
+            if (typeof(this.tip) === 'string' ? !this.tip.length:true) return;
+
+            $tooltip.stop().css({top: -2000, visibility: 'hidden'}).removeClass(this.options.activeClass).show();
+            $tooltip.html('<div class="uk-tooltip-inner">' + this.tip + '</div>');
+
+            var $this      = this,
+                pos        = UI.$.extend({}, this.element.offset(), {width: this.element[0].offsetWidth, height: this.element[0].offsetHeight}),
+                width      = $tooltip[0].offsetWidth,
+                height     = $tooltip[0].offsetHeight,
+                offset     = typeof(this.options.offset) === "function" ? this.options.offset.call(this.element) : this.options.offset,
+                position   = typeof(this.options.pos) === "function" ? this.options.pos.call(this.element) : this.options.pos,
+                tmppos     = position.split("-"),
+                tcss       = {
+                    display    : 'none',
+                    visibility : 'visible',
+                    top        : (pos.top + pos.height + height),
+                    left       : pos.left
+                };
+
+
+            // prevent strange position
+            // when tooltip is in offcanvas etc.
+            if (UI.$html.css('position')=='fixed' || UI.$body.css('position')=='fixed'){
+                var bodyoffset = UI.$('body').offset(),
+                    htmloffset = UI.$('html').offset(),
+                    docoffset  = {top: (htmloffset.top + bodyoffset.top), left: (htmloffset.left + bodyoffset.left)};
+
+                pos.left -= docoffset.left;
+                pos.top  -= docoffset.top;
+            }
+
+
+            if ((tmppos[0] == 'left' || tmppos[0] == 'right') && UI.langdirection == 'right') {
+                tmppos[0] = tmppos[0] == 'left' ? 'right' : 'left';
+            }
+
+            var variants =  {
+                bottom  : {top: pos.top + pos.height + offset, left: pos.left + pos.width / 2 - width / 2},
+                top     : {top: pos.top - height - offset, left: pos.left + pos.width / 2 - width / 2},
+                left    : {top: pos.top + pos.height / 2 - height / 2, left: pos.left - width - offset},
+                right   : {top: pos.top + pos.height / 2 - height / 2, left: pos.left + pos.width + offset}
+            };
+
+            UI.$.extend(tcss, variants[tmppos[0]]);
+
+            if (tmppos.length == 2) tcss.left = (tmppos[1] == 'left') ? (pos.left) : ((pos.left + pos.width) - width);
+
+            var boundary = this.checkBoundary(tcss.left, tcss.top, width, height);
+
+            if(boundary) {
+
+                switch(boundary) {
+                    case 'x':
+
+                        if (tmppos.length == 2) {
+                            position = tmppos[0]+"-"+(tcss.left < 0 ? 'left': 'right');
+                        } else {
+                            position = tcss.left < 0 ? 'right': 'left';
+                        }
+
+                        break;
+
+                    case 'y':
+                        if (tmppos.length == 2) {
+                            position = (tcss.top < 0 ? 'bottom': 'top')+'-'+tmppos[1];
+                        } else {
+                            position = (tcss.top < 0 ? 'bottom': 'top');
+                        }
+
+                        break;
+
+                    case 'xy':
+                        if (tmppos.length == 2) {
+                            position = (tcss.top < 0 ? 'bottom': 'top')+'-'+(tcss.left < 0 ? 'left': 'right');
+                        } else {
+                            position = tcss.left < 0 ? 'right': 'left';
+                        }
+
+                        break;
+
+                }
+
+                tmppos = position.split('-');
+
+                UI.$.extend(tcss, variants[tmppos[0]]);
+
+                if (tmppos.length == 2) tcss.left = (tmppos[1] == 'left') ? (pos.left) : ((pos.left + pos.width) - width);
+            }
+
+
+            tcss.left -= UI.$body.position().left;
+
+            tooltipdelay = setTimeout(function(){
+
+                $tooltip.css(tcss).attr('class', ['uk-tooltip', 'uk-tooltip-'+position, $this.options.cls].join(' '));
+
+                if ($this.options.animation) {
+                    $tooltip.css({opacity: 0, display: 'block'}).addClass($this.options.activeClass).animate({opacity: 1}, parseInt($this.options.animation, 10) || 400);
+                } else {
+                    $tooltip.show().addClass($this.options.activeClass);
+                }
+
+                tooltipdelay = false;
+
+                // close tooltip if element was removed or hidden
+                checkIdle = setInterval(function(){
+                    if(!$this.element.is(':visible')) $this.hide();
+                }, 150);
+
+            }, parseInt(this.options.delay, 10) || 0);
+        },
+
+        hide: function() {
+
+            if (this.element.is('input') && this.element[0]===document.activeElement) return;
+
+            if (tooltipdelay) clearTimeout(tooltipdelay);
+            if (checkIdle)  clearInterval(checkIdle);
+
+            $tooltip.stop();
+
+            if (this.options.animation) {
+
+                var $this = this;
+
+                $tooltip.fadeOut(parseInt(this.options.animation, 10) || 400, function(){
+                    $tooltip.removeClass($this.options.activeClass)
+                });
+
+            } else {
+                $tooltip.hide().removeClass(this.options.activeClass);
+            }
+        },
+
+        content: function() {
+            return this.tip;
+        },
+
+        checkBoundary: function(left, top, width, height) {
+
+            var axis = "";
+
+            if(left < 0 || ((left - UI.$win.scrollLeft())+width) > window.innerWidth) {
+               axis += "x";
+            }
+
+            if(top < 0 || ((top - UI.$win.scrollTop())+height) > window.innerHeight) {
+               axis += "y";
+            }
+
+            return axis;
+        }
+    });
+
+    return UI.tooltip;
+});
+
+// http://getuikit.com/docs/documentation_javascript.html#js-override
+
+if (typeof UIkit !== 'undefined') {
+    UIkit.on('beforeready.uk.dom', function () {
+
+        // accrodion
+        if (typeof UIkit.components.accordion !== "undefined") { // check if accordion component is defined
+            $.extend(UIkit.components.accordion.prototype.defaults, {
+                easing: $.bez(easing_swiftOut),
+                duration: 200
+            });
+        }
+
+        // dropdown
+        if (typeof UIkit.components.dropdown.prototype !== "undefined") { // check if dropdown component is defined
+
+            $.extend(UIkit.components.dropdown.prototype.defaults, {
+                remaintime: 150,
+                delay: 50
+            });
+
+            (function() {
+                var old_show_function = UIkit.components.dropdown.prototype.show;
+
+                UIkit.components.dropdown.prototype.show = function() {
+
+                    this.dropdown
+                        .css({
+                            'min-width': this.dropdown.outerWidth()
+                        })
+                        .addClass('uk-dropdown-active uk-dropdown-shown');
+
+                    return old_show_function.apply(this, arguments);
+                }
+            })();
+
+            (function() {
+                var old_hide_function = UIkit.components.dropdown.prototype.hide;
+
+                UIkit.components.dropdown.prototype.hide = function() {
+
+                    var this_dropdown = this.dropdown;
+
+                    this_dropdown.removeClass('uk-dropdown-shown');
+
+                    var dropdown_timeout = setTimeout(function() {
+                        this_dropdown.removeClass('uk-dropdown-active')
+                    },280);
+
+                    return old_hide_function.apply(this, arguments);
+                }
+            })();
+
+        }
+
+        // modal
+        if (typeof UIkit.components.modal !== "undefined") { // check if modal component is defined
+            $.extend(UIkit.components.modal.prototype.defaults, {
+                center: true
+            });
+
+            UIkit.modal.dialog.template = '<div class="uk-modal uk-modal-dialog-replace"><div class="uk-modal-dialog" style="min-height:0;"></div></div>';
+            $body
+                .on('show.uk.modal', '.uk-modal-dialog-replace', function () {
+                    // customize uikit dialog
+                    setTimeout(function () {
+                        var dialogReplace = $('.uk-modal-dialog-replace');
+                        if (dialogReplace.find('.uk-button-primary').length) {
+                            var actionBtn = dialogReplace.find('.uk-button-primary').toggleClass('uk-button-primary md-btn-flat-primary');
+                            if (actionBtn.next('button')) {
+                                actionBtn.next('button').after(actionBtn);
+                            }
+                        }
+                        if (dialogReplace.find('.uk-button').length) {
+                            dialogReplace.find('.uk-button').toggleClass('uk-button md-btn md-btn-flat');
+                        }
+                        if (dialogReplace.find('.uk-margin-small-top').length) {
+                            dialogReplace.find('.uk-margin-small-top').toggleClass('uk-margin-small-top uk-margin-top');
+                        }
+                        if (dialogReplace.find('input.uk-width-1-1').length) {
+                            dialogReplace.find('input.uk-width-1-1').toggleClass('uk-width-1-1 md-input');
+                            // reinitialize md inputs
+                            altair_md.inputs();
+                        }
+                        if (dialogReplace.find('.uk-form').length) {
+                            dialogReplace.find('.uk-form').removeClass('uk-form');
+                        }
+                    }, 50)
+                });
+        }
+
+        // tooltip
+        if (typeof UIkit.components.tooltip !== "undefined") { // check if tooltip component is defined
+            $.extend(UIkit.components.tooltip.prototype.defaults, {
+                animation: 280,
+                offset: 8
+            });
+        }
+
+    });
+}
\ No newline at end of file

Property changes on: modules/open-science-observatory-ui/branches/gradient/src/assets/js/uikit_custom.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: modules/open-science-observatory-ui/branches/gradient/src/index.html
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/index.html	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/index.html	(revision 60863)
@@ -0,0 +1,54 @@
+<!doctype html>
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+  <title>Open Science Observatory</title>
+  <base href="/">
+
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <link rel="icon" type="image/x-icon" href="assets/img/fav_oso.png">
+
+  <!--<script src="https://kit.fontawesome.com/dfd38f32b9.js" crossorigin="anonymous"></script>-->
+  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.11.2/css/all.css" integrity="sha384-KA6wR/X5RY4zFAHpv/CnoG2UW1uogYfdnP67Uv7eULvTveboZJg0qUpmJZb5VqzN" crossorigin="anonymous">
+
+
+
+  <!-- uikit -->
+  <!--<link rel="stylesheet" href="assets/css/uikit.almost-flat.min.css" media="all">-->
+  <!-- UIkit CSS -->
+  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/uikit@3.2.3/dist/css/uikit.min.css" />
+
+  <!-- altair landing page -->
+  <link rel="stylesheet" href="assets/css/main.css" media="all">
+  <link rel="stylesheet" href="assets/css/os-observatory-custom.css" media="all">
+
+  <script src="https://unpkg.com/smoothscroll-polyfill@0.4.3/dist/smoothscroll.min.js"></script>
+
+</head>
+<body class="">
+<!--<body class="header_sticky">-->
+<!--<body class="header_sticky header_shadow">-->
+
+  <!-- RECOMMENDED if your web app will not function without JavaScript enabled -->
+  <noscript>
+    <div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
+      Your web browser must have JavaScript enabled
+      in order for this application to display correctly.
+    </div>
+  </noscript>
+
+  <app-root>
+    <div uk-spinner="ratio: 2" class="uk-overlay uk-position-center uk-dark" style="margin: auto"></div>
+  </app-root>
+
+  <!-- uikit functions -->
+  <!--<script src="assets/js/uikit_custom.js"></script>-->
+
+  <!-- common functions -->
+  <!--<script src="assets/js/common.min.js"></script>-->
+
+  <!-- altair common functions/helpers -->
+  <!--<script src="assets/js/altair_lp_common.min.js"></script>-->
+
+</body>
+</html>
Index: modules/open-science-observatory-ui/branches/gradient/src/polyfills.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/polyfills.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/polyfills.ts	(revision 60863)
@@ -0,0 +1,80 @@
+/**
+ * This file includes polyfills needed by Angular and is loaded before the app.
+ * You can add your own extra polyfills to this file.
+ *
+ * This file is divided into 2 sections:
+ *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
+ *   2. Application imports. Files imported after ZoneJS that should be loaded before your main
+ *      file.
+ *
+ * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
+ * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
+ * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
+ *
+ * Learn more in https://angular.io/guide/browser-support
+ */
+
+/***************************************************************************************************
+ * BROWSER POLYFILLS
+ */
+
+/** IE9, IE10 and IE11 requires all of the following polyfills. **/
+// import 'core-js/es6/symbol';
+// import 'core-js/es6/object';
+// import 'core-js/es6/function';
+// import 'core-js/es6/parse-int';
+// import 'core-js/es6/parse-float';
+// import 'core-js/es6/number';
+// import 'core-js/es6/math';
+// import 'core-js/es6/string';
+// import 'core-js/es6/date';
+// import 'core-js/es6/array';
+// import 'core-js/es6/regexp';
+// import 'core-js/es6/map';
+// import 'core-js/es6/weak-map';
+// import 'core-js/es6/set';
+
+/**
+ * If the application will be indexed by Google Search, the following is required.
+ * Googlebot uses a renderer based on Chrome 41.
+ * https://developers.google.com/search/docs/guides/rendering
+ **/
+// import 'core-js/es6/array';
+
+/** IE10 and IE11 requires the following for NgClass support on SVG elements */
+// import 'classlist.js';  // Run `npm install --save classlist.js`.
+
+/** IE10 and IE11 requires the following for the Reflect API. */
+// import 'core-js/es6/reflect';
+
+/**
+ * Web Animations `@angular/platform-browser/animations`
+ * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
+ * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
+ **/
+// import 'web-animations-js';  // Run `npm install --save web-animations-js`.
+
+/**
+ * By default, zone.js will patch all possible macroTask and DomEvents
+ * user can disable parts of macroTask/DomEvents patch by setting following flags
+ */
+
+ // (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
+ // (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
+ // (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
+
+ /*
+ * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
+ * with the following flag, it will bypass `zone.js` patch for IE/Edge
+ */
+// (window as any).__Zone_enable_cross_context_check = true;
+
+/***************************************************************************************************
+ * Zone JS is required by default for Angular itself.
+ */
+import 'zone.js/dist/zone';  // Included with Angular CLI.
+
+
+/***************************************************************************************************
+ * APPLICATION IMPORTS
+ */
Index: modules/open-science-observatory-ui/branches/gradient/src/tslint.json
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/tslint.json	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/tslint.json	(revision 60863)
@@ -0,0 +1,17 @@
+{
+    "extends": "../tslint.json",
+    "rules": {
+        "directive-selector": [
+            true,
+            "attribute",
+            "app",
+            "camelCase"
+        ],
+        "component-selector": [
+            true,
+            "element",
+            "app",
+            "kebab-case"
+        ]
+    }
+}
Index: modules/open-science-observatory-ui/branches/gradient/src/tsconfig.spec.json
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/src/tsconfig.spec.json	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/src/tsconfig.spec.json	(revision 60863)
@@ -0,0 +1,18 @@
+{
+  "extends": "../tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../out-tsc/spec",
+    "types": [
+      "jasmine",
+      "node"
+    ]
+  },
+  "files": [
+    "test.ts",
+    "polyfills.ts"
+  ],
+  "include": [
+    "**/*.spec.ts",
+    "**/*.d.ts"
+  ]
+}
Index: modules/open-science-observatory-ui/branches/gradient/angular.json
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/angular.json	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/angular.json	(revision 60863)
@@ -0,0 +1,164 @@
+{
+  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
+  "version": 1,
+  "newProjectRoot": "projects",
+  "projects": {
+    "open-science-observatory-ui": {
+      "root": "",
+      "sourceRoot": "src",
+      "projectType": "application",
+      "prefix": "app",
+      "schematics": {},
+      "architect": {
+        "build": {
+          "builder": "@angular-devkit/build-angular:browser",
+          "options": {
+            "outputPath": "dist/open-science-observatory-ui",
+            "index": "src/index.html",
+            "main": "src/main.ts",
+            "polyfills": "src/polyfills.ts",
+            "tsConfig": "src/tsconfig.app.json",
+            "assets": [
+              "src/favicon.ico",
+              "src/assets"
+            ],
+            "styles": [
+              "src/styles.css",
+              "node_modules/font-awesome/css/font-awesome.css"
+            ],
+            "scripts": [
+              "node_modules/jquery/dist/jquery.min.js",
+              "node_modules/uikit/dist/js/uikit.min.js",
+              "node_modules/uikit/dist/js/uikit-icons.min.js"
+            ]
+          },
+          "configurations": {
+            "production": {
+              "fileReplacements": [
+                {
+                  "replace": "src/environments/environment.ts",
+                  "with": "src/environments/environment.prod.ts"
+                }
+              ],
+              "optimization": true,
+              "outputHashing": "all",
+              "sourceMap": false,
+              "extractCss": true,
+              "namedChunks": false,
+              "aot": true,
+              "extractLicenses": true,
+              "vendorChunk": false,
+              "buildOptimizer": true,
+              "budgets": [
+                {
+                  "type": "initial",
+                  "maximumWarning": "2mb",
+                  "maximumError": "5mb"
+                }
+              ]
+            },
+            "beta": {
+              "fileReplacements": [
+                {
+                  "replace": "src/environments/environment.ts",
+                  "with": "src/environments/environment.beta.ts"
+                }
+              ],
+              "optimization": true,
+              "outputHashing": "all",
+              "sourceMap": false,
+              "extractCss": true,
+              "namedChunks": false,
+              "aot": true,
+              "extractLicenses": true,
+              "vendorChunk": false,
+              "buildOptimizer": true,
+              "budgets": [
+                {
+                  "type": "initial",
+                  "maximumWarning": "2mb",
+                  "maximumError": "5mb"
+                }
+              ]
+            }
+          }
+        },
+        "serve": {
+          "builder": "@angular-devkit/build-angular:dev-server",
+          "options": {
+            "browserTarget": "open-science-observatory-ui:build"
+          },
+          "configurations": {
+            "production": {
+              "browserTarget": "open-science-observatory-ui:build:production"
+            }
+          }
+        },
+        "extract-i18n": {
+          "builder": "@angular-devkit/build-angular:extract-i18n",
+          "options": {
+            "browserTarget": "open-science-observatory-ui:build"
+          }
+        },
+        "test": {
+          "builder": "@angular-devkit/build-angular:karma",
+          "options": {
+            "main": "src/test.ts",
+            "polyfills": "src/polyfills.ts",
+            "tsConfig": "src/tsconfig.spec.json",
+            "karmaConfig": "src/karma.conf.js",
+            "styles": [
+              "src/styles.css"
+            ],
+            "scripts": [],
+            "assets": [
+              "src/favicon.ico",
+              "src/assets"
+            ]
+          }
+        },
+        "lint": {
+          "builder": "@angular-devkit/build-angular:tslint",
+          "options": {
+            "tsConfig": [
+              "src/tsconfig.app.json",
+              "src/tsconfig.spec.json"
+            ],
+            "exclude": [
+              "**/node_modules/**"
+            ]
+          }
+        }
+      }
+    },
+    "open-science-observatory-ui-e2e": {
+      "root": "e2e/",
+      "projectType": "application",
+      "prefix": "",
+      "architect": {
+        "e2e": {
+          "builder": "@angular-devkit/build-angular:protractor",
+          "options": {
+            "protractorConfig": "e2e/protractor.conf.js",
+            "devServerTarget": "open-science-observatory-ui:serve"
+          },
+          "configurations": {
+            "production": {
+              "devServerTarget": "open-science-observatory-ui:serve:production"
+            }
+          }
+        },
+        "lint": {
+          "builder": "@angular-devkit/build-angular:tslint",
+          "options": {
+            "tsConfig": "e2e/tsconfig.e2e.json",
+            "exclude": [
+              "**/node_modules/**"
+            ]
+          }
+        }
+      }
+    }
+  },
+  "defaultProject": "open-science-observatory-ui"
+}
Index: modules/open-science-observatory-ui/branches/gradient/e2e/src/app.po.ts
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/e2e/src/app.po.ts	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/e2e/src/app.po.ts	(revision 60863)
@@ -0,0 +1,11 @@
+import { browser, by, element } from 'protractor';
+
+export class AppPage {
+  navigateTo() {
+    return browser.get('/');
+  }
+
+  getParagraphText() {
+    return element(by.css('app-root h1')).getText();
+  }
+}
Index: modules/open-science-observatory-ui/branches/gradient/README.md
===================================================================
--- modules/open-science-observatory-ui/branches/gradient/README.md	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient/README.md	(revision 60863)
@@ -0,0 +1,27 @@
+# OpenScienceObservatoryUi
+
+This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.0.4.
+
+## Development server
+
+Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
+
+## Code scaffolding
+
+Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
+
+## Build
+
+Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.
+
+## Running unit tests
+
+Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
+
+## Running end-to-end tests
+
+Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
+
+## Further help
+
+To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
Index: modules/open-science-observatory-ui/branches/gradient
===================================================================
--- modules/open-science-observatory-ui/branches/gradient	(nonexistent)
+++ modules/open-science-observatory-ui/branches/gradient	(revision 60863)

Property changes on: modules/open-science-observatory-ui/branches/gradient
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,3 ##
+dist
+.idea
+node_modules
