root 6 年之前
當前提交
a6e06ff5bf
共有 100 個文件被更改,包括 33916 次插入0 次删除
  1. 二進制
      .DS_Store
  2. 4 0
      .bash_history
  3. 76 0
      MN.sql
  4. 2 0
      README.md
  5. 二進制
      ajax/.DS_Store
  6. 68 0
      ajax/datastores.php
  7. 103 0
      ajax/oracle.php
  8. 1 0
      ajax/postForm.php
  9. 7741 0
      css/angular-material.css
  10. 17 0
      css/angular.typeahead.css
  11. 3 0
      css/font-awesome.min.css
  12. 0 0
      css/main.css
  13. 579 0
      css/main.less
  14. 4 0
      css/material-design-iconic-font.min.css
  15. 163 0
      css/theme.css
  16. 2 0
      data/Contour_Manche.json
  17. 24 0
      data/dictionary.json
  18. 50 0
      datastores.php
  19. 二進制
      fonts/FontAwesome.otf
  20. 二進制
      fonts/Material-Design-Iconic-Font.eot
  21. 28 0
      fonts/Material-Design-Iconic-Font.svg
  22. 二進制
      fonts/Material-Design-Iconic-Font.ttf
  23. 二進制
      fonts/Material-Design-Iconic-Font.woff
  24. 二進制
      fonts/fontawesome-webfont.eot
  25. 196 0
      fonts/fontawesome-webfont.svg
  26. 二進制
      fonts/fontawesome-webfont.ttf
  27. 二進制
      fonts/fontawesome-webfont.woff
  28. 145 0
      html/form.html
  29. 1 0
      html/typeahead-match.html
  30. 5 0
      html/typeahead-popup.html
  31. 二進制
      img/.DS_Store
  32. 二進制
      img/adsl.png
  33. 二進制
      img/background.png
  34. 二進制
      img/comcable.png
  35. 二進制
      img/coriolis.png
  36. 二進制
      img/favicon.ico
  37. 二進制
      img/fibre.png
  38. 二進制
      img/filter.png
  39. 二進制
      img/knet.png
  40. 二進制
      img/logo.png
  41. 二進制
      img/mimo.png
  42. 二進制
      img/nordnet.png
  43. 二進制
      img/orange.jpg
  44. 二進制
      img/ozone.png
  45. 二進制
      img/sfr.jpg
  46. 二進制
      img/videofutur.png
  47. 二進制
      img/wibox.png
  48. 786 0
      index.html
  49. 二進制
      js/.DS_Store
  50. 139 0
      js/angular-adaptive-detection.js
  51. 21316 0
      js/angular-material.js
  52. 1505 0
      js/app.js
  53. 7 0
      js/proj4js/.gitignore
  54. 11 0
      js/proj4js/.jshintrc
  55. 4 0
      js/proj4js/.npmignore
  56. 4 0
      js/proj4js/.travis.yml
  57. 25 0
      js/proj4js/AUTHORS
  58. 110 0
      js/proj4js/Gruntfile.js
  59. 29 0
      js/proj4js/LICENSE.md
  60. 17 0
      js/proj4js/PUBLISHING.md
  61. 153 0
      js/proj4js/README.md
  62. 29 0
      js/proj4js/REFERENCES.md
  63. 24 0
      js/proj4js/bower.json
  64. 21 0
      js/proj4js/changelog.md
  65. 17 0
      js/proj4js/component.json
  66. 35 0
      js/proj4js/lib/Point.js
  67. 33 0
      js/proj4js/lib/Proj.js
  68. 51 0
      js/proj4js/lib/adjust_axis.js
  69. 3 0
      js/proj4js/lib/common/acosh.js
  70. 6 0
      js/proj4js/lib/common/adjust_lat.js
  71. 11 0
      js/proj4js/lib/common/adjust_lon.js
  72. 4 0
      js/proj4js/lib/common/asinh.js
  73. 6 0
      js/proj4js/lib/common/asinz.js
  74. 3 0
      js/proj4js/lib/common/atanh.js
  75. 5 0
      js/proj4js/lib/common/cosh.js
  76. 3 0
      js/proj4js/lib/common/e0fn.js
  77. 3 0
      js/proj4js/lib/common/e1fn.js
  78. 3 0
      js/proj4js/lib/common/e2fn.js
  79. 3 0
      js/proj4js/lib/common/e3fn.js
  80. 5 0
      js/proj4js/lib/common/fL.js
  81. 4 0
      js/proj4js/lib/common/gN.js
  82. 16 0
      js/proj4js/lib/common/imlfn.js
  83. 30 0
      js/proj4js/lib/common/inverseNadCvt.js
  84. 13 0
      js/proj4js/lib/common/invlatiso.js
  85. 32 0
      js/proj4js/lib/common/iqsfnz.js
  86. 16 0
      js/proj4js/lib/common/latiso.js
  87. 3 0
      js/proj4js/lib/common/mlfn.js
  88. 4 0
      js/proj4js/lib/common/msfnz.js
  89. 26 0
      js/proj4js/lib/common/nadInterBreakout.js
  90. 31 0
      js/proj4js/lib/common/nad_cvt.js
  91. 67 0
      js/proj4js/lib/common/nad_intr.js
  92. 16 0
      js/proj4js/lib/common/phi2z.js
  93. 24 0
      js/proj4js/lib/common/pj_enfn.js
  94. 20 0
      js/proj4js/lib/common/pj_inv_mlfn.js
  95. 5 0
      js/proj4js/lib/common/pj_mlfn.js
  96. 10 0
      js/proj4js/lib/common/qsfnz.js
  97. 3 0
      js/proj4js/lib/common/sign.js
  98. 5 0
      js/proj4js/lib/common/sinh.js
  99. 3 0
      js/proj4js/lib/common/srat.js
  100. 5 0
      js/proj4js/lib/common/tanh.js

二進制
.DS_Store


+ 4 - 0
.bash_history

@@ -0,0 +1,4 @@
+pwd
+ls -lrt
+id
+pwd

+ 76 - 0
MN.sql

@@ -0,0 +1,76 @@
+-- phpMyAdmin SQL Dump
+-- version 4.4.14.1
+-- http://www.phpmyadmin.net
+--
+-- Host: localhost
+-- Generation Time: Dec 02, 2015 at 05:14 AM
+-- Server version: 5.5.44-MariaDB
+-- PHP Version: 5.4.16
+
+SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
+SET time_zone = "+00:00";
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
+
+--
+-- Database: `eligibilite`
+--
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `demandes`
+--
+
+CREATE TABLE IF NOT EXISTS `demandes` (
+  `id` int(15) NOT NULL,
+  `date` datetime NOT NULL,
+  `nom` varchar(50) NOT NULL,
+  `prenom` varchar(50) NOT NULL,
+  `email` varchar(100) NOT NULL,
+  `telephone_fixe` varchar(10) NOT NULL,
+  `telephone_portable` varchar(10) NOT NULL,
+  `numero_voie` varchar(10) NOT NULL,
+  `type_voie` varchar(40) NOT NULL,
+  `nom_voie` varchar(120) NOT NULL,
+  `complement_addresse` varchar(250) NOT NULL,
+  `batiment` varchar(30) NOT NULL,
+  `cage_escalier` varchar(10) NOT NULL,
+  `etage` varchar(10) NOT NULL,
+  `numero_appartement` varchar(10) NOT NULL,
+  `code_postal` int(5) NOT NULL,
+  `ville` varchar(250) NOT NULL,
+  `geo_code` varchar(250) NOT NULL,
+  `vous_etes` varchar(250) NOT NULL,
+  `ce_logement_est` varchar(250) NOT NULL,
+  `accord` varchar(30) NOT NULL,
+  `info_et_libertes` tinyint(1) NOT NULL,
+  `id_zapm_partielle` varchar(25) NOT NULL
+) ENGINE=InnoDB AUTO_INCREMENT=74 DEFAULT CHARSET=utf8;
+
+--
+-- Indexes for dumped tables
+--
+
+--
+-- Indexes for table `demandes`
+--
+ALTER TABLE `demandes`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- AUTO_INCREMENT for dumped tables
+--
+
+--
+-- AUTO_INCREMENT for table `demandes`
+--
+ALTER TABLE `demandes`
+  MODIFY `id` int(15) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=74;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

+ 2 - 0
README.md

@@ -0,0 +1,2 @@
+# Eligibilite
+Manche Numérique

二進制
ajax/.DS_Store


+ 68 - 0
ajax/datastores.php

@@ -0,0 +1,68 @@
+<?php
+ini_set('display_errors', 1);
+ini_set('display_startup_errors', 1);
+error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
+
+function connect(){
+
+  $link = mysql_connect('127.0.0.1','eligibilite','B3Kg7z6d') or die(mysql_error());
+  mysql_select_db('eligibilite', $link) or die(mysql_error());
+}
+
+function executeQuery($requete) {
+  $resultat = mysql_query($requete) or die(mysql_error());
+
+  if(substr($requete, 0, 6) === 'SELECT'){
+    while($donnees = mysql_fetch_array($resultat)){
+      $resultats[] = $donnees;
+    }
+    if (!isset($resultats)) {
+      return null;
+    }
+    return $resultats;
+  }
+  else if(substr($requete, 0, 6) === 'INSERT'){
+    $resultats = mysql_insert_id();
+  }
+  else {
+    $resultats = 'ok';
+  }
+
+  return $resultats;
+}
+
+connect();
+
+if(isset($_POST['query'])) {
+  $resultat = executeQuery($_POST['query']);
+  echo json_encode($resultat);
+  return;
+}
+
+if(isset($_POST['mail'])) {
+  $email = 'ftth@manchenumerique.fr';
+  $bcc   = 'ftth@manchenumerique.fr';
+
+  if(isset($_POST['siteEmail'])) {
+    $email = $_POST['siteEmail'];
+  }
+
+  $headers  = "";
+  $headers .= "Reply-To:".$email."\r\n"."X-Mailer: PHP/".phpversion(). "\r\n";
+  $headers .= "MIME-Version: 1.0"."\r\n";
+  $headers .= "Content-type: text/html; charset=iso-8859-1"."\r\n";
+  $headers .= "Bcc: ".$bcc."\r\n";
+  $headers .= "From: ".utf8_decode("Manche Numérique")." <".$email.">"."\r\n";
+
+  $subject = utf8_decode($_POST['mail']['sujet']);
+  $subject = mb_encode_mimeheader($subject, "UTF-8");
+
+  // Envoi
+  $to = $_POST['mail']['to'];
+  $resultat = mail($to, $subject, utf8_decode($_POST['mail']['message']), $headers, "-f ".$email);
+}
+
+if(isset($resultat)){
+  echo json_encode($resultat);
+}
+?>

+ 103 - 0
ajax/oracle.php

@@ -0,0 +1,103 @@
+<?php
+  ini_set('display_errors', 1);
+  ini_set('display_startup_errors', 1);
+  error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
+
+  $db = "(DESCRIPTION =
+            (ADDRESS_LIST =
+              (ADDRESS = (PROTOCOL = TCP)(HOST = P-BDD-16)(PORT = 1521))
+            )
+            (CONNECT_DATA =
+              (SERVICE_NAME = SIGCG50)
+            )
+          )";
+
+  // Connexion au service
+  $conn = oci_connect('ELIGIBILITE_R', 'H6nmb0KCwR', $db);
+
+  // Execute query
+  function executeQuery($conn, $query) {
+    $res = [];
+
+    $stid = oci_parse($conn, $query);
+
+    if (!$stid) {
+      $e = oci_error($conn);
+      $error['error'] = 'Hum!!! Ssomething went wrong! '.$e;
+      return $error;
+    }
+
+    $r = oci_execute($stid);
+
+    if (!$r) {
+      $e = oci_error($stid);
+      $error['error'] = 'Hum!!! Ssomething went wrong! '.$e;
+      return $error;
+    }
+
+    while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS+OCI_ASSOC)) {
+        $res[] = $row;
+    }
+
+    return $res;
+  }
+
+  // Get parameters
+  if($_POST["x"] && $_POST["y"]) {
+    $x = floatval($_POST["x"]);
+    $y = floatval($_POST["y"]);
+  }
+  else if($_GET["x"] && $_GET["y"]) {
+    $x = floatval($_GET["x"]);
+    $y = floatval($_GET["y"]);
+  }
+  else {
+    $x = -1.109669152209201;
+    $y = 49.102353729303125;
+  }
+
+  // Append X,Y to results
+  $results['x'] = $x;
+  $results['y'] = $y;
+
+  // Get FTTH results
+  $queryFTTH2 = "Select
+                  FTTH.Id_Zapm_Partielle,
+                  FTTH.PHASE_TRAV,
+                  FTTH.DATE_DEB_TRAV_PREV,
+                  FTTH.DATE_DEB_TRAV_REEL,
+                  FTTH.DATE_OUV_BUL_PRERACCO,
+                  FTTH.DATE_FERM_BUL_PRERACCO,
+                  FTTH.DATE_ABONNEMENT_PREV,
+                  FTTH.DATE_OUV_COMMERCIALISATION
+                FROM
+                  SIG_ANT.VFTTH_MN_ELIGIBILITE FTTH
+                WHERE
+                  SDO_CONTAINS(FTTH.GEOMETRY, Mdsys.Sdo_Geometry(2001,4326,Mdsys.Sdo_Point_Type(".$x.", ".$y.", Null), Null, Null)) = 'TRUE'";
+
+  $results['ftth'] = executeQuery($conn, $queryFTTH2);
+
+  // $queryFTTH = "Select FTTH.Id_Zapm_Partielle, FTTH.PHASE_TRAV, FTTH.DATE_OUV_SERVICE_REEL, FTTH.DATE_OUV_SERVICE_PREV, FTTH.DATE_FIN_TRAV_PREV, FTTH.DATE_DEB_ETUDES_PREV From SIG_ANT.FTTH_MN_ELIGIBILITE FTTH WHERE SDO_CONTAINS(FTTH.GEOMETRY, Mdsys.Sdo_Geometry(2001,4326,Mdsys.Sdo_Point_Type(".$x.", ".$y.", Null), Null, Null)) = 'TRUE'";
+
+  // $results['ftth'] = executeQuery($conn, $queryFTTH);
+
+  // Get ADSL results
+  $queryADSL = "Select ADSL.ID_ADSL_MTHD , ADSL.CLASSEDEBI, ADSL.CLASSE_LEGENDE  From SIG_ANT.ADSL_MTHD ADSL WHERE SDO_CONTAINS(ADSL.GEOM, Mdsys.Sdo_Geometry(2001,4326,Mdsys.Sdo_Point_Type(".$x.", ".$y.", Null), Null, Null)) = 'TRUE'";
+  $results['adsl'] = executeQuery($conn, $queryADSL);
+
+  // Get MIMO results
+  $queryMIMO = "Select A.ID_MIMO_ANTC_COUVERTURE_6KM, A.DATE_OUV_SERVICE_REEL, A.DATE_OUV_SERVICE_PREV From SIG_ANT.MIMO_ANTC_COUVERTURE_6KM A  WHERE SDO_CONTAINS(a.GEOM, Mdsys.Sdo_Geometry(2001,4326,Mdsys.Sdo_Point_Type(".$x.", ".$y.", Null), Null, Null)) = 'TRUE'";
+  $results['mimo'] = executeQuery($conn, $queryMIMO);
+
+  echo json_encode($results);
+
+  /*
+  les requetes pour FTTH et ADSL passent sur des vues
+  un boolean dans la view dit si zone ouverte ou pas au preraco
+  date d'abonnement previsionel au semestre (ald mois)
+
+  1) regarder adresse.gouv.data
+  2) adresse gouville 150 points avec même X, Y
+  3) Bug IE11 5 rue des croix, saint come du mont => 50500 ca marche!
+  */
+?>

+ 1 - 0
ajax/postForm.php

@@ -0,0 +1 @@
+postForm.php

+ 7741 - 0
css/angular-material.css

@@ -0,0 +1,7741 @@
+/*!
+ * Angular Material Design
+ * https://github.com/angular/material
+ * @license MIT
+ * v0.10.1-master-8157dec
+ */
+html, body {
+  height: 100%;
+  color: rgba(0, 0, 0, 0.87);
+  background: white;
+  position: relative; }
+
+body {
+  margin: 0;
+  padding: 0; }
+
+[tabindex='-1']:focus {
+  outline: none; }
+
+.inset {
+  padding: 10px; }
+
+button.md-no-style {
+  font-weight: normal;
+  background-color: inherit;
+  text-align: left;
+  border: none;
+  padding: 0;
+  margin: 0; }
+
+select, button, textarea, input {
+  vertical-align: baseline; }
+
+input[type="reset"], input[type="submit"], html input[type="button"], button {
+  cursor: pointer;
+  -webkit-appearance: button; }
+  input[type="reset"][disabled], input[type="submit"][disabled], html input[type="button"][disabled], button[disabled] {
+    cursor: default; }
+
+textarea {
+  vertical-align: top;
+  overflow: auto; }
+
+input[type="search"] {
+  -webkit-appearance: textfield;
+  box-sizing: content-box;
+  -webkit-box-sizing: content-box; }
+  input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button {
+    -webkit-appearance: none; }
+
+.md-visually-hidden {
+  border: 0;
+  clip: rect(0 0 0 0);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  text-transform: none;
+  width: 1px; }
+
+.md-shadow {
+  position: absolute;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  right: 0;
+  border-radius: inherit;
+  pointer-events: none; }
+
+.md-shadow-bottom-z-1 {
+  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); }
+
+.md-shadow-bottom-z-2 {
+  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.4); }
+
+.md-shadow-animated.md-shadow {
+  transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); }
+
+/*
+ * A container inside of a rippling element (eg a button),
+ * which contains all of the individual ripples
+ */
+.md-ripple-container {
+  pointer-events: none;
+  position: absolute;
+  overflow: hidden;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 100%;
+  transition: all 0.55s cubic-bezier(0.25, 0.8, 0.25, 1); }
+
+.md-ripple {
+  position: absolute;
+  -webkit-transform: translate(-50%, -50%) scale(0);
+          transform: translate(-50%, -50%) scale(0);
+  -webkit-transform-origin: 50% 50%;
+          transform-origin: 50% 50%;
+  opacity: 0;
+  border-radius: 50%; }
+  .md-ripple.md-ripple-placed {
+    transition: margin 0.9s cubic-bezier(0.25, 0.8, 0.25, 1), border 0.9s cubic-bezier(0.25, 0.8, 0.25, 1), width 0.9s cubic-bezier(0.25, 0.8, 0.25, 1), height 0.9s cubic-bezier(0.25, 0.8, 0.25, 1), opacity 0.9s cubic-bezier(0.25, 0.8, 0.25, 1), -webkit-transform 0.9s cubic-bezier(0.25, 0.8, 0.25, 1);
+    transition: margin 0.9s cubic-bezier(0.25, 0.8, 0.25, 1), border 0.9s cubic-bezier(0.25, 0.8, 0.25, 1), width 0.9s cubic-bezier(0.25, 0.8, 0.25, 1), height 0.9s cubic-bezier(0.25, 0.8, 0.25, 1), opacity 0.9s cubic-bezier(0.25, 0.8, 0.25, 1), transform 0.9s cubic-bezier(0.25, 0.8, 0.25, 1); }
+  .md-ripple.md-ripple-scaled {
+    -webkit-transform: translate(-50%, -50%) scale(1);
+            transform: translate(-50%, -50%) scale(1); }
+  .md-ripple.md-ripple-active, .md-ripple.md-ripple-full, .md-ripple.md-ripple-visible {
+    opacity: 0.20; }
+
+.md-padding {
+  padding: 8px; }
+
+.md-margin {
+  margin: 8px; }
+
+.md-scroll-mask {
+  position: absolute;
+  background-color: transparent;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0; }
+  .md-scroll-mask > .md-scroll-mask-bar {
+    display: block;
+    position: absolute;
+    background-color: #fafafa;
+    right: 0;
+    top: 0;
+    bottom: 0;
+    z-index: 65;
+    box-shadow: inset 0px 0px 1px rgba(0, 0, 0, 0.3); }
+
+@media (min-width: 600px) {
+  .md-padding {
+    padding: 16px; } }
+
+html, body {
+  -webkit-tap-highlight-color: transparent;
+  -webkit-touch-callout: none;
+  min-height: 100%;
+  -webkit-text-size-adjust: 100%;
+  -ms-text-size-adjust: 100%;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale; }
+
+/************
+ * Headings
+ ************/
+.md-display-4 {
+  font-size: 112px;
+  font-weight: 300;
+  letter-spacing: -0.01em;
+  line-height: 112px; }
+
+.md-display-3 {
+  font-size: 56px;
+  font-weight: 400;
+  letter-spacing: -0.005em;
+  line-height: 56px; }
+
+.md-display-2 {
+  font-size: 45px;
+  font-weight: 400;
+  line-height: 64px; }
+
+.md-display-1 {
+  font-size: 34px;
+  font-weight: 400;
+  line-height: 40px; }
+
+.md-headline {
+  font-size: 24px;
+  font-weight: 400;
+  line-height: 32px; }
+
+.md-title {
+  font-size: 20px;
+  font-weight: 500;
+  letter-spacing: 0.005em; }
+
+.md-subhead {
+  font-size: 16px;
+  font-weight: 400;
+  letter-spacing: 0.01em;
+  line-height: 24px; }
+
+/************
+ * Body Copy
+ ************/
+.md-body-1 {
+  font-size: 14px;
+  font-weight: 400;
+  letter-spacing: 0.01em;
+  line-height: 20px; }
+
+.md-body-2 {
+  font-size: 14px;
+  font-weight: 500;
+  letter-spacing: 0.01em;
+  line-height: 24px; }
+
+.md-caption {
+  font-size: 12px;
+  letter-spacing: 0.02em; }
+
+.md-button {
+  letter-spacing: 0.01em; }
+
+/************
+ * Defaults
+ ************/
+button, select, html, textarea, input {
+  font-family: Roboto, 'Helvetica Neue', sans-serif; }
+
+select, button, textarea, input {
+  font-size: 100%; }
+
+/* Sizes:
+  0    <= size < 600  Phone
+  600  <= size < 960  Tablet
+  960  <= size < 1200 Tablet-Landscape
+  1200 <= size         PC
+*/
+.layout {
+  box-sizing: border-box;
+  display: -webkit-flex;
+  display: -moz-flex;
+  display: -ms-flexbox;
+  display: flex; }
+
+.layout-column {
+  -ms-flex-direction: column;
+      flex-direction: column;
+  -webkit-flex-direction: column; }
+
+.layout-row {
+  -ms-flex-direction: row;
+      flex-direction: row;
+  -webkit-flex-direction: row; }
+
+.layout-padding > .flex-sm, .layout-padding > .flex-lt-md {
+  padding: 4px; }
+
+.layout-padding, .layout-padding > .flex, .layout-padding > .flex-gt-sm, .layout-padding > .flex-md, .layout-padding > .flex-lt-lg {
+  padding: 8px; }
+
+.layout-padding > .flex-gt-md, .layout-padding > .flex-lg {
+  padding: 16px; }
+
+.layout-margin > .flex-sm, .layout-margin > .flex-lt-md {
+  margin: 4px; }
+
+.layout-margin, .layout-margin > .flex, .layout-margin > .flex-gt-sm, .layout-margin > .flex-md, .layout-margin > .flex-lt-lg {
+  margin: 8px; }
+
+.layout-margin > .flex-gt-md, .layout-margin > .flex-lg {
+  margin: 16px; }
+
+.layout-wrap {
+  -webkit-flex-wrap: wrap;
+      -ms-flex-wrap: wrap;
+          flex-wrap: wrap; }
+
+.layout-fill {
+  margin: 0;
+  min-height: 100%;
+  width: 100%; }
+
+@-moz-document url-prefix() {
+  .layout-fill {
+    margin: 0;
+    width: 100%;
+    min-height: auto;
+    height: inherit; } }
+
+.flex {
+  box-sizing: border-box;
+  -webkit-flex: 1;
+      -ms-flex: 1;
+          flex: 1; }
+
+.flex-0 {
+  -webkit-flex: 0 0 0%;
+      -ms-flex: 0 0 0%;
+          flex: 0 0 0%; }
+
+.layout-row > .flex-0 {
+  max-width: 0%; }
+
+.layout-column > .flex-0 {
+  max-height: 0%; }
+
+.flex-5 {
+  -webkit-flex: 0 0 5%;
+      -ms-flex: 0 0 5%;
+          flex: 0 0 5%; }
+
+.layout-row > .flex-5 {
+  max-width: 5%; }
+
+.layout-column > .flex-5 {
+  max-height: 5%; }
+
+.flex-10 {
+  -webkit-flex: 0 0 10%;
+      -ms-flex: 0 0 10%;
+          flex: 0 0 10%; }
+
+.layout-row > .flex-10 {
+  max-width: 10%; }
+
+.layout-column > .flex-10 {
+  max-height: 10%; }
+
+.flex-15 {
+  -webkit-flex: 0 0 15%;
+      -ms-flex: 0 0 15%;
+          flex: 0 0 15%; }
+
+.layout-row > .flex-15 {
+  max-width: 15%; }
+
+.layout-column > .flex-15 {
+  max-height: 15%; }
+
+.flex-20 {
+  -webkit-flex: 0 0 20%;
+      -ms-flex: 0 0 20%;
+          flex: 0 0 20%; }
+
+.layout-row > .flex-20 {
+  max-width: 20%; }
+
+.layout-column > .flex-20 {
+  max-height: 20%; }
+
+.flex-25 {
+  -webkit-flex: 0 0 25%;
+      -ms-flex: 0 0 25%;
+          flex: 0 0 25%; }
+
+.layout-row > .flex-25 {
+  max-width: 25%; }
+
+.layout-column > .flex-25 {
+  max-height: 25%; }
+
+.flex-30 {
+  -webkit-flex: 0 0 30%;
+      -ms-flex: 0 0 30%;
+          flex: 0 0 30%; }
+
+.layout-row > .flex-30 {
+  max-width: 30%; }
+
+.layout-column > .flex-30 {
+  max-height: 30%; }
+
+.flex-35 {
+  -webkit-flex: 0 0 35%;
+      -ms-flex: 0 0 35%;
+          flex: 0 0 35%; }
+
+.layout-row > .flex-35 {
+  max-width: 35%; }
+
+.layout-column > .flex-35 {
+  max-height: 35%; }
+
+.flex-40 {
+  -webkit-flex: 0 0 40%;
+      -ms-flex: 0 0 40%;
+          flex: 0 0 40%; }
+
+.layout-row > .flex-40 {
+  max-width: 40%; }
+
+.layout-column > .flex-40 {
+  max-height: 40%; }
+
+.flex-45 {
+  -webkit-flex: 0 0 45%;
+      -ms-flex: 0 0 45%;
+          flex: 0 0 45%; }
+
+.layout-row > .flex-45 {
+  max-width: 45%; }
+
+.layout-column > .flex-45 {
+  max-height: 45%; }
+
+.flex-50 {
+  -webkit-flex: 0 0 50%;
+      -ms-flex: 0 0 50%;
+          flex: 0 0 50%; }
+
+.layout-row > .flex-50 {
+  max-width: 50%; }
+
+.layout-column > .flex-50 {
+  max-height: 50%; }
+
+.flex-55 {
+  -webkit-flex: 0 0 55%;
+      -ms-flex: 0 0 55%;
+          flex: 0 0 55%; }
+
+.layout-row > .flex-55 {
+  max-width: 55%; }
+
+.layout-column > .flex-55 {
+  max-height: 55%; }
+
+.flex-60 {
+  -webkit-flex: 0 0 60%;
+      -ms-flex: 0 0 60%;
+          flex: 0 0 60%; }
+
+.layout-row > .flex-60 {
+  max-width: 60%; }
+
+.layout-column > .flex-60 {
+  max-height: 60%; }
+
+.flex-65 {
+  -webkit-flex: 0 0 65%;
+      -ms-flex: 0 0 65%;
+          flex: 0 0 65%; }
+
+.layout-row > .flex-65 {
+  max-width: 65%; }
+
+.layout-column > .flex-65 {
+  max-height: 65%; }
+
+.flex-70 {
+  -webkit-flex: 0 0 70%;
+      -ms-flex: 0 0 70%;
+          flex: 0 0 70%; }
+
+.layout-row > .flex-70 {
+  max-width: 70%; }
+
+.layout-column > .flex-70 {
+  max-height: 70%; }
+
+.flex-75 {
+  -webkit-flex: 0 0 75%;
+      -ms-flex: 0 0 75%;
+          flex: 0 0 75%; }
+
+.layout-row > .flex-75 {
+  max-width: 75%; }
+
+.layout-column > .flex-75 {
+  max-height: 75%; }
+
+.flex-80 {
+  -webkit-flex: 0 0 80%;
+      -ms-flex: 0 0 80%;
+          flex: 0 0 80%; }
+
+.layout-row > .flex-80 {
+  max-width: 80%; }
+
+.layout-column > .flex-80 {
+  max-height: 80%; }
+
+.flex-85 {
+  -webkit-flex: 0 0 85%;
+      -ms-flex: 0 0 85%;
+          flex: 0 0 85%; }
+
+.layout-row > .flex-85 {
+  max-width: 85%; }
+
+.layout-column > .flex-85 {
+  max-height: 85%; }
+
+.flex-90 {
+  -webkit-flex: 0 0 90%;
+      -ms-flex: 0 0 90%;
+          flex: 0 0 90%; }
+
+.layout-row > .flex-90 {
+  max-width: 90%; }
+
+.layout-column > .flex-90 {
+  max-height: 90%; }
+
+.flex-95 {
+  -webkit-flex: 0 0 95%;
+      -ms-flex: 0 0 95%;
+          flex: 0 0 95%; }
+
+.layout-row > .flex-95 {
+  max-width: 95%; }
+
+.layout-column > .flex-95 {
+  max-height: 95%; }
+
+.flex-100 {
+  -webkit-flex: 0 0 100%;
+      -ms-flex: 0 0 100%;
+          flex: 0 0 100%; }
+
+.layout-row > .flex-100 {
+  max-width: 100%; }
+
+.layout-column > .flex-100 {
+  max-height: 100%; }
+
+.flex-33, .flex-34 {
+  -webkit-flex: 0 0 33.33%;
+      -ms-flex: 0 0 33.33%;
+          flex: 0 0 33.33%; }
+
+.flex-66, .flex-67 {
+  -webkit-flex: 0 0 66.66%;
+      -ms-flex: 0 0 66.66%;
+          flex: 0 0 66.66%; }
+
+.layout-row > .flex-33, .layout-row > .flex-34 {
+  max-width: 33.33%; }
+.layout-row > .flex-66, .layout-row > .flex-67 {
+  max-width: 66.66%; }
+
+.layout-column > .flex-33, .layout-column > .flex-34 {
+  max-height: 33.33%; }
+.layout-column > .flex-66, .layout-column > .flex-67 {
+  max-height: 66.66%; }
+
+.layout-align-center, .layout-align-center-center, .layout-align-center-start, .layout-align-center-end {
+  -webkit-justify-content: center;
+      -ms-flex-pack: center;
+          justify-content: center; }
+
+.layout-align-end, .layout-align-end-center, .layout-align-end-start, .layout-align-end-end {
+  -webkit-justify-content: flex-end;
+      -ms-flex-pack: end;
+          justify-content: flex-end; }
+
+.layout-align-space-around, .layout-align-space-around-center, .layout-align-space-around-start, .layout-align-space-around-end {
+  -webkit-justify-content: space-around;
+      -ms-flex-pack: distribute;
+          justify-content: space-around; }
+
+.layout-align-space-between, .layout-align-space-between-center, .layout-align-space-between-start, .layout-align-space-between-end {
+  -webkit-justify-content: space-between;
+      -ms-flex-pack: justify;
+          justify-content: space-between; }
+
+.layout-align-center-center, .layout-align-start-center, .layout-align-end-center, .layout-align-space-between-center, .layout-align-space-around-center {
+  -webkit-align-items: center;
+      -ms-flex-align: center;
+          align-items: center; }
+
+.layout-align-center-start, .layout-align-start-start, .layout-align-end-start, .layout-align-space-between-start, .layout-align-space-around-start {
+  -webkit-align-items: flex-start;
+      -ms-flex-align: start;
+          align-items: flex-start; }
+
+.layout-align-center-end, .layout-align-start-end, .layout-align-end-end, .layout-align-space-between-end, .layout-align-space-around-end {
+  -webkit-align-items: flex-end;
+      -ms-flex-align: end;
+          align-items: flex-end; }
+
+.flex-order-0 {
+  -webkit-order: 0;
+      -ms-flex-order: 0;
+          order: 0; }
+
+.flex-order-1 {
+  -webkit-order: 1;
+      -ms-flex-order: 1;
+          order: 1; }
+
+.flex-order-2 {
+  -webkit-order: 2;
+      -ms-flex-order: 2;
+          order: 2; }
+
+.flex-order-3 {
+  -webkit-order: 3;
+      -ms-flex-order: 3;
+          order: 3; }
+
+.flex-order-4 {
+  -webkit-order: 4;
+      -ms-flex-order: 4;
+          order: 4; }
+
+.flex-order-5 {
+  -webkit-order: 5;
+      -ms-flex-order: 5;
+          order: 5; }
+
+.flex-order-6 {
+  -webkit-order: 6;
+      -ms-flex-order: 6;
+          order: 6; }
+
+.flex-order-7 {
+  -webkit-order: 7;
+      -ms-flex-order: 7;
+          order: 7; }
+
+.flex-order-8 {
+  -webkit-order: 8;
+      -ms-flex-order: 8;
+          order: 8; }
+
+.flex-order-9 {
+  -webkit-order: 9;
+      -ms-flex-order: 9;
+          order: 9; }
+
+.offset-5 {
+  margin-left: 5%; }
+
+.offset-10 {
+  margin-left: 10%; }
+
+.offset-15 {
+  margin-left: 15%; }
+
+.offset-20 {
+  margin-left: 20%; }
+
+.offset-25 {
+  margin-left: 25%; }
+
+.offset-30 {
+  margin-left: 30%; }
+
+.offset-35 {
+  margin-left: 35%; }
+
+.offset-40 {
+  margin-left: 40%; }
+
+.offset-45 {
+  margin-left: 45%; }
+
+.offset-50 {
+  margin-left: 50%; }
+
+.offset-55 {
+  margin-left: 55%; }
+
+.offset-60 {
+  margin-left: 60%; }
+
+.offset-65 {
+  margin-left: 65%; }
+
+.offset-70 {
+  margin-left: 70%; }
+
+.offset-75 {
+  margin-left: 75%; }
+
+.offset-80 {
+  margin-left: 80%; }
+
+.offset-85 {
+  margin-left: 85%; }
+
+.offset-90 {
+  margin-left: 90%; }
+
+.offset-95 {
+  margin-left: 95%; }
+
+.offset-33, .offset-34 {
+  margin-left: 33.33%; }
+
+.offset-66, .offset-67 {
+  margin-left: 66.66%; }
+
+/**
+ * `hide-gt-sm show-gt-lg` should hide from 600px to 1200px
+ * `show-md hide-gt-sm` should show from 0px to 960px and hide at >960px
+ * `hide-gt-md show-gt-sm` should show everywhere (show overrides hide)`
+ */
+@media (max-width: 599px) {
+  .hide-sm:not(.show-sm):not(.show), .hide:not(.show-sm):not(.show) {
+    display: none; }
+  .flex-order-sm-0 {
+    -webkit-order: 0;
+        -ms-flex-order: 0;
+            order: 0; }
+  .flex-order-sm-1 {
+    -webkit-order: 1;
+        -ms-flex-order: 1;
+            order: 1; }
+  .flex-order-sm-2 {
+    -webkit-order: 2;
+        -ms-flex-order: 2;
+            order: 2; }
+  .flex-order-sm-3 {
+    -webkit-order: 3;
+        -ms-flex-order: 3;
+            order: 3; }
+  .flex-order-sm-4 {
+    -webkit-order: 4;
+        -ms-flex-order: 4;
+            order: 4; }
+  .flex-order-sm-5 {
+    -webkit-order: 5;
+        -ms-flex-order: 5;
+            order: 5; }
+  .flex-order-sm-6 {
+    -webkit-order: 6;
+        -ms-flex-order: 6;
+            order: 6; }
+  .flex-order-sm-7 {
+    -webkit-order: 7;
+        -ms-flex-order: 7;
+            order: 7; }
+  .flex-order-sm-8 {
+    -webkit-order: 8;
+        -ms-flex-order: 8;
+            order: 8; }
+  .flex-order-sm-9 {
+    -webkit-order: 9;
+        -ms-flex-order: 9;
+            order: 9; }
+  .layout-align-sm-center, .layout-align-sm-center-center, .layout-align-sm-center-start, .layout-align-sm-center-end {
+    -webkit-justify-content: center;
+        -ms-flex-pack: center;
+            justify-content: center; }
+  .layout-align-sm-end, .layout-align-sm-end-center, .layout-align-sm-end-start, .layout-align-sm-end-end {
+    -webkit-justify-content: flex-end;
+        -ms-flex-pack: end;
+            justify-content: flex-end; }
+  .layout-align-sm-space-around, .layout-align-sm-space-around-center, .layout-align-sm-space-around-start, .layout-align-sm-space-around-end {
+    -webkit-justify-content: space-around;
+        -ms-flex-pack: distribute;
+            justify-content: space-around; }
+  .layout-align-sm-space-between, .layout-align-sm-space-between-center, .layout-align-sm-space-between-start, .layout-align-sm-space-between-end {
+    -webkit-justify-content: space-between;
+        -ms-flex-pack: justify;
+            justify-content: space-between; }
+  .layout-align-sm-center-center, .layout-align-sm-start-center, .layout-align-sm-end-center, .layout-align-sm-space-between-center, .layout-align-sm-space-around-center {
+    -webkit-align-items: center;
+        -ms-flex-align: center;
+            align-items: center; }
+  .layout-align-sm-center-start, .layout-align-sm-start-start, .layout-align-sm-end-start, .layout-align-sm-space-between-start, .layout-align-sm-space-around-start {
+    -webkit-align-items: flex-start;
+        -ms-flex-align: start;
+            align-items: flex-start; }
+  .layout-align-sm-center-end, .layout-align-sm-start-end, .layout-align-sm-end-end, .layout-align-sm-space-between-end, .layout-align-sm-space-around-end {
+    -webkit-align-items: flex-end;
+        -ms-flex-align: end;
+            align-items: flex-end; }
+  .layout-sm {
+    box-sizing: border-box;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flexbox;
+    display: flex; }
+  .layout-sm-column {
+    -webkit-flex-direction: column;
+        -ms-flex-direction: column;
+            flex-direction: column; }
+  .layout-sm-row {
+    -webkit-flex-direction: row;
+        -ms-flex-direction: row;
+            flex-direction: row; }
+  .offset-sm-5 {
+    margin-left: 5%; }
+  .offset-sm-10 {
+    margin-left: 10%; }
+  .offset-sm-15 {
+    margin-left: 15%; }
+  .offset-sm-20 {
+    margin-left: 20%; }
+  .offset-sm-25 {
+    margin-left: 25%; }
+  .offset-sm-30 {
+    margin-left: 30%; }
+  .offset-sm-35 {
+    margin-left: 35%; }
+  .offset-sm-40 {
+    margin-left: 40%; }
+  .offset-sm-45 {
+    margin-left: 45%; }
+  .offset-sm-50 {
+    margin-left: 50%; }
+  .offset-sm-55 {
+    margin-left: 55%; }
+  .offset-sm-60 {
+    margin-left: 60%; }
+  .offset-sm-65 {
+    margin-left: 65%; }
+  .offset-sm-70 {
+    margin-left: 70%; }
+  .offset-sm-75 {
+    margin-left: 75%; }
+  .offset-sm-80 {
+    margin-left: 80%; }
+  .offset-sm-85 {
+    margin-left: 85%; }
+  .offset-sm-90 {
+    margin-left: 90%; }
+  .offset-sm-95 {
+    margin-left: 95%; }
+  .offset-sm-33, .offset-sm-34 {
+    margin-left: 33.33%; }
+  .offset-sm-66, .offset-sm-67 {
+    margin-left: 66.66%; }
+  .flex-sm {
+    box-sizing: border-box;
+    -webkit-flex: 1;
+        -ms-flex: 1;
+            flex: 1; }
+  .flex-sm-0 {
+    -webkit-flex: 0 0 0%;
+        -ms-flex: 0 0 0%;
+            flex: 0 0 0%; }
+  .layout-row > .flex-sm-0 {
+    max-width: 0%; }
+  .layout-column > .flex-sm-0 {
+    max-height: 0%; }
+  .flex-sm-5 {
+    -webkit-flex: 0 0 5%;
+        -ms-flex: 0 0 5%;
+            flex: 0 0 5%; }
+  .layout-row > .flex-sm-5 {
+    max-width: 5%; }
+  .layout-column > .flex-sm-5 {
+    max-height: 5%; }
+  .flex-sm-10 {
+    -webkit-flex: 0 0 10%;
+        -ms-flex: 0 0 10%;
+            flex: 0 0 10%; }
+  .layout-row > .flex-sm-10 {
+    max-width: 10%; }
+  .layout-column > .flex-sm-10 {
+    max-height: 10%; }
+  .flex-sm-15 {
+    -webkit-flex: 0 0 15%;
+        -ms-flex: 0 0 15%;
+            flex: 0 0 15%; }
+  .layout-row > .flex-sm-15 {
+    max-width: 15%; }
+  .layout-column > .flex-sm-15 {
+    max-height: 15%; }
+  .flex-sm-20 {
+    -webkit-flex: 0 0 20%;
+        -ms-flex: 0 0 20%;
+            flex: 0 0 20%; }
+  .layout-row > .flex-sm-20 {
+    max-width: 20%; }
+  .layout-column > .flex-sm-20 {
+    max-height: 20%; }
+  .flex-sm-25 {
+    -webkit-flex: 0 0 25%;
+        -ms-flex: 0 0 25%;
+            flex: 0 0 25%; }
+  .layout-row > .flex-sm-25 {
+    max-width: 25%; }
+  .layout-column > .flex-sm-25 {
+    max-height: 25%; }
+  .flex-sm-30 {
+    -webkit-flex: 0 0 30%;
+        -ms-flex: 0 0 30%;
+            flex: 0 0 30%; }
+  .layout-row > .flex-sm-30 {
+    max-width: 30%; }
+  .layout-column > .flex-sm-30 {
+    max-height: 30%; }
+  .flex-sm-35 {
+    -webkit-flex: 0 0 35%;
+        -ms-flex: 0 0 35%;
+            flex: 0 0 35%; }
+  .layout-row > .flex-sm-35 {
+    max-width: 35%; }
+  .layout-column > .flex-sm-35 {
+    max-height: 35%; }
+  .flex-sm-40 {
+    -webkit-flex: 0 0 40%;
+        -ms-flex: 0 0 40%;
+            flex: 0 0 40%; }
+  .layout-row > .flex-sm-40 {
+    max-width: 40%; }
+  .layout-column > .flex-sm-40 {
+    max-height: 40%; }
+  .flex-sm-45 {
+    -webkit-flex: 0 0 45%;
+        -ms-flex: 0 0 45%;
+            flex: 0 0 45%; }
+  .layout-row > .flex-sm-45 {
+    max-width: 45%; }
+  .layout-column > .flex-sm-45 {
+    max-height: 45%; }
+  .flex-sm-50 {
+    -webkit-flex: 0 0 50%;
+        -ms-flex: 0 0 50%;
+            flex: 0 0 50%; }
+  .layout-row > .flex-sm-50 {
+    max-width: 50%; }
+  .layout-column > .flex-sm-50 {
+    max-height: 50%; }
+  .flex-sm-55 {
+    -webkit-flex: 0 0 55%;
+        -ms-flex: 0 0 55%;
+            flex: 0 0 55%; }
+  .layout-row > .flex-sm-55 {
+    max-width: 55%; }
+  .layout-column > .flex-sm-55 {
+    max-height: 55%; }
+  .flex-sm-60 {
+    -webkit-flex: 0 0 60%;
+        -ms-flex: 0 0 60%;
+            flex: 0 0 60%; }
+  .layout-row > .flex-sm-60 {
+    max-width: 60%; }
+  .layout-column > .flex-sm-60 {
+    max-height: 60%; }
+  .flex-sm-65 {
+    -webkit-flex: 0 0 65%;
+        -ms-flex: 0 0 65%;
+            flex: 0 0 65%; }
+  .layout-row > .flex-sm-65 {
+    max-width: 65%; }
+  .layout-column > .flex-sm-65 {
+    max-height: 65%; }
+  .flex-sm-70 {
+    -webkit-flex: 0 0 70%;
+        -ms-flex: 0 0 70%;
+            flex: 0 0 70%; }
+  .layout-row > .flex-sm-70 {
+    max-width: 70%; }
+  .layout-column > .flex-sm-70 {
+    max-height: 70%; }
+  .flex-sm-75 {
+    -webkit-flex: 0 0 75%;
+        -ms-flex: 0 0 75%;
+            flex: 0 0 75%; }
+  .layout-row > .flex-sm-75 {
+    max-width: 75%; }
+  .layout-column > .flex-sm-75 {
+    max-height: 75%; }
+  .flex-sm-80 {
+    -webkit-flex: 0 0 80%;
+        -ms-flex: 0 0 80%;
+            flex: 0 0 80%; }
+  .layout-row > .flex-sm-80 {
+    max-width: 80%; }
+  .layout-column > .flex-sm-80 {
+    max-height: 80%; }
+  .flex-sm-85 {
+    -webkit-flex: 0 0 85%;
+        -ms-flex: 0 0 85%;
+            flex: 0 0 85%; }
+  .layout-row > .flex-sm-85 {
+    max-width: 85%; }
+  .layout-column > .flex-sm-85 {
+    max-height: 85%; }
+  .flex-sm-90 {
+    -webkit-flex: 0 0 90%;
+        -ms-flex: 0 0 90%;
+            flex: 0 0 90%; }
+  .layout-row > .flex-sm-90 {
+    max-width: 90%; }
+  .layout-column > .flex-sm-90 {
+    max-height: 90%; }
+  .flex-sm-95 {
+    -webkit-flex: 0 0 95%;
+        -ms-flex: 0 0 95%;
+            flex: 0 0 95%; }
+  .layout-row > .flex-sm-95 {
+    max-width: 95%; }
+  .layout-column > .flex-sm-95 {
+    max-height: 95%; }
+  .flex-sm-100 {
+    -webkit-flex: 0 0 100%;
+        -ms-flex: 0 0 100%;
+            flex: 0 0 100%; }
+  .layout-row > .flex-sm-100 {
+    max-width: 100%; }
+  .layout-column > .flex-sm-100 {
+    max-height: 100%; }
+  .flex-sm-33, .flex-sm-34 {
+    -webkit-flex: 0 0 33.33%;
+        -ms-flex: 0 0 33.33%;
+            flex: 0 0 33.33%; }
+  .flex-sm-66, .flex-sm-67 {
+    -webkit-flex: 0 0 66.66%;
+        -ms-flex: 0 0 66.66%;
+            flex: 0 0 66.66%; }
+  .layout-row > .flex-sm-33, .layout-row > .flex-sm-34 {
+    max-width: 33.33%; }
+  .layout-row > .flex-sm-66, .layout-row > .flex-sm-67 {
+    max-width: 66.66%; }
+  .layout-column > .flex-sm-33, .layout-column > .flex-sm-34 {
+    max-height: 33.33%; }
+  .layout-column > .flex-sm-66, .layout-column > .flex-sm-67 {
+    max-height: 66.66%; } }
+
+@media (min-width: 600px) {
+  .flex-order-gt-sm-0 {
+    -webkit-order: 0;
+        -ms-flex-order: 0;
+            order: 0; }
+  .flex-order-gt-sm-1 {
+    -webkit-order: 1;
+        -ms-flex-order: 1;
+            order: 1; }
+  .flex-order-gt-sm-2 {
+    -webkit-order: 2;
+        -ms-flex-order: 2;
+            order: 2; }
+  .flex-order-gt-sm-3 {
+    -webkit-order: 3;
+        -ms-flex-order: 3;
+            order: 3; }
+  .flex-order-gt-sm-4 {
+    -webkit-order: 4;
+        -ms-flex-order: 4;
+            order: 4; }
+  .flex-order-gt-sm-5 {
+    -webkit-order: 5;
+        -ms-flex-order: 5;
+            order: 5; }
+  .flex-order-gt-sm-6 {
+    -webkit-order: 6;
+        -ms-flex-order: 6;
+            order: 6; }
+  .flex-order-gt-sm-7 {
+    -webkit-order: 7;
+        -ms-flex-order: 7;
+            order: 7; }
+  .flex-order-gt-sm-8 {
+    -webkit-order: 8;
+        -ms-flex-order: 8;
+            order: 8; }
+  .flex-order-gt-sm-9 {
+    -webkit-order: 9;
+        -ms-flex-order: 9;
+            order: 9; }
+  .layout-align-gt-sm-center, .layout-align-gt-sm-center-center, .layout-align-gt-sm-center-start, .layout-align-gt-sm-center-end {
+    -webkit-justify-content: center;
+        -ms-flex-pack: center;
+            justify-content: center; }
+  .layout-align-gt-sm-end, .layout-align-gt-sm-end-center, .layout-align-gt-sm-end-start, .layout-align-gt-sm-end-end {
+    -webkit-justify-content: flex-end;
+        -ms-flex-pack: end;
+            justify-content: flex-end; }
+  .layout-align-gt-sm-space-around, .layout-align-gt-sm-space-around-center, .layout-align-gt-sm-space-around-start, .layout-align-gt-sm-space-around-end {
+    -webkit-justify-content: space-around;
+        -ms-flex-pack: distribute;
+            justify-content: space-around; }
+  .layout-align-gt-sm-space-between, .layout-align-gt-sm-space-between-center, .layout-align-gt-sm-space-between-start, .layout-align-gt-sm-space-between-end {
+    -webkit-justify-content: space-between;
+        -ms-flex-pack: justify;
+            justify-content: space-between; }
+  .layout-align-gt-sm-center-center, .layout-align-gt-sm-start-center, .layout-align-gt-sm-end-center, .layout-align-gt-sm-space-between-center, .layout-align-gt-sm-space-around-center {
+    -webkit-align-items: center;
+        -ms-flex-align: center;
+            align-items: center; }
+  .layout-align-gt-sm-center-start, .layout-align-gt-sm-start-start, .layout-align-gt-sm-end-start, .layout-align-gt-sm-space-between-start, .layout-align-gt-sm-space-around-start {
+    -webkit-align-items: flex-start;
+        -ms-flex-align: start;
+            align-items: flex-start; }
+  .layout-align-gt-sm-center-end, .layout-align-gt-sm-start-end, .layout-align-gt-sm-end-end, .layout-align-gt-sm-space-between-end, .layout-align-gt-sm-space-around-end {
+    -webkit-align-items: flex-end;
+        -ms-flex-align: end;
+            align-items: flex-end; }
+  .layout-gt-sm {
+    box-sizing: border-box;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flexbox;
+    display: flex; }
+  .layout-gt-sm-column {
+    -webkit-flex-direction: column;
+        -ms-flex-direction: column;
+            flex-direction: column; }
+  .layout-gt-sm-row {
+    -webkit-flex-direction: row;
+        -ms-flex-direction: row;
+            flex-direction: row; }
+  .offset-gt-sm-5 {
+    margin-left: 5%; }
+  .offset-gt-sm-10 {
+    margin-left: 10%; }
+  .offset-gt-sm-15 {
+    margin-left: 15%; }
+  .offset-gt-sm-20 {
+    margin-left: 20%; }
+  .offset-gt-sm-25 {
+    margin-left: 25%; }
+  .offset-gt-sm-30 {
+    margin-left: 30%; }
+  .offset-gt-sm-35 {
+    margin-left: 35%; }
+  .offset-gt-sm-40 {
+    margin-left: 40%; }
+  .offset-gt-sm-45 {
+    margin-left: 45%; }
+  .offset-gt-sm-50 {
+    margin-left: 50%; }
+  .offset-gt-sm-55 {
+    margin-left: 55%; }
+  .offset-gt-sm-60 {
+    margin-left: 60%; }
+  .offset-gt-sm-65 {
+    margin-left: 65%; }
+  .offset-gt-sm-70 {
+    margin-left: 70%; }
+  .offset-gt-sm-75 {
+    margin-left: 75%; }
+  .offset-gt-sm-80 {
+    margin-left: 80%; }
+  .offset-gt-sm-85 {
+    margin-left: 85%; }
+  .offset-gt-sm-90 {
+    margin-left: 90%; }
+  .offset-gt-sm-95 {
+    margin-left: 95%; }
+  .offset-gt-sm-33, .offset-gt-sm-34 {
+    margin-left: 33.33%; }
+  .offset-gt-sm-66, .offset-gt-sm-67 {
+    margin-left: 66.66%; }
+  .flex-gt-sm {
+    box-sizing: border-box;
+    -webkit-flex: 1;
+        -ms-flex: 1;
+            flex: 1; }
+  .flex-gt-sm-0 {
+    -webkit-flex: 0 0 0%;
+        -ms-flex: 0 0 0%;
+            flex: 0 0 0%; }
+  .layout-row > .flex-gt-sm-0 {
+    max-width: 0%; }
+  .layout-column > .flex-gt-sm-0 {
+    max-height: 0%; }
+  .flex-gt-sm-5 {
+    -webkit-flex: 0 0 5%;
+        -ms-flex: 0 0 5%;
+            flex: 0 0 5%; }
+  .layout-row > .flex-gt-sm-5 {
+    max-width: 5%; }
+  .layout-column > .flex-gt-sm-5 {
+    max-height: 5%; }
+  .flex-gt-sm-10 {
+    -webkit-flex: 0 0 10%;
+        -ms-flex: 0 0 10%;
+            flex: 0 0 10%; }
+  .layout-row > .flex-gt-sm-10 {
+    max-width: 10%; }
+  .layout-column > .flex-gt-sm-10 {
+    max-height: 10%; }
+  .flex-gt-sm-15 {
+    -webkit-flex: 0 0 15%;
+        -ms-flex: 0 0 15%;
+            flex: 0 0 15%; }
+  .layout-row > .flex-gt-sm-15 {
+    max-width: 15%; }
+  .layout-column > .flex-gt-sm-15 {
+    max-height: 15%; }
+  .flex-gt-sm-20 {
+    -webkit-flex: 0 0 20%;
+        -ms-flex: 0 0 20%;
+            flex: 0 0 20%; }
+  .layout-row > .flex-gt-sm-20 {
+    max-width: 20%; }
+  .layout-column > .flex-gt-sm-20 {
+    max-height: 20%; }
+  .flex-gt-sm-25 {
+    -webkit-flex: 0 0 25%;
+        -ms-flex: 0 0 25%;
+            flex: 0 0 25%; }
+  .layout-row > .flex-gt-sm-25 {
+    max-width: 25%; }
+  .layout-column > .flex-gt-sm-25 {
+    max-height: 25%; }
+  .flex-gt-sm-30 {
+    -webkit-flex: 0 0 30%;
+        -ms-flex: 0 0 30%;
+            flex: 0 0 30%; }
+  .layout-row > .flex-gt-sm-30 {
+    max-width: 30%; }
+  .layout-column > .flex-gt-sm-30 {
+    max-height: 30%; }
+  .flex-gt-sm-35 {
+    -webkit-flex: 0 0 35%;
+        -ms-flex: 0 0 35%;
+            flex: 0 0 35%; }
+  .layout-row > .flex-gt-sm-35 {
+    max-width: 35%; }
+  .layout-column > .flex-gt-sm-35 {
+    max-height: 35%; }
+  .flex-gt-sm-40 {
+    -webkit-flex: 0 0 40%;
+        -ms-flex: 0 0 40%;
+            flex: 0 0 40%; }
+  .layout-row > .flex-gt-sm-40 {
+    max-width: 40%; }
+  .layout-column > .flex-gt-sm-40 {
+    max-height: 40%; }
+  .flex-gt-sm-45 {
+    -webkit-flex: 0 0 45%;
+        -ms-flex: 0 0 45%;
+            flex: 0 0 45%; }
+  .layout-row > .flex-gt-sm-45 {
+    max-width: 45%; }
+  .layout-column > .flex-gt-sm-45 {
+    max-height: 45%; }
+  .flex-gt-sm-50 {
+    -webkit-flex: 0 0 50%;
+        -ms-flex: 0 0 50%;
+            flex: 0 0 50%; }
+  .layout-row > .flex-gt-sm-50 {
+    max-width: 50%; }
+  .layout-column > .flex-gt-sm-50 {
+    max-height: 50%; }
+  .flex-gt-sm-55 {
+    -webkit-flex: 0 0 55%;
+        -ms-flex: 0 0 55%;
+            flex: 0 0 55%; }
+  .layout-row > .flex-gt-sm-55 {
+    max-width: 55%; }
+  .layout-column > .flex-gt-sm-55 {
+    max-height: 55%; }
+  .flex-gt-sm-60 {
+    -webkit-flex: 0 0 60%;
+        -ms-flex: 0 0 60%;
+            flex: 0 0 60%; }
+  .layout-row > .flex-gt-sm-60 {
+    max-width: 60%; }
+  .layout-column > .flex-gt-sm-60 {
+    max-height: 60%; }
+  .flex-gt-sm-65 {
+    -webkit-flex: 0 0 65%;
+        -ms-flex: 0 0 65%;
+            flex: 0 0 65%; }
+  .layout-row > .flex-gt-sm-65 {
+    max-width: 65%; }
+  .layout-column > .flex-gt-sm-65 {
+    max-height: 65%; }
+  .flex-gt-sm-70 {
+    -webkit-flex: 0 0 70%;
+        -ms-flex: 0 0 70%;
+            flex: 0 0 70%; }
+  .layout-row > .flex-gt-sm-70 {
+    max-width: 70%; }
+  .layout-column > .flex-gt-sm-70 {
+    max-height: 70%; }
+  .flex-gt-sm-75 {
+    -webkit-flex: 0 0 75%;
+        -ms-flex: 0 0 75%;
+            flex: 0 0 75%; }
+  .layout-row > .flex-gt-sm-75 {
+    max-width: 75%; }
+  .layout-column > .flex-gt-sm-75 {
+    max-height: 75%; }
+  .flex-gt-sm-80 {
+    -webkit-flex: 0 0 80%;
+        -ms-flex: 0 0 80%;
+            flex: 0 0 80%; }
+  .layout-row > .flex-gt-sm-80 {
+    max-width: 80%; }
+  .layout-column > .flex-gt-sm-80 {
+    max-height: 80%; }
+  .flex-gt-sm-85 {
+    -webkit-flex: 0 0 85%;
+        -ms-flex: 0 0 85%;
+            flex: 0 0 85%; }
+  .layout-row > .flex-gt-sm-85 {
+    max-width: 85%; }
+  .layout-column > .flex-gt-sm-85 {
+    max-height: 85%; }
+  .flex-gt-sm-90 {
+    -webkit-flex: 0 0 90%;
+        -ms-flex: 0 0 90%;
+            flex: 0 0 90%; }
+  .layout-row > .flex-gt-sm-90 {
+    max-width: 90%; }
+  .layout-column > .flex-gt-sm-90 {
+    max-height: 90%; }
+  .flex-gt-sm-95 {
+    -webkit-flex: 0 0 95%;
+        -ms-flex: 0 0 95%;
+            flex: 0 0 95%; }
+  .layout-row > .flex-gt-sm-95 {
+    max-width: 95%; }
+  .layout-column > .flex-gt-sm-95 {
+    max-height: 95%; }
+  .flex-gt-sm-100 {
+    -webkit-flex: 0 0 100%;
+        -ms-flex: 0 0 100%;
+            flex: 0 0 100%; }
+  .layout-row > .flex-gt-sm-100 {
+    max-width: 100%; }
+  .layout-column > .flex-gt-sm-100 {
+    max-height: 100%; }
+  .flex-gt-sm-33, .flex-gt-sm-34 {
+    -webkit-flex: 0 0 33.33%;
+        -ms-flex: 0 0 33.33%;
+            flex: 0 0 33.33%; }
+  .flex-gt-sm-66, .flex-gt-sm-67 {
+    -webkit-flex: 0 0 66.66%;
+        -ms-flex: 0 0 66.66%;
+            flex: 0 0 66.66%; }
+  .layout-row > .flex-gt-sm-33, .layout-row > .flex-gt-sm-34 {
+    max-width: 33.33%; }
+  .layout-row > .flex-gt-sm-66, .layout-row > .flex-gt-sm-67 {
+    max-width: 66.66%; }
+  .layout-column > .flex-gt-sm-33, .layout-column > .flex-gt-sm-34 {
+    max-height: 33.33%; }
+  .layout-column > .flex-gt-sm-66, .layout-column > .flex-gt-sm-67 {
+    max-height: 66.66%; } }
+
+@media (min-width: 600px) and (max-width: 959px) {
+  .hide:not(.show-gt-sm):not(.show-md):not(.show), .hide-gt-sm:not(.show-gt-sm):not(.show-md):not(.show) {
+    display: none; }
+  .hide-md:not(.show-md):not(.show) {
+    display: none; }
+  .flex-order-md-0 {
+    -webkit-order: 0;
+        -ms-flex-order: 0;
+            order: 0; }
+  .flex-order-md-1 {
+    -webkit-order: 1;
+        -ms-flex-order: 1;
+            order: 1; }
+  .flex-order-md-2 {
+    -webkit-order: 2;
+        -ms-flex-order: 2;
+            order: 2; }
+  .flex-order-md-3 {
+    -webkit-order: 3;
+        -ms-flex-order: 3;
+            order: 3; }
+  .flex-order-md-4 {
+    -webkit-order: 4;
+        -ms-flex-order: 4;
+            order: 4; }
+  .flex-order-md-5 {
+    -webkit-order: 5;
+        -ms-flex-order: 5;
+            order: 5; }
+  .flex-order-md-6 {
+    -webkit-order: 6;
+        -ms-flex-order: 6;
+            order: 6; }
+  .flex-order-md-7 {
+    -webkit-order: 7;
+        -ms-flex-order: 7;
+            order: 7; }
+  .flex-order-md-8 {
+    -webkit-order: 8;
+        -ms-flex-order: 8;
+            order: 8; }
+  .flex-order-md-9 {
+    -webkit-order: 9;
+        -ms-flex-order: 9;
+            order: 9; }
+  .layout-align-md-center, .layout-align-md-center-center, .layout-align-md-center-start, .layout-align-md-center-end {
+    -webkit-justify-content: center;
+        -ms-flex-pack: center;
+            justify-content: center; }
+  .layout-align-md-end, .layout-align-md-end-center, .layout-align-md-end-start, .layout-align-md-end-end {
+    -webkit-justify-content: flex-end;
+        -ms-flex-pack: end;
+            justify-content: flex-end; }
+  .layout-align-md-space-around, .layout-align-md-space-around-center, .layout-align-md-space-around-start, .layout-align-md-space-around-end {
+    -webkit-justify-content: space-around;
+        -ms-flex-pack: distribute;
+            justify-content: space-around; }
+  .layout-align-md-space-between, .layout-align-md-space-between-center, .layout-align-md-space-between-start, .layout-align-md-space-between-end {
+    -webkit-justify-content: space-between;
+        -ms-flex-pack: justify;
+            justify-content: space-between; }
+  .layout-align-md-center-center, .layout-align-md-start-center, .layout-align-md-end-center, .layout-align-md-space-between-center, .layout-align-md-space-around-center {
+    -webkit-align-items: center;
+        -ms-flex-align: center;
+            align-items: center; }
+  .layout-align-md-center-start, .layout-align-md-start-start, .layout-align-md-end-start, .layout-align-md-space-between-start, .layout-align-md-space-around-start {
+    -webkit-align-items: flex-start;
+        -ms-flex-align: start;
+            align-items: flex-start; }
+  .layout-align-md-center-end, .layout-align-md-start-end, .layout-align-md-end-end, .layout-align-md-space-between-end, .layout-align-md-space-around-end {
+    -webkit-align-items: flex-end;
+        -ms-flex-align: end;
+            align-items: flex-end; }
+  .layout-md {
+    box-sizing: border-box;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flexbox;
+    display: flex; }
+  .layout-md-column {
+    -webkit-flex-direction: column;
+        -ms-flex-direction: column;
+            flex-direction: column; }
+  .layout-md-row {
+    -webkit-flex-direction: row;
+        -ms-flex-direction: row;
+            flex-direction: row; }
+  .offset-md-5 {
+    margin-left: 5%; }
+  .offset-md-10 {
+    margin-left: 10%; }
+  .offset-md-15 {
+    margin-left: 15%; }
+  .offset-md-20 {
+    margin-left: 20%; }
+  .offset-md-25 {
+    margin-left: 25%; }
+  .offset-md-30 {
+    margin-left: 30%; }
+  .offset-md-35 {
+    margin-left: 35%; }
+  .offset-md-40 {
+    margin-left: 40%; }
+  .offset-md-45 {
+    margin-left: 45%; }
+  .offset-md-50 {
+    margin-left: 50%; }
+  .offset-md-55 {
+    margin-left: 55%; }
+  .offset-md-60 {
+    margin-left: 60%; }
+  .offset-md-65 {
+    margin-left: 65%; }
+  .offset-md-70 {
+    margin-left: 70%; }
+  .offset-md-75 {
+    margin-left: 75%; }
+  .offset-md-80 {
+    margin-left: 80%; }
+  .offset-md-85 {
+    margin-left: 85%; }
+  .offset-md-90 {
+    margin-left: 90%; }
+  .offset-md-95 {
+    margin-left: 95%; }
+  .offset-md-33, .offset-md-34 {
+    margin-left: 33.33%; }
+  .offset-md-66, .offset-md-67 {
+    margin-left: 66.66%; }
+  .flex-md {
+    box-sizing: border-box;
+    -webkit-flex: 1;
+        -ms-flex: 1;
+            flex: 1; }
+  .flex-md-0 {
+    -webkit-flex: 0 0 0%;
+        -ms-flex: 0 0 0%;
+            flex: 0 0 0%; }
+  .layout-row > .flex-md-0 {
+    max-width: 0%; }
+  .layout-column > .flex-md-0 {
+    max-height: 0%; }
+  .flex-md-5 {
+    -webkit-flex: 0 0 5%;
+        -ms-flex: 0 0 5%;
+            flex: 0 0 5%; }
+  .layout-row > .flex-md-5 {
+    max-width: 5%; }
+  .layout-column > .flex-md-5 {
+    max-height: 5%; }
+  .flex-md-10 {
+    -webkit-flex: 0 0 10%;
+        -ms-flex: 0 0 10%;
+            flex: 0 0 10%; }
+  .layout-row > .flex-md-10 {
+    max-width: 10%; }
+  .layout-column > .flex-md-10 {
+    max-height: 10%; }
+  .flex-md-15 {
+    -webkit-flex: 0 0 15%;
+        -ms-flex: 0 0 15%;
+            flex: 0 0 15%; }
+  .layout-row > .flex-md-15 {
+    max-width: 15%; }
+  .layout-column > .flex-md-15 {
+    max-height: 15%; }
+  .flex-md-20 {
+    -webkit-flex: 0 0 20%;
+        -ms-flex: 0 0 20%;
+            flex: 0 0 20%; }
+  .layout-row > .flex-md-20 {
+    max-width: 20%; }
+  .layout-column > .flex-md-20 {
+    max-height: 20%; }
+  .flex-md-25 {
+    -webkit-flex: 0 0 25%;
+        -ms-flex: 0 0 25%;
+            flex: 0 0 25%; }
+  .layout-row > .flex-md-25 {
+    max-width: 25%; }
+  .layout-column > .flex-md-25 {
+    max-height: 25%; }
+  .flex-md-30 {
+    -webkit-flex: 0 0 30%;
+        -ms-flex: 0 0 30%;
+            flex: 0 0 30%; }
+  .layout-row > .flex-md-30 {
+    max-width: 30%; }
+  .layout-column > .flex-md-30 {
+    max-height: 30%; }
+  .flex-md-35 {
+    -webkit-flex: 0 0 35%;
+        -ms-flex: 0 0 35%;
+            flex: 0 0 35%; }
+  .layout-row > .flex-md-35 {
+    max-width: 35%; }
+  .layout-column > .flex-md-35 {
+    max-height: 35%; }
+  .flex-md-40 {
+    -webkit-flex: 0 0 40%;
+        -ms-flex: 0 0 40%;
+            flex: 0 0 40%; }
+  .layout-row > .flex-md-40 {
+    max-width: 40%; }
+  .layout-column > .flex-md-40 {
+    max-height: 40%; }
+  .flex-md-45 {
+    -webkit-flex: 0 0 45%;
+        -ms-flex: 0 0 45%;
+            flex: 0 0 45%; }
+  .layout-row > .flex-md-45 {
+    max-width: 45%; }
+  .layout-column > .flex-md-45 {
+    max-height: 45%; }
+  .flex-md-50 {
+    -webkit-flex: 0 0 50%;
+        -ms-flex: 0 0 50%;
+            flex: 0 0 50%; }
+  .layout-row > .flex-md-50 {
+    max-width: 50%; }
+  .layout-column > .flex-md-50 {
+    max-height: 50%; }
+  .flex-md-55 {
+    -webkit-flex: 0 0 55%;
+        -ms-flex: 0 0 55%;
+            flex: 0 0 55%; }
+  .layout-row > .flex-md-55 {
+    max-width: 55%; }
+  .layout-column > .flex-md-55 {
+    max-height: 55%; }
+  .flex-md-60 {
+    -webkit-flex: 0 0 60%;
+        -ms-flex: 0 0 60%;
+            flex: 0 0 60%; }
+  .layout-row > .flex-md-60 {
+    max-width: 60%; }
+  .layout-column > .flex-md-60 {
+    max-height: 60%; }
+  .flex-md-65 {
+    -webkit-flex: 0 0 65%;
+        -ms-flex: 0 0 65%;
+            flex: 0 0 65%; }
+  .layout-row > .flex-md-65 {
+    max-width: 65%; }
+  .layout-column > .flex-md-65 {
+    max-height: 65%; }
+  .flex-md-70 {
+    -webkit-flex: 0 0 70%;
+        -ms-flex: 0 0 70%;
+            flex: 0 0 70%; }
+  .layout-row > .flex-md-70 {
+    max-width: 70%; }
+  .layout-column > .flex-md-70 {
+    max-height: 70%; }
+  .flex-md-75 {
+    -webkit-flex: 0 0 75%;
+        -ms-flex: 0 0 75%;
+            flex: 0 0 75%; }
+  .layout-row > .flex-md-75 {
+    max-width: 75%; }
+  .layout-column > .flex-md-75 {
+    max-height: 75%; }
+  .flex-md-80 {
+    -webkit-flex: 0 0 80%;
+        -ms-flex: 0 0 80%;
+            flex: 0 0 80%; }
+  .layout-row > .flex-md-80 {
+    max-width: 80%; }
+  .layout-column > .flex-md-80 {
+    max-height: 80%; }
+  .flex-md-85 {
+    -webkit-flex: 0 0 85%;
+        -ms-flex: 0 0 85%;
+            flex: 0 0 85%; }
+  .layout-row > .flex-md-85 {
+    max-width: 85%; }
+  .layout-column > .flex-md-85 {
+    max-height: 85%; }
+  .flex-md-90 {
+    -webkit-flex: 0 0 90%;
+        -ms-flex: 0 0 90%;
+            flex: 0 0 90%; }
+  .layout-row > .flex-md-90 {
+    max-width: 90%; }
+  .layout-column > .flex-md-90 {
+    max-height: 90%; }
+  .flex-md-95 {
+    -webkit-flex: 0 0 95%;
+        -ms-flex: 0 0 95%;
+            flex: 0 0 95%; }
+  .layout-row > .flex-md-95 {
+    max-width: 95%; }
+  .layout-column > .flex-md-95 {
+    max-height: 95%; }
+  .flex-md-100 {
+    -webkit-flex: 0 0 100%;
+        -ms-flex: 0 0 100%;
+            flex: 0 0 100%; }
+  .layout-row > .flex-md-100 {
+    max-width: 100%; }
+  .layout-column > .flex-md-100 {
+    max-height: 100%; }
+  .flex-md-33, .flex-md-34 {
+    -webkit-flex: 0 0 33.33%;
+        -ms-flex: 0 0 33.33%;
+            flex: 0 0 33.33%; }
+  .flex-md-66, .flex-md-67 {
+    -webkit-flex: 0 0 66.66%;
+        -ms-flex: 0 0 66.66%;
+            flex: 0 0 66.66%; }
+  .layout-row > .flex-md-33, .layout-row > .flex-md-34 {
+    max-width: 33.33%; }
+  .layout-row > .flex-md-66, .layout-row > .flex-md-67 {
+    max-width: 66.66%; }
+  .layout-column > .flex-md-33, .layout-column > .flex-md-34 {
+    max-height: 33.33%; }
+  .layout-column > .flex-md-66, .layout-column > .flex-md-67 {
+    max-height: 66.66%; } }
+
+@media (min-width: 960px) {
+  .flex-order-gt-md-0 {
+    -webkit-order: 0;
+        -ms-flex-order: 0;
+            order: 0; }
+  .flex-order-gt-md-1 {
+    -webkit-order: 1;
+        -ms-flex-order: 1;
+            order: 1; }
+  .flex-order-gt-md-2 {
+    -webkit-order: 2;
+        -ms-flex-order: 2;
+            order: 2; }
+  .flex-order-gt-md-3 {
+    -webkit-order: 3;
+        -ms-flex-order: 3;
+            order: 3; }
+  .flex-order-gt-md-4 {
+    -webkit-order: 4;
+        -ms-flex-order: 4;
+            order: 4; }
+  .flex-order-gt-md-5 {
+    -webkit-order: 5;
+        -ms-flex-order: 5;
+            order: 5; }
+  .flex-order-gt-md-6 {
+    -webkit-order: 6;
+        -ms-flex-order: 6;
+            order: 6; }
+  .flex-order-gt-md-7 {
+    -webkit-order: 7;
+        -ms-flex-order: 7;
+            order: 7; }
+  .flex-order-gt-md-8 {
+    -webkit-order: 8;
+        -ms-flex-order: 8;
+            order: 8; }
+  .flex-order-gt-md-9 {
+    -webkit-order: 9;
+        -ms-flex-order: 9;
+            order: 9; }
+  .layout-align-gt-md-center, .layout-align-gt-md-center-center, .layout-align-gt-md-center-start, .layout-align-gt-md-center-end {
+    -webkit-justify-content: center;
+        -ms-flex-pack: center;
+            justify-content: center; }
+  .layout-align-gt-md-end, .layout-align-gt-md-end-center, .layout-align-gt-md-end-start, .layout-align-gt-md-end-end {
+    -webkit-justify-content: flex-end;
+        -ms-flex-pack: end;
+            justify-content: flex-end; }
+  .layout-align-gt-md-space-around, .layout-align-gt-md-space-around-center, .layout-align-gt-md-space-around-start, .layout-align-gt-md-space-around-end {
+    -webkit-justify-content: space-around;
+        -ms-flex-pack: distribute;
+            justify-content: space-around; }
+  .layout-align-gt-md-space-between, .layout-align-gt-md-space-between-center, .layout-align-gt-md-space-between-start, .layout-align-gt-md-space-between-end {
+    -webkit-justify-content: space-between;
+        -ms-flex-pack: justify;
+            justify-content: space-between; }
+  .layout-align-gt-md-center-center, .layout-align-gt-md-start-center, .layout-align-gt-md-end-center, .layout-align-gt-md-space-between-center, .layout-align-gt-md-space-around-center {
+    -webkit-align-items: center;
+        -ms-flex-align: center;
+            align-items: center; }
+  .layout-align-gt-md-center-start, .layout-align-gt-md-start-start, .layout-align-gt-md-end-start, .layout-align-gt-md-space-between-start, .layout-align-gt-md-space-around-start {
+    -webkit-align-items: flex-start;
+        -ms-flex-align: start;
+            align-items: flex-start; }
+  .layout-align-gt-md-center-end, .layout-align-gt-md-start-end, .layout-align-gt-md-end-end, .layout-align-gt-md-space-between-end, .layout-align-gt-md-space-around-end {
+    -webkit-align-items: flex-end;
+        -ms-flex-align: end;
+            align-items: flex-end; }
+  .layout-gt-md {
+    box-sizing: border-box;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flexbox;
+    display: flex; }
+  .layout-gt-md-column {
+    -webkit-flex-direction: column;
+        -ms-flex-direction: column;
+            flex-direction: column; }
+  .layout-gt-md-row {
+    -webkit-flex-direction: row;
+        -ms-flex-direction: row;
+            flex-direction: row; }
+  .offset-gt-md-5 {
+    margin-left: 5%; }
+  .offset-gt-md-10 {
+    margin-left: 10%; }
+  .offset-gt-md-15 {
+    margin-left: 15%; }
+  .offset-gt-md-20 {
+    margin-left: 20%; }
+  .offset-gt-md-25 {
+    margin-left: 25%; }
+  .offset-gt-md-30 {
+    margin-left: 30%; }
+  .offset-gt-md-35 {
+    margin-left: 35%; }
+  .offset-gt-md-40 {
+    margin-left: 40%; }
+  .offset-gt-md-45 {
+    margin-left: 45%; }
+  .offset-gt-md-50 {
+    margin-left: 50%; }
+  .offset-gt-md-55 {
+    margin-left: 55%; }
+  .offset-gt-md-60 {
+    margin-left: 60%; }
+  .offset-gt-md-65 {
+    margin-left: 65%; }
+  .offset-gt-md-70 {
+    margin-left: 70%; }
+  .offset-gt-md-75 {
+    margin-left: 75%; }
+  .offset-gt-md-80 {
+    margin-left: 80%; }
+  .offset-gt-md-85 {
+    margin-left: 85%; }
+  .offset-gt-md-90 {
+    margin-left: 90%; }
+  .offset-gt-md-95 {
+    margin-left: 95%; }
+  .offset-gt-md-33, .offset-gt-md-34 {
+    margin-left: 33.33%; }
+  .offset-gt-md-66, .offset-gt-md-67 {
+    margin-left: 66.66%; }
+  .flex-gt-md {
+    box-sizing: border-box;
+    -webkit-flex: 1;
+        -ms-flex: 1;
+            flex: 1; }
+  .flex-gt-md-0 {
+    -webkit-flex: 0 0 0%;
+        -ms-flex: 0 0 0%;
+            flex: 0 0 0%; }
+  .layout-row > .flex-gt-md-0 {
+    max-width: 0%; }
+  .layout-column > .flex-gt-md-0 {
+    max-height: 0%; }
+  .flex-gt-md-5 {
+    -webkit-flex: 0 0 5%;
+        -ms-flex: 0 0 5%;
+            flex: 0 0 5%; }
+  .layout-row > .flex-gt-md-5 {
+    max-width: 5%; }
+  .layout-column > .flex-gt-md-5 {
+    max-height: 5%; }
+  .flex-gt-md-10 {
+    -webkit-flex: 0 0 10%;
+        -ms-flex: 0 0 10%;
+            flex: 0 0 10%; }
+  .layout-row > .flex-gt-md-10 {
+    max-width: 10%; }
+  .layout-column > .flex-gt-md-10 {
+    max-height: 10%; }
+  .flex-gt-md-15 {
+    -webkit-flex: 0 0 15%;
+        -ms-flex: 0 0 15%;
+            flex: 0 0 15%; }
+  .layout-row > .flex-gt-md-15 {
+    max-width: 15%; }
+  .layout-column > .flex-gt-md-15 {
+    max-height: 15%; }
+  .flex-gt-md-20 {
+    -webkit-flex: 0 0 20%;
+        -ms-flex: 0 0 20%;
+            flex: 0 0 20%; }
+  .layout-row > .flex-gt-md-20 {
+    max-width: 20%; }
+  .layout-column > .flex-gt-md-20 {
+    max-height: 20%; }
+  .flex-gt-md-25 {
+    -webkit-flex: 0 0 25%;
+        -ms-flex: 0 0 25%;
+            flex: 0 0 25%; }
+  .layout-row > .flex-gt-md-25 {
+    max-width: 25%; }
+  .layout-column > .flex-gt-md-25 {
+    max-height: 25%; }
+  .flex-gt-md-30 {
+    -webkit-flex: 0 0 30%;
+        -ms-flex: 0 0 30%;
+            flex: 0 0 30%; }
+  .layout-row > .flex-gt-md-30 {
+    max-width: 30%; }
+  .layout-column > .flex-gt-md-30 {
+    max-height: 30%; }
+  .flex-gt-md-35 {
+    -webkit-flex: 0 0 35%;
+        -ms-flex: 0 0 35%;
+            flex: 0 0 35%; }
+  .layout-row > .flex-gt-md-35 {
+    max-width: 35%; }
+  .layout-column > .flex-gt-md-35 {
+    max-height: 35%; }
+  .flex-gt-md-40 {
+    -webkit-flex: 0 0 40%;
+        -ms-flex: 0 0 40%;
+            flex: 0 0 40%; }
+  .layout-row > .flex-gt-md-40 {
+    max-width: 40%; }
+  .layout-column > .flex-gt-md-40 {
+    max-height: 40%; }
+  .flex-gt-md-45 {
+    -webkit-flex: 0 0 45%;
+        -ms-flex: 0 0 45%;
+            flex: 0 0 45%; }
+  .layout-row > .flex-gt-md-45 {
+    max-width: 45%; }
+  .layout-column > .flex-gt-md-45 {
+    max-height: 45%; }
+  .flex-gt-md-50 {
+    -webkit-flex: 0 0 50%;
+        -ms-flex: 0 0 50%;
+            flex: 0 0 50%; }
+  .layout-row > .flex-gt-md-50 {
+    max-width: 50%; }
+  .layout-column > .flex-gt-md-50 {
+    max-height: 50%; }
+  .flex-gt-md-55 {
+    -webkit-flex: 0 0 55%;
+        -ms-flex: 0 0 55%;
+            flex: 0 0 55%; }
+  .layout-row > .flex-gt-md-55 {
+    max-width: 55%; }
+  .layout-column > .flex-gt-md-55 {
+    max-height: 55%; }
+  .flex-gt-md-60 {
+    -webkit-flex: 0 0 60%;
+        -ms-flex: 0 0 60%;
+            flex: 0 0 60%; }
+  .layout-row > .flex-gt-md-60 {
+    max-width: 60%; }
+  .layout-column > .flex-gt-md-60 {
+    max-height: 60%; }
+  .flex-gt-md-65 {
+    -webkit-flex: 0 0 65%;
+        -ms-flex: 0 0 65%;
+            flex: 0 0 65%; }
+  .layout-row > .flex-gt-md-65 {
+    max-width: 65%; }
+  .layout-column > .flex-gt-md-65 {
+    max-height: 65%; }
+  .flex-gt-md-70 {
+    -webkit-flex: 0 0 70%;
+        -ms-flex: 0 0 70%;
+            flex: 0 0 70%; }
+  .layout-row > .flex-gt-md-70 {
+    max-width: 70%; }
+  .layout-column > .flex-gt-md-70 {
+    max-height: 70%; }
+  .flex-gt-md-75 {
+    -webkit-flex: 0 0 75%;
+        -ms-flex: 0 0 75%;
+            flex: 0 0 75%; }
+  .layout-row > .flex-gt-md-75 {
+    max-width: 75%; }
+  .layout-column > .flex-gt-md-75 {
+    max-height: 75%; }
+  .flex-gt-md-80 {
+    -webkit-flex: 0 0 80%;
+        -ms-flex: 0 0 80%;
+            flex: 0 0 80%; }
+  .layout-row > .flex-gt-md-80 {
+    max-width: 80%; }
+  .layout-column > .flex-gt-md-80 {
+    max-height: 80%; }
+  .flex-gt-md-85 {
+    -webkit-flex: 0 0 85%;
+        -ms-flex: 0 0 85%;
+            flex: 0 0 85%; }
+  .layout-row > .flex-gt-md-85 {
+    max-width: 85%; }
+  .layout-column > .flex-gt-md-85 {
+    max-height: 85%; }
+  .flex-gt-md-90 {
+    -webkit-flex: 0 0 90%;
+        -ms-flex: 0 0 90%;
+            flex: 0 0 90%; }
+  .layout-row > .flex-gt-md-90 {
+    max-width: 90%; }
+  .layout-column > .flex-gt-md-90 {
+    max-height: 90%; }
+  .flex-gt-md-95 {
+    -webkit-flex: 0 0 95%;
+        -ms-flex: 0 0 95%;
+            flex: 0 0 95%; }
+  .layout-row > .flex-gt-md-95 {
+    max-width: 95%; }
+  .layout-column > .flex-gt-md-95 {
+    max-height: 95%; }
+  .flex-gt-md-100 {
+    -webkit-flex: 0 0 100%;
+        -ms-flex: 0 0 100%;
+            flex: 0 0 100%; }
+  .layout-row > .flex-gt-md-100 {
+    max-width: 100%; }
+  .layout-column > .flex-gt-md-100 {
+    max-height: 100%; }
+  .flex-gt-md-33, .flex-gt-md-34 {
+    -webkit-flex: 0 0 33.33%;
+        -ms-flex: 0 0 33.33%;
+            flex: 0 0 33.33%; }
+  .flex-gt-md-66, .flex-gt-md-67 {
+    -webkit-flex: 0 0 66.66%;
+        -ms-flex: 0 0 66.66%;
+            flex: 0 0 66.66%; }
+  .layout-row > .flex-gt-md-33, .layout-row > .flex-gt-md-34 {
+    max-width: 33.33%; }
+  .layout-row > .flex-gt-md-66, .layout-row > .flex-gt-md-67 {
+    max-width: 66.66%; }
+  .layout-column > .flex-gt-md-33, .layout-column > .flex-gt-md-34 {
+    max-height: 33.33%; }
+  .layout-column > .flex-gt-md-66, .layout-column > .flex-gt-md-67 {
+    max-height: 66.66%; } }
+
+@media (min-width: 960px) and (max-width: 1199px) {
+  .hide:not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show), .hide-gt-sm:not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show), .hide-gt-md:not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show) {
+    display: none; }
+  .hide-lg:not(.show-lg):not(.show) {
+    display: none; }
+  .flex-order-lg-0 {
+    -webkit-order: 0;
+        -ms-flex-order: 0;
+            order: 0; }
+  .flex-order-lg-1 {
+    -webkit-order: 1;
+        -ms-flex-order: 1;
+            order: 1; }
+  .flex-order-lg-2 {
+    -webkit-order: 2;
+        -ms-flex-order: 2;
+            order: 2; }
+  .flex-order-lg-3 {
+    -webkit-order: 3;
+        -ms-flex-order: 3;
+            order: 3; }
+  .flex-order-lg-4 {
+    -webkit-order: 4;
+        -ms-flex-order: 4;
+            order: 4; }
+  .flex-order-lg-5 {
+    -webkit-order: 5;
+        -ms-flex-order: 5;
+            order: 5; }
+  .flex-order-lg-6 {
+    -webkit-order: 6;
+        -ms-flex-order: 6;
+            order: 6; }
+  .flex-order-lg-7 {
+    -webkit-order: 7;
+        -ms-flex-order: 7;
+            order: 7; }
+  .flex-order-lg-8 {
+    -webkit-order: 8;
+        -ms-flex-order: 8;
+            order: 8; }
+  .flex-order-lg-9 {
+    -webkit-order: 9;
+        -ms-flex-order: 9;
+            order: 9; }
+  .layout-align-lg-center, .layout-align-lg-center-center, .layout-align-lg-center-start, .layout-align-lg-center-end {
+    -webkit-justify-content: center;
+        -ms-flex-pack: center;
+            justify-content: center; }
+  .layout-align-lg-end, .layout-align-lg-end-center, .layout-align-lg-end-start, .layout-align-lg-end-end {
+    -webkit-justify-content: flex-end;
+        -ms-flex-pack: end;
+            justify-content: flex-end; }
+  .layout-align-lg-space-around, .layout-align-lg-space-around-center, .layout-align-lg-space-around-start, .layout-align-lg-space-around-end {
+    -webkit-justify-content: space-around;
+        -ms-flex-pack: distribute;
+            justify-content: space-around; }
+  .layout-align-lg-space-between, .layout-align-lg-space-between-center, .layout-align-lg-space-between-start, .layout-align-lg-space-between-end {
+    -webkit-justify-content: space-between;
+        -ms-flex-pack: justify;
+            justify-content: space-between; }
+  .layout-align-lg-center-center, .layout-align-lg-start-center, .layout-align-lg-end-center, .layout-align-lg-space-between-center, .layout-align-lg-space-around-center {
+    -webkit-align-items: center;
+        -ms-flex-align: center;
+            align-items: center; }
+  .layout-align-lg-center-start, .layout-align-lg-start-start, .layout-align-lg-end-start, .layout-align-lg-space-between-start, .layout-align-lg-space-around-start {
+    -webkit-align-items: flex-start;
+        -ms-flex-align: start;
+            align-items: flex-start; }
+  .layout-align-lg-center-end, .layout-align-lg-start-end, .layout-align-lg-end-end, .layout-align-lg-space-between-end, .layout-align-lg-space-around-end {
+    -webkit-align-items: flex-end;
+        -ms-flex-align: end;
+            align-items: flex-end; }
+  .layout-lg {
+    box-sizing: border-box;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flexbox;
+    display: flex; }
+  .layout-lg-column {
+    -webkit-flex-direction: column;
+        -ms-flex-direction: column;
+            flex-direction: column; }
+  .layout-lg-row {
+    -webkit-flex-direction: row;
+        -ms-flex-direction: row;
+            flex-direction: row; }
+  .offset-lg-5 {
+    margin-left: 5%; }
+  .offset-lg-10 {
+    margin-left: 10%; }
+  .offset-lg-15 {
+    margin-left: 15%; }
+  .offset-lg-20 {
+    margin-left: 20%; }
+  .offset-lg-25 {
+    margin-left: 25%; }
+  .offset-lg-30 {
+    margin-left: 30%; }
+  .offset-lg-35 {
+    margin-left: 35%; }
+  .offset-lg-40 {
+    margin-left: 40%; }
+  .offset-lg-45 {
+    margin-left: 45%; }
+  .offset-lg-50 {
+    margin-left: 50%; }
+  .offset-lg-55 {
+    margin-left: 55%; }
+  .offset-lg-60 {
+    margin-left: 60%; }
+  .offset-lg-65 {
+    margin-left: 65%; }
+  .offset-lg-70 {
+    margin-left: 70%; }
+  .offset-lg-75 {
+    margin-left: 75%; }
+  .offset-lg-80 {
+    margin-left: 80%; }
+  .offset-lg-85 {
+    margin-left: 85%; }
+  .offset-lg-90 {
+    margin-left: 90%; }
+  .offset-lg-95 {
+    margin-left: 95%; }
+  .offset-lg-33, .offset-lg-34 {
+    margin-left: 33.33%; }
+  .offset-lg-66, .offset-lg-67 {
+    margin-left: 66.66%; }
+  .flex-lg {
+    box-sizing: border-box;
+    -webkit-flex: 1;
+        -ms-flex: 1;
+            flex: 1; }
+  .flex-lg-0 {
+    -webkit-flex: 0 0 0%;
+        -ms-flex: 0 0 0%;
+            flex: 0 0 0%; }
+  .layout-row > .flex-lg-0 {
+    max-width: 0%; }
+  .layout-column > .flex-lg-0 {
+    max-height: 0%; }
+  .flex-lg-5 {
+    -webkit-flex: 0 0 5%;
+        -ms-flex: 0 0 5%;
+            flex: 0 0 5%; }
+  .layout-row > .flex-lg-5 {
+    max-width: 5%; }
+  .layout-column > .flex-lg-5 {
+    max-height: 5%; }
+  .flex-lg-10 {
+    -webkit-flex: 0 0 10%;
+        -ms-flex: 0 0 10%;
+            flex: 0 0 10%; }
+  .layout-row > .flex-lg-10 {
+    max-width: 10%; }
+  .layout-column > .flex-lg-10 {
+    max-height: 10%; }
+  .flex-lg-15 {
+    -webkit-flex: 0 0 15%;
+        -ms-flex: 0 0 15%;
+            flex: 0 0 15%; }
+  .layout-row > .flex-lg-15 {
+    max-width: 15%; }
+  .layout-column > .flex-lg-15 {
+    max-height: 15%; }
+  .flex-lg-20 {
+    -webkit-flex: 0 0 20%;
+        -ms-flex: 0 0 20%;
+            flex: 0 0 20%; }
+  .layout-row > .flex-lg-20 {
+    max-width: 20%; }
+  .layout-column > .flex-lg-20 {
+    max-height: 20%; }
+  .flex-lg-25 {
+    -webkit-flex: 0 0 25%;
+        -ms-flex: 0 0 25%;
+            flex: 0 0 25%; }
+  .layout-row > .flex-lg-25 {
+    max-width: 25%; }
+  .layout-column > .flex-lg-25 {
+    max-height: 25%; }
+  .flex-lg-30 {
+    -webkit-flex: 0 0 30%;
+        -ms-flex: 0 0 30%;
+            flex: 0 0 30%; }
+  .layout-row > .flex-lg-30 {
+    max-width: 30%; }
+  .layout-column > .flex-lg-30 {
+    max-height: 30%; }
+  .flex-lg-35 {
+    -webkit-flex: 0 0 35%;
+        -ms-flex: 0 0 35%;
+            flex: 0 0 35%; }
+  .layout-row > .flex-lg-35 {
+    max-width: 35%; }
+  .layout-column > .flex-lg-35 {
+    max-height: 35%; }
+  .flex-lg-40 {
+    -webkit-flex: 0 0 40%;
+        -ms-flex: 0 0 40%;
+            flex: 0 0 40%; }
+  .layout-row > .flex-lg-40 {
+    max-width: 40%; }
+  .layout-column > .flex-lg-40 {
+    max-height: 40%; }
+  .flex-lg-45 {
+    -webkit-flex: 0 0 45%;
+        -ms-flex: 0 0 45%;
+            flex: 0 0 45%; }
+  .layout-row > .flex-lg-45 {
+    max-width: 45%; }
+  .layout-column > .flex-lg-45 {
+    max-height: 45%; }
+  .flex-lg-50 {
+    -webkit-flex: 0 0 50%;
+        -ms-flex: 0 0 50%;
+            flex: 0 0 50%; }
+  .layout-row > .flex-lg-50 {
+    max-width: 50%; }
+  .layout-column > .flex-lg-50 {
+    max-height: 50%; }
+  .flex-lg-55 {
+    -webkit-flex: 0 0 55%;
+        -ms-flex: 0 0 55%;
+            flex: 0 0 55%; }
+  .layout-row > .flex-lg-55 {
+    max-width: 55%; }
+  .layout-column > .flex-lg-55 {
+    max-height: 55%; }
+  .flex-lg-60 {
+    -webkit-flex: 0 0 60%;
+        -ms-flex: 0 0 60%;
+            flex: 0 0 60%; }
+  .layout-row > .flex-lg-60 {
+    max-width: 60%; }
+  .layout-column > .flex-lg-60 {
+    max-height: 60%; }
+  .flex-lg-65 {
+    -webkit-flex: 0 0 65%;
+        -ms-flex: 0 0 65%;
+            flex: 0 0 65%; }
+  .layout-row > .flex-lg-65 {
+    max-width: 65%; }
+  .layout-column > .flex-lg-65 {
+    max-height: 65%; }
+  .flex-lg-70 {
+    -webkit-flex: 0 0 70%;
+        -ms-flex: 0 0 70%;
+            flex: 0 0 70%; }
+  .layout-row > .flex-lg-70 {
+    max-width: 70%; }
+  .layout-column > .flex-lg-70 {
+    max-height: 70%; }
+  .flex-lg-75 {
+    -webkit-flex: 0 0 75%;
+        -ms-flex: 0 0 75%;
+            flex: 0 0 75%; }
+  .layout-row > .flex-lg-75 {
+    max-width: 75%; }
+  .layout-column > .flex-lg-75 {
+    max-height: 75%; }
+  .flex-lg-80 {
+    -webkit-flex: 0 0 80%;
+        -ms-flex: 0 0 80%;
+            flex: 0 0 80%; }
+  .layout-row > .flex-lg-80 {
+    max-width: 80%; }
+  .layout-column > .flex-lg-80 {
+    max-height: 80%; }
+  .flex-lg-85 {
+    -webkit-flex: 0 0 85%;
+        -ms-flex: 0 0 85%;
+            flex: 0 0 85%; }
+  .layout-row > .flex-lg-85 {
+    max-width: 85%; }
+  .layout-column > .flex-lg-85 {
+    max-height: 85%; }
+  .flex-lg-90 {
+    -webkit-flex: 0 0 90%;
+        -ms-flex: 0 0 90%;
+            flex: 0 0 90%; }
+  .layout-row > .flex-lg-90 {
+    max-width: 90%; }
+  .layout-column > .flex-lg-90 {
+    max-height: 90%; }
+  .flex-lg-95 {
+    -webkit-flex: 0 0 95%;
+        -ms-flex: 0 0 95%;
+            flex: 0 0 95%; }
+  .layout-row > .flex-lg-95 {
+    max-width: 95%; }
+  .layout-column > .flex-lg-95 {
+    max-height: 95%; }
+  .flex-lg-100 {
+    -webkit-flex: 0 0 100%;
+        -ms-flex: 0 0 100%;
+            flex: 0 0 100%; }
+  .layout-row > .flex-lg-100 {
+    max-width: 100%; }
+  .layout-column > .flex-lg-100 {
+    max-height: 100%; }
+  .flex-lg-33, .flex-lg-34 {
+    -webkit-flex: 0 0 33.33%;
+        -ms-flex: 0 0 33.33%;
+            flex: 0 0 33.33%; }
+  .flex-lg-66, .flex-lg-67 {
+    -webkit-flex: 0 0 66.66%;
+        -ms-flex: 0 0 66.66%;
+            flex: 0 0 66.66%; }
+  .layout-row > .flex-lg-33, .layout-row > .flex-lg-34 {
+    max-width: 33.33%; }
+  .layout-row > .flex-lg-66, .layout-row > .flex-lg-67 {
+    max-width: 66.66%; }
+  .layout-column > .flex-lg-33, .layout-column > .flex-lg-34 {
+    max-height: 33.33%; }
+  .layout-column > .flex-lg-66, .layout-column > .flex-lg-67 {
+    max-height: 66.66%; } }
+
+@media (min-width: 1200px) {
+  .hide-gt-sm:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show), .hide-gt-md:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show), .hide-gt-lg:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show), .hide:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show) {
+    display: none; }
+  .flex-order-gt-lg-0 {
+    -webkit-order: 0;
+        -ms-flex-order: 0;
+            order: 0; }
+  .flex-order-gt-lg-1 {
+    -webkit-order: 1;
+        -ms-flex-order: 1;
+            order: 1; }
+  .flex-order-gt-lg-2 {
+    -webkit-order: 2;
+        -ms-flex-order: 2;
+            order: 2; }
+  .flex-order-gt-lg-3 {
+    -webkit-order: 3;
+        -ms-flex-order: 3;
+            order: 3; }
+  .flex-order-gt-lg-4 {
+    -webkit-order: 4;
+        -ms-flex-order: 4;
+            order: 4; }
+  .flex-order-gt-lg-5 {
+    -webkit-order: 5;
+        -ms-flex-order: 5;
+            order: 5; }
+  .flex-order-gt-lg-6 {
+    -webkit-order: 6;
+        -ms-flex-order: 6;
+            order: 6; }
+  .flex-order-gt-lg-7 {
+    -webkit-order: 7;
+        -ms-flex-order: 7;
+            order: 7; }
+  .flex-order-gt-lg-8 {
+    -webkit-order: 8;
+        -ms-flex-order: 8;
+            order: 8; }
+  .flex-order-gt-lg-9 {
+    -webkit-order: 9;
+        -ms-flex-order: 9;
+            order: 9; }
+  .layout-align-gt-lg-center, .layout-align-gt-lg-center-center, .layout-align-gt-lg-center-start, .layout-align-gt-lg-center-end {
+    -webkit-justify-content: center;
+        -ms-flex-pack: center;
+            justify-content: center; }
+  .layout-align-gt-lg-end, .layout-align-gt-lg-end-center, .layout-align-gt-lg-end-start, .layout-align-gt-lg-end-end {
+    -webkit-justify-content: flex-end;
+        -ms-flex-pack: end;
+            justify-content: flex-end; }
+  .layout-align-gt-lg-space-around, .layout-align-gt-lg-space-around-center, .layout-align-gt-lg-space-around-start, .layout-align-gt-lg-space-around-end {
+    -webkit-justify-content: space-around;
+        -ms-flex-pack: distribute;
+            justify-content: space-around; }
+  .layout-align-gt-lg-space-between, .layout-align-gt-lg-space-between-center, .layout-align-gt-lg-space-between-start, .layout-align-gt-lg-space-between-end {
+    -webkit-justify-content: space-between;
+        -ms-flex-pack: justify;
+            justify-content: space-between; }
+  .layout-align-gt-lg-center-center, .layout-align-gt-lg-start-center, .layout-align-gt-lg-end-center, .layout-align-gt-lg-space-between-center, .layout-align-gt-lg-space-around-center {
+    -webkit-align-items: center;
+        -ms-flex-align: center;
+            align-items: center; }
+  .layout-align-gt-lg-center-start, .layout-align-gt-lg-start-start, .layout-align-gt-lg-end-start, .layout-align-gt-lg-space-between-start, .layout-align-gt-lg-space-around-start {
+    -webkit-align-items: flex-start;
+        -ms-flex-align: start;
+            align-items: flex-start; }
+  .layout-align-gt-lg-center-end, .layout-align-gt-lg-start-end, .layout-align-gt-lg-end-end, .layout-align-gt-lg-space-between-end, .layout-align-gt-lg-space-around-end {
+    -webkit-align-items: flex-end;
+        -ms-flex-align: end;
+            align-items: flex-end; }
+  .layout-gt-lg {
+    box-sizing: border-box;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flexbox;
+    display: flex; }
+  .layout-gt-lg-column {
+    -webkit-flex-direction: column;
+        -ms-flex-direction: column;
+            flex-direction: column; }
+  .layout-gt-lg-row {
+    -webkit-flex-direction: row;
+        -ms-flex-direction: row;
+            flex-direction: row; }
+  .offset-gt-lg-5 {
+    margin-left: 5%; }
+  .offset-gt-lg-10 {
+    margin-left: 10%; }
+  .offset-gt-lg-15 {
+    margin-left: 15%; }
+  .offset-gt-lg-20 {
+    margin-left: 20%; }
+  .offset-gt-lg-25 {
+    margin-left: 25%; }
+  .offset-gt-lg-30 {
+    margin-left: 30%; }
+  .offset-gt-lg-35 {
+    margin-left: 35%; }
+  .offset-gt-lg-40 {
+    margin-left: 40%; }
+  .offset-gt-lg-45 {
+    margin-left: 45%; }
+  .offset-gt-lg-50 {
+    margin-left: 50%; }
+  .offset-gt-lg-55 {
+    margin-left: 55%; }
+  .offset-gt-lg-60 {
+    margin-left: 60%; }
+  .offset-gt-lg-65 {
+    margin-left: 65%; }
+  .offset-gt-lg-70 {
+    margin-left: 70%; }
+  .offset-gt-lg-75 {
+    margin-left: 75%; }
+  .offset-gt-lg-80 {
+    margin-left: 80%; }
+  .offset-gt-lg-85 {
+    margin-left: 85%; }
+  .offset-gt-lg-90 {
+    margin-left: 90%; }
+  .offset-gt-lg-95 {
+    margin-left: 95%; }
+  .offset-gt-lg-33, .offset-gt-lg-34 {
+    margin-left: 33.33%; }
+  .offset-gt-lg-66, .offset-gt-lg-67 {
+    margin-left: 66.66%; }
+  .flex-gt-lg {
+    box-sizing: border-box;
+    -webkit-flex: 1;
+        -ms-flex: 1;
+            flex: 1; }
+  .flex-gt-lg-0 {
+    -webkit-flex: 0 0 0%;
+        -ms-flex: 0 0 0%;
+            flex: 0 0 0%; }
+  .layout-row > .flex-gt-lg-0 {
+    max-width: 0%; }
+  .layout-column > .flex-gt-lg-0 {
+    max-height: 0%; }
+  .flex-gt-lg-5 {
+    -webkit-flex: 0 0 5%;
+        -ms-flex: 0 0 5%;
+            flex: 0 0 5%; }
+  .layout-row > .flex-gt-lg-5 {
+    max-width: 5%; }
+  .layout-column > .flex-gt-lg-5 {
+    max-height: 5%; }
+  .flex-gt-lg-10 {
+    -webkit-flex: 0 0 10%;
+        -ms-flex: 0 0 10%;
+            flex: 0 0 10%; }
+  .layout-row > .flex-gt-lg-10 {
+    max-width: 10%; }
+  .layout-column > .flex-gt-lg-10 {
+    max-height: 10%; }
+  .flex-gt-lg-15 {
+    -webkit-flex: 0 0 15%;
+        -ms-flex: 0 0 15%;
+            flex: 0 0 15%; }
+  .layout-row > .flex-gt-lg-15 {
+    max-width: 15%; }
+  .layout-column > .flex-gt-lg-15 {
+    max-height: 15%; }
+  .flex-gt-lg-20 {
+    -webkit-flex: 0 0 20%;
+        -ms-flex: 0 0 20%;
+            flex: 0 0 20%; }
+  .layout-row > .flex-gt-lg-20 {
+    max-width: 20%; }
+  .layout-column > .flex-gt-lg-20 {
+    max-height: 20%; }
+  .flex-gt-lg-25 {
+    -webkit-flex: 0 0 25%;
+        -ms-flex: 0 0 25%;
+            flex: 0 0 25%; }
+  .layout-row > .flex-gt-lg-25 {
+    max-width: 25%; }
+  .layout-column > .flex-gt-lg-25 {
+    max-height: 25%; }
+  .flex-gt-lg-30 {
+    -webkit-flex: 0 0 30%;
+        -ms-flex: 0 0 30%;
+            flex: 0 0 30%; }
+  .layout-row > .flex-gt-lg-30 {
+    max-width: 30%; }
+  .layout-column > .flex-gt-lg-30 {
+    max-height: 30%; }
+  .flex-gt-lg-35 {
+    -webkit-flex: 0 0 35%;
+        -ms-flex: 0 0 35%;
+            flex: 0 0 35%; }
+  .layout-row > .flex-gt-lg-35 {
+    max-width: 35%; }
+  .layout-column > .flex-gt-lg-35 {
+    max-height: 35%; }
+  .flex-gt-lg-40 {
+    -webkit-flex: 0 0 40%;
+        -ms-flex: 0 0 40%;
+            flex: 0 0 40%; }
+  .layout-row > .flex-gt-lg-40 {
+    max-width: 40%; }
+  .layout-column > .flex-gt-lg-40 {
+    max-height: 40%; }
+  .flex-gt-lg-45 {
+    -webkit-flex: 0 0 45%;
+        -ms-flex: 0 0 45%;
+            flex: 0 0 45%; }
+  .layout-row > .flex-gt-lg-45 {
+    max-width: 45%; }
+  .layout-column > .flex-gt-lg-45 {
+    max-height: 45%; }
+  .flex-gt-lg-50 {
+    -webkit-flex: 0 0 50%;
+        -ms-flex: 0 0 50%;
+            flex: 0 0 50%; }
+  .layout-row > .flex-gt-lg-50 {
+    max-width: 50%; }
+  .layout-column > .flex-gt-lg-50 {
+    max-height: 50%; }
+  .flex-gt-lg-55 {
+    -webkit-flex: 0 0 55%;
+        -ms-flex: 0 0 55%;
+            flex: 0 0 55%; }
+  .layout-row > .flex-gt-lg-55 {
+    max-width: 55%; }
+  .layout-column > .flex-gt-lg-55 {
+    max-height: 55%; }
+  .flex-gt-lg-60 {
+    -webkit-flex: 0 0 60%;
+        -ms-flex: 0 0 60%;
+            flex: 0 0 60%; }
+  .layout-row > .flex-gt-lg-60 {
+    max-width: 60%; }
+  .layout-column > .flex-gt-lg-60 {
+    max-height: 60%; }
+  .flex-gt-lg-65 {
+    -webkit-flex: 0 0 65%;
+        -ms-flex: 0 0 65%;
+            flex: 0 0 65%; }
+  .layout-row > .flex-gt-lg-65 {
+    max-width: 65%; }
+  .layout-column > .flex-gt-lg-65 {
+    max-height: 65%; }
+  .flex-gt-lg-70 {
+    -webkit-flex: 0 0 70%;
+        -ms-flex: 0 0 70%;
+            flex: 0 0 70%; }
+  .layout-row > .flex-gt-lg-70 {
+    max-width: 70%; }
+  .layout-column > .flex-gt-lg-70 {
+    max-height: 70%; }
+  .flex-gt-lg-75 {
+    -webkit-flex: 0 0 75%;
+        -ms-flex: 0 0 75%;
+            flex: 0 0 75%; }
+  .layout-row > .flex-gt-lg-75 {
+    max-width: 75%; }
+  .layout-column > .flex-gt-lg-75 {
+    max-height: 75%; }
+  .flex-gt-lg-80 {
+    -webkit-flex: 0 0 80%;
+        -ms-flex: 0 0 80%;
+            flex: 0 0 80%; }
+  .layout-row > .flex-gt-lg-80 {
+    max-width: 80%; }
+  .layout-column > .flex-gt-lg-80 {
+    max-height: 80%; }
+  .flex-gt-lg-85 {
+    -webkit-flex: 0 0 85%;
+        -ms-flex: 0 0 85%;
+            flex: 0 0 85%; }
+  .layout-row > .flex-gt-lg-85 {
+    max-width: 85%; }
+  .layout-column > .flex-gt-lg-85 {
+    max-height: 85%; }
+  .flex-gt-lg-90 {
+    -webkit-flex: 0 0 90%;
+        -ms-flex: 0 0 90%;
+            flex: 0 0 90%; }
+  .layout-row > .flex-gt-lg-90 {
+    max-width: 90%; }
+  .layout-column > .flex-gt-lg-90 {
+    max-height: 90%; }
+  .flex-gt-lg-95 {
+    -webkit-flex: 0 0 95%;
+        -ms-flex: 0 0 95%;
+            flex: 0 0 95%; }
+  .layout-row > .flex-gt-lg-95 {
+    max-width: 95%; }
+  .layout-column > .flex-gt-lg-95 {
+    max-height: 95%; }
+  .flex-gt-lg-100 {
+    -webkit-flex: 0 0 100%;
+        -ms-flex: 0 0 100%;
+            flex: 0 0 100%; }
+  .layout-row > .flex-gt-lg-100 {
+    max-width: 100%; }
+  .layout-column > .flex-gt-lg-100 {
+    max-height: 100%; }
+  .flex-gt-lg-33, .flex-gt-lg-34 {
+    -webkit-flex: 0 0 33.33%;
+        -ms-flex: 0 0 33.33%;
+            flex: 0 0 33.33%; }
+  .flex-gt-lg-66, .flex-gt-lg-67 {
+    -webkit-flex: 0 0 66.66%;
+        -ms-flex: 0 0 66.66%;
+            flex: 0 0 66.66%; }
+  .layout-row > .flex-gt-lg-33, .layout-row > .flex-gt-lg-34 {
+    max-width: 33.33%; }
+  .layout-row > .flex-gt-lg-66, .layout-row > .flex-gt-lg-67 {
+    max-width: 66.66%; }
+  .layout-column > .flex-gt-lg-33, .layout-column > .flex-gt-lg-34 {
+    max-height: 33.33%; }
+  .layout-column > .flex-gt-lg-66, .layout-column > .flex-gt-lg-67 {
+    max-height: 66.66%; } }
+
+@-webkit-keyframes md-autocomplete-list-out {
+  0% {
+    -webkit-animation-timing-function: linear;
+            animation-timing-function: linear; }
+
+  50% {
+    opacity: 0;
+    height: 40px;
+    -webkit-animation-timing-function: ease-in;
+            animation-timing-function: ease-in; }
+
+  100% {
+    height: 0;
+    opacity: 0; } }
+
+@keyframes md-autocomplete-list-out {
+  0% {
+    -webkit-animation-timing-function: linear;
+            animation-timing-function: linear; }
+
+  50% {
+    opacity: 0;
+    height: 40px;
+    -webkit-animation-timing-function: ease-in;
+            animation-timing-function: ease-in; }
+
+  100% {
+    height: 0;
+    opacity: 0; } }
+
+@-webkit-keyframes md-autocomplete-list-in {
+  0% {
+    opacity: 0;
+    height: 0;
+    -webkit-animation-timing-function: ease-out;
+            animation-timing-function: ease-out; }
+
+  50% {
+    opacity: 0;
+    height: 40px; }
+
+  100% {
+    opacity: 1;
+    height: 40px; } }
+
+@keyframes md-autocomplete-list-in {
+  0% {
+    opacity: 0;
+    height: 0;
+    -webkit-animation-timing-function: ease-out;
+            animation-timing-function: ease-out; }
+
+  50% {
+    opacity: 0;
+    height: 40px; }
+
+  100% {
+    opacity: 1;
+    height: 40px; } }
+
+md-autocomplete {
+  border-radius: 2px;
+  display: block;
+  height: 40px;
+  position: relative;
+  overflow: visible;
+  min-width: 190px; }
+  md-autocomplete[disabled] input {
+    cursor: not-allowed; }
+  md-autocomplete[md-floating-label] {
+    padding-bottom: 26px;
+    border-radius: 0;
+    background: transparent;
+    height: auto; }
+    md-autocomplete[md-floating-label] md-input-container {
+      padding-bottom: 0; }
+    md-autocomplete[md-floating-label] md-autocomplete-wrap {
+      height: auto; }
+    md-autocomplete[md-floating-label] button {
+      position: absolute;
+      top: auto;
+      bottom: 0;
+      right: 0;
+      width: 30px;
+      height: 30px; }
+  md-autocomplete md-autocomplete-wrap {
+    display: block;
+    position: relative;
+    overflow: visible;
+    height: 40px; }
+    md-autocomplete md-autocomplete-wrap.md-menu-showing {
+      z-index: 51; }
+    md-autocomplete md-autocomplete-wrap md-progress-linear[md-mode=indeterminate] {
+      position: absolute;
+      bottom: 0;
+      left: 0;
+      width: 100%;
+      height: 3px;
+      transition: none; }
+      md-autocomplete md-autocomplete-wrap md-progress-linear[md-mode=indeterminate] .md-container {
+        transition: none;
+        top: auto;
+        height: 3px; }
+      md-autocomplete md-autocomplete-wrap md-progress-linear[md-mode=indeterminate].ng-enter {
+        transition: opacity 0.15s linear; }
+        md-autocomplete md-autocomplete-wrap md-progress-linear[md-mode=indeterminate].ng-enter.ng-enter-active {
+          opacity: 1; }
+      md-autocomplete md-autocomplete-wrap md-progress-linear[md-mode=indeterminate].ng-leave {
+        transition: opacity 0.15s linear; }
+        md-autocomplete md-autocomplete-wrap md-progress-linear[md-mode=indeterminate].ng-leave.ng-leave-active {
+          opacity: 0; }
+  md-autocomplete input:not(.md-input) {
+    font-size: 14px;
+    box-sizing: border-box;
+    border: none;
+    box-shadow: none;
+    outline: none;
+    background: transparent;
+    width: 100%;
+    padding: 0 15px;
+    line-height: 40px;
+    height: 40px; }
+    md-autocomplete input:not(.md-input)::-ms-clear {
+      display: none; }
+  md-autocomplete button {
+    position: relative;
+    line-height: 20px;
+    text-align: center;
+    width: 30px;
+    height: 30px;
+    cursor: pointer;
+    border: none;
+    border-radius: 50%;
+    padding: 0;
+    font-size: 12px;
+    background: transparent;
+    margin: auto 5px; }
+    md-autocomplete button:after {
+      content: '';
+      position: absolute;
+      top: -6px;
+      right: -6px;
+      bottom: -6px;
+      left: -6px;
+      border-radius: 50%;
+      -webkit-transform: scale(0);
+              transform: scale(0);
+      opacity: 0;
+      transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); }
+    md-autocomplete button:focus {
+      outline: none; }
+      md-autocomplete button:focus:after {
+        -webkit-transform: scale(1);
+                transform: scale(1);
+        opacity: 1; }
+    md-autocomplete button md-icon {
+      position: absolute;
+      top: 50%;
+      left: 50%;
+      -webkit-transform: translate3d(-50%, -50%, 0) scale(0.9);
+              transform: translate3d(-50%, -50%, 0) scale(0.9); }
+      md-autocomplete button md-icon path {
+        stroke-width: 0; }
+    md-autocomplete button.ng-enter {
+      -webkit-transform: scale(0);
+              transform: scale(0);
+      transition: -webkit-transform 0.15s ease-out;
+      transition: transform 0.15s ease-out; }
+      md-autocomplete button.ng-enter.ng-enter-active {
+        -webkit-transform: scale(1);
+                transform: scale(1); }
+    md-autocomplete button.ng-leave {
+      transition: -webkit-transform 0.15s ease-out;
+      transition: transform 0.15s ease-out; }
+      md-autocomplete button.ng-leave.ng-leave-active {
+        -webkit-transform: scale(0);
+                transform: scale(0); }
+  @media screen and (-ms-high-contrast: active) {
+    md-autocomplete input {
+      border: 1px solid #fff; }
+    md-autocomplete li:focus {
+      color: #fff; } }
+
+.md-virtual-repeat-container.md-autocomplete-suggestions-container {
+  position: absolute;
+  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
+  height: 225.5px;
+  max-height: 225.5px;
+  z-index: 100; }
+
+.md-autocomplete-suggestions {
+  margin: 0;
+  list-style: none;
+  padding: 0; }
+  .md-autocomplete-suggestions li {
+    cursor: pointer;
+    font-size: 14px;
+    overflow: hidden;
+    padding: 0 15px;
+    line-height: 48px;
+    height: 48px;
+    transition: background 0.15s linear;
+    margin: 0;
+    white-space: nowrap;
+    text-overflow: ellipsis; }
+    .md-autocomplete-suggestions li:focus {
+      outline: none; }
+
+@media screen and (-ms-high-contrast: active) {
+  md-autocomplete, .md-autocomplete-suggestions {
+    border: 1px solid #fff; } }
+
+md-backdrop {
+  transition: opacity 450ms;
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  z-index: 50; }
+  md-backdrop.md-menu-backdrop {
+    position: fixed !important;
+    z-index: 98; }
+  md-backdrop.md-select-backdrop {
+    z-index: 81;
+    transition-duration: 0; }
+  md-backdrop.md-dialog-backdrop {
+    z-index: 79; }
+  md-backdrop.md-bottom-sheet-backdrop {
+    z-index: 69; }
+  md-backdrop.md-sidenav-backdrop {
+    z-index: 59; }
+  md-backdrop.md-click-catcher {
+    position: absolute; }
+  md-backdrop.md-opaque {
+    opacity: .48; }
+    md-backdrop.md-opaque.ng-enter {
+      opacity: 0; }
+    md-backdrop.md-opaque.ng-enter.md-opaque.ng-enter-active {
+      opacity: .48; }
+    md-backdrop.md-opaque.ng-leave {
+      opacity: .48;
+      transition: opacity 400ms; }
+    md-backdrop.md-opaque.ng-leave.md-opaque.ng-leave-active {
+      opacity: 0; }
+
+md-bottom-sheet {
+  position: absolute;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  padding: 8px 16px 88px 16px;
+  z-index: 70;
+  border-top-width: 1px;
+  border-top-style: solid;
+  -webkit-transform: translate3d(0, 80px, 0);
+          transform: translate3d(0, 80px, 0);
+  transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
+  transition-property: -webkit-transform;
+  transition-property: transform; }
+  md-bottom-sheet.md-has-header {
+    padding-top: 0; }
+  md-bottom-sheet.ng-enter {
+    opacity: 0;
+    -webkit-transform: translate3d(0, 100%, 0);
+            transform: translate3d(0, 100%, 0); }
+  md-bottom-sheet.ng-enter-active {
+    opacity: 1;
+    display: block;
+    -webkit-transform: translate3d(0, 80px, 0) !important;
+            transform: translate3d(0, 80px, 0) !important; }
+  md-bottom-sheet.ng-leave-active {
+    -webkit-transform: translate3d(0, 100%, 0) !important;
+            transform: translate3d(0, 100%, 0) !important;
+    transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); }
+  md-bottom-sheet .md-subheader {
+    background-color: transparent;
+    font-family: Roboto, 'Helvetica Neue', sans-serif;
+    line-height: 56px;
+    padding: 0;
+    white-space: nowrap; }
+  md-bottom-sheet md-inline-icon {
+    display: inline-block;
+    height: 24px;
+    width: 24px;
+    fill: #444; }
+  md-bottom-sheet md-list-item {
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    outline: none; }
+    md-bottom-sheet md-list-item:hover {
+      cursor: pointer; }
+  md-bottom-sheet.md-list md-list-item {
+    padding: 0;
+    -webkit-align-items: center;
+        -ms-flex-align: center;
+            align-items: center;
+    height: 48px; }
+    md-bottom-sheet.md-list md-list-item div.md-icon-container {
+      display: inline-block;
+      height: 24px;
+      margin-right: 32px; }
+  md-bottom-sheet.md-grid {
+    padding-left: 24px;
+    padding-right: 24px;
+    padding-top: 0; }
+    md-bottom-sheet.md-grid md-list {
+      display: -webkit-flex;
+      display: -ms-flexbox;
+      display: flex;
+      -webkit-flex-direction: row;
+          -ms-flex-direction: row;
+              flex-direction: row;
+      -webkit-flex-wrap: wrap;
+          -ms-flex-wrap: wrap;
+              flex-wrap: wrap;
+      transition: all 0.5s;
+      -webkit-align-items: center;
+          -ms-flex-align: center;
+              align-items: center; }
+    md-bottom-sheet.md-grid md-list-item {
+      -webkit-flex-direction: column;
+          -ms-flex-direction: column;
+              flex-direction: column;
+      -webkit-align-items: center;
+          -ms-flex-align: center;
+              align-items: center;
+      transition: all 0.5s;
+      height: 96px;
+      margin-top: 8px;
+      margin-bottom: 8px;
+      /* Mixin for how many grid items to show per row */ }
+      @media screen and (max-width: 600px) {
+        md-bottom-sheet.md-grid md-list-item {
+          -webkit-flex: 1 1 33.33333%;
+              -ms-flex: 1 1 33.33333%;
+                  flex: 1 1 33.33333%;
+          max-width: 33.33333%; }
+          md-bottom-sheet.md-grid md-list-item:nth-of-type(3n+1) {
+            -webkit-align-items: flex-start;
+                -ms-flex-align: start;
+                    align-items: flex-start; }
+          md-bottom-sheet.md-grid md-list-item:nth-of-type(3n) {
+            -webkit-align-items: flex-end;
+                -ms-flex-align: end;
+                    align-items: flex-end; } }
+      @media screen and (min-width: 600px) and (max-width: 960px) {
+        md-bottom-sheet.md-grid md-list-item {
+          -webkit-flex: 1 1 25%;
+              -ms-flex: 1 1 25%;
+                  flex: 1 1 25%;
+          max-width: 25%; } }
+      @media screen and (min-width: 960px) and (max-width: 1200px) {
+        md-bottom-sheet.md-grid md-list-item {
+          -webkit-flex: 1 1 16.66667%;
+              -ms-flex: 1 1 16.66667%;
+                  flex: 1 1 16.66667%;
+          max-width: 16.66667%; } }
+      @media screen and (min-width: 1200px) {
+        md-bottom-sheet.md-grid md-list-item {
+          -webkit-flex: 1 1 14.28571%;
+              -ms-flex: 1 1 14.28571%;
+                  flex: 1 1 14.28571%;
+          max-width: 14.28571%; } }
+      md-bottom-sheet.md-grid md-list-item .md-list-item-content {
+        display: -webkit-flex;
+        display: -ms-flexbox;
+        display: flex;
+        -webkit-flex-direction: column;
+            -ms-flex-direction: column;
+                flex-direction: column;
+        -webkit-align-items: center;
+            -ms-flex-align: center;
+                align-items: center;
+        width: 48px;
+        padding-bottom: 16px; }
+      md-bottom-sheet.md-grid md-list-item .md-grid-item-content {
+        border: 1px solid transparent;
+        display: -webkit-flex;
+        display: -ms-flexbox;
+        display: flex;
+        -webkit-flex-direction: column;
+            -ms-flex-direction: column;
+                flex-direction: column;
+        -webkit-align-items: center;
+            -ms-flex-align: center;
+                align-items: center;
+        width: 80px; }
+      md-bottom-sheet.md-grid md-list-item .md-icon-container {
+        display: inline-block;
+        box-sizing: border-box;
+        height: 48px;
+        width: 48px;
+        margin: 0 0; }
+      md-bottom-sheet.md-grid md-list-item .md-grid-text {
+        font-weight: 400;
+        line-height: 16px;
+        font-size: 13px;
+        margin: 0;
+        white-space: nowrap;
+        width: 64px;
+        text-align: center;
+        text-transform: none;
+        padding-top: 8px; }
+
+@media screen and (-ms-high-contrast: active) {
+  md-bottom-sheet {
+    border: 1px solid #fff; } }
+
+.md-button {
+  border-radius: 3px;
+  box-sizing: border-box;
+  color: currentColor;
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none;
+  position: relative;
+  outline: none;
+  border: 0;
+  display: inline-block;
+  -webkit-align-items: center;
+      -ms-flex-align: center;
+          align-items: center;
+  padding: 0 6px;
+  margin: 6px 8px;
+  line-height: 36px;
+  min-height: 36px;
+  background: transparent;
+  white-space: nowrap;
+  min-width: 88px;
+  text-align: center;
+  text-transform: uppercase;
+  font-weight: 500;
+  font-size: 14px;
+  font-style: inherit;
+  font-variant: inherit;
+  font-family: inherit;
+  text-decoration: none;
+  cursor: pointer;
+  overflow: hidden;
+  transition: box-shadow 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), background-color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); }
+  .md-button:focus {
+    outline: none; }
+  .md-button:hover, .md-button:focus {
+    text-decoration: none; }
+  .md-button.ng-hide, .md-button.ng-leave {
+    transition: none; }
+  .md-button.md-cornered {
+    border-radius: 0; }
+  .md-button.md-icon {
+    padding: 0;
+    background: none; }
+  .md-button.md-raised:not([disabled]) {
+    box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); }
+  .md-button.md-icon-button {
+    margin: 0 6px;
+    height: 48px;
+    min-width: 0;
+    line-height: 48px;
+    padding-left: 0;
+    padding-right: 0;
+    width: 48px;
+    border-radius: 50%; }
+    .md-button.md-icon-button .md-ripple-container {
+      border-radius: 50%;
+      background-clip: padding-box;
+      overflow: hidden;
+      -webkit-mask-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC'); }
+  .md-button.md-fab {
+    z-index: 20;
+    line-height: 56px;
+    min-width: 0;
+    width: 56px;
+    height: 56px;
+    vertical-align: middle;
+    box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
+    border-radius: 50%;
+    background-clip: padding-box;
+    overflow: hidden;
+    transition: 0.2s linear;
+    transition-property: background-color, box-shadow; }
+    .md-button.md-fab.md-fab-bottom-right {
+      top: auto;
+      right: 20px;
+      bottom: 20px;
+      left: auto;
+      position: absolute; }
+    .md-button.md-fab.md-fab-bottom-left {
+      top: auto;
+      right: auto;
+      bottom: 20px;
+      left: 20px;
+      position: absolute; }
+    .md-button.md-fab.md-fab-top-right {
+      top: 20px;
+      right: 20px;
+      bottom: auto;
+      left: auto;
+      position: absolute; }
+    .md-button.md-fab.md-fab-top-left {
+      top: 20px;
+      right: auto;
+      bottom: auto;
+      left: 20px;
+      position: absolute; }
+    .md-button.md-fab .md-ripple-container {
+      border-radius: 50%;
+      background-clip: padding-box;
+      overflow: hidden;
+      -webkit-mask-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC'); }
+    .md-button.md-fab.md-mini {
+      line-height: 40px;
+      width: 40px;
+      height: 40px; }
+  .md-button:not([disabled]).md-raised.md-focused, .md-button:not([disabled]).md-fab.md-focused {
+    box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); }
+  .md-button:not([disabled]).md-raised:active, .md-button:not([disabled]).md-fab:active {
+    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.4); }
+  .md-button .md-ripple-container {
+    border-radius: 3px;
+    background-clip: padding-box;
+    overflow: hidden;
+    -webkit-mask-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC'); }
+
+.md-toast-open-top .md-button.md-fab-top-left, .md-toast-open-top .md-button.md-fab-top-right {
+  -webkit-transform: translate3d(0, 42px, 0);
+          transform: translate3d(0, 42px, 0); }
+  .md-toast-open-top .md-button.md-fab-top-left:not([disabled]).md-focused, .md-toast-open-top .md-button.md-fab-top-left:not([disabled]):hover, .md-toast-open-top .md-button.md-fab-top-right:not([disabled]).md-focused, .md-toast-open-top .md-button.md-fab-top-right:not([disabled]):hover {
+    -webkit-transform: translate3d(0, 41px, 0);
+            transform: translate3d(0, 41px, 0); }
+
+.md-toast-open-bottom .md-button.md-fab-bottom-left, .md-toast-open-bottom .md-button.md-fab-bottom-right {
+  -webkit-transform: translate3d(0, -42px, 0);
+          transform: translate3d(0, -42px, 0); }
+  .md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]).md-focused, .md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]):hover, .md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]).md-focused, .md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]):hover {
+    -webkit-transform: translate3d(0, -43px, 0);
+            transform: translate3d(0, -43px, 0); }
+
+.md-button-group {
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-flex: 1;
+      -ms-flex: 1;
+          flex: 1;
+  width: 100%; }
+
+.md-button-group > .md-button {
+  -webkit-flex: 1;
+      -ms-flex: 1;
+          flex: 1;
+  display: block;
+  overflow: hidden;
+  width: 0;
+  border-width: 1px 0px 1px 1px;
+  border-radius: 0;
+  text-align: center;
+  text-overflow: ellipsis;
+  white-space: nowrap; }
+  .md-button-group > .md-button:first-child {
+    border-radius: 2px 0px 0px 2px; }
+  .md-button-group > .md-button:last-child {
+    border-right-width: 1px;
+    border-radius: 0px 2px 2px 0px; }
+
+@media screen and (-ms-high-contrast: active) {
+  .md-button.md-raised, .md-button.md-fab {
+    border: 1px solid #fff; } }
+
+md-card {
+  box-sizing: border-box;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-flex-direction: column;
+      -ms-flex-direction: column;
+          flex-direction: column;
+  margin: 8px;
+  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.14), 0px 2px 2px 0px rgba(0, 0, 0, 0.098), 0px 1px 5px 0px rgba(0, 0, 0, 0.084); }
+  md-card > img, md-card > :not(md-card-content) img {
+    width: 100%; }
+  md-card md-card-content {
+    padding: 16px; }
+  md-card .md-actions {
+    margin: 0; }
+    md-card .md-actions .md-button {
+      margin-bottom: 8px;
+      margin-top: 8px;
+      margin-right: 4px;
+      margin-left: 4px; }
+  md-card md-card-footer {
+    padding: 16px; }
+
+@media screen and (-ms-high-contrast: active) {
+  md-card {
+    border: 1px solid #fff; } }
+
+md-checkbox {
+  box-sizing: border-box;
+  display: block;
+  margin: 8px;
+  white-space: nowrap;
+  cursor: pointer;
+  outline: none;
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none;
+  padding-left: 18px;
+  padding-right: 0;
+  position: relative;
+  line-height: 26px;
+  min-width: 18px;
+  min-height: 18px; }
+  html[dir=rtl] md-checkbox {
+    padding-left: 0;
+    unicode-bidi: embed; }
+  body[dir=rtl] md-checkbox {
+    padding-left: 0;
+    unicode-bidi: embed; }
+  md-checkbox bdo[dir=rtl] {
+    direction: rtl;
+    unicode-bidi: bidi-override; }
+  md-checkbox bdo[dir=ltr] {
+    direction: ltr;
+    unicode-bidi: bidi-override; }
+  html[dir=rtl] md-checkbox {
+    padding-right: 18px;
+    unicode-bidi: embed; }
+  body[dir=rtl] md-checkbox {
+    padding-right: 18px;
+    unicode-bidi: embed; }
+  md-checkbox bdo[dir=rtl] {
+    direction: rtl;
+    unicode-bidi: bidi-override; }
+  md-checkbox bdo[dir=ltr] {
+    direction: ltr;
+    unicode-bidi: bidi-override; }
+  md-checkbox.md-focused:not([disabled]) .md-container:before {
+    left: -8px;
+    top: -8px;
+    right: -8px;
+    bottom: -8px; }
+  md-checkbox.md-focused:not([disabled]):not(.md-checked) .md-container:before {
+    background-color: rgba(0, 0, 0, 0.12); }
+  md-checkbox .md-container {
+    position: absolute;
+    top: 50%;
+    -webkit-transform: translateY(-50%);
+            transform: translateY(-50%);
+    box-sizing: border-box;
+    display: inline-block;
+    width: 18px;
+    height: 18px;
+    left: 0;
+    right: auto; }
+    html[dir=rtl] md-checkbox .md-container {
+      left: auto;
+      unicode-bidi: embed; }
+    body[dir=rtl] md-checkbox .md-container {
+      left: auto;
+      unicode-bidi: embed; }
+    md-checkbox .md-container bdo[dir=rtl] {
+      direction: rtl;
+      unicode-bidi: bidi-override; }
+    md-checkbox .md-container bdo[dir=ltr] {
+      direction: ltr;
+      unicode-bidi: bidi-override; }
+    html[dir=rtl] md-checkbox .md-container {
+      right: 0;
+      unicode-bidi: embed; }
+    body[dir=rtl] md-checkbox .md-container {
+      right: 0;
+      unicode-bidi: embed; }
+    md-checkbox .md-container bdo[dir=rtl] {
+      direction: rtl;
+      unicode-bidi: bidi-override; }
+    md-checkbox .md-container bdo[dir=ltr] {
+      direction: ltr;
+      unicode-bidi: bidi-override; }
+    md-checkbox .md-container:before {
+      box-sizing: border-box;
+      background-color: transparent;
+      border-radius: 50%;
+      content: '';
+      position: absolute;
+      display: block;
+      height: auto;
+      left: 0;
+      top: 0;
+      right: 0;
+      bottom: 0;
+      transition: all 0.5s;
+      width: auto; }
+    md-checkbox .md-container:after {
+      box-sizing: border-box;
+      content: '';
+      position: absolute;
+      top: -10px;
+      right: -10px;
+      bottom: -10px;
+      left: -10px; }
+    md-checkbox .md-container .md-ripple-container {
+      position: absolute;
+      display: block;
+      width: auto;
+      height: auto;
+      left: -15px;
+      top: -15px;
+      right: -15px;
+      bottom: -15px; }
+  md-checkbox.md-align-top-left > div.md-container {
+    top: 12px; }
+  md-checkbox .md-icon {
+    box-sizing: border-box;
+    transition: 240ms;
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 18px;
+    height: 18px;
+    border-width: 2px;
+    border-style: solid;
+    border-radius: 2px; }
+  md-checkbox.md-checked .md-icon {
+    border: none; }
+  md-checkbox[disabled] {
+    cursor: no-drop; }
+  md-checkbox.md-checked .md-icon:after {
+    box-sizing: border-box;
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg);
+    position: absolute;
+    left: 6px;
+    top: 2px;
+    display: table;
+    width: 6px;
+    height: 12px;
+    border-width: 2px;
+    border-style: solid;
+    border-top: 0;
+    border-left: 0;
+    content: ''; }
+  md-checkbox .md-label {
+    box-sizing: border-box;
+    position: relative;
+    display: inline-block;
+    vertical-align: middle;
+    white-space: normal;
+    -webkit-user-select: text;
+       -moz-user-select: text;
+        -ms-user-select: text;
+            user-select: text;
+    margin-left: 10px;
+    margin-right: 0; }
+    html[dir=rtl] md-checkbox .md-label {
+      margin-left: 0;
+      unicode-bidi: embed; }
+    body[dir=rtl] md-checkbox .md-label {
+      margin-left: 0;
+      unicode-bidi: embed; }
+    md-checkbox .md-label bdo[dir=rtl] {
+      direction: rtl;
+      unicode-bidi: bidi-override; }
+    md-checkbox .md-label bdo[dir=ltr] {
+      direction: ltr;
+      unicode-bidi: bidi-override; }
+    html[dir=rtl] md-checkbox .md-label {
+      margin-right: 10px;
+      unicode-bidi: embed; }
+    body[dir=rtl] md-checkbox .md-label {
+      margin-right: 10px;
+      unicode-bidi: embed; }
+    md-checkbox .md-label bdo[dir=rtl] {
+      direction: rtl;
+      unicode-bidi: bidi-override; }
+    md-checkbox .md-label bdo[dir=ltr] {
+      direction: ltr;
+      unicode-bidi: bidi-override; }
+
+.md-contact-chips .md-chips .md-chip {
+  padding: 0 25px 0 0; }
+  .md-contact-chips .md-chips .md-chip .md-contact-avatar {
+    float: left; }
+    .md-contact-chips .md-chips .md-chip .md-contact-avatar img {
+      height: 32px;
+      border-radius: 16px; }
+  .md-contact-chips .md-chips .md-chip .md-contact-name {
+    display: inline-block;
+    height: 32px;
+    margin-left: 8px; }
+
+.md-contact-suggestion {
+  height: 56px; }
+  .md-contact-suggestion img {
+    height: 40px;
+    border-radius: 20px;
+    margin-top: 8px; }
+  .md-contact-suggestion .md-contact-name {
+    margin-left: 8px;
+    width: 120px; }
+  .md-contact-suggestion .md-contact-name, .md-contact-suggestion .md-contact-email {
+    display: inline-block;
+    overflow: hidden;
+    text-overflow: ellipsis; }
+
+.md-contact-chips-suggestions li {
+  height: 100%; }
+
+.md-chips {
+  display: block;
+  font-family: Roboto, 'Helvetica Neue', sans-serif;
+  font-size: 16px;
+  padding: 0 0 8px 3px;
+  vertical-align: middle; }
+  .md-chips:after {
+    content: '';
+    display: table;
+    clear: both; }
+  .md-chips:not(.md-readonly) {
+    cursor: text; }
+    .md-chips:not(.md-readonly) .md-chip {
+      padding-right: 22px; }
+  .md-chips .md-chip {
+    cursor: default;
+    border-radius: 16px;
+    display: block;
+    height: 32px;
+    line-height: 32px;
+    margin: 8px 8px 0 0;
+    padding: 0 12px 0 12px;
+    float: left;
+    box-sizing: border-box;
+    max-width: 100%;
+    position: relative; }
+    .md-chips .md-chip .md-chip-content {
+      display: block;
+      padding-right: 4px;
+      float: left;
+      white-space: nowrap;
+      max-width: 100%;
+      overflow: hidden;
+      text-overflow: ellipsis; }
+      .md-chips .md-chip .md-chip-content:focus {
+        outline: none; }
+    .md-chips .md-chip .md-chip-remove-container {
+      position: absolute;
+      right: 0;
+      line-height: 22px; }
+    .md-chips .md-chip .md-chip-remove {
+      text-align: center;
+      width: 32px;
+      height: 32px;
+      min-width: 0;
+      padding: 0;
+      background: transparent;
+      border: none;
+      box-shadow: none;
+      margin: 0;
+      position: relative; }
+      .md-chips .md-chip .md-chip-remove md-icon {
+        height: 18px;
+        width: 18px;
+        position: absolute;
+        top: 50%;
+        left: 50%;
+        -webkit-transform: translate3d(-50%, -50%, 0);
+                transform: translate3d(-50%, -50%, 0); }
+  .md-chips .md-chip-input-container {
+    display: block;
+    line-height: 32px;
+    margin: 8px 8px 0 0;
+    padding: 0 12px 0 12px;
+    float: left; }
+    .md-chips .md-chip-input-container input:not([type]), .md-chips .md-chip-input-container input[type="email"], .md-chips .md-chip-input-container input[type="number"], .md-chips .md-chip-input-container input[type="tel"], .md-chips .md-chip-input-container input[type="url"], .md-chips .md-chip-input-container input[type="text"] {
+      border: 0;
+      height: 32px;
+      line-height: 32px;
+      padding: 0; }
+      .md-chips .md-chip-input-container input:not([type]):focus, .md-chips .md-chip-input-container input[type="email"]:focus, .md-chips .md-chip-input-container input[type="number"]:focus, .md-chips .md-chip-input-container input[type="tel"]:focus, .md-chips .md-chip-input-container input[type="url"]:focus, .md-chips .md-chip-input-container input[type="text"]:focus {
+        outline: none; }
+    .md-chips .md-chip-input-container md-autocomplete, .md-chips .md-chip-input-container md-autocomplete-wrap {
+      background: transparent;
+      height: 32px; }
+    .md-chips .md-chip-input-container md-autocomplete md-autocomplete-wrap {
+      box-shadow: none; }
+    .md-chips .md-chip-input-container md-autocomplete input {
+      position: relative; }
+    .md-chips .md-chip-input-container input {
+      border: 0;
+      height: 32px;
+      line-height: 32px;
+      padding: 0; }
+      .md-chips .md-chip-input-container input:focus {
+        outline: none; }
+    .md-chips .md-chip-input-container md-autocomplete, .md-chips .md-chip-input-container md-autocomplete-wrap {
+      height: 32px; }
+    .md-chips .md-chip-input-container md-autocomplete {
+      box-shadow: none; }
+      .md-chips .md-chip-input-container md-autocomplete input {
+        position: relative; }
+    .md-chips .md-chip-input-container:not(:first-child) {
+      margin: 8px 8px 0 0; }
+    .md-chips .md-chip-input-container input {
+      background: transparent;
+      border-width: 0; }
+  .md-chips md-autocomplete button {
+    display: none; }
+
+@media screen and (-ms-high-contrast: active) {
+  .md-chip-input-container, md-chip {
+    border: 1px solid #fff; }
+  .md-chip-input-container md-autocomplete {
+    border: none; } }
+
+md-content {
+  display: block;
+  position: relative;
+  overflow: auto;
+  -webkit-overflow-scrolling: touch; }
+  md-content[md-scroll-y] {
+    overflow-y: auto;
+    overflow-x: hidden; }
+  md-content[md-scroll-x] {
+    overflow-x: auto;
+    overflow-y: hidden; }
+  md-content.autoScroll {
+    -webkit-overflow-scrolling: auto; }
+
+/** Styles for mdCalendar. */
+md-calendar {
+  font-size: 13px;
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none; }
+
+.md-calendar-scroll-mask {
+  display: inline-block;
+  overflow: hidden;
+  height: 308px; }
+  .md-calendar-scroll-mask .md-virtual-repeat-scroller {
+    overflow-y: scroll;
+    -webkit-overflow-scrolling: touch; }
+    .md-calendar-scroll-mask .md-virtual-repeat-scroller::-webkit-scrollbar {
+      display: none; }
+  .md-calendar-scroll-mask .md-virtual-repeat-offsetter {
+    width: 100%; }
+
+.md-calendar-scroll-container {
+  display: inline-block;
+  height: 308px;
+  width: 340px; }
+
+.md-calendar-date {
+  height: 44px;
+  width: 44px;
+  text-align: center;
+  padding: 0;
+  border: none; }
+  .md-calendar-date:first-child {
+    padding-left: 16px; }
+  .md-calendar-date:last-child {
+    padding-right: 16px; }
+  .md-calendar-date.md-calendar-date-disabled {
+    cursor: default; }
+
+.md-calendar-date-selection-indicator {
+  transition: background-color, color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
+  border-radius: 50%;
+  display: inline-block;
+  width: 40px;
+  height: 40px;
+  line-height: 40px; }
+  .md-calendar-date:not(.md-disabled) .md-calendar-date-selection-indicator {
+    cursor: pointer; }
+
+.md-calendar-month-label {
+  height: 44px;
+  font-size: 13px;
+  padding: 0 0 0 24px; }
+
+.md-calendar-day-header {
+  table-layout: fixed;
+  border-spacing: 0;
+  border-collapse: collapse; }
+  .md-calendar-day-header th {
+    height: 44px;
+    width: 44px;
+    text-align: center;
+    padding: 0;
+    border: none;
+    font-weight: normal;
+    height: 40px; }
+    .md-calendar-day-header th:first-child {
+      padding-left: 16px; }
+    .md-calendar-day-header th:last-child {
+      padding-right: 16px; }
+
+.md-calendar {
+  table-layout: fixed;
+  border-spacing: 0;
+  border-collapse: collapse; }
+  .md-calendar tr:last-child td {
+    border-bottom-width: 1px;
+    border-bottom-style: solid; }
+  .md-calendar:first-child {
+    border-top: 1px solid transparent; }
+
+/** Styles for mdDatepicker. */
+md-datepicker {
+  white-space: nowrap; }
+
+.md-datepicker-button {
+  display: inline-block;
+  box-sizing: border-box;
+  background: none; }
+
+.md-datepicker-input {
+  font-size: 14px;
+  box-sizing: border-box;
+  border: none;
+  box-shadow: none;
+  outline: none;
+  background: transparent;
+  min-width: 120px;
+  max-width: 328px; }
+  .md-datepicker-input::-ms-clear {
+    display: none; }
+
+.md-datepicker-input-container {
+  position: relative;
+  padding-bottom: 5px;
+  border-bottom-width: 1px;
+  border-bottom-style: solid;
+  display: inline-block;
+  width: auto;
+  margin-left: 12px; }
+  .md-datepicker-input-container.md-datepicker-focused {
+    border-bottom-width: 2px; }
+
+.md-datepicker-calendar-pane {
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: 99;
+  border-width: 1px;
+  border-style: solid;
+  background: transparent;
+  -webkit-transform: scale(0);
+          transform: scale(0);
+  -webkit-transform-origin: 0 0;
+          transform-origin: 0 0;
+  transition: -webkit-transform 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
+  transition: transform 0.2s cubic-bezier(0.25, 0.8, 0.25, 1); }
+  .md-datepicker-calendar-pane.md-pane-open {
+    -webkit-transform: scale(1);
+            transform: scale(1); }
+
+.md-datepicker-input-mask {
+  height: 40px;
+  width: 340px;
+  position: relative;
+  background: transparent;
+  pointer-events: none;
+  cursor: text; }
+
+.md-datepicker-input-mask-opaque {
+  position: absolute;
+  right: 0;
+  left: 120px;
+  background: white;
+  height: 100%; }
+
+.md-datepicker-calendar {
+  opacity: 0;
+  transition: opacity 0.2s cubic-bezier(0.5, 0, 0.25, 1); }
+  .md-pane-open .md-datepicker-calendar {
+    opacity: 1; }
+  .md-datepicker-calendar md-calendar:focus {
+    outline: none; }
+
+.md-datepicker-expand-triangle {
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  -webkit-transform: translate(-50%, -50%);
+          transform: translate(-50%, -50%);
+  width: 0;
+  height: 0;
+  border-left: 5px solid transparent;
+  border-right: 5px solid transparent;
+  border-top: 5px solid rgba(0, 0, 0, 0.2); }
+
+.md-datepicker-triangle-button {
+  position: absolute;
+  right: 0;
+  top: 0;
+  -webkit-transform: translateY(-25%) translateX(45%);
+          transform: translateY(-25%) translateX(45%); }
+
+.md-datepicker-triangle-button.md-button.md-icon-button {
+  height: 100%;
+  width: 36px;
+  position: absolute; }
+
+md-datepicker[disabled] .md-datepicker-input-container {
+  border-bottom-color: transparent; }
+md-datepicker[disabled] .md-datepicker-triangle-button {
+  display: none; }
+
+.md-datepicker-open .md-datepicker-input-container {
+  margin-left: -12px;
+  border: none; }
+.md-datepicker-open .md-datepicker-input {
+  margin-left: 24px;
+  height: 40px; }
+.md-datepicker-open .md-datepicker-triangle-button {
+  display: none; }
+
+.md-dialog-is-showing {
+  max-height: 100%; }
+
+.md-dialog-container {
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-justify-content: center;
+      -ms-flex-pack: center;
+          justify-content: center;
+  -webkit-align-items: center;
+      -ms-flex-align: center;
+          align-items: center;
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  z-index: 80;
+  overflow: hidden; }
+
+md-dialog {
+  opacity: 0;
+  min-width: 240px;
+  max-width: 80%;
+  max-height: 80%;
+  position: relative;
+  overflow: auto;
+  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.14), 0px 16px 24px 2px rgba(0, 0, 0, 0.098), 0px 6px 30px 5px rgba(0, 0, 0, 0.084);
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-flex-direction: column;
+      -ms-flex-direction: column;
+          flex-direction: column; }
+  md-dialog.md-transition-in {
+    opacity: 1;
+    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
+    -webkit-transform: translate3d(0, 0, 0) scale(1);
+            transform: translate3d(0, 0, 0) scale(1); }
+  md-dialog.md-transition-out {
+    opacity: 0;
+    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
+    -webkit-transform: translate3d(0, 100%, 0) scale(0.2);
+            transform: translate3d(0, 100%, 0) scale(0.2); }
+  md-dialog > form {
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-flex-direction: column;
+        -ms-flex-direction: column;
+            flex-direction: column;
+    overflow: auto; }
+  md-dialog md-dialog-content {
+    -webkit-order: 1;
+        -ms-flex-order: 1;
+            order: 1;
+    -webkit-flex-direction: column;
+        -ms-flex-direction: column;
+            flex-direction: column;
+    padding: 24px;
+    overflow: auto;
+    -webkit-overflow-scrolling: touch; }
+    md-dialog md-dialog-content:not([layout=row]) > *:first-child:not(.md-subheader) {
+      margin-top: 0; }
+    md-dialog md-dialog-content:focus {
+      outline: none; }
+    md-dialog md-dialog-content .md-subheader {
+      margin: 0; }
+      md-dialog md-dialog-content .md-subheader.sticky-clone {
+        box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16); }
+    md-dialog md-dialog-content.sticky-container {
+      padding: 0; }
+      md-dialog md-dialog-content.sticky-container > div {
+        padding: 24px;
+        padding-top: 0; }
+    md-dialog md-dialog-content .md-dialog-content-body {
+      width: 100%; }
+  md-dialog .md-actions {
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-order: 2;
+        -ms-flex-order: 2;
+            order: 2;
+    box-sizing: border-box;
+    -webkit-align-items: center;
+        -ms-flex-align: center;
+            align-items: center;
+    -webkit-justify-content: flex-end;
+        -ms-flex-pack: end;
+            justify-content: flex-end;
+    margin-bottom: 0;
+    padding-right: 8px;
+    padding-left: 16px;
+    min-height: 52px;
+    overflow: hidden; }
+    md-dialog .md-actions .md-button {
+      margin-bottom: 8px;
+      margin-left: 8px;
+      margin-right: 0;
+      margin-top: 8px; }
+  md-dialog.md-content-overflow .md-actions {
+    border-top-width: 1px;
+    border-top-style: solid; }
+
+@media screen and (-ms-high-contrast: active) {
+  md-dialog {
+    border: 1px solid #fff; } }
+
+md-divider {
+  display: block;
+  border-top-width: 1px;
+  border-top-style: solid;
+  margin: 0; }
+  md-divider[md-inset] {
+    margin-left: 80px; }
+
+md-fab-speed-dial {
+  position: relative;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-align-items: center;
+      -ms-flex-align: center;
+          align-items: center;
+  /*
+   * Handle the animations
+   */ }
+  md-fab-speed-dial.md-fab-bottom-right {
+    top: auto;
+    right: 20px;
+    bottom: 20px;
+    left: auto;
+    position: absolute; }
+  md-fab-speed-dial.md-fab-bottom-left {
+    top: auto;
+    right: auto;
+    bottom: 20px;
+    left: 20px;
+    position: absolute; }
+  md-fab-speed-dial.md-fab-top-right {
+    top: 20px;
+    right: 20px;
+    bottom: auto;
+    left: auto;
+    position: absolute; }
+  md-fab-speed-dial.md-fab-top-left {
+    top: 20px;
+    right: auto;
+    bottom: auto;
+    left: 20px;
+    position: absolute; }
+  md-fab-speed-dial .md-css-variables {
+    z-index: 20; }
+  md-fab-speed-dial.md-is-open .md-fab-action-item {
+    visibility: visible;
+    -webkit-align-items: center;
+        -ms-flex-align: center;
+            align-items: center; }
+  md-fab-speed-dial md-fab-actions {
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    height: auto; }
+    md-fab-speed-dial md-fab-actions .md-fab-action-item {
+      visibility: hidden;
+      transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); }
+  md-fab-speed-dial.md-down {
+    -webkit-flex-direction: column;
+        -ms-flex-direction: column;
+            flex-direction: column; }
+    md-fab-speed-dial.md-down md-fab-trigger {
+      -webkit-order: 1;
+          -ms-flex-order: 1;
+              order: 1; }
+    md-fab-speed-dial.md-down md-fab-actions {
+      -webkit-flex-direction: column;
+          -ms-flex-direction: column;
+              flex-direction: column;
+      -webkit-order: 2;
+          -ms-flex-order: 2;
+              order: 2; }
+  md-fab-speed-dial.md-up {
+    -webkit-flex-direction: column;
+        -ms-flex-direction: column;
+            flex-direction: column; }
+    md-fab-speed-dial.md-up md-fab-trigger {
+      -webkit-order: 2;
+          -ms-flex-order: 2;
+              order: 2; }
+    md-fab-speed-dial.md-up md-fab-actions {
+      -webkit-flex-direction: column-reverse;
+          -ms-flex-direction: column-reverse;
+              flex-direction: column-reverse;
+      -webkit-order: 1;
+          -ms-flex-order: 1;
+              order: 1; }
+  md-fab-speed-dial.md-left {
+    -webkit-flex-direction: row;
+        -ms-flex-direction: row;
+            flex-direction: row; }
+    md-fab-speed-dial.md-left md-fab-trigger {
+      -webkit-order: 2;
+          -ms-flex-order: 2;
+              order: 2; }
+    md-fab-speed-dial.md-left md-fab-actions {
+      -webkit-flex-direction: row-reverse;
+          -ms-flex-direction: row-reverse;
+              flex-direction: row-reverse;
+      -webkit-order: 1;
+          -ms-flex-order: 1;
+              order: 1; }
+      md-fab-speed-dial.md-left md-fab-actions .md-fab-action-item {
+        transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); }
+  md-fab-speed-dial.md-right {
+    -webkit-flex-direction: row;
+        -ms-flex-direction: row;
+            flex-direction: row; }
+    md-fab-speed-dial.md-right md-fab-trigger {
+      -webkit-order: 1;
+          -ms-flex-order: 1;
+              order: 1; }
+    md-fab-speed-dial.md-right md-fab-actions {
+      -webkit-flex-direction: row;
+          -ms-flex-direction: row;
+              flex-direction: row;
+      -webkit-order: 2;
+          -ms-flex-order: 2;
+              order: 2; }
+      md-fab-speed-dial.md-right md-fab-actions .md-fab-action-item {
+        transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); }
+  md-fab-speed-dial.md-scale .md-fab-action-item {
+    opacity: 0;
+    -webkit-transform: scale(0);
+            transform: scale(0);
+    transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
+    transition-duration: 0.14286s; }
+
+md-fab-toolbar {
+  display: block;
+  /*
+   * Closed styling
+   */
+  /*
+   * Hover styling
+   */ }
+  md-fab-toolbar.md-fab-bottom-right {
+    top: auto;
+    right: 20px;
+    bottom: 20px;
+    left: auto;
+    position: absolute; }
+  md-fab-toolbar.md-fab-bottom-left {
+    top: auto;
+    right: auto;
+    bottom: 20px;
+    left: 20px;
+    position: absolute; }
+  md-fab-toolbar.md-fab-top-right {
+    top: 20px;
+    right: 20px;
+    bottom: auto;
+    left: auto;
+    position: absolute; }
+  md-fab-toolbar.md-fab-top-left {
+    top: 20px;
+    right: auto;
+    bottom: auto;
+    left: 20px;
+    position: absolute; }
+  md-fab-toolbar .md-fab-toolbar-wrapper {
+    display: block;
+    position: relative;
+    overflow: hidden;
+    height: 68px; }
+  md-fab-toolbar md-fab-trigger {
+    position: absolute;
+    z-index: 20; }
+    md-fab-toolbar md-fab-trigger button {
+      overflow: visible !important; }
+    md-fab-toolbar md-fab-trigger .md-fab-toolbar-background {
+      display: block;
+      position: absolute;
+      z-index: 21;
+      opacity: 1;
+      transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); }
+    md-fab-toolbar md-fab-trigger md-icon {
+      position: relative;
+      z-index: 22;
+      opacity: 1;
+      transition: all 200ms ease-in; }
+  md-fab-toolbar.md-left md-fab-trigger {
+    right: 0; }
+  md-fab-toolbar.md-left .md-toolbar-tools {
+    -webkit-flex-direction: row-reverse;
+        -ms-flex-direction: row-reverse;
+            flex-direction: row-reverse; }
+    md-fab-toolbar.md-left .md-toolbar-tools > .md-button:first-child {
+      margin-right: 0.6rem; }
+    md-fab-toolbar.md-left .md-toolbar-tools > .md-button:first-child {
+      margin-left: -0.8rem; }
+    md-fab-toolbar.md-left .md-toolbar-tools > .md-button:last-child {
+      margin-right: 8px; }
+  md-fab-toolbar.md-right md-fab-trigger {
+    left: 0; }
+  md-fab-toolbar.md-right .md-toolbar-tools {
+    -webkit-flex-direction: row;
+        -ms-flex-direction: row;
+            flex-direction: row; }
+  md-fab-toolbar md-toolbar {
+    background-color: transparent !important;
+    pointer-events: none;
+    z-index: 23; }
+    md-fab-toolbar md-toolbar .md-toolbar-tools {
+      padding: 0 20px;
+      margin-top: 3px; }
+    md-fab-toolbar md-toolbar .md-fab-action-item {
+      opacity: 0;
+      -webkit-transform: scale(0);
+              transform: scale(0);
+      transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
+      transition-duration: 0.15s; }
+  md-fab-toolbar.md-is-open md-fab-trigger > button {
+    box-shadow: none; }
+    md-fab-toolbar.md-is-open md-fab-trigger > button md-icon {
+      opacity: 0; }
+  md-fab-toolbar.md-is-open .md-fab-action-item {
+    opacity: 1;
+    -webkit-transform: scale(1);
+            transform: scale(1); }
+
+md-grid-list {
+  box-sizing: border-box;
+  display: block;
+  position: relative; }
+  md-grid-list md-grid-tile, md-grid-list md-grid-tile > figure, md-grid-list md-grid-tile-header, md-grid-list md-grid-tile-footer {
+    box-sizing: border-box; }
+  md-grid-list md-grid-tile {
+    display: block;
+    position: absolute; }
+    md-grid-list md-grid-tile figure {
+      display: -webkit-flex;
+      display: -ms-flexbox;
+      display: flex;
+      -webkit-align-items: center;
+          -ms-flex-align: center;
+              align-items: center;
+      -webkit-justify-content: center;
+          -ms-flex-pack: center;
+              justify-content: center;
+      height: 100%;
+      position: absolute;
+      top: 0;
+      right: 0;
+      bottom: 0;
+      left: 0;
+      padding: 0;
+      margin: 0; }
+    md-grid-list md-grid-tile md-grid-tile-header, md-grid-list md-grid-tile md-grid-tile-footer {
+      display: -webkit-flex;
+      display: -ms-flexbox;
+      display: flex;
+      -webkit-flex-direction: row;
+          -ms-flex-direction: row;
+              flex-direction: row;
+      -webkit-align-items: center;
+          -ms-flex-align: center;
+              align-items: center;
+      height: 48px;
+      color: #fff;
+      background: rgba(0, 0, 0, 0.18);
+      overflow: hidden;
+      position: absolute;
+      left: 0;
+      right: 0; }
+      md-grid-list md-grid-tile md-grid-tile-header h3, md-grid-list md-grid-tile md-grid-tile-header h4, md-grid-list md-grid-tile md-grid-tile-footer h3, md-grid-list md-grid-tile md-grid-tile-footer h4 {
+        font-weight: 400;
+        margin: 0 0 0 16px; }
+      md-grid-list md-grid-tile md-grid-tile-header h3, md-grid-list md-grid-tile md-grid-tile-footer h3 {
+        font-size: 14px; }
+      md-grid-list md-grid-tile md-grid-tile-header h4, md-grid-list md-grid-tile md-grid-tile-footer h4 {
+        font-size: 12px; }
+    md-grid-list md-grid-tile md-grid-tile-header {
+      top: 0; }
+    md-grid-list md-grid-tile md-grid-tile-footer {
+      bottom: 0; }
+
+@media screen and (-ms-high-contrast: active) {
+  md-grid-tile {
+    border: 1px solid #fff; }
+  md-grid-tile-footer {
+    border-top: 1px solid #fff; } }
+
+md-icon {
+  margin: auto;
+  background-repeat: no-repeat no-repeat;
+  display: inline-block;
+  vertical-align: middle;
+  fill: currentColor;
+  height: 24px;
+  width: 24px; }
+  md-icon svg {
+    pointer-events: none; }
+  md-icon[md-font-icon] {
+    line-height: 1;
+    width: auto; }
+
+md-input-container {
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  position: relative;
+  -webkit-flex-direction: column;
+      -ms-flex-direction: column;
+          flex-direction: column;
+  padding: 2px;
+  padding-bottom: 26px;
+  /*
+   * The .md-input class is added to the input/textarea
+   */ }
+  md-input-container > md-icon {
+    position: absolute;
+    top: 5px;
+    left: 2px; }
+    md-input-container > md-icon + input {
+      margin-left: 36px; }
+  md-input-container textarea, md-input-container input[type="text"], md-input-container input[type="password"], md-input-container input[type="datetime"], md-input-container input[type="datetime-local"], md-input-container input[type="date"], md-input-container input[type="month"], md-input-container input[type="time"], md-input-container input[type="week"], md-input-container input[type="number"], md-input-container input[type="email"], md-input-container input[type="url"], md-input-container input[type="search"], md-input-container input[type="tel"], md-input-container input[type="color"] {
+    /* remove default appearance from all input/textarea */
+    -moz-appearance: none;
+    -webkit-appearance: none; }
+  md-input-container input[type="date"], md-input-container input[type="datetime-local"], md-input-container input[type="month"], md-input-container input[type="time"], md-input-container input[type="week"] {
+    min-height: 26px; }
+  md-input-container textarea {
+    resize: none;
+    overflow: hidden; }
+  md-input-container textarea.md-input {
+    min-height: 26px;
+    -ms-flex-preferred-size: auto; }
+  md-input-container label {
+    position: relative;
+    top: -2px; }
+  md-input-container label:not(.md-no-float), md-input-container .md-placeholder {
+    -webkit-order: 1;
+        -ms-flex-order: 1;
+            order: 1;
+    pointer-events: none;
+    -webkit-font-smoothing: antialiased;
+    padding-left: 2px;
+    z-index: 1;
+    -webkit-transform: translate3d(0, 28px, 0) scale(1);
+            transform: translate3d(0, 28px, 0) scale(1);
+    transition: -webkit-transform cubic-bezier(0.25, 0.8, 0.25, 1) 0.25s;
+    transition: transform cubic-bezier(0.25, 0.8, 0.25, 1) 0.25s;
+    -webkit-transform-origin: left top;
+            transform-origin: left top; }
+    html[dir=rtl] md-input-container label:not(.md-no-float), html[dir=rtl] md-input-container .md-placeholder {
+      -webkit-transform-origin: right top;
+              transform-origin: right top;
+      unicode-bidi: embed; }
+    body[dir=rtl] md-input-container label:not(.md-no-float), body[dir=rtl] md-input-container .md-placeholder {
+      -webkit-transform-origin: right top;
+              transform-origin: right top;
+      unicode-bidi: embed; }
+    md-input-container label:not(.md-no-float) bdo[dir=rtl], md-input-container .md-placeholder bdo[dir=rtl] {
+      direction: rtl;
+      unicode-bidi: bidi-override; }
+    md-input-container label:not(.md-no-float) bdo[dir=ltr], md-input-container .md-placeholder bdo[dir=ltr] {
+      direction: ltr;
+      unicode-bidi: bidi-override; }
+  md-input-container .md-placeholder {
+    position: absolute;
+    top: 0;
+    opacity: 0;
+    transition-property: opacity, -webkit-transform;
+    transition-property: opacity, transform;
+    -webkit-transform: translate3d(0, 30px, 0);
+            transform: translate3d(0, 30px, 0); }
+    md-input-container .md-placeholder.md-static {
+      position: static; }
+  md-input-container.md-input-focused .md-placeholder {
+    opacity: 1;
+    -webkit-transform: translate3d(0, 24px, 0);
+            transform: translate3d(0, 24px, 0); }
+  md-input-container.md-input-has-value .md-placeholder {
+    transition: none;
+    opacity: 0; }
+  md-input-container:not(.md-input-has-value) input:not(:focus), md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-ampm-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-day-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-hour-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-millisecond-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-minute-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-month-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-second-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-week-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-year-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-text {
+    color: transparent; }
+  md-input-container .md-input {
+    -webkit-order: 2;
+        -ms-flex-order: 2;
+            order: 2;
+    display: block;
+    margin-top: auto;
+    background: none;
+    padding-top: 2px;
+    padding-bottom: 1px;
+    padding-left: 2px;
+    padding-right: 2px;
+    border-width: 0 0 1px 0;
+    line-height: 26px;
+    -ms-flex-preferred-size: 26px;
+    border-radius: 0; }
+    md-input-container .md-input:focus {
+      outline: none; }
+    md-input-container .md-input:invalid {
+      outline: none;
+      box-shadow: none; }
+    md-input-container .md-input.md-no-flex {
+      -webkit-flex: none !important;
+          -ms-flex: none !important;
+              flex: none !important; }
+  md-input-container ng-messages, md-input-container data-ng-messages, md-input-container x-ng-messages, md-input-container [ng-messages], md-input-container [data-ng-messages], md-input-container [x-ng-messages] {
+    -webkit-order: 3;
+        -ms-flex-order: 3;
+            order: 3;
+    position: relative; }
+  md-input-container ng-message, md-input-container data-ng-message, md-input-container x-ng-message, md-input-container [ng-message], md-input-container [data-ng-message], md-input-container [x-ng-message], md-input-container .md-char-counter {
+    position: absolute;
+    font-size: 12px;
+    line-height: 24px; }
+    md-input-container ng-message:not(.md-char-counter), md-input-container data-ng-message:not(.md-char-counter), md-input-container x-ng-message:not(.md-char-counter), md-input-container [ng-message]:not(.md-char-counter), md-input-container [data-ng-message]:not(.md-char-counter), md-input-container [x-ng-message]:not(.md-char-counter), md-input-container .md-char-counter:not(.md-char-counter) {
+      padding-right: 30px; }
+    md-input-container ng-message.ng-enter, md-input-container data-ng-message.ng-enter, md-input-container x-ng-message.ng-enter, md-input-container [ng-message].ng-enter, md-input-container [data-ng-message].ng-enter, md-input-container [x-ng-message].ng-enter, md-input-container .md-char-counter.ng-enter {
+      transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
+      transition-delay: 0.2s; }
+    md-input-container ng-message.ng-leave, md-input-container data-ng-message.ng-leave, md-input-container x-ng-message.ng-leave, md-input-container [ng-message].ng-leave, md-input-container [data-ng-message].ng-leave, md-input-container [x-ng-message].ng-leave, md-input-container .md-char-counter.ng-leave {
+      transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); }
+    md-input-container ng-message.ng-enter, md-input-container ng-message.ng-leave.ng-leave-active, md-input-container data-ng-message.ng-enter, md-input-container data-ng-message.ng-leave.ng-leave-active, md-input-container x-ng-message.ng-enter, md-input-container x-ng-message.ng-leave.ng-leave-active, md-input-container [ng-message].ng-enter, md-input-container [ng-message].ng-leave.ng-leave-active, md-input-container [data-ng-message].ng-enter, md-input-container [data-ng-message].ng-leave.ng-leave-active, md-input-container [x-ng-message].ng-enter, md-input-container [x-ng-message].ng-leave.ng-leave-active, md-input-container .md-char-counter.ng-enter, md-input-container .md-char-counter.ng-leave.ng-leave-active {
+      opacity: 0;
+      -webkit-transform: translate3d(0, -20%, 0);
+              transform: translate3d(0, -20%, 0); }
+    md-input-container ng-message.ng-leave, md-input-container ng-message.ng-enter.ng-enter-active, md-input-container data-ng-message.ng-leave, md-input-container data-ng-message.ng-enter.ng-enter-active, md-input-container x-ng-message.ng-leave, md-input-container x-ng-message.ng-enter.ng-enter-active, md-input-container [ng-message].ng-leave, md-input-container [ng-message].ng-enter.ng-enter-active, md-input-container [data-ng-message].ng-leave, md-input-container [data-ng-message].ng-enter.ng-enter-active, md-input-container [x-ng-message].ng-leave, md-input-container [x-ng-message].ng-enter.ng-enter-active, md-input-container .md-char-counter.ng-leave, md-input-container .md-char-counter.ng-enter.ng-enter-active {
+      opacity: 1;
+      -webkit-transform: translate3d(0, 0, 0);
+              transform: translate3d(0, 0, 0); }
+  md-input-container .md-char-counter {
+    bottom: 2px;
+    right: 2px; }
+  md-input-container.md-input-focused label:not(.md-no-float), md-input-container.md-input-has-value label:not(.md-no-float) {
+    -webkit-transform: translate3d(0, 6px, 0) scale(0.75);
+            transform: translate3d(0, 6px, 0) scale(0.75); }
+  md-input-container.md-input-focused .md-input, md-input-container .md-input.ng-invalid.ng-dirty {
+    padding-bottom: 0;
+    border-width: 0 0 2px 0; }
+  md-input-container .md-input[disabled], [disabled] md-input-container .md-input {
+    background-position: 0 bottom;
+    background-size: 4px 1px;
+    background-repeat: repeat-x;
+    margin-bottom: -1px; }
+
+md-input-container.md-icon-float {
+  margin-top: -16px;
+  transition: margin-top 0.5s cubic-bezier(0.25, 0.8, 0.25, 1); }
+  md-input-container.md-icon-float > label {
+    pointer-events: none;
+    position: absolute;
+    margin-left: 36px; }
+  md-input-container.md-icon-float > md-icon {
+    top: 26px;
+    left: 2px; }
+    md-input-container.md-icon-float > md-icon + input, md-input-container.md-icon-float > md-icon + textarea {
+      margin-left: 36px; }
+  md-input-container.md-icon-float > input, md-input-container.md-icon-float > textarea {
+    padding-top: 24px; }
+  md-input-container.md-icon-float.md-input-focused, md-input-container.md-icon-float.md-input-has-value {
+    margin-top: -8px; }
+    md-input-container.md-icon-float.md-input-focused label, md-input-container.md-icon-float.md-input-has-value label {
+      -webkit-transform: translate3d(0, 6px, 0) scale(0.75);
+              transform: translate3d(0, 6px, 0) scale(0.75);
+      transition: -webkit-transform cubic-bezier(0.25, 0.8, 0.25, 1) 0.5s;
+      transition: transform cubic-bezier(0.25, 0.8, 0.25, 1) 0.5s; }
+
+@media screen and (-ms-high-contrast: active) {
+  md-input-container.md-default-theme > md-icon {
+    fill: #fff; } }
+
+md-list {
+  display: block;
+  padding: 8px 0px 8px 0px; }
+  md-list .md-subheader {
+    font-size: 14px;
+    font-weight: 500;
+    letter-spacing: 0.01em;
+    line-height: 0.75em; }
+
+md-list-item.md-proxy-focus.md-focused .md-no-style {
+  transition: background-color 0.15s linear; }
+md-list-item.md-no-proxy, md-list-item .md-no-style {
+  position: relative;
+  padding: 0px 16px;
+  -webkit-flex: 1;
+      -ms-flex: 1;
+          flex: 1; }
+  md-list-item.md-no-proxy.md-button, md-list-item .md-no-style.md-button {
+    font-size: inherit;
+    height: inherit;
+    text-align: left;
+    text-transform: none;
+    width: 100%;
+    white-space: normal;
+    -webkit-flex-direction: inherit;
+        -ms-flex-direction: inherit;
+            flex-direction: inherit;
+    -webkit-align-items: inherit;
+        -ms-flex-align: inherit;
+            align-items: inherit; }
+  md-list-item.md-no-proxy:focus, md-list-item .md-no-style:focus {
+    outline: none; }
+md-list-item.md-with-secondary {
+  position: relative; }
+md-list-item.md-clickable:hover {
+  cursor: pointer; }
+md-list-item md-divider {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  width: 100%; }
+  md-list-item md-divider[md-inset] {
+    left: 96px;
+    width: calc(100% - 96px);
+    margin: 0; }
+
+md-list-item, md-list-item .md-list-item-inner {
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-justify-content: flex-start;
+      -ms-flex-pack: start;
+          justify-content: flex-start;
+  -webkit-align-items: center;
+      -ms-flex-align: center;
+          align-items: center;
+  min-height: 64px; }
+  md-list-item > div.md-primary > md-icon, md-list-item > div.md-secondary > md-icon, md-list-item > md-icon:first-child, md-list-item > md-icon.md-secondary, md-list-item .md-list-item-inner > div.md-primary > md-icon, md-list-item .md-list-item-inner > div.md-secondary > md-icon, md-list-item .md-list-item-inner > md-icon:first-child, md-list-item .md-list-item-inner > md-icon.md-secondary {
+    width: 24px;
+    margin-top: 16px;
+    margin-bottom: 12px;
+    box-sizing: content-box; }
+  md-list-item > div.md-primary > md-checkbox, md-list-item > div.md-secondary > md-checkbox, md-list-item > md-checkbox:first-child, md-list-item md-checkbox.md-secondary, md-list-item .md-list-item-inner > div.md-primary > md-checkbox, md-list-item .md-list-item-inner > div.md-secondary > md-checkbox, md-list-item .md-list-item-inner > md-checkbox:first-child, md-list-item .md-list-item-inner md-checkbox.md-secondary {
+    -webkit-align-self: center;
+        -ms-flex-item-align: center;
+            align-self: center; }
+    md-list-item > div.md-primary > md-checkbox .md-label, md-list-item > div.md-secondary > md-checkbox .md-label, md-list-item > md-checkbox:first-child .md-label, md-list-item md-checkbox.md-secondary .md-label, md-list-item .md-list-item-inner > div.md-primary > md-checkbox .md-label, md-list-item .md-list-item-inner > div.md-secondary > md-checkbox .md-label, md-list-item .md-list-item-inner > md-checkbox:first-child .md-label, md-list-item .md-list-item-inner md-checkbox.md-secondary .md-label {
+      display: none; }
+  md-list-item > md-icon:first-child, md-list-item .md-list-item-inner > md-icon:first-child {
+    margin-right: 32px; }
+  md-list-item > md-checkbox:first-child, md-list-item .md-list-item-inner > md-checkbox:first-child {
+    width: 24px;
+    margin-left: 3px;
+    margin-right: 29px; }
+  md-list-item > .md-avatar:first-child, md-list-item .md-list-item-inner > .md-avatar:first-child {
+    width: 40px;
+    height: 40px;
+    margin-top: 8px;
+    margin-bottom: 8px;
+    margin-right: 16px;
+    border-radius: 50%;
+    box-sizing: content-box; }
+  md-list-item md-checkbox.md-secondary, md-list-item md-switch.md-secondary, md-list-item .md-list-item-inner md-checkbox.md-secondary, md-list-item .md-list-item-inner md-switch.md-secondary {
+    margin-right: 0;
+    margin-top: 0;
+    margin-bottom: 0; }
+  md-list-item button.md-button.md-secondary-container, md-list-item .md-list-item-inner button.md-button.md-secondary-container {
+    background-color: transparent;
+    -webkit-align-self: center;
+        -ms-flex-item-align: center;
+            align-self: center;
+    border-radius: 50%;
+    margin: 0px;
+    min-width: 0px; }
+    md-list-item button.md-button.md-secondary-container .md-ripple, md-list-item button.md-button.md-secondary-container .md-ripple-container, md-list-item .md-list-item-inner button.md-button.md-secondary-container .md-ripple, md-list-item .md-list-item-inner button.md-button.md-secondary-container .md-ripple-container {
+      border-radius: 50%; }
+  md-list-item .md-secondary-container, md-list-item .md-secondary, md-list-item .md-list-item-inner .md-secondary-container, md-list-item .md-list-item-inner .md-secondary {
+    margin-left: 16px;
+    position: absolute;
+    right: 16px;
+    top: 50%;
+    -webkit-transform: translate3d(0, -50%, 0);
+            transform: translate3d(0, -50%, 0); }
+  md-list-item > .md-button.md-secondary-container > .md-secondary, md-list-item .md-list-item-inner > .md-button.md-secondary-container > .md-secondary {
+    margin-left: 0px;
+    position: static; }
+  md-list-item > p, md-list-item > .md-list-item-inner > p, md-list-item .md-list-item-inner > p, md-list-item .md-list-item-inner > .md-list-item-inner > p {
+    -webkit-flex: 1;
+        -ms-flex: 1;
+            flex: 1;
+    margin: 0; }
+
+md-list-item.md-2-line, md-list-item.md-2-line > .md-no-style, md-list-item.md-3-line, md-list-item.md-3-line > .md-no-style {
+  -webkit-align-items: flex-start;
+      -ms-flex-align: start;
+          align-items: flex-start; }
+  md-list-item.md-2-line .md-list-item-text, md-list-item.md-2-line > .md-no-style .md-list-item-text, md-list-item.md-3-line .md-list-item-text, md-list-item.md-3-line > .md-no-style .md-list-item-text {
+    -webkit-flex: 1;
+        -ms-flex: 1;
+            flex: 1;
+    padding: 16px 0;
+    text-overflow: ellipsis; }
+    md-list-item.md-2-line .md-list-item-text.md-offset, md-list-item.md-2-line > .md-no-style .md-list-item-text.md-offset, md-list-item.md-3-line .md-list-item-text.md-offset, md-list-item.md-3-line > .md-no-style .md-list-item-text.md-offset {
+      margin-left: 56px; }
+    md-list-item.md-2-line .md-list-item-text h3, md-list-item.md-2-line > .md-no-style .md-list-item-text h3, md-list-item.md-3-line .md-list-item-text h3, md-list-item.md-3-line > .md-no-style .md-list-item-text h3 {
+      font-size: 16px;
+      font-weight: 400;
+      letter-spacing: 0.01em;
+      margin: 0 0 6px 0;
+      line-height: 0.75em; }
+    md-list-item.md-2-line .md-list-item-text h4, md-list-item.md-2-line > .md-no-style .md-list-item-text h4, md-list-item.md-3-line .md-list-item-text h4, md-list-item.md-3-line > .md-no-style .md-list-item-text h4 {
+      font-size: 14px;
+      letter-spacing: 0.01em;
+      margin: 10px 0 5px 0;
+      font-weight: 400;
+      line-height: 0.75em; }
+    md-list-item.md-2-line .md-list-item-text p, md-list-item.md-2-line > .md-no-style .md-list-item-text p, md-list-item.md-3-line .md-list-item-text p, md-list-item.md-3-line > .md-no-style .md-list-item-text p {
+      font-size: 14px;
+      font-weight: 500;
+      letter-spacing: 0.01em;
+      margin: 0 0 0 0;
+      line-height: 1.6em; }
+
+md-list-item.md-2-line > .md-avatar:first-child, md-list-item.md-2-line > .md-no-style > .md-avatar:first-child {
+  margin-top: 12px; }
+md-list-item.md-2-line > md-icon:first-child, md-list-item.md-2-line > .md-no-style > md-icon:first-child {
+  -webkit-align-self: flex-start;
+      -ms-flex-item-align: start;
+          align-self: flex-start; }
+md-list-item.md-2-line .md-list-item-text, md-list-item.md-2-line > .md-no-style .md-list-item-text {
+  -webkit-flex: 1;
+      -ms-flex: 1;
+          flex: 1;
+  padding-top: 19px; }
+
+md-list-item.md-3-line > md-icon:first-child, md-list-item.md-3-line > .md-avatar:first-child, md-list-item.md-3-line > .md-no-style > md-icon:first-child, md-list-item.md-3-line > .md-no-style > .md-avatar:first-child {
+  margin-top: 16px; }
+
+.md-open-menu-container {
+  position: fixed;
+  left: 0;
+  top: 0;
+  z-index: 99;
+  opacity: 0;
+  border-radius: 2px; }
+  .md-open-menu-container md-menu-divider {
+    margin-top: 4px;
+    margin-bottom: 4px;
+    height: 1px;
+    width: 100%; }
+  .md-open-menu-container md-menu-content > * {
+    opacity: 0; }
+  .md-open-menu-container:not(.md-clickable) {
+    pointer-events: none; }
+  .md-open-menu-container.md-active {
+    opacity: 1;
+    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
+    transition-duration: 200ms; }
+    .md-open-menu-container.md-active > md-menu-content > * {
+      opacity: 1;
+      transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
+      transition-duration: 200ms;
+      transition-delay: 100ms; }
+  .md-open-menu-container.md-leave {
+    opacity: 0;
+    transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
+    transition-duration: 250ms; }
+
+md-menu-content {
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-flex-direction: column;
+      -ms-flex-direction: column;
+          flex-direction: column;
+  padding: 8px 0;
+  max-height: 304px;
+  overflow-y: auto; }
+  md-menu-content.md-dense {
+    max-height: 208px; }
+    md-menu-content.md-dense md-menu-item {
+      height: 32px;
+      min-height: 0px; }
+
+md-menu-item {
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-flex-direction: row;
+      -ms-flex-direction: row;
+          flex-direction: row;
+  min-height: 48px;
+  height: 48px;
+  -webkit-align-content: center;
+      -ms-flex-line-pack: center;
+          align-content: center;
+  -webkit-justify-content: flex-start;
+      -ms-flex-pack: start;
+          justify-content: flex-start; }
+  md-menu-item > * {
+    width: 100%;
+    margin: auto 0;
+    padding-left: 16px;
+    padding-right: 16px; }
+  md-menu-item > .md-button {
+    border-radius: 0;
+    margin: auto 0;
+    font-size: 15px;
+    text-transform: none;
+    font-weight: 400;
+    text-align: start;
+    height: 100%;
+    padding-left: 16px;
+    padding-right: 16px;
+    display: inline-block;
+    -webkit-align-items: baseline;
+        -ms-flex-align: baseline;
+            align-items: baseline;
+    -webkit-align-content: left;
+        -ms-flex-line-pack: left;
+            align-content: left;
+    width: 100%; }
+    md-menu-item > .md-button md-icon {
+      margin: auto 16px auto 0; }
+    md-menu-item > .md-button p {
+      display: inline-block;
+      margin: auto; }
+    md-menu-item > .md-button span {
+      margin-top: auto;
+      margin-bottom: auto; }
+
+.md-menu {
+  padding: 8px 0; }
+
+md-toolbar .md-menu {
+  height: auto;
+  margin: auto; }
+
+@media (max-width: 599px) {
+  md-menu-content {
+    min-width: 112px; }
+  md-menu-content[width="3"] {
+    min-width: 168px; }
+  md-menu-content[width="4"] {
+    min-width: 224px; }
+  md-menu-content[width="5"] {
+    min-width: 280px; }
+  md-menu-content[width="6"] {
+    min-width: 336px; }
+  md-menu-content[width="7"] {
+    min-width: 392px; } }
+
+@media (min-width: 600px) {
+  md-menu-content {
+    min-width: 96px; }
+  md-menu-content[width="3"] {
+    min-width: 192px; }
+  md-menu-content[width="4"] {
+    min-width: 256px; }
+  md-menu-content[width="5"] {
+    min-width: 320px; }
+  md-menu-content[width="6"] {
+    min-width: 384px; }
+  md-menu-content[width="7"] {
+    min-width: 448px; } }
+
+md-toolbar.md-menu-toolbar h2.md-toolbar-tools {
+  line-height: 1rem;
+  height: auto;
+  padding: 28px;
+  padding-bottom: 12px; }
+
+md-menu-bar {
+  padding: 0 20px;
+  display: block;
+  position: relative;
+  z-index: 2; }
+  md-menu-bar .md-menu {
+    display: inline-block;
+    padding: 0;
+    position: relative; }
+  md-menu-bar button {
+    font-size: 14px;
+    padding: 0 10px;
+    margin: 0;
+    border: 0;
+    background-color: transparent;
+    height: 40px; }
+  md-menu-bar md-backdrop.md-menu-backdrop {
+    z-index: -2; }
+
+md-menu-content.md-menu-bar-menu.md-dense {
+  max-height: none;
+  padding: 16px 0; }
+  md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent {
+    position: relative; }
+    md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent > md-icon {
+      position: absolute;
+      padding: 0;
+      width: 24px;
+      top: 6px;
+      left: 24px; }
+    md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent > .md-button, md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu > .md-button {
+      padding: 0 32px 0 64px; }
+  md-menu-content.md-menu-bar-menu.md-dense .md-button {
+    min-height: 0;
+    height: 32px;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex; }
+    md-menu-content.md-menu-bar-menu.md-dense .md-button span {
+      -webkit-flex-grow: 1;
+          -ms-flex-positive: 1;
+              flex-grow: 1; }
+    md-menu-content.md-menu-bar-menu.md-dense .md-button span.md-alt-text {
+      -webkit-flex-grow: 0;
+          -ms-flex-positive: 0;
+              flex-grow: 0;
+      -webkit-align-self: flex-end;
+          -ms-flex-item-align: end;
+              align-self: flex-end;
+      margin: 0 8px; }
+  md-menu-content.md-menu-bar-menu.md-dense md-menu-divider {
+    margin: 8px 0; }
+  md-menu-content.md-menu-bar-menu.md-dense .md-menu {
+    padding: 0; }
+    md-menu-content.md-menu-bar-menu.md-dense .md-menu > .md-button {
+      position: relative;
+      margin: 0;
+      width: 100%;
+      text-align: left;
+      text-align: start;
+      text-transform: none;
+      font-weight: normal;
+      border-radius: 0px;
+      padding-left: 16px; }
+      md-menu-content.md-menu-bar-menu.md-dense .md-menu > .md-button:after {
+        display: block;
+        content: '\25BC';
+        position: absolute;
+        top: 0px;
+        speak: none;
+        -webkit-transform: rotate(270deg) scaleY(0.45) scaleX(0.9);
+                transform: rotate(270deg) scaleY(0.45) scaleX(0.9);
+        right: 28px; }
+
+@-webkit-keyframes outer-rotate {
+  100% {
+    -webkit-transform: rotate(360deg);
+            transform: rotate(360deg); } }
+
+@keyframes outer-rotate {
+  100% {
+    -webkit-transform: rotate(360deg);
+            transform: rotate(360deg); } }
+
+@-webkit-keyframes left-wobble {
+  0%, 100% {
+    -webkit-transform: rotate(130deg);
+            transform: rotate(130deg); }
+
+  50% {
+    -webkit-transform: rotate(-5deg);
+            transform: rotate(-5deg); } }
+
+@keyframes left-wobble {
+  0%, 100% {
+    -webkit-transform: rotate(130deg);
+            transform: rotate(130deg); }
+
+  50% {
+    -webkit-transform: rotate(-5deg);
+            transform: rotate(-5deg); } }
+
+@-webkit-keyframes right-wobble {
+  0%, 100% {
+    -webkit-transform: rotate(-130deg);
+            transform: rotate(-130deg); }
+
+  50% {
+    -webkit-transform: rotate(5deg);
+            transform: rotate(5deg); } }
+
+@keyframes right-wobble {
+  0%, 100% {
+    -webkit-transform: rotate(-130deg);
+            transform: rotate(-130deg); }
+
+  50% {
+    -webkit-transform: rotate(5deg);
+            transform: rotate(5deg); } }
+
+@-webkit-keyframes sporadic-rotate {
+  12.5% {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+
+  25% {
+    -webkit-transform: rotate(270deg);
+            transform: rotate(270deg); }
+
+  37.5% {
+    -webkit-transform: rotate(405deg);
+            transform: rotate(405deg); }
+
+  50% {
+    -webkit-transform: rotate(540deg);
+            transform: rotate(540deg); }
+
+  62.5% {
+    -webkit-transform: rotate(675deg);
+            transform: rotate(675deg); }
+
+  75% {
+    -webkit-transform: rotate(810deg);
+            transform: rotate(810deg); }
+
+  87.5% {
+    -webkit-transform: rotate(945deg);
+            transform: rotate(945deg); }
+
+  100% {
+    -webkit-transform: rotate(1080deg);
+            transform: rotate(1080deg); } }
+
+@keyframes sporadic-rotate {
+  12.5% {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+
+  25% {
+    -webkit-transform: rotate(270deg);
+            transform: rotate(270deg); }
+
+  37.5% {
+    -webkit-transform: rotate(405deg);
+            transform: rotate(405deg); }
+
+  50% {
+    -webkit-transform: rotate(540deg);
+            transform: rotate(540deg); }
+
+  62.5% {
+    -webkit-transform: rotate(675deg);
+            transform: rotate(675deg); }
+
+  75% {
+    -webkit-transform: rotate(810deg);
+            transform: rotate(810deg); }
+
+  87.5% {
+    -webkit-transform: rotate(945deg);
+            transform: rotate(945deg); }
+
+  100% {
+    -webkit-transform: rotate(1080deg);
+            transform: rotate(1080deg); } }
+
+md-progress-circular {
+  width: 100px;
+  height: 100px;
+  display: block;
+  position: relative;
+  padding-top: 0 !important;
+  margin-bottom: 0 !important;
+  overflow: hidden;
+  -webkit-transform: scale(0.5);
+          transform: scale(0.5); }
+  md-progress-circular .md-inner {
+    width: 100px;
+    height: 100px;
+    position: relative; }
+    md-progress-circular .md-inner .md-gap {
+      position: absolute;
+      left: 49px;
+      right: 49px;
+      top: 0;
+      bottom: 0;
+      border-top-width: 10px;
+      border-top-style: solid;
+      box-sizing: border-box; }
+    md-progress-circular .md-inner .md-left, md-progress-circular .md-inner .md-right {
+      position: absolute;
+      top: 0;
+      height: 100px;
+      width: 49px;
+      overflow: hidden; }
+      md-progress-circular .md-inner .md-left .md-half-circle, md-progress-circular .md-inner .md-right .md-half-circle {
+        position: absolute;
+        top: 0;
+        width: 100px;
+        height: 100px;
+        box-sizing: border-box;
+        border-width: 10px;
+        border-style: solid;
+        border-bottom-color: transparent;
+        border-radius: 50%; }
+    md-progress-circular .md-inner .md-left {
+      left: 0; }
+      md-progress-circular .md-inner .md-left .md-half-circle {
+        left: 0;
+        border-right-color: transparent; }
+    md-progress-circular .md-inner .md-right {
+      right: 0; }
+      md-progress-circular .md-inner .md-right .md-half-circle {
+        right: 0;
+        border-left-color: transparent; }
+  md-progress-circular[value="0"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="0"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-135deg);
+            transform: rotate(-135deg); }
+  md-progress-circular[value="0"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="1"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="1"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-131.4deg);
+            transform: rotate(-131.4deg); }
+  md-progress-circular[value="1"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="2"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="2"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-127.8deg);
+            transform: rotate(-127.8deg); }
+  md-progress-circular[value="2"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="3"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="3"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-124.2deg);
+            transform: rotate(-124.2deg); }
+  md-progress-circular[value="3"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="4"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="4"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-120.6deg);
+            transform: rotate(-120.6deg); }
+  md-progress-circular[value="4"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="5"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="5"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-117deg);
+            transform: rotate(-117deg); }
+  md-progress-circular[value="5"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="6"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="6"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-113.4deg);
+            transform: rotate(-113.4deg); }
+  md-progress-circular[value="6"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="7"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="7"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-109.8deg);
+            transform: rotate(-109.8deg); }
+  md-progress-circular[value="7"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="8"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="8"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-106.2deg);
+            transform: rotate(-106.2deg); }
+  md-progress-circular[value="8"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="9"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="9"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-102.6deg);
+            transform: rotate(-102.6deg); }
+  md-progress-circular[value="9"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="10"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="10"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-99deg);
+            transform: rotate(-99deg); }
+  md-progress-circular[value="10"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="11"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="11"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-95.4deg);
+            transform: rotate(-95.4deg); }
+  md-progress-circular[value="11"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="12"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="12"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-91.8deg);
+            transform: rotate(-91.8deg); }
+  md-progress-circular[value="12"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="13"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="13"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-88.2deg);
+            transform: rotate(-88.2deg); }
+  md-progress-circular[value="13"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="14"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="14"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-84.6deg);
+            transform: rotate(-84.6deg); }
+  md-progress-circular[value="14"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="15"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="15"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-81deg);
+            transform: rotate(-81deg); }
+  md-progress-circular[value="15"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="16"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="16"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-77.4deg);
+            transform: rotate(-77.4deg); }
+  md-progress-circular[value="16"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="17"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="17"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-73.8deg);
+            transform: rotate(-73.8deg); }
+  md-progress-circular[value="17"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="18"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="18"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-70.2deg);
+            transform: rotate(-70.2deg); }
+  md-progress-circular[value="18"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="19"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="19"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-66.6deg);
+            transform: rotate(-66.6deg); }
+  md-progress-circular[value="19"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="20"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="20"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-63deg);
+            transform: rotate(-63deg); }
+  md-progress-circular[value="20"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="21"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="21"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-59.4deg);
+            transform: rotate(-59.4deg); }
+  md-progress-circular[value="21"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="22"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="22"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-55.8deg);
+            transform: rotate(-55.8deg); }
+  md-progress-circular[value="22"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="23"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="23"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-52.2deg);
+            transform: rotate(-52.2deg); }
+  md-progress-circular[value="23"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="24"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="24"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-48.6deg);
+            transform: rotate(-48.6deg); }
+  md-progress-circular[value="24"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="25"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="25"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-45deg);
+            transform: rotate(-45deg); }
+  md-progress-circular[value="25"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="26"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="26"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-41.4deg);
+            transform: rotate(-41.4deg); }
+  md-progress-circular[value="26"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="27"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="27"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-37.8deg);
+            transform: rotate(-37.8deg); }
+  md-progress-circular[value="27"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="28"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="28"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-34.2deg);
+            transform: rotate(-34.2deg); }
+  md-progress-circular[value="28"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="29"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="29"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-30.6deg);
+            transform: rotate(-30.6deg); }
+  md-progress-circular[value="29"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="30"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="30"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-27deg);
+            transform: rotate(-27deg); }
+  md-progress-circular[value="30"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="31"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="31"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-23.4deg);
+            transform: rotate(-23.4deg); }
+  md-progress-circular[value="31"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="32"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="32"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-19.8deg);
+            transform: rotate(-19.8deg); }
+  md-progress-circular[value="32"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="33"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="33"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-16.2deg);
+            transform: rotate(-16.2deg); }
+  md-progress-circular[value="33"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="34"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="34"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-12.6deg);
+            transform: rotate(-12.6deg); }
+  md-progress-circular[value="34"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="35"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="35"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-9deg);
+            transform: rotate(-9deg); }
+  md-progress-circular[value="35"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="36"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="36"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-5.4deg);
+            transform: rotate(-5.4deg); }
+  md-progress-circular[value="36"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="37"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="37"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(-1.8deg);
+            transform: rotate(-1.8deg); }
+  md-progress-circular[value="37"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="38"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="38"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(1.8deg);
+            transform: rotate(1.8deg); }
+  md-progress-circular[value="38"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="39"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="39"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(5.4deg);
+            transform: rotate(5.4deg); }
+  md-progress-circular[value="39"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="40"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="40"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(9deg);
+            transform: rotate(9deg); }
+  md-progress-circular[value="40"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="41"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="41"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(12.6deg);
+            transform: rotate(12.6deg); }
+  md-progress-circular[value="41"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="42"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="42"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(16.2deg);
+            transform: rotate(16.2deg); }
+  md-progress-circular[value="42"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="43"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="43"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(19.8deg);
+            transform: rotate(19.8deg); }
+  md-progress-circular[value="43"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="44"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="44"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(23.4deg);
+            transform: rotate(23.4deg); }
+  md-progress-circular[value="44"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="45"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="45"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(27deg);
+            transform: rotate(27deg); }
+  md-progress-circular[value="45"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="46"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="46"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(30.6deg);
+            transform: rotate(30.6deg); }
+  md-progress-circular[value="46"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="47"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="47"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(34.2deg);
+            transform: rotate(34.2deg); }
+  md-progress-circular[value="47"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="48"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="48"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(37.8deg);
+            transform: rotate(37.8deg); }
+  md-progress-circular[value="48"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="49"] .md-inner .md-left .md-half-circle {
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="49"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(41.4deg);
+            transform: rotate(41.4deg); }
+  md-progress-circular[value="49"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="50"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(135deg);
+            transform: rotate(135deg); }
+  md-progress-circular[value="50"] .md-inner .md-right .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="50"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    border-bottom-color: transparent !important; }
+  md-progress-circular[value="51"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(138.6deg);
+            transform: rotate(138.6deg); }
+  md-progress-circular[value="51"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="51"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="52"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(142.2deg);
+            transform: rotate(142.2deg); }
+  md-progress-circular[value="52"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="52"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="53"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(145.8deg);
+            transform: rotate(145.8deg); }
+  md-progress-circular[value="53"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="53"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="54"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(149.4deg);
+            transform: rotate(149.4deg); }
+  md-progress-circular[value="54"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="54"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="55"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(153deg);
+            transform: rotate(153deg); }
+  md-progress-circular[value="55"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="55"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="56"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(156.6deg);
+            transform: rotate(156.6deg); }
+  md-progress-circular[value="56"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="56"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="57"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(160.2deg);
+            transform: rotate(160.2deg); }
+  md-progress-circular[value="57"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="57"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="58"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(163.8deg);
+            transform: rotate(163.8deg); }
+  md-progress-circular[value="58"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="58"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="59"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(167.4deg);
+            transform: rotate(167.4deg); }
+  md-progress-circular[value="59"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="59"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="60"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(171deg);
+            transform: rotate(171deg); }
+  md-progress-circular[value="60"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="60"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="61"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(174.6deg);
+            transform: rotate(174.6deg); }
+  md-progress-circular[value="61"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="61"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="62"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(178.2deg);
+            transform: rotate(178.2deg); }
+  md-progress-circular[value="62"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="62"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="63"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(181.8deg);
+            transform: rotate(181.8deg); }
+  md-progress-circular[value="63"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="63"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="64"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(185.4deg);
+            transform: rotate(185.4deg); }
+  md-progress-circular[value="64"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="64"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="65"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(189deg);
+            transform: rotate(189deg); }
+  md-progress-circular[value="65"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="65"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="66"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(192.6deg);
+            transform: rotate(192.6deg); }
+  md-progress-circular[value="66"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="66"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="67"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(196.2deg);
+            transform: rotate(196.2deg); }
+  md-progress-circular[value="67"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="67"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="68"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(199.8deg);
+            transform: rotate(199.8deg); }
+  md-progress-circular[value="68"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="68"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="69"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(203.4deg);
+            transform: rotate(203.4deg); }
+  md-progress-circular[value="69"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="69"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="70"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(207deg);
+            transform: rotate(207deg); }
+  md-progress-circular[value="70"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="70"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="71"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(210.6deg);
+            transform: rotate(210.6deg); }
+  md-progress-circular[value="71"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="71"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="72"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(214.2deg);
+            transform: rotate(214.2deg); }
+  md-progress-circular[value="72"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="72"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="73"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(217.8deg);
+            transform: rotate(217.8deg); }
+  md-progress-circular[value="73"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="73"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="74"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(221.4deg);
+            transform: rotate(221.4deg); }
+  md-progress-circular[value="74"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="74"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="75"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(225deg);
+            transform: rotate(225deg); }
+  md-progress-circular[value="75"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="75"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="76"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(228.6deg);
+            transform: rotate(228.6deg); }
+  md-progress-circular[value="76"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="76"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="77"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(232.2deg);
+            transform: rotate(232.2deg); }
+  md-progress-circular[value="77"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="77"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="78"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(235.8deg);
+            transform: rotate(235.8deg); }
+  md-progress-circular[value="78"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="78"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="79"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(239.4deg);
+            transform: rotate(239.4deg); }
+  md-progress-circular[value="79"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="79"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="80"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(243deg);
+            transform: rotate(243deg); }
+  md-progress-circular[value="80"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="80"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="81"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(246.6deg);
+            transform: rotate(246.6deg); }
+  md-progress-circular[value="81"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="81"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="82"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(250.2deg);
+            transform: rotate(250.2deg); }
+  md-progress-circular[value="82"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="82"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="83"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(253.8deg);
+            transform: rotate(253.8deg); }
+  md-progress-circular[value="83"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="83"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="84"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(257.4deg);
+            transform: rotate(257.4deg); }
+  md-progress-circular[value="84"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="84"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="85"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(261deg);
+            transform: rotate(261deg); }
+  md-progress-circular[value="85"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="85"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="86"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(264.6deg);
+            transform: rotate(264.6deg); }
+  md-progress-circular[value="86"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="86"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="87"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(268.2deg);
+            transform: rotate(268.2deg); }
+  md-progress-circular[value="87"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="87"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="88"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(271.8deg);
+            transform: rotate(271.8deg); }
+  md-progress-circular[value="88"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="88"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="89"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(275.4deg);
+            transform: rotate(275.4deg); }
+  md-progress-circular[value="89"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="89"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="90"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(279deg);
+            transform: rotate(279deg); }
+  md-progress-circular[value="90"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="90"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="91"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(282.6deg);
+            transform: rotate(282.6deg); }
+  md-progress-circular[value="91"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="91"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="92"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(286.2deg);
+            transform: rotate(286.2deg); }
+  md-progress-circular[value="92"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="92"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="93"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(289.8deg);
+            transform: rotate(289.8deg); }
+  md-progress-circular[value="93"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="93"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="94"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(293.4deg);
+            transform: rotate(293.4deg); }
+  md-progress-circular[value="94"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="94"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="95"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(297deg);
+            transform: rotate(297deg); }
+  md-progress-circular[value="95"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="95"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="96"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(300.6deg);
+            transform: rotate(300.6deg); }
+  md-progress-circular[value="96"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="96"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="97"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(304.2deg);
+            transform: rotate(304.2deg); }
+  md-progress-circular[value="97"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="97"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="98"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(307.8deg);
+            transform: rotate(307.8deg); }
+  md-progress-circular[value="98"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="98"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="99"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(311.4deg);
+            transform: rotate(311.4deg); }
+  md-progress-circular[value="99"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="99"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[value="100"] .md-inner .md-left .md-half-circle {
+    transition: -webkit-transform 0.1s linear;
+    transition: transform 0.1s linear;
+    -webkit-transform: rotate(315deg);
+            transform: rotate(315deg); }
+  md-progress-circular[value="100"] .md-inner .md-right .md-half-circle {
+    -webkit-transform: rotate(45deg);
+            transform: rotate(45deg); }
+  md-progress-circular[value="100"] .md-inner .md-gap {
+    border-bottom-width: 10px;
+    border-bottom-style: solid;
+    transition: border-bottom-color 0.1s linear; }
+  md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper {
+    -webkit-animation: outer-rotate 2.91667s linear infinite;
+            animation: outer-rotate 2.91667s linear infinite; }
+    md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner {
+      -webkit-animation: sporadic-rotate 5.25s cubic-bezier(0.35, 0, 0.25, 1) infinite;
+              animation: sporadic-rotate 5.25s cubic-bezier(0.35, 0, 0.25, 1) infinite; }
+      md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-left .md-half-circle, md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-right .md-half-circle {
+        -webkit-animation-iteration-count: infinite;
+                animation-iteration-count: infinite;
+        -webkit-animation-duration: 1.3125s;
+                animation-duration: 1.3125s;
+        -webkit-animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1);
+                animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1); }
+      md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-left .md-half-circle {
+        -webkit-animation-name: left-wobble;
+                animation-name: left-wobble; }
+      md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-right .md-half-circle {
+        -webkit-animation-name: right-wobble;
+                animation-name: right-wobble; }
+
+.ng-hide md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper, md-progress-circular.ng-hide[md-mode=indeterminate] .md-spinner-wrapper {
+  -webkit-animation: none;
+          animation: none; }
+  .ng-hide md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner, md-progress-circular.ng-hide[md-mode=indeterminate] .md-spinner-wrapper .md-inner {
+    -webkit-animation: none;
+            animation: none; }
+    .ng-hide md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-left .md-half-circle, md-progress-circular.ng-hide[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-left .md-half-circle {
+      -webkit-animation-name: none;
+              animation-name: none; }
+    .ng-hide md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-right .md-half-circle, md-progress-circular.ng-hide[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-right .md-half-circle {
+      -webkit-animation-name: none;
+              animation-name: none; }
+
+md-progress-linear:not([md-mode="indeterminate"]) {
+  display: block;
+  width: 100%;
+  height: 5px; }
+  md-progress-linear:not([md-mode="indeterminate"]) .md-container {
+    overflow: hidden;
+    position: relative;
+    height: 5px;
+    top: 5px;
+    -webkit-transform: translate(0, 5px) scale(1, 0);
+            transform: translate(0, 5px) scale(1, 0);
+    transition: all .3s linear; }
+  md-progress-linear:not([md-mode="indeterminate"]) .md-container.md-ready {
+    -webkit-transform: translate(0, 0) scale(1, 1);
+            transform: translate(0, 0) scale(1, 1); }
+  md-progress-linear:not([md-mode="indeterminate"]) .md-bar {
+    height: 5px;
+    position: absolute;
+    width: 100%; }
+  md-progress-linear:not([md-mode="indeterminate"]) .md-bar1, md-progress-linear:not([md-mode="indeterminate"]) .md-bar2 {
+    transition: all 0.2s linear; }
+  md-progress-linear:not([md-mode="indeterminate"])[md-mode=determinate] .md-bar1 {
+    display: none; }
+  md-progress-linear:not([md-mode="indeterminate"])[md-mode=buffer] .md-container {
+    background-color: transparent !important; }
+  md-progress-linear:not([md-mode="indeterminate"])[md-mode=buffer] .md-dashed:before {
+    content: "";
+    display: block;
+    height: 5px;
+    width: 100%;
+    margin-top: 0;
+    position: absolute;
+    background-color: transparent;
+    background-size: 10px 10px !important;
+    background-position: 0px -23px;
+    -webkit-animation: buffer 3s infinite linear;
+            animation: buffer 3s infinite linear; }
+  md-progress-linear:not([md-mode="indeterminate"])[md-mode=query] .md-bar2 {
+    -webkit-animation: query .8s infinite cubic-bezier(0.39, 0.575, 0.565, 1);
+            animation: query .8s infinite cubic-bezier(0.39, 0.575, 0.565, 1); }
+
+md-progress-linear[md-mode="indeterminate"] {
+  display: block;
+  width: 100%;
+  height: 5px;
+  position: relative; }
+  md-progress-linear[md-mode="indeterminate"] .md-container {
+    width: 100%;
+    overflow: hidden;
+    position: relative;
+    height: 5px;
+    top: 5px;
+    transition: all .3s linear; }
+    md-progress-linear[md-mode="indeterminate"] .md-container .md-bar {
+      height: 5px;
+      left: 0;
+      width: 80%;
+      position: absolute;
+      top: 0;
+      bottom: 0; }
+    md-progress-linear[md-mode="indeterminate"] .md-container .md-bar1 {
+      -webkit-animation: md-progress-linear-indeterminate-scale-1 4s infinite, md-progress-linear-indeterminate-1 4s infinite;
+              animation: md-progress-linear-indeterminate-scale-1 4s infinite, md-progress-linear-indeterminate-1 4s infinite; }
+    md-progress-linear[md-mode="indeterminate"] .md-container .md-bar2 {
+      -webkit-animation: md-progress-linear-indeterminate-scale-2 4s infinite, md-progress-linear-indeterminate-2 4s infinite;
+              animation: md-progress-linear-indeterminate-scale-2 4s infinite, md-progress-linear-indeterminate-2 4s infinite; }
+
+@-webkit-keyframes query {
+  0% {
+    opacity: 1;
+    -webkit-transform: translateX(35%) scale(.3, 1);
+            transform: translateX(35%) scale(.3, 1); }
+
+  100% {
+    opacity: 0;
+    -webkit-transform: translateX(-50%) scale(0, 1);
+            transform: translateX(-50%) scale(0, 1); } }
+
+@keyframes query {
+  0% {
+    opacity: 1;
+    -webkit-transform: translateX(35%) scale(.3, 1);
+            transform: translateX(35%) scale(.3, 1); }
+
+  100% {
+    opacity: 0;
+    -webkit-transform: translateX(-50%) scale(0, 1);
+            transform: translateX(-50%) scale(0, 1); } }
+
+@-webkit-keyframes buffer {
+  0% {
+    opacity: 1;
+    background-position: 0px -23px; }
+
+  50% {
+    opacity: 0; }
+
+  100% {
+    opacity: 1;
+    background-position: -200px -23px; } }
+
+@keyframes buffer {
+  0% {
+    opacity: 1;
+    background-position: 0px -23px; }
+
+  50% {
+    opacity: 0; }
+
+  100% {
+    opacity: 1;
+    background-position: -200px -23px; } }
+
+@-webkit-keyframes md-progress-linear-indeterminate-scale-1 {
+  0% {
+    -webkit-transform: scaleX(0.1);
+            transform: scaleX(0.1);
+    -webkit-animation-timing-function: linear;
+            animation-timing-function: linear; }
+
+  36.6% {
+    -webkit-transform: scaleX(0.1);
+            transform: scaleX(0.1);
+    -webkit-animation-timing-function: cubic-bezier(0.33473, 0.12482, 0.78584, 1);
+            animation-timing-function: cubic-bezier(0.33473, 0.12482, 0.78584, 1); }
+
+  69.15% {
+    -webkit-transform: scaleX(0.83);
+            transform: scaleX(0.83);
+    -webkit-animation-timing-function: cubic-bezier(0.22573, 0, 0.23365, 1.37098);
+            animation-timing-function: cubic-bezier(0.22573, 0, 0.23365, 1.37098); }
+
+  100% {
+    -webkit-transform: scaleX(0.1);
+            transform: scaleX(0.1); } }
+
+@keyframes md-progress-linear-indeterminate-scale-1 {
+  0% {
+    -webkit-transform: scaleX(0.1);
+            transform: scaleX(0.1);
+    -webkit-animation-timing-function: linear;
+            animation-timing-function: linear; }
+
+  36.6% {
+    -webkit-transform: scaleX(0.1);
+            transform: scaleX(0.1);
+    -webkit-animation-timing-function: cubic-bezier(0.33473, 0.12482, 0.78584, 1);
+            animation-timing-function: cubic-bezier(0.33473, 0.12482, 0.78584, 1); }
+
+  69.15% {
+    -webkit-transform: scaleX(0.83);
+            transform: scaleX(0.83);
+    -webkit-animation-timing-function: cubic-bezier(0.22573, 0, 0.23365, 1.37098);
+            animation-timing-function: cubic-bezier(0.22573, 0, 0.23365, 1.37098); }
+
+  100% {
+    -webkit-transform: scaleX(0.1);
+            transform: scaleX(0.1); } }
+
+@-webkit-keyframes md-progress-linear-indeterminate-1 {
+  0% {
+    left: -105.16667%;
+    -webkit-animation-timing-function: linear;
+            animation-timing-function: linear; }
+
+  20% {
+    left: -105.16667%;
+    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
+            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582); }
+
+  69.15% {
+    left: 21.5%;
+    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
+            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635); }
+
+  100% {
+    left: 95.44444%; } }
+
+@keyframes md-progress-linear-indeterminate-1 {
+  0% {
+    left: -105.16667%;
+    -webkit-animation-timing-function: linear;
+            animation-timing-function: linear; }
+
+  20% {
+    left: -105.16667%;
+    -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);
+            animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582); }
+
+  69.15% {
+    left: 21.5%;
+    -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);
+            animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635); }
+
+  100% {
+    left: 95.44444%; } }
+
+@-webkit-keyframes md-progress-linear-indeterminate-scale-2 {
+  0% {
+    -webkit-transform: scaleX(0.1);
+            transform: scaleX(0.1);
+    -webkit-animation-timing-function: cubic-bezier(0.20503, 0.05705, 0.57661, 0.45397);
+            animation-timing-function: cubic-bezier(0.20503, 0.05705, 0.57661, 0.45397); }
+
+  19.15% {
+    -webkit-transform: scaleX(0.57);
+            transform: scaleX(0.57);
+    -webkit-animation-timing-function: cubic-bezier(0.15231, 0.19643, 0.64837, 1.00432);
+            animation-timing-function: cubic-bezier(0.15231, 0.19643, 0.64837, 1.00432); }
+
+  44.15% {
+    -webkit-transform: scaleX(0.91);
+            transform: scaleX(0.91);
+    -webkit-animation-timing-function: cubic-bezier(0.25776, -0.00316, 0.21176, 1.38179);
+            animation-timing-function: cubic-bezier(0.25776, -0.00316, 0.21176, 1.38179); }
+
+  100% {
+    -webkit-transform: scaleX(0.1);
+            transform: scaleX(0.1); } }
+
+@keyframes md-progress-linear-indeterminate-scale-2 {
+  0% {
+    -webkit-transform: scaleX(0.1);
+            transform: scaleX(0.1);
+    -webkit-animation-timing-function: cubic-bezier(0.20503, 0.05705, 0.57661, 0.45397);
+            animation-timing-function: cubic-bezier(0.20503, 0.05705, 0.57661, 0.45397); }
+
+  19.15% {
+    -webkit-transform: scaleX(0.57);
+            transform: scaleX(0.57);
+    -webkit-animation-timing-function: cubic-bezier(0.15231, 0.19643, 0.64837, 1.00432);
+            animation-timing-function: cubic-bezier(0.15231, 0.19643, 0.64837, 1.00432); }
+
+  44.15% {
+    -webkit-transform: scaleX(0.91);
+            transform: scaleX(0.91);
+    -webkit-animation-timing-function: cubic-bezier(0.25776, -0.00316, 0.21176, 1.38179);
+            animation-timing-function: cubic-bezier(0.25776, -0.00316, 0.21176, 1.38179); }
+
+  100% {
+    -webkit-transform: scaleX(0.1);
+            transform: scaleX(0.1); } }
+
+@-webkit-keyframes md-progress-linear-indeterminate-2 {
+  0% {
+    left: -54.88889%;
+    -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40968);
+            animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40968); }
+
+  25% {
+    left: -17.25%;
+    -webkit-animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73372);
+            animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73372); }
+
+  48.35% {
+    left: 29.5%;
+    -webkit-animation-timing-function: cubic-bezier(0.4, 0.62703, 0.6, 0.90203);
+            animation-timing-function: cubic-bezier(0.4, 0.62703, 0.6, 0.90203); }
+
+  100% {
+    left: 117.38889%; } }
+
+@keyframes md-progress-linear-indeterminate-2 {
+  0% {
+    left: -54.88889%;
+    -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40968);
+            animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40968); }
+
+  25% {
+    left: -17.25%;
+    -webkit-animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73372);
+            animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73372); }
+
+  48.35% {
+    left: 29.5%;
+    -webkit-animation-timing-function: cubic-bezier(0.4, 0.62703, 0.6, 0.90203);
+            animation-timing-function: cubic-bezier(0.4, 0.62703, 0.6, 0.90203); }
+
+  100% {
+    left: 117.38889%; } }
+
+md-radio-button, .md-switch-thumb {
+  box-sizing: border-box;
+  display: block;
+  margin: 15px;
+  white-space: nowrap;
+  cursor: pointer; }
+  md-radio-button .md-container, .md-switch-thumb .md-container {
+    box-sizing: border-box;
+    position: relative;
+    top: 4px;
+    display: inline-block;
+    width: 16px;
+    height: 16px;
+    cursor: pointer; }
+    md-radio-button .md-container .md-ripple-container, .md-switch-thumb .md-container .md-ripple-container {
+      position: absolute;
+      display: block;
+      width: 48px;
+      height: 48px;
+      left: -16px;
+      top: -16px; }
+    md-radio-button .md-container:before, .md-switch-thumb .md-container:before {
+      box-sizing: border-box;
+      background-color: transparent;
+      border-radius: 50%;
+      content: '';
+      position: absolute;
+      display: block;
+      height: auto;
+      left: 0;
+      top: 0;
+      right: 0;
+      bottom: 0;
+      transition: all 0.5s;
+      width: auto; }
+  md-radio-button.md-align-top-left > div.md-container, .md-switch-thumb.md-align-top-left > div.md-container {
+    top: -15px; }
+  md-radio-button .md-off, .md-switch-thumb .md-off {
+    box-sizing: border-box;
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 16px;
+    height: 16px;
+    border-style: solid;
+    border-width: 2px;
+    border-radius: 50%;
+    transition: border-color ease 0.28s; }
+  md-radio-button .md-on, .md-switch-thumb .md-on {
+    box-sizing: border-box;
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 16px;
+    height: 16px;
+    border-radius: 50%;
+    transition: -webkit-transform ease 0.28s;
+    transition: transform ease 0.28s;
+    -webkit-transform: scale(0);
+            transform: scale(0); }
+  md-radio-button.md-checked .md-on, .md-switch-thumb.md-checked .md-on {
+    -webkit-transform: scale(0.5);
+            transform: scale(0.5); }
+  md-radio-button .md-label, .md-switch-thumb .md-label {
+    box-sizing: border-box;
+    position: relative;
+    display: inline-block;
+    margin-left: 10px;
+    margin-right: 0;
+    vertical-align: middle;
+    white-space: normal;
+    pointer-events: none;
+    width: auto; }
+    html[dir=rtl] md-radio-button .md-label, html[dir=rtl] .md-switch-thumb .md-label {
+      margin-left: 0;
+      unicode-bidi: embed; }
+    body[dir=rtl] md-radio-button .md-label, body[dir=rtl] .md-switch-thumb .md-label {
+      margin-left: 0;
+      unicode-bidi: embed; }
+    md-radio-button .md-label bdo[dir=rtl], .md-switch-thumb .md-label bdo[dir=rtl] {
+      direction: rtl;
+      unicode-bidi: bidi-override; }
+    md-radio-button .md-label bdo[dir=ltr], .md-switch-thumb .md-label bdo[dir=ltr] {
+      direction: ltr;
+      unicode-bidi: bidi-override; }
+    html[dir=rtl] md-radio-button .md-label, html[dir=rtl] .md-switch-thumb .md-label {
+      margin-right: 10px;
+      unicode-bidi: embed; }
+    body[dir=rtl] md-radio-button .md-label, body[dir=rtl] .md-switch-thumb .md-label {
+      margin-right: 10px;
+      unicode-bidi: embed; }
+    md-radio-button .md-label bdo[dir=rtl], .md-switch-thumb .md-label bdo[dir=rtl] {
+      direction: rtl;
+      unicode-bidi: bidi-override; }
+    md-radio-button .md-label bdo[dir=ltr], .md-switch-thumb .md-label bdo[dir=ltr] {
+      direction: ltr;
+      unicode-bidi: bidi-override; }
+  md-radio-button .circle, .md-switch-thumb .circle {
+    border-radius: 50%; }
+
+md-radio-group:focus {
+  outline: none; }
+md-radio-group.md-focused .md-checked .md-container:before {
+  left: -8px;
+  top: -8px;
+  right: -8px;
+  bottom: -8px; }
+
+@media screen and (-ms-high-contrast: active) {
+  md-radio-button.md-default-theme .md-on {
+    background-color: #fff; } }
+
+.md-select-menu-container {
+  position: fixed;
+  left: 0;
+  top: 0;
+  z-index: 99;
+  opacity: 0; }
+  .md-select-menu-container:not(.md-clickable) {
+    pointer-events: none; }
+  .md-select-menu-container md-progress-circular {
+    display: table;
+    margin: 24px auto !important; }
+  .md-select-menu-container.md-active {
+    opacity: 1; }
+    .md-select-menu-container.md-active md-select-menu {
+      transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
+      transition-duration: 150ms; }
+      .md-select-menu-container.md-active md-select-menu > * {
+        opacity: 1;
+        transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
+        transition-duration: 150ms;
+        transition-delay: 100ms; }
+  .md-select-menu-container.md-leave {
+    opacity: 0;
+    transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
+    transition-duration: 250ms; }
+
+md-input-container > md-select {
+  margin: auto 0 0 0;
+  -webkit-order: 2;
+      -ms-flex-order: 2;
+          order: 2; }
+
+md-select {
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  margin: 20px 0 26px 0; }
+  md-select:focus {
+    outline: none; }
+  md-select[disabled]:hover {
+    cursor: default; }
+  md-select:not([disabled]):hover {
+    cursor: pointer; }
+  md-select:not([disabled]).ng-invalid.ng-dirty .md-select-value {
+    border-bottom: 2px solid;
+    padding-bottom: 0; }
+  md-select:not([disabled]):focus .md-select-value {
+    border-bottom-width: 2px;
+    border-bottom-style: solid;
+    padding-bottom: 0; }
+
+.md-select-value {
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-align-items: center;
+      -ms-flex-align: center;
+          align-items: center;
+  padding: 2px 2px 1px;
+  border-bottom-width: 1px;
+  border-bottom-style: solid;
+  background-color: transparent;
+  position: relative;
+  box-sizing: content-box;
+  min-width: 64px;
+  min-height: 26px;
+  -webkit-flex-grow: 1;
+      -ms-flex-positive: 1;
+          flex-grow: 1; }
+  .md-select-value *:first-child {
+    -webkit-flex: 1;
+        -ms-flex: 1;
+            flex: 1;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    overflow: hidden;
+    max-width: calc(100% - 2*8px);
+    -webkit-transform: translate3d(0, 2px, 0);
+            transform: translate3d(0, 2px, 0); }
+  .md-select-value .md-select-icon {
+    display: block;
+    -webkit-align-items: flex-end;
+        -ms-flex-align: end;
+            align-items: flex-end;
+    text-align: end;
+    width: 24px;
+    margin: 0 4px;
+    -webkit-transform: translate3d(0, 1px, 0);
+            transform: translate3d(0, 1px, 0); }
+  .md-select-value .md-select-icon:after {
+    display: block;
+    content: '\25BC';
+    position: relative;
+    top: 2px;
+    speak: none;
+    -webkit-transform: scaleY(0.6) scaleX(1);
+            transform: scaleY(0.6) scaleX(1); }
+  .md-select-value.md-select-placeholder {
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-order: 1;
+        -ms-flex-order: 1;
+            order: 1;
+    pointer-events: none;
+    -webkit-font-smoothing: antialiased;
+    padding-left: 2px;
+    z-index: 1; }
+
+md-select-menu {
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-flex-direction: column;
+      -ms-flex-direction: column;
+          flex-direction: column;
+  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.14), 0px 2px 2px 0px rgba(0, 0, 0, 0.098), 0px 1px 5px 0px rgba(0, 0, 0, 0.084);
+  max-height: 256px;
+  min-height: 48px;
+  overflow-y: hidden;
+  -webkit-transform-origin: left top;
+          transform-origin: left top;
+  -webkit-transform: scale(1);
+          transform: scale(1); }
+  md-select-menu.md-reverse {
+    -webkit-flex-direction: column-reverse;
+        -ms-flex-direction: column-reverse;
+            flex-direction: column-reverse; }
+  md-select-menu:not(.md-overflow) md-content {
+    padding-top: 8px;
+    padding-bottom: 8px; }
+  html[dir=rtl] md-select-menu {
+    -webkit-transform-origin: right top;
+            transform-origin: right top;
+    unicode-bidi: embed; }
+  body[dir=rtl] md-select-menu {
+    -webkit-transform-origin: right top;
+            transform-origin: right top;
+    unicode-bidi: embed; }
+  md-select-menu bdo[dir=rtl] {
+    direction: rtl;
+    unicode-bidi: bidi-override; }
+  md-select-menu bdo[dir=ltr] {
+    direction: ltr;
+    unicode-bidi: bidi-override; }
+  md-select-menu md-content {
+    min-width: 136px;
+    min-height: 48px;
+    max-height: 256px;
+    overflow-y: auto; }
+  md-select-menu > * {
+    opacity: 0; }
+
+md-option {
+  cursor: pointer;
+  position: relative;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-align-items: center;
+      -ms-flex-align: center;
+          align-items: center;
+  width: auto;
+  padding: 0 16px 0 16px;
+  height: 48px; }
+  md-option:focus {
+    outline: none; }
+  md-option .md-text {
+    -webkit-touch-callout: none;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+    width: auto;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    font-size: 16px; }
+
+md-optgroup {
+  display: block; }
+  md-optgroup label {
+    display: block;
+    font-size: 14px;
+    text-transform: uppercase;
+    padding: 16px;
+    font-weight: 500; }
+  md-optgroup md-option {
+    padding-left: 32px;
+    padding-right: 32px; }
+
+@media screen and (-ms-high-contrast: active) {
+  .md-select-backdrop {
+    background-color: transparent; }
+  md-select-menu {
+    border: 1px solid #fff; } }
+
+md-sidenav {
+  box-sizing: border-box;
+  position: absolute;
+  -webkit-flex-direction: column;
+      -ms-flex-direction: column;
+          flex-direction: column;
+  z-index: 60;
+  width: 304px;
+  min-width: 304px;
+  max-width: 304px;
+  bottom: 0;
+  background-color: white;
+  overflow: auto; }
+  md-sidenav ul {
+    list-style: none; }
+  md-sidenav.md-closed {
+    display: none; }
+  md-sidenav.md-closed-add, md-sidenav.md-closed-remove {
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    transition: 0.2s ease-in all; }
+  md-sidenav.md-closed-add.md-closed-add-active, md-sidenav.md-closed-remove.md-closed-remove-active {
+    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); }
+  md-sidenav.md-locked-open-add, md-sidenav.md-locked-open-remove {
+    position: static;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-transform: translate3d(0, 0, 0);
+            transform: translate3d(0, 0, 0); }
+  md-sidenav.md-locked-open {
+    width: 304px;
+    min-width: 304px;
+    max-width: 304px; }
+  md-sidenav.md-locked-open, md-sidenav.md-locked-open.md-closed, md-sidenav.md-locked-open.md-closed.md-sidenav-left, md-sidenav.md-locked-open.md-closed, md-sidenav.md-locked-open.md-closed.md-sidenav-right, md-sidenav.md-locked-open-remove.md-closed {
+    position: static;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-transform: translate3d(0, 0, 0);
+            transform: translate3d(0, 0, 0); }
+  md-sidenav.md-locked-open-remove-active {
+    transition: width 0.3s cubic-bezier(0.55, 0, 0.55, 0.2), min-width 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
+    width: 0;
+    min-width: 0; }
+  md-sidenav.md-closed.md-locked-open-add {
+    width: 0;
+    min-width: 0;
+    -webkit-transform: translate3d(0%, 0, 0);
+            transform: translate3d(0%, 0, 0); }
+  md-sidenav.md-closed.md-locked-open-add-active {
+    transition: width 0.3s cubic-bezier(0.55, 0, 0.55, 0.2), min-width 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
+    width: 304px;
+    min-width: 304px;
+    -webkit-transform: translate3d(0%, 0, 0);
+            transform: translate3d(0%, 0, 0); }
+
+.md-sidenav-backdrop.md-locked-open {
+  display: none; }
+
+.md-sidenav-left, md-sidenav {
+  left: 0;
+  top: 0;
+  -webkit-transform: translate3d(0%, 0, 0);
+          transform: translate3d(0%, 0, 0); }
+  .md-sidenav-left.md-closed, md-sidenav.md-closed {
+    -webkit-transform: translate3d(-100%, 0, 0);
+            transform: translate3d(-100%, 0, 0); }
+
+.md-sidenav-right {
+  left: 100%;
+  top: 0;
+  -webkit-transform: translate3d(-100%, 0, 0);
+          transform: translate3d(-100%, 0, 0); }
+  .md-sidenav-right.md-closed {
+    -webkit-transform: translate3d(0%, 0, 0);
+            transform: translate3d(0%, 0, 0); }
+
+@media (max-width: 360px) {
+  md-sidenav {
+    width: 85%; } }
+
+@media screen and (-ms-high-contrast: active) {
+  .md-sidenav-left, md-sidenav {
+    border-right: 1px solid #fff; }
+  .md-sidenav-right {
+    border-left: 1px solid #fff; } }
+
+@-webkit-keyframes sliderFocusThumb {
+  0% {
+    opacity: 0;
+    -webkit-transform: scale(0);
+            transform: scale(0); }
+
+  50% {
+    -webkit-transform: scale(1);
+            transform: scale(1);
+    opacity: 1; }
+
+  100% {
+    opacity: 0; } }
+
+@keyframes sliderFocusThumb {
+  0% {
+    opacity: 0;
+    -webkit-transform: scale(0);
+            transform: scale(0); }
+
+  50% {
+    -webkit-transform: scale(1);
+            transform: scale(1);
+    opacity: 1; }
+
+  100% {
+    opacity: 0; } }
+
+md-slider {
+  height: 48px;
+  position: relative;
+  display: block;
+  margin-left: 4px;
+  margin-right: 4px;
+  padding: 0;
+  /**
+   * Track
+   */
+  /**
+   * Slider thumb
+   */
+  /* The sign that's focused in discrete mode */
+  /**
+   * The border/background that comes in when focused in non-discrete mode
+   */
+  /* Don't animate left/right while panning */ }
+  md-slider *, md-slider *:after {
+    box-sizing: border-box; }
+  md-slider .md-slider-wrapper {
+    position: relative; }
+  md-slider .md-track-container {
+    width: 100%;
+    position: absolute;
+    top: 23px;
+    height: 2px; }
+  md-slider .md-track {
+    position: absolute;
+    left: 0;
+    right: 0;
+    height: 100%; }
+  md-slider .md-track-fill {
+    transition: width 0.05s linear; }
+  md-slider .md-track-ticks {
+    position: absolute;
+    left: 0;
+    right: 0;
+    height: 100%; }
+  md-slider .md-track-ticks canvas {
+    width: 100%; }
+  md-slider .md-thumb-container {
+    position: absolute;
+    left: 0;
+    top: 50%;
+    -webkit-transform: translate3d(-50%, -50%, 0);
+            transform: translate3d(-50%, -50%, 0);
+    transition: left 0.1s linear; }
+  md-slider .md-thumb {
+    z-index: 1;
+    position: absolute;
+    left: -19px;
+    top: 5px;
+    width: 38px;
+    height: 38px;
+    border-radius: 38px;
+    -webkit-transform: scale(0.5);
+            transform: scale(0.5);
+    transition: all 0.1s linear; }
+    md-slider .md-thumb:after {
+      content: '';
+      position: absolute;
+      left: 3px;
+      top: 3px;
+      width: 32px;
+      height: 32px;
+      border-radius: 32px;
+      border-width: 3px;
+      border-style: solid; }
+  md-slider .md-sign {
+    /* Center the children (slider-thumb-text) */
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-align-items: center;
+        -ms-flex-align: center;
+            align-items: center;
+    -webkit-justify-content: center;
+        -ms-flex-pack: center;
+            justify-content: center;
+    position: absolute;
+    left: -14px;
+    top: -20px;
+    width: 28px;
+    height: 28px;
+    border-radius: 28px;
+    -webkit-transform: scale(0.4) translate3d(0, 70px, 0);
+            transform: scale(0.4) translate3d(0, 70px, 0);
+    transition: all 0.2s ease-in-out;
+    /* The arrow pointing down under the sign */ }
+    md-slider .md-sign:after {
+      position: absolute;
+      content: '';
+      left: 0px;
+      border-radius: 16px;
+      top: 19px;
+      border-left: 14px solid transparent;
+      border-right: 14px solid transparent;
+      border-top-width: 16px;
+      border-top-style: solid;
+      opacity: 0;
+      -webkit-transform: translate3d(0, -8px, 0);
+              transform: translate3d(0, -8px, 0);
+      transition: all 0.2s ease-in-out; }
+    md-slider .md-sign .md-thumb-text {
+      z-index: 1;
+      font-size: 12px;
+      font-weight: bold; }
+  md-slider .md-focus-thumb {
+    position: absolute;
+    left: -24px;
+    top: 0px;
+    width: 48px;
+    height: 48px;
+    border-radius: 48px;
+    display: none;
+    opacity: 0;
+    background-color: #C0C0C0;
+    -webkit-animation: sliderFocusThumb 0.4s linear;
+            animation: sliderFocusThumb 0.4s linear; }
+  md-slider .md-focus-ring {
+    position: absolute;
+    left: -24px;
+    top: 0px;
+    width: 48px;
+    height: 48px;
+    border-radius: 48px;
+    -webkit-transform: scale(0);
+            transform: scale(0);
+    transition: all 0.2s linear;
+    opacity: 0.26; }
+  md-slider .md-disabled-thumb {
+    position: absolute;
+    left: -22px;
+    top: 2px;
+    width: 44px;
+    height: 44px;
+    border-radius: 44px;
+    -webkit-transform: scale(0.35);
+            transform: scale(0.35);
+    border-width: 6px;
+    border-style: solid;
+    display: none; }
+  md-slider.md-min .md-thumb:after {
+    background-color: white; }
+  md-slider.md-min .md-sign {
+    opacity: 0; }
+  md-slider:focus {
+    outline: none; }
+  md-slider.dragging .md-thumb-container, md-slider.dragging .md-track-fill {
+    transition: none; }
+  md-slider:not([md-discrete]) {
+    /* Hide the sign and ticks in non-discrete mode */ }
+    md-slider:not([md-discrete]) .md-track-ticks, md-slider:not([md-discrete]) .md-sign {
+      display: none; }
+    md-slider:not([md-discrete]):not([disabled]):hover .md-thumb {
+      -webkit-transform: scale(0.6);
+              transform: scale(0.6); }
+    md-slider:not([md-discrete]):not([disabled]):focus .md-focus-thumb, md-slider:not([md-discrete]):not([disabled]).active .md-focus-thumb {
+      display: block; }
+    md-slider:not([md-discrete]):not([disabled]):focus .md-focus-ring, md-slider:not([md-discrete]):not([disabled]).active .md-focus-ring {
+      -webkit-transform: scale(1);
+              transform: scale(1); }
+    md-slider:not([md-discrete]):not([disabled]):focus .md-thumb, md-slider:not([md-discrete]):not([disabled]).active .md-thumb {
+      -webkit-transform: scale(0.85);
+              transform: scale(0.85); }
+  md-slider[md-discrete] {
+    /* Hide the focus thumb in discrete mode */ }
+    md-slider[md-discrete] .md-focus-thumb, md-slider[md-discrete] .md-focus-ring {
+      display: none; }
+    md-slider[md-discrete]:not([disabled]):focus .md-sign, md-slider[md-discrete]:not([disabled]):focus .md-sign:after, md-slider[md-discrete]:not([disabled]).active .md-sign, md-slider[md-discrete]:not([disabled]).active .md-sign:after {
+      opacity: 1;
+      -webkit-transform: translate3d(0, 0, 0) scale(1);
+              transform: translate3d(0, 0, 0) scale(1); }
+  md-slider[disabled] .md-track-fill {
+    display: none; }
+  md-slider[disabled] .md-sign {
+    display: none; }
+  md-slider[disabled] .md-thumb {
+    -webkit-transform: scale(0.35);
+            transform: scale(0.35); }
+  md-slider[disabled] .md-disabled-thumb {
+    display: block; }
+
+@media screen and (-ms-high-contrast: active) {
+  md-slider.md-default-theme .md-track {
+    border-bottom: 1px solid #fff; } }
+
+.md-sticky-clone {
+  z-index: 2;
+  top: 0;
+  left: 0;
+  right: 0;
+  position: absolute !important;
+  -webkit-transform: translate3d(-9999px, -9999px, 0);
+          transform: translate3d(-9999px, -9999px, 0); }
+  .md-sticky-clone[sticky-state="active"] {
+    -webkit-transform: translate3d(0, 0, 0);
+            transform: translate3d(0, 0, 0); }
+    .md-sticky-clone[sticky-state="active"]:not(.md-sticky-no-effect) .md-subheader-inner {
+      -webkit-animation: subheaderStickyHoverIn 0.3s ease-out both;
+              animation: subheaderStickyHoverIn 0.3s ease-out both; }
+
+@-webkit-keyframes subheaderStickyHoverIn {
+  0% {
+    box-shadow: 0 0 0 0 transparent; }
+
+  100% {
+    box-shadow: 0px 2px 4px 0 rgba(0, 0, 0, 0.16); } }
+
+@keyframes subheaderStickyHoverIn {
+  0% {
+    box-shadow: 0 0 0 0 transparent; }
+
+  100% {
+    box-shadow: 0px 2px 4px 0 rgba(0, 0, 0, 0.16); } }
+
+@-webkit-keyframes subheaderStickyHoverOut {
+  0% {
+    box-shadow: 0px 2px 4px 0 rgba(0, 0, 0, 0.16); }
+
+  100% {
+    box-shadow: 0 0 0 0 transparent; } }
+
+@keyframes subheaderStickyHoverOut {
+  0% {
+    box-shadow: 0px 2px 4px 0 rgba(0, 0, 0, 0.16); }
+
+  100% {
+    box-shadow: 0 0 0 0 transparent; } }
+
+.md-subheader-wrapper:not(.md-sticky-no-effect) {
+  transition: 0.2s ease-out margin; }
+  .md-subheader-wrapper:not(.md-sticky-no-effect) .md-subheader {
+    margin: 0; }
+  .md-subheader-wrapper:not(.md-sticky-no-effect).md-sticky-clone {
+    z-index: 2; }
+  .md-subheader-wrapper:not(.md-sticky-no-effect)[sticky-state="active"] {
+    margin-top: -2px; }
+  .md-subheader-wrapper:not(.md-sticky-no-effect):not(.md-sticky-clone)[sticky-prev-state="active"] .md-subheader-inner:after {
+    -webkit-animation: subheaderStickyHoverOut 0.3s ease-out both;
+            animation: subheaderStickyHoverOut 0.3s ease-out both; }
+
+.md-subheader {
+  display: block;
+  font-size: 14px;
+  font-weight: 500;
+  line-height: 1em;
+  margin: 0 0 0 0;
+  margin-right: 16px;
+  position: relative; }
+  .md-subheader .md-subheader-inner {
+    display: block;
+    padding: 16px 0px 16px 16px; }
+  .md-subheader .md-subheader-content {
+    display: block;
+    z-index: 1;
+    position: relative; }
+
+md-switch {
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-align-items: center;
+      -ms-flex-align: center;
+          align-items: center;
+  margin: 15px;
+  white-space: nowrap;
+  cursor: pointer;
+  outline: none;
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none; }
+  md-switch .md-container {
+    cursor: -webkit-grab;
+    cursor: grab;
+    width: 36px;
+    height: 24px;
+    position: relative;
+    -webkit-user-select: none;
+       -moz-user-select: none;
+        -ms-user-select: none;
+            user-select: none;
+    margin-right: 8px; }
+  md-switch:not([disabled]) .md-dragging, md-switch:not([disabled]).md-dragging .md-container {
+    cursor: -webkit-grabbing;
+    cursor: grabbing; }
+  md-switch.md-focused:not([disabled]) .md-thumb:before {
+    left: -8px;
+    top: -8px;
+    right: -8px;
+    bottom: -8px; }
+  md-switch.md-focused:not([disabled]):not(.md-checked) .md-thumb:before {
+    background-color: rgba(0, 0, 0, 0.12); }
+  md-switch .md-label {
+    border-color: transparent;
+    border-width: 0; }
+  md-switch .md-bar {
+    left: 1px;
+    width: 34px;
+    top: 5px;
+    height: 14px;
+    border-radius: 8px;
+    position: absolute; }
+  md-switch .md-thumb-container {
+    top: 2px;
+    left: 0;
+    width: 16px;
+    position: absolute;
+    -webkit-transform: translate3d(0, 0, 0);
+            transform: translate3d(0, 0, 0);
+    z-index: 1; }
+  md-switch.md-checked .md-thumb-container {
+    -webkit-transform: translate3d(100%, 0, 0);
+            transform: translate3d(100%, 0, 0); }
+  md-switch .md-thumb {
+    position: absolute;
+    margin: 0;
+    left: 0;
+    top: 0;
+    outline: none;
+    height: 20px;
+    width: 20px;
+    border-radius: 50%;
+    box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.14), 0px 2px 2px 0px rgba(0, 0, 0, 0.098), 0px 1px 5px 0px rgba(0, 0, 0, 0.084); }
+    md-switch .md-thumb:before {
+      background-color: transparent;
+      border-radius: 50%;
+      content: '';
+      position: absolute;
+      display: block;
+      height: auto;
+      left: 0;
+      top: 0;
+      right: 0;
+      bottom: 0;
+      transition: all 0.5s;
+      width: auto; }
+    md-switch .md-thumb .md-ripple-container {
+      position: absolute;
+      display: block;
+      width: auto;
+      height: auto;
+      left: -20px;
+      top: -20px;
+      right: -20px;
+      bottom: -20px; }
+  md-switch:not(.md-dragging) .md-bar, md-switch:not(.md-dragging) .md-thumb-container, md-switch:not(.md-dragging) .md-thumb {
+    transition: all 0.5s cubic-bezier(0.35, 0, 0.25, 1);
+    transition-property: -webkit-transform, background-color;
+    transition-property: transform, background-color; }
+  md-switch:not(.md-dragging) .md-bar, md-switch:not(.md-dragging) .md-thumb {
+    transition-delay: 0.05s; }
+
+@media screen and (-ms-high-contrast: active) {
+  md-switch.md-default-theme .md-bar {
+    background-color: #666; }
+  md-switch.md-default-theme.md-checked .md-bar {
+    background-color: #9E9E9E; }
+  md-switch.md-default-theme .md-thumb {
+    background-color: #fff; } }
+
+@-webkit-keyframes md-tab-content-hide {
+  0% {
+    opacity: 1; }
+
+  50% {
+    opacity: 1; }
+
+  100% {
+    opacity: 0; } }
+
+@keyframes md-tab-content-hide {
+  0% {
+    opacity: 1; }
+
+  50% {
+    opacity: 1; }
+
+  100% {
+    opacity: 0; } }
+
+md-tab-data {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  z-index: -1;
+  opacity: 0; }
+
+md-tabs {
+  display: block;
+  margin: 0;
+  border-radius: 2px;
+  overflow: hidden;
+  position: relative;
+  -webkit-flex-shrink: 0;
+      -ms-flex-negative: 0;
+          flex-shrink: 0; }
+  md-tabs:not(.md-no-tab-content):not(.md-dynamic-height) {
+    min-height: 248px; }
+  md-tabs[md-align-tabs="bottom"] md-tabs-wrapper {
+    position: absolute;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    height: 48px; }
+  md-tabs[md-align-tabs="bottom"] md-tabs-content-wrapper {
+    top: 0;
+    bottom: 48px; }
+  md-tabs.md-dynamic-height md-tabs-content-wrapper {
+    min-height: 0;
+    position: relative;
+    top: auto;
+    left: auto;
+    right: auto;
+    bottom: auto;
+    overflow: visible; }
+  md-tabs.md-dynamic-height md-tab-content.md-active {
+    position: relative; }
+  md-tabs[md-border-bottom] md-tabs-wrapper {
+    border-width: 0 0 1px;
+    border-style: solid; }
+  md-tabs[md-border-bottom]:not(.md-dynamic-height) md-tabs-content-wrapper {
+    top: 49px; }
+
+md-tabs-wrapper {
+  display: block;
+  position: relative; }
+  md-tabs-wrapper md-prev-button, md-tabs-wrapper md-next-button {
+    height: 100%;
+    width: 32px;
+    position: absolute;
+    top: 50%;
+    -webkit-transform: translateY(-50%);
+            transform: translateY(-50%);
+    line-height: 1em;
+    z-index: 2;
+    cursor: pointer;
+    font-size: 16px;
+    background: transparent no-repeat center center;
+    transition: all 0.5s cubic-bezier(0.35, 0, 0.25, 1); }
+    md-tabs-wrapper md-prev-button:focus, md-tabs-wrapper md-next-button:focus {
+      outline: none; }
+    md-tabs-wrapper md-prev-button.md-disabled, md-tabs-wrapper md-next-button.md-disabled {
+      opacity: 0.25;
+      cursor: default; }
+    md-tabs-wrapper md-prev-button.ng-leave, md-tabs-wrapper md-next-button.ng-leave {
+      transition: none; }
+    md-tabs-wrapper md-prev-button md-icon, md-tabs-wrapper md-next-button md-icon {
+      position: absolute;
+      top: 50%;
+      left: 50%;
+      -webkit-transform: translate3d(-50%, -50%, 0);
+              transform: translate3d(-50%, -50%, 0); }
+  md-tabs-wrapper md-prev-button {
+    left: 0;
+    background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMjA4IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTUuNCw3LjQgMTQsNiA4LDEyIDE0LDE4IDE1LjQsMTYuNiAxMC44LDEyIAkJIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4gPHJlY3QgZmlsbD0ibm9uZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+IDwvZz4gPC9nPiA8ZyBpZD0iR3JpZCIgZGlzcGxheT0ibm9uZSI+IDxnIGRpc3BsYXk9ImlubGluZSI+IDwvZz4gPC9nPiA8L3N2Zz4NCg=='); }
+  md-tabs-wrapper md-next-button {
+    right: 0;
+    background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMzM2IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTAsNiA4LjYsNy40IDEzLjIsMTIgOC42LDE2LjYgMTAsMTggMTYsMTIgCQkiIHN0eWxlPSJmaWxsOndoaXRlOyIvPiA8cmVjdCBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz4gPC9nPiA8L2c+IDxnIGlkPSJHcmlkIiBkaXNwbGF5PSJub25lIj4gPGcgZGlzcGxheT0iaW5saW5lIj4gPC9nPiA8L2c+IDwvc3ZnPg0K'); }
+    md-tabs-wrapper md-next-button md-icon {
+      -webkit-transform: translate3d(-50%, -50%, 0) rotate(180deg);
+              transform: translate3d(-50%, -50%, 0) rotate(180deg); }
+  md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper {
+    width: 100%;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-flex-direction: row;
+        -ms-flex-direction: row;
+            flex-direction: row; }
+    md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper md-tab-item {
+      -webkit-flex-grow: 1;
+          -ms-flex-positive: 1;
+              flex-grow: 1; }
+
+md-tabs-canvas {
+  position: relative;
+  overflow: hidden;
+  display: block;
+  height: 48px; }
+  md-tabs-canvas:after {
+    content: '';
+    display: table;
+    clear: both; }
+  md-tabs-canvas .md-dummy-wrapper {
+    position: absolute;
+    top: 0;
+    left: 0; }
+  md-tabs-canvas.md-paginated {
+    margin: 0 32px; }
+  md-tabs-canvas.md-center-tabs {
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-flex-direction: column;
+        -ms-flex-direction: column;
+            flex-direction: column;
+    text-align: center; }
+    md-tabs-canvas.md-center-tabs .md-tab {
+      float: none;
+      display: inline-block; }
+
+md-pagination-wrapper {
+  height: 48px;
+  display: block;
+  transition: -webkit-transform 0.5s cubic-bezier(0.35, 0, 0.25, 1);
+  transition: transform 0.5s cubic-bezier(0.35, 0, 0.25, 1);
+  position: absolute;
+  width: 999999px;
+  left: 0;
+  -webkit-transform: translate3d(0, 0, 0);
+          transform: translate3d(0, 0, 0); }
+  md-pagination-wrapper:after {
+    content: '';
+    display: table;
+    clear: both; }
+  md-pagination-wrapper.md-center-tabs {
+    position: relative;
+    width: initial;
+    -webkit-flex: 1;
+        -ms-flex: 1;
+            flex: 1;
+    margin: 0 auto; }
+
+md-tabs-content-wrapper {
+  display: block;
+  position: absolute;
+  top: 48px;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  overflow: hidden; }
+
+md-tab-content {
+  display: block;
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  -webkit-transform: translateX(0);
+          transform: translateX(0);
+  transition: -webkit-transform 0.5s cubic-bezier(0.35, 0, 0.25, 1);
+  transition: transform 0.5s cubic-bezier(0.35, 0, 0.25, 1);
+  overflow: auto; }
+  md-tab-content.md-no-scroll {
+    bottom: auto;
+    overflow: hidden; }
+  md-tab-content.ng-leave, md-tab-content.md-no-transition {
+    transition: none; }
+  md-tab-content.md-left {
+    -webkit-transform: translateX(-100%);
+            transform: translateX(-100%);
+    -webkit-animation: 1s md-tab-content-hide;
+            animation: 1s md-tab-content-hide;
+    opacity: 0; }
+    md-tab-content.md-left * {
+      transition: visibility 0s linear;
+      transition-delay: 0.5s;
+      visibility: hidden; }
+  md-tab-content.md-right {
+    -webkit-transform: translateX(100%);
+            transform: translateX(100%);
+    -webkit-animation: 1s md-tab-content-hide;
+            animation: 1s md-tab-content-hide;
+    opacity: 0; }
+    md-tab-content.md-right * {
+      transition: visibility 0s linear;
+      transition-delay: 0.5s;
+      visibility: hidden; }
+  md-tab-content > div.ng-leave {
+    -webkit-animation: 1s md-tab-content-hide;
+            animation: 1s md-tab-content-hide; }
+
+md-ink-bar {
+  position: absolute;
+  left: auto;
+  right: auto;
+  bottom: 0;
+  height: 2px; }
+  md-ink-bar.md-left {
+    transition: left 0.225s cubic-bezier(0.35, 0, 0.25, 1), right 0.5s cubic-bezier(0.35, 0, 0.25, 1); }
+  md-ink-bar.md-right {
+    transition: left 0.5s cubic-bezier(0.35, 0, 0.25, 1), right 0.225s cubic-bezier(0.35, 0, 0.25, 1); }
+
+md-tab {
+  position: absolute;
+  z-index: -1;
+  left: -9999px; }
+
+.md-tab {
+  font-size: 14px;
+  text-align: center;
+  line-height: 24px;
+  padding: 12px 24px;
+  transition: background-color 0.35s cubic-bezier(0.35, 0, 0.25, 1);
+  cursor: pointer;
+  white-space: nowrap;
+  position: relative;
+  text-transform: uppercase;
+  float: left;
+  font-weight: 500;
+  box-sizing: border-box;
+  overflow: hidden;
+  text-overflow: ellipsis; }
+  .md-tab.md-focused {
+    box-shadow: none;
+    outline: none; }
+  .md-tab.md-active {
+    cursor: default; }
+  .md-tab.md-disabled {
+    pointer-events: none;
+    -ms-touch-action: pan-y;
+        touch-action: pan-y;
+    -webkit-user-select: none;
+       -moz-user-select: none;
+        -ms-user-select: none;
+            user-select: none;
+    -webkit-user-drag: none;
+    opacity: 0.5;
+    cursor: default; }
+  .md-tab.ng-leave {
+    transition: none; }
+
+md-toolbar + md-tabs {
+  border-top-left-radius: 0;
+  border-top-right-radius: 0; }
+
+md-toast {
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  position: absolute;
+  z-index: 90;
+  box-sizing: border-box;
+  -webkit-align-items: center;
+      -ms-flex-align: center;
+          align-items: center;
+  min-height: 48px;
+  padding-left: 24px;
+  padding-right: 24px;
+  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
+  border-radius: 2px;
+  font-size: 14px;
+  cursor: default;
+  height: auto;
+  max-height: 168px;
+  max-width: 100%;
+  overflow: hidden;
+  opacity: 1;
+  -webkit-transform: translate3d(0, 0, 0) rotateZ(0deg);
+          transform: translate3d(0, 0, 0) rotateZ(0deg);
+  transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
+  /* Transition differently when swiping */ }
+  md-toast.md-capsule {
+    border-radius: 24px; }
+  md-toast.ng-leave-active {
+    transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); }
+  md-toast.md-swipeleft, md-toast.md-swiperight, md-toast.md-swipeup, md-toast.md-swipedown {
+    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); }
+  md-toast.ng-enter {
+    -webkit-transform: translate3d(0, 100%, 0);
+            transform: translate3d(0, 100%, 0);
+    opacity: 0; }
+    md-toast.ng-enter.md-top {
+      -webkit-transform: translate3d(0, -100%, 0);
+              transform: translate3d(0, -100%, 0); }
+    md-toast.ng-enter.ng-enter-active {
+      -webkit-transform: translate3d(0, 0, 0);
+              transform: translate3d(0, 0, 0);
+      opacity: 1; }
+  md-toast.ng-leave.ng-leave-active {
+    opacity: 0;
+    -webkit-transform: translate3d(0, 100%, 0);
+            transform: translate3d(0, 100%, 0); }
+    md-toast.ng-leave.ng-leave-active.md-top {
+      -webkit-transform: translate3d(0, -100%, 0);
+              transform: translate3d(0, -100%, 0); }
+    md-toast.ng-leave.ng-leave-active.md-swipeleft {
+      -webkit-transform: translate3d(-100%, 0%, 0);
+              transform: translate3d(-100%, 0%, 0); }
+    md-toast.ng-leave.ng-leave-active.md-swiperight {
+      -webkit-transform: translate3d(100%, 0%, 0);
+              transform: translate3d(100%, 0%, 0); }
+  md-toast .md-action {
+    line-height: 19px;
+    margin-left: 24px;
+    cursor: pointer;
+    text-transform: uppercase;
+    float: right; }
+    md-toast .md-action.md-button {
+      min-width: 0; }
+
+@media (max-width: 600px) {
+  md-toast {
+    left: 0;
+    right: 0;
+    width: 100%;
+    max-width: 100%;
+    min-width: 0;
+    border-radius: 0;
+    bottom: 0; }
+    md-toast.md-top {
+      bottom: auto;
+      top: 0; } }
+
+@media (min-width: 600px) {
+  md-toast {
+    min-width: 288px;
+    /*
+     * When the toast doesn't take up the whole screen,
+     * make it rotate when the user swipes it away
+     */ }
+    md-toast.md-bottom {
+      bottom: 8px; }
+    md-toast.md-left {
+      left: 8px; }
+    md-toast.md-right {
+      right: 8px; }
+    md-toast.md-top {
+      top: 8px; }
+    md-toast.ng-leave.ng-leave-active.md-swipeleft {
+      -webkit-transform: translate3d(-100%, 25%, 0) rotateZ(-15deg);
+              transform: translate3d(-100%, 25%, 0) rotateZ(-15deg); }
+    md-toast.ng-leave.ng-leave-active.md-swiperight {
+      -webkit-transform: translate3d(100%, 25%, 0) rotateZ(15deg);
+              transform: translate3d(100%, 25%, 0) rotateZ(15deg); }
+    md-toast.ng-leave.ng-leave-active.md-top.md-swipeleft {
+      -webkit-transform: translate3d(-100%, 0, 0) rotateZ(-15deg);
+              transform: translate3d(-100%, 0, 0) rotateZ(-15deg); }
+    md-toast.ng-leave.ng-leave-active.md-top.md-swiperight {
+      -webkit-transform: translate3d(100%, 0, 0) rotateZ(15deg);
+              transform: translate3d(100%, 0, 0) rotateZ(15deg); } }
+
+@media (min-width: 1200px) {
+  md-toast {
+    max-width: 568px; } }
+
+@media screen and (-ms-high-contrast: active) {
+  md-toast {
+    border: 1px solid #fff; } }
+
+md-toolbar {
+  box-sizing: border-box;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-flex-direction: column;
+      -ms-flex-direction: column;
+          flex-direction: column;
+  position: relative;
+  z-index: 2;
+  font-size: 20px;
+  min-height: 64px;
+  width: 100%; }
+  md-toolbar.md-whiteframe-z1-add, md-toolbar.md-whiteframe-z1-remove {
+    transition: box-shadow 0.5s linear; }
+  md-toolbar md-toolbar-filler {
+    width: 72px; }
+  md-toolbar *, md-toolbar *:before, md-toolbar *:after {
+    box-sizing: border-box; }
+  md-toolbar.md-tall {
+    height: 128px;
+    min-height: 128px;
+    max-height: 128px; }
+  md-toolbar.md-medium-tall {
+    height: 88px;
+    min-height: 88px;
+    max-height: 88px; }
+    md-toolbar.md-medium-tall .md-toolbar-tools {
+      height: 48px;
+      min-height: 48px;
+      max-height: 48px; }
+  md-toolbar > .md-indent {
+    margin-left: 64px; }
+  md-toolbar ~ md-content > md-list {
+    padding: 0; }
+    md-toolbar ~ md-content > md-list md-list-item:last-child md-divider {
+      display: none; }
+
+.md-toolbar-tools {
+  font-size: 20px;
+  letter-spacing: 0.005em;
+  box-sizing: border-box;
+  font-weight: 400;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-align-items: center;
+      -ms-flex-align: center;
+          align-items: center;
+  -webkit-flex-direction: row;
+      -ms-flex-direction: row;
+          flex-direction: row;
+  width: 100%;
+  height: 64px;
+  max-height: 64px;
+  padding: 0 16px;
+  margin: 0; }
+  .md-toolbar-tools h1, .md-toolbar-tools h2, .md-toolbar-tools h3 {
+    font-size: inherit;
+    font-weight: inherit;
+    margin: inherit; }
+  .md-toolbar-tools a {
+    color: inherit;
+    text-decoration: none; }
+  .md-toolbar-tools .fill-height {
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+    -webkit-align-items: center;
+        -ms-flex-align: center;
+            align-items: center; }
+  .md-toolbar-tools .md-button {
+    margin-top: 0;
+    margin-bottom: 0; }
+  .md-toolbar-tools > .md-button:first-child {
+    margin-left: -8px; }
+  .md-toolbar-tools > .md-button:last-child {
+    margin-right: -8px; }
+  .md-toolbar-tools > md-menu:last-child {
+    margin-right: -8px; }
+    .md-toolbar-tools > md-menu:last-child > .md-button {
+      margin-right: 0; }
+  @media screen and (-ms-high-contrast: active) {
+    .md-toolbar-tools {
+      border-bottom: 1px solid #fff; } }
+
+@media only screen and (min-width: 0) and (max-width: 600px) and (orientation: portrait) {
+  md-toolbar {
+    min-height: 56px; }
+  .md-toolbar-tools {
+    height: 56px;
+    max-height: 56px; } }
+
+@media only screen and (min-width: 0) and (max-width: 600px) and (orientation: landscape) {
+  md-toolbar {
+    min-height: 48px; }
+  .md-toolbar-tools {
+    height: 48px;
+    max-height: 48px; } }
+
+md-tooltip {
+  position: absolute;
+  z-index: 100;
+  overflow: hidden;
+  pointer-events: none;
+  border-radius: 4px;
+  font-weight: 500;
+  font-size: 14px; }
+  @media screen and (min-width: 600px) {
+    md-tooltip {
+      font-size: 10px; } }
+  md-tooltip .md-background {
+    position: absolute;
+    border-radius: 50%;
+    -webkit-transform: translate(-50%, -50%) scale(0);
+            transform: translate(-50%, -50%) scale(0);
+    opacity: 1; }
+    md-tooltip .md-background.md-show-add {
+      transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
+      -webkit-transform: translate(-50%, -50%) scale(0);
+              transform: translate(-50%, -50%) scale(0);
+      opacity: 0; }
+    md-tooltip .md-background.md-show, md-tooltip .md-background.md-show-add-active {
+      -webkit-transform: translate(-50%, -50%) scale(1);
+              transform: translate(-50%, -50%) scale(1);
+      opacity: 1; }
+    md-tooltip .md-background.md-show-remove {
+      transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); }
+      md-tooltip .md-background.md-show-remove.md-show-remove-active {
+        -webkit-transform: translate(-50%, -50%) scale(0);
+                transform: translate(-50%, -50%) scale(0);
+        opacity: 0; }
+  md-tooltip .md-content {
+    position: relative;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    background: transparent;
+    opacity: 0;
+    height: 32px;
+    line-height: 32px;
+    padding-left: 16px;
+    padding-right: 16px; }
+    @media screen and (min-width: 600px) {
+      md-tooltip .md-content {
+        height: 22px;
+        line-height: 22px;
+        padding-left: 8px;
+        padding-right: 8px; } }
+    md-tooltip .md-content.md-show-add {
+      transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
+      opacity: 0; }
+    md-tooltip .md-content.md-show, md-tooltip .md-content.md-show-add-active {
+      opacity: 1; }
+    md-tooltip .md-content.md-show-remove {
+      transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); }
+      md-tooltip .md-content.md-show-remove.md-show-remove-active {
+        opacity: 0; }
+  md-tooltip.md-hide {
+    transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); }
+  md-tooltip.md-show {
+    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
+    pointer-events: auto;
+    -webkit-transform: translate3d(0, 0, 0);
+            transform: translate3d(0, 0, 0); }
+
+.md-virtual-repeat-container {
+  box-sizing: border-box;
+  display: block;
+  margin: 0;
+  overflow: hidden;
+  padding: 0;
+  position: relative; }
+  .md-virtual-repeat-container .md-virtual-repeat-scroller {
+    bottom: 0;
+    box-sizing: border-box;
+    left: 0;
+    margin: 0;
+    overflow-x: hidden;
+    padding: 0;
+    position: absolute;
+    right: 0;
+    top: 0; }
+  .md-virtual-repeat-container .md-virtual-repeat-sizer {
+    box-sizing: border-box;
+    height: 1px;
+    display: inline-block;
+    margin: 0;
+    padding: 0;
+    width: 1px; }
+  .md-virtual-repeat-container .md-virtual-repeat-offsetter {
+    box-sizing: border-box;
+    left: 0;
+    margin: 0;
+    padding: 0;
+    position: absolute;
+    right: 16px;
+    top: 0; }
+
+.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-scroller {
+  overflow-x: auto;
+  overflow-y: hidden; }
+.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter {
+  bottom: 16px;
+  right: auto;
+  white-space: nowrap; }
+
+.md-whiteframe-z1 {
+  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.14), 0px 2px 2px 0px rgba(0, 0, 0, 0.098), 0px 1px 5px 0px rgba(0, 0, 0, 0.084); }
+
+.md-whiteframe-z2 {
+  box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.14), 0 4px 5px 0 rgba(0, 0, 0, 0.098), 0 1px 10px 0 rgba(0, 0, 0, 0.084); }
+
+.md-whiteframe-z3 {
+  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.14), 0px 6px 10px 0px rgba(0, 0, 0, 0.098), 0px 1px 18px 0px rgba(0, 0, 0, 0.084); }
+
+.md-whiteframe-z4 {
+  box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.14), 0px 8px 10px 1px rgba(0, 0, 0, 0.098), 0px 3px 14px 2px rgba(0, 0, 0, 0.084); }
+
+.md-whiteframe-z5 {
+  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.14), 0px 16px 24px 2px rgba(0, 0, 0, 0.098), 0px 6px 30px 5px rgba(0, 0, 0, 0.084); }
+
+@media screen and (-ms-high-contrast: active) {
+  md-whiteframe {
+    border: 1px solid #fff; } }

+ 17 - 0
css/angular.typeahead.css

@@ -0,0 +1,17 @@
+/* scaffolding */
+/* ----------- */
+
+
+.typeahead.dropdown-menu {
+  width: 460px;
+  border-radius: 0 0 0 0 !important;
+  top: 38px !important;
+  padding: 8px 0;
+  background-color: #fff;
+  border: 1px solid #ccc;
+  border: 1px solid rgba(0, 0, 0, 0.2);
+  -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
+     -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
+          box-shadow: 0 5px 10px rgba(0,0,0,.2);
+}
+

File diff suppressed because it is too large
+ 3 - 0
css/font-awesome.min.css


File diff suppressed because it is too large
+ 0 - 0
css/main.css


+ 579 - 0
css/main.less

@@ -0,0 +1,579 @@
+html {
+  height: 100%;
+  width: 100%;
+}
+
+.ie-compatibility {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  top: 0;
+  left: 0;
+  background: #fafafa;
+  overflow: hidden;
+  z-index: 9999;
+  text-align: center;
+  vertical-align: middle;
+  padding-top: 100px;
+  font-size: 24px;
+}
+
+body {
+  background-color: #333;
+  background: url("../img/background.png") no-repeat top center fixed;
+  background-size: cover;
+  margin: 0;
+  padding: 0;
+  height: 100%;
+  width: 100%;
+  overflow: auto;
+  font-family: calibri;
+
+  .error-navigator {
+    font-size: 41px;
+    color: red;
+    text-align: center;
+    position: relative;
+    top: 50%;
+    background: white;
+    opacity: 0.5;
+  }
+}
+
+a {
+  text-decoration: none;
+}
+
+.rmq {
+  font-weight: bold;
+  font-style: italic;
+}
+
+.bg-warning {
+  color: #8a6d3b;
+  background-color: #fcf8e3;
+  border-color: #faebcc;
+  padding: 10px;
+  margin: 1em;
+}
+
+.bg-info {
+  color: #31708f;
+  background-color: #d9edf7;
+  border-color: #bce8f1;
+  padding: 10px;
+  margin: 1em;
+  text-align: center;
+}
+
+.title {
+  position: absolute;
+  z-index: 9999999999;
+  cursor: pointer;
+}
+
+.data-loading-txt {
+  position: relative;
+  top: -40px;
+  left: 50px;
+  font-size: 15px;
+  font-weight: bold;
+  color: #666;
+}
+
+#result {
+  background: white;
+  opacity: 0.9;
+  height: 0px;
+  overflow: hidden;
+  background: url("../img/filter.png") bottom left repeat-x;
+}
+
+#result .result-container {
+  height: 100%;
+  margin: 0;
+  padding: 1em;
+  box-sizing: border-box;
+}
+
+.modal-dialog {
+  width: 770px !important;
+  text-align: justify;
+  font-size: 14px;
+}
+
+.other-radio {
+  border: none;
+  border-bottom: 1px solid #ddd;
+  height: 30px;
+  line-height: 30px;
+}
+
+#result .result-box {
+  background: white;
+  border-radius: 10px;
+  height: calc(~'100% - 15px');
+}
+
+.box-header {
+  display: table;
+  width: 100%;
+  table-layout: fixed;
+}
+
+.box-description {
+  height: 80px;
+  overflow: auto;
+}
+
+.box-description-more {
+  text-align: right;
+}
+
+.box-eligibilite-title {
+  text-transform: uppercase;
+  color: #666;
+}
+
+.box-eligibilite-title .btn{
+  z-index: 1000;
+  position: relative;
+}
+
+.box-eligibilite-yes {
+  color: #8cc474;
+}
+
+.box-eligibilite-no {
+  color: #e46f61;
+}
+
+.box-eligibilite {
+  height: calc(~'100% - 140px');
+}
+
+.box-eligibilite > div {
+  height: 100%;
+}
+
+.box-eligibilite-spinner {
+  text-align: center;
+  position:relative;
+  top: 50%;
+  margin-top: 30px;
+}
+
+.box-eligibilite-none {
+  text-align: center;
+  position:relative;
+  top: 50%;
+  font-size: 25px;
+  text-transform: uppercase;
+  color: #bbb;
+  margin-top: -35px;
+}
+
+.box-body {
+  overflow: auto;
+  padding: 1em;
+  box-sizing: border-box;
+  height: calc(~'100% - 100px');
+  border-left: 7px solid silver;
+  border-radius: 0 0 0 10px;
+}
+
+hr {
+  margin-top: 5px !important;
+  margin-bottom: 5px !important;
+}
+
+.box-logo,
+.box-title-description {
+  display: table-cell;
+  vertical-align: top;
+}
+
+.box-title {
+  text-align: center;
+  font-size: 24px;
+  white-space: nowrap;
+  font-weight: 200;
+  margin-top: 5px;
+}
+
+.box-desc {
+  height: 60px;
+  overflow: auto;
+  padding-left: 4px;
+}
+
+.solution {
+  font-size: 16px;
+}
+
+.box-logo,
+.box-logo img {
+  width: 100px;
+  height: 100px;
+  border-radius: 10px 0 10px 0;
+}
+
+.md-sidenav-right {
+  z-index: 99999999999999;
+
+  md-content {
+    width: 100%;
+  }
+}
+
+.md-sidenav-right .md-toolbar-tools {
+  font-size: 20px;
+  position: relative;
+  top: 21px;
+}
+
+.md-sidenav-right md-progress-circular {
+  position: absolute;
+  right: 7px;
+  top: 7px;
+}
+
+.force-hidden .md-inner {
+  display: none !important;
+}
+
+.md-sidenav-right md-progress-circular .md-right .md-half-circle {
+  border-right-color: white !important;
+  border-top-color: white !important;
+}
+
+.md-sidenav-right md-progress-circular .md-left .md-half-circle {
+  border-left-color: white !important;
+  border-top-color: white !important;
+}
+
+.md-sidenav-right md-progress-circular .md-inner {
+  display: none;
+}
+
+
+.md-label:before {
+  content: no-close-quote;
+}
+
+.md-sidenav-right .section-title {
+  text-transform: uppercase;
+  color: #999;
+  white-space: nowrap;
+  font-size: 13px;
+  padding-bottom: 10px;
+  margin-bottom: 7px;
+  border-bottom: 1px solid #999;
+}
+
+
+.md-sidenav-rightmd-checkbox .md-label {
+  position: relative;
+  top: -2px;
+}
+
+md-checkbox {
+  margin: 5px 0 0 0;
+}
+
+.address-bar {
+  position: absolute;
+  right: 20px;
+  z-index: 1000;
+}
+
+.address-bar .input-type {
+  position: absolute;
+  top: 20px;
+  right: 128px;
+
+  .loading-typeahead-results,
+  .no-typeahead-results {
+    padding: 0 5px;
+    height: 40px;
+    line-height: 40px;
+    background: white;
+  }
+}
+
+.address-bar input {
+  width: 420px;
+  height: 41px;
+  padding: 0 10px;
+  font-size: 15px;
+  line-height: 30px;
+  color: #777;
+}
+
+.ellipsis {
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+  width: inherit;
+}
+
+.address-bar ul.dropdown-menu {
+  margin: -1px;
+  border-radius: 0;
+  width: 510px;
+  padding: 0;
+
+  li {
+    height: 40px;
+    line-height: 40px;
+
+    a {
+      .ellipsis;
+      padding: 0px 5px;
+      height: 100%;
+      line-height: 40px;
+    }
+  }
+}
+
+.address-bar button {
+  height: 41px;
+  position: absolute;
+  top: 20px;
+  right: 40px;
+  border-radius: 0 0 0 0 !important;
+  box-shadow: none;
+}
+
+.address-bar .md-menu {
+  position: absolute;
+  top: 10px;
+  right: -12px;
+  cursor: pointer;
+  color: white;
+  font-size: 45px;
+}
+
+.address-bar button i {
+  padding: 0 10px;
+}
+
+.title img {
+  height: 65px;
+  margin: 1em;
+}
+
+#map {
+  height: 100%;
+  width: 100%;
+}
+
+.popup-title {
+  font-weight: bold;
+}
+
+.popup-line {
+  white-space: nowrap;
+  position: relative;
+}
+
+.leaflet-popup-content {
+  width: 380px !important;
+  max-height: 380px;
+  overflow: auto;
+}
+
+.popup-label {
+  color: rgba(0,0,0,0.54);
+  width: inherit;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  overflow: auto;
+  font-size: 12px;
+}
+
+.popup-value {
+  color: #333;
+  font-size: 14px;
+  height: 26px;
+  line-height: 23px;
+  border-bottom: 1px solid #ddd;
+  margin-bottom: 13px;
+}
+
+.popup-small-date {
+  position: absolute;
+  font-size: 10px;
+  right: 0px;
+  top: 20px;
+}
+
+md-toast {
+  padding-top: 10px !important;
+  font-size: 14px !important;
+}
+
+md-toast.md-bottom {
+  bottom: 15px;
+}
+
+md-toast.md-right {
+  right: 15px;
+}
+
+md-radio-group.md-default-theme:focus:not(:empty) {
+  border-color: transparent !important;
+}
+
+md-radio-button {
+  margin: 5px 0px;
+}
+
+.modal-backdrop.in {
+  opacity: 0.7 !important;
+}
+
+.formulaire .section {
+  padding-bottom: 20px;
+}
+
+.formulaire .no-padding {
+  padding-bottom: 0px;
+}
+
+.formulaire .section-name {
+  text-transform: uppercase;
+  font-size: 22px;
+}
+
+.formulaire md-input-container {
+  padding-left: 10px;
+  padding-bottom: 20px;
+  text-align: left;
+
+  > * {
+    text-align: justify;
+  }
+
+  > label {
+    text-align: left;
+  }
+}
+
+.formulaire md-select,
+.formulaire input {
+}
+
+.formulaire md-select-value > span,
+.formulaire md-input-container label {
+
+  height: 16px;
+  margin-bottom: 5px;
+}
+
+.formulaire md-select-value.md-select-placeholder > span {
+  position: relative;
+  top: -2px;
+  font-weight: bold;
+}
+
+.formulaire md-select-value {
+  width: 100%;
+}
+
+.formulaire md-select-value > span {
+  position: relative;
+  top: 6px;
+}
+
+.formulaire md-content {
+  display: flex;
+}
+
+.formulaire md-content,
+.formulaire md-content input {
+  width: 100%;
+  vertical-align: top;
+}
+
+.formulaire md-select,
+.formulaire textarea {
+  width: 100%;
+}
+
+.formulaire .md-select-icon {
+  display: none;
+}
+
+.md-select-menu-container {
+  z-index: 1050;
+}
+
+.form-required {
+  color: rgb(196,59,29);
+}
+
+md-checkbox .md-label:before {
+  display: none;
+}
+
+md-checkbox {
+  padding: 0;
+}
+
+md-checkbox .md-label {
+  margin-left: 25px;
+  line-height: 16px;
+  font-size: 12px;
+}
+
+md-checkbox .md-container {
+  position: absolute;
+  top: 10px;
+}
+
+.formulaire .pres-text {
+  line-height: 16px;
+}
+
+#mn_inscription .modal-body {
+  max-height: 400px;
+  overflow: auto;
+  min-height: 150px;
+}
+
+.mn-form-in-progress,
+.mn-form-error,
+.mn-form-ok {
+  text-align: center;
+  font-size: 20px;
+}
+
+.mn-form-error i{
+  color: #EF5050;
+}
+
+.mn-form-ok i{
+  color: #68C782;
+}
+
+.mn-form-in-progress i,
+.mn-form-error i,
+.mn-form-ok i {
+  font-size: 80px;
+  margin-bottom: 30px;
+}
+
+.mn-form md-radio-group,
+.mn-form md-radio-button {
+  display: block;
+}
+
+.mn-form md-radio-button .md-label{
+  white-space: nowrap;
+}
+
+.mn-form .alerte {
+  margin-top: 30px;
+  color: rgb(196,59,29);
+}

File diff suppressed because it is too large
+ 4 - 0
css/material-design-iconic-font.min.css


File diff suppressed because it is too large
+ 163 - 0
css/theme.css


File diff suppressed because it is too large
+ 2 - 0
data/Contour_Manche.json


+ 24 - 0
data/dictionary.json

@@ -0,0 +1,24 @@
+{
+  "DATE_DEB_ETUDES_PREV"   : "Date début études prévisionnelle",
+  "DATE_DEB_ETUDES_REEL"   : "Date début études réelle",
+  "DATE_DEB_PIQ_PREV"      : "Date début piquetage prévisionnelle",
+  "DATE_DEB_PIQ_REEL"      : "Date début piquetage réelle",
+  "DATE_DEB_TRAV_PREV"     : "Date début travaux prévisionnelle",
+  "DATE_DEB_TRAV_REEL"     : "Date début travaux réelle",
+  "DATE_FIN_ETUDES_PREV"   : "Date fin études prévisionnelle",
+  "DATE_FIN_ETUDES_REEL"   : "Date fin études réelle",
+  "DATE_FIN_PIQ_PREV"      : "Date fin piquetage prévisionnelle",
+  "DATE_FIN_PIQ_REEL"      : "Date fin piquetage réelle",
+  "DATE_FIN_TRAV_PREV"     : "Date fin travaux prévisionnelle",
+  "DATE_FIN_TRAV_REEL"     : "Date fin travaux réelle",
+  "DATE_PREM_REUNION_PUB"  : "Date première réunion publique",
+  "DATE_VALID_ETUDES_PREV" : "Date validation études prévisionnelle",
+  "DATE_VALID_ETUDES_REEL" : "Date validation études réelle",
+  "PHASE_TRAV"             : "Phase travaux",
+  "ID_SITE_MIMO"           : "Identifiant site MiMo",
+  "DB_MIN"                 : "Affaiblissement minimum (db)",
+  "DB_MAX"                 : "Affaiblissement maximum (db)",
+  "KM²"                    : "Surface zone (km²))",
+  "CODE_NRA"               : "Identifiant NRA",
+  "ID_ZAPM_PARTIELLE"      : "Identifiant ZAPM partielle"
+}

+ 50 - 0
datastores.php

@@ -0,0 +1,50 @@
+<?php
+function connect(){
+
+  $link = mysql_connect('localhost','mn','fernandoalonso') or die(mysql_error());
+  mysql_select_db('MN', $link) or die(mysql_error());
+}
+
+
+function executeQuery($requete) {
+  $resultat = mysql_query($requete) or die(mysql_error());
+
+  if(substr($requete, 0, 6) === 'SELECT'){
+    while($donnees=mysql_fetch_array($resultat)){
+      $resultats[]=$donnees;
+    }
+    if (!isset($resultats)) {
+      return null;
+    }
+  }
+  else if(substr($requete, 0, 6) === 'INSERT'){
+    $resultats = mysql_insert_id();
+  }
+  else {
+    $resultats = 'ok';
+  }
+
+  return $resultats;
+}
+
+connect();
+
+if($_POST['query']) {
+  $resultat = executeQuery($_POST['query']);
+}
+
+if($_POST['mail']) {
+    // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
+     $headers  = 'MIME-Version: 1.0' . "\r\n";
+     $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
+
+     // En-têtes additionnels
+     $headers .= 'From: Manche Numérique <francoisbeaufils@free.fr>' . "\r\n";
+
+     // Envoi
+     $to=$_POST['mail']['to'];
+     mail($to, $_POST['mail']['sujet'], $_POST['mail']['message'], $headers);
+}
+
+echo json_encode($resultat);
+?>

二進制
fonts/FontAwesome.otf


二進制
fonts/Material-Design-Iconic-Font.eot


File diff suppressed because it is too large
+ 28 - 0
fonts/Material-Design-Iconic-Font.svg


二進制
fonts/Material-Design-Iconic-Font.ttf


二進制
fonts/Material-Design-Iconic-Font.woff


二進制
fonts/fontawesome-webfont.eot


File diff suppressed because it is too large
+ 196 - 0
fonts/fontawesome-webfont.svg


二進制
fonts/fontawesome-webfont.ttf


二進制
fonts/fontawesome-webfont.woff


+ 145 - 0
html/form.html

@@ -0,0 +1,145 @@
+<div class = "formulaire">
+
+  <div
+    class     = "section"
+    ng-repeat = "section in formulaires.eligibilite.sections"
+    ng-class  = "{'no-padding': !formulaires.eligibilite.sections[$index+1].visible}">
+      <div
+        class  = "section-name"
+        ng-if  = "section.visible">
+          {{section.name}}
+      </div>
+
+      <div ng-repeat = "line in section.lines">
+
+      <div
+        class        = "pres-text"
+        ng-if        = "line.text"
+        ng-bind-html = "$sce.trustAsHtml(line.text)">
+      </div>
+
+      <md-content
+        layout    = "row"
+        layout-sm = "column">
+
+        <md-input-container
+          class     = "{{ctrl.id}} {{ctrl.type}} {{($last && ctrl.type === 'checkbox')? 'no-padding' : ''}}"
+          style     = "width: {{ctrl.width || '100%'}};"
+          ng-repeat-start = "ctrl in line.ctrls">
+
+          <label>
+
+            {{ctrl.name}}
+            <span
+              ng-if = "ctrl.require"
+              class = "form-required">
+
+              *
+            </span>
+
+            <span
+              ng-if = "ctrl.invalid && ctrl.type !== 'select'"
+              class = "form-required">
+
+              {{ctrl.msg}}
+            </span>
+            </label>
+          </label>
+
+          <!-- Type text-->
+          <input
+            ng-if     = "ctrl.type === 'text'"
+            ng-model  = "result.eligibilite[ctrl.id]"
+            ng-change = "ready ? isFormValid() : null">
+
+          <!-- Type select-->
+          <span
+            ng-if = "ctrl.type === 'select' && ctrl.invalid"
+            class = "form-required">
+
+            {{ctrl.msg}}
+          </span>
+
+          <md-select
+            ng-if     = "ctrl.type === 'select'"
+            ng-change = "ready ? isFormValid() : null"
+            ng-model  = "result.eligibilite[ctrl.id]">
+
+            <md-option
+              ng-repeat = "state in ctrl.options.categories"
+              value     = "{{state.id}}">
+
+              {{state.name}}
+            </md-option>
+          </md-select>
+
+           <!-- Type radio -->
+          <md-radio-group
+            ng-if    = "ctrl.type === 'radio'"
+            ng-model = "result.eligibilite[ctrl.id]">
+
+            <md-radio-button
+              ng-repeat = "state in ctrl.options.categories"
+              value     = "{{state.id}}"
+              class     = "md-primary">
+
+              {{state.name}}
+            </md-radio-button>
+
+            <md-radio-button
+              ng-if     = "ctrl.other"
+              value     = "autre"
+              class     = "md-primary">
+
+              Autre:
+            </md-radio-button>
+
+            <div
+              class = "note"
+              ng-if = "ctrl.note">
+                <br><br>
+                {{ctrl.note}}
+            </div>
+          </md-radio-group>
+
+          <!-- Type checkbox -->
+          <md-checkbox
+            ng-model   = "result.eligibilite[ctrl.id]"
+            ng-change  = "ready ? isFormValid() : null"
+            aria-label = "{{ctrl.name}}"
+            ng-if      = "ctrl.type === 'checkbox'">
+
+            {{ctrl.libelle}}
+          </md-checkbox>
+
+          <!-- Type textarea-->
+          <textarea
+            ng-if     = "ctrl.type === 'textarea'"
+            ng-model  = "result.eligibilite[ctrl.id]"
+            ng-change = "ready ? isFormValid() : null"
+            columns   = "1">
+          </textarea>
+
+          <!-- Alerte -->
+          <div
+            class = "alerte"
+            ng-if = "ctrl.options.alertes[result.eligibilite[ctrl.id]]">
+            <i class = "fa fa-exclamation-circle"></i>
+            {{ctrl.options.alertes[result.eligibilite[ctrl.id]]}}
+          </div>
+        </md-input-container>
+
+        <div
+          ng-repeat-end
+          style = "position: absolute; left: 92px; top: {{ ctrl.id === 'ce_logement_est' ? '77px' : '101px'}};"
+          ng-if = "ctrl.type === 'radio' && result.eligibilite[ctrl.id] === 'autre'">
+
+          <input
+            class       = "other-radio"
+            placeholder = "Précisez ici..."
+            ng-model    = "result.autres[ctrl.id]"
+            ng-change   = "ready ? isFormValid() : null"/>
+        </div>
+      </md-content>
+  </div>
+</div>

+ 1 - 0
html/typeahead-match.html

@@ -0,0 +1 @@
+<a href tabindex="-1" ng-bind-html="match.label | uibTypeaheadHighlight:query"></a>

+ 5 - 0
html/typeahead-popup.html

@@ -0,0 +1,5 @@
+<ul class="dropdown-menu" ng-show="isOpen() && !moveInProgress" ng-style="{top: position().top+'px', left: position().left+'px'}" style="display: block;" role="listbox" aria-hidden="{{!isOpen()}}">
+    <li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{::match.id}}">
+        <div uib-typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div>
+    </li>
+</ul>

二進制
img/.DS_Store


二進制
img/adsl.png


二進制
img/background.png


二進制
img/comcable.png


二進制
img/coriolis.png


二進制
img/favicon.ico


二進制
img/fibre.png


二進制
img/filter.png


二進制
img/knet.png


二進制
img/logo.png


二進制
img/mimo.png


二進制
img/nordnet.png


二進制
img/orange.jpg


二進制
img/ozone.png


二進制
img/sfr.jpg


二進制
img/videofutur.png


二進制
img/wibox.png


+ 786 - 0
index.html

@@ -0,0 +1,786 @@
+<!DOCTYPE html>
+<html
+  ng-app = "application"
+  lang   = "en-US">
+
+  <head>
+
+    <!-- Page title -->
+    <title>Manche Numérique</title>
+
+    <!-- Meta tags -->
+    <meta charset = "UTF-8">
+    <meta name = "description" content = "Zeno-Labs">
+    <meta name = "keywords"    content = "HTML,CSS,JavaScript">
+    <meta name = "author"      content = "Francois Beaufils">
+
+    <!-- Angulars Material CSS using RawGit to load directly from `bower-material/master` -->
+    <link rel = "stylesheet" href = "css/angular-material.css">
+    <link rel = "stylesheet" href = "css/theme.css">
+
+    <!-- Favicon-->
+    <link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon">
+
+    <!-- Material design CSS font http://zavoloklom.github.io/material-design-iconic-font/examples.html -->
+    <link rel="stylesheet" href="css/material-design-iconic-font.min.css">
+    <link rel="stylesheet" href="css/font-awesome.min.css">
+
+    <!-- Roboto font-->
+    <link href='http://fonts.googleapis.com/css?family=Roboto:500,300,400' rel='stylesheet' type='text/css'>
+
+    <!-- Specific CSS -->
+    <link rel = "stylesheet" href = "css/main.css">
+
+    <script type = "text/javascript" src = "https://code.jquery.com/jquery-1.11.3.min.js"></script>
+    <script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script>
+    <script type = "text/javascript" src = "js/proj4js/dist/proj4.js"></script>
+
+    <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
+    <script src="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
+
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment-with-locales.min.js"></script>
+
+    <!-- Angular Material Dependencies -->
+    <script type = "text/javascript" src = "http://cdn.jsdelivr.net/hammerjs/2.0.4/hammer.js"></script>
+    <script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.js"></script>
+    <script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular-animate.js"></script>
+    <script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular-aria.js"></script>
+
+    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/skrollr/0.6.29/skrollr.min.js"></script>
+
+
+    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
+
+    <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
+    <script src="js/typeahead.js"></script>
+    <!-- Angular Material Javascript using RawGit to load directly from `bower-material/master` -->
+    <script type = "text/javascript" src = "js/angular-material.js"></script>
+
+    <script type = "text/javascript" src = "js/angular-adaptive-detection.js"></script>
+    <script type = "text/javascript" src = "js/app.js"></script>
+  </head>
+
+  <!--[If lte IE 9]>
+
+    <div class = "ie-compatibility">
+        Votre navigateur Internet Explorer n'est pas compatible avec notre logiciel, il vous faut au minimum Internet Explorer 10.<br><br>
+        Vous pouvez aussi télécharger un de ces navigateurs:<br><br>
+        - <a href="https://www.google.fr/intl/fr/chrome/" target = "_blank">Google Chrome</a><br>
+        - <a href="http://www.mozilla.org/download" target = "_blank">Mozilla Firefox</a>
+    </div>
+  <![endif]-->
+
+  <body ng-controller = "mainController">
+
+    <div class = "title">
+
+      <img
+        src      = "img/logo.png"
+        ng-click = "toggleResultPane()"/>
+    </div>
+
+    <div class = "address-bar">
+
+      <div class = "input-type">
+
+        <input
+          type                 = "text"
+          placeholder          = "Pour tester votre éligibilité, merci de saisir une adresse"
+          ng-model             = "address"
+          ng-focus             = "closeRight()"
+          class                = "typeahead"
+          options              = "typeAheadOpts"
+          datasets             = "allAdresses"
+          typeahead-on-select  = "onSubmitAddress($item, $model, $label)"
+          uib-typeahead        = "address for address in suggestLocation($viewValue)"
+          typeahead-loading    = "loadingLocations"
+          typeahead-no-results = "noResults"
+          autofocus/>
+
+        <div
+          ng-show = "loadingLocations"
+          class   = "loading-typeahead-results">
+
+          <i
+            class   = "glyphicon glyphicon-refresh">
+          </i>
+
+          Recherche en cours...
+        </div>
+
+
+        <div
+          ng-show = "noResults"
+          class   = "no-typeahead-results">
+
+          <i class = "glyphicon glyphicon-remove"></i>
+
+          Aucun résultat trouvé!
+        </div>
+      </div>
+
+      <md-button
+        aria-label = "submit"
+        ng-click   = "suggestionsReady && onSubmitAddress()"
+        class      = "md-raised md-primary">
+
+        <i class = "md-search md-2x"></i>
+      </md-button>
+
+      <i class = "md-menu md-2x" ng-click = "toggleRight()"></i>
+    </div>
+
+    <md-sidenav class="md-sidenav-right md-whiteframe-z2" md-component-id="right">
+      <md-toolbar class="md-theme-light">
+        <h1 class="md-toolbar-tools">Options</h1>
+
+        <md-progress-circular
+          id          = "layer-loading"
+          class       = "md-warn md-hue-3 force-hidden"
+          md-mode     = "indeterminate"
+          md-diameter = "25">
+        </md-progress-circular>
+      </md-toolbar>
+      <md-content class="md-padding">
+
+        <div class = "section-title">
+
+          Type de vue
+        </div>
+
+        <md-radio-group ng-model="mapType">
+
+          <md-radio-button
+            value      = "Satellite"
+            ng-click   = "changeMap('satellite')"
+            aria-label = "Satellite">Satellite
+          </md-radio-button>
+
+          <br/>
+
+          <md-radio-button
+            value      = "Carte"
+            ng-click   = "changeMap('carte')"
+            aria-label = "Carte">Carte
+          </md-radio-button>
+        </md-radio-group>
+      </md-content>
+    </md-sidenav>
+
+    <div id="map"></div>
+
+    <div id="result">
+
+      <div
+        class         = "result-container"
+        layout        = "row"
+        layout-margin>
+
+        <div
+          flex
+          flex-order = "1"
+          class      = "result-box">
+
+          <div class = "box-header">
+            <div class = "box-logo">
+
+              <img src = "img/fibre.png"/>
+            </div>
+
+            <div class = "box-title-description">
+
+              <div class = "box-title">
+
+                Fibre optique (FTTH)
+              </div>
+
+              <div class = "box-desc">
+
+                Le Ftth (Fiber To The Home) “signifie la fibre optique jusqu'à l'abonné”. Cette technologie présente des atouts majeurs (un débit  très fortement  augmenté - de l’ordre de 100 Mbit/s à 1 Gbit/s)  et ouvre des possibilités nouvelles en termes d 'usages numériques.
+
+                <a
+                  href   = "http://www.manchenumerique.fr/Un-citoyen/Equipes-et-connectes/Internet-a-tres-haut-debit#ancre_contenu"
+                  target = "_blank">
+
+                  En savoir plus
+                </a>
+              </div>
+            </div>
+          </div>
+
+          <div
+            class    = "box-body  box-body-ftth"
+            ng-style = "{'border-color': colors.ftth}">
+
+            <hr>
+
+            <div
+              class = "box-eligibilite-title"
+              ng-if = "results.ftth !== undefined && results.ftth.date !== true && !results.ftth.eligible && inscription.cas !== 6">
+
+              possiblité inscription
+
+              <span ng-init = "refreshInscriptionInfo()">
+
+                <span
+                  ng-if = "inscription.open"
+                  class = "box-eligibilite-yes">
+
+                  OUI
+                </span>
+
+                <span
+                  ng-if = "!inscription.open"
+                  class = "box-eligibilite-no">
+
+                  NON
+                </span>
+
+                <div
+                  ng-if = "results.ftth.date && inscription.open"
+                  style = "text-align: center; margin-top: 14px;">
+
+                  <button
+                    type          = "button"
+                    class         = "btn btn-primary btn-lg"
+                    data-toggle   = "modal"
+                    data-backdrop = "static"
+                    data-keyboard = "false"
+                    ng-click      = "initPopup()"
+                    data-target   = "#mn_inscription">
+
+                    Inscription
+                  </button>
+                </div>
+              </span>
+            </div>
+
+            <div class = "box-eligibilite">
+
+              <div
+                ng-if = "results.ftth !== undefined">
+
+                <div
+                  ng-if        = "results.ftth && results.ftth.date !== true && inscription.cas !== 5 && inscription.cas !== 6"
+                  style        = "margin-top: 30px;"
+                  ng-bind-html = "formatDateFTTH(results.ftth.date)">
+                </div>
+
+                <div
+                  ng-if        = "results.ftth.eligible"
+                  style        = "text-align: center; font-weight: bold;">
+
+                  <i
+                    class = "fa fa-check-circle"
+                    style = "font-size: 45px; color: #1fa67a">
+                  </i>
+
+                  <br>
+
+                  Vous êtes situé dans une zone éligible à la fibre optique.<br>
+                  Si vous souhaitez souscrire à une offre très haut débit merci de contacter:<br>
+
+                  <table style = "width: 100%;">
+                    <tr>
+                      <td style = "text-align: center;">
+
+                        <a
+                          href   = "https://boutique.orange.fr/internet/offres-fibre"
+                          target = "_blank">
+
+                          <img
+                            src   = "img/orange.jpg"
+                            alt   = "Orange"
+                            style = "width: 80px;"/>
+                        </a>
+                      </td>
+
+                      <td>
+
+                        <a
+                          href   = "http://www.sfr.fr/offre-internet/fibre-optique"
+                          target = "_blank">
+
+                          <img
+                            src   = "img/sfr.jpg"
+                            alt   = "SFR"
+                            style = "width: 80px;"/>
+                        </a>
+                      </td>
+                    </tr>
+                  </table>
+                </div>
+
+                <div ng-if = "inscription.message">
+
+                  {{inscription.message}}
+
+                  <div ng-if = "inscription.cas === 6">
+
+                    <table style="width:100%;">
+                      <tr>
+                        <td style="width:33%;text-align:center;">
+                          <a href = "http://www.comcable.fr" target="_blank">
+                            <img style="width:100%;" src="./img/comcable.png"/>
+                          </a>
+                        </td>
+                        <td style="width:33%;text-align:center;">
+                          <a href = "http://www.k-net.fr" target="_blank">
+                            <img style="width:100%;" src="./img/knet.png"/>
+                          </a>
+                        </td>
+                        <td style="width:33%;text-align:center;">
+                          <a href = "http://www.ozone.net" target="_blank">
+                            <img style="width:100%;" src="./img/ozone.png"/>
+                          </a>
+                        </td>
+                      </tr>
+                      <tr>
+                        <td style="width:33%;text-align:center;">
+                          <a href = "http://www.wibox.fr" target="_blank">
+                            <img style="width:110%;" src="./img/wibox.png"/>
+                          </a>
+                        </td>
+                        <td style="width:33%;text-align:center;">
+                          <a href = "http://www.lafibrevideofutur.fr/" target="_blank">
+                            <img style="width:80%;" src="./img/videofutur.png"/>
+                          </a>
+                        </td>
+                        <td style="width:33%;text-align:center;">
+                          <a href = "https://www.coriolis.com/forfait-internet/fibre" target="_blank">
+                            <img style="width:80%;" src="./img/coriolis.png"/>
+                          </a>
+                        </td>
+                      </tr>
+                      <tr>
+                        <td style="width:33%;text-align:center;">
+                          <a href = "https://www.nordnet.com/connexion-internet/internet-fibre" target="_blank">
+                            <img style="width:100%;" src="./img/nordnet.png"/>
+                          </a>
+                        </td>
+                        <td style="width:33%;text-align:center;">
+                          &nbsp;
+                        </td>
+                        <td style="width:33%;text-align:center;">
+                          &nbsp;
+                        </td>
+                      </tr>
+                    </table>
+                  </div>
+                </div>
+
+                <div
+                  class = "box-description-more"
+                  ng-if = "!results.ftth._advanced"
+                  style = "margin-bottom: 30px;">
+
+                  <a
+                    href     = ""
+                    ng-click = "results.ftth._advanced = true">
+
+                    + détails
+                  </a>
+                </div>
+
+                <div
+                  ng-if        = "results.ftth._advanced"
+                  ng-bind-html = "formatResults('ftth', results.ftth)">
+                </div>
+              </div>
+
+              <div
+                ng-if = "results.ftth === undefined"
+                class = "box-eligibilite-spinner">
+
+                <md-progress-circular class="md-warn md-hue-3" md-mode="indeterminate"></md-progress-circular>
+              </div>
+            </div>
+          </div>
+        </div>
+
+        <div
+          flex
+          flex-order = "2"
+          class      = "result-box">
+
+          <div class = "box-header">
+            <div class = "box-logo">
+
+              <img src = "img/adsl.png"/>
+            </div>
+
+            <div class = "box-title-description">
+
+              <div class = "box-title">
+
+                ADSL (téléphone)
+              </div>
+
+              <div class = "box-desc">
+
+                L'ADSL est une technologie permettant l'accès à internet haut débit par le biais de la ligne téléphonique, constituée  de fils de cuivre.  Cette  ligne  téléphonique  relie  votre domicile  au central téléphonique  de France Télécom.
+                <a
+                  href   = "http://www.manchenumerique.fr/Un-citoyen/Equipes-et-connectes/Acceder-a-internet-haut-debit-partout-dans-la-Manche"
+                  target = "_blank">
+
+                  En savoir plus
+                </a>
+              </div>
+            </div>
+          </div>
+
+          <div
+            class    = "box-body  box-body-adsl"
+            ng-style = "{'border-color': colors.adsl}">
+
+            <div class = "box-description-more">
+
+
+            </div>
+
+
+            <hr>
+
+            <div
+              class = "box-eligibilite-title"
+              ng-if = "results.adsl !== undefined">
+
+              éligibilité
+
+              <span>
+
+                <span
+                  ng-if = "results.adsl && results.adsl.LEGENDE !== 'Non eligible' && results.adsl.CLASSEDEBI !== '0'"
+                  class = "box-eligibilite-yes">
+
+                  OUI
+                </span>
+
+                <span
+                  ng-if = "!results.adsl || results.adsl.LEGENDE === 'Non eligible' || results.adsl.CLASSEDEBI === '0'"
+                  class = "box-eligibilite-no">
+
+                  NON
+                </span>
+              </span>
+            </div>
+
+            <div class = "box-eligibilite">
+
+              <div
+                ng-if = "results.adsl !== undefined">
+
+                <div
+                  class = "popup-line"
+                  ng-if = "!results.adsl._advanced && results.adsl.CLASSEDEBI && results.adsl.CLASSEDEBI !== 'Non eligible'">
+
+                  <span class="popup-title">
+
+                    <span
+                      ng-if = "results.adsl.CLASSEDEBI === '0'">
+
+                      Non éligible
+                    </span>
+
+                    <span
+                      ng-if = "results.adsl.CLASSEDEBI === '1'">
+
+                      ADSL < 3 Mbit/s
+                    </span>
+
+                    <span
+                      ng-if = "results.adsl.CLASSEDEBI === '2'">
+
+                      ADSL 3 à 8 Mbit/s
+                    </span>
+
+                    <span
+                      ng-if = "results.adsl.CLASSEDEBI === '3'">
+
+                      ADSL 8 à 30 Mbit/s
+                    </span>
+
+                    <span
+                      ng-if = "results.adsl.CLASSEDEBI === '4'">
+
+                      ADSL 30 à 100 Mbit/s
+                    </span>
+                  </span>
+                </div>
+
+                <div
+                  class = "box-description-more"
+                  ng-if = "!results.adsl._advanced"
+                  style = "margin-bottom: 30px;">
+
+                  <a
+                    href     = ""
+                    ng-click = "results.adsl._advanced = true">
+
+                    + détails
+                  </a>
+                </div>
+
+                <div
+                  ng-if        = "results.adsl._advanced"
+                  ng-bind-html = "formatResults('adsl', results.adsl)">
+                </div>
+              </div>
+
+              <div
+                ng-if = "results.adsl === undefined"
+                class = "box-eligibilite-spinner">
+
+                <md-progress-circular class="md-warn md-hue-3" md-mode="indeterminate"></md-progress-circular>
+              </div>
+            </div>
+          </div>
+        </div>
+
+        <div
+          flex
+          flex-order = "3"
+          class      = "result-box">
+
+          <div class = "box-header">
+            <div class = "box-logo">
+
+              <img src = "img/mimo.png"/>
+            </div>
+
+            <div class = "box-title-description">
+
+              <div class = "box-title">
+
+                Réseau MiMo
+              </div>
+
+              <div class = "box-desc">
+
+                Cette technologie hertzienne, déployée par Manche Numérique, permet de desservir les zones non-éligibles à I'ADSL dites "zones blanches" et les zones qui seront déployées ultérieurement par la fibre optique.  Le MiMo permet un accès à internet et à un service de téléphonie. Cette technologie offre des débits de l'ordre de 20 Mbit/s descendants et de 3 Mbit/s montants.
+
+                <a
+                  href   = "http://www.manchenumerique.fr/Un-citoyen/Equipes-et-connectes/MiMo"
+                  target = "_blank">
+
+                  En savoir plus
+                </a>
+              </div>
+            </div>
+          </div>
+
+          <div
+            class    = "box-body  box-body-mimo"
+            ng-style = "{'border-color': colors.mimo}">
+
+            <hr>
+
+            <div
+              class = "box-eligibilite-title"
+              ng-if = "results.mimo !== undefined">
+
+              éligibilité
+
+              <span>
+
+                <span
+                  ng-if = "results.mimo"
+                  class = "box-eligibilite-yes">
+
+                  OUI
+                </span>
+
+                <span
+                  ng-if = "!results.mimo"
+                  class = "box-eligibilite-no">
+
+                  NON
+                </span>
+              </span>
+            </div>
+
+            <div class = "box-eligibilite">
+
+              <div
+                ng-if = "results.mimo">
+
+                <p class="bg-warning">Votre éligibilité à la technologie MiMo est théorique. Seul le passage d'un antenniste pourra confirmer votre niveau de signal.</p>
+
+                <div>
+                Vous pouvez souscrire à une offre d'accès internet auprès de l'un de ces FAI:
+
+                  <table style = "width:100%">
+                    <tr>
+                      <td style = "width:50%">
+                        <div class = "bg-info">
+
+                          <a
+                            href = "https://www.ozone.net/"
+                            target = "_blank">
+                            <img style="height:40px;" src="./img/ozone.png"/>
+                            <br/>
+                            Ozone.net
+                          </a>
+                          <br/>
+                          <i class ="fa fa-phone"></i>
+                          0 973 01 1000
+                        </div>
+                      </td>
+                      <td style = "width:50%">
+                        <div class = "bg-info">
+
+                          <a
+                            href = "https://www.nordnet.com/connexion-internet/internet-radio"
+                            target = "_blank">
+                            <img style="height:40px;" src="./img/nordnet.png"/>
+                            <br/>
+                            Nordnet.com
+                          </a>
+                          <br/>
+                          <i class ="fa fa-phone"></i>
+                          3420
+                        </div>
+                      </td>
+                    </tr>
+                  </table>
+                </div>
+                <div
+                  class = "box-description-more"
+                  ng-if = "!results.mimo._advanced"
+                  style = "margin-bottom: 30px;">
+
+                  <a
+                    href     = ""
+                    ng-click = "results.mimo._advanced = true">
+
+                    + détails
+                  </a>
+                </div>
+
+                <div
+                  ng-if        = "results.mimo_advanced"
+                  ng-bind-html = "formatResults('mimo', results.mimo)">
+                </div>
+              </div>
+
+              <div
+                ng-init = "refreshInscriptionInfo()"
+                ng-if   = "(!results.ftth.date || !inscription.open) && (!results.adsl || results.adsl.LEGENDE === 'Non eligible') && !results.mimo && results.mimo !== undefined">
+
+                <p class="bg-warning">Nous vous invitons à contacter les services de <a href="http://www.manchenumerique.fr" >Manche Numérique</a> qui vous indiqueront la procédure pour une connecion internet par satellite et bénéficier d'une prise en charge de l'installation du kit satellitaire par un antenniste.</p>
+
+              </div>
+
+              <div
+                ng-if = "results.mimo === undefined"
+                class = "box-eligibilite-spinner">
+
+                <md-progress-circular class="md-warn md-hue-3" md-mode="indeterminate"></md-progress-circular>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <!-- Modal -->
+    <div
+      class           = "modal fade"
+      id              = "mn_inscription"
+      tabindex        = "-1"
+      role            = "dialog"
+      backdrop        = "static"
+      aria-labelledby = "mn_inscriptionLabel">
+
+      <div
+        class = "modal-dialog"
+        role  = "document">
+
+        <div class = "modal-content">
+
+          <div class = "modal-header">
+
+            <button
+              type         = "button"
+              class        = "close"
+              data-dismiss = "modal"
+              aria-label   = "Close">
+
+              <span aria-hidden = "true">&times;</span>
+            </button>
+
+            <h4
+              class = "modal-title"
+              id    = "mn_inscriptionLabel">
+
+              FORMULAIRE DE MANIFESTATION D'INTERET À LA FIBRE OPTIQUE
+            </h4>
+          </div>
+
+          <div class = "modal-body">
+
+            <div ng-if = "!postForm">
+
+              Vous souhaitez bénéficier d’un abonnement à la fibre optique et pouvoir être raccordé au réseau FttH au tarif préférentiel de 50€, nous vous remercions de bien vouloir compléter ce formulaire. Après vérification, Manche Numérique se chargera de transmettre votre demande ainsi que vos coordonnées à la société Manche Fibre, délégataire de service public, qui vous informera des modalités du raccordement final et de la date d’ouverture du réseau à la commercialisation.
+            </div>
+
+            <div
+              class      = "mn-form"
+              ng-if      = "!postForm"
+              ng-include = "'./html/form.html'">
+
+            </div>
+
+            <div
+              class      = "mn-form-in-progress"
+              ng-if      = "postForm.inProgress">
+
+                <i class="fa fa-circle-o-notch fa-spin"></i>
+                <br/>
+                Enregistrement en cours...
+            </div>
+
+            <div
+              class      = "mn-form-error"
+              ng-if      = "postForm.error">
+
+                <i class="fa fa-exclamation-circle"></i>
+                <br/>
+                Error: {{postForm.error}}
+            </div>
+
+            <div
+              class      = "mn-form-ok"
+              ng-if      = "postForm.ok">
+
+                <i class="fa fa-check-circle-o"></i>
+                <br/>
+
+                Votre demande a bien été prise en compte. Un mail de confirmation vous a été envoyé.
+            </div>
+          </div>
+
+          <div class = "modal-footer">
+
+            <button
+              type         = "button"
+              class        = "btn btn-default"
+              data-dismiss = "modal">
+
+              Fermer
+            </button>
+
+            <button
+              type        = "button"
+              ng-if       = "!postForm"
+              ng-click    = "ready = true; isFormValid() ? postFormEl() : null"
+              class       = "btn btn-primary">
+
+              Valider
+            </button>
+          </div>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

二進制
js/.DS_Store


+ 139 - 0
js/angular-adaptive-detection.js

@@ -0,0 +1,139 @@
+(function () {
+'use strict';
+
+/**
+ * @ngdoc overview
+ * @name adaptive.detection
+ *
+ * @description
+ * The main module which holds everything together.
+ */
+var adaptive = angular.module('adaptive.detection', []);
+
+/**
+ * @ngdoc object
+ * @name adaptive.detection.$detectionProvider
+ *
+ * @description
+ * The `$detectionProvider` provides an interface to configure `$detection service for
+ * runtime.
+ */
+adaptive.provider('$detection', [function() {
+
+  this.userAgent = navigator.userAgent;
+
+  /**
+   * @ngdoc function
+   * @name adaptive.detection.$detectionProvider#setUserAgent
+   * @methodOf adaptive.detection.$detectionProvider
+   *
+   * @description
+   * Let's you configure a custom User Agent string during your apps configuration.
+   *
+   * <pre>
+   * var app = angular.module('myApp', ['adaptive.detection']);
+   *
+   * app.config(['$detectionProvider', function ($detectionProvider) {
+   *   // sets custom User Agent
+   *   $detectionProvider.setUserAgent('angular browser');
+   * }]);
+   * </pre>
+   *
+   * @param {string} Custom User Agent string
+   */
+  this.setUserAgent = function(userAgent) {
+    this.userAgent = userAgent;
+  };
+
+  /**
+   * @ngdoc object
+   * @name adaptive.detection.$detection
+   *
+   * @description
+   * The `$detection` service can be injected anywhere in your app during runtime like
+   * every other service. It provides methods to detect wheter a the current client is
+   * for example and iOS device or an Android device.
+   *
+   * You are also able to retreive the current User Agent using this service.
+   */
+  this.$get = function() {
+    var userAgent = this.userAgent;
+
+    return {
+
+      /**
+       * @ngdoc function
+       * @name adaptive.detection.$detection#getUserAgent
+       * @methodOf adaptive.detection.$detection
+       *
+       * @description
+       * Returns the current User Agent which was set with `$detectionProvider.setUserAgent'.
+       *
+       * @return {string} userAgent
+       */
+      getUserAgent: function(){
+        return userAgent;
+      },
+
+      /**
+       * @ngdoc function
+       * @name adaptive.detection.$detection#isiOS
+       * @methodOf adaptive.detection.$detection
+       *
+       * @description
+       * Returns true if current device is an iOS device.
+       *
+       * @return {bool}
+       */
+      isiOS: function(){
+        return (/(iPad|iPhone|iPod)/gi).test(userAgent);
+      },
+      /**
+       * @ngdoc function
+       * @name adaptive.detection.$detection#isAndroid
+       * @methodOf adaptive.detection.$detection
+       *
+       * @description
+       * Returns true if current device is an Android device.
+       *
+       * @return {bool}
+       */
+      isAndroid: function(){
+        return (/(Android)/gi).test(userAgent);
+      },
+      /**
+       * @ngdoc function
+       * @name adaptive.detection.$detection#isWindowsPhone
+       * @methodOf adaptive.detection.$detection
+       *
+       * @description
+       * Returns true if current device is a Windows Phone device.
+       *
+       * @return {bool}
+       */
+      isWindowsPhone: function(){
+        return (/(IEMobile)/gi).test(userAgent);
+      },
+      /**
+       * @ngdoc function
+       * @name adaptive.detection.$detection#isBB10
+       * @methodOf adaptive.detection.$detection
+       *
+       * @description
+       * Returns true if current device is a BlackBerry 10 device.
+       *
+       * @return {bool}
+       */
+      isBB10: function(){
+        return (/(BB10)/gi).test(userAgent);
+      },
+
+      isMobile: function(){
+        return this.isiOS() || this.isAndroid() || this.isBB10() || this.isWindowsPhone();
+      }
+    };
+  };
+
+}]);
+
+})();

File diff suppressed because it is too large
+ 21316 - 0
js/angular-material.js


+ 1505 - 0
js/app.js

@@ -0,0 +1,1505 @@
+var app = angular.module('application', ['ngMaterial', 'adaptive.detection', 'ui.bootstrap.typeahead']).config([
+  '$locationProvider',
+  function($locationProvider) {
+    $locationProvider.html5Mode({
+      enabled: true,
+      requireBase: false
+    });
+  }
+]);
+
+app.directive('skrollr', function() {
+  var directiveDefinitionObject = {
+    link: function() {
+      skrollr.init();
+    }
+  };
+
+  return directiveDefinitionObject;
+});
+
+app.controller('mainController', function($scope, $detection, $http, $mdSidenav, $timeout, $sce, $mdToast, $location) {
+  // Debugging mode
+  $scope.debug = window.location.hostname === 'localhost' || typeof $location.search().debug !== 'undefined';
+  if ($scope.debug) {
+    console.log('***** Debugging mode ****');
+  }
+
+  $scope.title = 'Manche Numerique';
+  $scope.$sce = $sce;
+
+  var getGeoCodeInProgress = false,
+    nbJoursFTTH = 730, // 2 ans
+    siteName = 'Eligibilité Manche Numérique',
+    siteUrl = 'http://eligibilite.manchenumerique.fr',
+    siteEmail = 'ftth@manchenumerique.fr',
+    siteAddresse = '235, rue Joseph Cugnot Zone Delta, 50000 SAINT LÔ',
+    siteTel = '02.33.77.83.60',
+    layer = {},
+    currentMarker,
+    cLayer;
+
+  // Coordinates around Manche to limit the extent of the queries
+  var mancheCoordinates = [[49.732307856286, -1.97117692088061], [48.4, -1.75], [48.4, -0.5], [49.732307856286, -1.2]];
+
+  // This limit the search area
+  var searchExtent = {
+    xmin: _.max(
+      _.map(mancheCoordinates, function(c) {
+        return c[1];
+      })
+    ),
+    ymin: _.max(
+      _.map(mancheCoordinates, function(c) {
+        return c[0];
+      })
+    ),
+    xmax: _.min(
+      _.map(mancheCoordinates, function(c) {
+        return c[1];
+      })
+    ),
+    ymax: _.min(
+      _.map(mancheCoordinates, function(c) {
+        return c[0];
+      })
+    ),
+    spatialReference: { wkid: 84 }
+  };
+
+  var suggestURL =
+    'https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/suggest?f=pjson&searchExtent=' +
+    JSON.stringify(searchExtent);
+
+  var maps = {
+    carte: 'http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}',
+    satellite: 'http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}'
+  };
+
+  var catTypeVoie = [
+    {
+      name: 'Allée',
+      id: 'allee'
+    },
+    {
+      name: 'Avenue',
+      id: 'avenue'
+    },
+    {
+      name: 'Boulevard',
+      id: 'boulevard'
+    },
+    {
+      name: 'Carrefour',
+      id: 'carrefour'
+    },
+    {
+      name: 'Chemin',
+      id: 'chemin'
+    },
+    {
+      name: 'Cité',
+      id: 'cite'
+    },
+    {
+      name: 'Hammeau',
+      id: 'hammeau'
+    },
+    {
+      name: 'Impasse',
+      id: 'impasse'
+    },
+    {
+      name: 'Lieu-dit',
+      id: 'lieu_dit'
+    },
+    {
+      name: 'Lotissement',
+      id: 'lotissement'
+    },
+    {
+      name: 'Place',
+      id: 'place'
+    },
+    {
+      name: 'Résidence',
+      id: 'residence'
+    },
+    {
+      name: 'Route',
+      id: 'route'
+    },
+    {
+      name: 'Rue',
+      id: 'rue'
+    },
+    {
+      name: 'Villa',
+      id: 'villa'
+    },
+    {
+      name: 'Village',
+      id: 'village'
+    }
+  ];
+
+  var catVousEtes = [
+    {
+      name: 'Locataire de ce logement',
+      id: 'locataire'
+    },
+    {
+      name: 'Occupant à titre gratuit de ce logement',
+      id: 'occupant_gratuit'
+    },
+    {
+      name: 'Propriétaire de ce logement',
+      id: 'proprietaire'
+    }
+  ];
+
+  var catCeLogementEst = [
+    {
+      name: 'Votre résidence principale',
+      id: 'residence_principale'
+    },
+    {
+      name: 'Votre résidence secondaire',
+      id: 'residence_secondaire'
+    }
+  ];
+
+  var catAccord = [
+    {
+      name:
+        'J’ai l’intention de souscrire à une offre Très Haut Débit et bénéficier du raccordement de mon logement au tarif préférentiel de 50€',
+      id: 'avec_souscription'
+    },
+    {
+      name: 'Je n’ai pas l’intention de souscrire à une offre Très Haut Débit',
+      id: 'sans_souscription'
+    }
+  ];
+
+  $scope.formulaires = {
+    eligibilite: {
+      sections: [
+        {
+          name: 'Générale',
+          visible: false,
+          lines: [
+            {
+              ctrls: [
+                {
+                  name: 'Prénom',
+                  id: 'prenom',
+                  type: 'text',
+                  width: '50%',
+                  require: true,
+                  isValid: function(value) {
+                    return !!value && value.length > 2;
+                  },
+                  msg: 'Prénom invalide'
+                },
+                {
+                  name: 'Nom',
+                  id: 'nom',
+                  type: 'text',
+                  width: '50%',
+                  require: true,
+                  isValid: function(value) {
+                    return !!value && value.length > 2;
+                  },
+                  msg: 'Nom invalide'
+                }
+              ]
+            },
+            {
+              ctrls: [
+                {
+                  name: 'Email',
+                  id: 'email',
+                  type: 'text',
+                  width: null,
+                  require: true,
+                  isValid: function(value) {
+                    function validateEmail(email) {
+                      var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
+                      return re.test(email);
+                    }
+                    return validateEmail(value);
+                  },
+                  msg: 'Email invalide.'
+                }
+              ]
+            },
+            {
+              ctrls: [
+                {
+                  name: 'Téléphone fixe',
+                  id: 'telephone_fixe',
+                  type: 'text',
+                  width: '50%',
+                  require: false
+                },
+                {
+                  name: 'Téléphone portable',
+                  id: 'telephone_portable',
+                  type: 'text',
+                  width: '50%',
+                  require: false
+                }
+              ]
+            }
+          ]
+        },
+        {
+          name: 'Adresse',
+          visible: true,
+          lines: [
+            {
+              ctrls: [
+                {
+                  name: 'Numero',
+                  id: 'numero_voie',
+                  type: 'text',
+                  width: '80px',
+                  require: false
+                },
+                {
+                  name: 'Type voie',
+                  id: 'type_voie',
+                  type: 'select',
+                  width: '106px',
+                  require: false,
+                  options: {
+                    categories: catTypeVoie
+                  }
+                },
+                {
+                  name: 'Nom voie',
+                  id: 'nom_voie',
+                  type: 'text',
+                  width: '378px',
+                  require: true,
+                  isValid: function(value) {
+                    return !!value;
+                  },
+                  msg: 'Nom de voie invalide.'
+                }
+              ]
+            },
+            {
+              ctrls: [
+                {
+                  name: 'Complément Adresse',
+                  id: 'complement_addresse',
+                  type: 'textarea',
+                  width: null,
+                  require: false
+                }
+              ]
+            },
+            {
+              ctrls: [
+                {
+                  name: 'Bâtiment',
+                  id: 'batiment',
+                  type: 'text',
+                  width: '50%',
+                  require: false
+                },
+                {
+                  name: 'Cage escalier',
+                  id: 'cage_escalier',
+                  type: 'text',
+                  width: '50%',
+                  require: false
+                }
+              ]
+            },
+            {
+              ctrls: [
+                {
+                  name: 'Etage / Niveau',
+                  id: 'etage',
+                  type: 'text',
+                  width: '50%',
+                  require: false
+                },
+                {
+                  name: 'Numero appartement / porte',
+                  id: 'numero_appartement',
+                  type: 'text',
+                  width: '50%',
+                  require: false
+                }
+              ]
+            },
+            {
+              ctrls: [
+                {
+                  name: 'Code postal',
+                  id: 'code_postal',
+                  type: 'text',
+                  width: '50%',
+                  require: true,
+                  isValid: function(value) {
+                    if (!value || value.length !== 5 || isNaN(parseInt(value, 10))) {
+                      return false;
+                    }
+                    return true;
+                  },
+                  msg: 'Non valide'
+                },
+                {
+                  name: 'Ville',
+                  id: 'ville',
+                  type: 'text',
+                  width: '50%',
+                  require: true,
+                  isValid: function(value) {
+                    return !!value && value.length > 2;
+                  },
+                  msg: 'Ville invalide.'
+                }
+              ]
+            }
+          ]
+        },
+        {
+          name: 'Logement',
+          visible: true,
+          lines: [
+            {
+              ctrls: [
+                {
+                  name: 'Vous êtes',
+                  id: 'vous_etes',
+                  type: 'radio',
+                  width: null,
+                  require: true,
+                  other: true,
+                  options: {
+                    categories: catVousEtes,
+                    alertes: {
+                      locataire:
+                        'Si vous êtes locataire, vous devez impérativement avertir votre propriétaire que vous souhaitez bénéficier du pré-raccordement à la fibre optique.'
+                    }
+                  },
+                  isValid: function(value, other) {
+                    return (!!value && value !== 'autre') || !!other;
+                  },
+                  msg: 'Choix incomplet.'
+                }
+              ]
+            },
+            {
+              ctrls: [
+                {
+                  name: 'Ce logement est',
+                  id: 'ce_logement_est',
+                  type: 'radio',
+                  width: null,
+                  require: true,
+                  other: true,
+                  options: {
+                    categories: catCeLogementEst
+                  },
+                  isValid: function(value, other) {
+                    return (!!value && value !== 'autre') || !!other;
+                  },
+                  msg: 'Choix incomplet.'
+                }
+              ]
+            }
+          ]
+        },
+        {
+          name: 'Conditions pour le raccordement final d’abonné dans un immeuble individuel',
+          visible: true,
+          lines: [
+            {
+              text:
+                'Manche Numérique propose aux personnes qui le souhaitent, de manifester d’ores et déjà leur intérêt pour bénéficier d’une offre Très Haut Débit et ainsi raccorder leur logement ou local à usage professionnel, au futur réseau de communications électroniques à Très Haut Débit FTTH. Le montant de ce raccordement s’élèvera à <b>50€</b><sup>1</sup> pour les personnes qui souscriront à une offre Très Haut Débit auprès d’un opérateur dans l’année qui suit l’ouverture officielle du réseau à la commercialisation. <br><br>Les personnes qui ne se seront pas inscrites via ce formulaire en ligne ne pourront pas bénéficier du raccordement de leur habitation au tarif préférentiel de 50 €. Le raccordement sera directement pris en charge par le Fournisseur d’Accès Internet, auprès duquel elles souscriront un abonnement, et c’est lui qui fixera le montant appliqué au raccordement. <b><br><sup>1</sup> Remarque : Ce raccordement s’appuiera sur vos infrastructures existantes, le coût lié à leur remise en état sera à votre charge en supplément des 50€.',
+              ctrls: [
+                {
+                  name: 'Accord',
+                  id: 'accord',
+                  options: {
+                    categories: catAccord
+                  },
+                  type: 'radio',
+                  width: null,
+                  require: true,
+                  other: false,
+                  isValid: function(value) {
+                    return !!value;
+                  },
+                  msg: 'Choix incorrect.',
+                  note:
+                    'IMPORTANT : le règlement vous sera demandé par le Fournisseur d’Accès Internet auprès duquel vous aurez souscrit un abonnement à la fibre optique.'
+                }
+              ]
+            }
+          ]
+        },
+        {
+          name: 'Informatique et libertés',
+          visible: false,
+          lines: [
+            {
+              ctrls: [
+                {
+                  name: 'Informatique et libertés',
+                  id: 'info_et_libertes',
+                  libelle:
+                    'La personne responsable du traitement de la présente demande de pré-inscription est le représentant du Syndicat Mixte Manche Numérique, le Président, Monsieur Serge DESLANDES. Les informations portées sur ce formulaire sont obligatoires. Elles font l’objet d’un traitement informatisé destiné au raccordement final de l’usager à la fibre optique (FTTH) ainsi qu’à l’exploitation du réseau optique. Les destinataires des données sont : le Syndicat Mixte Manche Numérique ainsi que l’exploitant du réseau optique. Les données sont conservées pendant une durée de 3 ans à partir de la date de transmission à l’entreprise en charge des travaux de raccordement. Conformément à la loi "informatique et libertés" du 6 janvier 1978 modifiée, vous bénéficiez d’un droit d’accès, de rectification aux informations qui vous concernent, d’opposition au traitement de vos données personnelles. Si vous souhaitez exercer ce droit et obtenir communication des informations vous concernant, veuillez-vous adresser au Syndicat Mixte Manche Numérique ftth@manchenumerique.fr. Dans l’hypothèse où le présent formulaire est incomplet et/ou illisible, la présente demande de raccordement ne sera pas traitée.',
+                  type: 'checkbox',
+                  width: null,
+                  require: true,
+                  isValid: function(value) {
+                    return !!value;
+                  },
+                  msg: 'Vous devez accepter.'
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    }
+  };
+
+  var addCurrentMarker = function(withReverse) {
+    if (currentMarker) {
+      map.removeLayer(currentMarker);
+    }
+
+    currentMarker = L.marker([$scope.geoCode.y, $scope.geoCode.x], { draggable: true, title: 'Votre addresse' }).addTo(
+      map
+    );
+
+    // currentMarker.on('add', function(event) {
+    //   map.setZoom(18);
+    // });
+
+    currentMarker
+      .bindPopup(
+        "L'adresse que vous nous avez fournie est localisée sur la carte. Il se peut que la position réelle de votre logement soit un peu différente. Dans ce cas, merci de déplacer le pointeur sur la carte pour le positionner à l'emplacement de votre logement."
+      )
+      .openPopup();
+
+    if (withReverse) {
+      $scope.magicKey = null;
+
+      reverseLocation($scope.geoCode, null, function(address) {
+        $scope.address = address;
+      });
+    }
+
+    currentMarker.on('dragend', function(event) {
+      var p = currentMarker.getLatLng();
+
+      $scope.magicKey = null;
+
+      $scope.geoCode = {
+        x: p.lng,
+        y: p.lat
+      };
+
+      reverseLocation($scope.geoCode, null, function(address) {
+        $scope.address = address;
+        getResults();
+      });
+    });
+  };
+
+  var checkDoublon = function(formValues, callback) {
+    var query =
+      'SELECT * FROM `eligibilite`.`demandes` WHERE 1' +
+      ' AND `email`       = "' +
+      mysql_real_escape_string(formValues.email) +
+      '"' +
+      ' AND `numero_voie` = "' +
+      (formValues.numero_voie ? formValues.numero_voie : '') +
+      '"' +
+      ' AND `type_voie`   = "' +
+      mysql_real_escape_string(formValues.type_voie) +
+      '"' +
+      ' AND `nom_voie`    = "' +
+      mysql_real_escape_string(formValues.nom_voie) +
+      '"' +
+      ' AND `code_postal` = "' +
+      formValues.code_postal +
+      '"';
+
+    $.ajax({
+      method: 'POST',
+      url: 'ajax/datastores.php',
+      data: { query: query }
+    }).done(function(result) {
+      var doublon = result && result !== 'null' ? result : null;
+      callback(doublon);
+    });
+  };
+
+  var computeDateFTTH = function() {
+    if (!$scope.results.ftth) {
+      return;
+    }
+    $scope.results.ftth.eligible = false;
+
+    var momentDate;
+
+    // Already deployed
+    if (
+      $scope.results.ftth.PHASE_TRAV === 'Perimetre deploye FTTH MT' ||
+      $scope.results.ftth.PHASE_TRAV === 'Perimetre Manche Telecom'
+    ) {
+      $scope.results.ftth.eligible = true;
+    }
+
+    // Si date de début de travaux réelle est renseignée
+    if ($scope.results.ftth.DATE_DEB_TRAV_REEL) {
+      // Compute Date
+      momentDate = moment($scope.results.ftth.DATE_DEB_TRAV_REEL, 'DD/MM/YY');
+
+      momentDate.add(nbJoursFTTH, 'days');
+
+      var semester = '1er';
+      if (parseInt(momentDate.format('M'), 10) > 5) {
+        semester = '2nd';
+      }
+
+      $scope.results.ftth.date = semester + ' semestre ' + momentDate.format('YYYY');
+    } else if (
+      ($scope.results.ftth.PHASE_TRAV === 'Tranche 1 Travaux' ||
+        $scope.results.ftth.PHASE_TRAV === 'Tranche 1 Travaux completude') &&
+      $scope.results.ftth.DATE_DEB_TRAV_PREV
+    ) {
+      // Si date de début de travaux prévisionnelle est renseignée
+      // Compute Date
+      momentDate = moment($scope.results.ftth.DATE_ABONNEMENT_PREV, 'DD/MM/YY');
+      momentDate.add(nbJoursFTTH, 'days');
+
+      var semester = '1er';
+      if (parseInt(momentDate.format('M'), 10) > 5) {
+        semester = '2nd';
+      }
+
+      $scope.results.ftth.date = semester + ' semestre ' + momentDate.format('YYYY');
+    }
+  };
+
+  var computeFullAddress = function() {
+    return $scope.result.eligibilite.complement_addresse;
+  };
+
+  var formatDate = function(value) {
+    return moment(value, 'DD/MM/YY');
+  };
+
+  var getFullAddress = function(callback) {
+    if ($scope.magicKey) {
+      var findURL = 'http://api-adresse.data.gouv.fr/search/?';
+      var url = findURL + 'q=' + $scope.address;
+
+      $.get(url, function(data, status) {
+        var next = function(record) {
+          reverseLocation($scope.geoCode, null, function(string, address) {
+            if (record) {
+              address.StreetNumber = record.housenumber;
+              address.Match_addr = $scope.address;
+            }
+
+            callback(null, address);
+          });
+        };
+
+        if (data && data.features && data.features[0] && data.features[0].properties) {
+          next(data.features[0].properties);
+        } else {
+          next();
+        }
+      });
+    } else {
+      reverseLocation($scope.geoCode, null, function(string, address) {
+        callback(null, address);
+      });
+    }
+  };
+
+  var getRecordsFor = function(identifier, coordinates) {
+    var records = [];
+    _.each($scope.data[identifier], function(record) {
+      _.some(record._polygons, function(polygon) {
+        if (isInside(polygon, coordinates)) {
+          records.push(record);
+          return true;
+        }
+      });
+    });
+
+    return records;
+  };
+
+  var getResults = function() {
+    $scope.results = {};
+
+    $.ajax({
+      method: 'POST',
+      url: 'ajax/oracle.php',
+      data: $scope.geoCode
+    })
+      .error(function(err) {
+        console.error('Oracle issue', err);
+      })
+      .done(function(msg) {
+        onResults(msg);
+      });
+
+    var onResults = function(results) {
+      try {
+        $scope.results = JSON.parse(results);
+
+        $scope.results.address = $scope.address;
+        $scope.results.ftth = parseResults($scope.results.ftth);
+        $scope.results.adsl = parseResults($scope.results.adsl);
+        $scope.results.mimo = parseResults($scope.results.mimo);
+
+        computeDateFTTH();
+
+        console.log('results', $scope.results);
+      } catch (e) {
+        // Debugging purpose
+        if (window.location.hostname === 'localhost') {
+          onResults(
+            '{"x":-1.763289,"y":49.3660125,"ftth":[{"ID_ZAPM_PARTIELLE":"049AP0","PHASE_TRAV":"Tranche 1 Travaux","DATE_DEB_TRAV_PREV":"19/02/16","DATE_DEB_TRAV_REEL":"26/10/17","DATE_OUV_BUL_PRERACCO":"01/01/16","DATE_FERM_BUL_PRERACCO":null,"DATE_ABONNEMENT_PREV":"26/10/19","DATE_OUV_COMMERCIALISATION":null,"eligible":false,"date":"2nd semestre 2019"}],"adsl":{"ID_ADSL_MTHD":"2842","CLASSEDEBI":"2","CLASSE_LEGENDE":"ADSL 3 a 8 Mbit/s"},"mimo":{"ID_MIMO_ANTC_COUVERTURE_6KM":"10","DATE_OUV_SERVICE_REEL":"19/02/16","DATE_OUV_SERVICE_PREV":"T1 2016"},"address":"Rue des Fauvettes, 50270, Barneville-Plage, Barneville-Carteret, Manche, Normandie, FRA"}'
+          );
+        } else {
+          console.error(e);
+          alert('Probleme de connexion à la base de donnée Oracle.');
+          $scope.hideResultPane();
+        }
+      }
+      $scope.refreshInscriptionInfo();
+
+      $scope.$apply();
+    };
+
+    $scope.$evalAsync();
+  };
+
+  var init = function() {
+    var stlo = [49.1154686, -1.0828136000000086];
+
+    var map = L.map('map', { zoomControl: false }).setView(stlo, 9);
+
+    map.on('dblclick', function(e) {
+      var p = e.latlng;
+
+      $scope.geoCode = {
+        x: p.lng,
+        y: p.lat
+      };
+      addCurrentMarker(true);
+      $scope.showResultPane();
+      getResults();
+    });
+
+    cLayer = L.tileLayer(maps.satellite, {
+      attribution: 'Carte fournie par <a href="http://openstreetmap.org">OpenStreetMap</a>',
+      maxZoom: 18
+    }).addTo(map);
+
+    var styleOpts = {
+      color: 'red',
+      fillColor: 'red',
+      weight: 8
+    };
+
+    $scope.data = {};
+
+    $scope.colors = {
+      ftth: '#8cc474', // green
+      mimo: '#f9b256', // orange
+      adsl: '#76a7fa' // blue
+    };
+
+    $http({ method: 'POST', url: 'data/dictionary.json' }).success(function(data) {
+      $scope.dictionary = data;
+    });
+
+    // Debug: show manche limits on the map
+    if ($scope.debug) {
+      L.polygon(mancheCoordinates, { color: 'blue', fillColor: 'blue', weight: 8 }).addTo(map);
+    }
+
+    window.map = map;
+
+    $scope.mapType = 'Satellite';
+    $scope.view = {};
+    $scope.isShown = {};
+
+    if ($location.search().q) {
+      $scope.address = $location.search().q;
+      $scope.suggestLocation($location.search().q);
+    }
+  };
+
+  var isDate = function(value) {
+    return (
+      value.toString().length === 8 && value.toString().substr(2, 1) === '/' && value.toString().substr(5, 1) === '/'
+    );
+  };
+
+  var isInside = function(polygon, point) {
+    var y = point.x ? point.x : point[0],
+      x = point.y ? point.y : point[1];
+
+    var inside = false;
+    for (var i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
+      var xi = polygon[i][0],
+        yi = polygon[i][1];
+      var xj = polygon[j][0],
+        yj = polygon[j][1];
+
+      var intersect = yi > y != yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
+
+      if (intersect) {
+        inside = !inside;
+      }
+    }
+
+    return inside;
+  };
+
+  var mysql_real_escape_string = function(str) {
+    if (typeof str !== 'string') {
+      return str;
+    }
+
+    return str.replace(/[\0\x08\x09\x1a\n\r"'\\\%]/g, function(char) {
+      switch (char) {
+        case '\0':
+          return '\\0';
+        case '\x08':
+          return '\\b';
+        case '\x09':
+          return '\\t';
+        case '\x1a':
+          return '\\z';
+        case '\n':
+          return '\\n';
+        case '\r':
+          return '\\r';
+        case '"':
+        case "'":
+        case '\\':
+        case '%':
+          return '\\' + char;
+      }
+    });
+  };
+
+  var parseData = function(identifier, data, style, properties) {
+    var getPolygonsCoord = function(type, coord) {
+      var result = [];
+      if (type === 'Polygon') {
+        result.push(
+          _.map(coord[0], function(r) {
+            return [r[1], r[0]];
+          })
+        );
+      }
+      if (type === 'MultiPolygon') {
+        var p = [];
+        _.each(coord, function(c) {
+          result.push(
+            _.map(c[0], function(r) {
+              return [r[1], r[0]];
+            })
+          );
+        });
+      }
+      return result;
+    };
+
+    var records = [];
+    _.each(data.features, function(r) {
+      var record = r.properties;
+      var polygons = getPolygonsCoord(r.geometry.type, r.geometry.coordinates);
+      record._coordinates = r.geometry.coordinates;
+      record._type = r.geometry.type;
+      record._polygons = polygons;
+      record._style = style;
+      record._properties = properties;
+      records.push(record);
+    });
+    $scope.data[identifier] = records;
+  };
+
+  var parseResults = function(records) {
+    if (!records || !records.length) {
+      return null;
+    }
+    if (records.length === 1) {
+      return records[0];
+    }
+    var result = records[0];
+    return result;
+  };
+
+  var reverseLocation = function(geoCode, address, callback) {
+    var reverseGeo =
+      'http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?f=pjson&distance=300';
+    var url = reverseGeo + '&location=' + (geoCode ? $scope.geoCode.x + ',' + $scope.geoCode.y : address);
+    $.get(url, function(data, status) {
+      data = JSON.parse(data);
+      var adresse = data && data.address && data.address.Match_addr;
+
+      if (data && data.address && data.address.Address) {
+        var i = 0;
+        var num = '';
+        while (!isNaN(parseInt(data.address.Address[i], 10))) {
+          num += data.address.Address[i];
+          i++;
+        }
+        data.address.StreetNumber = num;
+        data.address.Address = data.address.Address.substr(num.length).trim();
+
+        var typeVoie = data.address.Address.substring(0, data.address.Address.indexOf(' ')).toLowerCase();
+        type = _.find(catTypeVoie, function(c) {
+          if (c.id === typeVoie || c.name.toLowerCase() === typeVoie) {
+            return true;
+          }
+        });
+        if (type) {
+          data.address.StreetType = type.id;
+          data.address.Address = data.address.Address.substr(typeVoie.length).trim();
+        }
+      }
+
+      callback(adresse, data.address);
+      $scope.$evalAsync();
+    });
+  };
+
+  $scope.changeMap = function(value) {
+    map.removeLayer(cLayer);
+    cLayer = L.tileLayer(maps[value], {
+      attribution:
+        'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
+      maxZoom: 18
+    }).addTo(map);
+  };
+
+  $scope.closeRight = function() {
+    $mdSidenav('right')
+      .close()
+      .then(function() {});
+  };
+
+  $scope.computeLayer = function(identifier) {
+    var Lpolygons = [];
+    _.each($scope.data[identifier], function(record) {
+      _.each(record._polygons, function(polygon) {
+        Lpolygons.push(L.polygon(polygon, record._style).bindPopup($scope.getHtmlContent(identifier, record)));
+      });
+    });
+    layer[identifier] = L.layerGroup(Lpolygons);
+  };
+
+  $scope.formatDateFTTH = function(date) {
+    if (!date || date === 'Invalid date') {
+      return;
+    }
+
+    var result =
+      '<div class="popup-line"><div class="box-eligibilite-title">Date prévisionnelle abonnement FTTH</div><div style="font-weight: bold;" class="popup-value">' +
+      date +
+      '</div></div>';
+    return $sce.trustAsHtml(result);
+  };
+
+  $scope.formatResults = function(identifier, results) {
+    return $sce.trustAsHtml($scope.getHtmlContent(identifier, results));
+  };
+
+  $scope.getGeoCode = function(address, magicKey, callback) {
+    var findURL =
+      'https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/find?f=pjson&searchExtent=' +
+      JSON.stringify(searchExtent);
+
+    getGeoCodeInProgress = true;
+    var url = findURL + '&text=' + address + (magicKey ? '&magicKey=' + magicKey : ', Basse-Normandie, France');
+    $.get(url, function(data, status) {
+      data = JSON.parse(data);
+
+      if (status === 'success' && data.locations[0]) {
+        if (
+          data.locations[0].extent.xmax < searchExtent.xmin &&
+          data.locations[0].extent.xmax > searchExtent.xmax &&
+          data.locations[0].extent.xmin > searchExtent.xmax &&
+          data.locations[0].extent.xmin > searchExtent.xmax
+        ) {
+          getGeoCodeInProgress = false;
+
+          return callback(null, data);
+        }
+        getGeoCodeInProgress = false;
+
+        callback('No result for ' + address);
+      } else {
+        getGeoCodeInProgress = false;
+
+        callback(status !== 'success' ? status : 'No result for ' + address);
+      }
+    });
+  };
+
+  $scope.getHtmlContent = function(identifier, record) {
+    // Tooltip content
+    var tooltip = '';
+
+    _.each(record, function(value, property) {
+      if (
+        property.charAt(0) === '_' ||
+        (property === 'date' && identifier === 'ftth') ||
+        value === null ||
+        typeof value === 'undefined'
+      ) {
+        return;
+      }
+
+      var label = $scope.dictionary[property] || property;
+
+      value = $scope.dictionary[value] || value;
+
+      var date;
+      if (property.substring(0, 5) === 'DATE_' && !$scope.dictionary[value] && isDate(value)) {
+        date = formatDate(value);
+      }
+
+      if (!date || $scope.debug) {
+        // Do not show dates to user otherwise
+        tooltip +=
+          '<div class="popup-line"><div class="popup-label">' +
+          label +
+          '</div><div class="popup-value">' +
+          (date ? date.locale('fr').format('MMMM YYYY') : value) +
+          '</div><div class="popup-small-date">' +
+          (date ? date.locale('fr').fromNow() : '') +
+          '</div></div>';
+      }
+    });
+
+    if (identifier === 'adsl') {
+      tooltip =
+        '<a style="float: right;" href="http://www.ariase.com/fr/eligibilite/test.html" target="_blank">Tester mon éligibilité ADSL avec Ariase.com</a>';
+    }
+    return tooltip;
+  };
+
+  $scope.hideLayer = function(identifier) {
+    map.removeLayer(layer[identifier]);
+  };
+
+  $scope.hideResultPane = function() {
+    if (!$('#result').height()) {
+      return;
+    }
+    $('#result').animate({ height: 0 }, 1000);
+
+    $('#map').animate(
+      {
+        height: $('body').height()
+      },
+      1000,
+      function() {
+        // Animation complete.
+        map.invalidateSize();
+        var centerPoint = $scope.geoCode ? new L.LatLng($scope.geoCode.y, $scope.geoCode.x) : stlo;
+
+        map.setView(centerPoint, 14);
+      }
+    );
+  };
+
+  $scope.initPopup = function() {
+    $scope.postForm = null;
+
+    getFullAddress(function(err, address) {
+      if (err) {
+        console.error(err);
+      }
+
+      $scope.result = { eligibilite: {}, autres: {} };
+
+      $scope.result.eligibilite.geo_code = JSON.stringify($scope.geoCode);
+      $scope.result.eligibilite.code_postal = address.Postal;
+      $scope.result.eligibilite.complement_addresse = address.Match_addr;
+      $scope.result.eligibilite.nom_voie = address.Address;
+      $scope.result.eligibilite.numero_voie = address.StreetNumber;
+      $scope.result.eligibilite.type_voie = address.StreetType;
+      $scope.result.eligibilite.ville = address.City;
+    });
+  };
+
+  $scope.isFormValid = function() {
+    if (!$scope.result || !$scope.result.eligibilite) {
+      return;
+    }
+
+    var isValid = true;
+    _.each($scope.formulaires.eligibilite.sections, function(section) {
+      _.each(section.lines, function(line) {
+        _.each(line.ctrls, function(ctrl) {
+          ctrl.invalid = false;
+          if (ctrl.require && !ctrl.isValid($scope.result.eligibilite[ctrl.id], $scope.result.autres[ctrl.id])) {
+            isValid = false;
+            ctrl.invalid = true;
+          }
+        });
+      });
+    });
+
+    return isValid;
+  };
+
+  $scope.refreshInscriptionInfo = function() {
+    if (!$scope.results.ftth) {
+      return false;
+    }
+
+    var dateDeb = moment($scope.results.ftth.DATE_OUV_BUL_PRERACCO, 'DD/MM/YY');
+    var dateFin = moment($scope.results.ftth.DATE_FERM_BUL_PRERACCO, 'DD/MM/YY');
+    var dateCom = moment($scope.results.ftth.DATE_OUV_COMMERCIALISATION, 'DD/MM/YY');
+    var dateEndButton = dateFin.add(31, 'days');
+
+    var now = moment();
+    var diffDaysDeb = now.diff(dateDeb) / 1000 / 3600 / 24;
+    var diffDaysFin = now.diff(dateFin) / 1000 / 3600 / 24;
+    var diffDaysCom = now.diff(dateCom) / 1000 / 3600 / 24;
+
+    var diffDaysEndButton = now.diff(dateEndButton) / 1000 / 3600 / 24;
+
+    var isOpen = diffDaysDeb > 0 && (!$scope.results.ftth.DATE_FERM_BUL_PRERACCO || diffDaysEndButton < 0);
+    var isMarketable = !!diffDaysCom;
+
+    var cas = 0;
+    var message = 'Déploiement prévu ultérieurement.';
+
+    if ($scope.results.ftth.eligible) {
+      // Perimetre MT Saint Love et Cherbourg
+      cas = 7;
+      message = null;
+    } else if ($scope.results.ftth.DATE_OUV_COMMERCIALISATION && isMarketable) {
+      var jct = diffDaysCom < 0 ? 'va débuter' : 'a débuté';
+      message =
+        'La commercialisation des offres FttH sur votre secteur ' +
+        jct +
+        ' le ' +
+        dateCom.lang('fr').format('ll') +
+        '. Pour souscrire à une offre internet Très Haut Débit, contactez les fournisseurs d’accès présents sur le réseau :';
+      cas = 6;
+    } else if ($scope.results.ftth.DATE_FERM_BUL_PRERACCO && diffDaysFin > 31) {
+      cas = 5;
+      isOpen = false;
+      message =
+        "Les travaux dans votre secteur sont terminés et ont été livrés à Manche Fibre, délégataire de service public. Vous n'avez plus la possibilité de vous inscrire.";
+    } else if (isOpen) {
+      message =
+        dateFin && diffDaysFin > 0 && diffDaysEndButton < 0
+          ? 'L’inscription se termine le ' + dateEndButton.lang('fr').format('ll')
+          : '';
+      cas = 3;
+
+      if (!message && $scope.results.ftth.DATE_FERM_BUL_PRERACCO) {
+        if (diffDaysFin < 31) {
+          message =
+            'Les travaux dans votre secteur sont terminés. Il vous reste ' +
+            Math.abs(parseInt(diffDaysEndButton, 10)) +
+            ' jours pour vous pré-inscrire sur notre site.';
+          cas = 4;
+        }
+      }
+    } else if ($scope.results.ftth.DATE_OUV_BUL_PRERACCO && diffDaysDeb < 0) {
+      message = 'L’inscription sera possibe à partir du ' + dateDeb.lang('fr').format('ll');
+      cas = 2;
+    } else if ($scope.results.ftth.DATE_DEB_TRAV_PREV) {
+      var date = moment($scope.results.ftth.DATE_DEB_TRAV_PREV, 'DD/MM/YY').add(24, 'M');
+
+      message = null;
+      cas = 1;
+    }
+
+    console.log('Cas ' + cas);
+
+    $scope.inscription = {
+      open: isOpen,
+      message: message,
+      cas: cas
+    };
+  };
+
+  $scope.onSubmitAddress = function($item, $model, $label) {
+    // Get magic key
+    var item = _.find($scope.suggestions, { text: $item });
+
+    if (!item) {
+      item = $scope.suggestions[0];
+      $scope.address = item.text;
+    }
+    $scope.magicKey = item.magicKey;
+
+    $scope.getGeoCode($scope.address, $scope.magicKey, function(err, data) {
+      $scope.geoCode = data && data.locations && data.locations[0] && data.locations[0].feature.geometry;
+      if (err) {
+        console.error('Geocode error', err);
+      }
+
+      var toast = toast || {
+        template:
+          '<md-toast><i class = " md-error"></i> Oups! Aucun résultat trouvé dans la Manche pour: ' +
+          $scope.address +
+          '</md-toast>',
+        hideDelay: 3000,
+        position: 'bottom right'
+      };
+
+      if (err || !$scope.geoCode) {
+        $scope.hideResultPane();
+
+        $mdToast.show(toast);
+      }
+
+      if ($scope.geoCode) {
+        addCurrentMarker();
+        $scope.showResultPane();
+
+        getResults();
+      }
+    });
+  };
+
+  $scope.postFormEl = function() {
+    $scope.postForm = { inProgress: true };
+
+    // Add ID_ZAPM_PARTIELLE
+    $scope.result.eligibilite.id_zapm_partielle = $scope.results.ftth.ID_ZAPM_PARTIELLE;
+
+    _.each($scope.result.autres, function(value, key) {
+      $scope.result.eligibilite[key] = value;
+    });
+
+    $scope.$evalAsync();
+
+    var keys = '';
+    var values = '';
+    _.each($scope.result.eligibilite, function(value, key) {
+      keys += '`' + key + '`, ';
+      if (value === 'undefined' || value === undefined) {
+        value = '';
+      }
+      if (key === 'telephone_fixe' || key === 'telephone_portable') {
+        value = value
+          .replace(/ /g, '')
+          .replace(/\./g, '')
+          .replace(/-/g, '');
+      }
+      if (typeof value === 'boolean') {
+        values += value + ', ';
+      } else {
+        values += "'" + mysql_real_escape_string(value) + "', ";
+      }
+    });
+
+    var dateTime = new Date(
+      new Date(new Date(new Date()).toISOString()).getTime() - new Date().getTimezoneOffset() * 60000
+    )
+      .toISOString()
+      .slice(0, 19)
+      .replace('T', ' ');
+
+    checkDoublon($scope.result.eligibilite, function(doublon) {
+      if (doublon) {
+        $scope.postForm = {
+          error:
+            'Une demande de pré-raccordement a déjà été effectuée à cette adresse. Pour tout renseignement merci de contacter les services de Manche Numérique au 02.33.77.83.60'
+        };
+
+        return $scope.$apply();
+      }
+
+      var query =
+        'INSERT INTO `eligibilite`.`demandes` (`date`,' +
+        keys.substring(0, keys.length - 2) +
+        ") VALUES ('" +
+        dateTime +
+        "', " +
+        values.substring(0, values.length - 2) +
+        ');';
+
+      $.ajax({
+        method: 'POST',
+        url: 'ajax/datastores.php',
+        data: { query: query }
+      }).done(function(msg) {
+        if (!isNaN(msg)) {
+          $scope.postForm = { ok: true };
+
+          var numDemande = moment().format('YYYYMMDD') + msg;
+
+          var body =
+            '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
+
+          body +=
+            '<html><body style="font-size: 14px; font-family: calibri;">' +
+            'Bonjour ' +
+            $scope.result.eligibilite.prenom +
+            ' ' +
+            $scope.result.eligibilite.nom +
+            ', <br>' +
+            'Nous vous confirmons votre demande de pré-raccordement FTTH. <br><br>' +
+            'Cette demande porte le numéro: ' +
+            '<span style="color: #31708f;font-size:17px; font-weight:bold;">' +
+            numDemande +
+            '</span><br><br>' +
+            'Voici le détail de votre demande:' +
+            '<table WIDTH="100%" style="line-height: 40px;" bgColor="#d9edf7" bordercolor="#bce8f1">';
+
+          // Numero demande
+          body += '<tr>';
+          body +=
+            '<th style="width:180px;text-align: left;white-space: nowrap;height: 40px;color: #666;">Numéro demande</th>';
+          body += '<td>' + numDemande + '</td>';
+          body += '</tr>';
+
+          // Date demande
+          body += '<tr>';
+          body += '<th style="text-align: left;white-space: nowrap;height: 40px;color: #666;">Date</th>';
+          body +=
+            '<td>' +
+            moment()
+              .lang('fr')
+              .format('LLLL') +
+            '</td>';
+          body += '</tr>';
+
+          // Demandeur
+          body += '<tr>';
+          body += '<th style="text-align: left;white-space: nowrap;height: 40px;color: #666;">Demandeur</th>';
+          body += '<td>' + $scope.result.eligibilite.prenom + ' ' + $scope.result.eligibilite.nom + '</td>';
+          body += '</tr>';
+
+          // Email
+          body += '<tr>';
+          body += '<th style="text-align: left;white-space: nowrap;height: 40px;color: #666;">Email</th>';
+          body += '<td>' + $scope.result.eligibilite.email + '</td>';
+          body += '</tr>';
+
+          // Adresse
+          body += '<tr>';
+          body += '<th style="text-align: left;white-space: nowrap;height: 40px;color: #666;">Adresse</th>';
+          body += '<td>' + computeFullAddress() + '</td>';
+          body += '</tr>';
+
+          // Vous etes
+          var cat = _.find(catVousEtes, { id: $scope.result.eligibilite.vous_etes });
+          var res = cat && cat.name ? cat.name : $scope.result.eligibilite.vous_etes;
+          body += '<tr>';
+          body += '<th style="text-align: left;white-space: nowrap;height: 40px;color: #666;">Vous êtes</th>';
+          body += '<td>' + res + '</td>';
+          body += '</tr>';
+
+          // Ce logement est
+          var cat2 = _.find(catCeLogementEst, { id: $scope.result.eligibilite.ce_logement_est });
+          var res2 = cat2 && cat2.name ? cat2.name : $scope.result.eligibilite.ce_logement_est;
+          body += '<tr>';
+          body += '<th style="text-align: left;white-space: nowrap;height: 40px;color: #666;">Ce logement est</th>';
+          body += '<td>' + res2 + '</td>';
+          body += '</tr>';
+
+          body += '</table><br><br>';
+
+          body +=
+            'Conformément à la loi "informatique et libertés" du 6 janvier 1978 modifiée, vous bénéficiez d’un droit d’accès, de rectification aux informations qui vous concernent, d’opposition au traitement de vos données personnelles. Si vous souhaitez exercer ce droit et obtenir la communication des informations vous concernant, merci de nous contacter :' +
+            '<br>' +
+            '<table bgcolor="#ddd" bordercolor="#666">' +
+            '  <tr>' +
+            ' <th style="width:180px;text-align: left;white-space: nowrap;height: 30px;color: #666;">Email</th><td>' +
+            siteEmail +
+            '</td>' +
+            '  </tr><tr>' +
+            ' <th style="text-align: left;white-space: nowrap;height: 30px;color: #666;">Adresse</th><td>' +
+            siteAddresse +
+            '</td>' +
+            '  </tr><tr>' +
+            ' <th style="text-align: left;white-space: nowrap;height: 30px;color: #666;">Tel</th><td>' +
+            siteTel +
+            '</td>' +
+            '  </tr>' +
+            '</table><br><br>';
+
+          body += 'A bientôt sur:  <a href="' + siteUrl + '">' + siteName + '</a></body></html>';
+
+          var mail = {
+            to: $scope.result.eligibilite.email,
+            sujet: 'Votre demande de pré-raccordement FTTH n° ' + numDemande,
+            message: body
+          };
+
+          $.ajax({
+            method: 'POST',
+            url: 'ajax/datastores.php',
+            data: {
+              siteEmail: siteEmail,
+              mail: mail
+            }
+          }).done(function(msg) {
+            console.log('Email sent', msg);
+          });
+
+          $scope.result.eligibilite = {};
+          $scope.autres = {};
+          $scope.address = null;
+          $scope.magicKey = null;
+        } else {
+          $scope.postForm = { error: msg };
+        }
+
+        $scope.hideResultPane();
+        $scope.$apply();
+      });
+    });
+  };
+
+  $scope.showLayer = function(identifier) {
+    map.addLayer(layer[identifier]);
+  };
+
+  $scope.showResultPane = function() {
+    var bodyHeight = $('body').height();
+    var height = Math.max(300, bodyHeight / 3);
+    var heightMap = bodyHeight - height;
+
+    $('#result').animate({ height: height + 'px' }, 1000);
+
+    $('#map').animate(
+      {
+        height: heightMap + 'px'
+      },
+      1000,
+      function() {
+        // Animation complete.
+        map.invalidateSize();
+
+        map.setView(new L.LatLng($scope.geoCode.y, $scope.geoCode.x), 18);
+      }
+    );
+  };
+
+  var i = 0,
+    j = 0;
+  $scope.suggestLocation = function(val) {
+    try {
+      var coordinates = JSON.parse(val);
+
+      if (coordinates && coordinates.x) {
+        $scope.geoCode = coordinates;
+        addCurrentMarker();
+      }
+      return;
+    } catch (e) {
+      $scope.suggestionsReady = false;
+      i++;
+      return $http
+        .get(suggestURL, {
+          params: {
+            text: val
+          }
+        })
+        .then(function(response) {
+          if (val === $scope.address) {
+            // Very important to debounce queries
+            $scope.suggestionsReady = response.data.suggestions.length !== 0;
+            $scope.suggestions = _.cloneDeep(response.data.suggestions);
+          }
+
+          return response.data.suggestions.map(function(item) {
+            return item.text;
+          });
+        });
+    }
+  };
+
+  $scope.toggleResultPane = function() {
+    if ($('#result').height()) {
+      return $scope.hideResultPane();
+    }
+    if ($scope.results && $scope.results.ftth) {
+      return $scope.showResultPane();
+    }
+  };
+
+  $scope.toggleRight = function() {
+    $mdSidenav('right')
+      .toggle()
+      .then(function() {});
+  };
+
+  $scope.$watch(
+    'view',
+    function(view) {
+      if (_.isEmpty(view)) {
+        return;
+      }
+      $('#layer-loading')
+        .removeClass('force-hidden')
+        .find('.md-inner')
+        .show();
+      setTimeout(function() {
+        _.each(view, function(value, key) {
+          if ($scope.isShown[key] !== value) {
+            if (value) {
+              if (typeof $scope.isShown[key] !== 'undefined') {
+                $scope.showLayer(key);
+                $('#layer-loading')
+                  .find('.md-inner')
+                  .hide();
+              } else {
+                $timeout(function() {
+                  $scope.computeLayer(key);
+                  $scope.showLayer(key);
+                  $('#layer-loading')
+                    .find('.md-inner')
+                    .hide();
+                }, 500);
+              }
+            } else {
+              $scope.hideLayer(key);
+              setTimeout(function() {
+                $('#layer-loading')
+                  .find('.md-inner')
+                  .hide();
+              }, 1000);
+            }
+            $scope.isShown[key] = value;
+          }
+        });
+      });
+    },
+    true
+  );
+
+  $(window).resize(function() {
+    if (!$('#result').height()) {
+      return;
+    }
+    $scope.showResultPane();
+  });
+
+  init();
+});

+ 7 - 0
js/proj4js/.gitignore

@@ -0,0 +1,7 @@
+*~
+node_modules
+.c9revisions
+coverage
+projs.js
+.DS_STORE
+dist

+ 11 - 0
js/proj4js/.jshintrc

@@ -0,0 +1,11 @@
+{
+  "curly": true,
+  "eqeqeq": true,
+  "latedef": "nofunc",
+  "undef": true,
+  "unused": true,
+  "trailing": true,
+  "indent": 2,
+  "browser": true,
+  "node": true
+}

+ 4 - 0
js/proj4js/.npmignore

@@ -0,0 +1,4 @@
+*~
+.c9revisions
+coverage
+projs.js

+ 4 - 0
js/proj4js/.travis.yml

@@ -0,0 +1,4 @@
+language: node_js
+
+node_js:
+  - "0.10"

+ 25 - 0
js/proj4js/AUTHORS

@@ -0,0 +1,25 @@
+Mike Adair <madair@dmsolutions.ca>
+Richard Greenwood <rich@greenwoodmap.com>
+Calvin Metcalf <calvin.metcalf@gmail.com>
+Richard Marsden (http://www.winwaed.com)
+#credit for
+#src/projCode/gnom.js
+#src/projCode/cea.js
+T. Mittan
+#credit for
+#src/projCode/eqdc.js
+#src/projCode/equi.js
+#src/projCode/merc.js
+#src/projCode/mill.js
+#src/projCode/omerc.js
+#src/projCode/ortho.js
+#src/projCode/poly.js
+#src/projCode/poly.js
+D. Steinwand
+#credit for
+#src/projCode/merc.js
+#src/projCode/laea.js
+#src/projCode/moll.js
+S. Nelson
+#credit for
+#src/projCode/moll.js

+ 110 - 0
js/proj4js/Gruntfile.js

@@ -0,0 +1,110 @@
+var projs = [
+  'tmerc',
+  'utm',
+  'sterea',
+  'stere',
+  'somerc',
+  'omerc',
+  'lcc',
+  'krovak',
+  'cass',
+  'laea',
+  'aea',
+  'gnom',
+  'cea',
+  'eqc',
+  'poly',
+  'nzmg',
+  'mill',
+  'sinu',
+  'moll',
+  'eqdc',
+  'vandg',
+  'aeqd'
+];
+module.exports = function(grunt) {
+  grunt.initConfig({
+    pkg: grunt.file.readJSON('package.json'),
+    connect: {
+      server: {
+        options: {
+          port: process.env.PORT || 8080,
+          base: '.'
+        }
+      }
+    },
+    mocha_phantomjs: {
+      all: {
+        options: {
+          reporter: "dot",
+          urls: [ //my ide requries process.env.IP and PORT
+            "http://" + (process.env.IP || "127.0.0.1") + ":" + (process.env.PORT || "8080") + "/test/amd.html",
+            "http://" + (process.env.IP || "127.0.0.1") + ":" + (process.env.PORT || "8080") + "/test/opt.html"
+          ]
+        }
+      }
+    },
+    jshint: {
+      options: {
+        jshintrc: "./.jshintrc"
+      },
+      all: ['./lib/*.js', './lib/*/*.js']
+    },
+    browserify: {
+      all: {
+        files: {
+          'dist/proj4-src.js': ['lib/index.js'],
+        },
+        options: {
+          standalone: 'proj4',
+          alias: [
+            './projs:./includedProjections'
+            ]
+        }
+      }
+    },
+    uglify: {
+      options: {
+        report: 'gzip',
+        mangle:{
+          except: ['proj4','Projection','Point']
+        },
+      },
+      all: {
+        src: 'dist/proj4-src.js',
+        dest: 'dist/proj4.js'
+      }
+    }
+  });
+  grunt.loadNpmTasks('grunt-browserify');
+  grunt.loadNpmTasks('grunt-contrib-uglify');
+  grunt.loadNpmTasks('grunt-contrib-jshint');
+  grunt.loadNpmTasks('grunt-contrib-connect');
+  grunt.loadNpmTasks('grunt-mocha-phantomjs');
+  grunt.registerTask('custom',function(){
+    grunt.task.run('browserify', 'uglify');
+    var projections = this.args;
+    if(projections[0]==='default'){
+      grunt.file.write('./projs.js','module.exports = function(){}');
+      return;
+    }
+    if(projections[0]==='all'){
+      projections = projs;
+    }
+    grunt.file.write('./projs.js',[
+      "var projs = [",
+      " require('./lib/projections/"+projections.join("'),\n\trequire('./lib/projections/")+"')",
+      "];",
+      "module.exports = function(proj4){",
+      " projs.forEach(function(proj){",
+      "   proj4.Proj.projections.add(proj);",
+      " });",
+      "}"
+    ].join("\n"));
+  });
+  grunt.registerTask('build',function(){
+    var args = this.args.length?this.args[0].split(','):['default'];
+    grunt.task.run('jshint', 'custom:'+args.join(':'));
+  });
+  grunt.registerTask('default', ['build:all', 'connect','mocha_phantomjs']);
+};

+ 29 - 0
js/proj4js/LICENSE.md

@@ -0,0 +1,29 @@
+##Proj4js -- Javascript reprojection library. 
+ 
+Authors:
+- Mike Adair madairATdmsolutions.ca
+- Richard Greenwood richATgreenwoodmap.com
+- Didier Richard didier.richardATign.fr
+- Stephen Irons stephen.ironsATclear.net.nz
+- Olivier Terral oterralATgmail.com
+- Calvin Metcalf cmetcalfATappgeo.com
+
+Copyright (c) 2014, Mike Adair, Richard Greenwood, Didier Richard, Stephen Irons, Olivier Terral and Calvin Metcalf
+
+ 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._

+ 17 - 0
js/proj4js/PUBLISHING.md

@@ -0,0 +1,17 @@
+Publishing
+===
+
+Use `tin` to update the version number in the `package.json`, `component.json` & `bower.json`.
+
+    tin -v x.y.z
+
+Then run the publish script
+
+   ./publish.sh
+
+afterwards don't forget to update the versions to be a prerelease of the next version, so if you just published 1.1.1 then:
+
+    tin -v 1.1.2-alpha
+    git add package.json component.json bower.json
+    git commit -m 'update version to 1.1.2-alpha'
+    git push origin master

+ 153 - 0
js/proj4js/README.md

@@ -0,0 +1,153 @@
+#PROJ4JS [![Build Status](https://travis-ci.org/proj4js/proj4js.svg)](https://travis-ci.org/proj4js/proj4js)
+
+Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.
+Originally a port of [PROJ.4](http://trac.osgeo.org/proj/) and [GCTCP C](http://edcftp.cr.usgs.gov/pub//software/gctpc) it is
+a part of the [MetaCRS](http://wiki.osgeo.org/wiki/MetaCRS) group of projects.
+
+##Installing
+
+Depending on your preferences
+
+```bash
+npm install proj4
+bower install proj4
+jam install proj4
+component install proj4js/proj4js
+```
+
+or just manually grab the file `proj4.js` from the [latest release](https://github.com/proj4js/proj4js/releases).
+
+if you do not want to download anything, Proj4js is also hosted on [cdnjs](http://www.cdnjs.com/libraries/proj4js) for direct use in your browser applications.
+
+##Using
+
+the basic signature is:
+
+```javascript
+proj4(fromProjection[, toProjection2, coordinates])
+```
+
+Projections can be proj or wkt strings.
+
+Coordinates may an object of the form `{x:x,y:y}` or an array of the form `[x,y]`.
+
+When all 3 arguments  are given, the result is that the coordinates are transformed from projection1 to projection 2. And returned in the same format that they were given in.
+
+```javascript
+var firstProjection = 'PROJCS["NAD83 / Massachusetts Mainland",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.68333333333333],PARAMETER["standard_parallel_2",41.71666666666667],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-71.5],PARAMETER["false_easting",200000],PARAMETER["false_northing",750000],AUTHORITY["EPSG","26986"],AXIS["X",EAST],AXIS["Y",NORTH]]';
+var secondProjection = "+proj=gnom +lat_0=90 +lon_0=0 +x_0=6300000 +y_0=6300000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs";
+//I'm not going to redefine those two in latter examples.
+proj4(firstProjection,secondProjection,[2,5]);
+// [-2690666.2977344505, 3662659.885459918]
+```
+
+If only 1 projection is given then it is assumed that it is being projected *from* WGS84 (fromProjection is WGS84).
+
+```javascript
+proj4(firstProjection,[-71,41]);
+// [242075.00535055372, 750123.32090043]
+```
+
+If no coordinates are given an object with two methods is returned, its methods are `forward` which projects from the first projection to the second and `inverse` which projects from the second to the first.
+
+```javascript
+proj4(firstProjection,secondProjection).forward([2,5]);
+// [-2690666.2977344505, 3662659.885459918]
+proj4(secondProjection,firstProjection).inverse([2,5]);
+// [-2690666.2977344505, 3662659.885459918]
+```
+
+and as above if only one projection is given, it's assumed to be coming from wgs84
+
+```javascript
+proj4(firstProjection).forward([-71,41]);
+// [242075.00535055372, 750123.32090043]
+proj4(firstProjection).inverse([242075.00535055372, 750123.32090043]);
+//[-71, 40.99999999999986]
+//the floating points to answer your question
+```
+
+## Named Projections
+
+If you prefer to define a projection as a string and reference it that way, you may use the proj4.defs method which can be called 2 ways, with a name and projection:
+
+```js
+proj4.defs('WGS84', "+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees");
+```
+
+or with an array
+
+```js
+proj4.defs([
+  [
+    'EPSG:4326',
+    '+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees'],
+  [
+    'EPSG:4269',
+    '+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees'
+  ]
+]);
+```
+
+you can then do 
+
+```js
+proj4('EPSG:4326');
+```
+
+instead of writing out the whole proj definition, by default proj4 has the following projections predefined:
+
+- 'EPSG:4326', which has the following alias
+    - 'WGS84'
+- 'EPSG:4269'
+- 'EPSG:3857', which has the following aliases
+    - 'EPSG:3785'
+    - 'GOOGLE'
+    - 'EPSG:900913'
+    - 'EPSG:102113'
+
+defined projections can also be accessed through the proj4.defs function (`proj4.defs('EPSG:4326')`).
+
+proj4.defs can also be used to define a named alias:
+
+```javascript
+proj4.defs('urn:x-ogc:def:crs:EPSG:4326', proj4.defs('EPSG:4326'));
+``` 
+
+##Developing
+to set up build tools make sure you have node and grunt-cli installed and then run `npm install`
+
+to do the complete build and browser tests run
+
+```bash
+grunt
+```
+
+to run node tests run
+
+```bash
+npm test
+```
+
+to run node tests with coverage run
+
+```bash
+node test --coverage
+```
+
+to create a build with only default projections (latlon and Mercator) run 
+
+```bash
+grunt build
+```
+
+to create a build with only custom projections include a comma separated list of projections codes (the file name in 'lib/projections' without the '.js') after a colon, e.g.
+
+```bash
+grunt build:tmerc
+#includes transverse Mercator
+grunt build:lcc
+#includes lambert conformal conic
+grunt build:omerc,moll
+#includes oblique Mercator and Mollweide
+```

+ 29 - 0
js/proj4js/REFERENCES.md

@@ -0,0 +1,29 @@
+1. Snyder, John P., "Map Projections--A Working Manual", U.S. Geological Survey
+    Professional Paper 1395 (Supersedes USGS Bulletin 1532),
+    United State Government Printing Office, Washington D.C., 1987.
+2. Snyder, John P. and Voxland, Philip M., "An Album of Map Projections",
+    U.S. Geological Survey Professional Paper 1453 ,
+    United State Government Printing Office, Washington D.C., 1989.
+3. "Cartographic Projection Procedures for the UNIX Environment-
+    A User's Manual" by Gerald I. Evenden,
+    USGS Open File Report 90-284and Release 4 Interim Reports (2003)
+4. Snyder, John P., "Flattening the Earth -
+    Two Thousand Years of Map Projections", Univ. Chicago Press, 1993
+5. Wolfram Mathworld "Gnomonic Projection"
+    http://mathworld.wolfram.com/GnomonicProjection.html
+    Accessed: 12th November 2009
+6. "New Equal-Area Map Projections for Noncircular Regions", John P. Snyder,
+    The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.
+7. Snyder, John P., "Map Projections--A Working Manual", U.S. Geological
+    Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United
+    State Government Printing Office, Washington D.C., 1987.
+8. "Software Documentation for GCTP General Cartographic Transformation
+    Package", U.S. Geological Survey National Mapping Division, May 1982.
+9. Department of Land and Survey Technical Circular 1973/32
+    http://www.linz.govt.nz/docs/miscellaneous/nz-map-definition.pdf
+10. OSG Technical Report 4.1
+    http://www.linz.govt.nz/docs/miscellaneous/nzmg.pdf
+11. Formules et constantes pour le Calcul pour la
+    projection cylindrique conforme à axe oblique et pour la transformation entre
+    des systèmes de référence.
+    http://www.swisstopo.admin.ch/internet/swisstopo/fr/home/topics/survey/sys/refsys/switzerland.parsysrelated1.31216.downloadList.77004.DownloadFile.tmp/swissprojectionfr.pdf

+ 24 - 0
js/proj4js/bower.json

@@ -0,0 +1,24 @@
+{
+  "name": "proj4",
+  "version": "2.3.4-alpha",
+  "description": "Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.",
+  "homepage": "https://github.com/proj4js/proj4js",
+  "main": "dist/proj4.js",
+  "keywords": [
+    "gis",
+    "projections",
+    "geospatial",
+    "transform",
+    "datum"
+  ],
+  "license": "MIT",
+  "ignore": [
+    "**/.*",
+    "node_modules",
+    "bower_components",
+    "test",
+    "tests",
+    "almond",
+    "src"
+  ]
+}

+ 21 - 0
js/proj4js/changelog.md

@@ -0,0 +1,21 @@
+Change log
+===
+- 2.2.1: Documentation fixes and added proj4.defs('name') as an alias for proj4.defs['name'];
+
+- 2.1.4: dist folder is added back in after accidentally omitting it in 2.1.1
+
+- 2.1.3: skipped as issues with the dist folder are ironed out.
+
+- 2.1.2: added sensible defaults for false eastings/northings
+
+- 2.1.1: tweaks to how we publish it, fixes related to errors with the OSGB36 and Reseau National Belge 1972 datums, we took the first steps towards depreciating the proj4.Point class.
+
+- 2.1.0: targeted builds for projections are now supported, and internally projection creation is more modular.
+
+- 2.0.3: mgrs is broken out into it's own module loaded via npm.
+
+- 2.0.2: module common is broken up into a collection of smaller modules. 
+
+- 2.0.1: fix typo in eqc projection.
+
+- 2.0.0: we start the change log.

+ 17 - 0
js/proj4js/component.json

@@ -0,0 +1,17 @@
+{
+  "name": "proj4",
+  "version": "2.3.4-alpha",
+  "description": "Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.",
+  "repo": "proj4js/proj4js",
+  "keywords": [
+    "projections",
+    "proj4",
+    "transform",
+    "crs"
+  ],
+  "license": "MIT",
+  "main": "dist/proj4.js",
+  "scripts": [
+    "dist/proj4.js"
+  ]
+}

+ 35 - 0
js/proj4js/lib/Point.js

@@ -0,0 +1,35 @@
+var mgrs = require('mgrs');
+
+function Point(x, y, z) {
+  if (!(this instanceof Point)) {
+    return new Point(x, y, z);
+  }
+  if (Array.isArray(x)) {
+    this.x = x[0];
+    this.y = x[1];
+    this.z = x[2] || 0.0;
+  }else if(typeof x === 'object'){
+    this.x = x.x;
+    this.y = x.y;
+    this.z = x.z || 0.0;
+  } else if (typeof x === 'string' && typeof y === 'undefined') {
+    var coords = x.split(',');
+    this.x = parseFloat(coords[0], 10);
+    this.y = parseFloat(coords[1], 10);
+    this.z = parseFloat(coords[2], 10) || 0.0;
+  }
+  else {
+    this.x = x;
+    this.y = y;
+    this.z = z || 0.0;
+  }
+  console.warn('proj4.Point will be removed in version 3, use proj4.toPoint');
+}
+
+Point.fromMGRS = function(mgrsStr) {
+  return new Point(mgrs.toPoint(mgrsStr));
+};
+Point.prototype.toMGRS = function(accuracy) {
+  return mgrs.forward([this.x, this.y], accuracy);
+};
+module.exports = Point;

+ 33 - 0
js/proj4js/lib/Proj.js

@@ -0,0 +1,33 @@
+var parseCode = require("./parseCode");
+var extend = require('./extend');
+var projections = require('./projections');
+var deriveConstants = require('./deriveConstants');
+
+function Projection(srsCode,callback) {
+  if (!(this instanceof Projection)) {
+    return new Projection(srsCode);
+  }
+  callback = callback || function(error){
+    if(error){
+      throw error;
+    }
+  };
+  var json = parseCode(srsCode);
+  if(typeof json !== 'object'){
+    callback(srsCode);
+    return;
+  }
+  var modifiedJSON = deriveConstants(json);
+  var ourProj = Projection.projections.get(modifiedJSON.projName);
+  if(ourProj){
+    extend(this, modifiedJSON);
+    extend(this, ourProj);
+    this.init();
+    callback(null, this);
+  }else{
+    callback(srsCode);
+  }
+}
+Projection.projections = projections;
+Projection.projections.start();
+module.exports = Projection;

+ 51 - 0
js/proj4js/lib/adjust_axis.js

@@ -0,0 +1,51 @@
+module.exports = function(crs, denorm, point) {
+  var xin = point.x,
+    yin = point.y,
+    zin = point.z || 0.0;
+  var v, t, i;
+  for (i = 0; i < 3; i++) {
+    if (denorm && i === 2 && point.z === undefined) {
+      continue;
+    }
+    if (i === 0) {
+      v = xin;
+      t = 'x';
+    }
+    else if (i === 1) {
+      v = yin;
+      t = 'y';
+    }
+    else {
+      v = zin;
+      t = 'z';
+    }
+    switch (crs.axis[i]) {
+    case 'e':
+      point[t] = v;
+      break;
+    case 'w':
+      point[t] = -v;
+      break;
+    case 'n':
+      point[t] = v;
+      break;
+    case 's':
+      point[t] = -v;
+      break;
+    case 'u':
+      if (point[t] !== undefined) {
+        point.z = v;
+      }
+      break;
+    case 'd':
+      if (point[t] !== undefined) {
+        point.z = -v;
+      }
+      break;
+    default:
+      //console.log("ERROR: unknow axis ("+crs.axis[i]+") - check definition of "+crs.projName);
+      return null;
+    }
+  }
+  return point;
+};

+ 3 - 0
js/proj4js/lib/common/acosh.js

@@ -0,0 +1,3 @@
+module.exports = function(x) {
+  return 2 * Math.log(Math.sqrt((x + 1) / 2) + Math.sqrt((x - 1) / 2));
+};

+ 6 - 0
js/proj4js/lib/common/adjust_lat.js

@@ -0,0 +1,6 @@
+var HALF_PI = Math.PI/2;
+var sign = require('./sign');
+
+module.exports = function(x) {
+  return (Math.abs(x) < HALF_PI) ? x : (x - (sign(x) * Math.PI));
+};

+ 11 - 0
js/proj4js/lib/common/adjust_lon.js

@@ -0,0 +1,11 @@
+var TWO_PI = Math.PI * 2;
+// SPI is slightly greater than Math.PI, so values that exceed the -180..180
+// degree range by a tiny amount don't get wrapped. This prevents points that
+// have drifted from their original location along the 180th meridian (due to
+// floating point error) from changing their sign.
+var SPI = 3.14159265359;
+var sign = require('./sign');
+
+module.exports = function(x) {
+  return (Math.abs(x) <= SPI) ? x : (x - (sign(x) * TWO_PI));
+};

+ 4 - 0
js/proj4js/lib/common/asinh.js

@@ -0,0 +1,4 @@
+module.exports = function(x) {
+  var s = (x >= 0 ? 1 : -1);
+  return s * (Math.log(Math.abs(x) + Math.sqrt(x * x + 1)));
+};

+ 6 - 0
js/proj4js/lib/common/asinz.js

@@ -0,0 +1,6 @@
+module.exports = function(x) {
+  if (Math.abs(x) > 1) {
+    x = (x > 1) ? 1 : -1;
+  }
+  return Math.asin(x);
+};

+ 3 - 0
js/proj4js/lib/common/atanh.js

@@ -0,0 +1,3 @@
+module.exports = function(x) {
+  return Math.log((x - 1) / (x + 1)) / 2;
+};

+ 5 - 0
js/proj4js/lib/common/cosh.js

@@ -0,0 +1,5 @@
+module.exports = function(x) {
+  var r = Math.exp(x);
+  r = (r + 1 / r) / 2;
+  return r;
+};

+ 3 - 0
js/proj4js/lib/common/e0fn.js

@@ -0,0 +1,3 @@
+module.exports = function(x) {
+  return (1 - 0.25 * x * (1 + x / 16 * (3 + 1.25 * x)));
+};

+ 3 - 0
js/proj4js/lib/common/e1fn.js

@@ -0,0 +1,3 @@
+module.exports = function(x) {
+  return (0.375 * x * (1 + 0.25 * x * (1 + 0.46875 * x)));
+};

+ 3 - 0
js/proj4js/lib/common/e2fn.js

@@ -0,0 +1,3 @@
+module.exports = function(x) {
+  return (0.05859375 * x * x * (1 + 0.75 * x));
+};

+ 3 - 0
js/proj4js/lib/common/e3fn.js

@@ -0,0 +1,3 @@
+module.exports = function(x) {
+  return (x * x * x * (35 / 3072));
+};

+ 5 - 0
js/proj4js/lib/common/fL.js

@@ -0,0 +1,5 @@
+var HALF_PI = Math.PI/2;
+
+module.exports = function(x, L) {
+  return 2 * Math.atan(x * Math.exp(L)) - HALF_PI;
+};

+ 4 - 0
js/proj4js/lib/common/gN.js

@@ -0,0 +1,4 @@
+module.exports = function(a, e, sinphi) {
+  var temp = e * sinphi;
+  return a / Math.sqrt(1 - temp * temp);
+};

+ 16 - 0
js/proj4js/lib/common/imlfn.js

@@ -0,0 +1,16 @@
+module.exports = function(ml, e0, e1, e2, e3) {
+  var phi;
+  var dphi;
+
+  phi = ml / e0;
+  for (var i = 0; i < 15; i++) {
+    dphi = (ml - (e0 * phi - e1 * Math.sin(2 * phi) + e2 * Math.sin(4 * phi) - e3 * Math.sin(6 * phi))) / (e0 - 2 * e1 * Math.cos(2 * phi) + 4 * e2 * Math.cos(4 * phi) - 6 * e3 * Math.cos(6 * phi));
+    phi += dphi;
+    if (Math.abs(dphi) <= 0.0000000001) {
+      return phi;
+    }
+  }
+
+  //..reportError("IMLFN-CONV:Latitude failed to converge after 15 iterations");
+  return NaN;
+};

+ 30 - 0
js/proj4js/lib/common/inverseNadCvt.js

@@ -0,0 +1,30 @@
+var nad_intr = require('./nad_intr');
+var adjust_lon = require('./adjust_lon');
+module.exports = function(t, val, tb, ct) {
+  if (isNaN(t.x)) {
+    return val;
+  }
+  t.x = tb.x + t.x;
+  t.y = tb.y - t.y;
+  var i = 9,
+    tol = 1e-12;
+  var dif, del;
+  do {
+    del = nad_intr(t, ct);
+    if (isNaN(del.x)) {
+      break;
+    }
+    dif = {
+      "x": t.x - del.x - tb.x,
+      "y": t.y + del.y - tb.y
+    };
+    t.x -= dif.x;
+    t.y -= dif.y;
+  } while (i-- && Math.abs(dif.x) > tol && Math.abs(dif.y) > tol);
+  if (i < 0) {
+    return val;
+  }
+  val.x = adjust_lon(t.x + ct.ll[0]);
+  val.y = t.y + ct.ll[1];
+  return val;
+};

+ 13 - 0
js/proj4js/lib/common/invlatiso.js

@@ -0,0 +1,13 @@
+var fL = require('./fL');
+
+module.exports = function(eccent, ts) {
+  var phi = fL(1, ts);
+  var Iphi = 0;
+  var con = 0;
+  do {
+    Iphi = phi;
+    con = eccent * Math.sin(Iphi);
+    phi = fL(Math.exp(eccent * Math.log((1 + con) / (1 - con)) / 2), ts);
+  } while (Math.abs(phi - Iphi) > 1.0e-12);
+  return phi;
+};

+ 32 - 0
js/proj4js/lib/common/iqsfnz.js

@@ -0,0 +1,32 @@
+var HALF_PI = Math.PI/2;
+
+module.exports = function(eccent, q) {
+  var temp = 1 - (1 - eccent * eccent) / (2 * eccent) * Math.log((1 - eccent) / (1 + eccent));
+  if (Math.abs(Math.abs(q) - temp) < 1.0E-6) {
+    if (q < 0) {
+      return (-1 * HALF_PI);
+    }
+    else {
+      return HALF_PI;
+    }
+  }
+  //var phi = 0.5* q/(1-eccent*eccent);
+  var phi = Math.asin(0.5 * q);
+  var dphi;
+  var sin_phi;
+  var cos_phi;
+  var con;
+  for (var i = 0; i < 30; i++) {
+    sin_phi = Math.sin(phi);
+    cos_phi = Math.cos(phi);
+    con = eccent * sin_phi;
+    dphi = Math.pow(1 - con * con, 2) / (2 * cos_phi) * (q / (1 - eccent * eccent) - sin_phi / (1 - con * con) + 0.5 / eccent * Math.log((1 - con) / (1 + con)));
+    phi += dphi;
+    if (Math.abs(dphi) <= 0.0000000001) {
+      return phi;
+    }
+  }
+
+  //console.log("IQSFN-CONV:Latitude failed to converge after 30 iterations");
+  return NaN;
+};

+ 16 - 0
js/proj4js/lib/common/latiso.js

@@ -0,0 +1,16 @@
+var HALF_PI = Math.PI/2;
+
+module.exports = function(eccent, phi, sinphi) {
+  if (Math.abs(phi) > HALF_PI) {
+    return Number.NaN;
+  }
+  if (phi === HALF_PI) {
+    return Number.POSITIVE_INFINITY;
+  }
+  if (phi === -1 * HALF_PI) {
+    return Number.NEGATIVE_INFINITY;
+  }
+
+  var con = eccent * sinphi;
+  return Math.log(Math.tan((HALF_PI + phi) / 2)) + eccent * Math.log((1 - con) / (1 + con)) / 2;
+};

+ 3 - 0
js/proj4js/lib/common/mlfn.js

@@ -0,0 +1,3 @@
+module.exports = function(e0, e1, e2, e3, phi) {
+  return (e0 * phi - e1 * Math.sin(2 * phi) + e2 * Math.sin(4 * phi) - e3 * Math.sin(6 * phi));
+};

+ 4 - 0
js/proj4js/lib/common/msfnz.js

@@ -0,0 +1,4 @@
+module.exports = function(eccent, sinphi, cosphi) {
+  var con = eccent * sinphi;
+  return cosphi / (Math.sqrt(1 - con * con));
+};

+ 26 - 0
js/proj4js/lib/common/nadInterBreakout.js

@@ -0,0 +1,26 @@
+module.exports = function(indx, frct, letter, number, ct) {
+  var inx;
+  if (indx[letter] < 0) {
+    if (!(indx[letter] === -1 && frct[letter] > 0.99999999999)) {
+      return false;
+    }
+    indx[letter]++;
+    frct[letter] = 0;
+  }
+  else {
+    inx = indx[letter] + 1;
+    if (inx >= ct.lim[number]) {
+      if (!(inx === ct.lim[number] && frct[letter] < 1e-11)) {
+        return false;
+      }
+      if (letter === 'x') {
+        indx[letter]--;
+      }
+      else {
+        indx[letter]++;
+      }
+      frct[letter] = 1;
+    }
+  }
+  return [indx, frct];
+};

+ 31 - 0
js/proj4js/lib/common/nad_cvt.js

@@ -0,0 +1,31 @@
+var adjust_lon = require('./adjust_lon');
+var nad_intr = require('./nad_intr');
+var inverseNadCvt = require('./inverseNadCvt');
+
+module.exports = function(pin, inverse, ct) {
+  var val = {
+    "x": Number.NaN,
+    "y": Number.NaN
+  };
+  if (isNaN(pin.x)) {
+    return val;
+  }
+  var tb = {
+    "x": pin.x,
+    "y": pin.y
+  };
+  tb.x -= ct.ll[0];
+  tb.y -= ct.ll[1];
+  tb.x = adjust_lon(tb.x - Math.PI) + Math.PI;
+  var t = nad_intr(tb, ct);
+  if (inverse) {
+    return inverseNadCvt(t, val, tb, ct);
+  }
+  else {
+    if (!isNaN(t.x)) {
+      val.x = pin.x - t.x;
+      val.y = pin.y + t.y;
+    }
+  }
+  return val;
+};

+ 67 - 0
js/proj4js/lib/common/nad_intr.js

@@ -0,0 +1,67 @@
+var nadInterBreakout = require("./nadInterBreakout");
+
+module.exports = function(pin, ct) {
+  // force computation by decreasing by 1e-7 to be as closed as possible
+  // from computation under C:C++ by leveraging rounding problems ...
+  var t = {
+    x: (pin.x - 1e-7) / ct.del[0],
+    y: (pin.y - 1e-7) / ct.del[1]
+  };
+  var indx = {
+    x: Math.floor(t.x),
+    y: Math.floor(t.y)
+  };
+  var frct = {
+    x: t.x - 1 * indx.x,
+    y: t.y - 1 * indx.y
+  };
+  var val = {
+    x: Number.NaN,
+    y: Number.NaN
+  };
+
+
+  var temp = nadInterBreakout(indx, frct, 'x', 0, ct);
+  if (temp) {
+    indx = temp[0];
+    frct = temp[1];
+  }
+  else {
+    return val;
+  }
+  temp = nadInterBreakout(indx, frct, 'y', 1, ct);
+  if (temp) {
+    indx = temp[0];
+    frct = temp[1];
+  }
+  else {
+    return val;
+  }
+  var inx = (indx.y * ct.lim[0]) + indx.x;
+  var f00 = {
+    x: ct.cvs[inx][0],
+    y: ct.cvs[inx][1]
+  };
+  inx++;
+  var f10 = {
+    x: ct.cvs[inx][0],
+    y: ct.cvs[inx][1]
+  };
+  inx += ct.lim[0];
+  var f11 = {
+    x: ct.cvs[inx][0],
+    y: ct.cvs[inx][1]
+  };
+  inx--;
+  var f01 = {
+    x: ct.cvs[inx][0],
+    y: ct.cvs[inx][1]
+  };
+  var m11 = frct.x * frct.y,
+    m10 = frct.x * (1 - frct.y),
+    m00 = (1 - frct.x) * (1 - frct.y),
+    m01 = (1 - frct.x) * frct.y;
+  val.x = (m00 * f00.x + m10 * f10.x + m01 * f01.x + m11 * f11.x);
+  val.y = (m00 * f00.y + m10 * f10.y + m01 * f01.y + m11 * f11.y);
+  return val;
+};

+ 16 - 0
js/proj4js/lib/common/phi2z.js

@@ -0,0 +1,16 @@
+var HALF_PI = Math.PI/2;
+module.exports = function(eccent, ts) {
+  var eccnth = 0.5 * eccent;
+  var con, dphi;
+  var phi = HALF_PI - 2 * Math.atan(ts);
+  for (var i = 0; i <= 15; i++) {
+    con = eccent * Math.sin(phi);
+    dphi = HALF_PI - 2 * Math.atan(ts * (Math.pow(((1 - con) / (1 + con)), eccnth))) - phi;
+    phi += dphi;
+    if (Math.abs(dphi) <= 0.0000000001) {
+      return phi;
+    }
+  }
+  //console.log("phi2z has NoConvergence");
+  return -9999;
+};

+ 24 - 0
js/proj4js/lib/common/pj_enfn.js

@@ -0,0 +1,24 @@
+var C00 = 1;
+var C02 = 0.25;
+var C04 = 0.046875;
+var C06 = 0.01953125;
+var C08 = 0.01068115234375;
+var C22 = 0.75;
+var C44 = 0.46875;
+var C46 = 0.01302083333333333333;
+var C48 = 0.00712076822916666666;
+var C66 = 0.36458333333333333333;
+var C68 = 0.00569661458333333333;
+var C88 = 0.3076171875;
+
+module.exports = function(es) {
+  var en = [];
+  en[0] = C00 - es * (C02 + es * (C04 + es * (C06 + es * C08)));
+  en[1] = es * (C22 - es * (C04 + es * (C06 + es * C08)));
+  var t = es * es;
+  en[2] = t * (C44 - es * (C46 + es * C48));
+  t *= es;
+  en[3] = t * (C66 - es * C68);
+  en[4] = t * es * C88;
+  return en;
+};

+ 20 - 0
js/proj4js/lib/common/pj_inv_mlfn.js

@@ -0,0 +1,20 @@
+var pj_mlfn = require("./pj_mlfn");
+var EPSLN = 1.0e-10;
+var MAX_ITER = 20;
+module.exports = function(arg, es, en) {
+  var k = 1 / (1 - es);
+  var phi = arg;
+  for (var i = MAX_ITER; i; --i) { /* rarely goes over 2 iterations */
+    var s = Math.sin(phi);
+    var t = 1 - es * s * s;
+    //t = this.pj_mlfn(phi, s, Math.cos(phi), en) - arg;
+    //phi -= t * (t * Math.sqrt(t)) * k;
+    t = (pj_mlfn(phi, s, Math.cos(phi), en) - arg) * (t * Math.sqrt(t)) * k;
+    phi -= t;
+    if (Math.abs(t) < EPSLN) {
+      return phi;
+    }
+  }
+  //..reportError("cass:pj_inv_mlfn: Convergence error");
+  return phi;
+};

+ 5 - 0
js/proj4js/lib/common/pj_mlfn.js

@@ -0,0 +1,5 @@
+module.exports = function(phi, sphi, cphi, en) {
+  cphi *= sphi;
+  sphi *= sphi;
+  return (en[0] * phi - cphi * (en[1] + sphi * (en[2] + sphi * (en[3] + sphi * en[4]))));
+};

+ 10 - 0
js/proj4js/lib/common/qsfnz.js

@@ -0,0 +1,10 @@
+module.exports = function(eccent, sinphi) {
+  var con;
+  if (eccent > 1.0e-7) {
+    con = eccent * sinphi;
+    return ((1 - eccent * eccent) * (sinphi / (1 - con * con) - (0.5 / eccent) * Math.log((1 - con) / (1 + con))));
+  }
+  else {
+    return (2 * sinphi);
+  }
+};

+ 3 - 0
js/proj4js/lib/common/sign.js

@@ -0,0 +1,3 @@
+module.exports = function(x) {
+  return x<0 ? -1 : 1;
+};

+ 5 - 0
js/proj4js/lib/common/sinh.js

@@ -0,0 +1,5 @@
+module.exports = function(x) {
+  var r = Math.exp(x);
+  r = (r - 1 / r) / 2;
+  return r;
+};

+ 3 - 0
js/proj4js/lib/common/srat.js

@@ -0,0 +1,3 @@
+module.exports = function(esinp, exp) {
+  return (Math.pow((1 - esinp) / (1 + esinp), exp));
+};

+ 5 - 0
js/proj4js/lib/common/tanh.js

@@ -0,0 +1,5 @@
+module.exports = function(x) {
+  var r = Math.exp(x);
+  r = (r - 1 / r) / (r + 1 / r);
+  return r;
+};

Some files were not shown because too many files changed in this diff