diff --git a/composer.json b/composer.json
index 508425afa59cf5e3a35ee5c0f202ec1316504fe3..bc2ffd3a045eb68d0b71a266663ef08f3f3881da 100644
--- a/composer.json
+++ b/composer.json
@@ -58,7 +58,6 @@
         "aferrandini/phpqrcode": "1.0.1",
         "jasig/phpCAS": "dev-master",
         "johnwohlers/sip2": "dev-master",
-        "leafo/scssphp": "*",
         "mobileesp/mdetect": "dev-master",
         "oyejorge/less.php": "*",
         "pear-pear.php.net/file_marc": "*",
diff --git a/composer.lock b/composer.lock
index 92e1c6dcb4b7016e4ef2df6660d81811f3bdbc9c..295507f51bcc4590be3ffd54d541fe6a90d4ad98 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "05ecbbb2c36562790cee458be5c5b368",
+    "hash": "231b305c8c70b43d87f2685e50469688",
     "packages": [
         {
             "name": "aferrandini/phpqrcode",
@@ -117,52 +117,6 @@
                 ]
             }
         },
-        {
-            "name": "leafo/scssphp",
-            "version": "0.0.10",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/leafo/scssphp.git",
-                "reference": "558357feceb9b932a192966945904414dc372e4d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/leafo/scssphp/zipball/558357feceb9b932a192966945904414dc372e4d",
-                "reference": "558357feceb9b932a192966945904414dc372e4d",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.2.0"
-            },
-            "require-dev": {
-                "php": ">=5.3.0",
-                "phpunit/phpunit": "3.7.*"
-            },
-            "bin": [
-                "pscss"
-            ],
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "scss.inc.php"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT",
-                "GPL-3.0"
-            ],
-            "authors": [
-                {
-                    "name": "Leaf Corcoran",
-                    "email": "leafot@gmail.com",
-                    "homepage": "http://leafo.net"
-                }
-            ],
-            "description": "scssphp is a compiler for SCSS written in PHP.",
-            "homepage": "http://leafo.net/scssphp/",
-            "time": "2014-04-15 02:25:09"
-        },
         {
             "name": "mobileesp/mdetect",
             "version": "dev-master",
@@ -318,17 +272,17 @@
         },
         {
             "name": "pear-pear.php.net/PEAR",
-            "version": "1.9.4",
+            "version": "1.9.5",
             "dist": {
                 "type": "file",
-                "url": "http://pear.php.net/get/PEAR-1.9.4.tgz",
+                "url": "http://pear.php.net/get/PEAR-1.9.5.tgz",
                 "reference": null,
                 "shasum": null
             },
             "require": {
                 "ext-pcre": "*",
                 "ext-xml": "*",
-                "pear-pear.php.net/archive_tar": ">=1.3.7.0",
+                "pear-pear.php.net/archive_tar": ">=1.3.11.0",
                 "pear-pear.php.net/console_getopt": ">=1.2.0.0",
                 "pear-pear.php.net/structures_graph": ">=1.0.2.0",
                 "pear-pear.php.net/xml_util": ">=1.2.0.0",
@@ -339,7 +293,7 @@
                 "pear-pear.php.net/pear_frontend_web": "<=0.4.0.0"
             },
             "replace": {
-                "pear-pear/pear": "== 1.9.4.0"
+                "pear-pear/pear": "== 1.9.5.0"
             },
             "type": "pear-library",
             "autoload": {
@@ -496,17 +450,17 @@
         },
         {
             "name": "symfony/yaml",
-            "version": "v2.5.0",
+            "version": "v2.5.2",
             "target-dir": "Symfony/Component/Yaml",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Yaml.git",
-                "reference": "b4b09c68ec2f2727574544ef0173684281a5033c"
+                "reference": "f868ecdbcc0276b6158dfbf08b9e98ce07f014e1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Yaml/zipball/b4b09c68ec2f2727574544ef0173684281a5033c",
-                "reference": "b4b09c68ec2f2727574544ef0173684281a5033c",
+                "url": "https://api.github.com/repos/symfony/Yaml/zipball/f868ecdbcc0276b6158dfbf08b9e98ce07f014e1",
+                "reference": "f868ecdbcc0276b6158dfbf08b9e98ce07f014e1",
                 "shasum": ""
             },
             "require": {
@@ -541,7 +495,7 @@
             ],
             "description": "Symfony Yaml Component",
             "homepage": "http://symfony.com",
-            "time": "2014-05-16 14:25:18"
+            "time": "2014-07-09 09:05:48"
         },
         {
             "name": "zendframework/zendframework",
@@ -869,6 +823,7 @@
         "mobileesp/mdetect": 20,
         "serialssolutions/summon": 20
     },
+    "prefer-stable": false,
     "platform": [
 
     ],
diff --git a/module/VuFindTheme/src/VuFindTheme/Initializer.php b/module/VuFindTheme/src/VuFindTheme/Initializer.php
index 6beffc729dfee219aea120f21a13e853b468c8b6..94058e1d5587374a56ee6d08bb4a1435421e97a7 100644
--- a/module/VuFindTheme/src/VuFindTheme/Initializer.php
+++ b/module/VuFindTheme/src/VuFindTheme/Initializer.php
@@ -328,15 +328,11 @@ class Initializer
         }
 
         $lessActive = false;
-        $scssActive = false;
         // Find LESS activity
         foreach ($themes as $key=>$currentThemeInfo) {
             if (isset($currentThemeInfo['less']['active'])) {
                 $lessActive = $currentThemeInfo['less']['active'];
             }
-            if (isset($currentThemeInfo['scss']['active'])) {
-                $scssActive = $currentThemeInfo['scss']['active'];
-            }
         }
 
         // Apply the loaded theme settings in reverse for proper inheritance:
@@ -352,9 +348,6 @@ class Initializer
             if ($lessActive && isset($currentThemeInfo['less'])) {
                 $resources->addLessCss($currentThemeInfo['less']);
             }
-            if ($scssActive && isset($currentThemeInfo['scss'])) {
-                $resources->addScssCss($currentThemeInfo['scss']);
-            }
             if (isset($currentThemeInfo['css'])) {
                 $resources->addCss($currentThemeInfo['css']);
             }
diff --git a/module/VuFindTheme/src/VuFindTheme/ResourceContainer.php b/module/VuFindTheme/src/VuFindTheme/ResourceContainer.php
index 331d028627859347c5ed0ddd264648343e5bb5ea..96d23892c4688f5dda94140c764e120e5c20922d 100644
--- a/module/VuFindTheme/src/VuFindTheme/ResourceContainer.php
+++ b/module/VuFindTheme/src/VuFindTheme/ResourceContainer.php
@@ -45,13 +45,6 @@ class ResourceContainer
      */
     protected $less = array();
 
-    /**
-     * scss CSS files
-     *
-     * @var array
-     */
-    protected $scss = array();
-
     /**
      * CSS files
      *
@@ -106,25 +99,6 @@ class ResourceContainer
         }
     }
 
-    /**
-     * Add a scss CSS file.
-     *
-     * @param array|string $scss scss CSS file (or array of scss CSS files) to add
-     *
-     * @return void
-     */
-    public function addScssCss($scss)
-    {
-        if (!is_array($scss) && !is_a($scss, 'Traversable')) {
-            $scss = array($scss);
-        }
-        unset($scss['active']);
-        foreach ($scss as $index=>$current) {
-            $this->scss[$index] = $current;
-            $this->removeCSS($current);
-        }
-    }
-
     /**
      * Add a CSS file.
      *
@@ -172,15 +146,6 @@ class ResourceContainer
     {
         return array_unique($this->less);
     }
-    /**
-     * Get SCSS CSS files.
-     *
-     * @return array
-     */
-    public function getScssCss()
-    {
-        return array_unique($this->scss);
-    }
 
     /**
      * Get CSS files.
@@ -277,18 +242,16 @@ class ResourceContainer
      */
     protected function dynamicallyParsed($file)
     {
-        if (empty($this->less) && empty($this->scss)) {
+        if (empty($this->less)) {
             return false;
         }
         list($fileName, ) = explode('.', $file);
         $lessFile = $fileName . '.less';
-        $scssFile = $fileName . '.scss';
-        return in_array($lessFile, $this->less, true)
-            || in_array($scssFile, $this->scss, true);
+        return in_array($lessFile, $this->less, true);
     }
 
     /**
-     * Check if a CSS file is being dynamically compiled in SCSS
+     * Remove a CSS file if it matches another file's name
      *
      * @param string $file Filename to remove
      *
diff --git a/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadLink.php b/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadLink.php
index 162964e0f980bb49d188473350a0e8ce6e94e554..aefd51476d16ba71eaaef81d23064e8b311dd7f1 100644
--- a/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadLink.php
+++ b/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadLink.php
@@ -122,34 +122,4 @@ class HeadLink extends \Zend\View\Helper\HeadLink
             );
         }
     }
-
-    /**
-     * Compile a scss file to css and add to css folder
-     *
-     * @param string $file path to scss file
-     *
-     * @return void
-     */
-    public function addScssStylesheet($file)
-    {
-        $themeParents = array_keys($this->themeInfo->getThemeInfo());
-        $currentTheme = $themeParents[0];
-        $home = APPLICATION_PATH . "/themes/$currentTheme/";
-        list($fileName, ) = explode('.', $file);
-        $outputFile = $home . 'css/scss/' . $fileName . '.css';
-        $urlHelper = $this->getView()->plugin('url');
-
-        $scss = new \scssc();
-        $paths = array();
-        foreach ($themeParents as $theme) {
-            $paths[] = APPLICATION_PATH . '/themes/' . $theme . '/scss/';
-        }
-        $scss->setImportPaths($paths);
-        $scss->setFormatter('scss_formatter_compressed');
-        $css = $scss->compile('@import "' . $file . '"');
-        file_put_contents($outputFile, $css);
-        $this->prependStylesheet(
-            $urlHelper('home') . "themes/{$currentTheme}/css/scss/{$fileName}.css"
-        );
-    }
 }
diff --git a/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadThemeResources.php b/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadThemeResources.php
index 3500a2fa4c62b3fb1847ac1b35fdd5bcaf7b33eb..e38fc81a35f1bfe69f2e9129c7eaea583b212fcb 100644
--- a/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadThemeResources.php
+++ b/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadThemeResources.php
@@ -94,12 +94,6 @@ class HeadThemeResources extends \Zend\View\Helper\AbstractHelper
             $headLink()->addLessStylesheet($current);
         }
 
-        // Compile and load SASS (make sure we prepend them in the appropriate order
-        // theme resources should load before extras added by individual templates):
-        foreach (array_reverse($this->container->getScssCss()) as $current) {
-            $headLink()->addScssStylesheet($current);
-        }
-
         // Load Javascript (same ordering considerations as CSS, above):
         $headScript = $this->getView()->plugin('headscript');
         foreach (array_reverse($this->container->getJs()) as $current) {
diff --git a/themes/bootprint3/scss/bootprint.scss b/themes/bootprint3/scss/bootprint.scss
deleted file mode 100644
index 4a7137b791252b5a3f7c41ee28e82aa2258944b8..0000000000000000000000000000000000000000
--- a/themes/bootprint3/scss/bootprint.scss
+++ /dev/null
@@ -1,324 +0,0 @@
-@import "variables";
-
-/* --- Bootstrap MODS ---*/
-body {
-  background:$brand-primary;
-  font-size:13px;
-  & a,.btn-link {color:#06C}
-  & a:hover,.btn-link:hover {color:#09F}
-  @media (max-width: 768px) {
-    padding:6px;
-    header {
-      margin-top:0;
-    }
-    .label {
-      font-size:85%;
-    }
-  }
-}
-@media (min-width: 768px) {
-  .badge {
-    font-size:85%;
-    margin-top:1px;
-  }
-  .label {
-    padding-top:.3em;
-  }
-}
-.btn,.form-control {
-  font-size:13px;
-  height:auto;
-  padding:4px 6px 3px;
-}
-.btn:not(.btn-danger):not(.btn-info):not(.btn-link):not(.btn-primary):not(.btn-success):not(.btn-warning) {
-  background:$gray-lighter;
-  background-image:linear-gradient(#FFF, $nav-tabs-border-color);
-  border:1px solid $gray-light;
-  color:$gray-darker;
-  text-shadow:0 1px 0 #FFF;
-  &:hover {
-    background:$link-color;
-    border:1px solid $link-color;
-    color:#FFF;
-    text-shadow:none;
-  }
-}
-.btn-danger, .btn-danger:hover  {border-color:darken($brand-danger,  12%);font-weight:bold;}
-.btn-info,   .btn-info:hover    {border-color:darken($brand-info,    12%);font-weight:bold;}
-.btn-primary,.btn-primary:hover {@include button-variant(#FFF, $brand-primary, $brand-primary);font-weight:bold;}
-.btn-success,.btn-success:hover {border-color:darken($brand-success, 12%);font-weight:bold;}
-.btn-warning,.btn-warning:hover {border-color:darken($brand-warning, 12%);font-weight:bold;}
-h2 {margin:0 8px 8px}
-input[type=checkbox] {
-  margin-top:2px;
-  margin:0 auto;
-  padding:0 2px;
-}
-.nav > li > a {
-  padding:5px 10px;
-}
-.nav-pills {display:table;margin:0 auto}
-.pagination {
-  display:table;
-  margin:18px auto;
-  & > li {
-    & > a,& > span {
-      padding:4px 12px 3px 12px;
-    }
-  }
-  & > .active {
-    & > a, & > span, & > a:hover, & > span:hover, & > a:focus, & > span:focus {
-      background:$brand-primary;
-      border-color:$brand-primary;
-    }
-  }
-}
-.panel-heading {
-  padding:0;
-  a {
-    cursor:pointer;
-    display:inline-block;
-    padding:6px;
-    width:100%;
-  }
-}
-.row {
-  &:not(.top-row) {
-    padding:6px 4px;
-    margin:0 -4px;
-  }
-  &.result {
-    &:nth-child(even) {
-      background:$gray-lighter;
-    }
-    &:last-child {
-      margin-bottom:1em;
-    }
-  }
-}
-.tab-content {
-  padding: 6px 8px;
-  border: 1px solid $nav-tabs-border-color;
-  border-top: 0;
-}
-
-/* --- Layout --- */
-.container {
-  background:#FFF;
-  padding:0;
-}
-header {
-  margin-top:18px;
-  .container {margin:0 auto}
-  .fa.fa-bars {font-size:21px}
-  .navbar {
-    border-radius:5px 5px 0 0;
-    padding:0 10px;
-    #searchForm {display:none !important}
-    .navbar-brand {
-      background-image:url('../../images/vufind_logo.png');
-      color:transparent;
-      height:65px;
-      margin-top:5px;
-      width:170px;
-      &:hover,&:active,&:focus {
-        color:transparent;
-      }
-    }
-    .navbar-nav > li > a {
-      padding:12px 6px;
-      @media (max-width: 768px) {
-        padding:8px 24px;
-      }
-    }
-    .navbar-right {
-      margin-top:12px;
-      @media (max-width: 768px) {
-        margin:0;
-      }
-    }
-  }
-  .searchbox {
-    display:block !important;
-    margin:0;
-  }
-  @media (max-width: 767px) {
-    #header-collapse .navbar-right li {
-      text-align:right;
-    }
-    #searchForm_type {
-      margin-top:2px;
-      margin-bottom:2px;
-    }
-  }
-  .breadcrumb {
-    border:1px solid #CCC;
-    border-radius:0;
-    border-width:1px 0;
-    font-size:12px;
-    margin:6px 0 2px;
-  }
-}
-[name=searchForm] {
-  margin:6px 8px 8px;
-  padding:0;
-  & .btn-primary,& .form-control {
-    font-size:14px;
-    height:32px;
-    padding:5px 8px;
-  }
-  .search-query {
-    @media (min-width: 768px) {
-      width:400px;
-    }
-  }
-  .nav-tabs {
-    border-bottom:0;
-    li {
-      a {
-        margin-bottom:-1px;
-        border-bottom:0;
-        padding-bottom:6px;
-        &:hover {
-          background:none;
-          border-color:transparent;
-          text-decoration:underline;
-        }
-      }
-      &.active a,&.active a:hover {
-        background:#FFF;
-        border-color:$brand-primary;
-        border-bottom:0;
-        text-decoration:none;
-        z-index:5;
-      }
-    }
-  }
-}
-.main {
-  .container {
-    padding:0 4px 18px;
-  }
-}
-footer {
-  margin-bottom:36px;
-  .container {
-    border-radius:0 0 5px 5px;
-    border-top:1px solid $nav-tabs-border-color;
-    padding-top:18px;
-  }
-  hr {display:none}
-  p {margin:0}
-  ul {padding-left:30px}
-}
-
-/* --- Record --- */
-#hierarchyRecord {background:#FFF}
-
-/* --- Search --- */
-.bulkActionButtons {margin-bottom:6px}
-.left {text-align:center}
-.result {
-  .savedLists {
-    margin:0 0 4px 0;
-    padding:4px 0 4px 6px;
-    ul {padding-left:18px;}
-  }
-}
-
-/* --- Search Home --- */
-.searchHomeContent {
-  margin:1em auto;
-  width:90%;
-}
-
-/* --- Advanced Search --- */
-#advSearchForm .search {margin:0}
-
-/* --- Sidebar --- */
-$active-orange: #FF9500;
-.sidebar {
-  .list-group {
-    margin-bottom:5px;
-    label.list-group-item {
-      padding-left:26px;
-      input[type=checkbox] {
-        margin-top:2px;
-      }
-    }
-  }
-  .list-group-item {
-    padding:7px 10px 6px;
-    &.active {
-      background:$active-orange;
-      border-color:$active-orange;
-      color:#FFF;
-      &:hover {background:$active-orange;border-color:$active-orange;}
-      .badge {color:$active-orange;}
-    }
-  }
-  & .slider-container {
-    margin:4px auto 10px;
-    width:95%;
-    .slider-handle {
-      background:#619144;
-      opacity:1;
-    }
-  }
-}
-.sidebar .list-group-item,.top-row {
-  .badge a {
-    color:#FFF;
-    &:hover {color:$brand-danger}
-  }
-}
-
-/* --- Captcha --- */
-#custom_recaptcha_widget {
-  display:table;
-  embed { display:none; }
-  #recaptcha_image {
-    border:1px solid #000;
-    padding:6px;
-    margin:1em 0;
-  }
-  #recaptcha_response_field { margin:0 .5em; }
-  & > div > a {
-    display:inline-block;
-    float:left;
-    margin:5px 10px 5px 0;
-  }
-}
-
-/* --- Random Items (results view) --- */
-ul.random {
-  list-style: none;
-  padding: 0;
-  margin: 0px;
-  text-align:justified;
-  li {
-    padding-bottom:10px;
-    img {
-      margin: 0 auto 1em auto;
-    }
-  }
-  &.image, &.mixed {
-    text-align: center;
-  }
-  &.image li img {
-    margin: 0 auto;
-  }
-}
-
-/* --- Twitter Typeahead --- */
-.twitter-typeahead {
-  background: #FFF;
-  padding: 7px 0 10px;
-  border-radius: $border-radius-base;
-}
-.tt-dropdown-menu {
-  margin:2px;
-}
-
-/* --- Browse --- */
-[id^=list].list-group .col-sm-9 {margin:0}
\ No newline at end of file
diff --git a/themes/bootprint3/scss/compiled.scss b/themes/bootprint3/scss/compiled.scss
deleted file mode 100644
index 803030780a29793f615391cc8a44b2d277d36fc6..0000000000000000000000000000000000000000
--- a/themes/bootprint3/scss/compiled.scss
+++ /dev/null
@@ -1,2 +0,0 @@
-@import "bootstrap";
-@import "bootprint";
\ No newline at end of file
diff --git a/themes/bootprint3/scss/icons.scss b/themes/bootprint3/scss/icons.scss
deleted file mode 100644
index 5cef4fc2dadc15ee0648f52cdb2a69bfee463ef2..0000000000000000000000000000000000000000
--- a/themes/bootprint3/scss/icons.scss
+++ /dev/null
@@ -1,64 +0,0 @@
-.bp-icon {
-  background-position:center center;
-  background-repeat:no-repeat;
-  color:transparent;
-  content:'';
-  display:inline-block;
-  height:16px;
-  margin:0;
-  padding:0;
-  text-shadow:none;
-  vertical-align:text-bottom;
-  width:16px;
-}
-i.fa-archive {background-image:url('../../images/icons/package.png'); @extend .bp-icon;}
-i.fa-asterisk {background-image:url('../../images/icons/list.png'); @extend .bp-icon;}
-i.fa-bell {background-image:url('../../images/icons/bell.png'); @extend .bp-icon;}
-i.fa-book {background-image:url('../../images/icons/book.png'); @extend .bp-icon;}
-i.fa-bookbag-add {background-image:url('../../images/icons/bookbag_add.png'); @extend .bp-icon;}
-i.fa-bookbag-delete {background-image:url('../../images/icons/bookbag_delete.png'); @extend .bp-icon;}
-i.fa-bookbag-empty {background-image:url('../../images/icons/bookbag_empty.png'); @extend .bp-icon;}
-i.fa-bookmark {background-image:url('../../images/icons/bookmark_add.png'); @extend .bp-icon;}
-i.fa-cancel-all-holds {background-image:url('../../images/icons/holdCancelAll.png'); @extend .bp-icon;}
-i.fa-cancel-all-storage-retrieval-requests {background-image:url('../../images/icons/holdCancelAll.png'); @extend .bp-icon;}
-i.fa-cancel-holds {background-image:url('../../images/icons/holdCancel.png'); @extend .bp-icon;}
-i.fa-cancel-storage-retrieval-requests {background-image:url('../../images/icons/holdCancel.png'); @extend .bp-icon;}
-i.fa-edit {background-image:url('../../images/icons/edit.png'); @extend .bp-icon;}
-i.fa-email,
-i.fa-envelope,
-i.fa-envelope-alt {background-image:url('../../images/icons/email.png'); @extend .bp-icon;}
-i.fa-exchange {background-image:url('../../images/icons/arrow_refresh.png'); @extend .bp-icon;}
-i.fa-external-link {background-image:url('../../images/icons/link_go.png'); @extend .bp-icon;}
-i.fa-flag {@extend .bp-icon;background-image:url('../../images/icons/flag_red.png'); @extend .bp-icon;}
-i.fa-grid {background-image:url('../../images/icons/view_grid.png'); @extend .bp-icon;}
-i.fa-heart {background-image:url('../../images/icons/heart.png'); @extend .bp-icon;}
-i.fa-home {background-image:url('../../images/icons/house.png'); @extend .bp-icon;}
-i.fa-inbox {background-image:url('../../images/icons/box.png'); @extend .bp-icon;}
-i.fa-leaf,.fa-sitemap {background-image:url('../../images/icons/treeCurrent.png'); @extend .bp-icon;}
-i.fa-list {background-image:url('../../images/icons/view_list.png'); @extend .bp-icon;}
-i.fa-list-alt,i.fa-export {background-image:url('../../images/icons/application_add.png'); @extend .bp-icon;}
-i.fa-lock {background-image:url('../../images/icons/lock.png'); @extend .bp-icon;}
-i.fa-minus-sign {background-image:url('../../images/icons/delete.png'); @extend .bp-icon;}
-i.fa-ok {background-image:url('../../images/icons/tick.png'); @extend .bp-icon;}
-i.fa-phone {background-image:url('../../images/icons/phone.png'); @extend .bp-icon;}
-i.fa-plus {background-image:url('../../images/icons/add.png'); @extend .bp-icon;}
-i.fa-plus-sign {background-image:url('../../images/icons/add.png'); @extend .bp-icon;}
-i.fa-print {background-image:url('../../images/icons/printer.png'); @extend .bp-icon;}
-i.fa-qrcode {background-image:url('../../images/icons/qrcode.png'); @extend .bp-icon;}
-i.fa-remove {background-image:url('../../images/icons/delete.png'); @extend .bp-icon;}
-i.fa-renew {background-image:url('../../images/icons/renew.png'); @extend .bp-icon;}
-i.fa-renew-all {background-image:url('../../images/icons/renewAll.png'); @extend .bp-icon;}
-i.fa-report {background-image:url('../../images/icons/report.png'); @extend .bp-icon;}
-i.fa-rss {background-image:url('../../images/icons/feed.png'); @extend .bp-icon;}
-i.fa-search {background-image:url('../../images/icons/magnifier.png'); @extend .bp-icon;}
-i.fa-shopping-cart {background-image:url('../../images/icons/cart.png'); @extend .bp-icon;}
-i.fa-sign-in {background-image:url('../../images/icons/door_in.png'); @extend .bp-icon;}
-i.fa-sign-out {background-image:url('../../images/icons/door_out.png'); @extend .bp-icon;}
-i.fa-spinner {background-image:url('../../images/icons/ajax_loading.gif'); @extend .bp-icon;}
-i.fa-star {background-image:url('../../images/icons/star.png'); @extend .bp-icon;}
-i.fa-suitcase {background-image:url('../../images/icons/bookbag.png'); @extend .bp-icon;}
-i.fa-trash-o {background-image:url('../../images/icons/bin.png'); @extend .bp-icon;}
-i.fa-tree {background-image:url('../../images/icons/treeCurrent.png'); @extend .bp-icon;}
-i.fa-tree-muted {background-image:url('../../images/icons/treeMuted.png'); @extend .bp-icon;}
-i.fa-usd {background-image:url('../../images/icons/money_dollar.png'); @extend .bp-icon;}
-i.fa-user {background-image:url('../../images/icons/user.png'); @extend .bp-icon;}
diff --git a/themes/bootprint3/scss/variables.scss b/themes/bootprint3/scss/variables.scss
deleted file mode 100644
index ba338cbcb2cdd6695556e23559181c04b35caad2..0000000000000000000000000000000000000000
--- a/themes/bootprint3/scss/variables.scss
+++ /dev/null
@@ -1,42 +0,0 @@
-$brand-primary: #619144;
-
-$font-size-base: 13px;
-
-$padding-base-vertical   : 3px;
-$padding-base-horizontal : 5px;
-$padding-large-vertical  : 8px;
-$padding-large-horizontal: 5px;
-$padding-small-vertical  : 1px;
-$padding-small-horizontal: 2px;
-$padding-xs-horizontal   : 1px;
-
-$border-radius-base : 3px;
-$border-radius-large: 5px;
-$border-radius-small: 2px;
-
-$dropdown-link-hover-bg : $brand-primary;
-$dropdown-link-active-bg: $brand-primary;
-
-$input-border-focus: $brand-primary;
-
-$legend-border-color: $gray-light;
-
-$grid-gutter-width: 14px;
-
-$container-desktop      : 952px;
-$container-large-desktop: 952px;
-
-$navbar-height       : 65px;
-$navbar-margin-bottom: 0px;
-$nav-link-padding    : 5px;
-
-$pagination-active-bg    : $brand-info;
-$pagination-active-border: $brand-info;
-
-$panel-body-padding: 5px;
-
-$breadcrumb-padding-vertical  : 6px;
-$breadcrumb-padding-horizontal: 20px;
-$breadcrumb-bg                : #FFF;
-$breadcrumb-color             : $gray-light;
-$breadcrumb-active-color      : $gray-dark;
\ No newline at end of file
diff --git a/themes/bootstrap3/scss/a11y.scss b/themes/bootstrap3/scss/a11y.scss
deleted file mode 100644
index 4568846193bb610100ab23f9bb339b0e31804bb2..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/a11y.scss
+++ /dev/null
@@ -1,144 +0,0 @@
-/* mixins */
-
-.sr-only
-{
-  clip: rect(1px, 1px, 1px, 1px);
-  position: absolute;
-  /* reset */
-  width: auto;
-  height: auto;
-  margin: 0;
-  padding: 0;
-  overflow: hidden;
-  border:0;
-}
-
-.sr-only:focus {
-  background-color: $navbar-default-link-hover-bg;//watch out, transparent by default!
-  border-radius: $navbar-border-radius;
-  clip: auto;
-  color: $navbar-default-link-hover-color;
-  display: block;
-  font-size: $font-size-base;
-  height: $navbar-height;
-  line-height: $line-height-computed;
-  padding: $navbar-padding-vertical $navbar-padding-horizontal;
-  position: absolute;
-  left: 5px;
-  top: 5px;
-  text-decoration: none;
-  text-transform: none;
-  width: auto;
-  z-index: 100000; /* Above WP toolbar */
-}
-
-/* this mixins give output generate duplicate CSS code
- * alternatively you will to have to rewrite the original mixin in buttons.less
- */
-@mixin button-variant($color, $background, $border) {
-  color: $color;
-  background-color: $background;
-  border-color: $border;
-
-  &:hover,
-  &:focus,
-  &:active,
-  &.active {
-    color: $background;
-    background-color: $color;
-    border-color: darken($border, 12%);
-    .badge {
-      color: $color;
-      background-color: $background;
-    }
-  }
-  .open & { &.dropdown-toggle {
-    color: $background;
-    background-color: $color;
-        border-color: darken($border, 12%);
-  } }
-  &:active,
-  &.active {
-    background-image: none;
-  }
-  .open & { &.dropdown-toggle {
-    background-image: none;
-  } }
-  &.disabled,
-  &[disabled],
-  fieldset[disabled] & {
-    &,
-    &:hover,
-    &:focus,
-    &:active,
-    &.active {
-      background-color: $background;
-          border-color: $border;
-    }
-  }
-
-  .badge {
-    color: $background;
-    background-color: $color;
-  }
-}
-
-// Navbar
-// -------------------------
-
-$navbar-default-color:             #fff;
-$navbar-default-bg:                #132531;
-$navbar-default-border:            darken($navbar-default-bg, 6.5%);
-
-// Navbar links
-$navbar-default-link-color:                #fff;
-$navbar-default-link-hover-color:          #132531;
-$navbar-default-link-hover-bg:             #fff;
-$navbar-default-link-active-color:         #132531;
-$navbar-default-link-active-bg:            #fff;
-$navbar-default-link-disabled-color:       #fff;
-$navbar-default-link-disabled-bg:          #068139;
-
-// Navbar brand label
-$navbar-default-brand-color:               $navbar-default-link-color;
-$navbar-default-brand-hover-color:         #068139; //contrast 3.15, so min 19px;
-.navbar-brand {
-    font-size: 20px;
-}
-$navbar-default-brand-hover-bg:            transparent;
-
-// Navbar toggle
-$navbar-default-toggle-hover-bg:           #ddd;
-$navbar-default-toggle-icon-bar-bg:        #888;
-$navbar-default-toggle-border-color:       #ddd;
-
-$brand-primary:         #265680;
-$brand-success:         #028302;
-$brand-info:            #1C5F74;
-$brand-warning:         #A56100;
-$brand-danger:          #A41915;
-
-/* buttons */
-$btn-primary-color:              #fff;
-$btn-primary-bg:                 $brand-primary;
-$btn-primary-border:             #fff;
-
-$btn-success-color:              #fff;
-$btn-success-bg:                 $brand-success;
-$btn-success-border:             #fff;
-
-$btn-info-color:              #fff;
-$btn-info-bg:                 $brand-info;
-$btn-info-border:             #fff;
-
-$btn-warning-color:              #fff;
-$btn-warning-bg:                 $brand-warning;
-$btn-warning-border:             #fff;
-
-$btn-danger-color:              #fff;
-$btn-danger-bg:                 $brand-danger;
-$btn-danger-border:             #fff;
-
-
-/* link on white background */
-$link-color:            #12538B;
diff --git a/themes/bootstrap3/scss/bootstrap.scss b/themes/bootstrap3/scss/bootstrap.scss
deleted file mode 100644
index 6dca8f80f1d328dedd8f069ed4091f32088f8744..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap.scss
+++ /dev/null
@@ -1,131 +0,0 @@
-@import "bootstrap/bootstrap";
-
-.btn {@extend .btn-default;}
-.fa-grid:before {content:"\f00a"}
-.group [class^=col-] {padding-left:0}
-.highlight{@extend mark;}
-.icon-bar {background-color:#888}
-label.list-group-item {border-radius:0;font-weight:normal;margin-top:0;padding-left:35px}
-.list-group-item.title {font-weight:bold}
-#modal .modal-body > h2:first-child {display:none}
-.tab-content {padding:4px}
-
-/* --- Autocomplete --- */
-.twitter-typeahead {
-  background: #FFF;
-  padding: 8px 0 10px;
-  border-radius: $border-radius-base;
-  .tt-hint {display:none}
-}
-.tt-dropdown-menu {
-  @extend .list-group;
-  margin-top:10px;
-}
-.tt-suggestion {
-  @extend .list-group-item;
-  &.tt-cursor {
-    background-color:$brand-primary;
-    color:#FFF;
-  }
-  p {margin:0}
-}
-
-/* --- Badges - blend the links in --- */
-.badge a {color:#FFF}
-
-/* --- Browse --- */
-.browse.list-group .list-group-item {
-  word-wrap:break-word;
-  &.view-record {
-    border-top:0;
-    font-size:85%;
-    padding:2px 4px;
-    text-align:right;
-  }
-}
-
-/* --- Search --- */
-.result {
-  a.title {font-weight:bold}
-  .left img {max-width:100%}
-  @media (max-width:767px) {
-    .left {padding:0}
-    a {text-decoration:underline}
-  }
-  @media (max-width:400px) {
-    .left {width:40%}
-    .middle {width:60%}
-    .right {display:none}
-  }
-}
-
-/* --- Sidebar rounded corners --- */
-.sidebar {
-  & .title.collapsed {
-    cursor:pointer;
-    &.collapsed {
-      border-radius:$border-radius-base;
-    }
-  }
-  .collapse,.collapsing {
-    .list-group-item {
-      border-top-left-radius:0px;
-      border-top-right-radius:0px;
-      &[id^=more] {
-        border-bottom-left-radius:$border-radius-base;
-        border-bottom-right-radius:$border-radius-base;
-      }
-    }
-  }
-}
-
-/* --- Slider accessibility --- */
-.slider {
-  .slider-track {
-    background:$gray-light;
-    box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.4);
-    .slider-handle {
-      background:$brand-primary;
-      background-image:none;
-      border:1px solid $brand-primary;
-      box-shadow:none;
-      opacity:.8;
-      &:hover,&:active,&:focus {
-        opacity:1;
-        background:#FFF;
-        border-color:$gray-light;
-      }
-      &:active,&:focus {
-        border-color:$brand-primary;
-      }
-    }
-    .slider-selection {
-      background:$gray-lighter;
-      box-shadow:inset 0 -1px 0 rgba(0,0,0,0.3);
-    }
-  }
-}
-
-/* --- Table wrapping to prevent horizontal overflow --- */
-.table {word-wrap:break-word;table-layout:fixed}
-
-.fa-grid:before {content: "\f00a"}
-.group [class^=col-] {padding-left:0}
-.icon-bar {background-color:#888}
-label.list-group-item {border-radius:0;font-weight:normal;margin-top:0;padding-left:35px}
-.list-group-item.title {font-weight:bold}
-#modal .modal-body > h2:first-child {display:none}
-/* --- Autocomplete --- */
-.twitter-typeahead .tt-hint {display:none}
-.tt-dropdown-menu {
-  @extend .list-group;
-  margin-top:10px;
-}
-.tt-suggestion {
-  @extend .list-group-item;
-  &.tt-cursor {
-    background-color:$brand-primary;
-    color:#FFF;
-  }
-  p {margin:0}
-}
\ No newline at end of file
diff --git a/themes/bootstrap3/scss/bootstrap/_alerts.scss b/themes/bootstrap3/scss/bootstrap/_alerts.scss
deleted file mode 100644
index 4685ac3a9d4354248baada7a258a0cffc5a4237b..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_alerts.scss
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Alerts
-// --------------------------------------------------
-
-
-// Base styles
-// -------------------------
-
-.alert {
-  padding: $alert-padding;
-  margin-bottom: $line-height-computed;
-  border: 1px solid transparent;
-  border-radius: $alert-border-radius;
-
-  // Headings for larger alerts
-  h4 {
-    margin-top: 0;
-    // Specified for the h4 to prevent conflicts of changing $headings-color
-    color: inherit;
-  }
-  // Provide class for links that match alerts
-  .alert-link {
-    font-weight: $alert-link-font-weight;
-  }
-
-  // Improve alignment and spacing of inner content
-  > p,
-  > ul {
-    margin-bottom: 0;
-  }
-  > p + p {
-    margin-top: 5px;
-  }
-}
-
-// Dismissable alerts
-//
-// Expand the right padding and account for the close button's positioning.
-
-.alert-dismissable {
- padding-right: ($alert-padding + 20);
-
-  // Adjust close link position
-  .close {
-    position: relative;
-    top: -2px;
-    right: -21px;
-    color: inherit;
-  }
-}
-
-// Alternate styles
-//
-// Generate contextual modifier classes for colorizing the alert.
-
-.alert-success {
-  @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text);
-}
-.alert-info {
-  @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text);
-}
-.alert-warning {
-  @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text);
-}
-.alert-danger {
-  @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_badges.scss b/themes/bootstrap3/scss/bootstrap/_badges.scss
deleted file mode 100644
index 4014a80bd4e50de0f1df578cdaf527018cfe3917..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_badges.scss
+++ /dev/null
@@ -1,55 +0,0 @@
-//
-// Badges
-// --------------------------------------------------
-
-
-// Base classes
-.badge {
-  display: inline-block;
-  min-width: 10px;
-  padding: 3px 7px;
-  font-size: $font-size-small;
-  font-weight: $badge-font-weight;
-  color: $badge-color;
-  line-height: $badge-line-height;
-  vertical-align: baseline;
-  white-space: nowrap;
-  text-align: center;
-  background-color: $badge-bg;
-  border-radius: $badge-border-radius;
-
-  // Empty badges collapse automatically (not available in IE8)
-  &:empty {
-    display: none;
-  }
-
-  // Quick fix for badges in buttons
-  .btn & {
-    position: relative;
-    top: -1px;
-  }
-  .btn-xs & {
-    top: 0;
-    padding: 1px 5px;
-  }
-}
-
-// Hover state, but only for links
-a.badge {
-  &:hover,
-  &:focus {
-    color: $badge-link-hover-color;
-    text-decoration: none;
-    cursor: pointer;
-  }
-}
-
-// Account for counters in navs
-a.list-group-item.active > .badge,
-.nav-pills > .active > a > .badge {
-  color: $badge-active-color;
-  background-color: $badge-active-bg;
-}
-.nav-pills > li > a > .badge {
-  margin-left: 3px;
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_breadcrumbs.scss b/themes/bootstrap3/scss/bootstrap/_breadcrumbs.scss
deleted file mode 100644
index 3641e333b8d3aa5b6faaea5b3a64c0f01f7c8a7c..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_breadcrumbs.scss
+++ /dev/null
@@ -1,26 +0,0 @@
-//
-// Breadcrumbs
-// --------------------------------------------------
-
-
-.breadcrumb {
-  padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal;
-  margin-bottom: $line-height-computed;
-  list-style: none;
-  background-color: $breadcrumb-bg;
-  border-radius: $border-radius-base;
-
-  > li {
-    display: inline-block;
-
-    + li:before {
-      content: "#{$breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
-      padding: 0 5px;
-      color: $breadcrumb-color;
-    }
-  }
-
-  > .active {
-    color: $breadcrumb-active-color;
-  }
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_button-groups.scss b/themes/bootstrap3/scss/bootstrap/_button-groups.scss
deleted file mode 100644
index 066b4d77d5517bb41fccc7329c4b2fb47fa82cae..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_button-groups.scss
+++ /dev/null
@@ -1,226 +0,0 @@
-//
-// Button groups
-// --------------------------------------------------
-
-// Make the div behave like a button
-.btn-group,
-.btn-group-vertical {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle; // match .btn alignment given font-size hack above
-  > .btn {
-    position: relative;
-    float: left;
-    // Bring the "active" button to the front
-    &:hover,
-    &:focus,
-    &:active,
-    &.active {
-      z-index: 2;
-    }
-    &:focus {
-      // Remove focus outline when dropdown JS adds it after closing the menu
-      outline: none;
-    }
-  }
-}
-
-// Prevent double borders when buttons are next to each other
-.btn-group {
-  .btn + .btn,
-  .btn + .btn-group,
-  .btn-group + .btn,
-  .btn-group + .btn-group {
-    margin-left: -1px;
-  }
-}
-
-// Optional: Group multiple button groups together for a toolbar
-.btn-toolbar {
-  margin-left: -5px; // Offset the first child's margin
-  @include clearfix();
-
-  .btn-group,
-  .input-group {
-    float: left;
-  }
-  > .btn,
-  > .btn-group,
-  > .input-group {
-    margin-left: 5px;
-  }
-}
-
-.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
-  border-radius: 0;
-}
-
-// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
-.btn-group > .btn:first-child {
-  margin-left: 0;
-  &:not(:last-child):not(.dropdown-toggle) {
-    @include border-right-radius(0);
-  }
-}
-// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
-.btn-group > .btn:last-child:not(:first-child),
-.btn-group > .dropdown-toggle:not(:first-child) {
-  @include border-left-radius(0);
-}
-
-// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
-.btn-group > .btn-group {
-  float: left;
-}
-.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
-  border-radius: 0;
-}
-.btn-group > .btn-group:first-child {
-  > .btn:last-child,
-  > .dropdown-toggle {
-    @include border-right-radius(0);
-  }
-}
-.btn-group > .btn-group:last-child > .btn:first-child {
-  @include border-left-radius(0);
-}
-
-// On active and open, don't show outline
-.btn-group .dropdown-toggle:active,
-.btn-group.open .dropdown-toggle {
-  outline: 0;
-}
-
-
-// Sizing
-//
-// Remix the default button sizing classes into new ones for easier manipulation.
-
-.btn-group-xs > .btn { @extend .btn-xs; }
-.btn-group-sm > .btn { @extend .btn-sm; }
-.btn-group-lg > .btn { @extend .btn-lg; }
-
-
-// Split button dropdowns
-// ----------------------
-
-// Give the line between buttons some depth
-.btn-group > .btn + .dropdown-toggle {
-  padding-left: 8px;
-  padding-right: 8px;
-}
-.btn-group > .btn-lg + .dropdown-toggle {
-  padding-left: 12px;
-  padding-right: 12px;
-}
-
-// The clickable button for toggling the menu
-// Remove the gradient and set the same inset shadow as the :active state
-.btn-group.open .dropdown-toggle {
-  @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
-
-  // Show no shadow for `.btn-link` since it has no other button styles.
-  &.btn-link {
-    @include box-shadow(none);
-  }
-}
-
-
-// Reposition the caret
-.btn .caret {
-  margin-left: 0;
-}
-// Carets in other button sizes
-.btn-lg .caret {
-  border-width: $caret-width-large $caret-width-large 0;
-  border-bottom-width: 0;
-}
-// Upside down carets for .dropup
-.dropup .btn-lg .caret {
-  border-width: 0 $caret-width-large $caret-width-large;
-}
-
-
-// Vertical button groups
-// ----------------------
-
-.btn-group-vertical {
-  > .btn,
-  > .btn-group,
-  > .btn-group > .btn {
-    display: block;
-    float: none;
-    width: 100%;
-    max-width: 100%;
-  }
-
-  // Clear floats so dropdown menus can be properly placed
-  > .btn-group {
-    @include clearfix();
-    > .btn {
-      float: none;
-    }
-  }
-
-  > .btn + .btn,
-  > .btn + .btn-group,
-  > .btn-group + .btn,
-  > .btn-group + .btn-group {
-    margin-top: -1px;
-    margin-left: 0;
-  }
-}
-
-.btn-group-vertical > .btn {
-  &:not(:first-child):not(:last-child) {
-    border-radius: 0;
-  }
-  &:first-child:not(:last-child) {
-    border-top-right-radius: $border-radius-base;
-    @include border-bottom-radius(0);
-  }
-  &:last-child:not(:first-child) {
-    border-bottom-left-radius: $border-radius-base;
-    @include border-top-radius(0);
-  }
-}
-.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
-  border-radius: 0;
-}
-.btn-group-vertical > .btn-group:first-child:not(:last-child) {
-  > .btn:last-child,
-  > .dropdown-toggle {
-    @include border-bottom-radius(0);
-  }
-}
-.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
-  @include border-top-radius(0);
-}
-
-
-
-// Justified button groups
-// ----------------------
-
-.btn-group-justified {
-  display: table;
-  width: 100%;
-  table-layout: fixed;
-  border-collapse: separate;
-  > .btn,
-  > .btn-group {
-    float: none;
-    display: table-cell;
-    width: 1%;
-  }
-  > .btn-group .btn {
-    width: 100%;
-  }
-}
-
-
-// Checkbox and radio options
-[data-toggle="buttons"] > .btn > input[type="radio"],
-[data-toggle="buttons"] > .btn > input[type="checkbox"] {
-  display: none;
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_buttons.scss b/themes/bootstrap3/scss/bootstrap/_buttons.scss
deleted file mode 100644
index 28110b6519a0d1542f5e37d05f42cc040b378907..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_buttons.scss
+++ /dev/null
@@ -1,159 +0,0 @@
-//
-// Buttons
-// --------------------------------------------------
-
-
-// Base styles
-// --------------------------------------------------
-
-.btn {
-  display: inline-block;
-  margin-bottom: 0; // For input.btn
-  font-weight: $btn-font-weight;
-  text-align: center;
-  vertical-align: middle;
-  cursor: pointer;
-  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
-  border: 1px solid transparent;
-  white-space: nowrap;
-  @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $border-radius-base);
-  @include user-select(none);
-
-  &,
-  &:active,
-  &.active {
-    &:focus {
-      @include tab-focus();
-    }
-  }
-
-  &:hover,
-  &:focus {
-    color: $btn-default-color;
-    text-decoration: none;
-  }
-
-  &:active,
-  &.active {
-    outline: 0;
-    background-image: none;
-    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
-  }
-
-  &.disabled,
-  &[disabled],
-  fieldset[disabled] & {
-    cursor: not-allowed;
-    pointer-events: none; // Future-proof disabling of clicks
-    @include opacity(.65);
-    @include box-shadow(none);
-  }
-}
-
-
-// Alternate buttons
-// --------------------------------------------------
-
-.btn-default {
-  @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
-}
-.btn-primary {
-  @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
-}
-// Success appears as green
-.btn-success {
-  @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
-}
-// Info appears as blue-green
-.btn-info {
-  @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);
-}
-// Warning appears as orange
-.btn-warning {
-  @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);
-}
-// Danger and error appear as red
-.btn-danger {
-  @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border);
-}
-
-
-// Link buttons
-// -------------------------
-
-// Make a button look and behave like a link
-.btn-link {
-  color: $link-color;
-  font-weight: normal;
-  cursor: pointer;
-  border-radius: 0;
-
-  &,
-  &:active,
-  &[disabled],
-  fieldset[disabled] & {
-    background-color: transparent;
-    @include box-shadow(none);
-  }
-  &,
-  &:hover,
-  &:focus,
-  &:active {
-    border-color: transparent;
-  }
-  &:hover,
-  &:focus {
-    color: $link-hover-color;
-    text-decoration: underline;
-    background-color: transparent;
-  }
-  &[disabled],
-  fieldset[disabled] & {
-    &:hover,
-    &:focus {
-      color: $btn-link-disabled-color;
-      text-decoration: none;
-    }
-  }
-}
-
-
-// Button Sizes
-// --------------------------------------------------
-
-.btn-lg {
-  // line-height: ensure even-numbered height of button next to large input
-  @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);
-}
-.btn-sm {
-  // line-height: ensure proper height of button next to small input
-  @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
-}
-.btn-xs {
-  @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $border-radius-small);
-}
-
-
-// Block button
-// --------------------------------------------------
-
-.btn-block {
-  display: block;
-  width: 100%;
-  padding-left: 0;
-  padding-right: 0;
-}
-
-// Vertically space out multiple block buttons
-.btn-block + .btn-block {
-  margin-top: 5px;
-}
-
-// Specificity overrides
-input[type="submit"],
-input[type="reset"],
-input[type="button"] {
-  &.btn-block {
-    width: 100%;
-  }
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_carousel.scss b/themes/bootstrap3/scss/bootstrap/_carousel.scss
deleted file mode 100644
index d8f236487ca84b128c58a1987d62b7fb8a4024cc..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_carousel.scss
+++ /dev/null
@@ -1,232 +0,0 @@
-//
-// Carousel
-// --------------------------------------------------
-
-
-// Wrapper for the slide container and indicators
-.carousel {
-  position: relative;
-}
-
-.carousel-inner {
-  position: relative;
-  overflow: hidden;
-  width: 100%;
-
-  > .item {
-    display: none;
-    position: relative;
-    @include transition(.6s ease-in-out left);
-
-    // Account for jankitude on images
-    > img,
-    > a > img {
-      @include img-responsive();
-      line-height: 1;
-    }
-  }
-
-  > .active,
-  > .next,
-  > .prev { display: block; }
-
-  > .active {
-    left: 0;
-  }
-
-  > .next,
-  > .prev {
-    position: absolute;
-    top: 0;
-    width: 100%;
-  }
-
-  > .next {
-    left: 100%;
-  }
-  > .prev {
-    left: -100%;
-  }
-  > .next.left,
-  > .prev.right {
-    left: 0;
-  }
-
-  > .active.left {
-    left: -100%;
-  }
-  > .active.right {
-    left: 100%;
-  }
-
-}
-
-// Left/right controls for nav
-// ---------------------------
-
-.carousel-control {
-  position: absolute;
-  top: 0;
-  left: 0;
-  bottom: 0;
-  width: $carousel-control-width;
-  @include opacity($carousel-control-opacity);
-  font-size: $carousel-control-font-size;
-  color: $carousel-control-color;
-  text-align: center;
-  text-shadow: $carousel-text-shadow;
-  // We can't have this transition here because WebKit cancels the carousel
-  // animation if you trip this while in the middle of another animation.
-
-  // Set gradients for backgrounds
-  &.left {
-    @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001));
-  }
-  &.right {
-    left: auto;
-    right: 0;
-    @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5));
-  }
-
-  // Hover/focus state
-  &:hover,
-  &:focus {
-    outline: none;
-    color: $carousel-control-color;
-    text-decoration: none;
-    @include opacity(.9);
-  }
-
-  // Toggles
-  .icon-prev,
-  .icon-next,
-  .glyphicon-chevron-left,
-  .glyphicon-chevron-right {
-    position: absolute;
-    top: 50%;
-    z-index: 5;
-    display: inline-block;
-  }
-  .icon-prev,
-  .glyphicon-chevron-left {
-    left: 50%;
-  }
-  .icon-next,
-  .glyphicon-chevron-right {
-    right: 50%;
-  }
-  .icon-prev,
-  .icon-next {
-    width:  20px;
-    height: 20px;
-    margin-top: -10px;
-    margin-left: -10px;
-    font-family: serif;
-  }
-
-  .icon-prev {
-    &:before {
-      content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
-    }
-  }
-  .icon-next {
-    &:before {
-      content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
-    }
-  }
-}
-
-// Optional indicator pips
-//
-// Add an unordered list with the following class and add a list item for each
-// slide your carousel holds.
-
-.carousel-indicators {
-  position: absolute;
-  bottom: 10px;
-  left: 50%;
-  z-index: 15;
-  width: 60%;
-  margin-left: -30%;
-  padding-left: 0;
-  list-style: none;
-  text-align: center;
-
-  li {
-    display: inline-block;
-    width:  10px;
-    height: 10px;
-    margin: 1px;
-    text-indent: -999px;
-    border: 1px solid $carousel-indicator-border-color;
-    border-radius: 10px;
-    cursor: pointer;
-
-    // IE8-9 hack for event handling
-    //
-    // Internet Explorer 8-9 does not support clicks on elements without a set
-    // `background-color`. We cannot use `filter` since that's not viewed as a
-    // background color by the browser. Thus, a hack is needed.
-    //
-    // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
-    // set alpha transparency for the best results possible.
-    background-color: #000 \9; // IE8
-    background-color: rgba(0,0,0,0); // IE9
-  }
-  .active {
-    margin: 0;
-    width:  12px;
-    height: 12px;
-    background-color: $carousel-indicator-active-bg;
-  }
-}
-
-// Optional captions
-// -----------------------------
-// Hidden by default for smaller viewports
-.carousel-caption {
-  position: absolute;
-  left: 15%;
-  right: 15%;
-  bottom: 20px;
-  z-index: 10;
-  padding-top: 20px;
-  padding-bottom: 20px;
-  color: $carousel-caption-color;
-  text-align: center;
-  text-shadow: $carousel-text-shadow;
-  & .btn {
-    text-shadow: none; // No shadow for button elements in carousel-caption
-  }
-}
-
-
-// Scale up controls for tablets and up
-@media screen and (min-width: $screen-sm-min) {
-
-  // Scale up the controls a smidge
-  .carousel-control {
-    .glyphicon-chevron-left,
-    .glyphicon-chevron-right,
-    .icon-prev,
-    .icon-next {
-      width: 30px;
-      height: 30px;
-      margin-top: -15px;
-      margin-left: -15px;
-      font-size: 30px;
-    }
-  }
-
-  // Show and left align the captions
-  .carousel-caption {
-    left: 20%;
-    right: 20%;
-    padding-bottom: 30px;
-  }
-
-  // Move up the indicators
-  .carousel-indicators {
-    bottom: 20px;
-  }
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_close.scss b/themes/bootstrap3/scss/bootstrap/_close.scss
deleted file mode 100644
index 62ce30fa374f8c997c10c000a61a82d1602f2c50..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_close.scss
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// Close icons
-// --------------------------------------------------
-
-
-.close {
-  float: right;
-  font-size: ($font-size-base * 1.5);
-  font-weight: $close-font-weight;
-  line-height: 1;
-  color: $close-color;
-  text-shadow: $close-text-shadow;
-  @include opacity(.2);
-
-  &:hover,
-  &:focus {
-    color: $close-color;
-    text-decoration: none;
-    cursor: pointer;
-    @include opacity(.5);
-  }
-
-  // [converter] extracted button& to button.close
-}
-
-// Additional properties for button version
-// iOS requires the button element instead of an anchor tag.
-// If you want the anchor version, it requires `href="#"`.
-button.close {
-  padding: 0;
-  cursor: pointer;
-  background: transparent;
-  border: 0;
-  -webkit-appearance: none;
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_code.scss b/themes/bootstrap3/scss/bootstrap/_code.scss
deleted file mode 100644
index 89536160990a07218788a41b18aa912c13b093ae..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_code.scss
+++ /dev/null
@@ -1,63 +0,0 @@
-//
-// Code (inline and block)
-// --------------------------------------------------
-
-
-// Inline and block code styles
-code,
-kbd,
-pre,
-samp {
-  font-family: $font-family-monospace;
-}
-
-// Inline code
-code {
-  padding: 2px 4px;
-  font-size: 90%;
-  color: $code-color;
-  background-color: $code-bg;
-  white-space: nowrap;
-  border-radius: $border-radius-base;
-}
-
-// User input typically entered via keyboard
-kbd {
-  padding: 2px 4px;
-  font-size: 90%;
-  color: $kbd-color;
-  background-color: $kbd-bg;
-  border-radius: $border-radius-small;
-  box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
-}
-
-// Blocks of code
-pre {
-  display: block;
-  padding: (($line-height-computed - 1) / 2);
-  margin: 0 0 ($line-height-computed / 2);
-  font-size: ($font-size-base - 1); // 14px to 13px
-  line-height: $line-height-base;
-  word-break: break-all;
-  word-wrap: break-word;
-  color: $pre-color;
-  background-color: $pre-bg;
-  border: 1px solid $pre-border-color;
-  border-radius: $border-radius-base;
-
-  // Account for some code outputs that place code tags in pre tags
-  code {
-    padding: 0;
-    font-size: inherit;
-    color: inherit;
-    white-space: pre-wrap;
-    background-color: transparent;
-    border-radius: 0;
-  }
-}
-
-// Enable scrollable blocks of code
-.pre-scrollable {
-  max-height: $pre-scrollable-max-height;
-  overflow-y: scroll;
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_component-animations.scss b/themes/bootstrap3/scss/bootstrap/_component-animations.scss
deleted file mode 100644
index 86632fd34a7935d3257892980fd43906145ebf65..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_component-animations.scss
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-// Component animations
-// --------------------------------------------------
-
-// Heads up!
-//
-// We don't use the `.opacity()` mixin here since it causes a bug with text
-// fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552.
-
-.fade {
-  opacity: 0;
-  @include transition(opacity .15s linear);
-  &.in {
-    opacity: 1;
-  }
-}
-
-.collapse {
-  display: none;
-  &.in {
-    display: block;
-  }
-}
-.collapsing {
-  position: relative;
-  height: 0;
-  overflow: hidden;
-  @include transition(height .35s ease);
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_dropdowns.scss b/themes/bootstrap3/scss/bootstrap/_dropdowns.scss
deleted file mode 100644
index 526be5b84961d8bce2437167644f0bc2411f539a..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_dropdowns.scss
+++ /dev/null
@@ -1,213 +0,0 @@
-//
-// Dropdown menus
-// --------------------------------------------------
-
-
-// Dropdown arrow/caret
-.caret {
-  display: inline-block;
-  width: 0;
-  height: 0;
-  margin-left: 2px;
-  vertical-align: middle;
-  border-top:   $caret-width-base solid;
-  border-right: $caret-width-base solid transparent;
-  border-left:  $caret-width-base solid transparent;
-}
-
-// The dropdown wrapper (div)
-.dropdown {
-  position: relative;
-}
-
-// Prevent the focus on the dropdown toggle when closing dropdowns
-.dropdown-toggle:focus {
-  outline: 0;
-}
-
-// The dropdown menu (ul)
-.dropdown-menu {
-  position: absolute;
-  top: 100%;
-  left: 0;
-  z-index: $zindex-dropdown;
-  display: none; // none by default, but block on "open" of the menu
-  float: left;
-  min-width: 160px;
-  padding: 5px 0;
-  margin: 2px 0 0; // override default ul
-  list-style: none;
-  font-size: $font-size-base;
-  background-color: $dropdown-bg;
-  border: 1px solid $dropdown-fallback-border; // IE8 fallback
-  border: 1px solid $dropdown-border;
-  border-radius: $border-radius-base;
-  @include box-shadow(0 6px 12px rgba(0,0,0,.175));
-  background-clip: padding-box;
-
-  // Aligns the dropdown menu to right
-  //
-  // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`
-  &.pull-right {
-    right: 0;
-    left: auto;
-  }
-
-  // Dividers (basically an hr) within the dropdown
-  .divider {
-    @include nav-divider($dropdown-divider-bg);
-  }
-
-  // Links within the dropdown menu
-  > li > a {
-    display: block;
-    padding: 3px 20px;
-    clear: both;
-    font-weight: normal;
-    line-height: $line-height-base;
-    color: $dropdown-link-color;
-    white-space: nowrap; // prevent links from randomly breaking onto new lines
-  }
-}
-
-// Hover/Focus state
-.dropdown-menu > li > a {
-  &:hover,
-  &:focus {
-    text-decoration: none;
-    color: $dropdown-link-hover-color;
-    background-color: $dropdown-link-hover-bg;
-  }
-}
-
-// Active state
-.dropdown-menu > .active > a {
-  &,
-  &:hover,
-  &:focus {
-    color: $dropdown-link-active-color;
-    text-decoration: none;
-    outline: 0;
-    background-color: $dropdown-link-active-bg;
-  }
-}
-
-// Disabled state
-//
-// Gray out text and ensure the hover/focus state remains gray
-
-.dropdown-menu > .disabled > a {
-  &,
-  &:hover,
-  &:focus {
-    color: $dropdown-link-disabled-color;
-  }
-}
-// Nuke hover/focus effects
-.dropdown-menu > .disabled > a {
-  &:hover,
-  &:focus {
-    text-decoration: none;
-    background-color: transparent;
-    background-image: none; // Remove CSS gradient
-    @include reset-filter();
-    cursor: not-allowed;
-  }
-}
-
-// Open state for the dropdown
-.open {
-  // Show the menu
-  > .dropdown-menu {
-    display: block;
-  }
-
-  // Remove the outline when :focus is triggered
-  > a {
-    outline: 0;
-  }
-}
-
-// Menu positioning
-//
-// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
-// menu with the parent.
-.dropdown-menu-right {
-  left: auto; // Reset the default from `.dropdown-menu`
-  right: 0;
-}
-// With v3, we enabled auto-flipping if you have a dropdown within a right
-// aligned nav component. To enable the undoing of that, we provide an override
-// to restore the default dropdown menu alignment.
-//
-// This is only for left-aligning a dropdown menu within a `.navbar-right` or
-// `.pull-right` nav component.
-.dropdown-menu-left {
-  left: 0;
-  right: auto;
-}
-
-// Dropdown section headers
-.dropdown-header {
-  display: block;
-  padding: 3px 20px;
-  font-size: $font-size-small;
-  line-height: $line-height-base;
-  color: $dropdown-header-color;
-}
-
-// Backdrop to catch body clicks on mobile, etc.
-.dropdown-backdrop {
-  position: fixed;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  top: 0;
-  z-index: ($zindex-dropdown - 10);
-}
-
-// Right aligned dropdowns
-.pull-right > .dropdown-menu {
-  right: 0;
-  left: auto;
-}
-
-// Allow for dropdowns to go bottom up (aka, dropup-menu)
-//
-// Just add .dropup after the standard .dropdown class and you're set, bro.
-// TODO: abstract this so that the navbar fixed styles are not placed here?
-
-.dropup,
-.navbar-fixed-bottom .dropdown {
-  // Reverse the caret
-  .caret {
-    border-top: 0;
-    border-bottom: $caret-width-base solid;
-    content: "";
-  }
-  // Different positioning for bottom up menu
-  .dropdown-menu {
-    top: auto;
-    bottom: 100%;
-    margin-bottom: 1px;
-  }
-}
-
-
-// Component alignment
-//
-// Reiterate per navbar.less and the modified component alignment there.
-
-@media (min-width: $grid-float-breakpoint) {
-  .navbar-right {
-    .dropdown-menu {
-      right: 0; left: auto;
-    }
-    // Necessary for overrides of the default right aligned menu.
-    // Will remove come v4 in all likelihood.
-    .dropdown-menu-left {
-      left: 0; right: auto;
-    }
-  }
-}
-
diff --git a/themes/bootstrap3/scss/bootstrap/_forms.scss b/themes/bootstrap3/scss/bootstrap/_forms.scss
deleted file mode 100644
index 262823850fe26185cb2e9675ecfa2a94127bd9d9..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_forms.scss
+++ /dev/null
@@ -1,436 +0,0 @@
-//
-// Forms
-// --------------------------------------------------
-
-
-// Normalize non-controls
-//
-// Restyle and baseline non-control form elements.
-
-fieldset {
-  padding: 0;
-  margin: 0;
-  border: 0;
-  // Chrome and Firefox set a `min-width: -webkit-min-content;` on fieldsets,
-  // so we reset that to ensure it behaves more like a standard block element.
-  // See https://github.com/twbs/bootstrap/issues/12359.
-  min-width: 0;
-}
-
-legend {
-  display: block;
-  width: 100%;
-  padding: 0;
-  margin-bottom: $line-height-computed;
-  font-size: ($font-size-base * 1.5);
-  line-height: inherit;
-  color: $legend-color;
-  border: 0;
-  border-bottom: 1px solid $legend-border-color;
-}
-
-label {
-  display: inline-block;
-  margin-bottom: 5px;
-  font-weight: bold;
-}
-
-
-// Normalize form controls
-//
-// While most of our form styles require extra classes, some basic normalization
-// is required to ensure optimum display with or without those classes to better
-// address browser inconsistencies.
-
-// Override content-box in Normalize (* isn't specific enough)
-input[type="search"] {
-  @include box-sizing(border-box);
-}
-
-// Position radios and checkboxes better
-input[type="radio"],
-input[type="checkbox"] {
-  margin: 4px 0 0;
-  margin-top: 1px \9; /* IE8-9 */
-  line-height: normal;
-}
-
-// Set the height of file controls to match text inputs
-input[type="file"] {
-  display: block;
-}
-
-// Make range inputs behave like textual form controls
-input[type="range"] {
-  display: block;
-  width: 100%;
-}
-
-// Make multiple select elements height not fixed
-select[multiple],
-select[size] {
-  height: auto;
-}
-
-// Focus for file, radio, and checkbox
-input[type="file"]:focus,
-input[type="radio"]:focus,
-input[type="checkbox"]:focus {
-  @include tab-focus();
-}
-
-// Adjust output element
-output {
-  display: block;
-  padding-top: ($padding-base-vertical + 1);
-  font-size: $font-size-base;
-  line-height: $line-height-base;
-  color: $input-color;
-}
-
-
-// Common form controls
-//
-// Shared size and type resets for form controls. Apply `.form-control` to any
-// of the following form controls:
-//
-// select
-// textarea
-// input[type="text"]
-// input[type="password"]
-// input[type="datetime"]
-// input[type="datetime-local"]
-// input[type="date"]
-// input[type="month"]
-// input[type="time"]
-// input[type="week"]
-// input[type="number"]
-// input[type="email"]
-// input[type="url"]
-// input[type="search"]
-// input[type="tel"]
-// input[type="color"]
-
-.form-control {
-  display: block;
-  width: 100%;
-  height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
-  padding: $padding-base-vertical $padding-base-horizontal;
-  font-size: $font-size-base;
-  line-height: $line-height-base;
-  color: $input-color;
-  background-color: $input-bg;
-  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
-  border: 1px solid $input-border;
-  border-radius: $input-border-radius;
-  @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
-  @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);
-
-  // Customize the `:focus` state to imitate native WebKit styles.
-  @include form-control-focus();
-
-  // Placeholder
-  @include placeholder();
-
-  // Disabled and read-only inputs
-  //
-  // HTML5 says that controls under a fieldset > legend:first-child won't be
-  // disabled if the fieldset is disabled. Due to implementation difficulty, we
-  // don't honor that edge case; we style them as disabled anyway.
-  &[disabled],
-  &[readonly],
-  fieldset[disabled] & {
-    cursor: not-allowed;
-    background-color: $input-bg-disabled;
-    opacity: 1; // iOS fix for unreadable disabled content
-  }
-
-  // [converter] extracted textarea& to textarea.form-control
-}
-
-// Reset height for `textarea`s
-textarea.form-control {
-  height: auto;
-}
-
-
-// Search inputs in iOS
-//
-// This overrides the extra rounded corners on search inputs in iOS so that our
-// `.form-control` class can properly style them. Note that this cannot simply
-// be added to `.form-control` as it's not specific enough. For details, see
-// https://github.com/twbs/bootstrap/issues/11586.
-
-input[type="search"] {
-  -webkit-appearance: none;
-}
-
-
-// Special styles for iOS date input
-//
-// In Mobile Safari, date inputs require a pixel line-height that matches the
-// given height of the input.
-
-input[type="date"] {
-  line-height: $input-height-base;
-}
-
-
-// Form groups
-//
-// Designed to help with the organization and spacing of vertical forms. For
-// horizontal forms, use the predefined grid classes.
-
-.form-group {
-  margin-bottom: 15px;
-}
-
-
-// Checkboxes and radios
-//
-// Indent the labels to position radios/checkboxes as hanging controls.
-
-.radio,
-.checkbox {
-  display: block;
-  min-height: $line-height-computed; // clear the floating input if there is no label text
-  margin-top: 10px;
-  margin-bottom: 10px;
-  padding-left: 20px;
-  label {
-    display: inline;
-    font-weight: normal;
-    cursor: pointer;
-  }
-}
-.radio input[type="radio"],
-.radio-inline input[type="radio"],
-.checkbox input[type="checkbox"],
-.checkbox-inline input[type="checkbox"] {
-  float: left;
-  margin-left: -20px;
-}
-.radio + .radio,
-.checkbox + .checkbox {
-  margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
-}
-
-// Radios and checkboxes on same line
-.radio-inline,
-.checkbox-inline {
-  display: inline-block;
-  padding-left: 20px;
-  margin-bottom: 0;
-  vertical-align: middle;
-  font-weight: normal;
-  cursor: pointer;
-}
-.radio-inline + .radio-inline,
-.checkbox-inline + .checkbox-inline {
-  margin-top: 0;
-  margin-left: 10px; // space out consecutive inline controls
-}
-
-// Apply same disabled cursor tweak as for inputs
-//
-// Note: Neither radios nor checkboxes can be readonly.
-input[type="radio"],
-input[type="checkbox"],
-.radio,
-.radio-inline,
-.checkbox,
-.checkbox-inline {
-  &[disabled],
-  fieldset[disabled] & {
-    cursor: not-allowed;
-  }
-}
-
-
-// Form control sizing
-//
-// Build on `.form-control` with modifier classes to decrease or increase the
-// height and font-size of form controls.
-
-@include input-size('.input-sm', $input-height-small, $padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
-
-@include input-size('.input-lg', $input-height-large, $padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);
-
-
-// Form control feedback states
-//
-// Apply contextual and semantic states to individual form controls.
-
-.has-feedback {
-  // Enable absolute positioning
-  position: relative;
-
-  // Ensure icons don't overlap text
-  .form-control {
-    padding-right: ($input-height-base * 1.25);
-  }
-
-  // Feedback icon (requires .glyphicon classes)
-  .form-control-feedback {
-    position: absolute;
-    top: ($line-height-computed + 5); // Height of the `label` and its margin
-    right: 0;
-    display: block;
-    width: $input-height-base;
-    height: $input-height-base;
-    line-height: $input-height-base;
-    text-align: center;
-  }
-}
-
-// Feedback states
-.has-success {
-  @include form-control-validation($state-success-text, $state-success-text, $state-success-bg);
-}
-.has-warning {
-  @include form-control-validation($state-warning-text, $state-warning-text, $state-warning-bg);
-}
-.has-error {
-  @include form-control-validation($state-danger-text, $state-danger-text, $state-danger-bg);
-}
-
-
-// Static form control text
-//
-// Apply class to a `p` element to make any string of text align with labels in
-// a horizontal form layout.
-
-.form-control-static {
-  margin-bottom: 0; // Remove default margin from `p`
-}
-
-
-// Help text
-//
-// Apply to any element you wish to create light text for placement immediately
-// below a form control. Use for general help, formatting, or instructional text.
-
-.help-block {
-  display: block; // account for any element using help-block
-  margin-top: 5px;
-  margin-bottom: 10px;
-  color: lighten($text-color, 25%); // lighten the text some for contrast
-}
-
-
-
-// Inline forms
-//
-// Make forms appear inline(-block) by adding the `.form-inline` class. Inline
-// forms begin stacked on extra small (mobile) devices and then go inline when
-// viewports reach <768px.
-//
-// Requires wrapping inputs and labels with `.form-group` for proper display of
-// default HTML form controls and our custom form controls (e.g., input groups).
-//
-// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
-
-.form-inline {
-
-  // Kick in the inline
-  @media (min-width: $screen-sm-min) {
-    // Inline-block all the things for "inline"
-    .form-group {
-      display: inline-block;
-      margin-bottom: 0;
-      vertical-align: middle;
-    }
-
-    // In navbar-form, allow folks to *not* use `.form-group`
-    .form-control {
-      display: inline-block;
-      width: auto; // Prevent labels from stacking above inputs in `.form-group`
-      vertical-align: middle;
-    }
-    // Input groups need that 100% width though
-    .input-group > .form-control {
-      width: 100%;
-    }
-
-    .control-label {
-      margin-bottom: 0;
-      vertical-align: middle;
-    }
-
-    // Remove default margin on radios/checkboxes that were used for stacking, and
-    // then undo the floating of radios and checkboxes to match (which also avoids
-    // a bug in WebKit: https://github.com/twbs/bootstrap/issues/1969).
-    .radio,
-    .checkbox {
-      display: inline-block;
-      margin-top: 0;
-      margin-bottom: 0;
-      padding-left: 0;
-      vertical-align: middle;
-    }
-    .radio input[type="radio"],
-    .checkbox input[type="checkbox"] {
-      float: none;
-      margin-left: 0;
-    }
-
-    // Validation states
-    //
-    // Reposition the icon because it's now within a grid column and columns have
-    // `position: relative;` on them. Also accounts for the grid gutter padding.
-    .has-feedback .form-control-feedback {
-      top: 0;
-    }
-  }
-}
-
-
-// Horizontal forms
-//
-// Horizontal forms are built on grid classes and allow you to create forms with
-// labels on the left and inputs on the right.
-
-.form-horizontal {
-
-  // Consistent vertical alignment of labels, radios, and checkboxes
-  .control-label,
-  .radio,
-  .checkbox,
-  .radio-inline,
-  .checkbox-inline {
-    margin-top: 0;
-    margin-bottom: 0;
-    padding-top: ($padding-base-vertical + 1); // Default padding plus a border
-  }
-  // Account for padding we're adding to ensure the alignment and of help text
-  // and other content below items
-  .radio,
-  .checkbox {
-    min-height: ($line-height-computed + ($padding-base-vertical + 1));
-  }
-
-  // Make form groups behave like rows
-  .form-group {
-    @include make-row();
-  }
-
-  .form-control-static {
-    padding-top: ($padding-base-vertical + 1);
-  }
-
-  // Only right align form labels here when the columns stop stacking
-  @media (min-width: $screen-sm-min) {
-    .control-label {
-      text-align: right;
-    }
-  }
-
-  // Validation states
-  //
-  // Reposition the icon because it's now within a grid column and columns have
-  // `position: relative;` on them. Also accounts for the grid gutter padding.
-  .has-feedback .form-control-feedback {
-    top: 0;
-    right: ($grid-gutter-width / 2);
-  }
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_glyphicons.scss b/themes/bootstrap3/scss/bootstrap/_glyphicons.scss
deleted file mode 100644
index c508835e3cfc29e13a31a1e57710e6ae57c4a083..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_glyphicons.scss
+++ /dev/null
@@ -1,233 +0,0 @@
-//
-// Glyphicons for Bootstrap
-//
-// Since icons are fonts, they can be placed anywhere text is placed and are
-// thus automatically sized to match the surrounding child. To use, create an
-// inline element with the appropriate classes, like so:
-//
-// <a href="#"><span class="glyphicon glyphicon-star"></span> Star</a>
-
-// Import the fonts
-@font-face {
-  font-family: 'Glyphicons Halflings';
-  src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot'), '#{$icon-font-path}#{$icon-font-name}.eot'));
-  src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot?#iefix'), '#{$icon-font-path}#{$icon-font-name}.eot?#iefix')) format('embedded-opentype'),
-       url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff'), '#{$icon-font-path}#{$icon-font-name}.woff')) format('woff'),
-       url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.ttf'), '#{$icon-font-path}#{$icon-font-name}.ttf')) format('truetype'),
-       url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}'), '#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}')) format('svg');
-}
-
-// Catchall baseclass
-.glyphicon {
-  position: relative;
-  top: 1px;
-  display: inline-block;
-  font-family: 'Glyphicons Halflings';
-  font-style: normal;
-  font-weight: normal;
-  line-height: 1;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-// Individual icons
-.glyphicon-asterisk               { &:before { content: "\2a"; } }
-.glyphicon-plus                   { &:before { content: "\2b"; } }
-.glyphicon-euro                   { &:before { content: "\20ac"; } }
-.glyphicon-minus                  { &:before { content: "\2212"; } }
-.glyphicon-cloud                  { &:before { content: "\2601"; } }
-.glyphicon-envelope               { &:before { content: "\2709"; } }
-.glyphicon-pencil                 { &:before { content: "\270f"; } }
-.glyphicon-glass                  { &:before { content: "\e001"; } }
-.glyphicon-music                  { &:before { content: "\e002"; } }
-.glyphicon-search                 { &:before { content: "\e003"; } }
-.glyphicon-heart                  { &:before { content: "\e005"; } }
-.glyphicon-star                   { &:before { content: "\e006"; } }
-.glyphicon-star-empty             { &:before { content: "\e007"; } }
-.glyphicon-user                   { &:before { content: "\e008"; } }
-.glyphicon-film                   { &:before { content: "\e009"; } }
-.glyphicon-th-large               { &:before { content: "\e010"; } }
-.glyphicon-th                     { &:before { content: "\e011"; } }
-.glyphicon-th-list                { &:before { content: "\e012"; } }
-.glyphicon-ok                     { &:before { content: "\e013"; } }
-.glyphicon-remove                 { &:before { content: "\e014"; } }
-.glyphicon-zoom-in                { &:before { content: "\e015"; } }
-.glyphicon-zoom-out               { &:before { content: "\e016"; } }
-.glyphicon-off                    { &:before { content: "\e017"; } }
-.glyphicon-signal                 { &:before { content: "\e018"; } }
-.glyphicon-cog                    { &:before { content: "\e019"; } }
-.glyphicon-trash                  { &:before { content: "\e020"; } }
-.glyphicon-home                   { &:before { content: "\e021"; } }
-.glyphicon-file                   { &:before { content: "\e022"; } }
-.glyphicon-time                   { &:before { content: "\e023"; } }
-.glyphicon-road                   { &:before { content: "\e024"; } }
-.glyphicon-download-alt           { &:before { content: "\e025"; } }
-.glyphicon-download               { &:before { content: "\e026"; } }
-.glyphicon-upload                 { &:before { content: "\e027"; } }
-.glyphicon-inbox                  { &:before { content: "\e028"; } }
-.glyphicon-play-circle            { &:before { content: "\e029"; } }
-.glyphicon-repeat                 { &:before { content: "\e030"; } }
-.glyphicon-refresh                { &:before { content: "\e031"; } }
-.glyphicon-list-alt               { &:before { content: "\e032"; } }
-.glyphicon-lock                   { &:before { content: "\e033"; } }
-.glyphicon-flag                   { &:before { content: "\e034"; } }
-.glyphicon-headphones             { &:before { content: "\e035"; } }
-.glyphicon-volume-off             { &:before { content: "\e036"; } }
-.glyphicon-volume-down            { &:before { content: "\e037"; } }
-.glyphicon-volume-up              { &:before { content: "\e038"; } }
-.glyphicon-qrcode                 { &:before { content: "\e039"; } }
-.glyphicon-barcode                { &:before { content: "\e040"; } }
-.glyphicon-tag                    { &:before { content: "\e041"; } }
-.glyphicon-tags                   { &:before { content: "\e042"; } }
-.glyphicon-book                   { &:before { content: "\e043"; } }
-.glyphicon-bookmark               { &:before { content: "\e044"; } }
-.glyphicon-print                  { &:before { content: "\e045"; } }
-.glyphicon-camera                 { &:before { content: "\e046"; } }
-.glyphicon-font                   { &:before { content: "\e047"; } }
-.glyphicon-bold                   { &:before { content: "\e048"; } }
-.glyphicon-italic                 { &:before { content: "\e049"; } }
-.glyphicon-text-height            { &:before { content: "\e050"; } }
-.glyphicon-text-width             { &:before { content: "\e051"; } }
-.glyphicon-align-left             { &:before { content: "\e052"; } }
-.glyphicon-align-center           { &:before { content: "\e053"; } }
-.glyphicon-align-right            { &:before { content: "\e054"; } }
-.glyphicon-align-justify          { &:before { content: "\e055"; } }
-.glyphicon-list                   { &:before { content: "\e056"; } }
-.glyphicon-indent-left            { &:before { content: "\e057"; } }
-.glyphicon-indent-right           { &:before { content: "\e058"; } }
-.glyphicon-facetime-video         { &:before { content: "\e059"; } }
-.glyphicon-picture                { &:before { content: "\e060"; } }
-.glyphicon-map-marker             { &:before { content: "\e062"; } }
-.glyphicon-adjust                 { &:before { content: "\e063"; } }
-.glyphicon-tint                   { &:before { content: "\e064"; } }
-.glyphicon-edit                   { &:before { content: "\e065"; } }
-.glyphicon-share                  { &:before { content: "\e066"; } }
-.glyphicon-check                  { &:before { content: "\e067"; } }
-.glyphicon-move                   { &:before { content: "\e068"; } }
-.glyphicon-step-backward          { &:before { content: "\e069"; } }
-.glyphicon-fast-backward          { &:before { content: "\e070"; } }
-.glyphicon-backward               { &:before { content: "\e071"; } }
-.glyphicon-play                   { &:before { content: "\e072"; } }
-.glyphicon-pause                  { &:before { content: "\e073"; } }
-.glyphicon-stop                   { &:before { content: "\e074"; } }
-.glyphicon-forward                { &:before { content: "\e075"; } }
-.glyphicon-fast-forward           { &:before { content: "\e076"; } }
-.glyphicon-step-forward           { &:before { content: "\e077"; } }
-.glyphicon-eject                  { &:before { content: "\e078"; } }
-.glyphicon-chevron-left           { &:before { content: "\e079"; } }
-.glyphicon-chevron-right          { &:before { content: "\e080"; } }
-.glyphicon-plus-sign              { &:before { content: "\e081"; } }
-.glyphicon-minus-sign             { &:before { content: "\e082"; } }
-.glyphicon-remove-sign            { &:before { content: "\e083"; } }
-.glyphicon-ok-sign                { &:before { content: "\e084"; } }
-.glyphicon-question-sign          { &:before { content: "\e085"; } }
-.glyphicon-info-sign              { &:before { content: "\e086"; } }
-.glyphicon-screenshot             { &:before { content: "\e087"; } }
-.glyphicon-remove-circle          { &:before { content: "\e088"; } }
-.glyphicon-ok-circle              { &:before { content: "\e089"; } }
-.glyphicon-ban-circle             { &:before { content: "\e090"; } }
-.glyphicon-arrow-left             { &:before { content: "\e091"; } }
-.glyphicon-arrow-right            { &:before { content: "\e092"; } }
-.glyphicon-arrow-up               { &:before { content: "\e093"; } }
-.glyphicon-arrow-down             { &:before { content: "\e094"; } }
-.glyphicon-share-alt              { &:before { content: "\e095"; } }
-.glyphicon-resize-full            { &:before { content: "\e096"; } }
-.glyphicon-resize-small           { &:before { content: "\e097"; } }
-.glyphicon-exclamation-sign       { &:before { content: "\e101"; } }
-.glyphicon-gift                   { &:before { content: "\e102"; } }
-.glyphicon-leaf                   { &:before { content: "\e103"; } }
-.glyphicon-fire                   { &:before { content: "\e104"; } }
-.glyphicon-eye-open               { &:before { content: "\e105"; } }
-.glyphicon-eye-close              { &:before { content: "\e106"; } }
-.glyphicon-warning-sign           { &:before { content: "\e107"; } }
-.glyphicon-plane                  { &:before { content: "\e108"; } }
-.glyphicon-calendar               { &:before { content: "\e109"; } }
-.glyphicon-random                 { &:before { content: "\e110"; } }
-.glyphicon-comment                { &:before { content: "\e111"; } }
-.glyphicon-magnet                 { &:before { content: "\e112"; } }
-.glyphicon-chevron-up             { &:before { content: "\e113"; } }
-.glyphicon-chevron-down           { &:before { content: "\e114"; } }
-.glyphicon-retweet                { &:before { content: "\e115"; } }
-.glyphicon-shopping-cart          { &:before { content: "\e116"; } }
-.glyphicon-folder-close           { &:before { content: "\e117"; } }
-.glyphicon-folder-open            { &:before { content: "\e118"; } }
-.glyphicon-resize-vertical        { &:before { content: "\e119"; } }
-.glyphicon-resize-horizontal      { &:before { content: "\e120"; } }
-.glyphicon-hdd                    { &:before { content: "\e121"; } }
-.glyphicon-bullhorn               { &:before { content: "\e122"; } }
-.glyphicon-bell                   { &:before { content: "\e123"; } }
-.glyphicon-certificate            { &:before { content: "\e124"; } }
-.glyphicon-thumbs-up              { &:before { content: "\e125"; } }
-.glyphicon-thumbs-down            { &:before { content: "\e126"; } }
-.glyphicon-hand-right             { &:before { content: "\e127"; } }
-.glyphicon-hand-left              { &:before { content: "\e128"; } }
-.glyphicon-hand-up                { &:before { content: "\e129"; } }
-.glyphicon-hand-down              { &:before { content: "\e130"; } }
-.glyphicon-circle-arrow-right     { &:before { content: "\e131"; } }
-.glyphicon-circle-arrow-left      { &:before { content: "\e132"; } }
-.glyphicon-circle-arrow-up        { &:before { content: "\e133"; } }
-.glyphicon-circle-arrow-down      { &:before { content: "\e134"; } }
-.glyphicon-globe                  { &:before { content: "\e135"; } }
-.glyphicon-wrench                 { &:before { content: "\e136"; } }
-.glyphicon-tasks                  { &:before { content: "\e137"; } }
-.glyphicon-filter                 { &:before { content: "\e138"; } }
-.glyphicon-briefcase              { &:before { content: "\e139"; } }
-.glyphicon-fullscreen             { &:before { content: "\e140"; } }
-.glyphicon-dashboard              { &:before { content: "\e141"; } }
-.glyphicon-paperclip              { &:before { content: "\e142"; } }
-.glyphicon-heart-empty            { &:before { content: "\e143"; } }
-.glyphicon-link                   { &:before { content: "\e144"; } }
-.glyphicon-phone                  { &:before { content: "\e145"; } }
-.glyphicon-pushpin                { &:before { content: "\e146"; } }
-.glyphicon-usd                    { &:before { content: "\e148"; } }
-.glyphicon-gbp                    { &:before { content: "\e149"; } }
-.glyphicon-sort                   { &:before { content: "\e150"; } }
-.glyphicon-sort-by-alphabet       { &:before { content: "\e151"; } }
-.glyphicon-sort-by-alphabet-alt   { &:before { content: "\e152"; } }
-.glyphicon-sort-by-order          { &:before { content: "\e153"; } }
-.glyphicon-sort-by-order-alt      { &:before { content: "\e154"; } }
-.glyphicon-sort-by-attributes     { &:before { content: "\e155"; } }
-.glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } }
-.glyphicon-unchecked              { &:before { content: "\e157"; } }
-.glyphicon-expand                 { &:before { content: "\e158"; } }
-.glyphicon-collapse-down          { &:before { content: "\e159"; } }
-.glyphicon-collapse-up            { &:before { content: "\e160"; } }
-.glyphicon-log-in                 { &:before { content: "\e161"; } }
-.glyphicon-flash                  { &:before { content: "\e162"; } }
-.glyphicon-log-out                { &:before { content: "\e163"; } }
-.glyphicon-new-window             { &:before { content: "\e164"; } }
-.glyphicon-record                 { &:before { content: "\e165"; } }
-.glyphicon-save                   { &:before { content: "\e166"; } }
-.glyphicon-open                   { &:before { content: "\e167"; } }
-.glyphicon-saved                  { &:before { content: "\e168"; } }
-.glyphicon-import                 { &:before { content: "\e169"; } }
-.glyphicon-export                 { &:before { content: "\e170"; } }
-.glyphicon-send                   { &:before { content: "\e171"; } }
-.glyphicon-floppy-disk            { &:before { content: "\e172"; } }
-.glyphicon-floppy-saved           { &:before { content: "\e173"; } }
-.glyphicon-floppy-remove          { &:before { content: "\e174"; } }
-.glyphicon-floppy-save            { &:before { content: "\e175"; } }
-.glyphicon-floppy-open            { &:before { content: "\e176"; } }
-.glyphicon-credit-card            { &:before { content: "\e177"; } }
-.glyphicon-transfer               { &:before { content: "\e178"; } }
-.glyphicon-cutlery                { &:before { content: "\e179"; } }
-.glyphicon-header                 { &:before { content: "\e180"; } }
-.glyphicon-compressed             { &:before { content: "\e181"; } }
-.glyphicon-earphone               { &:before { content: "\e182"; } }
-.glyphicon-phone-alt              { &:before { content: "\e183"; } }
-.glyphicon-tower                  { &:before { content: "\e184"; } }
-.glyphicon-stats                  { &:before { content: "\e185"; } }
-.glyphicon-sd-video               { &:before { content: "\e186"; } }
-.glyphicon-hd-video               { &:before { content: "\e187"; } }
-.glyphicon-subtitles              { &:before { content: "\e188"; } }
-.glyphicon-sound-stereo           { &:before { content: "\e189"; } }
-.glyphicon-sound-dolby            { &:before { content: "\e190"; } }
-.glyphicon-sound-5-1              { &:before { content: "\e191"; } }
-.glyphicon-sound-6-1              { &:before { content: "\e192"; } }
-.glyphicon-sound-7-1              { &:before { content: "\e193"; } }
-.glyphicon-copyright-mark         { &:before { content: "\e194"; } }
-.glyphicon-registration-mark      { &:before { content: "\e195"; } }
-.glyphicon-cloud-download         { &:before { content: "\e197"; } }
-.glyphicon-cloud-upload           { &:before { content: "\e198"; } }
-.glyphicon-tree-conifer           { &:before { content: "\e199"; } }
-.glyphicon-tree-deciduous         { &:before { content: "\e200"; } }
diff --git a/themes/bootstrap3/scss/bootstrap/_grid.scss b/themes/bootstrap3/scss/bootstrap/_grid.scss
deleted file mode 100644
index f71f8b9015bfecf7d3e7afb0a1b9cfc38741f21e..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_grid.scss
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Grid system
-// --------------------------------------------------
-
-
-// Container widths
-//
-// Set the container width, and override it for fixed navbars in media queries.
-
-.container {
-  @include container-fixed();
-
-  @media (min-width: $screen-sm-min) {
-    width: $container-sm;
-  }
-  @media (min-width: $screen-md-min) {
-    width: $container-md;
-  }
-  @media (min-width: $screen-lg-min) {
-    width: $container-lg;
-  }
-}
-
-
-// Fluid container
-//
-// Utilizes the mixin meant for fixed width containers, but without any defined
-// width for fluid, full width layouts.
-
-.container-fluid {
-  @include container-fixed();
-}
-
-
-// Row
-//
-// Rows contain and clear the floats of your columns.
-
-.row {
-  @include make-row();
-}
-
-
-// Columns
-//
-// Common styles for small and large grid columns
-
-@include make-grid-columns();
-
-
-// Extra small grid
-//
-// Columns, offsets, pushes, and pulls for extra small devices like
-// smartphones.
-
-@include make-grid(xs);
-
-
-// Small grid
-//
-// Columns, offsets, pushes, and pulls for the small device range, from phones
-// to tablets.
-
-@media (min-width: $screen-sm-min) {
-  @include make-grid(sm);
-}
-
-
-// Medium grid
-//
-// Columns, offsets, pushes, and pulls for the desktop device range.
-
-@media (min-width: $screen-md-min) {
-  @include make-grid(md);
-}
-
-
-// Large grid
-//
-// Columns, offsets, pushes, and pulls for the large desktop device range.
-
-@media (min-width: $screen-lg-min) {
-  @include make-grid(lg);
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_input-groups.scss b/themes/bootstrap3/scss/bootstrap/_input-groups.scss
deleted file mode 100644
index 6c26c1dd6babd12a699ac5733d3beec8b721d31d..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_input-groups.scss
+++ /dev/null
@@ -1,162 +0,0 @@
-//
-// Input groups
-// --------------------------------------------------
-
-// Base styles
-// -------------------------
-.input-group {
-  position: relative; // For dropdowns
-  display: table;
-  border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
-
-  // Undo padding and float of grid classes
-  &[class*="col-"] {
-    float: none;
-    padding-left: 0;
-    padding-right: 0;
-  }
-
-  .form-control {
-    // Ensure that the input is always above the *appended* addon button for
-    // proper border colors.
-    position: relative;
-    z-index: 2;
-
-    // IE9 fubars the placeholder attribute in text inputs and the arrows on
-    // select elements in input groups. To fix it, we float the input. Details:
-    // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855
-    float: left;
-
-    width: 100%;
-    margin-bottom: 0;
-  }
-}
-
-// Sizing options
-//
-// Remix the default form control sizing classes into new ones for easier
-// manipulation.
-
-.input-group-lg > .form-control,
-.input-group-lg > .input-group-addon,
-.input-group-lg > .input-group-btn > .btn { @extend .input-lg; }
-.input-group-sm > .form-control,
-.input-group-sm > .input-group-addon,
-.input-group-sm > .input-group-btn > .btn { @extend .input-sm; }
-
-
-// Display as table-cell
-// -------------------------
-.input-group-addon,
-.input-group-btn,
-.input-group .form-control {
-  display: table-cell;
-
-  &:not(:first-child):not(:last-child) {
-    border-radius: 0;
-  }
-}
-// Addon and addon wrapper for buttons
-.input-group-addon,
-.input-group-btn {
-  width: 1%;
-  white-space: nowrap;
-  vertical-align: middle; // Match the inputs
-}
-
-// Text input groups
-// -------------------------
-.input-group-addon {
-  padding: $padding-base-vertical $padding-base-horizontal;
-  font-size: $font-size-base;
-  font-weight: normal;
-  line-height: 1;
-  color: $input-color;
-  text-align: center;
-  background-color: $input-group-addon-bg;
-  border: 1px solid $input-group-addon-border-color;
-  border-radius: $border-radius-base;
-
-  // Sizing
-  &.input-sm {
-    padding: $padding-small-vertical $padding-small-horizontal;
-    font-size: $font-size-small;
-    border-radius: $border-radius-small;
-  }
-  &.input-lg {
-    padding: $padding-large-vertical $padding-large-horizontal;
-    font-size: $font-size-large;
-    border-radius: $border-radius-large;
-  }
-
-  // Nuke default margins from checkboxes and radios to vertically center within.
-  input[type="radio"],
-  input[type="checkbox"] {
-    margin-top: 0;
-  }
-}
-
-// Reset rounded corners
-.input-group .form-control:first-child,
-.input-group-addon:first-child,
-.input-group-btn:first-child > .btn,
-.input-group-btn:first-child > .btn-group > .btn,
-.input-group-btn:first-child > .dropdown-toggle,
-.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
-.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
-  @include border-right-radius(0);
-}
-.input-group-addon:first-child {
-  border-right: 0;
-}
-.input-group .form-control:last-child,
-.input-group-addon:last-child,
-.input-group-btn:last-child > .btn,
-.input-group-btn:last-child > .btn-group > .btn,
-.input-group-btn:last-child > .dropdown-toggle,
-.input-group-btn:first-child > .btn:not(:first-child),
-.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
-  @include border-left-radius(0);
-}
-.input-group-addon:last-child {
-  border-left: 0;
-}
-
-// Button input groups
-// -------------------------
-.input-group-btn {
-  position: relative;
-  // Jankily prevent input button groups from wrapping with `white-space` and
-  // `font-size` in combination with `inline-block` on buttons.
-  font-size: 0;
-  white-space: nowrap;
-
-  // Negative margin for spacing, position for bringing hovered/focused/actived
-  // element above the siblings.
-  > .btn {
-    position: relative;
-    + .btn {
-      margin-left: -1px;
-    }
-    // Bring the "active" button to the front
-    &:hover,
-    &:focus,
-    &:active {
-      z-index: 2;
-    }
-  }
-
-  // Negative margin to only have a 1px border between the two
-  &:first-child {
-    > .btn,
-    > .btn-group {
-      margin-right: -1px;
-    }
-  }
-  &:last-child {
-    > .btn,
-    > .btn-group {
-      margin-left: -1px;
-    }
-  }
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_jumbotron.scss b/themes/bootstrap3/scss/bootstrap/_jumbotron.scss
deleted file mode 100644
index 4e401e7376bfe8f40ef717f6ff2c6ea305802682..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_jumbotron.scss
+++ /dev/null
@@ -1,44 +0,0 @@
-//
-// Jumbotron
-// --------------------------------------------------
-
-
-.jumbotron {
-  padding: $jumbotron-padding;
-  margin-bottom: $jumbotron-padding;
-  color: $jumbotron-color;
-  background-color: $jumbotron-bg;
-
-  h1,
-  .h1 {
-    color: $jumbotron-heading-color;
-  }
-  p {
-    margin-bottom: ($jumbotron-padding / 2);
-    font-size: $jumbotron-font-size;
-    font-weight: 200;
-  }
-
-  .container & {
-    border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container
-  }
-
-  .container {
-    max-width: 100%;
-  }
-
-  @media screen and (min-width: $screen-sm-min) {
-    padding-top:    ($jumbotron-padding * 1.6);
-    padding-bottom: ($jumbotron-padding * 1.6);
-
-    .container & {
-      padding-left:  ($jumbotron-padding * 2);
-      padding-right: ($jumbotron-padding * 2);
-    }
-
-    h1,
-    .h1 {
-      font-size: ($font-size-base * 4.5);
-    }
-  }
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_labels.scss b/themes/bootstrap3/scss/bootstrap/_labels.scss
deleted file mode 100644
index 8353eb1a657ad24030009636c5d78c45921f0984..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_labels.scss
+++ /dev/null
@@ -1,64 +0,0 @@
-//
-// Labels
-// --------------------------------------------------
-
-.label {
-  display: inline;
-  padding: .2em .6em .3em;
-  font-size: 75%;
-  font-weight: bold;
-  line-height: 1;
-  color: $label-color;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: baseline;
-  border-radius: .25em;
-
-  // Add hover effects, but only for links
-  &[href] {
-    &:hover,
-    &:focus {
-      color: $label-link-hover-color;
-      text-decoration: none;
-      cursor: pointer;
-    }
-  }
-
-  // Empty labels collapse automatically (not available in IE8)
-  &:empty {
-    display: none;
-  }
-
-  // Quick fix for labels in buttons
-  .btn & {
-    position: relative;
-    top: -1px;
-  }
-}
-
-// Colors
-// Contextual variations (linked labels get darker on :hover)
-
-.label-default {
-  @include label-variant($label-default-bg);
-}
-
-.label-primary {
-  @include label-variant($label-primary-bg);
-}
-
-.label-success {
-  @include label-variant($label-success-bg);
-}
-
-.label-info {
-  @include label-variant($label-info-bg);
-}
-
-.label-warning {
-  @include label-variant($label-warning-bg);
-}
-
-.label-danger {
-  @include label-variant($label-danger-bg);
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_list-group.scss b/themes/bootstrap3/scss/bootstrap/_list-group.scss
deleted file mode 100644
index b6089912f9c6f626688f31544f9cb63a5b8b273d..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_list-group.scss
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// List groups
-// --------------------------------------------------
-
-
-// Base class
-//
-// Easily usable on <ul>, <ol>, or <div>.
-
-.list-group {
-  // No need to set list-style: none; since .list-group-item is block level
-  margin-bottom: 20px;
-  padding-left: 0; // reset padding because ul and ol
-}
-
-
-// Individual list items
-//
-// Use on `li`s or `div`s within the `.list-group` parent.
-
-.list-group-item {
-  position: relative;
-  display: block;
-  padding: 10px 15px;
-  // Place the border on the list items and negative margin up for better styling
-  margin-bottom: -1px;
-  background-color: $list-group-bg;
-  border: 1px solid $list-group-border;
-
-  // Round the first and last items
-  &:first-child {
-    @include border-top-radius($list-group-border-radius);
-  }
-  &:last-child {
-    margin-bottom: 0;
-    @include border-bottom-radius($list-group-border-radius);
-  }
-
-  // Align badges within list items
-  > .badge {
-    float: right;
-  }
-  > .badge + .badge {
-    margin-right: 5px;
-  }
-}
-
-
-// Linked list items
-//
-// Use anchor elements instead of `li`s or `div`s to create linked list items.
-// Includes an extra `.active` modifier class for showing selected items.
-
-a.list-group-item {
-  color: $list-group-link-color;
-
-  .list-group-item-heading {
-    color: $list-group-link-heading-color;
-  }
-
-  // Hover state
-  &:hover,
-  &:focus {
-    text-decoration: none;
-    background-color: $list-group-hover-bg;
-  }
-
-  // Active class on item itself, not parent
-  &.active,
-  &.active:hover,
-  &.active:focus {
-    z-index: 2; // Place active items above their siblings for proper border styling
-    color: $list-group-active-color;
-    background-color: $list-group-active-bg;
-    border-color: $list-group-active-border;
-
-    // Force color to inherit for custom content
-    .list-group-item-heading {
-      color: inherit;
-    }
-    .list-group-item-text {
-      color: $list-group-active-text-color;
-    }
-  }
-}
-
-
-// Contextual variants
-//
-// Add modifier classes to change text and background color on individual items.
-// Organizationally, this must come after the `:hover` states.
-
-@include list-group-item-variant(success, $state-success-bg, $state-success-text);
-@include list-group-item-variant(info, $state-info-bg, $state-info-text);
-@include list-group-item-variant(warning, $state-warning-bg, $state-warning-text);
-@include list-group-item-variant(danger, $state-danger-bg, $state-danger-text);
-
-
-// Custom content options
-//
-// Extra classes for creating well-formatted content within `.list-group-item`s.
-
-.list-group-item-heading {
-  margin-top: 0;
-  margin-bottom: 5px;
-}
-.list-group-item-text {
-  margin-bottom: 0;
-  line-height: 1.3;
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_media.scss b/themes/bootstrap3/scss/bootstrap/_media.scss
deleted file mode 100644
index 5ad22cd6d540fa378940c97910eabad478b09cba..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_media.scss
+++ /dev/null
@@ -1,56 +0,0 @@
-// Media objects
-// Source: http://stubbornella.org/content/?p=497
-// --------------------------------------------------
-
-
-// Common styles
-// -------------------------
-
-// Clear the floats
-.media,
-.media-body {
-  overflow: hidden;
-  zoom: 1;
-}
-
-// Proper spacing between instances of .media
-.media,
-.media .media {
-  margin-top: 15px;
-}
-.media:first-child {
-  margin-top: 0;
-}
-
-// For images and videos, set to block
-.media-object {
-  display: block;
-}
-
-// Reset margins on headings for tighter default spacing
-.media-heading {
-  margin: 0 0 5px;
-}
-
-
-// Media image alignment
-// -------------------------
-
-.media {
-  > .pull-left {
-    margin-right: 10px;
-  }
-  > .pull-right {
-    margin-left: 10px;
-  }
-}
-
-
-// Media list variation
-// -------------------------
-
-// Undo default ul/ol styles
-.media-list {
-  padding-left: 0;
-  list-style: none;
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_mixins.scss b/themes/bootstrap3/scss/bootstrap/_mixins.scss
deleted file mode 100644
index 74ccf9f8b61c758346738db50c7431f73682b323..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_mixins.scss
+++ /dev/null
@@ -1,947 +0,0 @@
-//
-// Mixins
-// --------------------------------------------------
-
-
-// Utilities
-// -------------------------
-
-// Clearfix
-// Source: http://nicolasgallagher.com/micro-clearfix-hack/
-//
-// For modern browsers
-// 1. The space content is one way to avoid an Opera bug when the
-//    contenteditable attribute is included anywhere else in the document.
-//    Otherwise it causes space to appear at the top and bottom of elements
-//    that are clearfixed.
-// 2. The use of `table` rather than `block` is only necessary if using
-//    `:before` to contain the top-margins of child elements.
-@mixin clearfix() {
-  &:before,
-  &:after {
-    content: " "; // 1
-    display: table; // 2
-  }
-  &:after {
-    clear: both;
-  }
-}
-
-// WebKit-style focus
-@mixin tab-focus() {
-  // Default
-  outline: thin dotted;
-  // WebKit
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
-
-// Center-align a block level element
-@mixin center-block() {
-  display: block;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-// Sizing shortcuts
-@mixin size($width, $height) {
-  width: $width;
-  height: $height;
-}
-@mixin square($size) {
-  @include size($size, $size);
-}
-
-// Placeholder text
-@mixin placeholder($color: $input-color-placeholder) {
-  &::-moz-placeholder           { color: $color;   // Firefox
-                                  opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526
-  &:-ms-input-placeholder       { color: $color; } // Internet Explorer 10+
-  &::-webkit-input-placeholder  { color: $color; } // Safari and Chrome
-}
-
-// Text overflow
-// Requires inline-block or block for proper styling
-@mixin text-overflow() {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-
-// CSS image replacement
-//
-// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
-// mixins being reused as classes with the same name, this doesn't hold up. As
-// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. Note
-// that we cannot chain the mixins together in Less, so they are repeated.
-//
-// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
-
-// Deprecated as of v3.0.1 (will be removed in v4)
-@mixin hide-text() {
-  font: #{0/0} a;
-  color: transparent;
-  text-shadow: none;
-  background-color: transparent;
-  border: 0;
-}
-// New mixin to use as of v3.0.1
-@mixin text-hide() {
-  @include hide-text();
-}
-
-
-
-// CSS3 PROPERTIES
-// --------------------------------------------------
-
-// Single side border-radius
-@mixin border-top-radius($radius) {
-  border-top-right-radius: $radius;
-   border-top-left-radius: $radius;
-}
-@mixin border-right-radius($radius) {
-  border-bottom-right-radius: $radius;
-     border-top-right-radius: $radius;
-}
-@mixin border-bottom-radius($radius) {
-  border-bottom-right-radius: $radius;
-   border-bottom-left-radius: $radius;
-}
-@mixin border-left-radius($radius) {
-  border-bottom-left-radius: $radius;
-     border-top-left-radius: $radius;
-}
-
-// Drop shadows
-//
-// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
-//   supported browsers that have box shadow capabilities now support the
-//   standard `box-shadow` property.
-@mixin box-shadow($shadow...) {
-  -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1
-          box-shadow: $shadow;
-}
-
-// Transitions
-@mixin transition($transition...) {
-  -webkit-transition: $transition;
-          transition: $transition;
-}
-@mixin transition-property($transition-property...) {
-  -webkit-transition-property: $transition-property;
-          transition-property: $transition-property;
-}
-@mixin transition-delay($transition-delay) {
-  -webkit-transition-delay: $transition-delay;
-          transition-delay: $transition-delay;
-}
-@mixin transition-duration($transition-duration...) {
-  -webkit-transition-duration: $transition-duration;
-          transition-duration: $transition-duration;
-}
-@mixin transition-transform($transition...) {
-  -webkit-transition: -webkit-transform $transition;
-     -moz-transition: -moz-transform $transition;
-       -o-transition: -o-transform $transition;
-          transition: transform $transition;
-}
-
-// Transformations
-@mixin rotate($degrees) {
-  -webkit-transform: rotate($degrees);
-      -ms-transform: rotate($degrees); // IE9 only
-          transform: rotate($degrees);
-}
-@mixin scale($scale-args...) {
-  -webkit-transform: scale($scale-args);
-      -ms-transform: scale($scale-args); // IE9 only
-          transform: scale($scale-args);
-}
-@mixin translate($x, $y) {
-  -webkit-transform: translate($x, $y);
-      -ms-transform: translate($x, $y); // IE9 only
-          transform: translate($x, $y);
-}
-@mixin skew($x, $y) {
-  -webkit-transform: skew($x, $y);
-      -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
-          transform: skew($x, $y);
-}
-@mixin translate3d($x, $y, $z) {
-  -webkit-transform: translate3d($x, $y, $z);
-          transform: translate3d($x, $y, $z);
-}
-
-@mixin rotateX($degrees) {
-  -webkit-transform: rotateX($degrees);
-      -ms-transform: rotateX($degrees); // IE9 only
-          transform: rotateX($degrees);
-}
-@mixin rotateY($degrees) {
-  -webkit-transform: rotateY($degrees);
-      -ms-transform: rotateY($degrees); // IE9 only
-          transform: rotateY($degrees);
-}
-@mixin perspective($perspective) {
-  -webkit-perspective: $perspective;
-     -moz-perspective: $perspective;
-          perspective: $perspective;
-}
-@mixin perspective-origin($perspective) {
-  -webkit-perspective-origin: $perspective;
-     -moz-perspective-origin: $perspective;
-          perspective-origin: $perspective;
-}
-@mixin transform-origin($origin) {
-  -webkit-transform-origin: $origin;
-     -moz-transform-origin: $origin;
-      -ms-transform-origin: $origin; // IE9 only
-          transform-origin: $origin;
-}
-
-// Animations
-@mixin animation($animation) {
-  -webkit-animation: $animation;
-          animation: $animation;
-}
-@mixin animation-name($name) {
-  -webkit-animation-name: $name;
-          animation-name: $name;
-}
-@mixin animation-duration($duration) {
-  -webkit-animation-duration: $duration;
-          animation-duration: $duration;
-}
-@mixin animation-timing-function($timing-function) {
-  -webkit-animation-timing-function: $timing-function;
-          animation-timing-function: $timing-function;
-}
-@mixin animation-delay($delay) {
-  -webkit-animation-delay: $delay;
-          animation-delay: $delay;
-}
-@mixin animation-iteration-count($iteration-count) {
-  -webkit-animation-iteration-count: $iteration-count;
-          animation-iteration-count: $iteration-count;
-}
-@mixin animation-direction($direction) {
-  -webkit-animation-direction: $direction;
-          animation-direction: $direction;
-}
-
-// Backface visibility
-// Prevent browsers from flickering when using CSS 3D transforms.
-// Default value is `visible`, but can be changed to `hidden`
-@mixin backface-visibility($visibility){
-  -webkit-backface-visibility: $visibility;
-     -moz-backface-visibility: $visibility;
-          backface-visibility: $visibility;
-}
-
-// Box sizing
-@mixin box-sizing($boxmodel) {
-  -webkit-box-sizing: $boxmodel;
-     -moz-box-sizing: $boxmodel;
-          box-sizing: $boxmodel;
-}
-
-// User select
-// For selecting text on the page
-@mixin user-select($select) {
-  -webkit-user-select: $select;
-     -moz-user-select: $select;
-      -ms-user-select: $select; // IE10+
-          user-select: $select;
-}
-
-// Resize anything
-@mixin resizable($direction) {
-  resize: $direction; // Options: horizontal, vertical, both
-  overflow: auto; // Safari fix
-}
-
-// CSS3 Content Columns
-@mixin content-columns($column-count, $column-gap: $grid-gutter-width) {
-  -webkit-column-count: $column-count;
-     -moz-column-count: $column-count;
-          column-count: $column-count;
-  -webkit-column-gap: $column-gap;
-     -moz-column-gap: $column-gap;
-          column-gap: $column-gap;
-}
-
-// Optional hyphenation
-@mixin hyphens($mode: auto) {
-  word-wrap: break-word;
-  -webkit-hyphens: $mode;
-     -moz-hyphens: $mode;
-      -ms-hyphens: $mode; // IE10+
-       -o-hyphens: $mode;
-          hyphens: $mode;
-}
-
-// Opacity
-@mixin opacity($opacity) {
-  opacity: $opacity;
-  // IE8 filter
-  $opacity-ie: ($opacity * 100);
-  filter: #{alpha(opacity=$opacity-ie)};
-}
-
-
-
-// GRADIENTS
-// --------------------------------------------------
-
-
-
-// Horizontal gradient, from left to right
-//
-// Creates two color stops, start and end, by specifying a color and position for each color stop.
-// Color stops are not available in IE9 and below.
-@mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
-  background-image: -webkit-linear-gradient(left, color-stop($start-color $start-percent), color-stop($end-color $end-percent)); // Safari 5.1-6, Chrome 10+
-  background-image:  linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down
-}
-
-// Vertical gradient, from top to bottom
-//
-// Creates two color stops, start and end, by specifying a color and position for each color stop.
-// Color stops are not available in IE9 and below.
-@mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
-  background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent);  // Safari 5.1-6, Chrome 10+
-  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down
-}
-
-@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
-  background-repeat: repeat-x;
-  background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1-6, Chrome 10+
-  background-image: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
-}
-@mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
-  background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
-  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
-  background-repeat: no-repeat;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down, gets no color-stop at all for proper fallback
-}
-@mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
-  background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color);
-  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
-  background-repeat: no-repeat;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback
-}
-@mixin gradient-radial($inner-color: #555, $outer-color: #333) {
-  background-image: -webkit-radial-gradient(circle, $inner-color, $outer-color);
-  background-image: radial-gradient(circle, $inner-color, $outer-color);
-  background-repeat: no-repeat;
-}
-@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
-  background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
-  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
-}
-
-// Reset filters for IE
-//
-// When you need to remove a gradient background, do not forget to use this to reset
-// the IE filter for IE9 and below.
-@mixin reset-filter() {
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-
-
-
-// Retina images
-//
-// Short retina mixin for setting background-image and -size
-
-@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
-  background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-1x}"), "#{$file-1x}"));
-
-  @media
-  only screen and (-webkit-min-device-pixel-ratio: 2),
-  only screen and (   min--moz-device-pixel-ratio: 2),
-  only screen and (     -o-min-device-pixel-ratio: 2/1),
-  only screen and (        min-device-pixel-ratio: 2),
-  only screen and (                min-resolution: 192dpi),
-  only screen and (                min-resolution: 2dppx) {
-    background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-2x}"), "#{$file-2x}"));
-    background-size: $width-1x $height-1x;
-  }
-}
-
-
-// Responsive image
-//
-// Keep images from scaling beyond the width of their parents.
-
-@mixin img-responsive($display: block) {
-  display: $display;
-  max-width: 100%; // Part 1: Set a maximum relative to the parent
-  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
-}
-
-
-// COMPONENT MIXINS
-// --------------------------------------------------
-
-// Horizontal dividers
-// -------------------------
-// Dividers (basically an hr) within dropdowns and nav lists
-@mixin nav-divider($color: #e5e5e5) {
-  height: 1px;
-  margin: (($line-height-computed / 2) - 1) 0;
-  overflow: hidden;
-  background-color: $color;
-}
-
-// Panels
-// -------------------------
-@mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) {
-  border-color: $border;
-
-  & > .panel-heading {
-    color: $heading-text-color;
-    background-color: $heading-bg-color;
-    border-color: $heading-border;
-
-    + .panel-collapse .panel-body {
-      border-top-color: $border;
-    }
-  }
-  & > .panel-footer {
-    + .panel-collapse .panel-body {
-      border-bottom-color: $border;
-    }
-  }
-}
-
-// Alerts
-// -------------------------
-@mixin alert-variant($background, $border, $text-color) {
-  background-color: $background;
-  border-color: $border;
-  color: $text-color;
-
-  hr {
-    border-top-color: darken($border, 5%);
-  }
-  .alert-link {
-    color: darken($text-color, 10%);
-  }
-}
-
-// Tables
-// -------------------------
-@mixin table-row-variant($state, $background) {
-  // Exact selectors below required to override `.table-striped` and prevent
-  // inheritance to nested tables.
-  .table > thead > tr,
-  .table > tbody > tr,
-  .table > tfoot > tr {
-    > td.#{$state},
-    > th.#{$state},
-    &.#{$state} > td,
-    &.#{$state} > th {
-      background-color: $background;
-    }
-  }
-
-  // Hover states for `.table-hover`
-  // Note: this is not available for cells or rows within `thead` or `tfoot`.
-  .table-hover > tbody > tr {
-    > td.#{$state}:hover,
-    > th.#{$state}:hover,
-    &.#{$state}:hover > td,
-    &.#{$state}:hover > th {
-      background-color: darken($background, 5%);
-    }
-  }
-}
-
-// List Groups
-// -------------------------
-@mixin list-group-item-variant($state, $background, $color) {
-  .list-group-item-#{$state} {
-    color: $color;
-    background-color: $background;
-
-    // [converter] extracted a& to a.list-group-item-#{$state}
-  }
-
-  a.list-group-item-#{$state} {
-    color: $color;
-
-    .list-group-item-heading { color: inherit; }
-
-    &:hover,
-    &:focus {
-      color: $color;
-      background-color: darken($background, 5%);
-    }
-    &.active,
-    &.active:hover,
-    &.active:focus {
-      color: #fff;
-      background-color: $color;
-      border-color: $color;
-    }
-  }
-}
-
-// Button variants
-// -------------------------
-// Easily pump out default styles, as well as :hover, :focus, :active,
-// and disabled options for all buttons
-@mixin button-variant($color, $background, $border) {
-  color: $color;
-  background-color: $background;
-  border-color: $border;
-
-  &:hover,
-  &:focus,
-  &:active,
-  &.active {
-    color: $color;
-    background-color: darken($background, 8%);
-        border-color: darken($border, 12%);
-  }
-  .open & { &.dropdown-toggle {
-    color: $color;
-    background-color: darken($background, 8%);
-        border-color: darken($border, 12%);
-  } }
-  &:active,
-  &.active {
-    background-image: none;
-  }
-  .open & { &.dropdown-toggle {
-    background-image: none;
-  } }
-  &.disabled,
-  &[disabled],
-  fieldset[disabled] & {
-    &,
-    &:hover,
-    &:focus,
-    &:active,
-    &.active {
-      background-color: $background;
-          border-color: $border;
-    }
-  }
-
-  .badge {
-    color: $background;
-    background-color: $color;
-  }
-}
-
-// Button sizes
-// -------------------------
-@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
-  padding: $padding-vertical $padding-horizontal;
-  font-size: $font-size;
-  line-height: $line-height;
-  border-radius: $border-radius;
-}
-
-// Pagination
-// -------------------------
-@mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $border-radius) {
-  > li {
-    > a,
-    > span {
-      padding: $padding-vertical $padding-horizontal;
-      font-size: $font-size;
-    }
-    &:first-child {
-      > a,
-      > span {
-        @include border-left-radius($border-radius);
-      }
-    }
-    &:last-child {
-      > a,
-      > span {
-        @include border-right-radius($border-radius);
-      }
-    }
-  }
-}
-
-// Labels
-// -------------------------
-@mixin label-variant($color) {
-  background-color: $color;
-  &[href] {
-    &:hover,
-    &:focus {
-      background-color: darken($color, 10%);
-    }
-  }
-}
-
-// Contextual backgrounds
-// -------------------------
-// [converter] $parent hack
-@mixin bg-variant($parent, $color) {
-  #{$parent} {
-    background-color: $color;
-  }
-  a#{$parent}:hover {
-    background-color: darken($color, 10%);
-  }
-}
-
-// Typography
-// -------------------------
-// [converter] $parent hack
-@mixin text-emphasis-variant($parent, $color) {
-  #{$parent} {
-    color: $color;
-  }
-  a#{$parent}:hover {
-    color: darken($color, 10%);
-  }
-}
-
-// Navbar vertical align
-// -------------------------
-// Vertically center elements in the navbar.
-// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
-@mixin navbar-vertical-align($element-height) {
-  margin-top: (($navbar-height - $element-height) / 2);
-  margin-bottom: (($navbar-height - $element-height) / 2);
-}
-
-// Progress bars
-// -------------------------
-@mixin progress-bar-variant($color) {
-  background-color: $color;
-  .progress-striped & {
-    @include gradient-striped();
-  }
-}
-
-// Responsive utilities
-// -------------------------
-// More easily include all the states for responsive-utilities.less.
-// [converter] $parent hack
-@mixin responsive-visibility($parent) {
-  #{$parent} {
-    display: block !important;
-  }
-  table#{$parent}  { display: table; }
-  tr#{$parent}     { display: table-row !important; }
-  th#{$parent},
-  td#{$parent}     { display: table-cell !important; }
-}
-
-// [converter] $parent hack
-@mixin responsive-invisibility($parent) {
-  #{$parent} {
-    display: none !important;
-  }
-}
-
-
-// Grid System
-// -----------
-
-// Centered container element
-@mixin container-fixed() {
-  margin-right: auto;
-  margin-left: auto;
-  padding-left:  ($grid-gutter-width / 2);
-  padding-right: ($grid-gutter-width / 2);
-  @include clearfix();
-}
-
-// Creates a wrapper for a series of columns
-@mixin make-row($gutter: $grid-gutter-width) {
-  margin-left:  ($gutter / -2);
-  margin-right: ($gutter / -2);
-  @include clearfix();
-}
-
-// Generate the extra small columns
-@mixin make-xs-column($columns, $gutter: $grid-gutter-width) {
-  position: relative;
-  float: left;
-  width: percentage(($columns / $grid-columns));
-  min-height: 1px;
-  padding-left:  ($gutter / 2);
-  padding-right: ($gutter / 2);
-}
-@mixin make-xs-column-offset($columns) {
-  @media (min-width: $screen-xs-min) {
-    margin-left: percentage(($columns / $grid-columns));
-  }
-}
-@mixin make-xs-column-push($columns) {
-  @media (min-width: $screen-xs-min) {
-    left: percentage(($columns / $grid-columns));
-  }
-}
-@mixin make-xs-column-pull($columns) {
-  @media (min-width: $screen-xs-min) {
-    right: percentage(($columns / $grid-columns));
-  }
-}
-
-
-// Generate the small columns
-@mixin make-sm-column($columns, $gutter: $grid-gutter-width) {
-  position: relative;
-  min-height: 1px;
-  padding-left:  ($gutter / 2);
-  padding-right: ($gutter / 2);
-
-  @media (min-width: $screen-sm-min) {
-    float: left;
-    width: percentage(($columns / $grid-columns));
-  }
-}
-@mixin make-sm-column-offset($columns) {
-  @media (min-width: $screen-sm-min) {
-    margin-left: percentage(($columns / $grid-columns));
-  }
-}
-@mixin make-sm-column-push($columns) {
-  @media (min-width: $screen-sm-min) {
-    left: percentage(($columns / $grid-columns));
-  }
-}
-@mixin make-sm-column-pull($columns) {
-  @media (min-width: $screen-sm-min) {
-    right: percentage(($columns / $grid-columns));
-  }
-}
-
-
-// Generate the medium columns
-@mixin make-md-column($columns, $gutter: $grid-gutter-width) {
-  position: relative;
-  min-height: 1px;
-  padding-left:  ($gutter / 2);
-  padding-right: ($gutter / 2);
-
-  @media (min-width: $screen-md-min) {
-    float: left;
-    width: percentage(($columns / $grid-columns));
-  }
-}
-@mixin make-md-column-offset($columns) {
-  @media (min-width: $screen-md-min) {
-    margin-left: percentage(($columns / $grid-columns));
-  }
-}
-@mixin make-md-column-push($columns) {
-  @media (min-width: $screen-md-min) {
-    left: percentage(($columns / $grid-columns));
-  }
-}
-@mixin make-md-column-pull($columns) {
-  @media (min-width: $screen-md-min) {
-    right: percentage(($columns / $grid-columns));
-  }
-}
-
-
-// Generate the large columns
-@mixin make-lg-column($columns, $gutter: $grid-gutter-width) {
-  position: relative;
-  min-height: 1px;
-  padding-left:  ($gutter / 2);
-  padding-right: ($gutter / 2);
-
-  @media (min-width: $screen-lg-min) {
-    float: left;
-    width: percentage(($columns / $grid-columns));
-  }
-}
-@mixin make-lg-column-offset($columns) {
-  @media (min-width: $screen-lg-min) {
-    margin-left: percentage(($columns / $grid-columns));
-  }
-}
-@mixin make-lg-column-push($columns) {
-  @media (min-width: $screen-lg-min) {
-    left: percentage(($columns / $grid-columns));
-  }
-}
-@mixin make-lg-column-pull($columns) {
-  @media (min-width: $screen-lg-min) {
-    right: percentage(($columns / $grid-columns));
-  }
-}
-
-
-// Framework grid generation
-//
-// Used only by Bootstrap to generate the correct number of grid classes given
-// any value of `$grid-columns`.
-
-// [converter] This is defined recursively in LESS, but Sass supports real loops
-@mixin make-grid-columns() {
-  $list: '';
-  $i: 1;
-  $list: ".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}";
-  @for $i from (1 + 1) through $grid-columns {
-    $list: "#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}";
-  }
-  #{$list} {
-    position: relative;
-    // Prevent columns from collapsing when empty
-    min-height: 1px;
-    // Inner gutter via padding
-    padding-left:  ($grid-gutter-width / 2);
-    padding-right: ($grid-gutter-width / 2);
-  }
-}
-
-
-// [converter] This is defined recursively in LESS, but Sass supports real loops
-@mixin float-grid-columns($class) {
-  $list: '';
-  $i: 1;
-  $list: ".col-#{$class}-#{$i}";
-  @for $i from (1 + 1) through $grid-columns {
-    $list: "#{$list}, .col-#{$class}-#{$i}";
-  }
-  #{$list} {
-    float: left;
-  }
-}
-
-
-@mixin calc-grid-column($index, $class, $type) {
-  @if ($type == width) and ($index > 0) {
-    .col-#{$class}-#{$index} {
-      width: percentage(($index / $grid-columns));
-    }
-  }
-  @if ($type == push) {
-    .col-#{$class}-push-#{$index} {
-      left: percentage(($index / $grid-columns));
-    }
-  }
-  @if ($type == pull) {
-    .col-#{$class}-pull-#{$index} {
-      right: percentage(($index / $grid-columns));
-    }
-  }
-  @if ($type == offset) {
-    .col-#{$class}-offset-#{$index} {
-      margin-left: percentage(($index / $grid-columns));
-    }
-  }
-}
-
-// [converter] This is defined recursively in LESS, but Sass supports real loops
-@mixin loop-grid-columns($columns, $class, $type) {
-  @for $i from 0 through $columns {
-    @include calc-grid-column($i, $class, $type);
-  }
-}
-
-
-// Create grid for specific class
-@mixin make-grid($class) {
-  @include float-grid-columns($class);
-  @include loop-grid-columns($grid-columns, $class, width);
-  @include loop-grid-columns($grid-columns, $class, pull);
-  @include loop-grid-columns($grid-columns, $class, push);
-  @include loop-grid-columns($grid-columns, $class, offset);
-}
-
-// Form validation states
-//
-// Used in forms.less to generate the form validation CSS for warnings, errors,
-// and successes.
-
-@mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) {
-  // Color the label and help text
-  .help-block,
-  .control-label,
-  .radio,
-  .checkbox,
-  .radio-inline,
-  .checkbox-inline  {
-    color: $text-color;
-  }
-  // Set the border and box shadow on specific inputs to match
-  .form-control {
-    border-color: $border-color;
-    @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
-    &:focus {
-      border-color: darken($border-color, 10%);
-      $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
-      @include box-shadow($shadow);
-    }
-  }
-  // Set validation states also for addons
-  .input-group-addon {
-    color: $text-color;
-    border-color: $border-color;
-    background-color: $background-color;
-  }
-  // Optional feedback icon
-  .form-control-feedback {
-    color: $text-color;
-  }
-}
-
-// Form control focus state
-//
-// Generate a customized focus state and for any input with the specified color,
-// which defaults to the `$input-focus-border` variable.
-//
-// We highly encourage you to not customize the default value, but instead use
-// this to tweak colors on an as-needed basis. This aesthetic change is based on
-// WebKit's default styles, but applicable to a wider range of browsers. Its
-// usability and accessibility should be taken into account with any change.
-//
-// Example usage: change the default blue border and shadow to white for better
-// contrast against a dark gray background.
-
-@mixin form-control-focus($color: $input-border-focus) {
-  $color-rgba: rgba(red($color), green($color), blue($color), .6);
-  &:focus {
-    border-color: $color;
-    outline: 0;
-    @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba);
-  }
-}
-
-// Form control sizing
-//
-// Relative text size, padding, and border-radii changes for form controls. For
-// horizontal sizing, wrap controls in the predefined grid classes. `<select>`
-// element gets special love because it's special, and that's a fact!
-
-// [converter] $parent hack
-@mixin input-size($parent, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
-  #{$parent} {
-    height: $input-height;
-    padding: $padding-vertical $padding-horizontal;
-    font-size: $font-size;
-    line-height: $line-height;
-    border-radius: $border-radius;
-  }
-
-  select#{$parent} {
-    height: $input-height;
-    line-height: $input-height;
-  }
-
-  textarea#{$parent},
-  select[multiple]#{$parent} {
-    height: auto;
-  }
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_modals.scss b/themes/bootstrap3/scss/bootstrap/_modals.scss
deleted file mode 100644
index 931092cf0bb8347cba35e97ed190b6b8fbe47359..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_modals.scss
+++ /dev/null
@@ -1,139 +0,0 @@
-//
-// Modals
-// --------------------------------------------------
-
-// .modal-open      - body class for killing the scroll
-// .modal           - container to scroll within
-// .modal-dialog    - positioning shell for the actual modal
-// .modal-content   - actual modal w/ bg and corners and shit
-
-// Kill the scroll on the body
-.modal-open {
-  overflow: hidden;
-}
-
-// Container that the modal scrolls within
-.modal {
-  display: none;
-  overflow: auto;
-  overflow-y: scroll;
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: $zindex-modal;
-  -webkit-overflow-scrolling: touch;
-
-  // Prevent Chrome on Windows from adding a focus outline. For details, see
-  // https://github.com/twbs/bootstrap/pull/10951.
-  outline: 0;
-
-  // When fading in the modal, animate it to slide down
-  &.fade .modal-dialog {
-    @include translate(0, -25%);
-    @include transition-transform(0.3s ease-out);
-  }
-  &.in .modal-dialog { @include translate(0, 0)}
-}
-
-// Shell div to position the modal with bottom padding
-.modal-dialog {
-  position: relative;
-  width: auto;
-  margin: 10px;
-}
-
-// Actual modal
-.modal-content {
-  position: relative;
-  background-color: $modal-content-bg;
-  border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
-  border: 1px solid $modal-content-border-color;
-  border-radius: $border-radius-large;
-  @include box-shadow(0 3px 9px rgba(0,0,0,.5));
-  background-clip: padding-box;
-  // Remove focus outline from opened modal
-  outline: none;
-}
-
-// Modal background
-.modal-backdrop {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: $zindex-modal-background;
-  background-color: $modal-backdrop-bg;
-  // Fade for backdrop
-  &.fade { @include opacity(0); }
-  &.in { @include opacity($modal-backdrop-opacity); }
-}
-
-// Modal header
-// Top section of the modal w/ title and dismiss
-.modal-header {
-  padding: $modal-title-padding;
-  border-bottom: 1px solid $modal-header-border-color;
-  min-height: ($modal-title-padding + $modal-title-line-height);
-}
-// Close icon
-.modal-header .close {
-  margin-top: -2px;
-}
-
-// Title text within header
-.modal-title {
-  margin: 0;
-  line-height: $modal-title-line-height;
-}
-
-// Modal body
-// Where all modal content resides (sibling of .modal-header and .modal-footer)
-.modal-body {
-  position: relative;
-  padding: $modal-inner-padding;
-}
-
-// Footer (for actions)
-.modal-footer {
-  margin-top: 15px;
-  padding: ($modal-inner-padding - 1) $modal-inner-padding $modal-inner-padding;
-  text-align: right; // right align buttons
-  border-top: 1px solid $modal-footer-border-color;
-  @include clearfix(); // clear it in case folks use .pull-* classes on buttons
-
-  // Properly space out buttons
-  .btn + .btn {
-    margin-left: 5px;
-    margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
-  }
-  // but override that for button groups
-  .btn-group .btn + .btn {
-    margin-left: -1px;
-  }
-  // and override it for block buttons as well
-  .btn-block + .btn-block {
-    margin-left: 0;
-  }
-}
-
-// Scale up the modal
-@media (min-width: $screen-sm-min) {
-  // Automatically set modal's width for larger viewports
-  .modal-dialog {
-    width: $modal-md;
-    margin: 30px auto;
-  }
-  .modal-content {
-    @include box-shadow(0 5px 15px rgba(0,0,0,.5));
-  }
-
-  // Modal sizes
-  .modal-sm { width: $modal-sm; }
-}
-
-@media (min-width: $screen-md-min) {
-  .modal-lg { width: $modal-lg; }
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_navbar.scss b/themes/bootstrap3/scss/bootstrap/_navbar.scss
deleted file mode 100644
index 8ad94374b59945a7685cfc7fa628d3dee95722f0..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_navbar.scss
+++ /dev/null
@@ -1,620 +0,0 @@
-//
-// Navbars
-// --------------------------------------------------
-
-
-// Wrapper and base class
-//
-// Provide a static navbar from which we expand to create full-width, fixed, and
-// other navbar variations.
-
-.navbar {
-  position: relative;
-  min-height: $navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
-  margin-bottom: $navbar-margin-bottom;
-  border: 1px solid transparent;
-
-  // Prevent floats from breaking the navbar
-  @include clearfix();
-
-  @media (min-width: $grid-float-breakpoint) {
-    border-radius: $navbar-border-radius;
-  }
-}
-
-
-// Navbar heading
-//
-// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
-// styling of responsive aspects.
-
-.navbar-header {
-  @include clearfix();
-
-  @media (min-width: $grid-float-breakpoint) {
-    float: left;
-  }
-}
-
-
-// Navbar collapse (body)
-//
-// Group your navbar content into this for easy collapsing and expanding across
-// various device sizes. By default, this content is collapsed when <768px, but
-// will expand past that for a horizontal display.
-//
-// To start (on mobile devices) the navbar links, forms, and buttons are stacked
-// vertically and include a `max-height` to overflow in case you have too much
-// content for the user's viewport.
-
-.navbar-collapse {
-  max-height: $navbar-collapse-max-height;
-  overflow-x: visible;
-  padding-right: $navbar-padding-horizontal;
-  padding-left:  $navbar-padding-horizontal;
-  border-top: 1px solid transparent;
-  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
-  @include clearfix();
-  -webkit-overflow-scrolling: touch;
-
-  &.in {
-    overflow-y: auto;
-  }
-
-  @media (min-width: $grid-float-breakpoint) {
-    width: auto;
-    border-top: 0;
-    box-shadow: none;
-
-    &.collapse {
-      display: block !important;
-      height: auto !important;
-      padding-bottom: 0; // Override default setting
-      overflow: visible !important;
-    }
-
-    &.in {
-      overflow-y: visible;
-    }
-
-    // Undo the collapse side padding for navbars with containers to ensure
-    // alignment of right-aligned contents.
-    .navbar-fixed-top &,
-    .navbar-static-top &,
-    .navbar-fixed-bottom & {
-      padding-left: 0;
-      padding-right: 0;
-    }
-  }
-}
-
-
-// Both navbar header and collapse
-//
-// When a container is present, change the behavior of the header and collapse.
-
-.container,
-.container-fluid {
-  > .navbar-header,
-  > .navbar-collapse {
-    margin-right: -$navbar-padding-horizontal;
-    margin-left:  -$navbar-padding-horizontal;
-
-    @media (min-width: $grid-float-breakpoint) {
-      margin-right: 0;
-      margin-left:  0;
-    }
-  }
-}
-
-
-//
-// Navbar alignment options
-//
-// Display the navbar across the entirety of the page or fixed it to the top or
-// bottom of the page.
-
-// Static top (unfixed, but 100% wide) navbar
-.navbar-static-top {
-  z-index: $zindex-navbar;
-  border-width: 0 0 1px;
-
-  @media (min-width: $grid-float-breakpoint) {
-    border-radius: 0;
-  }
-}
-
-// Fix the top/bottom navbars when screen real estate supports it
-.navbar-fixed-top,
-.navbar-fixed-bottom {
-  position: fixed;
-  right: 0;
-  left: 0;
-  z-index: $zindex-navbar-fixed;
-
-  // Undo the rounded corners
-  @media (min-width: $grid-float-breakpoint) {
-    border-radius: 0;
-  }
-}
-.navbar-fixed-top {
-  top: 0;
-  border-width: 0 0 1px;
-}
-.navbar-fixed-bottom {
-  bottom: 0;
-  margin-bottom: 0; // override .navbar defaults
-  border-width: 1px 0 0;
-}
-
-
-// Brand/project name
-
-.navbar-brand {
-  float: left;
-  padding: $navbar-padding-vertical $navbar-padding-horizontal;
-  font-size: $font-size-large;
-  line-height: $line-height-computed;
-  height: $navbar-height;
-
-  &:hover,
-  &:focus {
-    text-decoration: none;
-  }
-
-  @media (min-width: $grid-float-breakpoint) {
-    .navbar > .container &,
-    .navbar > .container-fluid & {
-      margin-left: -$navbar-padding-horizontal;
-    }
-  }
-}
-
-
-// Navbar toggle
-//
-// Custom button for toggling the `.navbar-collapse`, powered by the collapse
-// JavaScript plugin.
-
-.navbar-toggle {
-  position: relative;
-  float: right;
-  margin-right: $navbar-padding-horizontal;
-  padding: 9px 10px;
-  @include navbar-vertical-align(34px);
-  background-color: transparent;
-  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
-  border: 1px solid transparent;
-  border-radius: $border-radius-base;
-
-  // We remove the `outline` here, but later compensate by attaching `:hover`
-  // styles to `:focus`.
-  &:focus {
-    outline: none;
-  }
-
-  // Bars
-  .icon-bar {
-    display: block;
-    width: 22px;
-    height: 2px;
-    border-radius: 1px;
-  }
-  .icon-bar + .icon-bar {
-    margin-top: 4px;
-  }
-
-  @media (min-width: $grid-float-breakpoint) {
-    display: none;
-  }
-}
-
-
-// Navbar nav links
-//
-// Builds on top of the `.nav` components with its own modifier class to make
-// the nav the full height of the horizontal nav (above 768px).
-
-.navbar-nav {
-  margin: ($navbar-padding-vertical / 2) (-$navbar-padding-horizontal);
-
-  > li > a {
-    padding-top:    10px;
-    padding-bottom: 10px;
-    line-height: $line-height-computed;
-  }
-
-  @media (max-width: $grid-float-breakpoint-max) {
-    // Dropdowns get custom display when collapsed
-    .open .dropdown-menu {
-      position: static;
-      float: none;
-      width: auto;
-      margin-top: 0;
-      background-color: transparent;
-      border: 0;
-      box-shadow: none;
-      > li > a,
-      .dropdown-header {
-        padding: 5px 15px 5px 25px;
-      }
-      > li > a {
-        line-height: $line-height-computed;
-        &:hover,
-        &:focus {
-          background-image: none;
-        }
-      }
-    }
-  }
-
-  // Uncollapse the nav
-  @media (min-width: $grid-float-breakpoint) {
-    float: left;
-    margin: 0;
-
-    > li {
-      float: left;
-      > a {
-        padding-top:    $navbar-padding-vertical;
-        padding-bottom: $navbar-padding-vertical;
-      }
-    }
-
-    &.navbar-right:last-child {
-      margin-right: -$navbar-padding-horizontal;
-    }
-  }
-}
-
-
-// Component alignment
-//
-// Repurpose the pull utilities as their own navbar utilities to avoid specificity
-// issues with parents and chaining. Only do this when the navbar is uncollapsed
-// though so that navbar contents properly stack and align in mobile.
-
-@media (min-width: $grid-float-breakpoint) {
-  .navbar-left {
-    float: left !important;
-  }
-  .navbar-right {
-    float: right !important;
-  }
-}
-
-
-// Navbar form
-//
-// Extension of the `.form-inline` with some extra flavor for optimum display in
-// our navbars.
-
-.navbar-form {
-  margin-left: -$navbar-padding-horizontal;
-  margin-right: -$navbar-padding-horizontal;
-  padding: 10px $navbar-padding-horizontal;
-  border-top: 1px solid transparent;
-  border-bottom: 1px solid transparent;
-  $shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
-  @include box-shadow($shadow);
-
-  // Mixin behavior for optimum display
-  @extend .form-inline;
-
-  .form-group {
-    @media (max-width: $grid-float-breakpoint-max) {
-      margin-bottom: 5px;
-    }
-  }
-
-  // Vertically center in expanded, horizontal navbar
-  @include navbar-vertical-align($input-height-base);
-
-  // Undo 100% width for pull classes
-  @media (min-width: $grid-float-breakpoint) {
-    width: auto;
-    border: 0;
-    margin-left: 0;
-    margin-right: 0;
-    padding-top: 0;
-    padding-bottom: 0;
-    @include box-shadow(none);
-
-    // Outdent the form if last child to line up with content down the page
-    &.navbar-right:last-child {
-      margin-right: -$navbar-padding-horizontal;
-    }
-  }
-}
-
-
-// Dropdown menus
-
-// Menu position and menu carets
-.navbar-nav > li > .dropdown-menu {
-  margin-top: 0;
-  @include border-top-radius(0);
-}
-// Menu position and menu caret support for dropups via extra dropup class
-.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
-  @include border-bottom-radius(0);
-}
-
-
-// Buttons in navbars
-//
-// Vertically center a button within a navbar (when *not* in a form).
-
-.navbar-btn {
-  @include navbar-vertical-align($input-height-base);
-
-  &.btn-sm {
-    @include navbar-vertical-align($input-height-small);
-  }
-  &.btn-xs {
-    @include navbar-vertical-align(22);
-  }
-}
-
-
-// Text in navbars
-//
-// Add a class to make any element properly align itself vertically within the navbars.
-
-.navbar-text {
-  @include navbar-vertical-align($line-height-computed);
-
-  @media (min-width: $grid-float-breakpoint) {
-    float: left;
-    margin-left: $navbar-padding-horizontal;
-    margin-right: $navbar-padding-horizontal;
-
-    // Outdent the form if last child to line up with content down the page
-    &.navbar-right:last-child {
-      margin-right: 0;
-    }
-  }
-}
-
-// Alternate navbars
-// --------------------------------------------------
-
-// Default navbar
-.navbar-default {
-  background-color: $navbar-default-bg;
-  border-color: $navbar-default-border;
-
-  .navbar-brand {
-    color: $navbar-default-brand-color;
-    &:hover,
-    &:focus {
-      color: $navbar-default-brand-hover-color;
-      background-color: $navbar-default-brand-hover-bg;
-    }
-  }
-
-  .navbar-text {
-    color: $navbar-default-color;
-  }
-
-  .navbar-nav {
-    > li > a {
-      color: $navbar-default-link-color;
-
-      &:hover,
-      &:focus {
-        color: $navbar-default-link-hover-color;
-        background-color: $navbar-default-link-hover-bg;
-      }
-    }
-    > .active > a {
-      &,
-      &:hover,
-      &:focus {
-        color: $navbar-default-link-active-color;
-        background-color: $navbar-default-link-active-bg;
-      }
-    }
-    > .disabled > a {
-      &,
-      &:hover,
-      &:focus {
-        color: $navbar-default-link-disabled-color;
-        background-color: $navbar-default-link-disabled-bg;
-      }
-    }
-  }
-
-  .navbar-toggle {
-    border-color: $navbar-default-toggle-border-color;
-    &:hover,
-    &:focus {
-      background-color: $navbar-default-toggle-hover-bg;
-    }
-    .icon-bar {
-      background-color: $navbar-default-toggle-icon-bar-bg;
-    }
-  }
-
-  .navbar-collapse,
-  .navbar-form {
-    border-color: $navbar-default-border;
-  }
-
-  // Dropdown menu items
-  .navbar-nav {
-    // Remove background color from open dropdown
-    > .open > a {
-      &,
-      &:hover,
-      &:focus {
-        background-color: $navbar-default-link-active-bg;
-        color: $navbar-default-link-active-color;
-      }
-    }
-
-    @media (max-width: $grid-float-breakpoint-max) {
-      // Dropdowns get custom display when collapsed
-      .open .dropdown-menu {
-        > li > a {
-          color: $navbar-default-link-color;
-          &:hover,
-          &:focus {
-            color: $navbar-default-link-hover-color;
-            background-color: $navbar-default-link-hover-bg;
-          }
-        }
-        > .active > a {
-          &,
-          &:hover,
-          &:focus {
-            color: $navbar-default-link-active-color;
-            background-color: $navbar-default-link-active-bg;
-          }
-        }
-        > .disabled > a {
-          &,
-          &:hover,
-          &:focus {
-            color: $navbar-default-link-disabled-color;
-            background-color: $navbar-default-link-disabled-bg;
-          }
-        }
-      }
-    }
-  }
-
-
-  // Links in navbars
-  //
-  // Add a class to ensure links outside the navbar nav are colored correctly.
-
-  .navbar-link {
-    color: $navbar-default-link-color;
-    &:hover {
-      color: $navbar-default-link-hover-color;
-    }
-  }
-
-}
-
-// Inverse navbar
-
-.navbar-inverse {
-  background-color: $navbar-inverse-bg;
-  border-color: $navbar-inverse-border;
-
-  .navbar-brand {
-    color: $navbar-inverse-brand-color;
-    &:hover,
-    &:focus {
-      color: $navbar-inverse-brand-hover-color;
-      background-color: $navbar-inverse-brand-hover-bg;
-    }
-  }
-
-  .navbar-text {
-    color: $navbar-inverse-color;
-  }
-
-  .navbar-nav {
-    > li > a {
-      color: $navbar-inverse-link-color;
-
-      &:hover,
-      &:focus {
-        color: $navbar-inverse-link-hover-color;
-        background-color: $navbar-inverse-link-hover-bg;
-      }
-    }
-    > .active > a {
-      &,
-      &:hover,
-      &:focus {
-        color: $navbar-inverse-link-active-color;
-        background-color: $navbar-inverse-link-active-bg;
-      }
-    }
-    > .disabled > a {
-      &,
-      &:hover,
-      &:focus {
-        color: $navbar-inverse-link-disabled-color;
-        background-color: $navbar-inverse-link-disabled-bg;
-      }
-    }
-  }
-
-  // Darken the responsive nav toggle
-  .navbar-toggle {
-    border-color: $navbar-inverse-toggle-border-color;
-    &:hover,
-    &:focus {
-      background-color: $navbar-inverse-toggle-hover-bg;
-    }
-    .icon-bar {
-      background-color: $navbar-inverse-toggle-icon-bar-bg;
-    }
-  }
-
-  .navbar-collapse,
-  .navbar-form {
-    border-color: darken($navbar-inverse-bg, 7%);
-  }
-
-  // Dropdowns
-  .navbar-nav {
-    > .open > a {
-      &,
-      &:hover,
-      &:focus {
-        background-color: $navbar-inverse-link-active-bg;
-        color: $navbar-inverse-link-active-color;
-      }
-    }
-
-    @media (max-width: $grid-float-breakpoint-max) {
-      // Dropdowns get custom display
-      .open .dropdown-menu {
-        > .dropdown-header {
-          border-color: $navbar-inverse-border;
-        }
-        .divider {
-          background-color: $navbar-inverse-border;
-        }
-        > li > a {
-          color: $navbar-inverse-link-color;
-          &:hover,
-          &:focus {
-            color: $navbar-inverse-link-hover-color;
-            background-color: $navbar-inverse-link-hover-bg;
-          }
-        }
-        > .active > a {
-          &,
-          &:hover,
-          &:focus {
-            color: $navbar-inverse-link-active-color;
-            background-color: $navbar-inverse-link-active-bg;
-          }
-        }
-        > .disabled > a {
-          &,
-          &:hover,
-          &:focus {
-            color: $navbar-inverse-link-disabled-color;
-            background-color: $navbar-inverse-link-disabled-bg;
-          }
-        }
-      }
-    }
-  }
-
-  .navbar-link {
-    color: $navbar-inverse-link-color;
-    &:hover {
-      color: $navbar-inverse-link-hover-color;
-    }
-  }
-
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_navs.scss b/themes/bootstrap3/scss/bootstrap/_navs.scss
deleted file mode 100644
index c690072be82bddbfd5e16dbd69e7cfcc7fc62c98..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_navs.scss
+++ /dev/null
@@ -1,242 +0,0 @@
-//
-// Navs
-// --------------------------------------------------
-
-
-// Base class
-// --------------------------------------------------
-
-.nav {
-  margin-bottom: 0;
-  padding-left: 0; // Override default ul/ol
-  list-style: none;
-  @include clearfix();
-
-  > li {
-    position: relative;
-    display: block;
-
-    > a {
-      position: relative;
-      display: block;
-      padding: $nav-link-padding;
-      &:hover,
-      &:focus {
-        text-decoration: none;
-        background-color: $nav-link-hover-bg;
-      }
-    }
-
-    // Disabled state sets text to gray and nukes hover/tab effects
-    &.disabled > a {
-      color: $nav-disabled-link-color;
-
-      &:hover,
-      &:focus {
-        color: $nav-disabled-link-hover-color;
-        text-decoration: none;
-        background-color: transparent;
-        cursor: not-allowed;
-      }
-    }
-  }
-
-  // Open dropdowns
-  .open > a {
-    &,
-    &:hover,
-    &:focus {
-      background-color: $nav-link-hover-bg;
-      border-color: $link-color;
-    }
-  }
-
-  // Nav dividers (deprecated with v3.0.1)
-  //
-  // This should have been removed in v3 with the dropping of `.nav-list`, but
-  // we missed it. We don't currently support this anywhere, but in the interest
-  // of maintaining backward compatibility in case you use it, it's deprecated.
-  .nav-divider {
-    @include nav-divider();
-  }
-
-  // Prevent IE8 from misplacing imgs
-  //
-  // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
-  > li > a > img {
-    max-width: none;
-  }
-}
-
-
-// Tabs
-// -------------------------
-
-// Give the tabs something to sit on
-.nav-tabs {
-  border-bottom: 1px solid $nav-tabs-border-color;
-  > li {
-    float: left;
-    // Make the list-items overlay the bottom border
-    margin-bottom: -1px;
-
-    // Actual tabs (as links)
-    > a {
-      margin-right: 2px;
-      line-height: $line-height-base;
-      border: 1px solid transparent;
-      border-radius: $border-radius-base $border-radius-base 0 0;
-      &:hover {
-        border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color;
-      }
-    }
-
-    // Active state, and its :hover to override normal :hover
-    &.active > a {
-      &,
-      &:hover,
-      &:focus {
-        color: $nav-tabs-active-link-hover-color;
-        background-color: $nav-tabs-active-link-hover-bg;
-        border: 1px solid $nav-tabs-active-link-hover-border-color;
-        border-bottom-color: transparent;
-        cursor: default;
-      }
-    }
-  }
-  // pulling this in mainly for less shorthand
-  &.nav-justified {
-    @extend .nav-justified;
-    @extend .nav-tabs-justified;
-  }
-}
-
-
-// Pills
-// -------------------------
-.nav-pills {
-  > li {
-    float: left;
-
-    // Links rendered as pills
-    > a {
-      border-radius: $nav-pills-border-radius;
-    }
-    + li {
-      margin-left: 2px;
-    }
-
-    // Active state
-    &.active > a {
-      &,
-      &:hover,
-      &:focus {
-        color: $nav-pills-active-link-hover-color;
-        background-color: $nav-pills-active-link-hover-bg;
-      }
-    }
-  }
-}
-
-
-// Stacked pills
-.nav-stacked {
-  > li {
-    float: none;
-    + li {
-      margin-top: 2px;
-      margin-left: 0; // no need for this gap between nav items
-    }
-  }
-}
-
-
-// Nav variations
-// --------------------------------------------------
-
-// Justified nav links
-// -------------------------
-
-.nav-justified {
-  width: 100%;
-
-  > li {
-    float: none;
-     > a {
-      text-align: center;
-      margin-bottom: 5px;
-    }
-  }
-
-  > .dropdown .dropdown-menu {
-    top: auto;
-    left: auto;
-  }
-
-  @media (min-width: $screen-sm-min) {
-    > li {
-      display: table-cell;
-      width: 1%;
-      > a {
-        margin-bottom: 0;
-      }
-    }
-  }
-}
-
-// Move borders to anchors instead of bottom of list
-//
-// Mixin for adding on top the shared `.nav-justified` styles for our tabs
-.nav-tabs-justified {
-  border-bottom: 0;
-
-  > li > a {
-    // Override margin from .nav-tabs
-    margin-right: 0;
-    border-radius: $border-radius-base;
-  }
-
-  > .active > a,
-  > .active > a:hover,
-  > .active > a:focus {
-    border: 1px solid $nav-tabs-justified-link-border-color;
-  }
-
-  @media (min-width: $screen-sm-min) {
-    > li > a {
-      border-bottom: 1px solid $nav-tabs-justified-link-border-color;
-      border-radius: $border-radius-base $border-radius-base 0 0;
-    }
-    > .active > a,
-    > .active > a:hover,
-    > .active > a:focus {
-      border-bottom-color: $nav-tabs-justified-active-link-border-color;
-    }
-  }
-}
-
-
-// Tabbable tabs
-// -------------------------
-
-// Hide tabbable panes to start, show them when `.active`
-.tab-content {
-  > .tab-pane {
-    display: none;
-  }
-  > .active {
-    display: block;
-  }
-}
-
-
-// Dropdowns
-// -------------------------
-
-// Specific dropdowns
-.nav-tabs .dropdown-menu {
-  // make dropdown border overlap tab border
-  margin-top: -1px;
-  // Remove the top rounded corners here since there is a hard edge above the menu
-  @include border-top-radius(0);
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_normalize.scss b/themes/bootstrap3/scss/bootstrap/_normalize.scss
deleted file mode 100644
index 024e257c1a13532e7d5579b0ea4bb5915d21e4a6..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_normalize.scss
+++ /dev/null
@@ -1,423 +0,0 @@
-/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
-
-//
-// 1. Set default font family to sans-serif.
-// 2. Prevent iOS text size adjust after orientation change, without disabling
-//    user zoom.
-//
-
-html {
-  font-family: sans-serif; // 1
-  -ms-text-size-adjust: 100%; // 2
-  -webkit-text-size-adjust: 100%; // 2
-}
-
-//
-// Remove default margin.
-//
-
-body {
-  margin: 0;
-}
-
-// HTML5 display definitions
-// ==========================================================================
-
-//
-// Correct `block` display not defined in IE 8/9.
-//
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-nav,
-section,
-summary {
-  display: block;
-}
-
-//
-// 1. Correct `inline-block` display not defined in IE 8/9.
-// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
-//
-
-audio,
-canvas,
-progress,
-video {
-  display: inline-block; // 1
-  vertical-align: baseline; // 2
-}
-
-//
-// Prevent modern browsers from displaying `audio` without controls.
-// Remove excess height in iOS 5 devices.
-//
-
-audio:not([controls]) {
-  display: none;
-  height: 0;
-}
-
-//
-// Address `[hidden]` styling not present in IE 8/9.
-// Hide the `template` element in IE, Safari, and Firefox < 22.
-//
-
-[hidden],
-template {
-  display: none;
-}
-
-// Links
-// ==========================================================================
-
-//
-// Remove the gray background color from active links in IE 10.
-//
-
-a {
-  background: transparent;
-}
-
-//
-// Improve readability when focused and also mouse hovered in all browsers.
-//
-
-a:active,
-a:hover {
-  outline: 0;
-}
-
-// Text-level semantics
-// ==========================================================================
-
-//
-// Address styling not present in IE 8/9, Safari 5, and Chrome.
-//
-
-abbr[title] {
-  border-bottom: 1px dotted;
-}
-
-//
-// Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
-//
-
-b,
-strong {
-  font-weight: bold;
-}
-
-//
-// Address styling not present in Safari 5 and Chrome.
-//
-
-dfn {
-  font-style: italic;
-}
-
-//
-// Address variable `h1` font-size and margin within `section` and `article`
-// contexts in Firefox 4+, Safari 5, and Chrome.
-//
-
-h1 {
-  font-size: 2em;
-  margin: 0.67em 0;
-}
-
-//
-// Address styling not present in IE 8/9.
-//
-
-mark {
-  background: #ff0;
-  color: #000;
-}
-
-//
-// Address inconsistent and variable font size in all browsers.
-//
-
-small {
-  font-size: 80%;
-}
-
-//
-// Prevent `sub` and `sup` affecting `line-height` in all browsers.
-//
-
-sub,
-sup {
-  font-size: 75%;
-  line-height: 0;
-  position: relative;
-  vertical-align: baseline;
-}
-
-sup {
-  top: -0.5em;
-}
-
-sub {
-  bottom: -0.25em;
-}
-
-// Embedded content
-// ==========================================================================
-
-//
-// Remove border when inside `a` element in IE 8/9.
-//
-
-img {
-  border: 0;
-}
-
-//
-// Correct overflow displayed oddly in IE 9.
-//
-
-svg:not(:root) {
-  overflow: hidden;
-}
-
-// Grouping content
-// ==========================================================================
-
-//
-// Address margin not present in IE 8/9 and Safari 5.
-//
-
-figure {
-  margin: 1em 40px;
-}
-
-//
-// Address differences between Firefox and other browsers.
-//
-
-hr {
-  -moz-box-sizing: content-box;
-  box-sizing: content-box;
-  height: 0;
-}
-
-//
-// Contain overflow in all browsers.
-//
-
-pre {
-  overflow: auto;
-}
-
-//
-// Address odd `em`-unit font size rendering in all browsers.
-//
-
-code,
-kbd,
-pre,
-samp {
-  font-family: monospace, monospace;
-  font-size: 1em;
-}
-
-// Forms
-// ==========================================================================
-
-//
-// Known limitation: by default, Chrome and Safari on OS X allow very limited
-// styling of `select`, unless a `border` property is set.
-//
-
-//
-// 1. Correct color not being inherited.
-//    Known issue: affects color of disabled elements.
-// 2. Correct font properties not being inherited.
-// 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
-//
-
-button,
-input,
-optgroup,
-select,
-textarea {
-  color: inherit; // 1
-  font: inherit; // 2
-  margin: 0; // 3
-}
-
-//
-// Address `overflow` set to `hidden` in IE 8/9/10.
-//
-
-button {
-  overflow: visible;
-}
-
-//
-// Address inconsistent `text-transform` inheritance for `button` and `select`.
-// All other form control elements do not inherit `text-transform` values.
-// Correct `button` style inheritance in Firefox, IE 8+, and Opera
-// Correct `select` style inheritance in Firefox.
-//
-
-button,
-select {
-  text-transform: none;
-}
-
-//
-// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
-//    and `video` controls.
-// 2. Correct inability to style clickable `input` types in iOS.
-// 3. Improve usability and consistency of cursor style between image-type
-//    `input` and others.
-//
-
-button,
-html input[type="button"], // 1
-input[type="reset"],
-input[type="submit"] {
-  -webkit-appearance: button; // 2
-  cursor: pointer; // 3
-}
-
-//
-// Re-set default cursor for disabled elements.
-//
-
-button[disabled],
-html input[disabled] {
-  cursor: default;
-}
-
-//
-// Remove inner padding and border in Firefox 4+.
-//
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-  border: 0;
-  padding: 0;
-}
-
-//
-// Address Firefox 4+ setting `line-height` on `input` using `!important` in
-// the UA stylesheet.
-//
-
-input {
-  line-height: normal;
-}
-
-//
-// It's recommended that you don't attempt to style these elements.
-// Firefox's implementation doesn't respect box-sizing, padding, or width.
-//
-// 1. Address box sizing set to `content-box` in IE 8/9/10.
-// 2. Remove excess padding in IE 8/9/10.
-//
-
-input[type="checkbox"],
-input[type="radio"] {
-  box-sizing: border-box; // 1
-  padding: 0; // 2
-}
-
-//
-// Fix the cursor style for Chrome's increment/decrement buttons. For certain
-// `font-size` values of the `input`, it causes the cursor style of the
-// decrement button to change from `default` to `text`.
-//
-
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
-  height: auto;
-}
-
-//
-// 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
-// 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
-//    (include `-moz` to future-proof).
-//
-
-input[type="search"] {
-  -webkit-appearance: textfield; // 1
-  -moz-box-sizing: content-box;
-  -webkit-box-sizing: content-box; // 2
-  box-sizing: content-box;
-}
-
-//
-// Remove inner padding and search cancel button in Safari and Chrome on OS X.
-// Safari (but not Chrome) clips the cancel button when the search input has
-// padding (and `textfield` appearance).
-//
-
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
-  -webkit-appearance: none;
-}
-
-//
-// Define consistent border, margin, and padding.
-//
-
-fieldset {
-  border: 1px solid #c0c0c0;
-  margin: 0 2px;
-  padding: 0.35em 0.625em 0.75em;
-}
-
-//
-// 1. Correct `color` not being inherited in IE 8/9.
-// 2. Remove padding so people aren't caught out if they zero out fieldsets.
-//
-
-legend {
-  border: 0; // 1
-  padding: 0; // 2
-}
-
-//
-// Remove default vertical scrollbar in IE 8/9.
-//
-
-textarea {
-  overflow: auto;
-}
-
-//
-// Don't inherit the `font-weight` (applied by a rule above).
-// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
-//
-
-optgroup {
-  font-weight: bold;
-}
-
-// Tables
-// ==========================================================================
-
-//
-// Remove most spacing between table cells.
-//
-
-table {
-  border-collapse: collapse;
-  border-spacing: 0;
-}
-
-td,
-th {
-  padding: 0;
-}
\ No newline at end of file
diff --git a/themes/bootstrap3/scss/bootstrap/_pager.scss b/themes/bootstrap3/scss/bootstrap/_pager.scss
deleted file mode 100644
index 6531fe6f89f4140b159be5fefa334f6f078aac93..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_pager.scss
+++ /dev/null
@@ -1,55 +0,0 @@
-//
-// Pager pagination
-// --------------------------------------------------
-
-
-.pager {
-  padding-left: 0;
-  margin: $line-height-computed 0;
-  list-style: none;
-  text-align: center;
-  @include clearfix();
-  li {
-    display: inline;
-    > a,
-    > span {
-      display: inline-block;
-      padding: 5px 14px;
-      background-color: $pager-bg;
-      border: 1px solid $pager-border;
-      border-radius: $pager-border-radius;
-    }
-
-    > a:hover,
-    > a:focus {
-      text-decoration: none;
-      background-color: $pager-hover-bg;
-    }
-  }
-
-  .next {
-    > a,
-    > span {
-      float: right;
-    }
-  }
-
-  .previous {
-    > a,
-    > span {
-      float: left;
-    }
-  }
-
-  .disabled {
-    > a,
-    > a:hover,
-    > a:focus,
-    > span {
-      color: $pager-disabled-color;
-      background-color: $pager-bg;
-      cursor: not-allowed;
-    }
-  }
-
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_pagination.scss b/themes/bootstrap3/scss/bootstrap/_pagination.scss
deleted file mode 100644
index 44c12226b0da61ccbddde1b12b43aec22df41754..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_pagination.scss
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Pagination (multiple pages)
-// --------------------------------------------------
-.pagination {
-  display: inline-block;
-  padding-left: 0;
-  margin: $line-height-computed 0;
-  border-radius: $border-radius-base;
-
-  > li {
-    display: inline; // Remove list-style and block-level defaults
-    > a,
-    > span {
-      position: relative;
-      float: left; // Collapse white-space
-      padding: $padding-base-vertical $padding-base-horizontal;
-      line-height: $line-height-base;
-      text-decoration: none;
-      color: $pagination-color;
-      background-color: $pagination-bg;
-      border: 1px solid $pagination-border;
-      margin-left: -1px;
-    }
-    &:first-child {
-      > a,
-      > span {
-        margin-left: 0;
-        @include border-left-radius($border-radius-base);
-      }
-    }
-    &:last-child {
-      > a,
-      > span {
-        @include border-right-radius($border-radius-base);
-      }
-    }
-  }
-
-  > li > a,
-  > li > span {
-    &:hover,
-    &:focus {
-      color: $pagination-hover-color;
-      background-color: $pagination-hover-bg;
-      border-color: $pagination-hover-border;
-    }
-  }
-
-  > .active > a,
-  > .active > span {
-    &,
-    &:hover,
-    &:focus {
-      z-index: 2;
-      color: $pagination-active-color;
-      background-color: $pagination-active-bg;
-      border-color: $pagination-active-border;
-      cursor: default;
-    }
-  }
-
-  > .disabled {
-    > span,
-    > span:hover,
-    > span:focus,
-    > a,
-    > a:hover,
-    > a:focus {
-      color: $pagination-disabled-color;
-      background-color: $pagination-disabled-bg;
-      border-color: $pagination-disabled-border;
-      cursor: not-allowed;
-    }
-  }
-}
-
-// Sizing
-// --------------------------------------------------
-
-// Large
-.pagination-lg {
-  @include pagination-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $border-radius-large);
-}
-
-// Small
-.pagination-sm {
-  @include pagination-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $border-radius-small);
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_panels.scss b/themes/bootstrap3/scss/bootstrap/_panels.scss
deleted file mode 100644
index 0ab992541e2860cea3187f96ae5a730845ac3ada..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_panels.scss
+++ /dev/null
@@ -1,241 +0,0 @@
-//
-// Panels
-// --------------------------------------------------
-
-
-// Base class
-.panel {
-  margin-bottom: $line-height-computed;
-  background-color: $panel-bg;
-  border: 1px solid transparent;
-  border-radius: $panel-border-radius;
-  @include box-shadow(0 1px 1px rgba(0,0,0,.05));
-}
-
-// Panel contents
-.panel-body {
-  padding: $panel-body-padding;
-  @include clearfix();
-}
-
-// Optional heading
-.panel-heading {
-  padding: 10px 15px;
-  border-bottom: 1px solid transparent;
-  @include border-top-radius(($panel-border-radius - 1));
-
-  > .dropdown .dropdown-toggle {
-    color: inherit;
-  }
-}
-
-// Within heading, strip any `h*` tag of its default margins for spacing.
-.panel-title {
-  margin-top: 0;
-  margin-bottom: 0;
-  font-size: ceil(($font-size-base * 1.125));
-  color: inherit;
-
-  > a {
-    color: inherit;
-  }
-}
-
-// Optional footer (stays gray in every modifier class)
-.panel-footer {
-  padding: 10px 15px;
-  background-color: $panel-footer-bg;
-  border-top: 1px solid $panel-inner-border;
-  @include border-bottom-radius(($panel-border-radius - 1));
-}
-
-
-// List groups in panels
-//
-// By default, space out list group content from panel headings to account for
-// any kind of custom content between the two.
-
-.panel {
-  > .list-group {
-    margin-bottom: 0;
-
-    .list-group-item {
-      border-width: 1px 0;
-      border-radius: 0;
-    }
-
-    // Add border top radius for first one
-    &:first-child {
-      .list-group-item:first-child {
-        border-top: 0;
-        @include border-top-radius(($panel-border-radius - 1));
-      }
-    }
-    // Add border bottom radius for last one
-    &:last-child {
-      .list-group-item:last-child {
-        border-bottom: 0;
-        @include border-bottom-radius(($panel-border-radius - 1));
-      }
-    }
-  }
-}
-// Collapse space between when there's no additional content.
-.panel-heading + .list-group {
-  .list-group-item:first-child {
-    border-top-width: 0;
-  }
-}
-
-
-// Tables in panels
-//
-// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and
-// watch it go full width.
-
-.panel {
-  > .table,
-  > .table-responsive > .table {
-    margin-bottom: 0;
-  }
-  // Add border top radius for first one
-  > .table:first-child,
-  > .table-responsive:first-child > .table:first-child {
-    @include border-top-radius(($panel-border-radius - 1));
-
-    > thead:first-child,
-    > tbody:first-child {
-      > tr:first-child {
-        td:first-child,
-        th:first-child {
-          border-top-left-radius: ($panel-border-radius - 1);
-        }
-        td:last-child,
-        th:last-child {
-          border-top-right-radius: ($panel-border-radius - 1);
-        }
-      }
-    }
-  }
-  // Add border bottom radius for last one
-  > .table:last-child,
-  > .table-responsive:last-child > .table:last-child {
-    @include border-bottom-radius(($panel-border-radius - 1));
-
-    > tbody:last-child,
-    > tfoot:last-child {
-      > tr:last-child {
-        td:first-child,
-        th:first-child {
-          border-bottom-left-radius: ($panel-border-radius - 1);
-        }
-        td:last-child,
-        th:last-child {
-          border-bottom-right-radius: ($panel-border-radius - 1);
-        }
-      }
-    }
-  }
-  > .panel-body + .table,
-  > .panel-body + .table-responsive {
-    border-top: 1px solid $table-border-color;
-  }
-  > .table > tbody:first-child > tr:first-child th,
-  > .table > tbody:first-child > tr:first-child td {
-    border-top: 0;
-  }
-  > .table-bordered,
-  > .table-responsive > .table-bordered {
-    border: 0;
-    > thead,
-    > tbody,
-    > tfoot {
-      > tr {
-        > th:first-child,
-        > td:first-child {
-          border-left: 0;
-        }
-        > th:last-child,
-        > td:last-child {
-          border-right: 0;
-        }
-      }
-    }
-    > thead,
-    > tbody {
-      > tr:first-child {
-        > td,
-        > th {
-          border-bottom: 0;
-        }
-      }
-    }
-    > tbody,
-    > tfoot {
-      > tr:last-child {
-        > td,
-        > th {
-          border-bottom: 0;
-        }
-      }
-    }
-  }
-  > .table-responsive {
-    border: 0;
-    margin-bottom: 0;
-  }
-}
-
-
-// Collapsable panels (aka, accordion)
-//
-// Wrap a series of panels in `.panel-group` to turn them into an accordion with
-// the help of our collapse JavaScript plugin.
-
-.panel-group {
-  margin-bottom: $line-height-computed;
-
-  // Tighten up margin so it's only between panels
-  .panel {
-    margin-bottom: 0;
-    border-radius: $panel-border-radius;
-    overflow: hidden; // crop contents when collapsed
-    + .panel {
-      margin-top: 5px;
-    }
-  }
-
-  .panel-heading {
-    border-bottom: 0;
-    + .panel-collapse .panel-body {
-      border-top: 1px solid $panel-inner-border;
-    }
-  }
-  .panel-footer {
-    border-top: 0;
-    + .panel-collapse .panel-body {
-      border-bottom: 1px solid $panel-inner-border;
-    }
-  }
-}
-
-
-// Contextual variations
-.panel-default {
-  @include panel-variant($panel-default-border, $panel-default-text, $panel-default-heading-bg, $panel-default-border);
-}
-.panel-primary {
-  @include panel-variant($panel-primary-border, $panel-primary-text, $panel-primary-heading-bg, $panel-primary-border);
-}
-.panel-success {
-  @include panel-variant($panel-success-border, $panel-success-text, $panel-success-heading-bg, $panel-success-border);
-}
-.panel-info {
-  @include panel-variant($panel-info-border, $panel-info-text, $panel-info-heading-bg, $panel-info-border);
-}
-.panel-warning {
-  @include panel-variant($panel-warning-border, $panel-warning-text, $panel-warning-heading-bg, $panel-warning-border);
-}
-.panel-danger {
-  @include panel-variant($panel-danger-border, $panel-danger-text, $panel-danger-heading-bg, $panel-danger-border);
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_popovers.scss b/themes/bootstrap3/scss/bootstrap/_popovers.scss
deleted file mode 100644
index 6d6bed5d15dadb97f3f1f4d91447794ee3c79109..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_popovers.scss
+++ /dev/null
@@ -1,133 +0,0 @@
-//
-// Popovers
-// --------------------------------------------------
-
-
-.popover {
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: $zindex-popover;
-  display: none;
-  max-width: $popover-max-width;
-  padding: 1px;
-  text-align: left; // Reset given new insertion method
-  background-color: $popover-bg;
-  background-clip: padding-box;
-  border: 1px solid $popover-fallback-border-color;
-  border: 1px solid $popover-border-color;
-  border-radius: $border-radius-large;
-  @include box-shadow(0 5px 10px rgba(0,0,0,.2));
-
-  // Overrides for proper insertion
-  white-space: normal;
-
-  // Offset the popover to account for the popover arrow
-  &.top     { margin-top: -$popover-arrow-width; }
-  &.right   { margin-left: $popover-arrow-width; }
-  &.bottom  { margin-top: $popover-arrow-width; }
-  &.left    { margin-left: -$popover-arrow-width; }
-}
-
-.popover-title {
-  margin: 0; // reset heading margin
-  padding: 8px 14px;
-  font-size: $font-size-base;
-  font-weight: normal;
-  line-height: 18px;
-  background-color: $popover-title-bg;
-  border-bottom: 1px solid darken($popover-title-bg, 5%);
-  border-radius: 5px 5px 0 0;
-}
-
-.popover-content {
-  padding: 9px 14px;
-}
-
-// Arrows
-//
-// .arrow is outer, .arrow:after is inner
-
-.popover > .arrow {
-  &,
-  &:after {
-    position: absolute;
-    display: block;
-    width: 0;
-    height: 0;
-    border-color: transparent;
-    border-style: solid;
-  }
-}
-.popover > .arrow {
-  border-width: $popover-arrow-outer-width;
-}
-.popover > .arrow:after {
-  border-width: $popover-arrow-width;
-  content: "";
-}
-
-.popover {
-  &.top > .arrow {
-    left: 50%;
-    margin-left: -$popover-arrow-outer-width;
-    border-bottom-width: 0;
-    border-top-color: $popover-arrow-outer-fallback-color; // IE8 fallback
-    border-top-color: $popover-arrow-outer-color;
-    bottom: -$popover-arrow-outer-width;
-    &:after {
-      content: " ";
-      bottom: 1px;
-      margin-left: -$popover-arrow-width;
-      border-bottom-width: 0;
-      border-top-color: $popover-arrow-color;
-    }
-  }
-  &.right > .arrow {
-    top: 50%;
-    left: -$popover-arrow-outer-width;
-    margin-top: -$popover-arrow-outer-width;
-    border-left-width: 0;
-    border-right-color: $popover-arrow-outer-fallback-color; // IE8 fallback
-    border-right-color: $popover-arrow-outer-color;
-    &:after {
-      content: " ";
-      left: 1px;
-      bottom: -$popover-arrow-width;
-      border-left-width: 0;
-      border-right-color: $popover-arrow-color;
-    }
-  }
-  &.bottom > .arrow {
-    left: 50%;
-    margin-left: -$popover-arrow-outer-width;
-    border-top-width: 0;
-    border-bottom-color: $popover-arrow-outer-fallback-color; // IE8 fallback
-    border-bottom-color: $popover-arrow-outer-color;
-    top: -$popover-arrow-outer-width;
-    &:after {
-      content: " ";
-      top: 1px;
-      margin-left: -$popover-arrow-width;
-      border-top-width: 0;
-      border-bottom-color: $popover-arrow-color;
-    }
-  }
-
-  &.left > .arrow {
-    top: 50%;
-    right: -$popover-arrow-outer-width;
-    margin-top: -$popover-arrow-outer-width;
-    border-right-width: 0;
-    border-left-color: $popover-arrow-outer-fallback-color; // IE8 fallback
-    border-left-color: $popover-arrow-outer-color;
-    &:after {
-      content: " ";
-      right: 1px;
-      border-right-width: 0;
-      border-left-color: $popover-arrow-color;
-      bottom: -$popover-arrow-width;
-    }
-  }
-
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_print.scss b/themes/bootstrap3/scss/bootstrap/_print.scss
deleted file mode 100644
index 3655d03953ac830ecd86b55f247ea89b19000996..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_print.scss
+++ /dev/null
@@ -1,101 +0,0 @@
-//
-// Basic print styles
-// --------------------------------------------------
-// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css
-
-@media print {
-
-  * {
-    text-shadow: none !important;
-    color: #000 !important; // Black prints faster: h5bp.com/s
-    background: transparent !important;
-    box-shadow: none !important;
-  }
-
-  a,
-  a:visited {
-    text-decoration: underline;
-  }
-
-  a[href]:after {
-    content: " (" attr(href) ")";
-  }
-
-  abbr[title]:after {
-    content: " (" attr(title) ")";
-  }
-
-  // Don't show links for images, or javascript/internal links
-  a[href^="javascript:"]:after,
-  a[href^="#"]:after {
-    content: "";
-  }
-
-  pre,
-  blockquote {
-    border: 1px solid #999;
-    page-break-inside: avoid;
-  }
-
-  thead {
-    display: table-header-group; // h5bp.com/t
-  }
-
-  tr,
-  img {
-    page-break-inside: avoid;
-  }
-
-  img {
-    max-width: 100% !important;
-  }
-
-  p,
-  h2,
-  h3 {
-    orphans: 3;
-    widows: 3;
-  }
-
-  h2,
-  h3 {
-    page-break-after: avoid;
-  }
-
-  // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245
-  // Once fixed, we can just straight up remove this.
-  select {
-    background: #fff !important;
-  }
-
-  // Bootstrap components
-  .navbar {
-    display: none;
-  }
-  .table {
-    td,
-    th {
-      background-color: #fff !important;
-    }
-  }
-  .btn,
-  .dropup > .btn {
-    > .caret {
-      border-top-color: #000 !important;
-    }
-  }
-  .label {
-    border: 1px solid #000;
-  }
-
-  .table {
-    border-collapse: collapse !important;
-  }
-  .table-bordered {
-    th,
-    td {
-      border: 1px solid #ddd !important;
-    }
-  }
-
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_progress-bars.scss b/themes/bootstrap3/scss/bootstrap/_progress-bars.scss
deleted file mode 100644
index 7302b729d5b426d529711c73f6510722c5442e64..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_progress-bars.scss
+++ /dev/null
@@ -1,80 +0,0 @@
-//
-// Progress bars
-// --------------------------------------------------
-
-
-// Bar animations
-// -------------------------
-
-// WebKit
-@-webkit-keyframes progress-bar-stripes {
-  from  { background-position: 40px 0; }
-  to    { background-position: 0 0; }
-}
-
-// Spec and IE10+
-@keyframes progress-bar-stripes {
-  from  { background-position: 40px 0; }
-  to    { background-position: 0 0; }
-}
-
-
-
-// Bar itself
-// -------------------------
-
-// Outer container
-.progress {
-  overflow: hidden;
-  height: $line-height-computed;
-  margin-bottom: $line-height-computed;
-  background-color: $progress-bg;
-  border-radius: $border-radius-base;
-  @include box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
-}
-
-// Bar of progress
-.progress-bar {
-  float: left;
-  width: 0%;
-  height: 100%;
-  font-size: $font-size-small;
-  line-height: $line-height-computed;
-  color: $progress-bar-color;
-  text-align: center;
-  background-color: $progress-bar-bg;
-  @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
-  @include transition(width .6s ease);
-}
-
-// Striped bars
-.progress-striped .progress-bar {
-  @include gradient-striped();
-  background-size: 40px 40px;
-}
-
-// Call animation for the active one
-.progress.active .progress-bar {
-  @include animation(progress-bar-stripes 2s linear infinite);
-}
-
-
-
-// Variations
-// -------------------------
-
-.progress-bar-success {
-  @include progress-bar-variant($progress-bar-success-bg);
-}
-
-.progress-bar-info {
-  @include progress-bar-variant($progress-bar-info-bg);
-}
-
-.progress-bar-warning {
-  @include progress-bar-variant($progress-bar-warning-bg);
-}
-
-.progress-bar-danger {
-  @include progress-bar-variant($progress-bar-danger-bg);
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_responsive-utilities.scss b/themes/bootstrap3/scss/bootstrap/_responsive-utilities.scss
deleted file mode 100644
index cd9348c6e429a5e5ebf5dfa41d5943bf31ae905e..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_responsive-utilities.scss
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Responsive: Utility classes
-// --------------------------------------------------
-
-
-// IE10 in Windows (Phone) 8
-//
-// Support for responsive views via media queries is kind of borked in IE10, for
-// Surface/desktop in split view and for Windows Phone 8. This particular fix
-// must be accompanied by a snippet of JavaScript to sniff the user agent and
-// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at
-// our Getting Started page for more information on this bug.
-//
-// For more information, see the following:
-//
-// Issue: https://github.com/twbs/bootstrap/issues/10497
-// Docs: http://getbootstrap.com/getting-started/#browsers
-// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
-
-@-ms-viewport {
-  width: device-width;
-}
-
-
-// Visibility utilities
-
-@include responsive-invisibility('.visible-xs, .visible-sm, .visible-md, .visible-lg');
-
-@media (max-width: $screen-xs-max) {
-  @include responsive-visibility('.visible-xs');
-}
-
-@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
-  @include responsive-visibility('.visible-sm');
-}
-
-@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
-  @include responsive-visibility('.visible-md');
-}
-
-@media (min-width: $screen-lg-min) {
-  @include responsive-visibility('.visible-lg');
-}
-
-@media (max-width: $screen-xs-max) {
-  @include responsive-invisibility('.hidden-xs');
-}
-
-@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
-  @include responsive-invisibility('.hidden-sm');
-}
-
-@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
-  @include responsive-invisibility('.hidden-md');
-}
-
-@media (min-width: $screen-lg-min) {
-  @include responsive-invisibility('.hidden-lg');
-}
-
-
-// Print utilities
-//
-// Media queries are placed on the inside to be mixin-friendly.
-
-@include responsive-invisibility('.visible-print');
-
-@media print {
-  @include responsive-visibility('.visible-print');
-}
-
-@media print {
-  @include responsive-invisibility('.hidden-print');
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_scaffolding.scss b/themes/bootstrap3/scss/bootstrap/_scaffolding.scss
deleted file mode 100644
index cf020299affe02354bfbef97b7d926946cc2f840..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_scaffolding.scss
+++ /dev/null
@@ -1,134 +0,0 @@
-//
-// Scaffolding
-// --------------------------------------------------
-
-
-// Reset the box-sizing
-//
-// Heads up! This reset may cause conflicts with some third-party widgets.
-// For recommendations on resolving such conflicts, see
-// http://getbootstrap.com/getting-started/#third-box-sizing
-* {
-  @include box-sizing(border-box);
-}
-*:before,
-*:after {
-  @include box-sizing(border-box);
-}
-
-
-// Body reset
-
-html {
-  font-size: 62.5%;
-  -webkit-tap-highlight-color: rgba(0,0,0,0);
-}
-
-body {
-  font-family: $font-family-base;
-  font-size: $font-size-base;
-  line-height: $line-height-base;
-  color: $text-color;
-  background-color: $body-bg;
-}
-
-// Reset fonts for relevant elements
-input,
-button,
-select,
-textarea {
-  font-family: inherit;
-  font-size: inherit;
-  line-height: inherit;
-}
-
-
-// Links
-
-a {
-  color: $link-color;
-  text-decoration: none;
-
-  &:hover,
-  &:focus {
-    color: $link-hover-color;
-    text-decoration: underline;
-  }
-
-  &:focus {
-    @include tab-focus();
-  }
-}
-
-
-// Figures
-//
-// We reset this here because previously Normalize had no `figure` margins. This
-// ensures we don't break anyone's use of the element.
-
-figure {
-  margin: 0;
-}
-
-
-// Images
-
-img {
-  vertical-align: middle;
-}
-
-// Responsive images (ensure images don't scale beyond their parents)
-.img-responsive {
-  @include img-responsive();
-}
-
-// Rounded corners
-.img-rounded {
-  border-radius: $border-radius-large;
-}
-
-// Image thumbnails
-//
-// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.
-.img-thumbnail {
-  padding: $thumbnail-padding;
-  line-height: $line-height-base;
-  background-color: $thumbnail-bg;
-  border: 1px solid $thumbnail-border;
-  border-radius: $thumbnail-border-radius;
-  @include transition(all .2s ease-in-out);
-
-  // Keep them at most 100% wide
-  @include img-responsive(inline-block);
-}
-
-// Perfect circle
-.img-circle {
-  border-radius: 50%; // set radius in percents
-}
-
-
-// Horizontal rules
-
-hr {
-  margin-top:    $line-height-computed;
-  margin-bottom: $line-height-computed;
-  border: 0;
-  border-top: 1px solid $hr-border;
-}
-
-
-// Only display content to screen readers
-//
-// See: http://a11yproject.com/posts/how-to-hide-content/
-
-.sr-only {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0,0,0,0);
-  border: 0;
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_tables.scss b/themes/bootstrap3/scss/bootstrap/_tables.scss
deleted file mode 100644
index 1ddfb7ab36fc7db2a511a0dddda470ec5ff52956..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_tables.scss
+++ /dev/null
@@ -1,233 +0,0 @@
-//
-// Tables
-// --------------------------------------------------
-
-
-table {
-  max-width: 100%;
-  background-color: $table-bg;
-}
-th {
-  text-align: left;
-}
-
-
-// Baseline styles
-
-.table {
-  width: 100%;
-  margin-bottom: $line-height-computed;
-  // Cells
-  > thead,
-  > tbody,
-  > tfoot {
-    > tr {
-      > th,
-      > td {
-        padding: $table-cell-padding;
-        line-height: $line-height-base;
-        vertical-align: top;
-        border-top: 1px solid $table-border-color;
-      }
-    }
-  }
-  // Bottom align for column headings
-  > thead > tr > th {
-    vertical-align: bottom;
-    border-bottom: 2px solid $table-border-color;
-  }
-  // Remove top border from thead by default
-  > caption + thead,
-  > colgroup + thead,
-  > thead:first-child {
-    > tr:first-child {
-      > th,
-      > td {
-        border-top: 0;
-      }
-    }
-  }
-  // Account for multiple tbody instances
-  > tbody + tbody {
-    border-top: 2px solid $table-border-color;
-  }
-
-  // Nesting
-  .table {
-    background-color: $body-bg;
-  }
-}
-
-
-// Condensed table w/ half padding
-
-.table-condensed {
-  > thead,
-  > tbody,
-  > tfoot {
-    > tr {
-      > th,
-      > td {
-        padding: $table-condensed-cell-padding;
-      }
-    }
-  }
-}
-
-
-// Bordered version
-//
-// Add borders all around the table and between all the columns.
-
-.table-bordered {
-  border: 1px solid $table-border-color;
-  > thead,
-  > tbody,
-  > tfoot {
-    > tr {
-      > th,
-      > td {
-        border: 1px solid $table-border-color;
-      }
-    }
-  }
-  > thead > tr {
-    > th,
-    > td {
-      border-bottom-width: 2px;
-    }
-  }
-}
-
-
-// Zebra-striping
-//
-// Default zebra-stripe styles (alternating gray and transparent backgrounds)
-
-.table-striped {
-  > tbody > tr:nth-child(odd) {
-    > td,
-    > th {
-      background-color: $table-bg-accent;
-    }
-  }
-}
-
-
-// Hover effect
-//
-// Placed here since it has to come after the potential zebra striping
-
-.table-hover {
-  > tbody > tr:hover {
-    > td,
-    > th {
-      background-color: $table-bg-hover;
-    }
-  }
-}
-
-
-// Table cell sizing
-//
-// Reset default table behavior
-
-table col[class*="col-"] {
-  position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)
-  float: none;
-  display: table-column;
-}
-table {
-  td,
-  th {
-    &[class*="col-"] {
-      position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)
-      float: none;
-      display: table-cell;
-    }
-  }
-}
-
-
-// Table backgrounds
-//
-// Exact selectors below required to override `.table-striped` and prevent
-// inheritance to nested tables.
-
-// Generate the contextual variants
-@include table-row-variant('active', $table-bg-active);
-@include table-row-variant('success', $state-success-bg);
-@include table-row-variant('info', $state-info-bg);
-@include table-row-variant('warning', $state-warning-bg);
-@include table-row-variant('danger', $state-danger-bg);
-
-
-// Responsive tables
-//
-// Wrap your tables in `.table-responsive` and we'll make them mobile friendly
-// by enabling horizontal scrolling. Only applies <768px. Everything above that
-// will display normally.
-
-@media (max-width: $screen-xs-max) {
-  .table-responsive {
-    width: 100%;
-    margin-bottom: ($line-height-computed * 0.75);
-    overflow-y: hidden;
-    overflow-x: scroll;
-    -ms-overflow-style: -ms-autohiding-scrollbar;
-    border: 1px solid $table-border-color;
-    -webkit-overflow-scrolling: touch;
-
-    // Tighten up spacing
-    > .table {
-      margin-bottom: 0;
-
-      // Ensure the content doesn't wrap
-      > thead,
-      > tbody,
-      > tfoot {
-        > tr {
-          > th,
-          > td {
-            white-space: nowrap;
-          }
-        }
-      }
-    }
-
-    // Special overrides for the bordered tables
-    > .table-bordered {
-      border: 0;
-
-      // Nuke the appropriate borders so that the parent can handle them
-      > thead,
-      > tbody,
-      > tfoot {
-        > tr {
-          > th:first-child,
-          > td:first-child {
-            border-left: 0;
-          }
-          > th:last-child,
-          > td:last-child {
-            border-right: 0;
-          }
-        }
-      }
-
-      // Only nuke the last row's bottom-border in `tbody` and `tfoot` since
-      // chances are there will be only one `tr` in a `thead` and that would
-      // remove the border altogether.
-      > tbody,
-      > tfoot {
-        > tr:last-child {
-          > th,
-          > td {
-            border-bottom: 0;
-          }
-        }
-      }
-
-    }
-  }
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_theme.scss b/themes/bootstrap3/scss/bootstrap/_theme.scss
deleted file mode 100644
index d8f7bc2fb3cc571cea5c1fa4ac85253b3a0da5e4..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_theme.scss
+++ /dev/null
@@ -1,247 +0,0 @@
-
-//
-// Load core variables and mixins
-// --------------------------------------------------
-
-@import "variables";
-@import "mixins";
-
-
-
-//
-// Buttons
-// --------------------------------------------------
-
-// Common styles
-.btn-default,
-.btn-primary,
-.btn-success,
-.btn-info,
-.btn-warning,
-.btn-danger {
-  text-shadow: 0 -1px 0 rgba(0,0,0,.2);
-  $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
-  @include box-shadow($shadow);
-
-  // Reset the shadow
-  &:active,
-  &.active {
-    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
-  }
-}
-
-// Mixin for generating new styles
-@mixin btn-styles($btn-color: #555) {
-  @include gradient-vertical($start-color: $btn-color, $end-color: darken($btn-color, 12%));
-  @include reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners
-  background-repeat: repeat-x;
-  border-color: darken($btn-color, 14%);
-
-  &:hover,
-  &:focus  {
-    background-color: darken($btn-color, 12%);
-    background-position: 0 -15px;
-  }
-
-  &:active,
-  &.active {
-    background-color: darken($btn-color, 12%);
-    border-color: darken($btn-color, 14%);
-  }
-}
-
-// Common styles
-.btn {
-  // Remove the gradient for the pressed/active state
-  &:active,
-  &.active {
-    background-image: none;
-  }
-}
-
-// Apply the mixin to the buttons
-.btn-default { @include btn-styles($btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
-.btn-primary { @include btn-styles($btn-primary-bg); }
-.btn-success { @include btn-styles($btn-success-bg); }
-.btn-info    { @include btn-styles($btn-info-bg); }
-.btn-warning { @include btn-styles($btn-warning-bg); }
-.btn-danger  { @include btn-styles($btn-danger-bg); }
-
-
-
-//
-// Images
-// --------------------------------------------------
-
-.thumbnail,
-.img-thumbnail {
-  @include box-shadow(0 1px 2px rgba(0,0,0,.075));
-}
-
-
-
-//
-// Dropdowns
-// --------------------------------------------------
-
-.dropdown-menu > li > a:hover,
-.dropdown-menu > li > a:focus {
-  @include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%));
-  background-color: darken($dropdown-link-hover-bg, 5%);
-}
-.dropdown-menu > .active > a,
-.dropdown-menu > .active > a:hover,
-.dropdown-menu > .active > a:focus {
-  @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));
-  background-color: darken($dropdown-link-active-bg, 5%);
-}
-
-
-
-//
-// Navbar
-// --------------------------------------------------
-
-// Default navbar
-.navbar-default {
-  @include gradient-vertical($start-color: lighten($navbar-default-bg, 10%), $end-color: $navbar-default-bg);
-  @include reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
-  border-radius: $navbar-border-radius;
-  $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
-  @include box-shadow($shadow);
-
-  .navbar-nav > .active > a {
-    @include gradient-vertical($start-color: darken($navbar-default-bg, 5%), $end-color: darken($navbar-default-bg, 2%));
-    @include box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
-  }
-}
-.navbar-brand,
-.navbar-nav > li > a {
-  text-shadow: 0 1px 0 rgba(255,255,255,.25);
-}
-
-// Inverted navbar
-.navbar-inverse {
-  @include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg);
-  @include reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
-
-  .navbar-nav > .active > a {
-    @include gradient-vertical($start-color: $navbar-inverse-bg, $end-color: lighten($navbar-inverse-bg, 2.5%));
-    @include box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
-  }
-
-  .navbar-brand,
-  .navbar-nav > li > a {
-    text-shadow: 0 -1px 0 rgba(0,0,0,.25);
-  }
-}
-
-// Undo rounded corners in static and fixed navbars
-.navbar-static-top,
-.navbar-fixed-top,
-.navbar-fixed-bottom {
-  border-radius: 0;
-}
-
-
-
-//
-// Alerts
-// --------------------------------------------------
-
-// Common styles
-.alert {
-  text-shadow: 0 1px 0 rgba(255,255,255,.2);
-  $shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
-  @include box-shadow($shadow);
-}
-
-// Mixin for generating new styles
-@mixin alert-styles($color) {
-  @include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%));
-  border-color: darken($color, 15%);
-}
-
-// Apply the mixin to the alerts
-.alert-success    { @include alert-styles($alert-success-bg); }
-.alert-info       { @include alert-styles($alert-info-bg); }
-.alert-warning    { @include alert-styles($alert-warning-bg); }
-.alert-danger     { @include alert-styles($alert-danger-bg); }
-
-
-
-//
-// Progress bars
-// --------------------------------------------------
-
-// Give the progress background some depth
-.progress {
-  @include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg)
-}
-
-// Mixin for generating new styles
-@mixin progress-bar-styles($color) {
-  @include gradient-vertical($start-color: $color, $end-color: darken($color, 10%));
-}
-
-// Apply the mixin to the progress bars
-.progress-bar            { @include progress-bar-styles($progress-bar-bg); }
-.progress-bar-success    { @include progress-bar-styles($progress-bar-success-bg); }
-.progress-bar-info       { @include progress-bar-styles($progress-bar-info-bg); }
-.progress-bar-warning    { @include progress-bar-styles($progress-bar-warning-bg); }
-.progress-bar-danger     { @include progress-bar-styles($progress-bar-danger-bg); }
-
-
-
-//
-// List groups
-// --------------------------------------------------
-
-.list-group {
-  border-radius: $border-radius-base;
-  @include box-shadow(0 1px 2px rgba(0,0,0,.075));
-}
-.list-group-item.active,
-.list-group-item.active:hover,
-.list-group-item.active:focus {
-  text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%);
-  @include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%));
-  border-color: darken($list-group-active-border, 7.5%);
-}
-
-
-
-//
-// Panels
-// --------------------------------------------------
-
-// Common styles
-.panel {
-  @include box-shadow(0 1px 2px rgba(0,0,0,.05));
-}
-
-// Mixin for generating new styles
-@mixin panel-heading-styles($color) {
-  @include gradient-vertical($start-color: $color, $end-color: darken($color, 5%));
-}
-
-// Apply the mixin to the panel headings only
-.panel-default > .panel-heading   { @include panel-heading-styles($panel-default-heading-bg); }
-.panel-primary > .panel-heading   { @include panel-heading-styles($panel-primary-heading-bg); }
-.panel-success > .panel-heading   { @include panel-heading-styles($panel-success-heading-bg); }
-.panel-info > .panel-heading      { @include panel-heading-styles($panel-info-heading-bg); }
-.panel-warning > .panel-heading   { @include panel-heading-styles($panel-warning-heading-bg); }
-.panel-danger > .panel-heading    { @include panel-heading-styles($panel-danger-heading-bg); }
-
-
-
-//
-// Wells
-// --------------------------------------------------
-
-.well {
-  @include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg);
-  border-color: darken($well-bg, 10%);
-  $shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
-  @include box-shadow($shadow);
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_thumbnails.scss b/themes/bootstrap3/scss/bootstrap/_thumbnails.scss
deleted file mode 100644
index 3d5ed86d05fd5bdeba1d61f3b1faa2c6055d0868..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_thumbnails.scss
+++ /dev/null
@@ -1,38 +0,0 @@
-//
-// Thumbnails
-// --------------------------------------------------
-
-
-// Mixin and adjust the regular image class
-.thumbnail {
-  display: block;
-  padding: $thumbnail-padding;
-  margin-bottom: $line-height-computed;
-  line-height: $line-height-base;
-  background-color: $thumbnail-bg;
-  border: 1px solid $thumbnail-border;
-  border-radius: $thumbnail-border-radius;
-  @include transition(all .2s ease-in-out);
-
-  > img,
-  a > img {
-    @include img-responsive();
-    margin-left: auto;
-    margin-right: auto;
-  }
-
-  // [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active
-
-  // Image captions
-  .caption {
-    padding: $thumbnail-caption-padding;
-    color: $thumbnail-caption-color;
-  }
-}
-
-// Add a hover state for linked versions only
-a.thumbnail:hover,
-a.thumbnail:focus,
-a.thumbnail.active {
-  border-color: $link-color;
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_tooltip.scss b/themes/bootstrap3/scss/bootstrap/_tooltip.scss
deleted file mode 100644
index dec674cb40871ec975cd629951a8783d4141ddcd..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_tooltip.scss
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Tooltips
-// --------------------------------------------------
-
-
-// Base class
-.tooltip {
-  position: absolute;
-  z-index: $zindex-tooltip;
-  display: block;
-  visibility: visible;
-  font-size: $font-size-small;
-  line-height: 1.4;
-  @include opacity(0);
-
-  &.in     { @include opacity($tooltip-opacity); }
-  &.top    { margin-top:  -3px; padding: $tooltip-arrow-width 0; }
-  &.right  { margin-left:  3px; padding: 0 $tooltip-arrow-width; }
-  &.bottom { margin-top:   3px; padding: $tooltip-arrow-width 0; }
-  &.left   { margin-left: -3px; padding: 0 $tooltip-arrow-width; }
-}
-
-// Wrapper for the tooltip content
-.tooltip-inner {
-  max-width: $tooltip-max-width;
-  padding: 3px 8px;
-  color: $tooltip-color;
-  text-align: center;
-  text-decoration: none;
-  background-color: $tooltip-bg;
-  border-radius: $border-radius-base;
-}
-
-// Arrows
-.tooltip-arrow {
-  position: absolute;
-  width: 0;
-  height: 0;
-  border-color: transparent;
-  border-style: solid;
-}
-.tooltip {
-  &.top .tooltip-arrow {
-    bottom: 0;
-    left: 50%;
-    margin-left: -$tooltip-arrow-width;
-    border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
-    border-top-color: $tooltip-arrow-color;
-  }
-  &.top-left .tooltip-arrow {
-    bottom: 0;
-    left: $tooltip-arrow-width;
-    border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
-    border-top-color: $tooltip-arrow-color;
-  }
-  &.top-right .tooltip-arrow {
-    bottom: 0;
-    right: $tooltip-arrow-width;
-    border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
-    border-top-color: $tooltip-arrow-color;
-  }
-  &.right .tooltip-arrow {
-    top: 50%;
-    left: 0;
-    margin-top: -$tooltip-arrow-width;
-    border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
-    border-right-color: $tooltip-arrow-color;
-  }
-  &.left .tooltip-arrow {
-    top: 50%;
-    right: 0;
-    margin-top: -$tooltip-arrow-width;
-    border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
-    border-left-color: $tooltip-arrow-color;
-  }
-  &.bottom .tooltip-arrow {
-    top: 0;
-    left: 50%;
-    margin-left: -$tooltip-arrow-width;
-    border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
-    border-bottom-color: $tooltip-arrow-color;
-  }
-  &.bottom-left .tooltip-arrow {
-    top: 0;
-    left: $tooltip-arrow-width;
-    border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
-    border-bottom-color: $tooltip-arrow-color;
-  }
-  &.bottom-right .tooltip-arrow {
-    top: 0;
-    right: $tooltip-arrow-width;
-    border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
-    border-bottom-color: $tooltip-arrow-color;
-  }
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_type.scss b/themes/bootstrap3/scss/bootstrap/_type.scss
deleted file mode 100644
index 7fee043455dbb00ca5e2f1ca43e2988381b288ce..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_type.scss
+++ /dev/null
@@ -1,284 +0,0 @@
-//
-// Typography
-// --------------------------------------------------
-
-
-// Headings
-// -------------------------
-
-h1, h2, h3, h4, h5, h6,
-.h1, .h2, .h3, .h4, .h5, .h6 {
-  font-family: $headings-font-family;
-  font-weight: $headings-font-weight;
-  line-height: $headings-line-height;
-  color: $headings-color;
-
-  small,
-  .small {
-    font-weight: normal;
-    line-height: 1;
-    color: $headings-small-color;
-  }
-}
-
-h1, .h1,
-h2, .h2,
-h3, .h3 {
-  margin-top: $line-height-computed;
-  margin-bottom: ($line-height-computed / 2);
-
-  small,
-  .small {
-    font-size: 65%;
-  }
-}
-h4, .h4,
-h5, .h5,
-h6, .h6 {
-  margin-top: ($line-height-computed / 2);
-  margin-bottom: ($line-height-computed / 2);
-
-  small,
-  .small {
-    font-size: 75%;
-  }
-}
-
-h1, .h1 { font-size: $font-size-h1; }
-h2, .h2 { font-size: $font-size-h2; }
-h3, .h3 { font-size: $font-size-h3; }
-h4, .h4 { font-size: $font-size-h4; }
-h5, .h5 { font-size: $font-size-h5; }
-h6, .h6 { font-size: $font-size-h6; }
-
-
-// Body text
-// -------------------------
-
-p {
-  margin: 0 0 ($line-height-computed / 2);
-}
-
-.lead {
-  margin-bottom: $line-height-computed;
-  font-size: floor(($font-size-base * 1.15));
-  font-weight: 200;
-  line-height: 1.4;
-
-  @media (min-width: $screen-sm-min) {
-    font-size: ($font-size-base * 1.5);
-  }
-}
-
-
-// Emphasis & misc
-// -------------------------
-
-// Ex: 14px base font * 85% = about 12px
-small,
-.small  { font-size: 85%; }
-
-// Undo browser default styling
-cite    { font-style: normal; }
-
-// Alignment
-.text-left           { text-align: left; }
-.text-right          { text-align: right; }
-.text-center         { text-align: center; }
-.text-justify        { text-align: justify; }
-
-// Contextual colors
-.text-muted {
-  color: $text-muted;
-}
-
-@include text-emphasis-variant('.text-primary', $brand-primary);
-
-@include text-emphasis-variant('.text-success', $state-success-text);
-
-@include text-emphasis-variant('.text-info', $state-info-text);
-
-@include text-emphasis-variant('.text-warning', $state-warning-text);
-
-@include text-emphasis-variant('.text-danger', $state-danger-text);
-
-// Contextual backgrounds
-// For now we'll leave these alongside the text classes until v4 when we can
-// safely shift things around (per SemVer rules).
-.bg-primary {
-  // Given the contrast here, this is the only class to have its color inverted
-  // automatically.
-  color: #fff;
-}
-@include bg-variant('.bg-primary', $brand-primary);
-
-@include bg-variant('.bg-success', $state-success-bg);
-
-@include bg-variant('.bg-info', $state-info-bg);
-
-@include bg-variant('.bg-warning', $state-warning-bg);
-
-@include bg-variant('.bg-danger', $state-danger-bg);
-
-
-// Page header
-// -------------------------
-
-.page-header {
-  padding-bottom: (($line-height-computed / 2) - 1);
-  margin: ($line-height-computed * 2) 0 $line-height-computed;
-  border-bottom: 1px solid $page-header-border-color;
-}
-
-
-// Lists
-// --------------------------------------------------
-
-// Unordered and Ordered lists
-ul,
-ol {
-  margin-top: 0;
-  margin-bottom: ($line-height-computed / 2);
-  ul,
-  ol {
-    margin-bottom: 0;
-  }
-}
-
-// List options
-
-// Unstyled keeps list items block level, just removes default browser padding and list-style
-.list-unstyled {
-  padding-left: 0;
-  list-style: none;
-}
-
-// Inline turns list items into inline-block
-.list-inline {
-  @extend .list-unstyled;
-  margin-left: -5px;
-
-  > li {
-    display: inline-block;
-    padding-left: 5px;
-    padding-right: 5px;
-  }
-}
-
-// Description Lists
-dl {
-  margin-top: 0; // Remove browser default
-  margin-bottom: $line-height-computed;
-}
-dt,
-dd {
-  line-height: $line-height-base;
-}
-dt {
-  font-weight: bold;
-}
-dd {
-  margin-left: 0; // Undo browser default
-}
-
-// Horizontal description lists
-//
-// Defaults to being stacked without any of the below styles applied, until the
-// grid breakpoint is reached (default of ~768px).
-
-@media (min-width: $grid-float-breakpoint) {
-  .dl-horizontal {
-    dt {
-      float: left;
-      width: ($component-offset-horizontal - 20);
-      clear: left;
-      text-align: right;
-      @include text-overflow();
-    }
-    dd {
-      margin-left: $component-offset-horizontal;
-      @include clearfix(); // Clear the floated `dt` if an empty `dd` is present
-    }
-  }
-}
-
-// MISC
-// ----
-
-// Abbreviations and acronyms
-abbr[title],
-// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
-abbr[data-original-title] {
-  cursor: help;
-  border-bottom: 1px dotted $abbr-border-color;
-}
-.initialism {
-  font-size: 90%;
-  text-transform: uppercase;
-}
-
-// Blockquotes
-blockquote {
-  padding: ($line-height-computed / 2) $line-height-computed;
-  margin: 0 0 $line-height-computed;
-  font-size: $blockquote-font-size;
-  border-left: 5px solid $blockquote-border-color;
-
-  p,
-  ul,
-  ol {
-    &:last-child {
-      margin-bottom: 0;
-    }
-  }
-
-  // Note: Deprecated small and .small as of v3.1.0
-  // Context: https://github.com/twbs/bootstrap/issues/11660
-  footer,
-  small,
-  .small {
-    display: block;
-    font-size: 80%; // back to default font-size
-    line-height: $line-height-base;
-    color: $blockquote-small-color;
-
-    &:before {
-      content: '\2014 \00A0'; // em dash, nbsp
-    }
-  }
-}
-
-// Opposite alignment of blockquote
-//
-// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.
-.blockquote-reverse,
-blockquote.pull-right {
-  padding-right: 15px;
-  padding-left: 0;
-  border-right: 5px solid $blockquote-border-color;
-  border-left: 0;
-  text-align: right;
-
-  // Account for citation
-  footer,
-  small,
-  .small {
-    &:before { content: ''; }
-    &:after {
-      content: '\00A0 \2014'; // nbsp, em dash
-    }
-  }
-}
-
-// Quotes
-blockquote:before,
-blockquote:after {
-  content: "";
-}
-
-// Addresses
-address {
-  margin-bottom: $line-height-computed;
-  font-style: normal;
-  line-height: $line-height-base;
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_utilities.scss b/themes/bootstrap3/scss/bootstrap/_utilities.scss
deleted file mode 100644
index 85cb62ea7d6632e67916a63ab744b103070b8a12..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_utilities.scss
+++ /dev/null
@@ -1,56 +0,0 @@
-//
-// Utility classes
-// --------------------------------------------------
-
-
-// Floats
-// -------------------------
-
-.clearfix {
-  @include clearfix();
-}
-.center-block {
-  @include center-block();
-}
-.pull-right {
-  float: right !important;
-}
-.pull-left {
-  float: left !important;
-}
-
-
-// Toggling content
-// -------------------------
-
-// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
-.hide {
-  display: none !important;
-}
-.show {
-  display: block !important;
-}
-.invisible {
-  visibility: hidden;
-}
-.text-hide {
-  @include text-hide();
-}
-
-
-// Hide from screenreaders and browsers
-//
-// Credit: HTML5 Boilerplate
-
-.hidden {
-  display: none !important;
-  visibility: hidden !important;
-}
-
-
-// For Affix plugin
-// -------------------------
-
-.affix {
-  position: fixed;
-}
diff --git a/themes/bootstrap3/scss/bootstrap/_variables.scss b/themes/bootstrap3/scss/bootstrap/_variables.scss
deleted file mode 100644
index 8042a68660fe6b1a4f9fdb50f83e51953f2fdad1..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_variables.scss
+++ /dev/null
@@ -1,833 +0,0 @@
-// a flag to toggle asset pipeline / compass integration
-// defaults to true if twbs-font-path function is present (no function => twbs-font-path('') parsed as string == right side)
-// in Sass 3.3 this can be improved with: function-exists(twbs-font-path)
-$bootstrap-sass-asset-helper: (twbs-font-path("") != unquote('twbs-font-path("")')) !default;
-//
-// Variables
-// --------------------------------------------------
-
-
-//== Colors
-//
-//## Gray and brand colors for use across Bootstrap.
-
-$gray-darker:            lighten(#000, 13.5%) !default; // #222
-$gray-dark:              lighten(#000, 20%) !default;   // #333
-$gray:                   lighten(#000, 33.5%) !default; // #555
-$gray-light:             lighten(#000, 60%) !default;   // #999
-$gray-lighter:           lighten(#000, 93.5%) !default; // #eee
-
-$brand-primary:         #428bca !default;
-$brand-success:         #5cb85c !default;
-$brand-info:            #5bc0de !default;
-$brand-warning:         #f0ad4e !default;
-$brand-danger:          #d9534f !default;
-
-
-//== Scaffolding
-//
-// ## Settings for some of the most global styles.
-
-//** Background color for `<body>`.
-$body-bg:               #fff !default;
-//** Global text color on `<body>`.
-$text-color:            $gray-dark !default;
-
-//** Global textual link color.
-$link-color:            $brand-primary !default;
-//** Link hover color set via `darken()` function.
-$link-hover-color:      darken($link-color, 15%) !default;
-
-
-//== Typography
-//
-//## Font, line-height, and color for body text, headings, and more.
-
-$font-family-sans-serif:  "Helvetica Neue", Helvetica, Arial, sans-serif !default;
-$font-family-serif:       Georgia, "Times New Roman", Times, serif !default;
-//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
-$font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace !default;
-$font-family-base:        $font-family-sans-serif !default;
-
-$font-size-base:          14px !default;
-$font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px
-$font-size-small:         ceil(($font-size-base * 0.85)) !default; // ~12px
-
-$font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px
-$font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px
-$font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px
-$font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px
-$font-size-h5:            $font-size-base !default;
-$font-size-h6:            ceil(($font-size-base * 0.85)) !default; // ~12px
-
-//** Unit-less `line-height` for use in components like buttons.
-$line-height-base:        1.428571429 !default; // 20/14
-//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
-$line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px
-
-//** By default, this inherits from the `<body>`.
-$headings-font-family:    inherit !default;
-$headings-font-weight:    500 !default;
-$headings-line-height:    1.1 !default;
-$headings-color:          inherit !default;
-
-
-//-- Iconography
-//
-//## Specify custom locations of the include Glyphicons icon font. Useful for those including Bootstrap via Bower.
-
-$icon-font-path: "bootstrap/" !default;
-$icon-font-name:          "glyphicons-halflings-regular" !default;
-$icon-font-svg-id:        "glyphicons_halflingsregular" !default;
-
-//== Components
-//
-//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
-
-$padding-base-vertical:     6px !default;
-$padding-base-horizontal:   12px !default;
-
-$padding-large-vertical:    10px !default;
-$padding-large-horizontal:  16px !default;
-
-$padding-small-vertical:    5px !default;
-$padding-small-horizontal:  10px !default;
-
-$padding-xs-vertical:       1px !default;
-$padding-xs-horizontal:     5px !default;
-
-$line-height-large:         1.33 !default;
-$line-height-small:         1.5 !default;
-
-$border-radius-base:        4px !default;
-$border-radius-large:       6px !default;
-$border-radius-small:       3px !default;
-
-//** Global color for active items (e.g., navs or dropdowns).
-$component-active-color:    #fff !default;
-//** Global background color for active items (e.g., navs or dropdowns).
-$component-active-bg:       $brand-primary !default;
-
-//** Width of the `border` for generating carets that indicator dropdowns.
-$caret-width-base:          4px !default;
-//** Carets increase slightly in size for larger components.
-$caret-width-large:         5px !default;
-
-
-//== Tables
-//
-//## Customizes the `.table` component with basic values, each used across all table variations.
-
-//** Padding for `<th>`s and `<td>`s.
-$table-cell-padding:            8px !default;
-//** Padding for cells in `.table-condensed`.
-$table-condensed-cell-padding:  5px !default;
-
-//** Default background color used for all tables.
-$table-bg:                      transparent !default;
-//** Background color used for `.table-striped`.
-$table-bg-accent:               #f9f9f9 !default;
-//** Background color used for `.table-hover`.
-$table-bg-hover:                #f5f5f5 !default;
-$table-bg-active:               $table-bg-hover !default;
-
-//** Border color for table and cell borders.
-$table-border-color:            #ddd !default;
-
-
-//== Buttons
-//
-//## For each of Bootstrap's buttons, define text, background and border color.
-
-$btn-font-weight:                normal !default;
-
-$btn-default-color:              #333 !default;
-$btn-default-bg:                 #fff !default;
-$btn-default-border:             #ccc !default;
-
-$btn-primary-color:              #fff !default;
-$btn-primary-bg:                 $brand-primary !default;
-$btn-primary-border:             darken($btn-primary-bg, 5%) !default;
-
-$btn-success-color:              #fff !default;
-$btn-success-bg:                 $brand-success !default;
-$btn-success-border:             darken($btn-success-bg, 5%) !default;
-
-$btn-info-color:                 #fff !default;
-$btn-info-bg:                    $brand-info !default;
-$btn-info-border:                darken($btn-info-bg, 5%) !default;
-
-$btn-warning-color:              #fff !default;
-$btn-warning-bg:                 $brand-warning !default;
-$btn-warning-border:             darken($btn-warning-bg, 5%) !default;
-
-$btn-danger-color:               #fff !default;
-$btn-danger-bg:                  $brand-danger !default;
-$btn-danger-border:              darken($btn-danger-bg, 5%) !default;
-
-$btn-link-disabled-color:        $gray-light !default;
-
-
-//== Forms
-//
-//##
-
-//** `<input>` background color
-$input-bg:                       #fff !default;
-//** `<input disabled>` background color
-$input-bg-disabled:              $gray-lighter !default;
-
-//** Text color for `<input>`s
-$input-color:                    $gray !default;
-//** `<input>` border color
-$input-border:                   #ccc !default;
-//** `<input>` border radius
-$input-border-radius:            $border-radius-base !default;
-//** Border color for inputs on focus
-$input-border-focus:             #66afe9 !default;
-
-//** Placeholder text color
-$input-color-placeholder:        $gray-light !default;
-
-//** Default `.form-control` height
-$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;
-//** Large `.form-control` height
-$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;
-//** Small `.form-control` height
-$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;
-
-$legend-color:                   $gray-dark !default;
-$legend-border-color:            #e5e5e5 !default;
-
-//** Background color for textual input addons
-$input-group-addon-bg:           $gray-lighter !default;
-//** Border color for textual input addons
-$input-group-addon-border-color: $input-border !default;
-
-
-//== Dropdowns
-//
-//## Dropdown menu container and contents.
-
-//** Background for the dropdown menu.
-$dropdown-bg:                    #fff !default;
-//** Dropdown menu `border-color`.
-$dropdown-border:                rgba(0,0,0,.15) !default;
-//** Dropdown menu `border-color` **for IE8**.
-$dropdown-fallback-border:       #ccc !default;
-//** Divider color for between dropdown items.
-$dropdown-divider-bg:            #e5e5e5 !default;
-
-//** Dropdown link text color.
-$dropdown-link-color:            $gray-dark !default;
-//** Hover color for dropdown links.
-$dropdown-link-hover-color:      darken($gray-dark, 5%) !default;
-//** Hover background for dropdown links.
-$dropdown-link-hover-bg:         #f5f5f5 !default;
-
-//** Active dropdown menu item text color.
-$dropdown-link-active-color:     $component-active-color !default;
-//** Active dropdown menu item background color.
-$dropdown-link-active-bg:        $component-active-bg !default;
-
-//** Disabled dropdown menu item background color.
-$dropdown-link-disabled-color:   $gray-light !default;
-
-//** Text color for headers within dropdown menus.
-$dropdown-header-color:          $gray-light !default;
-
-// Note: Deprecated $dropdown-caret-color as of v3.1.0
-$dropdown-caret-color:           #000 !default;
-
-
-//-- Z-index master list
-//
-// Warning: Avoid customizing these values. They're used for a bird's eye view
-// of components dependent on the z-axis and are designed to all work together.
-//
-// Note: These variables are not generated into the Customizer.
-
-$zindex-navbar:            1000 !default;
-$zindex-dropdown:          1000 !default;
-$zindex-popover:           1010 !default;
-$zindex-tooltip:           1030 !default;
-$zindex-navbar-fixed:      1030 !default;
-$zindex-modal-background:  1040 !default;
-$zindex-modal:             1050 !default;
-
-
-//== Media queries breakpoints
-//
-//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
-
-// Extra small screen / phone
-// Note: Deprecated $screen-xs and $screen-phone as of v3.0.1
-$screen-xs:                  480px !default;
-$screen-xs-min:              $screen-xs !default;
-$screen-phone:               $screen-xs-min !default;
-
-// Small screen / tablet
-// Note: Deprecated $screen-sm and $screen-tablet as of v3.0.1
-$screen-sm:                  768px !default;
-$screen-sm-min:              $screen-sm !default;
-$screen-tablet:              $screen-sm-min !default;
-
-// Medium screen / desktop
-// Note: Deprecated $screen-md and $screen-desktop as of v3.0.1
-$screen-md:                  992px !default;
-$screen-md-min:              $screen-md !default;
-$screen-desktop:             $screen-md-min !default;
-
-// Large screen / wide desktop
-// Note: Deprecated $screen-lg and $screen-lg-desktop as of v3.0.1
-$screen-lg:                  1200px !default;
-$screen-lg-min:              $screen-lg !default;
-$screen-lg-desktop:          $screen-lg-min !default;
-
-// So media queries don't overlap when required, provide a maximum
-$screen-xs-max:              ($screen-sm-min - 1) !default;
-$screen-sm-max:              ($screen-md-min - 1) !default;
-$screen-md-max:              ($screen-lg-min - 1) !default;
-
-
-//== Grid system
-//
-//## Define your custom responsive grid.
-
-//** Number of columns in the grid.
-$grid-columns:              12 !default;
-//** Padding between columns. Gets divided in half for the left and right.
-$grid-gutter-width:         30px !default;
-// Navbar collapse
-//** Point at which the navbar becomes uncollapsed.
-$grid-float-breakpoint:     $screen-sm-min !default;
-//** Point at which the navbar begins collapsing.
-$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
-
-
-//== Container sizes
-//
-//## Define the maximum width of `.container` for different screen sizes.
-
-// Small screen / tablet
-$container-tablet:             ((720px + $grid-gutter-width)) !default;
-//** For `$screen-sm-min` and up.
-$container-sm:                 $container-tablet !default;
-
-// Medium screen / desktop
-$container-desktop:            ((940px + $grid-gutter-width)) !default;
-//** For `$screen-md-min` and up.
-$container-md:                 $container-desktop !default;
-
-// Large screen / wide desktop
-$container-large-desktop:      ((1140px + $grid-gutter-width)) !default;
-//** For `$screen-lg-min` and up.
-$container-lg:                 $container-large-desktop !default;
-
-
-//== Navbar
-//
-//##
-
-// Basics of a navbar
-$navbar-height:                    50px !default;
-$navbar-margin-bottom:             $line-height-computed !default;
-$navbar-border-radius:             $border-radius-base !default;
-$navbar-padding-horizontal:        floor(($grid-gutter-width / 2)) !default;
-$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2) !default;
-$navbar-collapse-max-height:       340px !default;
-
-$navbar-default-color:             #777 !default;
-$navbar-default-bg:                #f8f8f8 !default;
-$navbar-default-border:            darken($navbar-default-bg, 6.5%) !default;
-
-// Navbar links
-$navbar-default-link-color:                #777 !default;
-$navbar-default-link-hover-color:          #333 !default;
-$navbar-default-link-hover-bg:             transparent !default;
-$navbar-default-link-active-color:         #555 !default;
-$navbar-default-link-active-bg:            darken($navbar-default-bg, 6.5%) !default;
-$navbar-default-link-disabled-color:       #ccc !default;
-$navbar-default-link-disabled-bg:          transparent !default;
-
-// Navbar brand label
-$navbar-default-brand-color:               $navbar-default-link-color !default;
-$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%) !default;
-$navbar-default-brand-hover-bg:            transparent !default;
-
-// Navbar toggle
-$navbar-default-toggle-hover-bg:           #ddd !default;
-$navbar-default-toggle-icon-bar-bg:        #888 !default;
-$navbar-default-toggle-border-color:       #ddd !default;
-
-
-// Inverted navbar
-// Reset inverted navbar basics
-$navbar-inverse-color:                      $gray-light !default;
-$navbar-inverse-bg:                         #222 !default;
-$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%) !default;
-
-// Inverted navbar links
-$navbar-inverse-link-color:                 $gray-light !default;
-$navbar-inverse-link-hover-color:           #fff !default;
-$navbar-inverse-link-hover-bg:              transparent !default;
-$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color !default;
-$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%) !default;
-$navbar-inverse-link-disabled-color:        #444 !default;
-$navbar-inverse-link-disabled-bg:           transparent !default;
-
-// Inverted navbar brand label
-$navbar-inverse-brand-color:                $navbar-inverse-link-color !default;
-$navbar-inverse-brand-hover-color:          #fff !default;
-$navbar-inverse-brand-hover-bg:             transparent !default;
-
-// Inverted navbar toggle
-$navbar-inverse-toggle-hover-bg:            #333 !default;
-$navbar-inverse-toggle-icon-bar-bg:         #fff !default;
-$navbar-inverse-toggle-border-color:        #333 !default;
-
-
-//== Navs
-//
-//##
-
-//=== Shared nav styles
-$nav-link-padding:                          10px 15px !default;
-$nav-link-hover-bg:                         $gray-lighter !default;
-
-$nav-disabled-link-color:                   $gray-light !default;
-$nav-disabled-link-hover-color:             $gray-light !default;
-
-$nav-open-link-hover-color:                 #fff !default;
-
-//== Tabs
-$nav-tabs-border-color:                     #ddd !default;
-
-$nav-tabs-link-hover-border-color:          $gray-lighter !default;
-
-$nav-tabs-active-link-hover-bg:             $body-bg !default;
-$nav-tabs-active-link-hover-color:          $gray !default;
-$nav-tabs-active-link-hover-border-color:   #ddd !default;
-
-$nav-tabs-justified-link-border-color:            #ddd !default;
-$nav-tabs-justified-active-link-border-color:     $body-bg !default;
-
-//== Pills
-$nav-pills-border-radius:                   $border-radius-base !default;
-$nav-pills-active-link-hover-bg:            $component-active-bg !default;
-$nav-pills-active-link-hover-color:         $component-active-color !default;
-
-
-//== Pagination
-//
-//##
-
-$pagination-color:                     $link-color !default;
-$pagination-bg:                        #fff !default;
-$pagination-border:                    #ddd !default;
-
-$pagination-hover-color:               $link-hover-color !default;
-$pagination-hover-bg:                  $gray-lighter !default;
-$pagination-hover-border:              #ddd !default;
-
-$pagination-active-color:              #fff !default;
-$pagination-active-bg:                 $brand-primary !default;
-$pagination-active-border:             $brand-primary !default;
-
-$pagination-disabled-color:            $gray-light !default;
-$pagination-disabled-bg:               #fff !default;
-$pagination-disabled-border:           #ddd !default;
-
-
-//== Pager
-//
-//##
-
-$pager-bg:                             $pagination-bg !default;
-$pager-border:                         $pagination-border !default;
-$pager-border-radius:                  15px !default;
-
-$pager-hover-bg:                       $pagination-hover-bg !default;
-
-$pager-active-bg:                      $pagination-active-bg !default;
-$pager-active-color:                   $pagination-active-color !default;
-
-$pager-disabled-color:                 $pagination-disabled-color !default;
-
-
-//== Jumbotron
-//
-//##
-
-$jumbotron-padding:              30px !default;
-$jumbotron-color:                inherit !default;
-$jumbotron-bg:                   $gray-lighter !default;
-$jumbotron-heading-color:        inherit !default;
-$jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;
-
-
-//== Form states and alerts
-//
-//## Define colors for form feedback states and, by default, alerts.
-
-$state-success-text:             #3c763d !default;
-$state-success-bg:               #dff0d8 !default;
-$state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%) !default;
-
-$state-info-text:                #31708f !default;
-$state-info-bg:                  #d9edf7 !default;
-$state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%) !default;
-
-$state-warning-text:             #8a6d3b !default;
-$state-warning-bg:               #fcf8e3 !default;
-$state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%) !default;
-
-$state-danger-text:              #a94442 !default;
-$state-danger-bg:                #f2dede !default;
-$state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%) !default;
-
-
-//== Tooltips
-//
-//##
-
-//** Tooltip max width
-$tooltip-max-width:           200px !default;
-//** Tooltip text color
-$tooltip-color:               #fff !default;
-//** Tooltip background color
-$tooltip-bg:                  #000 !default;
-$tooltip-opacity:             .9 !default;
-
-//** Tooltip arrow width
-$tooltip-arrow-width:         5px !default;
-//** Tooltip arrow color
-$tooltip-arrow-color:         $tooltip-bg !default;
-
-
-//== Popovers
-//
-//##
-
-//** Popover body background color
-$popover-bg:                          #fff !default;
-//** Popover maximum width
-$popover-max-width:                   276px !default;
-//** Popover border color
-$popover-border-color:                rgba(0,0,0,.2) !default;
-//** Popover fallback border color
-$popover-fallback-border-color:       #ccc !default;
-
-//** Popover title background color
-$popover-title-bg:                    darken($popover-bg, 3%) !default;
-
-//** Popover arrow width
-$popover-arrow-width:                 10px !default;
-//** Popover arrow color
-$popover-arrow-color:                 #fff !default;
-
-//** Popover outer arrow width
-$popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;
-//** Popover outer arrow color
-$popover-arrow-outer-color:           fadein($popover-border-color, 5%) !default;
-//** Popover outer arrow fallback color
-$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;
-
-
-//== Labels
-//
-//##
-
-//** Default label background color
-$label-default-bg:            $gray-light !default;
-//** Primary label background color
-$label-primary-bg:            $brand-primary !default;
-//** Success label background color
-$label-success-bg:            $brand-success !default;
-//** Info label background color
-$label-info-bg:               $brand-info !default;
-//** Warning label background color
-$label-warning-bg:            $brand-warning !default;
-//** Danger label background color
-$label-danger-bg:             $brand-danger !default;
-
-//** Default label text color
-$label-color:                 #fff !default;
-//** Default text color of a linked label
-$label-link-hover-color:      #fff !default;
-
-
-//== Modals
-//
-//##
-
-//** Padding applied to the modal body
-$modal-inner-padding:         20px !default;
-
-//** Padding applied to the modal title
-$modal-title-padding:         15px !default;
-//** Modal title line-height
-$modal-title-line-height:     $line-height-base !default;
-
-//** Background color of modal content area
-$modal-content-bg:                             #fff !default;
-//** Modal content border color
-$modal-content-border-color:                   rgba(0,0,0,.2) !default;
-//** Modal content border color **for IE8**
-$modal-content-fallback-border-color:          #999 !default;
-
-//** Modal backdrop background color
-$modal-backdrop-bg:           #000 !default;
-//** Modal backdrop opacity
-$modal-backdrop-opacity:      .5 !default;
-//** Modal header border color
-$modal-header-border-color:   #e5e5e5 !default;
-//** Modal footer border color
-$modal-footer-border-color:   $modal-header-border-color !default;
-
-$modal-lg:                    900px !default;
-$modal-md:                    600px !default;
-$modal-sm:                    300px !default;
-
-
-//== Alerts
-//
-//## Define alert colors, border radius, and padding.
-
-$alert-padding:               15px !default;
-$alert-border-radius:         $border-radius-base !default;
-$alert-link-font-weight:      bold !default;
-
-$alert-success-bg:            $state-success-bg !default;
-$alert-success-text:          $state-success-text !default;
-$alert-success-border:        $state-success-border !default;
-
-$alert-info-bg:               $state-info-bg !default;
-$alert-info-text:             $state-info-text !default;
-$alert-info-border:           $state-info-border !default;
-
-$alert-warning-bg:            $state-warning-bg !default;
-$alert-warning-text:          $state-warning-text !default;
-$alert-warning-border:        $state-warning-border !default;
-
-$alert-danger-bg:             $state-danger-bg !default;
-$alert-danger-text:           $state-danger-text !default;
-$alert-danger-border:         $state-danger-border !default;
-
-
-//== Progress bars
-//
-//##
-
-//** Background color of the whole progress component
-$progress-bg:                 #f5f5f5 !default;
-//** Progress bar text color
-$progress-bar-color:          #fff !default;
-
-//** Default progress bar color
-$progress-bar-bg:             $brand-primary !default;
-//** Success progress bar color
-$progress-bar-success-bg:     $brand-success !default;
-//** Warning progress bar color
-$progress-bar-warning-bg:     $brand-warning !default;
-//** Danger progress bar color
-$progress-bar-danger-bg:      $brand-danger !default;
-//** Info progress bar color
-$progress-bar-info-bg:        $brand-info !default;
-
-
-//== List group
-//
-//##
-
-//** Background color on `.list-group-item`
-$list-group-bg:                 #fff !default;
-//** `.list-group-item` border color
-$list-group-border:             #ddd !default;
-//** List group border radius
-$list-group-border-radius:      $border-radius-base !default;
-
-//** Background color of single list elements on hover
-$list-group-hover-bg:           #f5f5f5 !default;
-//** Text color of active list elements
-$list-group-active-color:       $component-active-color !default;
-//** Background color of active list elements
-$list-group-active-bg:          $component-active-bg !default;
-//** Border color of active list elements
-$list-group-active-border:      $list-group-active-bg !default;
-$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;
-
-$list-group-link-color:         #555 !default;
-$list-group-link-heading-color: #333 !default;
-
-
-//== Panels
-//
-//##
-
-$panel-bg:                    #fff !default;
-$panel-body-padding:          15px !default;
-$panel-border-radius:         $border-radius-base !default;
-
-//** Border color for elements within panels
-$panel-inner-border:          #ddd !default;
-$panel-footer-bg:             #f5f5f5 !default;
-
-$panel-default-text:          $gray-dark !default;
-$panel-default-border:        #ddd !default;
-$panel-default-heading-bg:    #f5f5f5 !default;
-
-$panel-primary-text:          #fff !default;
-$panel-primary-border:        $brand-primary !default;
-$panel-primary-heading-bg:    $brand-primary !default;
-
-$panel-success-text:          $state-success-text !default;
-$panel-success-border:        $state-success-border !default;
-$panel-success-heading-bg:    $state-success-bg !default;
-
-$panel-info-text:             $state-info-text !default;
-$panel-info-border:           $state-info-border !default;
-$panel-info-heading-bg:       $state-info-bg !default;
-
-$panel-warning-text:          $state-warning-text !default;
-$panel-warning-border:        $state-warning-border !default;
-$panel-warning-heading-bg:    $state-warning-bg !default;
-
-$panel-danger-text:           $state-danger-text !default;
-$panel-danger-border:         $state-danger-border !default;
-$panel-danger-heading-bg:     $state-danger-bg !default;
-
-
-//== Thumbnails
-//
-//##
-
-//** Padding around the thumbnail image
-$thumbnail-padding:           4px !default;
-//** Thumbnail background color
-$thumbnail-bg:                $body-bg !default;
-//** Thumbnail border color
-$thumbnail-border:            #ddd !default;
-//** Thumbnail border radius
-$thumbnail-border-radius:     $border-radius-base !default;
-
-//** Custom text color for thumbnail captions
-$thumbnail-caption-color:     $text-color !default;
-//** Padding around the thumbnail caption
-$thumbnail-caption-padding:   9px !default;
-
-
-//== Wells
-//
-//##
-
-$well-bg:                     #f5f5f5 !default;
-$well-border:                 darken($well-bg, 7%) !default;
-
-
-//== Badges
-//
-//##
-
-$badge-color:                 #fff !default;
-//** Linked badge text color on hover
-$badge-link-hover-color:      #fff !default;
-$badge-bg:                    $gray-light !default;
-
-//** Badge text color in active nav link
-$badge-active-color:          $link-color !default;
-//** Badge background color in active nav link
-$badge-active-bg:             #fff !default;
-
-$badge-font-weight:           bold !default;
-$badge-line-height:           1 !default;
-$badge-border-radius:         10px !default;
-
-
-//== Breadcrumbs
-//
-//##
-
-$breadcrumb-padding-vertical:   8px !default;
-$breadcrumb-padding-horizontal: 15px !default;
-//** Breadcrumb background color
-$breadcrumb-bg:                 #f5f5f5 !default;
-//** Breadcrumb text color
-$breadcrumb-color:              #ccc !default;
-//** Text color of current page in the breadcrumb
-$breadcrumb-active-color:       $gray-light !default;
-//** Textual separator for between breadcrumb elements
-$breadcrumb-separator:          "/" !default;
-
-
-//== Carousel
-//
-//##
-
-$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;
-
-$carousel-control-color:                      #fff !default;
-$carousel-control-width:                      15% !default;
-$carousel-control-opacity:                    .5 !default;
-$carousel-control-font-size:                  20px !default;
-
-$carousel-indicator-active-bg:                #fff !default;
-$carousel-indicator-border-color:             #fff !default;
-
-$carousel-caption-color:                      #fff !default;
-
-
-//== Close
-//
-//##
-
-$close-font-weight:           bold !default;
-$close-color:                 #000 !default;
-$close-text-shadow:           0 1px 0 #fff !default;
-
-
-//== Code
-//
-//##
-
-$code-color:                  #c7254e !default;
-$code-bg:                     #f9f2f4 !default;
-
-$kbd-color:                   #fff !default;
-$kbd-bg:                      #333 !default;
-
-$pre-bg:                      #f5f5f5 !default;
-$pre-color:                   $gray-dark !default;
-$pre-border-color:            #ccc !default;
-$pre-scrollable-max-height:   340px !default;
-
-
-//== Type
-//
-//##
-
-//** Text muted color
-$text-muted:                  $gray-light !default;
-//** Abbreviations and acronyms border color
-$abbr-border-color:           $gray-light !default;
-//** Headings small color
-$headings-small-color:        $gray-light !default;
-//** Blockquote small color
-$blockquote-small-color:      $gray-light !default;
-//** Blockquote font size
-$blockquote-font-size:        ($font-size-base * 1.25) !default;
-//** Blockquote border color
-$blockquote-border-color:     $gray-lighter !default;
-//** Page header border color
-$page-header-border-color:    $gray-lighter !default;
-
-
-//== Miscellaneous
-//
-//##
-
-//** Horizontal line color.
-$hr-border:                   $gray-lighter !default;
-
-//** Horizontal offset for forms and lists.
-$component-offset-horizontal: 180px !default;
diff --git a/themes/bootstrap3/scss/bootstrap/_wells.scss b/themes/bootstrap3/scss/bootstrap/_wells.scss
deleted file mode 100644
index b8657118a661cfb1f6119f7dccb169db06e4cd04..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/_wells.scss
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-// Wells
-// --------------------------------------------------
-
-
-// Base class
-.well {
-  min-height: 20px;
-  padding: 19px;
-  margin-bottom: 20px;
-  background-color: $well-bg;
-  border: 1px solid $well-border;
-  border-radius: $border-radius-base;
-  @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
-  blockquote {
-    border-color: #ddd;
-    border-color: rgba(0,0,0,.15);
-  }
-}
-
-// Sizes
-.well-lg {
-  padding: 24px;
-  border-radius: $border-radius-large;
-}
-.well-sm {
-  padding: 9px;
-  border-radius: $border-radius-small;
-}
diff --git a/themes/bootstrap3/scss/bootstrap/bootstrap.scss b/themes/bootstrap3/scss/bootstrap/bootstrap.scss
deleted file mode 100644
index 48da226e1fc7e5c1b60b11ee0ce346b6523a3250..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/bootstrap/bootstrap.scss
+++ /dev/null
@@ -1,50 +0,0 @@
-// Core variables and mixins
-@import "variables";
-@import "mixins";
-@import "../a11y";
-
-// Reset
-@import "normalize";
-@import "print";
-
-// Core CSS
-@import "scaffolding";
-@import "type";
-@import "code";
-@import "grid";
-@import "tables";
-@import "forms";
-@import "buttons";
-
-// Components
-@import "component-animations";
-@import "glyphicons";
-@import "dropdowns";
-@import "button-groups";
-@import "input-groups";
-@import "navs";
-@import "navbar";
-@import "breadcrumbs";
-@import "pagination";
-@import "pager";
-@import "labels";
-@import "badges";
-@import "jumbotron";
-@import "thumbnails";
-@import "alerts";
-@import "progress-bars";
-@import "media";
-@import "list-group";
-@import "panels";
-@import "wells";
-@import "close";
-
-// Components w/ JavaScript
-@import "modals";
-@import "tooltip";
-@import "popovers";
-@import "carousel";
-
-// Utility classes
-@import "utilities";
-@import "responsive-utilities";
diff --git a/themes/bootstrap3/scss/compiled.scss b/themes/bootstrap3/scss/compiled.scss
deleted file mode 100644
index b0692d898a36e6b48de6304e7dca597a249904c6..0000000000000000000000000000000000000000
--- a/themes/bootstrap3/scss/compiled.scss
+++ /dev/null
@@ -1 +0,0 @@
-@import "bootstrap";
\ No newline at end of file
diff --git a/themes/bootstrap3/theme.config.php b/themes/bootstrap3/theme.config.php
index 1bab58c411da3bd9610b0860db2e0f418d6b1fb7..fa39f1f013d761d8e9369457d5fc5dc90f6e256c 100644
--- a/themes/bootstrap3/theme.config.php
+++ b/themes/bootstrap3/theme.config.php
@@ -23,10 +23,6 @@ return array(
         'active' => false,
         'compiled.less'
     ),
-    'scss' => array(
-        'active' => false,
-        'compiled.scss'
-    ),
     'favicon' => 'vufind-favicon.ico',
     'helpers' => array(
         'factories' => array(
diff --git a/vendor/autoload.php b/vendor/autoload.php
index e10403182216dfb0cd1eb74ac6c7ed74d9c8e3a2..b65f70f1ccebbd8bb3ff500629bfefeacef8c4a8 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer' . '/autoload_real.php';
 
-return ComposerAutoloaderInit10fa56f5866e8fd06c4858e28b252536::getLoader();
+return ComposerAutoloaderInite187e8e8985b1108048a87b08c32b59c::getLoader();
diff --git a/vendor/bin/composer-php b/vendor/bin/composer-php
new file mode 100755
index 0000000000000000000000000000000000000000..7e89815c5aee9c652847c03a602c5c2b326bef96
--- /dev/null
+++ b/vendor/bin/composer-php
@@ -0,0 +1,15 @@
+#!/usr/bin/env sh
+SRC_DIR=`pwd`
+BIN_DIR=`dirname $0`
+VENDOR_DIR=$BIN_DIR/'../'
+DIRS=""
+for vendor in $VENDOR_DIR/*; do
+    if [ -d "$vendor" ]; then
+        for package in $vendor/*; do
+            if [ -d "$package" ]; then
+                DIRS="${DIRS}:${package}"
+            fi
+        done
+    fi
+done
+php -d include_path=".$DIRS" $@
diff --git a/vendor/bin/composer-php.bat b/vendor/bin/composer-php.bat
new file mode 100755
index 0000000000000000000000000000000000000000..68cd54e4f5c7f277a64d3854e6ba00ccd7088e3a
--- /dev/null
+++ b/vendor/bin/composer-php.bat
@@ -0,0 +1,11 @@
+@echo off
+setlocal enabledelayedexpansion
+set BIN_DIR=%~dp0
+set VENDOR_DIR=%BIN_DIR%\../
+set DIRS=.
+FOR /D %%V IN (%VENDOR_DIR%\*) DO (
+    FOR /D %%P IN (%%V\*) DO (
+        set DIRS=!DIRS!;%%~fP
+    )
+)
+php.exe -d include_path=!DIRS! %*
diff --git a/vendor/bin/pear b/vendor/bin/pear
new file mode 120000
index 0000000000000000000000000000000000000000..6f7b00ad25eef7fac8ab6d595a0e078e265fbd5d
--- /dev/null
+++ b/vendor/bin/pear
@@ -0,0 +1 @@
+../pear-pear.php.net/PEAR/bin/pear
\ No newline at end of file
diff --git a/vendor/bin/peardev b/vendor/bin/peardev
new file mode 120000
index 0000000000000000000000000000000000000000..215e9e41781cb30b51c72469f29dce8796b90d7a
--- /dev/null
+++ b/vendor/bin/peardev
@@ -0,0 +1 @@
+../pear-pear.php.net/PEAR/bin/peardev
\ No newline at end of file
diff --git a/vendor/bin/pecl b/vendor/bin/pecl
new file mode 120000
index 0000000000000000000000000000000000000000..d9e0043a9a99b7f67ca5fa9b4a32de42c4d6908b
--- /dev/null
+++ b/vendor/bin/pecl
@@ -0,0 +1 @@
+../pear-pear.php.net/PEAR/bin/pecl
\ No newline at end of file
diff --git a/vendor/bin/pscss b/vendor/bin/pscss
deleted file mode 120000
index 9e42e1021c6d5c48fabfd5184711836a7ec58ea3..0000000000000000000000000000000000000000
--- a/vendor/bin/pscss
+++ /dev/null
@@ -1 +0,0 @@
-../leafo/scssphp/pscss
\ No newline at end of file
diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php
index 88684c52657173a7b2f321351c169ca0e08972a4..443364959a541bf85ac0e77476f1ded4feb93747 100644
--- a/vendor/composer/ClassLoader.php
+++ b/vendor/composer/ClassLoader.php
@@ -143,6 +143,8 @@ class ClassLoader
      * @param string       $prefix  The prefix/namespace, with trailing '\\'
      * @param array|string $paths   The PSR-0 base directories
      * @param bool         $prepend Whether to prepend the directories
+     *
+     * @throws \InvalidArgumentException
      */
     public function addPsr4($prefix, $paths, $prepend = false)
     {
@@ -204,6 +206,8 @@ class ClassLoader
      *
      * @param string       $prefix The prefix/namespace, with trailing '\\'
      * @param array|string $paths  The PSR-4 base directories
+     *
+     * @throws \InvalidArgumentException
      */
     public function setPsr4($prefix, $paths)
     {
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index b85040cdb10cc75e5ae89e50c868571984623608..978e3e4986301ba1be35fec443a7dce5dbd2e83b 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -144,12 +144,6 @@ return array(
     'XML_Util' => $vendorDir . '/pear-pear.php.net/XML_Util/XML/Util.php',
     'lessc' => $vendorDir . '/oyejorge/less.php/lessc.inc.php',
     'phpCAS' => $vendorDir . '/jasig/phpcas/source/CAS.php',
-    'scss_formatter' => $vendorDir . '/leafo/scssphp/scss.inc.php',
-    'scss_formatter_compressed' => $vendorDir . '/leafo/scssphp/scss.inc.php',
-    'scss_formatter_nested' => $vendorDir . '/leafo/scssphp/scss.inc.php',
-    'scss_parser' => $vendorDir . '/leafo/scssphp/scss.inc.php',
-    'scss_server' => $vendorDir . '/leafo/scssphp/scss.inc.php',
-    'scssc' => $vendorDir . '/leafo/scssphp/scss.inc.php',
     'sip2' => $vendorDir . '/johnwohlers/sip2/sip2.class.php',
     'uagent_info' => $vendorDir . '/mobileesp/mdetect/mdetect.php',
 );
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
index dabcd65d86a00009aae1be643ac0e59ad5850b02..ae133de9471deb2becd19f709743e1f8345827c5 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php @generated by Composer
 
-class ComposerAutoloaderInit10fa56f5866e8fd06c4858e28b252536
+class ComposerAutoloaderInite187e8e8985b1108048a87b08c32b59c
 {
     private static $loader;
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit10fa56f5866e8fd06c4858e28b252536
             return self::$loader;
         }
 
-        spl_autoload_register(array('ComposerAutoloaderInit10fa56f5866e8fd06c4858e28b252536', 'loadClassLoader'), true, true);
+        spl_autoload_register(array('ComposerAutoloaderInite187e8e8985b1108048a87b08c32b59c', 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInit10fa56f5866e8fd06c4858e28b252536', 'loadClassLoader'));
+        spl_autoload_unregister(array('ComposerAutoloaderInite187e8e8985b1108048a87b08c32b59c', 'loadClassLoader'));
 
         $includePaths = require __DIR__ . '/include_paths.php';
         array_push($includePaths, get_include_path());
@@ -48,7 +48,7 @@ class ComposerAutoloaderInit10fa56f5866e8fd06c4858e28b252536
     }
 }
 
-function composerRequire10fa56f5866e8fd06c4858e28b252536($file)
+function composerRequiree187e8e8985b1108048a87b08c32b59c($file)
 {
     require $file;
 }
diff --git a/vendor/composer/include_paths.php b/vendor/composer/include_paths.php
index 7640dd1f24f91fe10910beb87a5a969432f829f8..0492372701f183fffbe352fdeb8a743d06bb77cb 100644
--- a/vendor/composer/include_paths.php
+++ b/vendor/composer/include_paths.php
@@ -9,9 +9,9 @@ return array(
     $vendorDir . '/pear-pear.php.net/Console_Getopt',
     $vendorDir . '/pear-pear.php.net/Structures_Graph',
     $vendorDir . '/pear-pear.php.net/Archive_Tar',
-    $vendorDir . '/pear-pear.php.net/PEAR',
     $vendorDir . '/pear-pear.php.net/Validate',
     $vendorDir . '/pear-pear.php.net/Validate_ISPN',
     $vendorDir . '/pear-pear.php.net/File_MARC',
     $vendorDir . '/pear-pear.php.net/XML_Util',
+    $vendorDir . '/pear-pear.php.net/PEAR',
 );
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 675ea822f032a0f30b23f0bec832b2d8006fae7c..7901c0fab01270bd7df213df43b0d7a2c295f450 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -101,44 +101,6 @@
         ],
         "description": "This class provides handling of tar files in PHP.\nIt supports creating, listing, extracting and adding to tar files.\nGzip support is available if PHP has the zlib extension built-in or\nloaded. Bz2 compression is also supported with the bz2 extension loaded."
     },
-    {
-        "name": "pear-pear.php.net/PEAR",
-        "version": "1.9.4",
-        "version_normalized": "1.9.4.0",
-        "dist": {
-            "type": "file",
-            "url": "http://pear.php.net/get/PEAR-1.9.4.tgz",
-            "reference": null,
-            "shasum": null
-        },
-        "require": {
-            "ext-pcre": "*",
-            "ext-xml": "*",
-            "pear-pear.php.net/archive_tar": ">=1.3.7.0",
-            "pear-pear.php.net/console_getopt": ">=1.2.0.0",
-            "pear-pear.php.net/structures_graph": ">=1.0.2.0",
-            "pear-pear.php.net/xml_util": ">=1.2.0.0",
-            "php": ">=4.4.0.0,!=5.0.0.0,!=5.1.0.0,!=5.1.1.0,!=5.1.2.0,!=5.1.3.0,!=5.1.4.0,!=5.1.5.0"
-        },
-        "conflict": {
-            "pear-pear.php.net/pear_frontend_gtk": "<0.4.0.0",
-            "pear-pear.php.net/pear_frontend_web": "<=0.4.0.0"
-        },
-        "replace": {
-            "pear-pear/pear": "== 1.9.4.0"
-        },
-        "type": "pear-library",
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                ""
-            ]
-        },
-        "include-path": [
-            "/"
-        ],
-        "description": "The PEAR package contains:\n * the PEAR installer, for creating, distributing\n   and installing packages\n * the PEAR_Exception PHP5 error handling mechanism\n * the PEAR_ErrorStack advanced error handling mechanism\n * the PEAR_Error error handling mechanism\n * the OS_Guess class for retrieving info about the OS\n   where PHP is running on\n * the System class for quick handling of common operations\n   with files and directories\n * the PEAR base class\n  Features in a nutshell:\n  * full support for channels\n  * pre-download dependency validation\n  * new package.xml 2.0 format allows tremendous flexibility while maintaining BC\n  * support for optional dependency groups and limited support for sub-packaging\n  * robust dependency support\n  * full dependency validation on uninstall\n  * remote install for hosts with only ftp access - no more problems with\n    restricted host installation\n  * full support for mirroring\n  * support for bundling several packages into a single tarball\n  * support for static dependencies on a url-based package\n  * support for custom file roles and installation tasks"
-    },
     {
         "name": "pear-pear.php.net/Validate",
         "version": "0.8.5",
@@ -630,57 +592,6 @@
             "issues": "https://github.com/zendframework/ZendService_ReCaptcha/issues"
         }
     },
-    {
-        "name": "symfony/yaml",
-        "version": "v2.5.0",
-        "version_normalized": "2.5.0.0",
-        "target-dir": "Symfony/Component/Yaml",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/symfony/Yaml.git",
-            "reference": "b4b09c68ec2f2727574544ef0173684281a5033c"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Yaml/zipball/b4b09c68ec2f2727574544ef0173684281a5033c",
-            "reference": "b4b09c68ec2f2727574544ef0173684281a5033c",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.3"
-        },
-        "time": "2014-05-16 14:25:18",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.5-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-0": {
-                "Symfony\\Component\\Yaml\\": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com",
-                "homepage": "http://fabien.potencier.org",
-                "role": "Lead Developer"
-            },
-            {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
-            }
-        ],
-        "description": "Symfony Yaml Component",
-        "homepage": "http://symfony.com"
-    },
     {
         "name": "pear-pear.php.net/XML_Util",
         "version": "1.2.3",
@@ -763,54 +674,6 @@
             "issues": "https://github.com/Jasig/phpCAS/issues"
         }
     },
-    {
-        "name": "leafo/scssphp",
-        "version": "0.0.10",
-        "version_normalized": "0.0.10.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/leafo/scssphp.git",
-            "reference": "558357feceb9b932a192966945904414dc372e4d"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/leafo/scssphp/zipball/558357feceb9b932a192966945904414dc372e4d",
-            "reference": "558357feceb9b932a192966945904414dc372e4d",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.2.0"
-        },
-        "require-dev": {
-            "php": ">=5.3.0",
-            "phpunit/phpunit": "3.7.*"
-        },
-        "time": "2014-04-15 02:25:09",
-        "bin": [
-            "pscss"
-        ],
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "scss.inc.php"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT",
-            "GPL-3.0"
-        ],
-        "authors": [
-            {
-                "name": "Leaf Corcoran",
-                "email": "leafot@gmail.com",
-                "homepage": "http://leafo.net"
-            }
-        ],
-        "description": "scssphp is a compiler for SCSS written in PHP.",
-        "homepage": "http://leafo.net/scssphp/"
-    },
     {
         "name": "oyejorge/less.php",
         "version": "v1.7.0.2",
@@ -889,5 +752,94 @@
                 "/"
             ]
         }
+    },
+    {
+        "name": "pear-pear.php.net/PEAR",
+        "version": "1.9.5",
+        "version_normalized": "1.9.5.0",
+        "dist": {
+            "type": "file",
+            "url": "http://pear.php.net/get/PEAR-1.9.5.tgz",
+            "reference": null,
+            "shasum": null
+        },
+        "require": {
+            "ext-pcre": "*",
+            "ext-xml": "*",
+            "pear-pear.php.net/archive_tar": ">=1.3.11.0",
+            "pear-pear.php.net/console_getopt": ">=1.2.0.0",
+            "pear-pear.php.net/structures_graph": ">=1.0.2.0",
+            "pear-pear.php.net/xml_util": ">=1.2.0.0",
+            "php": ">=4.4.0.0,!=5.0.0.0,!=5.1.0.0,!=5.1.1.0,!=5.1.2.0,!=5.1.3.0,!=5.1.4.0,!=5.1.5.0"
+        },
+        "conflict": {
+            "pear-pear.php.net/pear_frontend_gtk": "<0.4.0.0",
+            "pear-pear.php.net/pear_frontend_web": "<=0.4.0.0"
+        },
+        "replace": {
+            "pear-pear/pear": "== 1.9.5.0"
+        },
+        "type": "pear-library",
+        "installation-source": "dist",
+        "autoload": {
+            "classmap": [
+                ""
+            ]
+        },
+        "include-path": [
+            "/"
+        ],
+        "description": "The PEAR package contains:\n * the PEAR installer, for creating, distributing\n   and installing packages\n * the PEAR_Exception PHP5 error handling mechanism\n * the PEAR_ErrorStack advanced error handling mechanism\n * the PEAR_Error error handling mechanism\n * the OS_Guess class for retrieving info about the OS\n   where PHP is running on\n * the System class for quick handling of common operations\n   with files and directories\n * the PEAR base class\n  Features in a nutshell:\n  * full support for channels\n  * pre-download dependency validation\n  * new package.xml 2.0 format allows tremendous flexibility while maintaining BC\n  * support for optional dependency groups and limited support for sub-packaging\n  * robust dependency support\n  * full dependency validation on uninstall\n  * remote install for hosts with only ftp access - no more problems with\n    restricted host installation\n  * full support for mirroring\n  * support for bundling several packages into a single tarball\n  * support for static dependencies on a url-based package\n  * support for custom file roles and installation tasks"
+    },
+    {
+        "name": "symfony/yaml",
+        "version": "v2.5.2",
+        "version_normalized": "2.5.2.0",
+        "target-dir": "Symfony/Component/Yaml",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/Yaml.git",
+            "reference": "f868ecdbcc0276b6158dfbf08b9e98ce07f014e1"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/symfony/Yaml/zipball/f868ecdbcc0276b6158dfbf08b9e98ce07f014e1",
+            "reference": "f868ecdbcc0276b6158dfbf08b9e98ce07f014e1",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "time": "2014-07-09 09:05:48",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.5-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\Yaml\\": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com",
+                "homepage": "http://fabien.potencier.org",
+                "role": "Lead Developer"
+            },
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
+            }
+        ],
+        "description": "Symfony Yaml Component",
+        "homepage": "http://symfony.com"
     }
 ]
diff --git a/vendor/leafo/scssphp/.gitignore b/vendor/leafo/scssphp/.gitignore
deleted file mode 100644
index 04d6f4ba0e56de38505b9d4db58e422961cb1415..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/*.scss
-/*.css
-.sass-cache
-/sass/
-/compass/
diff --git a/vendor/leafo/scssphp/.travis.yml b/vendor/leafo/scssphp/.travis.yml
deleted file mode 100644
index 7f8a9268ca243bcc873d676f238a60112842d49f..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/.travis.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-language: php
-script: phpunit tests
-php:
-  - 5.3
-  - 5.4
-  - 5.5
diff --git a/vendor/leafo/scssphp/LICENSE.md b/vendor/leafo/scssphp/LICENSE.md
deleted file mode 100644
index 7eced0619ec08caac9ce24bfbaafcaf402e1ed9e..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/LICENSE.md
+++ /dev/null
@@ -1,660 +0,0 @@
-For ease of distribution, scssphp is available under a dual license.
-You are free to pick which one suits your needs.
-
-* * *
-
-
-MIT LICENSE
-
-
-
-
-Copyright (c) 2012 Leaf Corcoran, http://leafo.net/scssphp
- 
-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.
-
-* * *
-
-
-GPL VERSION 3
-
-
-
-
-					GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
-  The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works.  By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.  We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors.  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
-  To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights.  Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received.  You must make sure that they, too, receive
-or can get the source code.  And you must show them these terms so they
-know their rights.
-
-  Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
-  For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software.  For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
-  Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so.  This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software.  The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable.  Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products.  If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
-  Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary.  To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                       TERMS AND CONDITIONS
-
-  0. Definitions.
-
-  "This License" refers to version 3 of the GNU General Public License.
-
-  "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
-  "The Program" refers to any copyrightable work licensed under this
-License.  Each licensee is addressed as "you".  "Licensees" and
-"recipients" may be individuals or organizations.
-
-  To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy.  The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
-  A "covered work" means either the unmodified Program or a work based
-on the Program.
-
-  To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy.  Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
-  To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies.  Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
-  An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License.  If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
-  1. Source Code.
-
-  The "source code" for a work means the preferred form of the work
-for making modifications to it.  "Object code" means any non-source
-form of a work.
-
-  A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
-  The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form.  A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
-  The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities.  However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work.  For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
-  The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
-  The Corresponding Source for a work in source code form is that
-same work.
-
-  2. Basic Permissions.
-
-  All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met.  This License explicitly affirms your unlimited
-permission to run the unmodified Program.  The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work.  This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
-  You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force.  You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright.  Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
-  Conveying under any other circumstances is permitted solely under
-the conditions stated below.  Sublicensing is not allowed; section 10
-makes it unnecessary.
-
-  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
-  No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
-  When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
-  4. Conveying Verbatim Copies.
-
-  You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
-  You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
-  5. Conveying Modified Source Versions.
-
-  You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
-    a) The work must carry prominent notices stating that you modified
-    it, and giving a relevant date.
-
-    b) The work must carry prominent notices stating that it is
-    released under this License and any conditions added under section
-    7.  This requirement modifies the requirement in section 4 to
-    "keep intact all notices".
-
-    c) You must license the entire work, as a whole, under this
-    License to anyone who comes into possession of a copy.  This
-    License will therefore apply, along with any applicable section 7
-    additional terms, to the whole of the work, and all its parts,
-    regardless of how they are packaged.  This License gives no
-    permission to license the work in any other way, but it does not
-    invalidate such permission if you have separately received it.
-
-    d) If the work has interactive user interfaces, each must display
-    Appropriate Legal Notices; however, if the Program has interactive
-    interfaces that do not display Appropriate Legal Notices, your
-    work need not make them do so.
-
-  A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit.  Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
-  6. Conveying Non-Source Forms.
-
-  You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
-    a) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by the
-    Corresponding Source fixed on a durable physical medium
-    customarily used for software interchange.
-
-    b) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by a
-    written offer, valid for at least three years and valid for as
-    long as you offer spare parts or customer support for that product
-    model, to give anyone who possesses the object code either (1) a
-    copy of the Corresponding Source for all the software in the
-    product that is covered by this License, on a durable physical
-    medium customarily used for software interchange, for a price no
-    more than your reasonable cost of physically performing this
-    conveying of source, or (2) access to copy the
-    Corresponding Source from a network server at no charge.
-
-    c) Convey individual copies of the object code with a copy of the
-    written offer to provide the Corresponding Source.  This
-    alternative is allowed only occasionally and noncommercially, and
-    only if you received the object code with such an offer, in accord
-    with subsection 6b.
-
-    d) Convey the object code by offering access from a designated
-    place (gratis or for a charge), and offer equivalent access to the
-    Corresponding Source in the same way through the same place at no
-    further charge.  You need not require recipients to copy the
-    Corresponding Source along with the object code.  If the place to
-    copy the object code is a network server, the Corresponding Source
-    may be on a different server (operated by you or a third party)
-    that supports equivalent copying facilities, provided you maintain
-    clear directions next to the object code saying where to find the
-    Corresponding Source.  Regardless of what server hosts the
-    Corresponding Source, you remain obligated to ensure that it is
-    available for as long as needed to satisfy these requirements.
-
-    e) Convey the object code using peer-to-peer transmission, provided
-    you inform other peers where the object code and Corresponding
-    Source of the work are being offered to the general public at no
-    charge under subsection 6d.
-
-  A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
-  A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling.  In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage.  For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product.  A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
-  "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source.  The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
-  If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information.  But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
-  The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed.  Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
-  Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
-  7. Additional Terms.
-
-  "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law.  If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
-  When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it.  (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.)  You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
-  Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
-    a) Disclaiming warranty or limiting liability differently from the
-    terms of sections 15 and 16 of this License; or
-
-    b) Requiring preservation of specified reasonable legal notices or
-    author attributions in that material or in the Appropriate Legal
-    Notices displayed by works containing it; or
-
-    c) Prohibiting misrepresentation of the origin of that material, or
-    requiring that modified versions of such material be marked in
-    reasonable ways as different from the original version; or
-
-    d) Limiting the use for publicity purposes of names of licensors or
-    authors of the material; or
-
-    e) Declining to grant rights under trademark law for use of some
-    trade names, trademarks, or service marks; or
-
-    f) Requiring indemnification of licensors and authors of that
-    material by anyone who conveys the material (or modified versions of
-    it) with contractual assumptions of liability to the recipient, for
-    any liability that these contractual assumptions directly impose on
-    those licensors and authors.
-
-  All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10.  If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term.  If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
-  If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
-  Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
-  8. Termination.
-
-  You may not propagate or modify a covered work except as expressly
-provided under this License.  Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
-  However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
-  Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-  Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License.  If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
-  9. Acceptance Not Required for Having Copies.
-
-  You are not required to accept this License in order to receive or
-run a copy of the Program.  Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance.  However,
-nothing other than this License grants you permission to propagate or
-modify any covered work.  These actions infringe copyright if you do
-not accept this License.  Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
-  10. Automatic Licensing of Downstream Recipients.
-
-  Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License.  You are not responsible
-for enforcing compliance by third parties with this License.
-
-  An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations.  If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
-  You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License.  For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
-  11. Patents.
-
-  A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based.  The
-work thus licensed is called the contributor's "contributor version".
-
-  A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version.  For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
-  Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
-  In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement).  To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
-  If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients.  "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
-  If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
-  A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License.  You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
-  Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
-  12. No Surrender of Others' Freedom.
-
-  If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all.  For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
-  13. Use with the GNU Affero General Public License.
-
-  Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work.  The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
-  14. Revised Versions of this License.
-
-  The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-  Each version is given a distinguishing version number.  If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation.  If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
-  If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
-  Later license versions may give you additional or different
-permissions.  However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
-  15. Disclaimer of Warranty.
-
-  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. Limitation of Liability.
-
-  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
-  17. Interpretation of Sections 15 and 16.
-
-  If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
diff --git a/vendor/leafo/scssphp/Makefile b/vendor/leafo/scssphp/Makefile
deleted file mode 100644
index 7b72c70f29cc5c1c15277754133a6ced2d2cdc3d..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-
-test:
-	phpunit --colors tests
\ No newline at end of file
diff --git a/vendor/leafo/scssphp/README.md b/vendor/leafo/scssphp/README.md
deleted file mode 100644
index 8e557a6952b7f7481dfa49e0a06d0b790912a6c7..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/README.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# scssphp v0.0.10
-### <http://leafo.net/scssphp>
-
-[![Build Status](https://secure.travis-ci.org/leafo/scssphp.png)](http://travis-ci.org/leafo/scssphp)
-
-`scssphp` is a compiler for SCSS written in PHP.
-
-It implements SCSS 3.2.12. It does not implement the SASS syntax, only the SCSS
-syntax.
-
-Checkout the homepage, <http://leafo.net/scssphp>, for directions on how to use.
-
-## Running Tests
-
-`scssphp` uses [PHPUnit](https://github.com/sebastianbergmann/phpunit) for testing.
-
-Run the following command from the root directory to run every test:
-
-    phpunit tests
-
-There are two kinds of tests in the `tests/` directory:
-
-* `ApiTest.php` contains various unit tests that test the PHP interface.
-* `ExceptionTest.php` contains unit tests that test for exceptions thrown by the parser and compiler.
-* `InputTest.php` compiles every `.scss` file in the `tests/inputs` directory
-  then compares to the respective `.css` file in the `tests/outputs` directory.
-
-When changing any of the tests in `tests/inputs`, the tests will most likely
-fail because the output has changed. Once you verify that the output is correct
-you can run the following command to rebuild all the tests:
-
-    BUILD=true phpunit tests
-
-This will compile all the tests, and save results into `tests/outputs`.
diff --git a/vendor/leafo/scssphp/composer.json b/vendor/leafo/scssphp/composer.json
deleted file mode 100644
index face95dadac7e711d0a8c964f44045f46f3fdb42..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/composer.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-    "name": "leafo/scssphp",
-    "type": "library",
-    "description": "scssphp is a compiler for SCSS written in PHP.",
-    "homepage": "http://leafo.net/scssphp/",
-    "license": [
-      "MIT",
-      "GPL-3.0"
-    ],
-    "authors": [
-        {
-            "name": "Leaf Corcoran",
-            "email": "leafot@gmail.com",
-            "homepage": "http://leafo.net"
-        }
-    ],
-    "autoload": {
-        "classmap": ["scss.inc.php"]
-    },
-    "require": {
-        "php": ">=5.2.0"
-    },
-    "require-dev": {
-        "php": ">=5.3.0",
-        "phpunit/phpunit": "3.7.*"
-    },
-    "bin": ["pscss"]
-}
diff --git a/vendor/leafo/scssphp/package.sh b/vendor/leafo/scssphp/package.sh
deleted file mode 100755
index 02a528dabf0939e451e868cbe9685da1e5aecc9b..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/package.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-# creates tar.gz for current version
-
-TARGET_DIR="site/www/src"
-
-VERSION=`./pscss -v | sed -n 's/^v\(.*\)$/\1/p'`
-OUT_DIR="tmp/scssphp"
-TMP=`dirname $OUT_DIR`
-
-mkdir -p $OUT_DIR
-tar -c `git ls-files` | tar -C $OUT_DIR -x 
-
-rm $OUT_DIR/.gitignore
-rm $OUT_DIR/package.sh
-rm $OUT_DIR/todo
-rm -r $OUT_DIR/site
-
-OUT_PATH="$TARGET_DIR/scssphp-$VERSION.tar.gz"
-tar -czf "$OUT_PATH" -C $TMP scssphp/
-echo "Wrote $OUT_PATH"
-
-rm -r $TMP
-
diff --git a/vendor/leafo/scssphp/phpunit.xml.dist b/vendor/leafo/scssphp/phpunit.xml.dist
deleted file mode 100644
index d320697e6a5e536a3c1a5293e55dacaf4676773d..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/phpunit.xml.dist
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- http://www.phpunit.de/manual/current/en/appendixes.configuration.html -->
-<phpunit
-    backupGlobals               = "false"
-    backupStaticAttributes      = "false"
-    strict                      = "false"
-    colors                      = "true"
-    convertErrorsToExceptions   = "true"
-    convertNoticesToExceptions  = "true"
-    convertWarningsToExceptions = "true"
-    processIsolation            = "false"
-    stopOnFailure               = "false"
-    syntaxCheck                 = "false">
-
-    <testsuites>
-        <testsuite name="Project Test Suite">
-            <directory>tests</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>.</directory>
-        </whitelist>
-    </filter>
-
-</phpunit>
diff --git a/vendor/leafo/scssphp/pscss b/vendor/leafo/scssphp/pscss
deleted file mode 100755
index 97cbf95eb7bc5e7650289a270454d7e45de0636b..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/pscss
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/env php
-<?php
-error_reporting(E_ALL);
-
-require "scss.inc.php";
-
-$opts = getopt('hvTf:', array('help', 'version'));
-
-function has() {
-	global $opts;
-	foreach (func_get_args() as $arg) {
-		if (isset($opts[$arg])) return true;
-	}
-	return false;
-}
-
-if (has("h", "help")) {
-	$exe = array_shift($argv);
-
-$HELP = <<<EOT
-Usage: $exe [options] < input-file
-
-Options include:
-
-	-h, --help     Show this message
-	-v, --version  Print the version
-	-f=format      Set the output format
-	-T             Dump formatted parse tree
-
-EOT;
-	exit($HELP);
-}
-
-if (has("v", "version")) {
-	exit(scssc::$VERSION . "\n");
-}
-
-$data = "";
-while (!feof(STDIN)) {
-	$data .= fread(STDIN, 8192);
-}
-
-if (has("T")) {
-	$parser = new scss_parser("STDIN");
-	print_r($parser->parse($data));
-	exit();
-}
-
-$scss = new scssc();
-if (has("f")) {
-	$scss->setFormatter($opts["f"]);
-}
-echo $scss->compile($data, "STDIN");
diff --git a/vendor/leafo/scssphp/scss.inc.php b/vendor/leafo/scssphp/scss.inc.php
deleted file mode 100644
index efc19a8862488a3561e392fff3d8caed45a8f53a..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/scss.inc.php
+++ /dev/null
@@ -1,4441 +0,0 @@
-<?php
-/**
- * SCSS compiler written in PHP
- *
- * @copyright 2012-2013 Leaf Corcoran
- *
- * @license http://opensource.org/licenses/gpl-license GPL-3.0
- * @license http://opensource.org/licenses/MIT MIT
- *
- * @link http://leafo.net/scssphp
- */
-
-/**
- * The scss compiler and parser.
- *
- * Converting SCSS to CSS is a three stage process. The incoming file is parsed
- * by `scssc_parser` into a syntax tree, then it is compiled into another tree
- * representing the CSS structure by `scssc`. The CSS tree is fed into a
- * formatter, like `scssc_formatter` which then outputs CSS as a string.
- *
- * During the first compile, all values are *reduced*, which means that their
- * types are brought to the lowest form before being dump as strings. This
- * handles math equations, variable dereferences, and the like.
- *
- * The `parse` function of `scssc` is the entry point.
- *
- * In summary:
- *
- * The `scssc` class creates an instance of the parser, feeds it SCSS code,
- * then transforms the resulting tree to a CSS tree. This class also holds the
- * evaluation context, such as all available mixins and variables at any given
- * time.
- *
- * The `scssc_parser` class is only concerned with parsing its input.
- *
- * The `scssc_formatter` takes a CSS tree, and dumps it to a formatted string,
- * handling things like indentation.
- */
-
-/**
- * SCSS compiler
- *
- * @author Leaf Corcoran <leafot@gmail.com>
- */
-class scssc {
-	static public $VERSION = "v0.0.10";
-
-	static protected $operatorNames = array(
-		'+' => "add",
-		'-' => "sub",
-		'*' => "mul",
-		'/' => "div",
-		'%' => "mod",
-
-		'==' => "eq",
-		'!=' => "neq",
-		'<' => "lt",
-		'>' => "gt",
-
-		'<=' => "lte",
-		'>=' => "gte",
-	);
-
-	static protected $namespaces = array(
-		"special" => "%",
-		"mixin" => "@",
-		"function" => "^",
-	);
-
-	static protected $unitTable = array(
-		"in" => array(
-			"in" => 1,
-			"pt" => 72,
-			"pc" => 6,
-			"cm" => 2.54,
-			"mm" => 25.4,
-			"px" => 96,
-		)
-	);
-
-	static public $true = array("keyword", "true");
-	static public $false = array("keyword", "false");
-	static public $null = array("null");
-
-	static public $defaultValue = array("keyword", "");
-	static public $selfSelector = array("self");
-
-	protected $importPaths = array("");
-	protected $importCache = array();
-
-	protected $userFunctions = array();
-
-	protected $numberPrecision = 5;
-
-	protected $formatter = "scss_formatter_nested";
-
-	public function compile($code, $name=null) {
-		$this->indentLevel = -1;
-		$this->commentsSeen = array();
-		$this->extends = array();
-		$this->extendsMap = array();
-
-		$locale = setlocale(LC_NUMERIC, 0);
-		setlocale(LC_NUMERIC, "C");
-
-		$this->parsedFiles = array();
-		$this->parser = new scss_parser($name);
-		$tree = $this->parser->parse($code);
-
-		$this->formatter = new $this->formatter();
-
-		$this->env = null;
-		$this->scope = null;
-
-		$this->compileRoot($tree);
-
-		$out = $this->formatter->format($this->scope);
-
-		setlocale(LC_NUMERIC, $locale);
-		return $out;
-	}
-
-	protected function isSelfExtend($target, $origin) {
-		foreach ($origin as $sel) {
-			if (in_array($target, $sel)) {
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	protected function pushExtends($target, $origin) {
-		if ($this->isSelfExtend($target, $origin)) {
-			return;
-		}
-
-		$i = count($this->extends);
-		$this->extends[] = array($target, $origin);
-
-		foreach ($target as $part) {
-			if (isset($this->extendsMap[$part])) {
-				$this->extendsMap[$part][] = $i;
-			} else {
-				$this->extendsMap[$part] = array($i);
-			}
-		}
-	}
-
-	protected function makeOutputBlock($type, $selectors = null) {
-		$out = new stdClass;
-		$out->type = $type;
-		$out->lines = array();
-		$out->children = array();
-		$out->parent = $this->scope;
-		$out->selectors = $selectors;
-		$out->depth = $this->env->depth;
-
-		return $out;
-	}
-
-	protected function matchExtendsSingle($single, &$outOrigin) {
-		$counts = array();
-		foreach ($single as $part) {
-			if (!is_string($part)) return false; // hmm
-
-			if (isset($this->extendsMap[$part])) {
-				foreach ($this->extendsMap[$part] as $idx) {
-					$counts[$idx] =
-						isset($counts[$idx]) ? $counts[$idx] + 1 : 1;
-				}
-			}
-		}
-
-		$outOrigin = array();
-		$found = false;
-
-		foreach ($counts as $idx => $count) {
-			list($target, $origin) = $this->extends[$idx];
-
-			// check count
-			if ($count != count($target)) continue;
-
-			// check if target is subset of single
-			if (array_diff(array_intersect($single, $target), $target)) continue;
-
-			$rem = array_diff($single, $target);
-
-			foreach ($origin as $j => $new) {
-				// prevent infinite loop when target extends itself
-				foreach ($new as $new_selector) {
-					if (!array_diff($single, $new_selector)) {
-						continue 2;
-					}
-				}
-
-				$origin[$j][count($origin[$j]) - 1] = $this->combineSelectorSingle(end($new), $rem);
-			}
-
-			$outOrigin = array_merge($outOrigin, $origin);
-
-			$found = true;
-		}
-
-		return $found;
-	}
-
-	protected function combineSelectorSingle($base, $other) {
-		$tag = null;
-		$out = array();
-
-		foreach (array($base, $other) as $single) {
-			foreach ($single as $part) {
-				if (preg_match('/^[^\[.#:]/', $part)) {
-					$tag = $part;
-				} else {
-					$out[] = $part;
-				}
-			}
-		}
-
-		if ($tag) {
-			array_unshift($out, $tag);
-		}
-
-		return $out;
-	}
-
-	protected function matchExtends($selector, &$out, $from = 0, $initial=true) {
-		foreach ($selector as $i => $part) {
-			if ($i < $from) continue;
-
-			if ($this->matchExtendsSingle($part, $origin)) {
-				$before = array_slice($selector, 0, $i);
-				$after = array_slice($selector, $i + 1);
-
-				foreach ($origin as $new) {
-					$k = 0;
-
-					// remove shared parts
-					if ($initial) {
-						foreach ($before as $k => $val) {
-							if (!isset($new[$k]) || $val != $new[$k]) {
-								break;
-							}
-						}
-					}
-
-					$result = array_merge(
-						$before,
-						$k > 0 ? array_slice($new, $k) : $new,
-						$after);
-
-
-					if ($result == $selector) continue;
-					$out[] = $result;
-
-					// recursively check for more matches
-					$this->matchExtends($result, $out, $i, false);
-
-					// selector sequence merging
-					if (!empty($before) && count($new) > 1) {
-						$result2 = array_merge(
-							array_slice($new, 0, -1),
-							$k > 0 ? array_slice($before, $k) : $before,
-							array_slice($new, -1),
-							$after);
-
-						$out[] = $result2;
-					}
-				}
-			}
-		}
-	}
-
-	protected function flattenSelectors($block, $parentKey = null) {
-		if ($block->selectors) {
-			$selectors = array();
-			foreach ($block->selectors as $s) {
-				$selectors[] = $s;
-				if (!is_array($s)) continue;
-				// check extends
-				if (!empty($this->extendsMap)) {
-					$this->matchExtends($s, $selectors);
-				}
-			}
-
-			$block->selectors = array();
-			$placeholderSelector = false;
-			foreach ($selectors as $selector) {
-				if ($this->hasSelectorPlaceholder($selector)) {
-					$placeholderSelector = true;
-					continue;
-				}
-				$block->selectors[] = $this->compileSelector($selector);
-			}
-
-			if ($placeholderSelector && 0 == count($block->selectors) && null !== $parentKey) {
-				unset($block->parent->children[$parentKey]);
-				return;
-			}
-		}
-
-		foreach ($block->children as $key => $child) {
-			$this->flattenSelectors($child, $key);
-		}
-	}
-
-	protected function compileRoot($rootBlock) {
-		$this->pushEnv($rootBlock);
-		$this->scope = $this->makeOutputBlock("root");
-
-		$this->compileChildren($rootBlock->children, $this->scope);
-		$this->flattenSelectors($this->scope);
-
-		$this->popEnv();
-	}
-
-	protected function compileMedia($media) {
-		$this->pushEnv($media);
-
-		$mediaQuery = $this->compileMediaQuery($this->multiplyMedia($this->env));
-
-		if (!empty($mediaQuery)) {
-
-			$this->scope = $this->makeOutputBlock("media", array($mediaQuery));
-
-			$parentScope = $this->mediaParent($this->scope);
-
-			$parentScope->children[] = $this->scope;
-
-			// top level properties in a media cause it to be wrapped
-			$needsWrap = false;
-			foreach ($media->children as $child) {
-				$type = $child[0];
-				if ($type !== 'block' && $type !== 'media' && $type !== 'directive') {
-					$needsWrap = true;
-					break;
-				}
-			}
-
-			if ($needsWrap) {
-				$wrapped = (object)array(
-					"selectors" => array(),
-					"children" => $media->children
-				);
-				$media->children = array(array("block", $wrapped));
-			}
-
-			$this->compileChildren($media->children, $this->scope);
-
-			$this->scope = $this->scope->parent;
-		}
-
-		$this->popEnv();
-	}
-
-	protected function mediaParent($scope) {
-		while (!empty($scope->parent)) {
-			if (!empty($scope->type) && $scope->type != "media") {
-				break;
-			}
-			$scope = $scope->parent;
-		}
-
-		return $scope;
-	}
-
-	// TODO refactor compileNestedBlock and compileMedia into same thing
-	protected function compileNestedBlock($block, $selectors) {
-		$this->pushEnv($block);
-
-		$this->scope = $this->makeOutputBlock($block->type, $selectors);
-		$this->scope->parent->children[] = $this->scope;
-		$this->compileChildren($block->children, $this->scope);
-
-		$this->scope = $this->scope->parent;
-		$this->popEnv();
-	}
-
-	/**
-	 * Recursively compiles a block.
-	 *
-	 * A block is analogous to a CSS block in most cases. A single SCSS document
-	 * is encapsulated in a block when parsed, but it does not have parent tags
-	 * so all of its children appear on the root level when compiled.
-	 *
-	 * Blocks are made up of selectors and children.
-	 *
-	 * The children of a block are just all the blocks that are defined within.
-	 *
-	 * Compiling the block involves pushing a fresh environment on the stack,
-	 * and iterating through the props, compiling each one.
-	 *
-	 * @see scss::compileChild()
-	 *
-	 * @param \StdClass $block
-	 */
-	protected function compileBlock($block) {
-		$env = $this->pushEnv($block);
-
-		$env->selectors =
-			array_map(array($this, "evalSelector"), $block->selectors);
-
-		$out = $this->makeOutputBlock(null, $this->multiplySelectors($env));
-		$this->scope->children[] = $out;
-		$this->compileChildren($block->children, $out);
-
-		$this->popEnv();
-	}
-
-	// joins together .classes and #ids
-	protected function flattenSelectorSingle($single) {
-		$joined = array();
-		foreach ($single as $part) {
-			if (empty($joined) ||
-				!is_string($part) ||
-				preg_match('/[\[.:#%]/', $part))
-			{
-				$joined[] = $part;
-				continue;
-			}
-
-			if (is_array(end($joined))) {
-				$joined[] = $part;
-			} else {
-				$joined[count($joined) - 1] .= $part;
-			}
-		}
-
-		return $joined;
-	}
-
-	// replaces all the interpolates
-	protected function evalSelector($selector) {
-		return array_map(array($this, "evalSelectorPart"), $selector);
-	}
-
-	protected function evalSelectorPart($piece) {
-		foreach ($piece as &$p) {
-			if (!is_array($p)) continue;
-
-			switch ($p[0]) {
-			case "interpolate":
-				$p = $this->compileValue($p);
-				break;
-			case "string":
-				$p = $this->compileValue($p);
-				break;
-			}
-		}
-
-		return $this->flattenSelectorSingle($piece);
-	}
-
-	// compiles to string
-	// self(&) should have been replaced by now
-	protected function compileSelector($selector) {
-		if (!is_array($selector)) return $selector; // media and the like
-
-		return implode(" ", array_map(
-			array($this, "compileSelectorPart"), $selector));
-	}
-
-	protected function compileSelectorPart($piece) {
-		foreach ($piece as &$p) {
-			if (!is_array($p)) continue;
-
-			switch ($p[0]) {
-			case "self":
-				$p = "&";
-				break;
-			default:
-				$p = $this->compileValue($p);
-				break;
-			}
-		}
-
-		return implode($piece);
-	}
-
-	protected function hasSelectorPlaceholder($selector)
-	{
-		if (!is_array($selector)) return false;
-
-		foreach ($selector as $parts) {
-			foreach ($parts as $part) {
-				if ('%' == $part[0]) {
-					return true;
-				}
-			}
-		}
-
-		return false;
-	}
-
-	protected function compileChildren($stms, $out) {
-		foreach ($stms as $stm) {
-			$ret = $this->compileChild($stm, $out);
-			if (!is_null($ret)) return $ret;
-		}
-	}
-
-	protected function compileMediaQuery($queryList) {
-		$out = "@media";
-		$first = true;
-		foreach ($queryList as $query){
-			$type = null;
-			$parts = array();
-			foreach ($query as $q) {
-				switch ($q[0]) {
-					case "mediaType":
-						if ($type) {
-							$type = $this->mergeMediaTypes($type, array_map(array($this, "compileValue"), array_slice($q, 1)));
-							if (empty($type)) { // merge failed
-								return null;
-							}
-						} else {
-							$type = array_map(array($this, "compileValue"), array_slice($q, 1));
-						}
-						break;
-					case "mediaExp":
-						if (isset($q[2])) {
-							$parts[] = "(". $this->compileValue($q[1]) . $this->formatter->assignSeparator . $this->compileValue($q[2]) . ")";
-						} else {
-							$parts[] = "(" . $this->compileValue($q[1]) . ")";
-						}
-						break;
-				}
-			}
-			if ($type) {
-				array_unshift($parts, implode(' ', array_filter($type)));
-			}
-			if (!empty($parts)) {
-				if ($first) {
-					$first = false;
-					$out .= " ";
-				} else {
-					$out .= $this->formatter->tagSeparator;
-				}
-				$out .= implode(" and ", $parts);
-			}
-		}
-		return $out;
-	}
-
-	protected function mergeMediaTypes($type1, $type2) {
-		if (empty($type1)) {
-			return $type2;
-		}
-		if (empty($type2)) {
-			return $type1;
-		}
-		$m1 = '';
-		$t1 = '';
-		if (count($type1) > 1) {
-			$m1= strtolower($type1[0]);
-			$t1= strtolower($type1[1]);
-		} else {
-			$t1 = strtolower($type1[0]);
-		}
-		$m2 = '';
-		$t2 = '';
-		if (count($type2) > 1) {
-			$m2 = strtolower($type2[0]);
-			$t2 = strtolower($type2[1]);
-		} else {
-			$t2 = strtolower($type2[0]);
-		}
-		if (($m1 == 'not') ^ ($m2 == 'not')) {
-			if ($t1 == $t2) {
-				return null;
-			}
-			return array(
-				$m1 == 'not' ? $m2 : $m1,
-				$m1 == 'not' ? $t2 : $t1
-			);
-		} elseif ($m1 == 'not' && $m2 == 'not') {
-			# CSS has no way of representing "neither screen nor print"
-			if ($t1 != $t2) {
-				return null;
-			}
-			return array('not', $t1);
-		} elseif ($t1 != $t2) {
-			return null;
-		} else { // t1 == t2, neither m1 nor m2 are "not"
-			return array(empty($m1)? $m2 : $m1, $t1);
-		}
-	}
-
-	// returns true if the value was something that could be imported
-	protected function compileImport($rawPath, $out) {
-		if ($rawPath[0] == "string") {
-			$path = $this->compileStringContent($rawPath);
-			if ($path = $this->findImport($path)) {
-				$this->importFile($path, $out);
-				return true;
-			}
-			return false;
-		}
-		if ($rawPath[0] == "list") {
-			// handle a list of strings
-			if (count($rawPath[2]) == 0) return false;
-			foreach ($rawPath[2] as $path) {
-				if ($path[0] != "string") return false;
-			}
-
-			foreach ($rawPath[2] as $path) {
-				$this->compileImport($path, $out);
-			}
-
-			return true;
-		}
-
-		return false;
-	}
-
-	// return a value to halt execution
-	protected function compileChild($child, $out) {
-		$this->sourcePos = isset($child[-1]) ? $child[-1] : -1;
-		$this->sourceParser = isset($child[-2]) ? $child[-2] : $this->parser;
-
-		switch ($child[0]) {
-		case "import":
-			list(,$rawPath) = $child;
-			$rawPath = $this->reduce($rawPath);
-			if (!$this->compileImport($rawPath, $out)) {
-				$out->lines[] = "@import " . $this->compileValue($rawPath) . ";";
-			}
-			break;
-		case "directive":
-			list(, $directive) = $child;
-			$s = "@" . $directive->name;
-			if (!empty($directive->value)) {
-				$s .= " " . $this->compileValue($directive->value);
-			}
-			$this->compileNestedBlock($directive, array($s));
-			break;
-		case "media":
-			$this->compileMedia($child[1]);
-			break;
-		case "block":
-			$this->compileBlock($child[1]);
-			break;
-		case "charset":
-			$out->lines[] = "@charset ".$this->compileValue($child[1]).";";
-			break;
-		case "assign":
-			list(,$name, $value) = $child;
-			if ($name[0] == "var") {
-				$isDefault = !empty($child[3]);
-
-				if ($isDefault) {
-					$existingValue = $this->get($name[1], true);
-					$shouldSet = $existingValue === true || $existingValue == self::$null;
-				}
-
-				if (!$isDefault || $shouldSet) {
-					$this->set($name[1], $this->reduce($value));
-				}
-				break;
-			}
-
-			// if the value reduces to null from something else then
-			// the property should be discarded
-			if ($value[0] != "null") {
-				$value = $this->reduce($value);
-				if ($value[0] == "null") {
-					break;
-				}
-			}
-
-			$compiledValue = $this->compileValue($value);
-			$out->lines[] = $this->formatter->property(
-				$this->compileValue($name),
-				$compiledValue);
-			break;
-		case "comment":
-			$out->lines[] = $child[1];
-			break;
-		case "mixin":
-		case "function":
-			list(,$block) = $child;
-			$this->set(self::$namespaces[$block->type] . $block->name, $block);
-			break;
-		case "extend":
-			list(, $selectors) = $child;
-			foreach ($selectors as $sel) {
-				// only use the first one
-				$sel = current($this->evalSelector($sel));
-				$this->pushExtends($sel, $out->selectors);
-			}
-			break;
-		case "if":
-			list(, $if) = $child;
-			if ($this->isTruthy($this->reduce($if->cond, true))) {
-				return $this->compileChildren($if->children, $out);
-			} else {
-				foreach ($if->cases as $case) {
-					if ($case->type == "else" ||
-						$case->type == "elseif" && $this->isTruthy($this->reduce($case->cond)))
-					{
-						return $this->compileChildren($case->children, $out);
-					}
-				}
-			}
-			break;
-		case "return":
-			return $this->reduce($child[1], true);
-		case "each":
-			list(,$each) = $child;
-			$list = $this->coerceList($this->reduce($each->list));
-			foreach ($list[2] as $item) {
-				$this->pushEnv();
-				$this->set($each->var, $item);
-				// TODO: allow return from here
-				$this->compileChildren($each->children, $out);
-				$this->popEnv();
-			}
-			break;
-		case "while":
-			list(,$while) = $child;
-			while ($this->isTruthy($this->reduce($while->cond, true))) {
-				$ret = $this->compileChildren($while->children, $out);
-				if ($ret) return $ret;
-			}
-			break;
-		case "for":
-			list(,$for) = $child;
-			$start = $this->reduce($for->start, true);
-			$start = $start[1];
-			$end = $this->reduce($for->end, true);
-			$end = $end[1];
-			$d = $start < $end ? 1 : -1;
-
-			while (true) {
-				if ((!$for->until && $start - $d == $end) ||
-					($for->until && $start == $end))
-				{
-					break;
-				}
-
-				$this->set($for->var, array("number", $start, ""));
-				$start += $d;
-
-				$ret = $this->compileChildren($for->children, $out);
-				if ($ret) return $ret;
-			}
-
-			break;
-		case "nestedprop":
-			list(,$prop) = $child;
-			$prefixed = array();
-			$prefix = $this->compileValue($prop->prefix) . "-";
-			foreach ($prop->children as $child) {
-				if ($child[0] == "assign") {
-					array_unshift($child[1][2], $prefix);
-				}
-				if ($child[0] == "nestedprop") {
-					array_unshift($child[1]->prefix[2], $prefix);
-				}
-				$prefixed[] = $child;
-			}
-			$this->compileChildren($prefixed, $out);
-			break;
-		case "include": // including a mixin
-			list(,$name, $argValues, $content) = $child;
-			$mixin = $this->get(self::$namespaces["mixin"] . $name, false);
-			if (!$mixin) {
-				$this->throwError("Undefined mixin $name");
-			}
-
-			$callingScope = $this->env;
-
-			// push scope, apply args
-			$this->pushEnv();
-			if ($this->env->depth > 0) {
-				$this->env->depth--;
-			}
-
-			if (!is_null($content)) {
-				$content->scope = $callingScope;
-				$this->setRaw(self::$namespaces["special"] . "content", $content);
-			}
-
-			if (!is_null($mixin->args)) {
-				$this->applyArguments($mixin->args, $argValues);
-			}
-
-			foreach ($mixin->children as $child) {
-				$this->compileChild($child, $out);
-			}
-
-			$this->popEnv();
-
-			break;
-		case "mixin_content":
-			$content = $this->get(self::$namespaces["special"] . "content");
-			if (is_null($content)) {
-				$this->throwError("Expected @content inside of mixin");
-			}
-
-			$strongTypes = array('include', 'block', 'for', 'while');
-			foreach ($content->children as $child) {
-				$this->storeEnv = (in_array($child[0], $strongTypes))
-					? null
-					: $content->scope;
-
-				$this->compileChild($child, $out);
-			}
-
-			unset($this->storeEnv);
-			break;
-		case "debug":
-			list(,$value, $pos) = $child;
-			$line = $this->parser->getLineNo($pos);
-			$value = $this->compileValue($this->reduce($value, true));
-			fwrite(STDERR, "Line $line DEBUG: $value\n");
-			break;
-		default:
-			$this->throwError("unknown child type: $child[0]");
-		}
-	}
-
-	protected function expToString($exp) {
-		list(, $op, $left, $right, $inParens, $whiteLeft, $whiteRight) = $exp;
-		$content = array($this->reduce($left));
-		if ($whiteLeft) $content[] = " ";
-		$content[] = $op;
-		if ($whiteRight) $content[] = " ";
-		$content[] = $this->reduce($right);
-		return array("string", "", $content);
-	}
-
-	protected function isTruthy($value) {
-		return $value != self::$false && $value != self::$null;
-	}
-
-	// should $value cause its operand to eval
-	protected function shouldEval($value) {
-		switch ($value[0]) {
-		case "exp":
-			if ($value[1] == "/") {
-				return $this->shouldEval($value[2], $value[3]);
-			}
-		case "var":
-		case "fncall":
-			return true;
-		}
-		return false;
-	}
-
-	protected function reduce($value, $inExp = false) {
-		list($type) = $value;
-		switch ($type) {
-			case "exp":
-				list(, $op, $left, $right, $inParens) = $value;
-				$opName = isset(self::$operatorNames[$op]) ? self::$operatorNames[$op] : $op;
-
-				$inExp = $inExp || $this->shouldEval($left) || $this->shouldEval($right);
-
-				$left = $this->reduce($left, true);
-				$right = $this->reduce($right, true);
-
-				// only do division in special cases
-				if ($opName == "div" && !$inParens && !$inExp) {
-					if ($left[0] != "color" && $right[0] != "color") {
-						return $this->expToString($value);
-					}
-				}
-
-				$left = $this->coerceForExpression($left);
-				$right = $this->coerceForExpression($right);
-
-				$ltype = $left[0];
-				$rtype = $right[0];
-
-				// this tries:
-				// 1. op_[op name]_[left type]_[right type]
-				// 2. op_[left type]_[right type] (passing the op as first arg
-				// 3. op_[op name]
-				$fn = "op_${opName}_${ltype}_${rtype}";
-				if (is_callable(array($this, $fn)) ||
-					(($fn = "op_${ltype}_${rtype}") &&
-						is_callable(array($this, $fn)) &&
-						$passOp = true) ||
-					(($fn = "op_${opName}") &&
-						is_callable(array($this, $fn)) &&
-						$genOp = true))
-				{
-					$unitChange = false;
-					if (!isset($genOp) &&
-						$left[0] == "number" && $right[0] == "number")
-					{
-						if ($opName == "mod" && $right[2] != "") {
-							$this->throwError("Cannot modulo by a number with units: $right[1]$right[2].");
-						}
-
-						$unitChange = true;
-						$emptyUnit = $left[2] == "" || $right[2] == "";
-						$targetUnit = "" != $left[2] ? $left[2] : $right[2];
-
-						if ($opName != "mul") {
-							$left[2] = "" != $left[2] ? $left[2] : $targetUnit;
-							$right[2] = "" != $right[2] ? $right[2] : $targetUnit;
-						}
-
-						if ($opName != "mod") {
-							$left = $this->normalizeNumber($left);
-							$right = $this->normalizeNumber($right);
-						}
-
-						if ($opName == "div" && !$emptyUnit && $left[2] == $right[2]) {
-							$targetUnit = "";
-						}
-
-						if ($opName == "mul") {
-							$left[2] = "" != $left[2] ? $left[2] : $right[2];
-							$right[2] = "" != $right[2] ? $right[2] : $left[2];
-						} elseif ($opName == "div" && $left[2] == $right[2]) {
-							$left[2] = "";
-							$right[2] = "";
-						}
-					}
-
-					$shouldEval = $inParens || $inExp;
-					if (isset($passOp)) {
-						$out = $this->$fn($op, $left, $right, $shouldEval);
-					} else {
-						$out = $this->$fn($left, $right, $shouldEval);
-					}
-
-					if (!is_null($out)) {
-						if ($unitChange && $out[0] == "number") {
-							$out = $this->coerceUnit($out, $targetUnit);
-						}
-						return $out;
-					}
-				}
-
-				return $this->expToString($value);
-			case "unary":
-				list(, $op, $exp, $inParens) = $value;
-				$inExp = $inExp || $this->shouldEval($exp);
-
-				$exp = $this->reduce($exp);
-				if ($exp[0] == "number") {
-					switch ($op) {
-					case "+":
-						return $exp;
-					case "-":
-						$exp[1] *= -1;
-						return $exp;
-					}
-				}
-
-				if ($op == "not") {
-					if ($inExp || $inParens) {
-						if ($exp == self::$false) {
-							return self::$true;
-						} else {
-							return self::$false;
-						}
-					} else {
-						$op = $op . " ";
-					}
-				}
-
-				return array("string", "", array($op, $exp));
-			case "var":
-				list(, $name) = $value;
-				return $this->reduce($this->get($name));
-			case "list":
-				foreach ($value[2] as &$item) {
-					$item = $this->reduce($item);
-				}
-				return $value;
-			case "string":
-				foreach ($value[2] as &$item) {
-					if (is_array($item)) {
-						$item = $this->reduce($item);
-					}
-				}
-				return $value;
-			case "interpolate":
-				$value[1] = $this->reduce($value[1]);
-				return $value;
-			case "fncall":
-				list(,$name, $argValues) = $value;
-
-				// user defined function?
-				$func = $this->get(self::$namespaces["function"] . $name, false);
-				if ($func) {
-					$this->pushEnv();
-
-					// set the args
-					if (isset($func->args)) {
-						$this->applyArguments($func->args, $argValues);
-					}
-
-					// throw away lines and children
-					$tmp = (object)array(
-						"lines" => array(),
-						"children" => array()
-					);
-					$ret = $this->compileChildren($func->children, $tmp);
-					$this->popEnv();
-
-					return is_null($ret) ? self::$defaultValue : $ret;
-				}
-
-				// built in function
-				if ($this->callBuiltin($name, $argValues, $returnValue)) {
-					return $returnValue;
-				}
-
-				// need to flatten the arguments into a list
-				$listArgs = array();
-				foreach ((array)$argValues as $arg) {
-					if (empty($arg[0])) {
-						$listArgs[] = $this->reduce($arg[1]);
-					}
-				}
-				return array("function", $name, array("list", ",", $listArgs));
-			default:
-				return $value;
-		}
-	}
-
-	public function normalizeValue($value) {
-		$value = $this->coerceForExpression($this->reduce($value));
-		list($type) = $value;
-
-		switch ($type) {
-		case "list":
-			$value = $this->extractInterpolation($value);
-			if ($value[0] != "list") {
-				return array("keyword", $this->compileValue($value));
-			}
-			foreach ($value[2] as $key => $item) {
-				$value[2][$key] = $this->normalizeValue($item);
-			}
-			return $value;
-		case "number":
-			return $this->normalizeNumber($value);
-		default:
-			return $value;
-		}
-	}
-
-	// just does physical lengths for now
-	protected function normalizeNumber($number) {
-		list(, $value, $unit) = $number;
-		if (isset(self::$unitTable["in"][$unit])) {
-			$conv = self::$unitTable["in"][$unit];
-			return array("number", $value / $conv, "in");
-		}
-		return $number;
-	}
-
-	// $number should be normalized
-	protected function coerceUnit($number, $unit) {
-		list(, $value, $baseUnit) = $number;
-		if (isset(self::$unitTable[$baseUnit][$unit])) {
-			$value = $value * self::$unitTable[$baseUnit][$unit];
-		}
-
-		return array("number", $value, $unit);
-	}
-
-	protected function op_add_number_number($left, $right) {
-		return array("number", $left[1] + $right[1], $left[2]);
-	}
-
-	protected function op_mul_number_number($left, $right) {
-		return array("number", $left[1] * $right[1], $left[2]);
-	}
-
-	protected function op_sub_number_number($left, $right) {
-		return array("number", $left[1] - $right[1], $left[2]);
-	}
-
-	protected function op_div_number_number($left, $right) {
-		return array("number", $left[1] / $right[1], $left[2]);
-	}
-
-	protected function op_mod_number_number($left, $right) {
-		return array("number", $left[1] % $right[1], $left[2]);
-	}
-
-	// adding strings
-	protected function op_add($left, $right) {
-		if ($strLeft = $this->coerceString($left)) {
-			if ($right[0] == "string") {
-				$right[1] = "";
-			}
-			$strLeft[2][] = $right;
-			return $strLeft;
-		}
-
-		if ($strRight = $this->coerceString($right)) {
-			if ($left[0] == "string") {
-				$left[1] = "";
-			}
-			array_unshift($strRight[2], $left);
-			return $strRight;
-		}
-	}
-
-	protected function op_and($left, $right, $shouldEval) {
-		if (!$shouldEval) return;
-		if ($left != self::$false) return $right;
-		return $left;
-	}
-
-	protected function op_or($left, $right, $shouldEval) {
-		if (!$shouldEval) return;
-		if ($left != self::$false) return $left;
-		return $right;
-	}
-
-	protected function op_color_color($op, $left, $right) {
-		$out = array('color');
-		foreach (range(1, 3) as $i) {
-			$lval = isset($left[$i]) ? $left[$i] : 0;
-			$rval = isset($right[$i]) ? $right[$i] : 0;
-			switch ($op) {
-			case '+':
-				$out[] = $lval + $rval;
-				break;
-			case '-':
-				$out[] = $lval - $rval;
-				break;
-			case '*':
-				$out[] = $lval * $rval;
-				break;
-			case '%':
-				$out[] = $lval % $rval;
-				break;
-			case '/':
-				if ($rval == 0) {
-					$this->throwError("color: Can't divide by zero");
-				}
-				$out[] = $lval / $rval;
-				break;
-			case "==":
-				return $this->op_eq($left, $right);
-			case "!=":
-				return $this->op_neq($left, $right);
-			default:
-				$this->throwError("color: unknown op $op");
-			}
-		}
-
-		if (isset($left[4])) $out[4] = $left[4];
-		elseif (isset($right[4])) $out[4] = $right[4];
-
-		return $this->fixColor($out);
-	}
-
-	protected function op_color_number($op, $left, $right) {
-		$value = $right[1];
-		return $this->op_color_color($op, $left,
-			array("color", $value, $value, $value));
-	}
-
-	protected function op_number_color($op, $left, $right) {
-		$value = $left[1];
-		return $this->op_color_color($op,
-			array("color", $value, $value, $value), $right);
-	}
-
-	protected function op_eq($left, $right) {
-		if (($lStr = $this->coerceString($left)) && ($rStr = $this->coerceString($right))) {
-			$lStr[1] = "";
-			$rStr[1] = "";
-			return $this->toBool($this->compileValue($lStr) == $this->compileValue($rStr));
-		}
-
-		return $this->toBool($left == $right);
-	}
-
-	protected function op_neq($left, $right) {
-		return $this->toBool($left != $right);
-	}
-
-	protected function op_gte_number_number($left, $right) {
-		return $this->toBool($left[1] >= $right[1]);
-	}
-
-	protected function op_gt_number_number($left, $right) {
-		return $this->toBool($left[1] > $right[1]);
-	}
-
-	protected function op_lte_number_number($left, $right) {
-		return $this->toBool($left[1] <= $right[1]);
-	}
-
-	protected function op_lt_number_number($left, $right) {
-		return $this->toBool($left[1] < $right[1]);
-	}
-
-	public function toBool($thing) {
-		return $thing ? self::$true : self::$false;
-	}
-
-	/**
-	 * Compiles a primitive value into a CSS property value.
-	 *
-	 * Values in scssphp are typed by being wrapped in arrays, their format is
-	 * typically:
-	 *
-	 *     array(type, contents [, additional_contents]*)
-	 *
-	 * The input is expected to be reduced. This function will not work on
-	 * things like expressions and variables.
-	 *
-	 * @param array $value
-	 */
-	protected function compileValue($value) {
-		$value = $this->reduce($value);
-
-		list($type) = $value;
-		switch ($type) {
-		case "keyword":
-			return $value[1];
-		case "color":
-			// [1] - red component (either number for a %)
-			// [2] - green component
-			// [3] - blue component
-			// [4] - optional alpha component
-			list(, $r, $g, $b) = $value;
-
-			$r = round($r);
-			$g = round($g);
-			$b = round($b);
-
-			if (count($value) == 5 && $value[4] != 1) { // rgba
-				return 'rgba('.$r.', '.$g.', '.$b.', '.$value[4].')';
-			}
-
-			$h = sprintf("#%02x%02x%02x", $r, $g, $b);
-
-			// Converting hex color to short notation (e.g. #003399 to #039)
-			if ($h[1] === $h[2] && $h[3] === $h[4] && $h[5] === $h[6]) {
-				$h = '#' . $h[1] . $h[3] . $h[5];
-			}
-
-			return $h;
-		case "number":
-			return round($value[1], $this->numberPrecision) . $value[2];
-		case "string":
-			return $value[1] . $this->compileStringContent($value) . $value[1];
-		case "function":
-			$args = !empty($value[2]) ? $this->compileValue($value[2]) : "";
-			return "$value[1]($args)";
-		case "list":
-			$value = $this->extractInterpolation($value);
-			if ($value[0] != "list") return $this->compileValue($value);
-
-			list(, $delim, $items) = $value;
-
-			$filtered = array();
-			foreach ($items as $item) {
-				if ($item[0] == "null") continue;
-				$filtered[] = $this->compileValue($item);
-			}
-
-			return implode("$delim ", $filtered);
-		case "interpolated": # node created by extractInterpolation
-			list(, $interpolate, $left, $right) = $value;
-			list(,, $whiteLeft, $whiteRight) = $interpolate;
-
-			$left = count($left[2]) > 0 ?
-				$this->compileValue($left).$whiteLeft : "";
-
-			$right = count($right[2]) > 0 ?
-				$whiteRight.$this->compileValue($right) : "";
-
-			return $left.$this->compileValue($interpolate).$right;
-
-		case "interpolate": # raw parse node
-			list(, $exp) = $value;
-
-			// strip quotes if it's a string
-			$reduced = $this->reduce($exp);
-			switch ($reduced[0]) {
-				case "string":
-					$reduced = array("keyword",
-						$this->compileStringContent($reduced));
-					break;
-				case "null":
-					$reduced = array("keyword", "");
-			}
-
-			return $this->compileValue($reduced);
-		case "null":
-			return "null";
-		default:
-			$this->throwError("unknown value type: $type");
-		}
-	}
-
-	protected function compileStringContent($string) {
-		$parts = array();
-		foreach ($string[2] as $part) {
-			if (is_array($part)) {
-				$parts[] = $this->compileValue($part);
-			} else {
-				$parts[] = $part;
-			}
-		}
-
-		return implode($parts);
-	}
-
-	// doesn't need to be recursive, compileValue will handle that
-	protected function extractInterpolation($list) {
-		$items = $list[2];
-		foreach ($items as $i => $item) {
-			if ($item[0] == "interpolate") {
-				$before = array("list", $list[1], array_slice($items, 0, $i));
-				$after = array("list", $list[1], array_slice($items, $i + 1));
-				return array("interpolated", $item, $before, $after);
-			}
-		}
-		return $list;
-	}
-
-	// find the final set of selectors
-	protected function multiplySelectors($env) {
-		$envs = array();
-		while (null !== $env) {
-			if (!empty($env->selectors)) {
-				$envs[] = $env;
-			}
-			$env = $env->parent;
-		};
-
-		$selectors = array();
-		$parentSelectors = array(array());
-		while ($env = array_pop($envs)) {
-			$selectors = array();
-			foreach ($env->selectors as $selector) {
-				foreach ($parentSelectors as $parent) {
-					$selectors[] = $this->joinSelectors($parent, $selector);
-				}
-			}
-			$parentSelectors = $selectors;
-		}
-
-		return $selectors;
-	}
-
-	// looks for & to replace, or append parent before child
-	protected function joinSelectors($parent, $child) {
-		$setSelf = false;
-		$out = array();
-		foreach ($child as $part) {
-			$newPart = array();
-			foreach ($part as $p) {
-				if ($p == self::$selfSelector) {
-					$setSelf = true;
-					foreach ($parent as $i => $parentPart) {
-						if ($i > 0) {
-							$out[] = $newPart;
-							$newPart = array();
-						}
-
-						foreach ($parentPart as $pp) {
-							$newPart[] = $pp;
-						}
-					}
-				} else {
-					$newPart[] = $p;
-				}
-			}
-
-			$out[] = $newPart;
-		}
-
-		return $setSelf ? $out : array_merge($parent, $child);
-	}
-
-	protected function multiplyMedia($env, $childQueries = null) {
-		if (is_null($env) ||
-			!empty($env->block->type) && $env->block->type != "media")
-		{
-			return $childQueries;
-		}
-
-		// plain old block, skip
-		if (empty($env->block->type)) {
-			return $this->multiplyMedia($env->parent, $childQueries);
-		}
-
-		$parentQueries = $env->block->queryList;
-		if ($childQueries == null) {
-			$childQueries = $parentQueries;
-		} else {
-			$originalQueries = $childQueries;
-			$childQueries = array();
-
-			foreach ($parentQueries as $parentQuery){
-				foreach ($originalQueries as $childQuery) {
-					$childQueries []= array_merge($parentQuery, $childQuery);
-				}
-			}
-		}
-
-		return $this->multiplyMedia($env->parent, $childQueries);
-	}
-
-	// convert something to list
-	protected function coerceList($item, $delim = ",") {
-		if (!is_null($item) && $item[0] == "list") {
-			return $item;
-		}
-
-		return array("list", $delim, is_null($item) ? array(): array($item));
-	}
-
-	protected function applyArguments($argDef, $argValues) {
-		$hasVariable = false;
-		$args = array();
-		foreach ($argDef as $i => $arg) {
-			list($name, $default, $isVariable) = $argDef[$i];
-			$args[$name] = array($i, $name, $default, $isVariable);
-			$hasVariable |= $isVariable;
-		}
-
-		$keywordArgs = array();
-		$deferredKeywordArgs = array();
-		$remaining = array();
-		// assign the keyword args
-		foreach ((array) $argValues as $arg) {
-			if (!empty($arg[0])) {
-				if (!isset($args[$arg[0][1]])) {
-					if ($hasVariable) {
-						$deferredKeywordArgs[$arg[0][1]] = $arg[1];
-					} else {
-						$this->throwError("Mixin or function doesn't have an argument named $%s.", $arg[0][1]);
-					}
-				} elseif ($args[$arg[0][1]][0] < count($remaining)) {
-					$this->throwError("The argument $%s was passed both by position and by name.", $arg[0][1]);
-				} else {
-					$keywordArgs[$arg[0][1]] = $arg[1];
-				}
-			} elseif (count($keywordArgs)) {
-				$this->throwError('Positional arguments must come before keyword arguments.');
-			} elseif ($arg[2] == true) {
-				$val = $this->reduce($arg[1], true);
-				if ($val[0] == "list") {
-					foreach ($val[2] as $name => $item) {
-						if (!is_numeric($name)) {
-							$keywordArgs[$name] = $item;
-						} else {
-							$remaining[] = $item;
-						}
-					}
-				} else {
-					$remaining[] = $val;
-				}
-			} else {
-				$remaining[] = $arg[1];
-			}
-		}
-
-		foreach ($args as $arg) {
-			list($i, $name, $default, $isVariable) = $arg;
-			if ($isVariable) {
-				$val = array("list", ",", array());
-				for ($count = count($remaining); $i < $count; $i++) {
-					$val[2][] = $remaining[$i];
-				}
-				foreach ($deferredKeywordArgs as $itemName => $item) {
-					$val[2][$itemName] = $item;
-				}
-			} elseif (isset($remaining[$i])) {
-				$val = $remaining[$i];
-			} elseif (isset($keywordArgs[$name])) {
-				$val = $keywordArgs[$name];
-			} elseif (!empty($default)) {
-				$val = $default;
-			} else {
-				$this->throwError("Missing argument $name");
-			}
-
-			$this->set($name, $this->reduce($val, true), true);
-		}
-	}
-
-	protected function pushEnv($block=null) {
-		$env = new stdClass;
-		$env->parent = $this->env;
-		$env->store = array();
-		$env->block = $block;
-		$env->depth = isset($this->env->depth) ? $this->env->depth + 1 : 0;
-
-		$this->env = $env;
-		return $env;
-	}
-
-	protected function normalizeName($name) {
-		return str_replace("-", "_", $name);
-	}
-
-	protected function getStoreEnv() {
-		return isset($this->storeEnv) ? $this->storeEnv : $this->env;
-	}
-
-	protected function set($name, $value, $shadow=false) {
-		$name = $this->normalizeName($name);
-
-		if ($shadow) {
-			$this->setRaw($name, $value);
-		} else {
-			$this->setExisting($name, $value);
-		}
-	}
-
-	protected function setExisting($name, $value, $env = null) {
-		if (is_null($env)) $env = $this->getStoreEnv();
-
-		if (isset($env->store[$name]) || is_null($env->parent)) {
-			$env->store[$name] = $value;
-		} else {
-			$this->setExisting($name, $value, $env->parent);
-		}
-	}
-
-	protected function setRaw($name, $value) {
-		$env = $this->getStoreEnv();
-		$env->store[$name] = $value;
-	}
-
-	public function get($name, $defaultValue = null, $env = null) {
-		$name = $this->normalizeName($name);
-
-		if (is_null($env)) $env = $this->getStoreEnv();
-		if (is_null($defaultValue)) $defaultValue = self::$defaultValue;
-
-		if (isset($env->store[$name])) {
-			return $env->store[$name];
-		} elseif (isset($env->parent)) {
-			return $this->get($name, $defaultValue, $env->parent);
-		}
-
-		return $defaultValue; // found nothing
-	}
-
-	protected function popEnv() {
-		$env = $this->env;
-		$this->env = $this->env->parent;
-		return $env;
-	}
-
-	public function getParsedFiles() {
-		return $this->parsedFiles;
-	}
-
-	public function addImportPath($path) {
-		$this->importPaths[] = $path;
-	}
-
-	public function setImportPaths($path) {
-		$this->importPaths = (array)$path;
-	}
-
-	public function setNumberPrecision($numberPrecision) {
-		$this->numberPrecision = $numberPrecision;
-	}
-
-	public function setFormatter($formatterName) {
-		$this->formatter = $formatterName;
-	}
-
-	public function registerFunction($name, $func) {
-		$this->userFunctions[$this->normalizeName($name)] = $func;
-	}
-
-	public function unregisterFunction($name) {
-		unset($this->userFunctions[$this->normalizeName($name)]);
-	}
-
-	protected function importFile($path, $out) {
-		// see if tree is cached
-		$realPath = realpath($path);
-		if (isset($this->importCache[$realPath])) {
-			$tree = $this->importCache[$realPath];
-		} else {
-			$code = file_get_contents($path);
-			$parser = new scss_parser($path, false);
-			$tree = $parser->parse($code);
-			$this->parsedFiles[] = $path;
-
-			$this->importCache[$realPath] = $tree;
-		}
-
-		$pi = pathinfo($path);
-		array_unshift($this->importPaths, $pi['dirname']);
-		$this->compileChildren($tree->children, $out);
-		array_shift($this->importPaths);
-	}
-
-	// results the file path for an import url if it exists
-	public function findImport($url) {
-		$urls = array();
-
-		// for "normal" scss imports (ignore vanilla css and external requests)
-		if (!preg_match('/\.css|^http:\/\/$/', $url)) {
-			// try both normal and the _partial filename
-			$urls = array($url, preg_replace('/[^\/]+$/', '_\0', $url));
-		}
-
-		foreach ($this->importPaths as $dir) {
-			if (is_string($dir)) {
-				// check urls for normal import paths
-				foreach ($urls as $full) {
-					$full = $dir .
-						(!empty($dir) && substr($dir, -1) != '/' ? '/' : '') .
-						$full;
-
-					if ($this->fileExists($file = $full.'.scss') ||
-						$this->fileExists($file = $full))
-					{
-						return $file;
-					}
-				}
-			} else {
-				// check custom callback for import path
-				$file = call_user_func($dir,$url,$this);
-				if ($file !== null) {
-					return $file;
-				}
-			}
-		}
-
-		return null;
-	}
-
-	protected function fileExists($name) {
-		return is_file($name);
-	}
-
-	protected function callBuiltin($name, $args, &$returnValue) {
-		// try a lib function
-		$name = $this->normalizeName($name);
-		$libName = "lib_".$name;
-		$f = array($this, $libName);
-		$prototype = isset(self::$$libName) ? self::$$libName : null;
-
-		if (is_callable($f)) {
-			$sorted = $this->sortArgs($prototype, $args);
-			foreach ($sorted as &$val) {
-				$val = $this->reduce($val, true);
-			}
-			$returnValue = call_user_func($f, $sorted, $this);
-		} elseif (isset($this->userFunctions[$name])) {
-			// see if we can find a user function
-			$fn = $this->userFunctions[$name];
-
-			foreach ($args as &$val) {
-				$val = $this->reduce($val[1], true);
-			}
-
-			$returnValue = call_user_func($fn, $args, $this);
-		}
-
-		if (isset($returnValue)) {
-			// coerce a php value into a scss one
-			if (is_numeric($returnValue)) {
-				$returnValue = array('number', $returnValue, "");
-			} elseif (is_bool($returnValue)) {
-				$returnValue = $returnValue ? self::$true : self::$false;
-			} elseif (!is_array($returnValue)) {
-				$returnValue = array('keyword', $returnValue);
-			}
-
-			return true;
-		}
-
-		return false;
-	}
-
-	// sorts any keyword arguments
-	// TODO: merge with apply arguments
-	protected function sortArgs($prototype, $args) {
-		$keyArgs = array();
-		$posArgs = array();
-
-		foreach ($args as $arg) {
-			list($key, $value) = $arg;
-			$key = $key[1];
-			if (empty($key)) {
-				$posArgs[] = $value;
-			} else {
-				$keyArgs[$key] = $value;
-			}
-		}
-
-		if (is_null($prototype)) return $posArgs;
-
-		$finalArgs = array();
-		foreach ($prototype as $i => $names) {
-			if (isset($posArgs[$i])) {
-				$finalArgs[] = $posArgs[$i];
-				continue;
-			}
-
-			$set = false;
-			foreach ((array)$names as $name) {
-				if (isset($keyArgs[$name])) {
-					$finalArgs[] = $keyArgs[$name];
-					$set = true;
-					break;
-				}
-			}
-
-			if (!$set) {
-				$finalArgs[] = null;
-			}
-		}
-
-		return $finalArgs;
-	}
-
-	protected function coerceForExpression($value) {
-		if ($color = $this->coerceColor($value)) {
-			return $color;
-		}
-
-		return $value;
-	}
-
-	protected function coerceColor($value) {
-		switch ($value[0]) {
-		case "color": return $value;
-		case "keyword":
-			$name = $value[1];
-			if (isset(self::$cssColors[$name])) {
-				$rgba = explode(',', self::$cssColors[$name]);
-				return isset($rgba[3])
-					? array('color', (int) $rgba[0], (int) $rgba[1], (int) $rgba[2], (int) $rgba[3])
-					: array('color', (int) $rgba[0], (int) $rgba[1], (int) $rgba[2]);
-			}
-			return null;
-		}
-
-		return null;
-	}
-
-	protected function coerceString($value) {
-		switch ($value[0]) {
-		case "string":
-			return $value;
-		case "keyword":
-			return array("string", "", array($value[1]));
-		}
-		return null;
-	}
-
-	public function assertList($value) {
-		if ($value[0] != "list")
-			$this->throwError("expecting list");
-		return $value;
-	}
-
-	public function assertColor($value) {
-		if ($color = $this->coerceColor($value)) return $color;
-		$this->throwError("expecting color");
-	}
-
-	public function assertNumber($value) {
-		if ($value[0] != "number")
-			$this->throwError("expecting number");
-		return $value[1];
-	}
-
-	protected function coercePercent($value) {
-		if ($value[0] == "number") {
-			if ($value[2] == "%") {
-				return $value[1] / 100;
-			}
-			return $value[1];
-		}
-		return 0;
-	}
-
-	// make sure a color's components don't go out of bounds
-	protected function fixColor($c) {
-		foreach (range(1, 3) as $i) {
-			if ($c[$i] < 0) $c[$i] = 0;
-			if ($c[$i] > 255) $c[$i] = 255;
-		}
-
-		return $c;
-	}
-
-	public function toHSL($red, $green, $blue) {
-		$min = min($red, $green, $blue);
-		$max = max($red, $green, $blue);
-
-		$l = $min + $max;
-
-		if ($min == $max) {
-			$s = $h = 0;
-		} else {
-		        $d = $max - $min;
-
-			if ($l < 255)
-				$s = $d / $l;
-			else
-				$s = $d / (510 - $l);
-
-			if ($red == $max)
-				$h = 60 * ($green - $blue) / $d;
-			elseif ($green == $max)
-				$h = 60 * ($blue - $red) / $d + 120;
-			elseif ($blue == $max)
-				$h = 60 * ($red - $green) / $d + 240;
-		}
-
-		return array('hsl', fmod($h, 360), $s * 100, $l / 5.1);
-	}
-
-	public function hueToRGB($m1, $m2, $h) {
-		if ($h < 0)
-			$h += 1;
-		elseif ($h > 1)
-			$h -= 1;
-
-		if ($h * 6 < 1)
-			return $m1 + ($m2 - $m1) * $h * 6;
-
-		if ($h * 2 < 1)
-			return $m2;
-
-		if ($h * 3 < 2)
-			return $m1 + ($m2 - $m1) * (2/3 - $h) * 6;
-
-		return $m1;
-	}
-
-	// H from 0 to 360, S and L from 0 to 100
-	public function toRGB($hue, $saturation, $lightness) {
-		if ($hue < 0) {
-			$hue += 360;
-		}
-
-		$h = $hue / 360;
-		$s = min(100, max(0, $saturation)) / 100;
-		$l = min(100, max(0, $lightness)) / 100;
-
-		$m2 = $l <= 0.5 ? $l * ($s + 1) : $l + $s - $l * $s;
-		$m1 = $l * 2 - $m2;
-
-		$r = $this->hueToRGB($m1, $m2, $h + 1/3) * 255;
-		$g = $this->hueToRGB($m1, $m2, $h) * 255;
-		$b = $this->hueToRGB($m1, $m2, $h - 1/3) * 255;
-
-		$out = array('color', $r, $g, $b);
-		return $out;
-	}
-
-	// Built in functions
-
-	protected static $lib_if = array("condition", "if-true", "if-false");
-	protected function lib_if($args) {
-		list($cond,$t, $f) = $args;
-		if (!$this->isTruthy($cond)) return $f;
-		return $t;
-	}
-
-	protected static $lib_index = array("list", "value");
-	protected function lib_index($args) {
-		list($list, $value) = $args;
-		$list = $this->assertList($list);
-
-		$values = array();
-		foreach ($list[2] as $item) {
-			$values[] = $this->normalizeValue($item);
-		}
-		$key = array_search($this->normalizeValue($value), $values);
-
-		return false === $key ? false : $key + 1;
-	}
-
-	protected static $lib_rgb = array("red", "green", "blue");
-	protected function lib_rgb($args) {
-		list($r,$g,$b) = $args;
-		return array("color", $r[1], $g[1], $b[1]);
-	}
-
-	protected static $lib_rgba = array(
-		array("red", "color"),
-		"green", "blue", "alpha");
-	protected function lib_rgba($args) {
-		if ($color = $this->coerceColor($args[0])) {
-			$num = is_null($args[1]) ? $args[3] : $args[1];
-			$alpha = $this->assertNumber($num);
-			$color[4] = $alpha;
-			return $color;
-		}
-
-		list($r,$g,$b, $a) = $args;
-		return array("color", $r[1], $g[1], $b[1], $a[1]);
-	}
-
-	// helper function for adjust_color, change_color, and scale_color
-	protected function alter_color($args, $fn) {
-		$color = $this->assertColor($args[0]);
-
-		foreach (array(1,2,3,7) as $i) {
-			if (!is_null($args[$i])) {
-				$val = $this->assertNumber($args[$i]);
-				$ii = $i == 7 ? 4 : $i; // alpha
-				$color[$ii] =
-					$this->$fn(isset($color[$ii]) ? $color[$ii] : 0, $val, $i);
-			}
-		}
-
-		if (!is_null($args[4]) || !is_null($args[5]) || !is_null($args[6])) {
-			$hsl = $this->toHSL($color[1], $color[2], $color[3]);
-			foreach (array(4,5,6) as $i) {
-				if (!is_null($args[$i])) {
-					$val = $this->assertNumber($args[$i]);
-					$hsl[$i - 3] = $this->$fn($hsl[$i - 3], $val, $i);
-				}
-			}
-
-			$rgb = $this->toRGB($hsl[1], $hsl[2], $hsl[3]);
-			if (isset($color[4])) $rgb[4] = $color[4];
-			$color = $rgb;
-		}
-
-		return $color;
-	}
-
-	protected static $lib_adjust_color = array(
-		"color", "red", "green", "blue",
-		"hue", "saturation", "lightness", "alpha"
-	);
-	protected function adjust_color_helper($base, $alter, $i) {
-		return $base += $alter;
-	}
-	protected function lib_adjust_color($args) {
-		return $this->alter_color($args, "adjust_color_helper");
-	}
-
-	protected static $lib_change_color = array(
-		"color", "red", "green", "blue",
-		"hue", "saturation", "lightness", "alpha"
-	);
-	protected function change_color_helper($base, $alter, $i) {
-		return $alter;
-	}
-	protected function lib_change_color($args) {
-		return $this->alter_color($args, "change_color_helper");
-	}
-
-	protected static $lib_scale_color = array(
-		"color", "red", "green", "blue",
-		"hue", "saturation", "lightness", "alpha"
-	);
-	protected function scale_color_helper($base, $scale, $i) {
-		// 1,2,3 - rgb
-		// 4, 5, 6 - hsl
-		// 7 - a
-		switch ($i) {
-		case 1:
-		case 2:
-		case 3:
-			$max = 255; break;
-		case 4:
-			$max = 360; break;
-		case 7:
-			$max = 1; break;
-		default:
-			$max = 100;
-		}
-
-		$scale = $scale / 100;
-		if ($scale < 0) {
-			return $base * $scale + $base;
-		} else {
-			return ($max - $base) * $scale + $base;
-		}
-	}
-	protected function lib_scale_color($args) {
-		return $this->alter_color($args, "scale_color_helper");
-	}
-
-	protected static $lib_ie_hex_str = array("color");
-	protected function lib_ie_hex_str($args) {
-		$color = $this->coerceColor($args[0]);
-		$color[4] = isset($color[4]) ? round(255*$color[4]) : 255;
-
-		return sprintf('#%02X%02X%02X%02X', $color[4], $color[1], $color[2], $color[3]);
-	}
-
-	protected static $lib_red = array("color");
-	protected function lib_red($args) {
-		$color = $this->coerceColor($args[0]);
-		return $color[1];
-	}
-
-	protected static $lib_green = array("color");
-	protected function lib_green($args) {
-		$color = $this->coerceColor($args[0]);
-		return $color[2];
-	}
-
-	protected static $lib_blue = array("color");
-	protected function lib_blue($args) {
-		$color = $this->coerceColor($args[0]);
-		return $color[3];
-	}
-
-	protected static $lib_alpha = array("color");
-	protected function lib_alpha($args) {
-		if ($color = $this->coerceColor($args[0])) {
-			return isset($color[4]) ? $color[4] : 1;
-		}
-
-		// this might be the IE function, so return value unchanged
-		return null;
-	}
-
-	protected static $lib_opacity = array("color");
-	protected function lib_opacity($args) {
-		$value = $args[0];
-		if ($value[0] === 'number') return null;
-		return $this->lib_alpha($args);
-	}
-
-	// mix two colors
-	protected static $lib_mix = array("color-1", "color-2", "weight");
-	protected function lib_mix($args) {
-		list($first, $second, $weight) = $args;
-		$first = $this->assertColor($first);
-		$second = $this->assertColor($second);
-
-		if (is_null($weight)) {
-			$weight = 0.5;
-		} else {
-			$weight = $this->coercePercent($weight);
-		}
-
-		$firstAlpha = isset($first[4]) ? $first[4] : 1;
-		$secondAlpha = isset($second[4]) ? $second[4] : 1;
-
-		$w = $weight * 2 - 1;
-		$a = $firstAlpha - $secondAlpha;
-
-		$w1 = (($w * $a == -1 ? $w : ($w + $a)/(1 + $w * $a)) + 1) / 2.0;
-		$w2 = 1.0 - $w1;
-
-		$new = array('color',
-			$w1 * $first[1] + $w2 * $second[1],
-			$w1 * $first[2] + $w2 * $second[2],
-			$w1 * $first[3] + $w2 * $second[3],
-		);
-
-		if ($firstAlpha != 1.0 || $secondAlpha != 1.0) {
-			$new[] = $firstAlpha * $weight + $secondAlpha * ($weight - 1);
-		}
-
-		return $this->fixColor($new);
-	}
-
-	protected static $lib_hsl = array("hue", "saturation", "lightness");
-	protected function lib_hsl($args) {
-		list($h, $s, $l) = $args;
-		return $this->toRGB($h[1], $s[1], $l[1]);
-	}
-
-	protected static $lib_hsla = array("hue", "saturation",
-		"lightness", "alpha");
-	protected function lib_hsla($args) {
-		list($h, $s, $l, $a) = $args;
-		$color = $this->toRGB($h[1], $s[1], $l[1]);
-		$color[4] = $a[1];
-		return $color;
-	}
-
-	protected static $lib_hue = array("color");
-	protected function lib_hue($args) {
-		$color = $this->assertColor($args[0]);
-		$hsl = $this->toHSL($color[1], $color[2], $color[3]);
-		return array("number", $hsl[1], "deg");
-	}
-
-	protected static $lib_saturation = array("color");
-	protected function lib_saturation($args) {
-		$color = $this->assertColor($args[0]);
-		$hsl = $this->toHSL($color[1], $color[2], $color[3]);
-		return array("number", $hsl[2], "%");
-	}
-
-	protected static $lib_lightness = array("color");
-	protected function lib_lightness($args) {
-		$color = $this->assertColor($args[0]);
-		$hsl = $this->toHSL($color[1], $color[2], $color[3]);
-		return array("number", $hsl[3], "%");
-	}
-
-	protected function adjustHsl($color, $idx, $amount) {
-		$hsl = $this->toHSL($color[1], $color[2], $color[3]);
-		$hsl[$idx] += $amount;
-		$out = $this->toRGB($hsl[1], $hsl[2], $hsl[3]);
-		if (isset($color[4])) $out[4] = $color[4];
-		return $out;
-	}
-
-	protected static $lib_adjust_hue = array("color", "degrees");
-	protected function lib_adjust_hue($args) {
-		$color = $this->assertColor($args[0]);
-		$degrees = $this->assertNumber($args[1]);
-		return $this->adjustHsl($color, 1, $degrees);
-	}
-
-	protected static $lib_lighten = array("color", "amount");
-	protected function lib_lighten($args) {
-		$color = $this->assertColor($args[0]);
-		$amount = 100*$this->coercePercent($args[1]);
-		return $this->adjustHsl($color, 3, $amount);
-	}
-
-	protected static $lib_darken = array("color", "amount");
-	protected function lib_darken($args) {
-		$color = $this->assertColor($args[0]);
-		$amount = 100*$this->coercePercent($args[1]);
-		return $this->adjustHsl($color, 3, -$amount);
-	}
-
-	protected static $lib_saturate = array("color", "amount");
-	protected function lib_saturate($args) {
-		$value = $args[0];
-		if ($value[0] === 'number') return null;
-		$color = $this->assertColor($value);
-		$amount = 100*$this->coercePercent($args[1]);
-		return $this->adjustHsl($color, 2, $amount);
-	}
-
-	protected static $lib_desaturate = array("color", "amount");
-	protected function lib_desaturate($args) {
-		$color = $this->assertColor($args[0]);
-		$amount = 100*$this->coercePercent($args[1]);
-		return $this->adjustHsl($color, 2, -$amount);
-	}
-
-	protected static $lib_grayscale = array("color");
-	protected function lib_grayscale($args) {
-		$value = $args[0];
-		if ($value[0] === 'number') return null;
-		return $this->adjustHsl($this->assertColor($value), 2, -100);
-	}
-
-	protected static $lib_complement = array("color");
-	protected function lib_complement($args) {
-		return $this->adjustHsl($this->assertColor($args[0]), 1, 180);
-	}
-
-	protected static $lib_invert = array("color");
-	protected function lib_invert($args) {
-		$value = $args[0];
-		if ($value[0] === 'number') return null;
-		$color = $this->assertColor($value);
-		$color[1] = 255 - $color[1];
-		$color[2] = 255 - $color[2];
-		$color[3] = 255 - $color[3];
-		return $color;
-	}
-
-	// increases opacity by amount
-	protected static $lib_opacify = array("color", "amount");
-	protected function lib_opacify($args) {
-		$color = $this->assertColor($args[0]);
-		$amount = $this->coercePercent($args[1]);
-
-		$color[4] = (isset($color[4]) ? $color[4] : 1) + $amount;
-		$color[4] = min(1, max(0, $color[4]));
-		return $color;
-	}
-
-	protected static $lib_fade_in = array("color", "amount");
-	protected function lib_fade_in($args) {
-		return $this->lib_opacify($args);
-	}
-
-	// decreases opacity by amount
-	protected static $lib_transparentize = array("color", "amount");
-	protected function lib_transparentize($args) {
-		$color = $this->assertColor($args[0]);
-		$amount = $this->coercePercent($args[1]);
-
-		$color[4] = (isset($color[4]) ? $color[4] : 1) - $amount;
-		$color[4] = min(1, max(0, $color[4]));
-		return $color;
-	}
-
-	protected static $lib_fade_out = array("color", "amount");
-	protected function lib_fade_out($args) {
-		return $this->lib_transparentize($args);
-	}
-
-	protected static $lib_unquote = array("string");
-	protected function lib_unquote($args) {
-		$str = $args[0];
-		if ($str[0] == "string") $str[1] = "";
-		return $str;
-	}
-
-	protected static $lib_quote = array("string");
-	protected function lib_quote($args) {
-		$value = $args[0];
-		if ($value[0] == "string" && !empty($value[1]))
-			return $value;
-		return array("string", '"', array($value));
-	}
-
-	protected static $lib_percentage = array("value");
-	protected function lib_percentage($args) {
-		return array("number",
-			$this->coercePercent($args[0]) * 100,
-			"%");
-	}
-
-	protected static $lib_round = array("value");
-	protected function lib_round($args) {
-		$num = $args[0];
-		$num[1] = round($num[1]);
-		return $num;
-	}
-
-	protected static $lib_floor = array("value");
-	protected function lib_floor($args) {
-		$num = $args[0];
-		$num[1] = floor($num[1]);
-		return $num;
-	}
-
-	protected static $lib_ceil = array("value");
-	protected function lib_ceil($args) {
-		$num = $args[0];
-		$num[1] = ceil($num[1]);
-		return $num;
-	}
-
-	protected static $lib_abs = array("value");
-	protected function lib_abs($args) {
-		$num = $args[0];
-		$num[1] = abs($num[1]);
-		return $num;
-	}
-
-	protected function lib_min($args) {
-		$numbers = $this->getNormalizedNumbers($args);
-		$min = null;
-		foreach ($numbers as $key => $number) {
-			if (null === $min || $number[1] <= $min[1]) {
-				$min = array($key, $number[1]);
-			}
-		}
-
-		return $args[$min[0]];
-	}
-
-	protected function lib_max($args) {
-		$numbers = $this->getNormalizedNumbers($args);
-		$max = null;
-		foreach ($numbers as $key => $number) {
-			if (null === $max || $number[1] >= $max[1]) {
-				$max = array($key, $number[1]);
-			}
-		}
-
-		return $args[$max[0]];
-	}
-
-	protected function getNormalizedNumbers($args) {
-		$unit = null;
-		$originalUnit = null;
-		$numbers = array();
-		foreach ($args as $key => $item) {
-			if ('number' != $item[0]) {
-				$this->throwError("%s is not a number", $item[0]);
-			}
-			$number = $this->normalizeNumber($item);
-
-			if (null === $unit) {
-				$unit = $number[2];
-				$originalUnit = $item[2];
-			} elseif ($unit !== $number[2]) {
-				$this->throwError('Incompatible units: "%s" and "%s".', $originalUnit, $item[2]);
-			}
-
-			$numbers[$key] = $number;
-		}
-
-		return $numbers;
-	}
-
-	protected static $lib_length = array("list");
-	protected function lib_length($args) {
-		$list = $this->coerceList($args[0]);
-		return count($list[2]);
-	}
-
-	protected static $lib_nth = array("list", "n");
-	protected function lib_nth($args) {
-		$list = $this->coerceList($args[0]);
-		$n = $this->assertNumber($args[1]) - 1;
-		return isset($list[2][$n]) ? $list[2][$n] : self::$defaultValue;
-	}
-
-	protected function listSeparatorForJoin($list1, $sep) {
-		if (is_null($sep)) return $list1[1];
-		switch ($this->compileValue($sep)) {
-		case "comma":
-			return ",";
-		case "space":
-			return "";
-		default:
-			return $list1[1];
-		}
-	}
-
-	protected static $lib_join = array("list1", "list2", "separator");
-	protected function lib_join($args) {
-		list($list1, $list2, $sep) = $args;
-		$list1 = $this->coerceList($list1, " ");
-		$list2 = $this->coerceList($list2, " ");
-		$sep = $this->listSeparatorForJoin($list1, $sep);
-		return array("list", $sep, array_merge($list1[2], $list2[2]));
-	}
-
-	protected static $lib_append = array("list", "val", "separator");
-	protected function lib_append($args) {
-		list($list1, $value, $sep) = $args;
-		$list1 = $this->coerceList($list1, " ");
-		$sep = $this->listSeparatorForJoin($list1, $sep);
-		return array("list", $sep, array_merge($list1[2], array($value)));
-	}
-
-	protected function lib_zip($args) {
-		foreach ($args as $arg) {
-			$this->assertList($arg);
-		}
-
-		$lists = array();
-		$firstList = array_shift($args);
-		foreach ($firstList[2] as $key => $item) {
-			$list = array("list", "", array($item));
-			foreach ($args as $arg) {
-				if (isset($arg[2][$key])) {
-					$list[2][] = $arg[2][$key];
-				} else {
-					break 2;
-				}
-			}
-			$lists[] = $list;
-		}
-
-		return array("list", ",", $lists);
-	}
-
-	protected static $lib_type_of = array("value");
-	protected function lib_type_of($args) {
-		$value = $args[0];
-		switch ($value[0]) {
-		case "keyword":
-			if ($value == self::$true || $value == self::$false) {
-				return "bool";
-			}
-
-			if ($this->coerceColor($value)) {
-				return "color";
-			}
-
-			return "string";
-		default:
-			return $value[0];
-		}
-	}
-
-	protected static $lib_unit = array("number");
-	protected function lib_unit($args) {
-		$num = $args[0];
-		if ($num[0] == "number") {
-			return array("string", '"', array($num[2]));
-		}
-		return "";
-	}
-
-	protected static $lib_unitless = array("number");
-	protected function lib_unitless($args) {
-		$value = $args[0];
-		return $value[0] == "number" && empty($value[2]);
-	}
-
-	protected static $lib_comparable = array("number-1", "number-2");
-	protected function lib_comparable($args) {
-		list($number1, $number2) = $args;
-		if (!isset($number1[0]) || $number1[0] != "number" || !isset($number2[0]) || $number2[0] != "number") {
-			$this->throwError('Invalid argument(s) for "comparable"');
-		}
-
-		$number1 = $this->normalizeNumber($number1);
-		$number2 = $this->normalizeNumber($number2);
-
-		return $number1[2] == $number2[2] || $number1[2] == "" || $number2[2] == "";
-	}
-
-	/**
-	 * Workaround IE7's content counter bug.
-	 *
-	 * @param array $args
-	 */
-	protected function lib_counter($args) {
-		$list = array_map(array($this, 'compileValue'), $args);
-		return array('string', '', array('counter(' . implode(',', $list) . ')'));
-	}
-
-	public function throwError($msg = null) {
-		if (func_num_args() > 1) {
-			$msg = call_user_func_array("sprintf", func_get_args());
-		}
-
-		if ($this->sourcePos >= 0 && isset($this->sourceParser)) {
-			$this->sourceParser->throwParseError($msg, $this->sourcePos);
-		}
-
-		throw new Exception($msg);
-	}
-
-	/**
-	 * CSS Colors
-	 *
-	 * @see http://www.w3.org/TR/css3-color
-	 */
-	static protected $cssColors = array(
-		'aliceblue' => '240,248,255',
-		'antiquewhite' => '250,235,215',
-		'aqua' => '0,255,255',
-		'aquamarine' => '127,255,212',
-		'azure' => '240,255,255',
-		'beige' => '245,245,220',
-		'bisque' => '255,228,196',
-		'black' => '0,0,0',
-		'blanchedalmond' => '255,235,205',
-		'blue' => '0,0,255',
-		'blueviolet' => '138,43,226',
-		'brown' => '165,42,42',
-		'burlywood' => '222,184,135',
-		'cadetblue' => '95,158,160',
-		'chartreuse' => '127,255,0',
-		'chocolate' => '210,105,30',
-		'coral' => '255,127,80',
-		'cornflowerblue' => '100,149,237',
-		'cornsilk' => '255,248,220',
-		'crimson' => '220,20,60',
-		'cyan' => '0,255,255',
-		'darkblue' => '0,0,139',
-		'darkcyan' => '0,139,139',
-		'darkgoldenrod' => '184,134,11',
-		'darkgray' => '169,169,169',
-		'darkgreen' => '0,100,0',
-		'darkgrey' => '169,169,169',
-		'darkkhaki' => '189,183,107',
-		'darkmagenta' => '139,0,139',
-		'darkolivegreen' => '85,107,47',
-		'darkorange' => '255,140,0',
-		'darkorchid' => '153,50,204',
-		'darkred' => '139,0,0',
-		'darksalmon' => '233,150,122',
-		'darkseagreen' => '143,188,143',
-		'darkslateblue' => '72,61,139',
-		'darkslategray' => '47,79,79',
-		'darkslategrey' => '47,79,79',
-		'darkturquoise' => '0,206,209',
-		'darkviolet' => '148,0,211',
-		'deeppink' => '255,20,147',
-		'deepskyblue' => '0,191,255',
-		'dimgray' => '105,105,105',
-		'dimgrey' => '105,105,105',
-		'dodgerblue' => '30,144,255',
-		'firebrick' => '178,34,34',
-		'floralwhite' => '255,250,240',
-		'forestgreen' => '34,139,34',
-		'fuchsia' => '255,0,255',
-		'gainsboro' => '220,220,220',
-		'ghostwhite' => '248,248,255',
-		'gold' => '255,215,0',
-		'goldenrod' => '218,165,32',
-		'gray' => '128,128,128',
-		'green' => '0,128,0',
-		'greenyellow' => '173,255,47',
-		'grey' => '128,128,128',
-		'honeydew' => '240,255,240',
-		'hotpink' => '255,105,180',
-		'indianred' => '205,92,92',
-		'indigo' => '75,0,130',
-		'ivory' => '255,255,240',
-		'khaki' => '240,230,140',
-		'lavender' => '230,230,250',
-		'lavenderblush' => '255,240,245',
-		'lawngreen' => '124,252,0',
-		'lemonchiffon' => '255,250,205',
-		'lightblue' => '173,216,230',
-		'lightcoral' => '240,128,128',
-		'lightcyan' => '224,255,255',
-		'lightgoldenrodyellow' => '250,250,210',
-		'lightgray' => '211,211,211',
-		'lightgreen' => '144,238,144',
-		'lightgrey' => '211,211,211',
-		'lightpink' => '255,182,193',
-		'lightsalmon' => '255,160,122',
-		'lightseagreen' => '32,178,170',
-		'lightskyblue' => '135,206,250',
-		'lightslategray' => '119,136,153',
-		'lightslategrey' => '119,136,153',
-		'lightsteelblue' => '176,196,222',
-		'lightyellow' => '255,255,224',
-		'lime' => '0,255,0',
-		'limegreen' => '50,205,50',
-		'linen' => '250,240,230',
-		'magenta' => '255,0,255',
-		'maroon' => '128,0,0',
-		'mediumaquamarine' => '102,205,170',
-		'mediumblue' => '0,0,205',
-		'mediumorchid' => '186,85,211',
-		'mediumpurple' => '147,112,219',
-		'mediumseagreen' => '60,179,113',
-		'mediumslateblue' => '123,104,238',
-		'mediumspringgreen' => '0,250,154',
-		'mediumturquoise' => '72,209,204',
-		'mediumvioletred' => '199,21,133',
-		'midnightblue' => '25,25,112',
-		'mintcream' => '245,255,250',
-		'mistyrose' => '255,228,225',
-		'moccasin' => '255,228,181',
-		'navajowhite' => '255,222,173',
-		'navy' => '0,0,128',
-		'oldlace' => '253,245,230',
-		'olive' => '128,128,0',
-		'olivedrab' => '107,142,35',
-		'orange' => '255,165,0',
-		'orangered' => '255,69,0',
-		'orchid' => '218,112,214',
-		'palegoldenrod' => '238,232,170',
-		'palegreen' => '152,251,152',
-		'paleturquoise' => '175,238,238',
-		'palevioletred' => '219,112,147',
-		'papayawhip' => '255,239,213',
-		'peachpuff' => '255,218,185',
-		'peru' => '205,133,63',
-		'pink' => '255,192,203',
-		'plum' => '221,160,221',
-		'powderblue' => '176,224,230',
-		'purple' => '128,0,128',
-		'red' => '255,0,0',
-		'rosybrown' => '188,143,143',
-		'royalblue' => '65,105,225',
-		'saddlebrown' => '139,69,19',
-		'salmon' => '250,128,114',
-		'sandybrown' => '244,164,96',
-		'seagreen' => '46,139,87',
-		'seashell' => '255,245,238',
-		'sienna' => '160,82,45',
-		'silver' => '192,192,192',
-		'skyblue' => '135,206,235',
-		'slateblue' => '106,90,205',
-		'slategray' => '112,128,144',
-		'slategrey' => '112,128,144',
-		'snow' => '255,250,250',
-		'springgreen' => '0,255,127',
-		'steelblue' => '70,130,180',
-		'tan' => '210,180,140',
-		'teal' => '0,128,128',
-		'thistle' => '216,191,216',
-		'tomato' => '255,99,71',
-		'transparent' => '0,0,0,0',
-		'turquoise' => '64,224,208',
-		'violet' => '238,130,238',
-		'wheat' => '245,222,179',
-		'white' => '255,255,255',
-		'whitesmoke' => '245,245,245',
-		'yellow' => '255,255,0',
-		'yellowgreen' => '154,205,50'
-	);
-}
-
-/**
- * SCSS parser
- *
- * @author Leaf Corcoran <leafot@gmail.com>
- */
-class scss_parser {
-	static protected $precedence = array(
-		"or" => 0,
-		"and" => 1,
-
-		'==' => 2,
-		'!=' => 2,
-		'<=' => 2,
-		'>=' => 2,
-		'=' => 2,
-		'<' => 3,
-		'>' => 2,
-
-		'+' => 3,
-		'-' => 3,
-		'*' => 4,
-		'/' => 4,
-		'%' => 4,
-	);
-
-	static protected $operators = array("+", "-", "*", "/", "%",
-		"==", "!=", "<=", ">=", "<", ">", "and", "or");
-
-	static protected $operatorStr;
-	static protected $whitePattern;
-	static protected $commentMulti;
-
-	static protected $commentSingle = "//";
-	static protected $commentMultiLeft = "/*";
-	static protected $commentMultiRight = "*/";
-
-	public function __construct($sourceName = null, $rootParser = true) {
-		$this->sourceName = $sourceName;
-		$this->rootParser = $rootParser;
-
-		if (empty(self::$operatorStr)) {
-			self::$operatorStr = $this->makeOperatorStr(self::$operators);
-
-			$commentSingle = $this->preg_quote(self::$commentSingle);
-			$commentMultiLeft = $this->preg_quote(self::$commentMultiLeft);
-			$commentMultiRight = $this->preg_quote(self::$commentMultiRight);
-			self::$commentMulti = $commentMultiLeft.'.*?'.$commentMultiRight;
-			self::$whitePattern = '/'.$commentSingle.'[^\n]*\s*|('.self::$commentMulti.')\s*|\s+/Ais';
-		}
-	}
-
-	static protected function makeOperatorStr($operators) {
-		return '('.implode('|', array_map(array('scss_parser','preg_quote'),
-			$operators)).')';
-	}
-
-	public function parse($buffer) {
-		$this->count = 0;
-		$this->env = null;
-		$this->inParens = false;
-		$this->pushBlock(null); // root block
-		$this->eatWhiteDefault = true;
-		$this->insertComments = true;
-
-		$this->buffer = $buffer;
-
-		$this->whitespace();
-		while (false !== $this->parseChunk());
-
-		if ($this->count != strlen($this->buffer))
-			$this->throwParseError();
-
-		if (!empty($this->env->parent)) {
-			$this->throwParseError("unclosed block");
-		}
-
-		$this->env->isRoot = true;
-		return $this->env;
-	}
-
-	/**
-	 * Parse a single chunk off the head of the buffer and append it to the
-	 * current parse environment.
-	 *
-	 * Returns false when the buffer is empty, or when there is an error.
-	 *
-	 * This function is called repeatedly until the entire document is
-	 * parsed.
-	 *
-	 * This parser is most similar to a recursive descent parser. Single
-	 * functions represent discrete grammatical rules for the language, and
-	 * they are able to capture the text that represents those rules.
-	 *
-	 * Consider the function scssc::keyword(). (All parse functions are
-	 * structured the same.)
-	 *
-	 * The function takes a single reference argument. When calling the
-	 * function it will attempt to match a keyword on the head of the buffer.
-	 * If it is successful, it will place the keyword in the referenced
-	 * argument, advance the position in the buffer, and return true. If it
-	 * fails then it won't advance the buffer and it will return false.
-	 *
-	 * All of these parse functions are powered by scssc::match(), which behaves
-	 * the same way, but takes a literal regular expression. Sometimes it is
-	 * more convenient to use match instead of creating a new function.
-	 *
-	 * Because of the format of the functions, to parse an entire string of
-	 * grammatical rules, you can chain them together using &&.
-	 *
-	 * But, if some of the rules in the chain succeed before one fails, then
-	 * the buffer position will be left at an invalid state. In order to
-	 * avoid this, scssc::seek() is used to remember and set buffer positions.
-	 *
-	 * Before parsing a chain, use $s = $this->seek() to remember the current
-	 * position into $s. Then if a chain fails, use $this->seek($s) to
-	 * go back where we started.
-	 *
-	 * @return boolean
-	 */
-	protected function parseChunk() {
-		$s = $this->seek();
-
-		// the directives
-		if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] == "@") {
-			if ($this->literal("@media") && $this->mediaQueryList($mediaQueryList) && $this->literal("{")) {
-				$media = $this->pushSpecialBlock("media");
-				$media->queryList = $mediaQueryList[2];
-				return true;
-			} else {
-				$this->seek($s);
-			}
-
-			if ($this->literal("@mixin") &&
-				$this->keyword($mixinName) &&
-				($this->argumentDef($args) || true) &&
-				$this->literal("{"))
-			{
-				$mixin = $this->pushSpecialBlock("mixin");
-				$mixin->name = $mixinName;
-				$mixin->args = $args;
-				return true;
-			} else {
-				$this->seek($s);
-			}
-
-			if ($this->literal("@include") &&
-				$this->keyword($mixinName) &&
-				($this->literal("(") &&
-					($this->argValues($argValues) || true) &&
-					$this->literal(")") || true) &&
-				($this->end() ||
-					$this->literal("{") && $hasBlock = true))
-			{
-				$child = array("include",
-					$mixinName, isset($argValues) ? $argValues : null, null);
-
-				if (!empty($hasBlock)) {
-					$include = $this->pushSpecialBlock("include");
-					$include->child = $child;
-				} else {
-					$this->append($child, $s);
-				}
-
-				return true;
-			} else {
-				$this->seek($s);
-			}
-
-			if ($this->literal("@import") &&
-				$this->valueList($importPath) &&
-				$this->end())
-			{
-				$this->append(array("import", $importPath), $s);
-				return true;
-			} else {
-				$this->seek($s);
-			}
-
-			if ($this->literal("@extend") &&
-				$this->selectors($selector) &&
-				$this->end())
-			{
-				$this->append(array("extend", $selector), $s);
-				return true;
-			} else {
-				$this->seek($s);
-			}
-
-			if ($this->literal("@function") &&
-				$this->keyword($fnName) &&
-				$this->argumentDef($args) &&
-				$this->literal("{"))
-			{
-				$func = $this->pushSpecialBlock("function");
-				$func->name = $fnName;
-				$func->args = $args;
-				return true;
-			} else {
-				$this->seek($s);
-			}
-
-			if ($this->literal("@return") && $this->valueList($retVal) && $this->end()) {
-				$this->append(array("return", $retVal), $s);
-				return true;
-			} else {
-				$this->seek($s);
-			}
-
-			if ($this->literal("@each") &&
-				$this->variable($varName) &&
-				$this->literal("in") &&
-				$this->valueList($list) &&
-				$this->literal("{"))
-			{
-				$each = $this->pushSpecialBlock("each");
-				$each->var = $varName[1];
-				$each->list = $list;
-				return true;
-			} else {
-				$this->seek($s);
-			}
-
-			if ($this->literal("@while") &&
-				$this->expression($cond) &&
-				$this->literal("{"))
-			{
-				$while = $this->pushSpecialBlock("while");
-				$while->cond = $cond;
-				return true;
-			} else {
-				$this->seek($s);
-			}
-
-			if ($this->literal("@for") &&
-				$this->variable($varName) &&
-				$this->literal("from") &&
-				$this->expression($start) &&
-				($this->literal("through") ||
-					($forUntil = true && $this->literal("to"))) &&
-				$this->expression($end) &&
-				$this->literal("{"))
-			{
-				$for = $this->pushSpecialBlock("for");
-				$for->var = $varName[1];
-				$for->start = $start;
-				$for->end = $end;
-				$for->until = isset($forUntil);
-				return true;
-			} else {
-				$this->seek($s);
-			}
-
-			if ($this->literal("@if") && $this->valueList($cond) && $this->literal("{")) {
-				$if = $this->pushSpecialBlock("if");
-				$if->cond = $cond;
-				$if->cases = array();
-				return true;
-			} else {
-				$this->seek($s);
-			}
-
-			if (($this->literal("@debug") || $this->literal("@warn")) &&
-				$this->valueList($value) &&
-				$this->end()) {
-				$this->append(array("debug", $value, $s), $s);
-				return true;
-			} else {
-				$this->seek($s);
-			}
-
-			if ($this->literal("@content") && $this->end()) {
-				$this->append(array("mixin_content"), $s);
-				return true;
-			} else {
-				$this->seek($s);
-			}
-
-			$last = $this->last();
-			if (!is_null($last) && $last[0] == "if") {
-				list(, $if) = $last;
-				if ($this->literal("@else")) {
-					if ($this->literal("{")) {
-						$else = $this->pushSpecialBlock("else");
-					} elseif ($this->literal("if") && $this->valueList($cond) && $this->literal("{")) {
-						$else = $this->pushSpecialBlock("elseif");
-						$else->cond = $cond;
-					}
-
-					if (isset($else)) {
-						$else->dontAppend = true;
-						$if->cases[] = $else;
-						return true;
-					}
-				}
-
-				$this->seek($s);
-			}
-
-			if ($this->literal("@charset") &&
-				$this->valueList($charset) && $this->end())
-			{
-				$this->append(array("charset", $charset), $s);
-				return true;
-			} else {
-				$this->seek($s);
-			}
-
-			// doesn't match built in directive, do generic one
-			if ($this->literal("@", false) && $this->keyword($dirName) &&
-				($this->openString("{", $dirValue) || true) &&
-				$this->literal("{"))
-			{
-				$directive = $this->pushSpecialBlock("directive");
-				$directive->name = $dirName;
-				if (isset($dirValue)) $directive->value = $dirValue;
-				return true;
-			}
-
-			$this->seek($s);
-			return false;
-		}
-
-		// property shortcut
-		// captures most properties before having to parse a selector
-		if ($this->keyword($name, false) &&
-			$this->literal(": ") &&
-			$this->valueList($value) &&
-			$this->end())
-		{
-			$name = array("string", "", array($name));
-			$this->append(array("assign", $name, $value), $s);
-			return true;
-		} else {
-			$this->seek($s);
-		}
-
-		// variable assigns
-		if ($this->variable($name) &&
-			$this->literal(":") &&
-			$this->valueList($value) && $this->end())
-		{
-			// check for !default
-			$defaultVar = $value[0] == "list" && $this->stripDefault($value);
-			$this->append(array("assign", $name, $value, $defaultVar), $s);
-			return true;
-		} else {
-			$this->seek($s);
-		}
-
-		// misc
-		if ($this->literal("-->")) {
-			return true;
-		}
-
-		// opening css block
-		$oldComments = $this->insertComments;
-		$this->insertComments = false;
-		if ($this->selectors($selectors) && $this->literal("{")) {
-			$this->pushBlock($selectors);
-			$this->insertComments = $oldComments;
-			return true;
-		} else {
-			$this->seek($s);
-		}
-		$this->insertComments = $oldComments;
-
-		// property assign, or nested assign
-		if ($this->propertyName($name) && $this->literal(":")) {
-			$foundSomething = false;
-			if ($this->valueList($value)) {
-				$this->append(array("assign", $name, $value), $s);
-				$foundSomething = true;
-			}
-
-			if ($this->literal("{")) {
-				$propBlock = $this->pushSpecialBlock("nestedprop");
-				$propBlock->prefix = $name;
-				$foundSomething = true;
-			} elseif ($foundSomething) {
-				$foundSomething = $this->end();
-			}
-
-			if ($foundSomething) {
-				return true;
-			}
-
-			$this->seek($s);
-		} else {
-			$this->seek($s);
-		}
-
-		// closing a block
-		if ($this->literal("}")) {
-			$block = $this->popBlock();
-			if (isset($block->type) && $block->type == "include") {
-				$include = $block->child;
-				unset($block->child);
-				$include[3] = $block;
-				$this->append($include, $s);
-			} elseif (empty($block->dontAppend)) {
-				$type = isset($block->type) ? $block->type : "block";
-				$this->append(array($type, $block), $s);
-			}
-			return true;
-		}
-
-		// extra stuff
-		if ($this->literal(";") ||
-			$this->literal("<!--"))
-		{
-			return true;
-		}
-
-		return false;
-	}
-
-	protected function stripDefault(&$value) {
-		$def = end($value[2]);
-		if ($def[0] == "keyword" && $def[1] == "!default") {
-			array_pop($value[2]);
-			$value = $this->flattenList($value);
-			return true;
-		}
-
-		if ($def[0] == "list") {
-			return $this->stripDefault($value[2][count($value[2]) - 1]);
-		}
-
-		return false;
-	}
-
-	protected function literal($what, $eatWhitespace = null) {
-		if (is_null($eatWhitespace)) $eatWhitespace = $this->eatWhiteDefault;
-
-		// shortcut on single letter
-		if (!isset($what[1]) && isset($this->buffer[$this->count])) {
-			if ($this->buffer[$this->count] == $what) {
-				if (!$eatWhitespace) {
-					$this->count++;
-					return true;
-				}
-				// goes below...
-			} else {
-				return false;
-			}
-		}
-
-		return $this->match($this->preg_quote($what), $m, $eatWhitespace);
-	}
-
-	// tree builders
-
-	protected function pushBlock($selectors) {
-		$b = new stdClass;
-		$b->parent = $this->env; // not sure if we need this yet
-
-		$b->selectors = $selectors;
-		$b->children = array();
-
-		$this->env = $b;
-		return $b;
-	}
-
-	protected function pushSpecialBlock($type) {
-		$block = $this->pushBlock(null);
-		$block->type = $type;
-		return $block;
-	}
-
-	protected function popBlock() {
-		if (empty($this->env->parent)) {
-			$this->throwParseError("unexpected }");
-		}
-
-		$old = $this->env;
-		$this->env = $this->env->parent;
-		unset($old->parent);
-		return $old;
-	}
-
-	protected function append($statement, $pos=null) {
-		if ($pos !== null) {
-			$statement[-1] = $pos;
-			if (!$this->rootParser) $statement[-2] = $this;
-		}
-		$this->env->children[] = $statement;
-	}
-
-	// last child that was appended
-	protected function last() {
-		$i = count($this->env->children) - 1;
-		if (isset($this->env->children[$i]))
-			return $this->env->children[$i];
-	}
-
-	// high level parsers (they return parts of ast)
-
-	protected function mediaQueryList(&$out) {
-		return $this->genericList($out, "mediaQuery", ",", false);
-	}
-
-	protected function mediaQuery(&$out) {
-		$s = $this->seek();
-
-		$expressions = null;
-		$parts = array();
-
-		if (($this->literal("only") && ($only = true) || $this->literal("not") && ($not = true) || true) && $this->mixedKeyword($mediaType)) {
-			$prop = array("mediaType");
-			if (isset($only)) $prop[] = array("keyword", "only");
-			if (isset($not)) $prop[] = array("keyword", "not");
-			$media = array("list", "", array());
-			foreach ((array)$mediaType as $type) {
-				if (is_array($type)) {
-					$media[2][] = $type;
-				} else {
-					$media[2][] = array("keyword", $type);
-				}
-			}
-			$prop[] = $media;
-			$parts[] = $prop;
-		}
-
-		if (empty($parts) || $this->literal("and")) {
-			$this->genericList($expressions, "mediaExpression", "and", false);
-			if (is_array($expressions)) $parts = array_merge($parts, $expressions[2]);
-		}
-
-		$out = $parts;
-		return true;
-	}
-
-	protected function mediaExpression(&$out) {
-		$s = $this->seek();
-		$value = null;
-		if ($this->literal("(") &&
-			$this->expression($feature) &&
-			($this->literal(":") && $this->expression($value) || true) &&
-			$this->literal(")"))
-		{
-			$out = array("mediaExp", $feature);
-			if ($value) $out[] = $value;
-			return true;
-		}
-
-		$this->seek($s);
-		return false;
-	}
-
-	protected function argValues(&$out) {
-		if ($this->genericList($list, "argValue", ",", false)) {
-			$out = $list[2];
-			return true;
-		}
-		return false;
-	}
-
-	protected function argValue(&$out) {
-		$s = $this->seek();
-
-		$keyword = null;
-		if (!$this->variable($keyword) || !$this->literal(":")) {
-			$this->seek($s);
-			$keyword = null;
-		}
-
-		if ($this->genericList($value, "expression")) {
-			$out = array($keyword, $value, false);
-			$s = $this->seek();
-			if ($this->literal("...")) {
-				$out[2] = true;
-			} else {
-				$this->seek($s);
-			}
-			return true;
-		}
-
-		return false;
-	}
-
-
-	protected function valueList(&$out) {
-		return $this->genericList($out, "spaceList", ",");
-	}
-
-	protected function spaceList(&$out) {
-		return $this->genericList($out, "expression");
-	}
-
-	protected function genericList(&$out, $parseItem, $delim="", $flatten=true) {
-		$s = $this->seek();
-		$items = array();
-		while ($this->$parseItem($value)) {
-			$items[] = $value;
-			if ($delim) {
-				if (!$this->literal($delim)) break;
-			}
-		}
-
-		if (count($items) == 0) {
-			$this->seek($s);
-			return false;
-		}
-
-		if ($flatten && count($items) == 1) {
-			$out = $items[0];
-		} else {
-			$out = array("list", $delim, $items);
-		}
-
-		return true;
-	}
-
-	protected function expression(&$out) {
-		$s = $this->seek();
-
-		if ($this->literal("(")) {
-			if ($this->literal(")")) {
-				$out = array("list", "", array());
-				return true;
-			}
-
-			if ($this->valueList($out) && $this->literal(')') && $out[0] == "list") {
-				return true;
-			}
-
-			$this->seek($s);
-		}
-
-		if ($this->value($lhs)) {
-			$out = $this->expHelper($lhs, 0);
-			return true;
-		}
-
-		return false;
-	}
-
-	protected function expHelper($lhs, $minP) {
-		$opstr = self::$operatorStr;
-
-		$ss = $this->seek();
-		$whiteBefore = isset($this->buffer[$this->count - 1]) &&
-			ctype_space($this->buffer[$this->count - 1]);
-		while ($this->match($opstr, $m) && self::$precedence[$m[1]] >= $minP) {
-			$whiteAfter = isset($this->buffer[$this->count - 1]) &&
-				ctype_space($this->buffer[$this->count - 1]);
-
-			$op = $m[1];
-
-			// don't turn negative numbers into expressions
-			if ($op == "-" && $whiteBefore) {
-				if (!$whiteAfter) break;
-			}
-
-			if (!$this->value($rhs)) break;
-
-			// peek and see if rhs belongs to next operator
-			if ($this->peek($opstr, $next) && self::$precedence[$next[1]] > self::$precedence[$op]) {
-				$rhs = $this->expHelper($rhs, self::$precedence[$next[1]]);
-			}
-
-			$lhs = array("exp", $op, $lhs, $rhs, $this->inParens, $whiteBefore, $whiteAfter);
-			$ss = $this->seek();
-			$whiteBefore = isset($this->buffer[$this->count - 1]) &&
-				ctype_space($this->buffer[$this->count - 1]);
-		}
-
-		$this->seek($ss);
-		return $lhs;
-	}
-
-	protected function value(&$out) {
-		$s = $this->seek();
-
-		if ($this->literal("not", false) && $this->whitespace() && $this->value($inner)) {
-			$out = array("unary", "not", $inner, $this->inParens);
-			return true;
-		} else {
-			$this->seek($s);
-		}
-
-		if ($this->literal("+") && $this->value($inner)) {
-			$out = array("unary", "+", $inner, $this->inParens);
-			return true;
-		} else {
-			$this->seek($s);
-		}
-
-		// negation
-		if ($this->literal("-", false) &&
-			($this->variable($inner) ||
-			$this->unit($inner) ||
-			$this->parenValue($inner)))
-		{
-			$out = array("unary", "-", $inner, $this->inParens);
-			return true;
-		} else {
-			$this->seek($s);
-		}
-
-		if ($this->parenValue($out)) return true;
-		if ($this->interpolation($out)) return true;
-		if ($this->variable($out)) return true;
-		if ($this->color($out)) return true;
-		if ($this->unit($out)) return true;
-		if ($this->string($out)) return true;
-		if ($this->func($out)) return true;
-		if ($this->progid($out)) return true;
-
-		if ($this->keyword($keyword)) {
-			if ($keyword == "null") {
-				$out = array("null");
-			} else {
-				$out = array("keyword", $keyword);
-			}
-			return true;
-		}
-
-		return false;
-	}
-
-	// value wrappen in parentheses
-	protected function parenValue(&$out) {
-		$s = $this->seek();
-
-		$inParens = $this->inParens;
-		if ($this->literal("(") &&
-			($this->inParens = true) && $this->expression($exp) &&
-			$this->literal(")"))
-		{
-			$out = $exp;
-			$this->inParens = $inParens;
-			return true;
-		} else {
-			$this->inParens = $inParens;
-			$this->seek($s);
-		}
-
-		return false;
-	}
-
-	protected function progid(&$out) {
-		$s = $this->seek();
-		if ($this->literal("progid:", false) &&
-			$this->openString("(", $fn) &&
-			$this->literal("("))
-		{
-			$this->openString(")", $args, "(");
-			if ($this->literal(")")) {
-				$out = array("string", "", array(
-					"progid:", $fn, "(", $args, ")"
-				));
-				return true;
-			}
-		}
-
-		$this->seek($s);
-		return false;
-	}
-
-	protected function func(&$func) {
-		$s = $this->seek();
-
-		if ($this->keyword($name, false) &&
-			$this->literal("("))
-		{
-			if ($name == "alpha" && $this->argumentList($args)) {
-				$func = array("function", $name, array("string", "", $args));
-				return true;
-			}
-
-			if ($name != "expression" && !preg_match("/^(-[a-z]+-)?calc$/", $name)) {
-				$ss = $this->seek();
-				if ($this->argValues($args) && $this->literal(")")) {
-					$func = array("fncall", $name, $args);
-					return true;
-				}
-				$this->seek($ss);
-			}
-
-			if (($this->openString(")", $str, "(") || true ) &&
-				$this->literal(")"))
-			{
-				$args = array();
-				if (!empty($str)) {
-					$args[] = array(null, array("string", "", array($str)));
-				}
-
-				$func = array("fncall", $name, $args);
-				return true;
-			}
-		}
-
-		$this->seek($s);
-		return false;
-	}
-
-	protected function argumentList(&$out) {
-		$s = $this->seek();
-		$this->literal("(");
-
-		$args = array();
-		while ($this->keyword($var)) {
-			$ss = $this->seek();
-
-			if ($this->literal("=") && $this->expression($exp)) {
-				$args[] = array("string", "", array($var."="));
-				$arg = $exp;
-			} else {
-				break;
-			}
-
-			$args[] = $arg;
-
-			if (!$this->literal(",")) break;
-
-			$args[] = array("string", "", array(", "));
-		}
-
-		if (!$this->literal(")") || !count($args)) {
-			$this->seek($s);
-			return false;
-		}
-
-		$out = $args;
-		return true;
-	}
-
-	protected function argumentDef(&$out) {
-		$s = $this->seek();
-		$this->literal("(");
-
-		$args = array();
-		while ($this->variable($var)) {
-			$arg = array($var[1], null, false);
-
-			$ss = $this->seek();
-			if ($this->literal(":") && $this->genericList($defaultVal, "expression")) {
-				$arg[1] = $defaultVal;
-			} else {
-				$this->seek($ss);
-			}
-
-			$ss = $this->seek();
-			if ($this->literal("...")) {
-				$sss = $this->seek();
-				if (!$this->literal(")")) {
-					$this->throwParseError("... has to be after the final argument");
-				}
-				$arg[2] = true;
-				$this->seek($sss);
-			} else {
-				$this->seek($ss);
-			}
-
-			$args[] = $arg;
-			if (!$this->literal(",")) break;
-		}
-
-		if (!$this->literal(")")) {
-			$this->seek($s);
-			return false;
-		}
-
-		$out = $args;
-		return true;
-	}
-
-	protected function color(&$out) {
-		$color = array('color');
-
-		if ($this->match('(#([0-9a-f]{6})|#([0-9a-f]{3}))', $m)) {
-			if (isset($m[3])) {
-				$num = $m[3];
-				$width = 16;
-			} else {
-				$num = $m[2];
-				$width = 256;
-			}
-
-			$num = hexdec($num);
-			foreach (array(3,2,1) as $i) {
-				$t = $num % $width;
-				$num /= $width;
-
-				$color[$i] = $t * (256/$width) + $t * floor(16/$width);
-			}
-
-			$out = $color;
-			return true;
-		}
-
-		return false;
-	}
-
-	protected function unit(&$unit) {
-		if ($this->match('([0-9]*(\.)?[0-9]+)([%a-zA-Z]+)?', $m)) {
-			$unit = array("number", $m[1], empty($m[3]) ? "" : $m[3]);
-			return true;
-		}
-		return false;
-	}
-
-	protected function string(&$out) {
-		$s = $this->seek();
-		if ($this->literal('"', false)) {
-			$delim = '"';
-		} elseif ($this->literal("'", false)) {
-			$delim = "'";
-		} else {
-			return false;
-		}
-
-		$content = array();
-		$oldWhite = $this->eatWhiteDefault;
-		$this->eatWhiteDefault = false;
-
-		while ($this->matchString($m, $delim)) {
-			$content[] = $m[1];
-			if ($m[2] == "#{") {
-				$this->count -= strlen($m[2]);
-				if ($this->interpolation($inter, false)) {
-					$content[] = $inter;
-				} else {
-					$this->count += strlen($m[2]);
-					$content[] = "#{"; // ignore it
-				}
-			} elseif ($m[2] == '\\') {
-				$content[] = $m[2];
-				if ($this->literal($delim, false)) {
-					$content[] = $delim;
-				}
-			} else {
-				$this->count -= strlen($delim);
-				break; // delim
-			}
-		}
-
-		$this->eatWhiteDefault = $oldWhite;
-
-		if ($this->literal($delim)) {
-			$out = array("string", $delim, $content);
-			return true;
-		}
-
-		$this->seek($s);
-		return false;
-	}
-
-	protected function mixedKeyword(&$out) {
-		$s = $this->seek();
-
-		$parts = array();
-
-		$oldWhite = $this->eatWhiteDefault;
-		$this->eatWhiteDefault = false;
-
-		while (true) {
-			if ($this->keyword($key)) {
-				$parts[] = $key;
-				continue;
-			}
-
-			if ($this->interpolation($inter)) {
-				$parts[] = $inter;
-				continue;
-			}
-
-			break;
-		}
-
-		$this->eatWhiteDefault = $oldWhite;
-
-		if (count($parts) == 0) return false;
-
-		if ($this->eatWhiteDefault) {
-			$this->whitespace();
-		}
-
-		$out = $parts;
-		return true;
-	}
-
-	// an unbounded string stopped by $end
-	protected function openString($end, &$out, $nestingOpen=null) {
-		$oldWhite = $this->eatWhiteDefault;
-		$this->eatWhiteDefault = false;
-
-		$stop = array("'", '"', "#{", $end);
-		$stop = array_map(array($this, "preg_quote"), $stop);
-		$stop[] = self::$commentMulti;
-
-		$patt = '(.*?)('.implode("|", $stop).')';
-
-		$nestingLevel = 0;
-
-		$content = array();
-		while ($this->match($patt, $m, false)) {
-			if (isset($m[1]) && $m[1] !== '') {
-				$content[] = $m[1];
-				if ($nestingOpen) {
-					$nestingLevel += substr_count($m[1], $nestingOpen);
-				}
-			}
-
-			$tok = $m[2];
-
-			$this->count-= strlen($tok);
-			if ($tok == $end) {
-				if ($nestingLevel == 0) {
-					break;
-				} else {
-					$nestingLevel--;
-				}
-			}
-
-			if (($tok == "'" || $tok == '"') && $this->string($str)) {
-				$content[] = $str;
-				continue;
-			}
-
-			if ($tok == "#{" && $this->interpolation($inter)) {
-				$content[] = $inter;
-				continue;
-			}
-
-			$content[] = $tok;
-			$this->count+= strlen($tok);
-		}
-
-		$this->eatWhiteDefault = $oldWhite;
-
-		if (count($content) == 0) return false;
-
-		// trim the end
-		if (is_string(end($content))) {
-			$content[count($content) - 1] = rtrim(end($content));
-		}
-
-		$out = array("string", "", $content);
-		return true;
-	}
-
-	// $lookWhite: save information about whitespace before and after
-	protected function interpolation(&$out, $lookWhite=true) {
-		$oldWhite = $this->eatWhiteDefault;
-		$this->eatWhiteDefault = true;
-
-		$s = $this->seek();
-		if ($this->literal("#{") && $this->valueList($value) && $this->literal("}", false)) {
-
-			// TODO: don't error if out of bounds
-
-			if ($lookWhite) {
-				$left = preg_match('/\s/', $this->buffer[$s - 1]) ? " " : "";
-				$right = preg_match('/\s/', $this->buffer[$this->count]) ? " ": "";
-			} else {
-				$left = $right = false;
-			}
-
-			$out = array("interpolate", $value, $left, $right);
-			$this->eatWhiteDefault = $oldWhite;
-			if ($this->eatWhiteDefault) $this->whitespace();
-			return true;
-		}
-
-		$this->seek($s);
-		$this->eatWhiteDefault = $oldWhite;
-		return false;
-	}
-
-	// low level parsers
-
-	// returns an array of parts or a string
-	protected function propertyName(&$out) {
-		$s = $this->seek();
-		$parts = array();
-
-		$oldWhite = $this->eatWhiteDefault;
-		$this->eatWhiteDefault = false;
-
-		while (true) {
-			if ($this->interpolation($inter)) {
-				$parts[] = $inter;
-			} elseif ($this->keyword($text)) {
-				$parts[] = $text;
-			} elseif (count($parts) == 0 && $this->match('[:.#]', $m, false)) {
-				// css hacks
-				$parts[] = $m[0];
-			} else {
-				break;
-			}
-		}
-
-		$this->eatWhiteDefault = $oldWhite;
-		if (count($parts) == 0) return false;
-
-		// match comment hack
-		if (preg_match(self::$whitePattern,
-			$this->buffer, $m, null, $this->count))
-		{
-			if (!empty($m[0])) {
-				$parts[] = $m[0];
-				$this->count += strlen($m[0]);
-			}
-		}
-
-		$this->whitespace(); // get any extra whitespace
-
-		$out = array("string", "", $parts);
-		return true;
-	}
-
-	// comma separated list of selectors
-	protected function selectors(&$out) {
-		$s = $this->seek();
-		$selectors = array();
-		while ($this->selector($sel)) {
-			$selectors[] = $sel;
-			if (!$this->literal(",")) break;
-			while ($this->literal(",")); // ignore extra
-		}
-
-		if (count($selectors) == 0) {
-			$this->seek($s);
-			return false;
-		}
-
-		$out = $selectors;
-		return true;
-	}
-
-	// whitespace separated list of selectorSingle
-	protected function selector(&$out) {
-		$selector = array();
-
-		while (true) {
-			if ($this->match('[>+~]+', $m)) {
-				$selector[] = array($m[0]);
-			} elseif ($this->selectorSingle($part)) {
-				$selector[] = $part;
-				$this->whitespace();
-			} elseif ($this->match('\/[^\/]+\/', $m)) {
-				$selector[] = array($m[0]);
-			} else {
-				break;
-			}
-
-		}
-
-		if (count($selector) == 0) {
-			return false;
-		}
-
-		$out = $selector;
-		return true;
-	}
-
-	// the parts that make up
-	// div[yes=no]#something.hello.world:nth-child(-2n+1)%placeholder
-	protected function selectorSingle(&$out) {
-		$oldWhite = $this->eatWhiteDefault;
-		$this->eatWhiteDefault = false;
-
-		$parts = array();
-
-		if ($this->literal("*", false)) {
-			$parts[] = "*";
-		}
-
-		while (true) {
-			// see if we can stop early
-			if ($this->match("\s*[{,]", $m)) {
-				$this->count--;
-				break;
-			}
-
-			$s = $this->seek();
-			// self
-			if ($this->literal("&", false)) {
-				$parts[] = scssc::$selfSelector;
-				continue;
-			}
-
-			if ($this->literal(".", false)) {
-				$parts[] = ".";
-				continue;
-			}
-
-			if ($this->literal("|", false)) {
-				$parts[] = "|";
-				continue;
-			}
-
-			// for keyframes
-			if ($this->unit($unit)) {
-				$parts[] = $unit;
-				continue;
-			}
-
-			if ($this->keyword($name)) {
-				$parts[] = $name;
-				continue;
-			}
-
-			if ($this->interpolation($inter)) {
-				$parts[] = $inter;
-				continue;
-			}
-
-			if ($this->literal('%', false) && $this->placeholder($placeholder)) {
-				$parts[] = '%';
-				$parts[] = $placeholder;
-				continue;
-			}
-
-			if ($this->literal("#", false)) {
-				$parts[] = "#";
-				continue;
-			}
-
-			// a pseudo selector
-			if ($this->match("::?", $m) && $this->mixedKeyword($nameParts)) {
-				$parts[] = $m[0];
-				foreach ($nameParts as $sub) {
-					$parts[] = $sub;
-				}
-
-				$ss = $this->seek();
-				if ($this->literal("(") &&
-					($this->openString(")", $str, "(") || true ) &&
-					$this->literal(")"))
-				{
-					$parts[] = "(";
-					if (!empty($str)) $parts[] = $str;
-					$parts[] = ")";
-				} else {
-					$this->seek($ss);
-				}
-
-				continue;
-			} else {
-				$this->seek($s);
-			}
-
-			// attribute selector
-			// TODO: replace with open string?
-			if ($this->literal("[", false)) {
-				$attrParts = array("[");
-				// keyword, string, operator
-				while (true) {
-					if ($this->literal("]", false)) {
-						$this->count--;
-						break; // get out early
-					}
-
-					if ($this->match('\s+', $m)) {
-						$attrParts[] = " ";
-						continue;
-					}
-					if ($this->string($str)) {
-						$attrParts[] = $str;
-						continue;
-					}
-
-					if ($this->keyword($word)) {
-						$attrParts[] = $word;
-						continue;
-					}
-
-					if ($this->interpolation($inter, false)) {
-						$attrParts[] = $inter;
-						continue;
-					}
-
-					// operator, handles attr namespace too
-					if ($this->match('[|-~\$\*\^=]+', $m)) {
-						$attrParts[] = $m[0];
-						continue;
-					}
-
-					break;
-				}
-
-				if ($this->literal("]", false)) {
-					$attrParts[] = "]";
-					foreach ($attrParts as $part) {
-						$parts[] = $part;
-					}
-					continue;
-				}
-				$this->seek($s);
-				// should just break here?
-			}
-
-			break;
-		}
-
-		$this->eatWhiteDefault = $oldWhite;
-
-		if (count($parts) == 0) return false;
-
-		$out = $parts;
-		return true;
-	}
-
-	protected function variable(&$out) {
-		$s = $this->seek();
-		if ($this->literal("$", false) && $this->keyword($name)) {
-			$out = array("var", $name);
-			return true;
-		}
-		$this->seek($s);
-		return false;
-	}
-
-	protected function keyword(&$word, $eatWhitespace = null) {
-		if ($this->match('([\w_\-\*!"\'\\\\][\w\-_"\'\\\\]*)',
-			$m, $eatWhitespace))
-		{
-			$word = $m[1];
-			return true;
-		}
-		return false;
-	}
-
-	protected function placeholder(&$placeholder) {
-		if ($this->match('([\w\-_]+)', $m)) {
-			$placeholder = $m[1];
-			return true;
-		}
-		return false;
-	}
-
-	// consume an end of statement delimiter
-	protected function end() {
-		if ($this->literal(';')) {
-			return true;
-		} elseif ($this->count == strlen($this->buffer) || $this->buffer[$this->count] == '}') {
-			// if there is end of file or a closing block next then we don't need a ;
-			return true;
-		}
-		return false;
-	}
-
-	// advance counter to next occurrence of $what
-	// $until - don't include $what in advance
-	// $allowNewline, if string, will be used as valid char set
-	protected function to($what, &$out, $until = false, $allowNewline = false) {
-		if (is_string($allowNewline)) {
-			$validChars = $allowNewline;
-		} else {
-			$validChars = $allowNewline ? "." : "[^\n]";
-		}
-		if (!$this->match('('.$validChars.'*?)'.$this->preg_quote($what), $m, !$until)) return false;
-		if ($until) $this->count -= strlen($what); // give back $what
-		$out = $m[1];
-		return true;
-	}
-
-	public function throwParseError($msg = "parse error", $count = null) {
-		$count = is_null($count) ? $this->count : $count;
-
-		$line = $this->getLineNo($count);
-
-		if (!empty($this->sourceName)) {
-			$loc = "$this->sourceName on line $line";
-		} else {
-			$loc = "line: $line";
-		}
-
-		if ($this->peek("(.*?)(\n|$)", $m, $count)) {
-			throw new Exception("$msg: failed at `$m[1]` $loc");
-		} else {
-			throw new Exception("$msg: $loc");
-		}
-	}
-
-	public function getLineNo($pos) {
-		return 1 + substr_count(substr($this->buffer, 0, $pos), "\n");
-	}
-
-	/**
-	 * Match string looking for either ending delim, escape, or string interpolation
-	 *
-	 * {@internal This is a workaround for preg_match's 250K string match limit. }}
-	 *
-	 * @param array  $m     Matches (passed by reference)
-	 * @param string $delim Delimeter
-	 *
-	 * @return boolean True if match; false otherwise
-	 */
-	protected function matchString(&$m, $delim) {
-		$token = null;
-
-		$end = strpos($this->buffer, "\n", $this->count);
-		if ($end === false) {
-			$end = strlen($this->buffer);
-		}
-
-		// look for either ending delim, escape, or string interpolation
-		foreach (array('#{', '\\', $delim) as $lookahead) {
-			$pos = strpos($this->buffer, $lookahead, $this->count);
-			if ($pos !== false && $pos < $end) {
-				$end = $pos;
-				$token = $lookahead;
-			}
-		}
-
-		if (!isset($token)) {
-			return false;
-		}
-
-		$match = substr($this->buffer, $this->count, $end - $this->count);
-		$m = array(
-			$match . $token,
-			$match,
-			$token
-		);
-		$this->count = $end + strlen($token);
-
-		return true;
-	}
-
-	// try to match something on head of buffer
-	protected function match($regex, &$out, $eatWhitespace = null) {
-		if (is_null($eatWhitespace)) $eatWhitespace = $this->eatWhiteDefault;
-
-		$r = '/'.$regex.'/Ais';
-		if (preg_match($r, $this->buffer, $out, null, $this->count)) {
-			$this->count += strlen($out[0]);
-			if ($eatWhitespace) $this->whitespace();
-			return true;
-		}
-		return false;
-	}
-
-	// match some whitespace
-	protected function whitespace() {
-		$gotWhite = false;
-		while (preg_match(self::$whitePattern, $this->buffer, $m, null, $this->count)) {
-			if ($this->insertComments) {
-				if (isset($m[1]) && empty($this->commentsSeen[$this->count])) {
-					$this->append(array("comment", $m[1]));
-					$this->commentsSeen[$this->count] = true;
-				}
-			}
-			$this->count += strlen($m[0]);
-			$gotWhite = true;
-		}
-		return $gotWhite;
-	}
-
-	protected function peek($regex, &$out, $from=null) {
-		if (is_null($from)) $from = $this->count;
-
-		$r = '/'.$regex.'/Ais';
-		$result = preg_match($r, $this->buffer, $out, null, $from);
-
-		return $result;
-	}
-
-	protected function seek($where = null) {
-		if ($where === null) return $this->count;
-		else $this->count = $where;
-		return true;
-	}
-
-	static function preg_quote($what) {
-		return preg_quote($what, '/');
-	}
-
-	protected function show() {
-		if ($this->peek("(.*?)(\n|$)", $m, $this->count)) {
-			return $m[1];
-		}
-		return "";
-	}
-
-	// turn list of length 1 into value type
-	protected function flattenList($value) {
-		if ($value[0] == "list" && count($value[2]) == 1) {
-			return $this->flattenList($value[2][0]);
-		}
-		return $value;
-	}
-}
-
-/**
- * SCSS base formatter
- *
- * @author Leaf Corcoran <leafot@gmail.com>
- */
-class scss_formatter {
-	public $indentChar = "  ";
-
-	public $break = "\n";
-	public $open = " {";
-	public $close = "}";
-	public $tagSeparator = ", ";
-	public $assignSeparator = ": ";
-
-	public function __construct() {
-		$this->indentLevel = 0;
-	}
-
-	public function indentStr($n = 0) {
-		return str_repeat($this->indentChar, max($this->indentLevel + $n, 0));
-	}
-
-	public function property($name, $value) {
-		return $name . $this->assignSeparator . $value . ";";
-	}
-
-	protected function block($block) {
-		if (empty($block->lines) && empty($block->children)) return;
-
-		$inner = $pre = $this->indentStr();
-
-		if (!empty($block->selectors)) {
-			echo $pre .
-				implode($this->tagSeparator, $block->selectors) .
-				$this->open . $this->break;
-			$this->indentLevel++;
-			$inner = $this->indentStr();
-		}
-
-		if (!empty($block->lines)) {
-			$glue = $this->break.$inner;
-			echo $inner . implode($glue, $block->lines);
-			if (!empty($block->children)) {
-				echo $this->break;
-			}
-		}
-
-		foreach ($block->children as $child) {
-			$this->block($child);
-		}
-
-		if (!empty($block->selectors)) {
-			$this->indentLevel--;
-			if (empty($block->children)) echo $this->break;
-			echo $pre . $this->close . $this->break;
-		}
-	}
-
-	public function format($block) {
-		ob_start();
-		$this->block($block);
-		$out = ob_get_clean();
-
-		return $out;
-	}
-}
-
-/**
- * SCSS nested formatter
- *
- * @author Leaf Corcoran <leafot@gmail.com>
- */
-class scss_formatter_nested extends scss_formatter {
-	public $close = " }";
-
-	// adjust the depths of all children, depth first
-	public function adjustAllChildren($block) {
-		// flatten empty nested blocks
-		$children = array();
-		foreach ($block->children as $i => $child) {
-			if (empty($child->lines) && empty($child->children)) {
-				if (isset($block->children[$i + 1])) {
-					$block->children[$i + 1]->depth = $child->depth;
-				}
-				continue;
-			}
-			$children[] = $child;
-		}
-
-		$count = count($children);
-		for ($i = 0; $i < $count; $i++) {
-			$depth = $children[$i]->depth;
-			$j = $i + 1;
-			if (isset($children[$j]) && $depth < $children[$j]->depth) {
-				$childDepth = $children[$j]->depth;
-				for (; $j < $count; $j++) {
-					if ($depth < $children[$j]->depth && $childDepth >= $children[$j]->depth) {
-						$children[$j]->depth = $depth + 1;
-					}
-				}
-			}
-		}
-
-		$block->children = $children;
-
-		// make relative to parent
-		foreach ($block->children as $child) {
-			$this->adjustAllChildren($child);
-			$child->depth = $child->depth - $block->depth;
-		}
-	}
-
-	protected function block($block) {
-		if ($block->type == "root") {
-			$this->adjustAllChildren($block);
-		}
-
-		$inner = $pre = $this->indentStr($block->depth - 1);
-		if (!empty($block->selectors)) {
-			echo $pre .
-				implode($this->tagSeparator, $block->selectors) .
-				$this->open . $this->break;
-			$this->indentLevel++;
-			$inner = $this->indentStr($block->depth - 1);
-		}
-
-		if (!empty($block->lines)) {
-			$glue = $this->break.$inner;
-			echo $inner . implode($glue, $block->lines);
-			if (!empty($block->children)) echo $this->break;
-		}
-
-		foreach ($block->children as $i => $child) {
-			// echo "*** block: ".$block->depth." child: ".$child->depth."\n";
-			$this->block($child);
-			if ($i < count($block->children) - 1) {
-				echo $this->break;
-
-				if (isset($block->children[$i + 1])) {
-					$next = $block->children[$i + 1];
-					if ($next->depth == max($block->depth, 1) && $child->depth >= $next->depth) {
-						echo $this->break;
-					}
-				}
-			}
-		}
-
-		if (!empty($block->selectors)) {
-			$this->indentLevel--;
-			echo $this->close;
-		}
-
-		if ($block->type == "root") {
-			echo $this->break;
-		}
-	}
-}
-
-/**
- * SCSS compressed formatter
- *
- * @author Leaf Corcoran <leafot@gmail.com>
- */
-class scss_formatter_compressed extends scss_formatter {
-	public $open = "{";
-	public $tagSeparator = ",";
-	public $assignSeparator = ":";
-	public $break = "";
-
-	public function indentStr($n = 0) {
-		return "";
-	}
-}
-
-/**
- * SCSS server
- *
- * @author Leaf Corcoran <leafot@gmail.com>
- */
-class scss_server {
-	/**
-	 * Join path components
-	 *
-	 * @param string $left  Path component, left of the directory separator
-	 * @param string $right Path component, right of the directory separator
-	 *
-	 * @return string
-	 */
-	protected function join($left, $right) {
-		return rtrim($left, '/\\') . DIRECTORY_SEPARATOR . ltrim($right, '/\\');
-	}
-
-	/**
-	 * Get name of requested .scss file
-	 *
-	 * @return string|null
-	 */
-	protected function inputName() {
-		switch (true) {
-			case isset($_GET['p']):
-				return $_GET['p'];
-			case isset($_SERVER['PATH_INFO']):
-				return $_SERVER['PATH_INFO'];
-			case isset($_SERVER['DOCUMENT_URI']):
-				return substr($_SERVER['DOCUMENT_URI'], strlen($_SERVER['SCRIPT_NAME']));
-		}
-	}
-
-	/**
-	 * Get path to requested .scss file
-	 *
-	 * @return string
-	 */
-	protected function findInput() {
-		if (($input = $this->inputName())
-			&& strpos($input, '..') === false
-			&& substr($input, -5) === '.scss'
-		) {
-			$name = $this->join($this->dir, $input);
-
-			if (is_file($name) && is_readable($name)) {
-				return $name;
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * Get path to cached .css file
-	 *
-	 * @return string
-	 */
-	protected function cacheName($fname) {
-		return $this->join($this->cacheDir, md5($fname) . '.css');
-	}
-
-	/**
-	 * Get path to cached imports
-	 *
-	 * @return string
-	 */
-	protected function importsCacheName($out) {
-		return $out . '.imports';
-	}
-
-	/**
-	 * Determine whether .scss file needs to be re-compiled.
-	 *
-	 * @param string $in  Input path
-	 * @param string $out Output path
-	 *
-	 * @return boolean True if compile required.
-	 */
-	protected function needsCompile($in, $out) {
-		if (!is_file($out)) return true;
-
-		$mtime = filemtime($out);
-		if (filemtime($in) > $mtime) return true;
-
-		// look for modified imports
-		$icache = $this->importsCacheName($out);
-		if (is_readable($icache)) {
-			$imports = unserialize(file_get_contents($icache));
-			foreach ($imports as $import) {
-				if (filemtime($import) > $mtime) return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Compile .scss file
-	 *
-	 * @param string $in  Input path (.scss)
-	 * @param string $out Output path (.css)
-	 *
-	 * @return string
-	 */
-	protected function compile($in, $out) {
-		$start = microtime(true);
-		$css = $this->scss->compile(file_get_contents($in), $in);
-		$elapsed = round((microtime(true) - $start), 4);
-
-		$v = scssc::$VERSION;
-		$t = date('r');
-		$css = "/* compiled by scssphp $v on $t (${elapsed}s) */\n\n" . $css;
-
-		file_put_contents($out, $css);
-		file_put_contents($this->importsCacheName($out),
-			serialize($this->scss->getParsedFiles()));
-		return $css;
-	}
-
-	/**
-	 * Compile requested scss and serve css.  Outputs HTTP response.
-	 *
-	 * @param string $salt Prefix a string to the filename for creating the cache name hash
-	 */
-	public function serve($salt = '') {
-		if ($input = $this->findInput()) {
-			$output = $this->cacheName($salt . $input);
-			header('Content-type: text/css');
-
-			if ($this->needsCompile($input, $output)) {
-				try {
-					echo $this->compile($input, $output);
-				} catch (Exception $e) {
-					header('HTTP/1.1 500 Internal Server Error');
-					echo 'Parse error: ' . $e->getMessage() . "\n";
-				}
-			} else {
-				header('X-SCSS-Cache: true');
-				echo file_get_contents($output);
-			}
-
-			return;
-		}
-
-		header('HTTP/1.0 404 Not Found');
-		header('Content-type: text');
-		$v = scssc::$VERSION;
-		echo "/* INPUT NOT FOUND scss $v */\n";
-	}
-
-	/**
-	 * Constructor
-	 *
-	 * @param string      $dir      Root directory to .scss files
-	 * @param string      $cacheDir Cache directory
-	 * @param \scssc|null $scss     SCSS compiler instance
-	 */
-	public function __construct($dir, $cacheDir=null, $scss=null) {
-		$this->dir = $dir;
-
-		if (is_null($cacheDir)) {
-			$cacheDir = $this->join($dir, 'scss_cache');
-		}
-
-		$this->cacheDir = $cacheDir;
-		if (!is_dir($this->cacheDir)) mkdir($this->cacheDir, 0755, true);
-
-		if (is_null($scss)) {
-			$scss = new scssc();
-			$scss->setImportPaths($this->dir);
-		}
-		$this->scss = $scss;
-	}
-
-	/**
-	 * Helper method to serve compiled scss
-	 *
-	 * @param string $path Root path
-	 */
-	static public function serveFrom($path) {
-		$server = new self($path);
-		$server->serve();
-	}
-}
diff --git a/vendor/leafo/scssphp/site/.gitignore b/vendor/leafo/scssphp/site/.gitignore
deleted file mode 100644
index 6cff422781e22f978c44212d2fc15e0101ebb4f4..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/site/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.sitegen_cache
-.tup
diff --git a/vendor/leafo/scssphp/site/composer.html b/vendor/leafo/scssphp/site/composer.html
deleted file mode 100644
index 40d6b7a1d85272985e8c403ea98363615f5aa6a4..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/site/composer.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<pre class="highlight lang_json"><code><span class="p">{</span>
-  <span class="nt">&quot;require&quot;</span><span class="p">:</span> <span class="p">{</span>
-    <span class="nt">&quot;leafo/scssphp&quot;</span><span class="p">:</span> <span class="s2">&quot;$current_version&quot;</span>
-  <span class="p">}</span>
-<span class="p">}</span></code>
-</pre>
diff --git a/vendor/leafo/scssphp/site/docs/index.md b/vendor/leafo/scssphp/site/docs/index.md
deleted file mode 100644
index 1a7b607c4ee8e906bb0b512a686f12ca368729a5..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/site/docs/index.md
+++ /dev/null
@@ -1,306 +0,0 @@
-    title: Documentation
---
-
-<h1 skip="true">scssphp $current_version Documentation</h1>
-
-<div class="index">$index</div>
-
-## PHP Interface
-
-### Including
-
-The entire project comes in a single file. Just include it somewhere to start
-using it:
-
-    ```php
-    <?php
-    require "scssphp/scss.inc.php";
-    ```
-
-### Compiling
-
-In order to manually compile code from PHP you must create an instance of the
-`scssc` class. The typical flow is to create the instance, set any compile time
-options, then run the compiler with the `compile` method.
-
-    ```php
-    <?php
-    require "scssphp/scss.inc.php";
-    $scss = new scssc();
-
-    echo $scss->compile('
-      $color: #abc;
-      div { color: lighten($color, 20%); }
-    ');
-    ```
-
-* <p>`compile($scssCode)` will attempt to compile a string of SCSS code. If it
-  succeeds then the CSS will be returned as a string. If there is any error, an
-  exception is thrown with an appropriate error message.
-  </p>
-
-### Import Paths
-
-When you import a file using the `@import` directive, the current path of your
-PHP script is used as the search path by default. This is often not what
-you want, so there are two methods for manipulating the import path:
-`addImportPath`, and `setImportPaths`.
-
-* `addImportPath($path)` will append `$path` to the list of the import
-  paths that are searched.
-
-* `setImportPaths($pathArray)` will replace the entire import path with
-  `$pathArray`. The value of `$pathArray` will be converted to an array if it
-  isn't one already.
-
-If the import path is set to `array()` then importing is effectively disabled.
-The default import path is `array("")`, which means the current directory.
-
-    ```php
-    <?php
-    require "scssphp/scss.inc.php";
-    $scss = new scssc();
-    $scss->setImportPaths("assets/stylesheets/");
-
-    // will search for `assets/stylesheets/mixins.scss'
-    echo $scss->compile('@import "mixins.scss"');
-    ```
-
-Besides adding static import paths, it's also possible to add custom import
-functions. This allows you to load paths from a database, or HTTP, or using
-files that SCSS would otherwise not process (such as vanilla CSS imports).
-
-    ```php
-    <?php
-    require "scssphp/scss.inc.php";
-    $scss = new scssc();
-    $scss->addImportPath(function($path) {
-        if (!file_exists('stylesheets/'.$path)) return null;
-        return 'stylesheets/'.$path;
-    });
-
-    // will import `stylesheets/vanilla.css'
-    echo $scss->compile('@import "vanilla.css"');
-    ```
-
-### Output Formatting
-
-It's possible to customize the formatting of the output CSS by changing the
-default formatter.
-
-Three formatters are included:
-
-* `scss_formatter`
-* `scss_formatter_nested` *(default)*
-* `scss_formatter_compressed`
-
-We can change the formatting using the `setFormatter` method.
-
-* <p>`setFormatter($formatterName)` sets the current formatter to `$formatterName`,
-  the name of a class as a string that implements the formatting interface. See
-  the source for `scss_formatter` for an example.
-  </p>
-
-Given the following SCSS:
-
-    ```scss
-    .navigation {
-        ul {
-            line-height: 20px;
-            color: blue;
-            a {
-                color: red;
-            }
-        }
-    }
-
-    .footer {
-        .copyright {
-            color: silver;
-        }
-    }
-    ```
-
-The formatters will output,
-
-`scss_formatter`:
-
-    ```css
-    .navigation ul {
-      line-height: 20px;
-      color: blue;
-    }
-    .navigation ul a {
-      color: red;
-    }
-    .footer .copyright {
-      color: silver;
-    }
-    ```
-
-`scss_formatter_nested`:
-
-    ```css
-    .navigation ul {
-      line-height: 20px;
-      color: blue; }
-        .navigation ul a {
-          color: red; }
-
-    .footer .copyright {
-      color: silver; }
-    ```
-
-`scss_formatter_compressed`:
-
-    ```css
-    .navigation ul{line-height:20px;color:blue;}.navigation ul a{color:red;}.footer .copyright{color:silver;}
-    ```
-
-### Custom Functions
-
-It's possible to register custom functions written in PHP that can be called
-from SCSS. Some possible applications include appending your assets directory
-to a URL with an `asset-url` function, or converting image URLs to an embedded
-data URI to reduce the number of requests on a page with a `data-uri` function.
-
-We can add and remove functions using the methods `registerFunction` and
-`unregisterFunction`.
-
-* `registerFunction($functionName, $callable)` assigns the callable value to
-  the name `$functionName`. The name is normalized using the rules of SCSS.
-  Meaning underscores and dashes are interchangeable. If a function with the
-  same name already exists then it is replaced.
-
-* `unregisterFunction($functionName)` removes `$functionName` from the list of
-  available functions.
-
-
-The `$callable` can be anything that PHP knows how to call using
-`call_user_func`. The function receives two arguments when invoked. The first
-is an array of SCSS typed arguments that the function was sent. The second is a
-reference to the current `scss` instance.
-
-The *SCSS typed arguments* are actually just arrays that represent SCSS values.
-SCSS has different types than PHP, and this is how **scssphp** represents them
-internally.
-
-For example, the value `10px` in PHP would be `array("number", 1, "px")`. There
-is a large variety of types. Experiment with a debugging function like `print_r`
-to examine the possible inputs.
-
-The return value of the custom function can either be a SCSS type or a basic
-PHP type. (such as a string or a number) If it's a PHP type, it will be converted
-automatically to the corresponding SCSS type.
-
-As an example, a function called `add-two` is registered, which adds two numbers
-together. PHP's anonymous function syntax is used to define the function.
-
-    ```php
-    <?php
-    $scss = new scssc();
-
-    $scss->registerFunction("add-two", function($args) {
-      list($a, $b) = $args;
-      return $a[1] + $b[1];
-    });
-
-    $scss->compile('.ex1 { result: add-two(10, 10); }');
-    ```
-
-It's worth noting that in this example we lose the units of the number, and we
-also don't do any type checking. This will have undefined results if we give it
-anything other than two numbers.
-
-
-## SCSS Server
-
-The SCSS server is a small class that helps with automatically compiling SCSS.
-
-It's an endpoint for your web application that searches for SCSS files in a
-directory then compiles and serves them as CSS. It will only compile
-files if they've been modified (or one of the imports has been modified).
-
-### Using `serveFrom`
-
-`scss_server::serveFrom` is a simple to use function that should handle most cases.
-
-For example, create a file `style.php`:
-
-    ```php
-    <?php
-    $directory = "stylesheets";
-
-    require "scssphp/scss.inc.php";
-    scss_server::serveFrom($directory);
-    ```
-
-Going to the URL `example.com/style.php/style.scss` will attempt to compile
-`style.scss` from the `stylesheets` directory, and serve it as CSS.
-
-* <p>`scss_server::serveFrom($directory)` will serve SCSS files out of
-  `$directory`. It will attempt to get the path to the file out of
-  `$_SERVER["PATH_INFO"]`. (It also looks at the GET parameter `p`)
-  </p>
-
-If it can not find the file it will return an HTTP 404 page:
-
-    ```text
-    /* INPUT NOT FOUND scss v0.0.1 */
-    ```
-
-If the file can't be compiled due to an error, then an HTTP 500 page is
-returned. Similar to the following:
-
-    ```text
-    Parse error: parse error: failed at `height: ;` stylesheets/test.scss on line 8
-    ```
-
-By default , the SCSS server must have write access to the style sheet
-directory. It writes its cache in a special directory called `scss_cache`.
-
-Also, because SCSS server writes headers, make sure no output is written before
-it runs.
-
-### Using `scss_server`
-
-Creating an instance of `scss_server` is just another way of accomplishing what
-`serveFrom` does. It let's us customize the cache directory and the instance
-of the `scssc` that is used to compile
-
-
-* <p>`new scss_server($sourceDir, $cacheDir, $scss)` creates a new server that
-  serves files from `$sourceDir`. The cache dir is where the cached compiled
-  files are placed. When `null`, `$sourceDir . "/scss_cache"` is used. `$scss`
-  is the instance of `scss` that is used to compile.
-  </p>
-
-Just call the `serve` method to let it render its output.
-
-Here's an example of creating a SCSS server that outputs compressed CSS:
-
-    ```php
-    <?php
-    require "scssphp/scss.inc.php";
-
-    $scss = new scssc();
-    $scss->setFormatter("scss_formatter_compressed");
-
-    $server = new scss_server("stylesheets", null, $scss);
-    $server->serve();
-    ```
-
-
-## Command Line Tool
-
-A really basic command line tool is included for integration with scripts. It
-is called `pscss`. It reads a SCSS file from standard out and returns the CSS.
-
-If passed the flag `-v`, input is ignored and the current version if returned.
-
-The flag `-f` can be used to set the [formatter](#Output_formatting):
-
-    ```bash
-    $ ./pscss -f scss_formatter_compressed < styles.scss
-    ```
-
diff --git a/vendor/leafo/scssphp/site/index.md b/vendor/leafo/scssphp/site/index.md
deleted file mode 100644
index ae88f3eba1fc41d4ef244e6b86bcacd52118dcb3..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/site/index.md
+++ /dev/null
@@ -1,201 +0,0 @@
-**scssphp** is a compiler for [SCSS][0] written in PHP.
-
-SCSS is a CSS preprocessor that adds many features like variables, mixins,
-imports, color manipulation, functions, and tons of other powerful features.
-
-The entire compiler comes in a single class file ready for including in any
-kind of project in addition to a command line tool for running the compiler
-from the terminal.
-
-**scssphp** implements SCSS (3.2.12). It does not implement the SASS syntax,
-only the SCSS syntax.
-
-Follow the author on twitter: [@moonscript](http://twitter.com/moonscript).
-
-<div class="github-buttons">
-<iframe src="http://ghbtns.com/github-btn.html?user=leafo&repo=scssphp&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110px" height="20px"></iframe>
-<iframe src="http://ghbtns.com/github-btn.html?user=leafo&repo=scssphp&type=fork&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="95px" height="20px"></iframe>
-</div>
-
-<a name="installing"></a>
-## Installing
-
-You can always download the latest version here:  
-<a href="$root/src/scssphp-$current_version.tar.gz" id="download-link">scssphp-$current_version.tar.gz</a>
-
-You can also find the latest source online:  
-<https://github.com/leafo/scssphp/>
-
-If you use [Packagist][2] for installing packages, then you can update your `composer.json` like so:
-
-$render{[[composer]]}
-
-<a name="quickstart"></a>
-## Language Reference
-
-For a complete guide to the syntax of SCSS, consult the [official documentation][1].
-
-## PHP Reference
-
-Complete documentation for **scssphp** is located at <a href="$root/docs/">http://leafo.net/scssphp/docs/</a>.
-
-### Quickstart
-
-If you just want to start serving compiled `scss` files as quick as possible
-then start here.
-
-**scssphp** comes with a easy to use class that automatically compiles modified
-`scss` files and serves them from a directory you specify.
-
-Create a file, like `style.php`:
-
-    ```php
-    <?php
-    $directory = "stylesheets";
-
-    require "scssphp/scss.inc.php";
-    scss_server::serveFrom($directory);
-
-    ```
-
-Create the directory set in the script alongside the script, then add your
-`scss` files to it.
-
-If we've got a file in there called `style.scss`, then we just need to hit the
-url: `example.com/style.php/style.scss` to get the compiled css.
-
-If there is an error compiling, the url will result in a `500` error with the
-error message. If the file can't be found, then a friendly `404` is returned.
-
-**scssphp** will automatically create a `scss_cache` directory inside the
-stylesheets directory where it will cache the compiled output. This way it can
-quickly serve the files if no modifications have been made. Your PHP script
-must have permission to write in `scss_cache`.
-
-### Compiler Interface
-
-If you're interested in directly using the compiler, then all you need to do is
-require `scss.inc.php` and invoke the `scss` class:
-
-    ```php
-    <?php
-    require "scssphp/scss.inc.php";
-    $scss = new scssc();
-
-    echo $scss->compile('
-      $color: #abc;
-      div { color: lighten($color, 20%); }
-    ');
-
-    ```
-
-The `compile` method takes `SCSS` as a string, and returns the `CSS`. If there
-is an error when compiling then an exception is thrown with an appropriate
-message.
-
-
-For a more detailed guide consult <a href="$root/docs/">http://leafo.net/scssphp/docs/</a>.
-
-<a name="issues"></a>
-## Issues
-
-Find any issues? I'd love to fix them for you, post about them on [the issues tracker][3].
-
-<div id="changelog"></div>
-## Changelog
-
-* **0.0.10** -- April 14, 2014
-  * fix media query merging (timonbaetz)
-  * inline if should treat null as false (wonderslug)
-  * optimizing toHSL() (jfsullivan)
-* **0.0.9** -- December 23, 2013
-  * fix @for/@while inside @content block (sergeylukin)
-  * fix functions in mixin_content (timonbaetz)
-  * fix infinite loop when target extends itself (oscherler)
-  * fix function arguments are lost inside of @content block
-  * allow setting number precision (kasperisager)
-  * add public function helpers (toBool, get, findImport, assertList, assertColor, assertNumber, throwError) (Burgov, atdt)
-  * add optional cache buster prefix to serve() method (iMoses)
-* **0.0.8** -- September 16, 2013
-  * Avoid IE7 content: counter bug
-  * Support transparent as color name
-  * Recursively create cache dir (turksheadsw)
-  * Fix for INPUT NOT FOUND (morgen32)
-* **0.0.7** -- May 24, 2013
-  * Port various fixes from leafo/lessphp.
-  * Improve filter precision.
-  * Parsing large image data-urls does not work.
-  * Add == and != ops for colors.
-  * @if and @while directives should treat null like false.
-  * Add pscss as bin in composer.json (Christian Lück).
-  * Fix !default bug (James Shannon, Alberto Aldegheri). 
-  * Fix mixin content includes (James Shannon, Christian Brandt).
-  * Fix passing of varargs to another mixin.
-  * Fix interpolation bug in expToString() (Matti Jarvinen).
-* **0.0.5** -- March 11, 2013
-  * Better compile time errors
-  * Fix top level properties inside of a nested `@media` (Anthon Pang)
-  * Fix some issues with `@extends` (Anthon Pang)
-  * Enhanced handling of `null` (Anthon Pang)
-  * Helper functions shouldn't mix with css builtins (Anthon Pang)
-  * Enhance selector parsing (Guilherme Blanco, Anthon Pang)
-  * Add Placeholder selector support (Martin Hasoň)
-  * Add variable argument support (Martin Hasoň)
-  * Add zip, index, comparable functions (Martin Hasoň)
-  * A bunch of parser and bug fixes
-* **0.0.4** -- Nov 3nd, 2012
-  * [Import path can be a function](docs/#import_paths) (Christian Lück).
-  * Correctly parse media queries with more than one item (Christian Lück).
-  * Add `ie_hex_str`, `abs`, `min`, `max` functions (Martin Hasoň)
-  * Ignore expressions inside of `calc()` (Martin Hasoň)
-  * Improve operator evaluation (Martin Hasoň)
-  * Add [`@content`](http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#mixin-content) support.
-  * Misc bug fixes.
-* **0.0.3** -- August 2nd, 2012
-  * Add missing and/or/not operators.
-  * Expression evaluation happens correctly.
-  * Import file caching and _partial filename support.
-  * Misc bug fixes.
-* **0.0.2** -- July 30th, 2012
-  * SCSS server is aware of imports
-  * added custom function interface
-  * compressed formatter
-  * wrote <a href="http://leafo.net/scssphp/docs/">documentation</a>
-* Initial Release v0.0.1 -- July 29th, 2012
-
-<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
-<script type="text/javascript">
-(function() {
-  var changelog = jQuery("#changelog").nextAll("ul:first");
-  var hidden = changelog.children("li").slice(1).hide();
-  if (hidden.length) {
-    var show_all = jQuery("<a href=''>Show All</a>").insertAfter(changelog).on("click", function() {
-      hidden.show();
-      show_all.remove();
-      return false;
-    });
-  }
-})();
-</script>
-
-<a name="comments"></a>
-## Comments
-
-<div class="comments" id="disqus_thread"></div>
-<script type="text/javascript">
-  var disqus_shortname = 'leafo';
-  var disqus_url = 'http://leafo.net/scssphp/';
-
-  (function() {
-    var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
-    dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
-    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
-  })();
-</script>
-
-
-  [0]: http://sass-lang.com/
-  [1]: http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#css_extensions
-  [2]: http://packagist.org/
-  [3]: https://github.com/leafo/scssphp/issues
-  [4]: https://github.com/leafo/scssphp/
diff --git a/vendor/leafo/scssphp/site/site.moon b/vendor/leafo/scssphp/site/site.moon
deleted file mode 100644
index e5548f8a96eac83b2e928e009fd458ffb3ef4b5c..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/site/site.moon
+++ /dev/null
@@ -1,15 +0,0 @@
-require "sitegen"
-
-tools = require "sitegen.tools"
-
-sitegen.create_site =>
-  @current_version = "0.0.10"
-  @title = "SCSS Compiler in PHP"
-
-  scssphp = tools.system_command "pscss < %s > %s", "css"
-  build scssphp, "style.scss", "style/style.css"
-
-  deploy_to "leaf@leafo.net", "www/scssphp/"
-
-  add "docs/index.md"
-
diff --git a/vendor/leafo/scssphp/site/style.scss b/vendor/leafo/scssphp/site/style.scss
deleted file mode 100644
index 18ecc09286acd5506453c30d92c89e0931e6ccdb..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/site/style.scss
+++ /dev/null
@@ -1,303 +0,0 @@
-
-$site_width: 640px;
-
-$light_teal: #7FC7AF;
-$teal: desaturate(#3FB8AF, 10%);
-$brown: #DAD8A7;
-$pink: darken(#FF9E9D, 10%);
-$btn_color: desaturate(#FF3D7F, 10%);
-
-::selection {
-    background: red;
-    color: white;
-}
-
-@mixin unselectable {
-    -moz-user-select: none;
-    -webkit-user-select: none;
-    user-select: none;
-}
-
-@mixin grad($top, $bottom) {
-    background-color: mix($top, $bottom);
-    background-image: linear-gradient(bottom, $bottom 0%, $top 100%);
-    background-image: -webkit-linear-gradient(bottom, $bottom 0%, $top 100%);
-    background-image: -moz-linear-gradient(bottom, $bottom 0%, $top 100%);
-    background-image: -o-linear-gradient(bottom, $bottom 0%, $top 100%);
-    background-image: -ms-linear-gradient(bottom, $bottom 0%, $top 100%);
-}
-
-@mixin autograd($color, $amount: 10%) {
-    @include grad($color, darken($color, $amount));
-}
-
-body {
-    background: $pink;
-    font-family: Lato, sans-serif;
-}
-
-.header, .footer, .body {
-    .inner {
-        width: $site_width;
-        margin: 0 auto;
-    }
-}
-
-.header {
-    text-shadow: 0px -1px 0px darken($teal, 15%);
-
-    .color {
-        background: $teal url(../img/tile.png);
-        border-top: 4px solid $light_teal;
-        box-shadow: inset 0px 1px 0px rgba(255,255,255, 0.5), inset 0px 8px 8px -8px #37505A, inset 0px -1px 0px rgba(255,255,255, 0.3);
-    }
-
-    h1 {
-        font-family: 'Quicksand', sans-serif;
-        font-size: 40px;
-        line-height: 100px;
-        font-weight: normal;
-        margin: 0;
-
-        a {
-            text-decoration: none;
-            color: #EDFFF9;
-
-            &:active {
-                position: relative;
-                top: 1px;
-            }
-        }
-    }
-
-    .nav {
-        padding: 8px 0;
-        font-size: 17px;
-        text-shadow: none;
-        background: darken($teal, 30%);
-        color: $teal;
-        box-shadow: inset 0px 4px 8px -4px rgba(0,0,0,0.9), inset 0px -1px 0px rgba(255,255,255, 0.8);
-
-        a {
-            color: lighten($teal, 40%);
-            text-decoration: none;
-
-            &:hover {
-                text-decoration: underline;
-            }
-        }
-
-        .social {
-            float: right;
-            margin-top: -2px;
-        }
-    }
-
-    .download-area {
-        float: right;
-        margin-top: 25px;
-        background: rgba(255,255,255, 0.3);
-        border-radius: 8px;
-        padding: 5px;
-
-        a {
-            text-decoration: none;
-        }
-
-        .download-button {
-            $height: 8px;
-            $depress: 4px;
-
-            @include unselectable;
-
-            color: white;
-            text-align: center;
-
-            @include autograd($btn_color);
-
-            position: relative;
-            top: -1 * $height;
-
-            padding: 8px 20px;
-            border-radius: 8px;
-            text-shadow: none;
-
-            box-shadow: 0px $height 0px darken($btn_color, 30%), inset 0px -1px 0px rgba(255,255,255, 0.2), inset 0px 1px 0px rgba(0,0,0, 0.2);
-            text-shadow: 0px 1px 2px darken($btn_color, 40%);
-
-            cursor: pointer;
-
-            -webkit-transition: all 0.05s ease-in-out;
-            -moz-transition: all 0.05s ease-in-out;
-            transition: all 0.05s ease-in-out;
-
-            &:hover {
-                @include autograd(lighten($btn_color, 3%));
-            }
-
-            &:active {
-                box-shadow: 0px $height - $depress 0px darken($btn_color, 30%), inset 0px -1px 0px rgba(255,255,255, 0.2), inset 0px 1px 0px rgba(0,0,0, 0.2);
-                top: -1 * ($height - $depress);
-            }
-
-            .top {
-                font-weight: bold;
-                font-size: 16px;
-            }
-
-            .sub {
-                font-size: 14px;
-            }
-        }
-    }
-
-}
-
-.body {
-    $bg_color: #FEFFED;
-    $text_color: darken($brown, 60%);
-    box-shadow: inset 0px 4px 8px -4px rgba(0,0,0,0.7), inset 0px -4px 8px -4px rgba(0,0,0,0.4);
-    background: $bg_color;
-    overflow: hidden;
-    color: $text_color;
-    font-size: 18px;
-    padding-bottom: 20px;
-
-    .inner {
-        background: white;
-        margin-top: 20px;
-        padding: 30px 50px;
-        border: 1px solid lightGrey;
-        box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.19);
-
-        h1, h2, h3 {
-            margin: 0 0 20px 0;
-        }
-    }
-
-    h1, h2, h3 {
-        text-shadow: 1px 1px 0px $bg_color, 2px 2px 0px rgba($text_color, 0.3);
-        letter-spacing: -1px;
-    }
-
-    h3 {
-        color: #4D4C3D;
-    }
-
-    p {
-        margin: 0 0 15px 0;
-    }
-
-    a {
-        color: #DB1C4A;
-        &:hover {
-            color: lighten(#DB1C4A, 10%);
-        }
-    }
-
-    pre {
-        margin: 20px 0;
-    }
-}
-
-.footer {
-    font-size: 16px;
-    color: lighten($pink, 20%);
-    text-shadow: 0px 1px 0px darken($pink, 20%);
-
-    border-top: 1px dashed darken($pink, 50%);
-    box-shadow: inset 0px 1px 0px rgba(255,255,255, 0.5);
-    padding: 8px 0 20px 0;
-
-    line-height: 150%;
-
-    a {
-        color: white;
-        font-weight: bold;
-        text-decoration: none;
-        padding: 0 4px;
-        border-radius: 4px;
-        border: 1px solid lighten($pink, 4%);
-
-        &:hover {
-            background: darken($pink, 3%);
-            border: 1px solid lighten($pink, 4%);
-        }
-    }
-}
-
-
-p {
-    line-height: 150%;
-    code {
-        background: rgba(0,0,0, 0.1);
-        border-radius: 4px;
-        padding: 1px 4px;
-    }
-}
-
-.comments {
-    font-size: 12px;
-}
-
-.index {
-    line-height: 150%;
-    margin-bottom: 20px;
-
-    ul {
-        margin: 0;
-    }
-}
-
-.highlight {
-    background: #333;
-    color: white;
-    font-size: 14px;
-    padding: 10px;
-    box-shadow: 0px 1px 3px rgba(0,0,0, 0.7), inset 0px 0px 0px 1px rgba(255,255,255,0.3);
-    border-radius: 2px;
-    border: 1px solid #222;
-
-
-    // builtins
-    .nb {
-        color: #FFA67C;
-    }
-
-    // strings
-    .s, .s1, .s2, .se, .nt {
-        color: #ffe898;
-    }
-
-    // proper names
-    .nc, .vc, .bp {
-        color: #98d9ff;
-    }
-
-    // true, false, nil
-    .kc {
-        color: #acfff0;
-    }
-
-    // function lit, braces, parens
-    .nf, .kt {
-        color: #9fff98;
-    }
-
-    .nv {
-        color: #ff9898;
-    }
-
-    // keywords
-    .k, .kd, .na {
-        color: #cb98ff;
-    }
-
-    .c1, .c2 {
-        color: #929292;
-    }
-
-    .m, .mi, .mf, .mh, .o {
-        color: #9495ff;
-    }
-}
diff --git a/vendor/leafo/scssphp/site/templates/index.html b/vendor/leafo/scssphp/site/templates/index.html
deleted file mode 100644
index 587b691ff1173d2c68919f509942071d0e9f7736..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/site/templates/index.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE HTML>
-<html lang="en">
-<head>
-  <meta charset="UTF-8">
-  <title>$if{"title"}[[$title - ]]scssphp</title>
-  <link href='http://fonts.googleapis.com/css?family=Lato:400,900|Quicksand' rel='stylesheet' type='text/css'>
-  <link rel="stylesheet" href="$root/style/normalize.css" />
-  <link rel="stylesheet" href="$root/style/style.css?$generate_date" />
-  $analytics{"UA-136625-1"}
-</head>
-<body>
-  <div class="header">
-    <div class="color">
-      <div class="inner">
-        <div class="download-area">
-          <a href="$root/src/scssphp-$current_version.tar.gz">
-            <div class="download-button" id="download-button">
-              <div class="top">Download</div>
-              <div class="sub">scssphp-$current_version.tar.gz</div>
-            </div>
-          </a>
-        </div>
-
-        <h1><a href="$root">scssphp</a></h1>
-      </div>
-    </div>
-
-    <div class="nav">
-      <div class="inner">
-        <div class="social">
-          <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://leafo.net/scssphp/" data-text="scssphp v$current_version - SCSS compiler for PHP" data-count="horizontal" data-via="moonscript">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script>
-          <a href="https://twitter.com/moonscript" class="twitter-follow-button" data-width="70px" data-show-count="false" data-show-screen-name="false">Follow @moonscript</a>
-        </div>
-
-        <a href="$root/#installing">Install</a>
-        &middot;
-        <a href="$root/#quickstart">Quickstart</a>
-        &middot;
-        <a href="$root/docs/">Docs</a>
-        &middot;
-        <a href="$root/#comments">Comments</a>
-      </div>
-    </div>
-
-  </div>
-
-  <div class="body">
-    <div class="inner">
-      $body
-    </div>
-  </div>
-
-  <div class="footer">
-    <div class="inner">
-      <div>
-        created by <a href="http://leafo.net">leaf corcoran</a> &middot; scssphp is licensed under GPL3/MIT
-      </div>
-      <div>
-        generated by <a href="http://github.com/leafo/sitegen">sitegen</a> on $generate_date
-      </div>
-    </div>
-  </div>
-
-  <script type="text/javascript">
-    (function() {
-      document.getElementById("download-button").onclick = function() {
-        _gaq.push(['_trackEvent', 'scssphp', 'click', 'download-button']); 
-      }
-      var link = document.getElementById("download-link");
-      if (link) link.onclick = function() {
-        _gaq.push(['_trackEvent', 'scssphp', 'click', 'download-link']); 
-      }
-    })();
-  </script>
-
-  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
-
-
-  <a href="https://github.com/leafo/scssphp"><img style="position: fixed; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a>
-</body>
-</html>
diff --git a/vendor/leafo/scssphp/site/www/.gitignore b/vendor/leafo/scssphp/site/www/.gitignore
deleted file mode 100644
index e82179728b3ce2a380b9a16bbd5fef180ea1113f..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/site/www/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-docs/index.html
-index.html
\ No newline at end of file
diff --git a/vendor/leafo/scssphp/site/www/img/tile.png b/vendor/leafo/scssphp/site/www/img/tile.png
deleted file mode 100644
index ecb7149dc6e07dae7f0d8914934990ef05724d73..0000000000000000000000000000000000000000
Binary files a/vendor/leafo/scssphp/site/www/img/tile.png and /dev/null differ
diff --git a/vendor/leafo/scssphp/site/www/style/normalize.css b/vendor/leafo/scssphp/site/www/style/normalize.css
deleted file mode 100644
index 8fa27e0ba225b6a9b746e8b2e11a6aafa81a779c..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/site/www/style/normalize.css
+++ /dev/null
@@ -1,500 +0,0 @@
-/*! normalize.css 2012-07-07T09:50 UTC - http://github.com/necolas/normalize.css */
-
-/* ==========================================================================
-   HTML5 display definitions
-   ========================================================================== */
-
-/*
- * Corrects `block` display not defined in IE6/7/8/9 & FF3.
- */
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-nav,
-section,
-summary {
-    display: block;
-}
-
-/*
- * Corrects `inline-block` display not defined in IE6/7/8/9 & FF3.
- */
-
-audio,
-canvas,
-video {
-    display: inline-block;
-    *display: inline;
-    *zoom: 1;
-}
-
-/*
- * Prevents modern browsers from displaying `audio` without controls.
- * Remove excess height in iOS5 devices.
- */
-
-audio:not([controls]) {
-    display: none;
-    height: 0;
-}
-
-/*
- * Addresses styling for `hidden` attribute not present in IE7/8/9, FF3, S4.
- * Known issue: no IE6 support.
- */
-
-[hidden] {
-    display: none;
-}
-
-/* ==========================================================================
-   Base
-   ========================================================================== */
-
-/*
- * 1. Corrects text resizing oddly in IE6/7 when body `font-size` is set using
- *    `em` units.
- * 2. Prevents iOS text size adjust after orientation change, without disabling
- *    user zoom.
- */
-
-html {
-    font-size: 100%; /* 1 */
-    -webkit-text-size-adjust: 100%; /* 2 */
-    -ms-text-size-adjust: 100%; /* 2 */
-}
-
-/*
- * Addresses `font-family` inconsistency between `textarea` and other form
- * elements.
- */
-
-html,
-button,
-input,
-select,
-textarea {
-    font-family: sans-serif;
-}
-
-/*
- * Addresses margins handled incorrectly in IE6/7.
- */
-
-body {
-    margin: 0;
-}
-
-/* ==========================================================================
-   Links
-   ========================================================================== */
-
-/*
- * Addresses `outline` inconsistency between Chrome and other browsers.
- */
-
-a:focus {
-    outline: thin dotted;
-}
-
-/*
- * Improves readability when focused and also mouse hovered in all browsers.
- * people.opera.com/patrickl/experiments/keyboard/test
- */
-
-a:active,
-a:hover {
-    outline: 0;
-}
-
-/* ==========================================================================
-   Typography
-   ========================================================================== */
-
-/*
- * Addresses font sizes and margins set differently in IE6/7.
- * Addresses font sizes within `section` and `article` in FF4+, Chrome, S5.
- */
-
-h1 {
-    font-size: 2em;
-    margin: 0.67em 0;
-}
-
-h2 {
-    font-size: 1.5em;
-    margin: 0.83em 0;
-}
-
-h3 {
-    font-size: 1.17em;
-    margin: 1em 0;
-}
-
-h4 {
-    font-size: 1em;
-    margin: 1.33em 0;
-}
-
-h5 {
-    font-size: 0.83em;
-    margin: 1.67em 0;
-}
-
-h6 {
-    font-size: 0.75em;
-    margin: 2.33em 0;
-}
-
-/*
- * Addresses styling not present in IE7/8/9, S5, Chrome.
- */
-
-abbr[title] {
-    border-bottom: 1px dotted;
-}
-
-/*
- * Addresses style set to `bolder` in FF3+, S4/5, Chrome.
- */
-
-b,
-strong {
-    font-weight: bold;
-}
-
-blockquote {
-    margin: 1em 40px;
-}
-
-/*
- * Addresses styling not present in S5, Chrome.
- */
-
-dfn {
-    font-style: italic;
-}
-
-/*
- * Addresses styling not present in IE6/7/8/9.
- */
-
-mark {
-    background: #ff0;
-    color: #000;
-}
-
-/*
- * Addresses margins set differently in IE6/7.
- */
-
-p,
-pre {
-    margin: 1em 0;
-}
-
-/*
- * Corrects font family set oddly in IE6, S4/5, Chrome.
- * en.wikipedia.org/wiki/User:Davidgothberg/Test59
- */
-
-code,
-kbd,
-pre,
-samp {
-    font-family: monospace, serif;
-    _font-family: 'courier new', monospace;
-    font-size: 1em;
-}
-
-/*
- * Improves readability of pre-formatted text in all browsers.
- */
-
-pre {
-    white-space: pre;
-    white-space: pre-wrap;
-    word-wrap: break-word;
-}
-
-/*
- * Addresses CSS quotes not supported in IE6/7.
- */
-
-q {
-    quotes: none;
-}
-
-/*
- * Addresses `quotes` property not supported in S4.
- */
-
-q:before,
-q:after {
-    content: '';
-    content: none;
-}
-
-small {
-    font-size: 75%;
-}
-
-/*
- * Prevents `sub` and `sup` affecting `line-height` in all browsers.
- * gist.github.com/413930
- */
-
-sub,
-sup {
-    font-size: 75%;
-    line-height: 0;
-    position: relative;
-    vertical-align: baseline;
-}
-
-sup {
-    top: -0.5em;
-}
-
-sub {
-    bottom: -0.25em;
-}
-
-/* ==========================================================================
-   Lists
-   ========================================================================== */
-
-/*
- * Addresses margins set differently in IE6/7.
- */
-
-dl,
-menu,
-ol,
-ul {
-    margin: 1em 0;
-}
-
-dd {
-    margin: 0 0 0 40px;
-}
-
-/*
- * Addresses paddings set differently in IE6/7.
- */
-
-menu,
-ol,
-ul {
-    padding: 0 0 0 40px;
-}
-
-/*
- * Corrects list images handled incorrectly in IE7.
- */
-
-nav ul,
-nav ol {
-    list-style: none;
-    list-style-image: none;
-}
-
-/* ==========================================================================
-   Embedded content
-   ========================================================================== */
-
-/*
- * 1. Removes border when inside `a` element in IE6/7/8/9, FF3.
- * 2. Improves image quality when scaled in IE7.
- *    code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/
- */
-
-img {
-    border: 0; /* 1 */
-    -ms-interpolation-mode: bicubic; /* 2 */
-}
-
-/*
- * Corrects overflow displayed oddly in IE9.
- */
-
-svg:not(:root) {
-    overflow: hidden;
-}
-
-/* ==========================================================================
-   Figures
-   ========================================================================== */
-
-/*
- * Addresses margin not present in IE6/7/8/9, S5, O11.
- */
-
-figure {
-    margin: 0;
-}
-
-/* ==========================================================================
-   Forms
-   ========================================================================== */
-
-/*
- * Corrects margin displayed oddly in IE6/7.
- */
-
-form {
-    margin: 0;
-}
-
-/*
- * Define consistent border, margin, and padding.
- */
-
-fieldset {
-    border: 1px solid #c0c0c0;
-    margin: 0 2px;
-    padding: 0.35em 0.625em 0.75em;
-}
-
-/*
- * 1. Corrects color not being inherited in IE6/7/8/9.
- * 2. Corrects text not wrapping in FF3.
- * 3. Corrects alignment displayed oddly in IE6/7.
- */
-
-legend {
-    border: 0; /* 1 */
-    padding: 0;
-    white-space: normal; /* 2 */
-    *margin-left: -7px; /* 3 */
-}
-
-/*
- * 1. Corrects font size not being inherited in all browsers.
- * 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome.
- * 3. Improves appearance and consistency in all browsers.
- */
-
-button,
-input,
-select,
-textarea {
-    font-size: 100%; /* 1 */
-    margin: 0; /* 2 */
-    vertical-align: baseline; /* 3 */
-    *vertical-align: middle; /* 3 */
-}
-
-/*
- * Addresses FF3/4 setting `line-height` on `input` using `!important` in the
- * UA stylesheet.
- */
-
-button,
-input {
-    line-height: normal;
-}
-
-/*
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
- *    and `video` controls.
- * 2. Corrects inability to style clickable `input` types in iOS.
- * 3. Improves usability and consistency of cursor style between image-type
- *    `input` and others.
- * 4. Removes inner spacing in IE7 without affecting normal text inputs.
- *    Known issue: inner spacing remains in IE6.
- */
-
-button,
-html input[type="button"], /* 1 */
-input[type="reset"],
-input[type="submit"] {
-    -webkit-appearance: button; /* 2 */
-    cursor: pointer; /* 3 */
-    *overflow: visible;  /* 4 */
-}
-
-/*
- * Re-set default cursor for disabled elements.
- */
-
-button[disabled],
-input[disabled] {
-    cursor: default;
-}
-
-/*
- * 1. Addresses box sizing set to content-box in IE8/9.
- * 2. Removes excess padding in IE8/9.
- * 3. Removes excess padding in IE7.
- *    Known issue: excess padding remains in IE6.
- */
-
-input[type="checkbox"],
-input[type="radio"] {
-    box-sizing: border-box; /* 1 */
-    padding: 0; /* 2 */
-    *height: 13px; /* 3 */
-    *width: 13px; /* 3 */
-}
-
-/*
- * 1. Addresses `appearance` set to `searchfield` in S5, Chrome.
- * 2. Addresses `box-sizing` set to `border-box` in S5, Chrome (include `-moz`
- *    to future-proof).
- */
-
-input[type="search"] {
-    -webkit-appearance: textfield; /* 1 */
-    -moz-box-sizing: content-box;
-    -webkit-box-sizing: content-box; /* 2 */
-    box-sizing: content-box;
-}
-
-/*
- * Removes inner padding and search cancel button in S5, Chrome on OS X.
- */
-
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
-    -webkit-appearance: none;
-}
-
-/*
- * Removes inner padding and border in FF3+.
- */
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-    border: 0;
-    padding: 0;
-}
-
-/*
- * 1. Removes default vertical scrollbar in IE6/7/8/9.
- * 2. Improves readability and alignment in all browsers.
- */
-
-textarea {
-    overflow: auto; /* 1 */
-    vertical-align: top; /* 2 */
-}
-
-/* ==========================================================================
-   Tables
-   ========================================================================== */
-
-/*
- * Remove most spacing between table cells.
- */
-
-table {
-    border-collapse: collapse;
-    border-spacing: 0;
-}
diff --git a/vendor/leafo/scssphp/tests/ApiTest.php b/vendor/leafo/scssphp/tests/ApiTest.php
deleted file mode 100644
index 333d23e690b3e9fa8c9157b9931e70ac071e08d5..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/ApiTest.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-require_once __DIR__ . "/../scss.inc.php";
-
-class ApiTest extends PHPUnit_Framework_TestCase {
-	public function setUp() {
-		$this->scss = new scssc();
-	}
-
-	public function testUserFunction() {
-		$this->scss->registerFunction("add-two", function($args) {
-			list($a, $b) = $args;
-			return $a[1] + $b[1];
-		});
-
-		$this->assertEquals(
-			"result: 30;",
-			$this->compile("result: add-two(10, 20);"));
-	}
-	
-	public function testImportMissing(){
-		$this->assertEquals(
-			'@import "missing";',
-			$this->compile('@import "missing";'));
-	}
-	
-	public function testImportCustomCallback(){
-		$this->scss->addImportPath(function($path) {
-			return __DIR__.'/inputs/' . str_replace('.css','.scss',$path);
-		});
-		
-		$this->assertEquals(
-			trim(file_get_contents(__DIR__.'/outputs/variables.css')),
-			$this->compile('@import "variables.css";'));
-	}
-
-	public function compile($str) {
-		return trim($this->scss->compile($str));
-	}
-
-}
diff --git a/vendor/leafo/scssphp/tests/ExceptionTest.php b/vendor/leafo/scssphp/tests/ExceptionTest.php
deleted file mode 100644
index 63d1db66eda13af422bcde9516831c51c21ca059..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/ExceptionTest.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-require_once __DIR__ . "/../scss.inc.php";
-
-class ExceptionTest extends PHPUnit_Framework_TestCase {
-	public function setUp() {
-		$this->scss = new scssc();
-	}
-
-	/**
-	 * @param string $scss
-	 * @param string $expectedExceptionMessage
-	 *
-	 * @dataProvider provideScss
-	 */
-	public function testThrowError($scss, $expectedExceptionMessage) {
-		try {
-			$this->compile($scss);
-		} catch (Exception $e) {
-			if (strpos($e->getMessage(), $expectedExceptionMessage) !== false) {
-				return;
-			};
-		}
-
-		$this->fail('Expected exception to be raised: ' . $expectedExceptionMessage);
-	}
-
-	/**
-	 * @return array
-	 */
-	public function provideScss() {
-		return array(
-			array(<<<END_OF_SCSS
-.test {
-  foo : bar;
-END_OF_SCSS
-,
-				'unclosed block'
-			),
-			array(<<<END_OF_SCSS
-.test {
-}}
-END_OF_SCSS
-,
-				'unexpected }'
-			),
-			array(<<<END_OF_SCSS
-.test { color: #fff / 0; }
-END_OF_SCSS
-,
-				'color: Can\'t divide by zero'
-			),
-			array(<<<END_OF_SCSS
-.test {
-  @include foo();
-}
-END_OF_SCSS
-,
-				'Undefined mixin foo'
-			),
-			array(<<<END_OF_SCSS
-@mixin do-nothing() {
-}
-
-.test {
-  @include do-nothing(\$a: "hello");
-}
-END_OF_SCSS
-,
-				'Mixin or function doesn\'t have an argument named $a.'
-			),
-			array(<<<END_OF_SCSS
-div {
-  color: darken(cobaltgreen, 10%);
-}
-END_OF_SCSS
-,
-				'expecting color'
-			),
-		);
-	}
-
-	private function compile($str) {
-		return trim($this->scss->compile($str));
-	}
-}
diff --git a/vendor/leafo/scssphp/tests/InputTest.php b/vendor/leafo/scssphp/tests/InputTest.php
deleted file mode 100644
index fbd83b6634ccd25ebabc5dab8507c99b8dc53c28..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/InputTest.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-require_once __DIR__ . "/../scss.inc.php";
-
-// Runs all the tests in inputs/ and compares their output to ouputs/
-
-function _dump($value) {
-	fwrite(STDOUT, print_r($value, true));
-}
-
-function _quote($str) {
-	return preg_quote($str, "/");
-}
-
-class InputTest extends PHPUnit_Framework_TestCase {
-	protected static $inputDir = "inputs";
-	protected static $outputDir = "outputs";
-
-	public function setUp() {
-		$this->scss = new scssc();
-		$this->scss->addImportPath(__DIR__ . "/" . self::$inputDir);
-	}
-
-	/**
-	 * @dataProvider fileNameProvider
-	 */
-	public function testInputFile($inFname, $outFname) {
-		if (getenv("BUILD")) {
-			return $this->buildInput($inFname,$outFname);
-		}
-
-		if (!is_readable($outFname)) {
-			$this->fail("$outFname is missing, ".
-				"consider building tests with BUILD=true");
-		}
-
-		$input = file_get_contents($inFname);
-		$output = file_get_contents($outFname);
-
-		$this->assertEquals($output, $this->scss->compile($input));
-	}
-
-	public function fileNameProvider() {
-		return array_map(function($a) { return array($a, InputTest::outputNameFor($a)); },
-			self::findInputNames());
-	}
-
-	// only run when env is set
-	public function buildInput($inFname, $outFname) {
-		$css = $this->scss->compile(file_get_contents($inFname));
-		file_put_contents($outFname, $css);
-	}
-
-	static public function findInputNames($pattern="*") {
-		$files = glob(__DIR__ . "/" . self::$inputDir . "/" . $pattern);
-		$files = array_filter($files, "is_file");
-		if ($pattern = getenv("MATCH")) {
-			$files = array_filter($files, function($fname) use ($pattern) {
-				return preg_match("/$pattern/", $fname);
-			});
-		}
-
-		return $files;
-	}
-
-	static public function outputNameFor($input) {
-		$front = _quote(__DIR__ . "/");
-		$out = preg_replace("/^$front/", "", $input);
-
-		$in = _quote(self::$inputDir . "/");
-		$out = preg_replace("/$in/", self::$outputDir . "/", $out);
-		$out = preg_replace("/.scss$/", ".css", $out);
-
-		return __DIR__ . "/" . $out;
-	}
-
-	static public function buildTests($pattern) {
-		$files = self::findInputNames($pattern);
-		foreach ($files as $file) {
-		}
-	}
-}
-
diff --git a/vendor/leafo/scssphp/tests/compare-scss.sh b/vendor/leafo/scssphp/tests/compare-scss.sh
deleted file mode 100755
index 3b0429212138cb31d230aab1e7114324c5238fc5..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/compare-scss.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-
-diff_tool="$1"
-
-for file in $(ls inputs/*.scss); do
-	out_file=$(echo $file | sed -e 's/inputs/outputs/' -e 's/\.scss$/\.css/')
-	sass=$(scss < $file 2> /dev/null)
-	if [ $? = "0" ]; then
-		# echo $file
-		# echo "$sass"
-		# echo
-
-		if [ "$(cat $out_file)" != "$sass" ]; then
-			echo "* [FAIL] $file"
-			if [ -n "$diff_tool" ]; then
-				$diff_tool $out_file <(echo "$sass") 2> /dev/null
-			fi
-		else
-			echo "  [PASS] $file"
-		fi
-	else
-		echo "         $file"
-	fi
-done
-
diff --git a/vendor/leafo/scssphp/tests/inputs/builtins.scss b/vendor/leafo/scssphp/tests/inputs/builtins.scss
deleted file mode 100644
index ef93a03f53d8444b7435b3f9d0d019f74119f10b..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/builtins.scss
+++ /dev/null
@@ -1,171 +0,0 @@
-
-#color {
-    color: rgb(34,234,24);
-
-    red: red(rgb(34,234,24));
-    green: green(rgb(34,234,24));
-    blue: blue(rgb(34,234,24));
-
-    color: rgba(1,2,4, 0.5);
-    a1: alpha(rgb(1,2,4));
-    a2: alpha(rgba(1,2,4, 0.5));
-
-    mix: mix(rgb(1,2,3), rgb(3,4,5));
-
-    rgba: rgba($color: #a7c, $alpha: 0.4);
-    rgba: rgba(#a7c, 0.4);
-}
-
-#hsl {
-    color: hsl(100, 50, 55);
-    color: hsla(100, 50, 55, 0.5);
-
-    hue: hue(hsl(100, 50, 55));
-    sat: saturation(hsl(100, 50, 55));
-    lig: lightness(hsl(100, 50, 55));
-}
-
-#more-color {
-    $color: hsl(-80,44,33);
-
-    light: lighten($color, 10%);
-    dark: darken($color, 10%);
-
-    sat: saturate($color, 10%);
-    desat: desaturate($color, 10%);
-
-    gray: grayscale($color);
-    comp: complement($color);
-    inv: invert($color);
-}
-
-#more-more-color {
-    $color: rgba(1,2,3,0.5);
-    op: opacity($color);
-
-    opacify: opacify($color, 0.1);
-    opacify: fade-in($color, 0.1);
-
-    transparentize: transparentize($color, 0.1);
-    transparentize: fade-out($color, 0.1);
-    transparentize: transparentize(#348203, 0.1);
-}
-
-#more-more-more-color {
-    $color: rgba(10,10,10,0);
-    color: adjust-color($color, $blue: 69, $red: 55, $green: 100, $alpha: 0.4);
-    color: adjust-color($color, $hue: 170, $saturation: 100, $lightness: 50);
-
-    color: change-color($color, $blue: 69, $red: 55, $green: 100, $alpha: 0.4);
-    color: change-color($color, $hue: 170, $saturation: 100, $lightness: 50);
-
-    color: scale-color($color, $red: 55%);
-    color: scale-color($color, $red: -55%);
-
-    color: scale-color($color, $lightness: 55%);
-    color: scale-color($color, $lightness: -55%);
-    
-    color: ie-hex-str($color);
-    color: ie-hex-str(#abc);
-}
-
-#string {
-    color: unquote("hello what is going on");
-    // color: quote(yeah you know it); // **
-    color: quote(yeah);
-    color: quote("I do?");
-}
-
-#number {
-    color: percentage(100/40);
-    color: round(3.4);
-    color: floor(3.4);
-    color: ceil(3.4);
-    
-    top: floor(10.4px);
-    top: ceil(.4ex);
-    width: percentage(100px / 50px); 
-    bottom: abs(-10px);
-    padding: min(5em, 3em, 4em) max(2px, 1in) min(1in, 96px) max(1in, 72pt);
-}
-
-#list {
-    len: length(hello world what);
-    len: length(thing);
-
-    n: nth(hello world what, 1);
-    // n: nth(hello world what, 100); // **
-
-    hello: join(one two three, hello, comma);
-    hello: join(one two three, hello world what is going, comma);
-    hello: append(one two three, hello, comma);
-
-    index: index(1px solid red, solid);
-    index: index(1px solid red, dashed);
-    index: index(1px solid red, #f00);
-    index: index(96px solid red, 1in);
-    index: index((1in 2) a b, 1in);
-    index: index((1in 2) a b, (96px 2));
-    index: index((1in 2) a b, (1in, 2));
-    index: index((1px solid red), solid);
-    index: index(1px 3px + 3px, 4+2px);
-    $var: oo;
-    index: index(foo bar, f#{$var});
-
-    $yes: one, two, three;
-    $no: great job;
-    world: join($yes, $no);
-    world: append($yes, $no);
-
-    cool: join($yes, $no, space);
-    cool: join($no, $yes);
-
-    zip: zip((1px, 2px), (solid dashed));
-    zip: zip(1px 2px 3px, solid dashed, red green blue);
-} 
-
-#introspection {
-    t: type-of(100px);
-    t: type-of(asdf);
-    t: type-of("asdf");
-    t: type-of(true);
-    t: type-of(#fff);
-    t: type-of(blue);
-    t: type-of(one two three);
-
-    u: unit(12);
-    u: unit(12px);
-    u: unit(12em);
-
-    l: unitless(23);
-    l: unitless(23deg);
-
-    c: comparable(2px, 1px);
-    c: comparable(100px, 3em);
-    c: comparable(10cm, 3mm);
-    c: comparable(1, 4);
-    c: comparable(1ex, 4em);
-    c: comparable(2em, 5em);
-}
-
-#if {
-    color: if(true, yes, no);
-    color: if(false, yes, no);
-    color: if(false or true, yes, no);
-    color: if(10px, yes, no);
-}
-
-.transparent {
-  r: red(transparent);
-  g: green(transparent);
-  b: blue(transparent);
-  a: alpha(transparent);
-}
-
-.alpha {
-  a: alpha(black);
-  a: alpha(#fff);
-  a: alpha(rgb(0, 0, 0));
-  a: alpha(rgba(0, 0, 0, 0.5));
-  a: alpha(currentColor);
-}
diff --git a/vendor/leafo/scssphp/tests/inputs/comments.scss b/vendor/leafo/scssphp/tests/inputs/comments.scss
deleted file mode 100644
index 513281b4389f87c87097ab14070fa1067930fe4f..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/comments.scss
+++ /dev/null
@@ -1,27 +0,0 @@
-
-// what is going on?
-
-/** what the heck **/
-
-/**
-
-Here is a block comment
-
-**/
-
-
-// this is a comment
-
-/*hello*/div /*yeah*/ { //surew
-	border: 1px solid red; // world
-	/* another property */
-	color: url('http://mage-page.com');
-	string: "hello /* this is not a comment */";
-	world: "// neither is this";
-	string: 'hello /* this is not a comment */' /*what if this is a comment */;
-	world: '// neither is this' // hell world;
-	;
-	what-ever: 100px;
-	background: url(/*this is not a comment?*/); // uhh what happens here
-}
-
diff --git a/vendor/leafo/scssphp/tests/inputs/compass_extract.scss b/vendor/leafo/scssphp/tests/inputs/compass_extract.scss
deleted file mode 100644
index fba45728bd1e61e6779ee7f89a13a1f5c3df317a..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/compass_extract.scss
+++ /dev/null
@@ -1,248 +0,0 @@
-// Extracted from compass/typography/vertical_rhythm.scss
-
-
-// The base font size.
-$base-font-size: 16px !default;
-
-// The base line height determines the basic unit of vertical rhythm.
-$base-line-height: 24px !default;
-
-// Set the default border style for rhythm borders.
-$default-rhythm-border-style: solid !default;
-
-// The default font size in all browsers.
-$browser-default-font-size: 16px;
-
-// Set to false if you want to use absolute pixels in sizing your typography.
-$relative-font-sizing: true !default;
-
-// Allows the `adjust-font-size-to` mixin and the `lines-for-font-size` function
-// to round the line height to the nearest half line height instead of the
-// nearest integral line height to avoid large spacing between lines.
-$round-to-nearest-half-line: false !default;
-
-// Ensure there is at least this many pixels
-// of vertical padding above and below the text.
-$min-line-padding: 2px !default;
-
-// $base-font-size but in your output unit of choice.
-// Defaults to 1em when `$relative-font-sizing` is true.
-$font-unit: if($relative-font-sizing, 1em, $base-font-size) !default;
-
-// The basic unit of font rhythm.
-$base-rhythm-unit: $base-line-height / $base-font-size * $font-unit;
-
-// The leader is the amount of whitespace in a line.
-// It might be useful in your calculations.
-$base-leader: ($base-line-height - $base-font-size) * $font-unit / $base-font-size;
-
-// The half-leader is the amount of whitespace above and below a line.
-// It might be useful in your calculations.
-$base-half-leader: $base-leader / 2;
-
-// True if a number has a relative unit.
-@function relative-unit($number) {
-  @return unit($number) == "%" or unit($number) == "em" or unit($number) == "rem"
-}
-
-// True if a number has an absolute unit.
-@function absolute-unit($number) {
-  @return not (relative-unit($number) or unitless($number));
-}
-
-@if $relative-font-sizing and not relative-unit($font-unit) {
-  @warn "$relative-font-sizing is true but $font-unit is set to #{$font-unit} which is not a relative unit.";
-}
-
-// Establishes a font baseline for the given font-size.
-@mixin establish-baseline($font-size: $base-font-size) {
-  // IE 6 refuses to resize fonts set in pixels and it weirdly resizes fonts
-  // whose root is set in ems. So we set the root font size in percentages of
-  // the default font size.
-  * html {
-    font-size: 100% * ($font-size / $browser-default-font-size);
-  }
-  html {
-    font-size: $font-size;
-    @include adjust-leading-to(1, if($relative-font-sizing, $font-size, $base-font-size));
-  }
-}
-
-// Resets the line-height to 1 vertical rhythm unit.
-// Does not work on elements whose font-size is different from $base-font-size.
-//
-// @deprecated This mixin will be removed in the next release.
-// Please use the `adjust-leading-to` mixin instead.
-@mixin reset-baseline {
-  @include adjust-leading-to(1, if($relative-font-sizing, $base-font-size, $base-font-size));
-}
-
-// Show a background image that can be used to debug your alignments.
-// Include the $img argument if you would rather use your own image than the
-// Compass default gradient image.
-@mixin debug-vertical-alignment($img: false) {
-  @if $img {
-    background: image-url($img);
-  } @else {
-    @include baseline-grid-background($base-rhythm-unit);
-  }
-}
-
-// Adjust a block to have a different font size and line height to maintain the
-// rhythm. $lines specifies how many multiples of the baseline rhythm each line
-// of this font should use up. It does not have to be an integer, but it
-// defaults to the smallest integer that is large enough to fit the font.
-// Use $from-size to adjust from a font-size other than the base font-size.
-@mixin adjust-font-size-to($to-size, $lines: lines-for-font-size($to-size), $from-size: $base-font-size) {
-  @if not $relative-font-sizing and $from-size != $base-font-size {
-    @warn "$relative-font-sizing is false but a relative font size was passed to adjust-font-size-to";
-  }
-  font-size: $font-unit * $to-size / $from-size;
-  @include adjust-leading-to($lines, if($relative-font-sizing, $to-size, $base-font-size));
-}
-
-// Adjust a block to have different line height to maintain the rhythm.
-// $lines specifies how many multiples of the baseline rhythm each line of this
-// font should use up. It does not have to be an integer, but it defaults to the
-// smallest integer that is large enough to fit the font.
-@mixin adjust-leading-to($lines, $font-size: $base-font-size) {
-  line-height: rhythm($lines, $font-size);
-}
-
-// Calculate rhythm units.
-@function rhythm(
-  $lines: 1,
-  $font-size: $base-font-size,
-  $offset: 0
-) {
-  @if not $relative-font-sizing and $font-size != $base-font-size {
-    @warn "$relative-font-sizing is false but a relative font size was passed to the rhythm function";
-  }
-  $rhythm: $font-unit * ($lines * $base-line-height - $offset) / $font-size;
-  // Round the pixels down to nearest integer.
-  @if unit($rhythm) == px {
-    $rhythm: floor($rhythm);
-  }
-  @return $rhythm;
-}
-
-// Calculate the minimum multiple of rhythm units needed to contain the font-size.
-@function lines-for-font-size($font-size) {
-  $lines: if($round-to-nearest-half-line,
-              ceil(2 * $font-size / $base-line-height) / 2,
-              ceil($font-size / $base-line-height));
-  @if $lines * $base-line-height - $font-size < $min-line-padding * 2 {
-    $lines: $lines + if($round-to-nearest-half-line, 0.5, 1);
-  }
-  @return $lines;
-}
-
-// Apply leading whitespace. The $property can be margin or padding.
-@mixin leader($lines: 1, $font-size: $base-font-size, $property: margin) {
-  #{$property}-top: rhythm($lines, $font-size);
-}
-
-// Apply leading whitespace as padding.
-@mixin padding-leader($lines: 1, $font-size: $base-font-size) {
-  padding-top: rhythm($lines, $font-size);
-}
-
-// Apply leading whitespace as margin.
-@mixin margin-leader($lines: 1, $font-size: $base-font-size) {
-  margin-top: rhythm($lines, $font-size);
-}
-
-// Apply trailing whitespace. The $property can be margin or padding.
-@mixin trailer($lines: 1, $font-size: $base-font-size, $property: margin) {
-  #{$property}-bottom: rhythm($lines, $font-size);
-}
-
-// Apply trailing whitespace as padding.
-@mixin padding-trailer($lines: 1, $font-size: $base-font-size) {
-  padding-bottom: rhythm($lines, $font-size);
-}
-
-// Apply trailing whitespace as margin.
-@mixin margin-trailer($lines: 1, $font-size: $base-font-size) {
-  margin-bottom: rhythm($lines, $font-size);
-}
-
-// Shorthand mixin to apply whitespace for top and bottom margins and padding.
-@mixin rhythm($leader: 0, $padding-leader: 0, $padding-trailer: 0, $trailer: 0, $font-size: $base-font-size) {
-  @include leader($leader, $font-size);
-  @include padding-leader($padding-leader, $font-size);
-  @include padding-trailer($padding-trailer, $font-size);
-  @include trailer($trailer, $font-size);
-}
-
-// Apply a border and whitespace to any side without destroying the vertical
-// rhythm. The whitespace must be greater than the width of the border.
-@mixin apply-side-rhythm-border($side, $width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
-  @if not $relative-font-sizing and $font-size != $base-font-size {
-    @warn "$relative-font-sizing is false but a relative font size was passed to apply-side-rhythm-border";
-  }
-  border-#{$side}: {
-    style: $border-style;
-    width: $font-unit * $width / $font-size;
-  };
-  padding-#{$side}: rhythm($lines, $font-size, $offset: $width);
-}
-
-// Apply borders and whitespace equally to all sides.
-@mixin rhythm-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
-  @if not $relative-font-sizing and $font-size != $base-font-size {
-    @warn "$relative-font-sizing is false but a relative font size was passed to rhythm-borders";
-  }
-  border: {
-    style: $border-style;
-    width: $font-unit * $width / $font-size;
-  };
-  padding: rhythm($lines, $font-size, $offset: $width);
-}
-
-// Apply a leading border.
-@mixin leading-border($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
-  @include apply-side-rhythm-border(top, $width, $lines, $font-size, $border-style);
-}
-
-// Apply a trailing border.
-@mixin trailing-border($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
-  @include apply-side-rhythm-border(bottom, $width, $lines, $font-size, $border-style);
-}
-
-// Apply both leading and trailing borders.
-@mixin horizontal-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
-  @include leading-border($width, $lines, $font-size, $border-style);
-  @include trailing-border($width, $lines, $font-size, $border-style);
-}
-
-// Alias for `horizontal-borders` mixin.
-@mixin h-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
-  @include horizontal-borders($width, $lines, $font-size, $border-style);
-}
-
-#test-0 {
-  unit: relative-unit(10px);
-  unit: relative-unit(50%);
-  rhythm: rhythm();
-  size: lines-for-font-size(15px);
-  size: lines-for-font-size(16px);
-  size: lines-for-font-size(17px);
-  size: lines-for-font-size(27px);
-  size: lines-for-font-size(37px);
-}
-
-
-#test-1 {
-  @include rhythm(5, 6, 7);
-}
-
-#test-2 {
-  @include rhythm-borders;
-}
-
-#test-3 {
-  @include horizontal-borders;
-}
-
-
diff --git a/vendor/leafo/scssphp/tests/inputs/content.scss b/vendor/leafo/scssphp/tests/inputs/content.scss
deleted file mode 100644
index 55ca04e8ff8278f048dd75d5670100a223279fc7..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/content.scss
+++ /dev/null
@@ -1,61 +0,0 @@
-
-@mixin apply-to-ie6-only {
-    * html {
-        @content;
-    }
-}
-@include apply-to-ie6-only {
-    #logo {
-        background-image: url(/logo.gif);
-    }
-}
-
-
-$color: white;
-@mixin colors($color: blue) {
-    background-color: $color;
-    @content;
-    border-color: $color;
-}
-.colors {
-    @include colors { color: $color; }
-}
-
-
-@mixin iphone {
-    @media only screen and (max-width: 480px) {
-        @content;
-    }
-}
-
-@include iphone {
-    body { color: red }
-}
-
-
-#sidebar {
-  $sidebar-width: 300px;
-  width: $sidebar-width;
-  @include iphone {
-    width: $sidebar-width / 3;
-  }
-}
-
-
-@mixin respond-to($width) {
-  @media only screen and (min-width: $width) { @content; }
-}
-
-@include respond-to(40em) {
-  @for $i from 1 through 2 {
-    .grid-#{$i} { width: 100%; }
-  }
-}
-
-@include respond-to(40em) {
-  $i: 1;
-  @while $i <= 2 {
-    .grid-#{$i} { width: 100%; }
-    $i: $i + 1;
-  }
-}
diff --git a/vendor/leafo/scssphp/tests/inputs/content_with_function.scss b/vendor/leafo/scssphp/tests/inputs/content_with_function.scss
deleted file mode 100644
index f1462d6565392a20916424ea33137c5c97576df7..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/content_with_function.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-$test-var: true;
-
-@mixin mixin-using-content() {
-    @content;
-}
-
-@function test-function($value) {
-    @return $value;
-}
-
-@include mixin-using-content {
-    @if $test-var {
-        body {
-            padding: test-function(1 px);
-        }
-    }
-}
diff --git a/vendor/leafo/scssphp/tests/inputs/default_args.scss b/vendor/leafo/scssphp/tests/inputs/default_args.scss
deleted file mode 100644
index dbc8880091184a71d490568c4d0f46aad4d2641d..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/default_args.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-@mixin cool($color: blue) {
-    margin: 100px;
-}
-
-@function what($height: red) {
-    @return $height;
-}
-
-div {
-    height: what();
-    @include cool;
-}
-
diff --git a/vendor/leafo/scssphp/tests/inputs/directives.scss b/vendor/leafo/scssphp/tests/inputs/directives.scss
deleted file mode 100644
index 65f1c5139a2216dab027aebfbcc8593d005225b0..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/directives.scss
+++ /dev/null
@@ -1,108 +0,0 @@
-
-@charset "hello-world";
-
-@page :left {
-    div {
-        color: red;
-    }
-}
-
-@page test {
-    @media yes {
-        div {
-            color: red;
-        }
-
-        @media no {
-            pre {
-                color: blue;
-            }
-        }
-    }
-}
-
-@media something {
-    @page {
-        @media else {
-            div {
-                height: 200px;
-            }
-        }
-    }
-}
-
-
-div {
-    color: red;
-    @page yeah {
-        pre {
-            height: 20px;
-        }
-    }
-}
-
-@font-face {
-    color: red;
-    height: 20px;
-}
-
-
-@keyframes 'bounce' {
-	from {
-		top: 100px;
-		animation-timing-function: ease-out;
-	}
-
-	25% {
-		top: 50px;
-		animation-timing-function: ease-in;
-	}
-
-	50% {
-		top: 100px;
-		animation-timing-function: ease-out;
-	}
-
-	75% {
-		top: 75px;
-		animation-timing-function: ease-in;
-	}
-
-	to {
-		top: 100px;
-	}
-}
-
-@-webkit-keyframes flowouttoleft {
-	0% { -webkit-transform: translateX(0) scale(1); }
-	60%, 70% { -webkit-transform: translateX(0) scale(.7); }
-	100% { -webkit-transform: translateX(-100%) scale(.7); }
-}
-
-div {
-	animation-name: 'diagonal-slide';
-	animation-duration: 5s;
-	animation-iteration-count: 10;
-}
-
-@keyframes 'diagonal-slide' {
-
-	from {
-		left: 0;
-		top: 0;
-	}
-
-	to {
-		left: 100px;
-		top: 100px;
-	}
-
-}
-
-@document url(http://www.w3.org/),
-          url-prefix(http://www.w3.org/Style/),
-          domain(mozilla.org),
-          regexp("https:.*")
-{
-    body { color: purple; background: yellow; }
-}
diff --git a/vendor/leafo/scssphp/tests/inputs/extends.scss b/vendor/leafo/scssphp/tests/inputs/extends.scss
deleted file mode 100644
index 74a51600562c4c28aa230e16f5899732c75bd9e3..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/extends.scss
+++ /dev/null
@@ -1,184 +0,0 @@
-
-error, other {
-  border: 1px #f00;
-  background-color: #fdd;
-}
-
-pre, span {
-    seriousError {
-        @extend error;
-        font-size: 20px;
-    }
-}
-
-hello {
-    @extend other;
-    color: green;
-    div {
-        margin: 10px;
-    }
-}
-
-.cool {
-    color: red;
-}
-
-.blue {
-    color: purple;
-}
-
-.me {
-    @extend .cool, .blue;
-}
-
-.hoverlink { @extend a:hover }
-a:hover { text-decoration: underline }
-
-
-// partial matching and selector merging:
-
-div.hello.world.hmm {
-    color: blue;
-}
-
-pre, code  {
-    .okay.span {
-        @extend .hello;
-    }
-}
-
-// multiple matches per selector
-.xxxxx .xxxxx .xxxxx {
-    color: green;
-}
-
-code {
-    @extend .xxxxx;
-    color: red;
-}
-
-
-// chained 
-
-.alpha {
-    color: red;
-}
-
-.beta {
-    @extend .alpha;
-    color: white;
-}
-
-.gama {
-    @extend .beta;
-    color: blue;
-}
-
-// merging selector sequences
-
-#admin .tabbar a {font-weight: bold}
-#demo .overview .fakelink {@extend a}
-
-a1 b1 c1 d1 { color: red; }
-x1 y1 z1 w1 { @extend a1; }
-
-a2 b2 c2 d2 { color: red; }
-x2 y2 z2 w2 { @extend b2; }
-
-
-a3 b3 c3 d3 { color: red; }
-x3 y3 z3 w3 { @extend c3; }
-
-
-a4 b4 c4 d4 { color: red; }
-x4 y4 z4 w4 { @extend d4; }
-
-// removing common prefix
-
-#butt .yeah .okay { font-weight: bold }
-#butt .umm .sure { @extend .okay }
-
-a9 b9 s9 t9 v9 { color: red; }
-
-a9 b9 x9 y9 z9 {
-    @extend v9;
-}
-
-// extends & media
-
-@media print {
-    horse {
-        color: blue;
-    }
-}
-
-man {
-    color: red;
-    @extend horse;
-}
-
-
-// result == match
-
-wassup {
-    color: blue;
-    @extend wassup;
-}
-
-.foo {
-    .wassup {
-        @extend .wassup;
-        color: blue;
-    }
-}
-
-// multi-extend
-
-#something {
-    color: red;
-}
-
-.x {
-    @extend #something;
-}
-
-.y {
-    @extend #something;
-}
-
-// twitter-sass-bootstrap infinite loop
-
-.nav-tabs {
-  &.nav-justified {
-    @extend .nav-justified;
-  }
-}
-.nav-justified {
-  text-align: justify;
-}
-
-// multi-extend with nesting
-
-.btn:hover,
-.btn:active,
-.btn.active,
-.btn.disabled,
-.btn[disabled] {
-  color: red;
-}
-.edit .actions {
-  button {
-    float: right;
-    @extend .btn;
-  }
-}  
-.edit {
-  .new {
-   .actions {
-      padding: 0;
-   }
-   .actions button {
-      @extend .btn;
-   }
- }
-}
diff --git a/vendor/leafo/scssphp/tests/inputs/filter_effects.scss b/vendor/leafo/scssphp/tests/inputs/filter_effects.scss
deleted file mode 100644
index e8f9a3bb841993c5fe3b06f6d0e211f7573c32bb..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/filter_effects.scss
+++ /dev/null
@@ -1,48 +0,0 @@
-#number {
-    -webkit-filter: grayscale(1)
-                    sepia(0.5)
-                    saturate(0.1)
-                    invert(1)
-                    opacity(0.5)
-                    brightness(0.5)
-                    contrast(0.5);
-}
-
-#percentage {
-    -webkit-filter: grayscale(100%)
-                    sepia(50%)
-                    saturate(10%)
-                    invert(100%)
-                    opacity(50%)
-                    brightness(50%)
-                    contrast(50%);
-}
-
-#misc {
-    -webkit-filter: hue-rotate(90deg)
-                    blur(10px)
-                    drop-shadow(10px -16px 30px purple);
-}
-
-@mixin opacity($opacity, $style: 0) {
-  @if ($opacity < 1) {
-    opacity: $opacity;
-    filter: alpha(opacity=$opacity * 100, style=$style);
-  } @else {
-    opacity: $opacity / 100;
-    filter: alpha(opacity=$opacity);
-  }
-}
-
-#decimal {
-  @include opacity(.5, 1);
-}
-
-#percent {
-  @include opacity(50);
-}
-
-.row {
-  background-color: darken(#2ba6cb, 40%);
-  color: darken(#2ba6cb, 10%);
-}
diff --git a/vendor/leafo/scssphp/tests/inputs/functions.scss b/vendor/leafo/scssphp/tests/inputs/functions.scss
deleted file mode 100644
index d555ae9fd2d5436679aa05a75265fa596830336a..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/functions.scss
+++ /dev/null
@@ -1,81 +0,0 @@
-
-@function hello($x) {
-    @return $x + 4;
-}
-
-@function add($a, $b) {
-    @return $a + $b;
-}
-
-div {
-    color: hello(10px);
-    sum: add(11, 12);
-}
-
-// make sure values are being reduced before being passed up to previous scope
-
-@function one($a, $b) {
-    @return $a $b;
-}
-
-@function two($a, $b) {
-    @return $a#{$a} $b;
-}
-
-@function three($a, $b: default) {
-    @return "hello #{$a} and #{$b}"
-}
-
-@function all($a...) {
-    @return "hello #{$a}"
-}
-
-div {
-    hello: one(10, 55);
-    hello: two(10, 55);
-    hello: three(10, 55);
-}
-
-
-@function hello_world() {
-    @return 1000;
-}
-
-del {
-    color: hello-world();
-}
-
-div {
-    $args: foo bar;
-    hello: three($args...);
-    hello: three(bar...);
-    hello: all(Alice, Bob, Tom);
-}
-
-@function stringConcatCompassStyle($start,$last)
-{
-    // Compass still uses it like this
-    @return #{$start}-#{$last};
-}
-
-.foo
-{   
-    test2: stringConcatCompassStyle(-moz,art);
-}
-
-@mixin content_test {
-    span {
-        $color: green;
-        @content;
-    }
-}
-
-@function func_test($c) {
-    @return $c + 1;
-}
-
-div {
-    @include content_test {
-        height: func_test(2px);
-    }
-}
diff --git a/vendor/leafo/scssphp/tests/inputs/ie7.scss b/vendor/leafo/scssphp/tests/inputs/ie7.scss
deleted file mode 100644
index 3d4771bd658a1625d1ca7655e174071b669f32cb..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/ie7.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-// http://jes.st/2013/ie7s-css-breaking-content-counter-bug/
-#foo:before {
-    content: counter(item, ".") ": ";
-}
-
-#bar:before {
-    content: counter(item,".");
-}
-
-#fu:before {
-    content: counter(item);
-}
diff --git a/vendor/leafo/scssphp/tests/inputs/if.scss b/vendor/leafo/scssphp/tests/inputs/if.scss
deleted file mode 100644
index d62b056aeeed22e3aa127c8442353d23ae0e00f2..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/if.scss
+++ /dev/null
@@ -1,76 +0,0 @@
-
-@function conds($val) {
-    @if $val {
-        @return "red";
-    }
-
-    @return "blue";
-}
-
-div {
-    @if something {
-        color: blue;
-    }
-}
-
-pre {
-    val-1: conds(true);
-    val-2: conds(false);
-    val-3: conds(null);
-    val-4: conds(1);
-    val-5: conds(0);
-}
-
-
-span {
-    @if false {
-        color: red;
-    } @else {
-        color: blue;
-    }
-
-    @if true {
-        height: 10px;
-    } @else {
-        color: 20px;
-    }
-
-    @if false {
-        height: 10px;
-    } @elseif false {
-        color: 20px;
-    } @else {
-        width: 20px;
-    }
-}
-
-div {
-    @if false {
-        color: red;
-    } @else if false {
-        color: green;
-    } @else {
-        color: blue;
-    }
-
-    @if false {
-        border-color: red;
-    } @else if true {
-        border-color: green;
-    } @else {
-        border-color: blue;
-    }
-
-}
-
-// doesn't work in scss, thing loses scope
-del {
-    @if false {
-        $thing: yes;
-    } @else {
-        $thing: no;
-    }
-
-    thing: $thing;
-}
-
diff --git a/vendor/leafo/scssphp/tests/inputs/if_on_null.scss b/vendor/leafo/scssphp/tests/inputs/if_on_null.scss
deleted file mode 100644
index 16887065d9385d79a930e320c906c70de6eebaf0..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/if_on_null.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-@function testfunc($pseudo: null) {
-  $output: if($pseudo, "green", "red");
-  @return $output;
-}
-
-body {
-  background-color: testfunc();
-}
diff --git a/vendor/leafo/scssphp/tests/inputs/import.scss b/vendor/leafo/scssphp/tests/inputs/import.scss
deleted file mode 100644
index 0556e6ddcc44cc48ce67088aa2a8a95b885e78fa..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/import.scss
+++ /dev/null
@@ -1,18 +0,0 @@
-
-@import "foo.css";
-@import "foo" screen;
-@import "http://foo.com/bar";
-@import url(foo);
-
-@import "imports/simple";
-
-pre {
-    color: red;
-    @import "imports/simple.scss";
-}
-
-code {
-    @import "imports/simple", "imports/simple";
-}
-
-@import "imports/partial";
diff --git a/vendor/leafo/scssphp/tests/inputs/imports/_partial.scss b/vendor/leafo/scssphp/tests/inputs/imports/_partial.scss
deleted file mode 100644
index 544467b88d291f2822a792ce2150b5383f3da4ff..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/imports/_partial.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-
-#partial {
-    color: blue;
-}
-
-
diff --git a/vendor/leafo/scssphp/tests/inputs/imports/simple.scss b/vendor/leafo/scssphp/tests/inputs/imports/simple.scss
deleted file mode 100644
index 4b3e1f9108ebaf294e1cc8761a2587c34fa1e292..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/imports/simple.scss
+++ /dev/null
@@ -1,4 +0,0 @@
-div {
-    height: 200px;
-    color: red;
-}
diff --git a/vendor/leafo/scssphp/tests/inputs/interpolation.scss b/vendor/leafo/scssphp/tests/inputs/interpolation.scss
deleted file mode 100644
index 3ac51cf5f88a58c686e5e75912fc9cf4651223c3..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/interpolation.scss
+++ /dev/null
@@ -1,86 +0,0 @@
-
-div {
-    color: red#{white} blue;
-    color: red #{white} blue;
-    color: red #{white}blue;
-    color: red#{white}blue;
-    color: #{umm}#{yeah}#{what};
-    color: #{stacked};
-
-    font-size: 10px/#{something};
-    font-size: 10px / #{something};
-
-    test: "what#{"world"}wrong";
-    test: "what#{'world'}wrong";
-    test: "what#{world}wrong";
-    test: "what"#{world}"wrong";
-
-    hi: "what is #{4 + 12} end"
-}
-
-
-// interpolation in selectors
-
-pre {
-    $var: cool;
-
-    #{var} {
-        color: red;
-    }
-
-    #{var} dad {
-        color: red;
-    }
-
-    bed#{var}dad {
-        color: red;
-    }
-}
-
-cool {
-    @for $x from 1 through 5 {
-        .thing-#{$x} {
-            color: red;
-        }
-    }
-}
-
-a#{b}c#{d}e {
-    color: red;
-}
-
-##{hello}, .#{world}{
-    color: red;
-}
-
-#abc#{hello}yeah, .cool#{world}yes{
-    color: red;
-}
-
-$scope: 2;
-
-div.element:nth-child(#{$scope}n)
-{
-    display: none;
-}
-
-// property interpolation
-
-div {
-    $var: hello;
-    #{$var}: world;
-    cool#{$var}:world;
-    #{$var}one:world;
-    two#{$var}one:world;
-
-    one#{a + b}two: cool;
-
-    #{hello}: {
-        #{world}: red;
-        #{mold}: white;
-        #{$var}: blue;
-    }
-
-}
-
-
diff --git a/vendor/leafo/scssphp/tests/inputs/keyword_args.scss b/vendor/leafo/scssphp/tests/inputs/keyword_args.scss
deleted file mode 100644
index 0b8e4754ec77b812c2308b2fb0f1c869119f28ed..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/keyword_args.scss
+++ /dev/null
@@ -1,24 +0,0 @@
-
-// mixins
-
-@mixin hello($a: one, $b:two, $c:three, $d: four) {
-    out: $a $b $c $d;
-}
-
-pre {
-    @include hello(alpha, $d: palace, $b: fort);
-}
-
-
-// functions
-
-@function cool($a, $b) {
-    @return $a - $b;
-}
-
-div {
-    hello: cool($b: 5, $a: 10);
-    world: cool(5, 10);
-}
-
-
diff --git a/vendor/leafo/scssphp/tests/inputs/list.scss b/vendor/leafo/scssphp/tests/inputs/list.scss
deleted file mode 100644
index afeb742694b9d3287f2edf88de190fa16b157848..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/list.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-$list: (black);
-$list: join($list, white, comma);
-
-div {
-  padding: join(10px 20px, 30px 40px);
-  margin: join((0, 10px), (10px, 10px), space);
-  background: linear-gradient($list);
-}
-
-$list: ();
-$list: join($list, (red, blue), comma);
-
-p {
-  background: linear-gradient($list);
-}
\ No newline at end of file
diff --git a/vendor/leafo/scssphp/tests/inputs/looping.scss b/vendor/leafo/scssphp/tests/inputs/looping.scss
deleted file mode 100644
index 6f25e722648a9c72aee8b4c23405a68744f526de..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/looping.scss
+++ /dev/null
@@ -1,51 +0,0 @@
-
-div {
-	@each $var in what is this {
-		color: $var;
-	}
-
-	@each $var in what, is, this {
-		font: $var;
-	}
-
-	$list: what is this;
-	@each $var in $list {
-	   background: $var;
-	}
-
-	$list: what, is, this;
-	@each $var in $list {
-		border: $var;
-	}
-}
-
-
-span {
-    $i: 0;
-    @while $i <= 10 {
-        color: $i;
-        $i: $i + 1;
-    }
-}
-
-pre {
-    @for $x from 1 to 5 {
-        color: $x;
-    }
-
-    @for $x from 1 through 5 {
-        height: $x;
-    }
-
-    $y: 10;
-    @for $x from $y through 3 {
-        cool: $x;
-    }
-
-}
-
-$j: null;
-@while $j {
-  .item { width: 2em; }
-  $j: false;
-}
diff --git a/vendor/leafo/scssphp/tests/inputs/media.scss b/vendor/leafo/scssphp/tests/inputs/media.scss
deleted file mode 100644
index 3c2c147a47d07c9ab7785bdfc1dd8b596e3ced13..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/media.scss
+++ /dev/null
@@ -1,208 +0,0 @@
-
-// media syntax
-@media {
-    div { color: blue; }
-}
-@media what {
-    div { color: blue; }
-}
-
-@media (cool) {
-    div { color: blue; }
-}
-@media (cool: blue) {
-    div { color: blue; }
-}
-
-@media hello and (world) and (butt: man) {
-    div { color: blue; }
-}
-
-$navbarCollapseWidth: 940px;
-
-@media (max-width: $navbarCollapseWidth) {
-  color: red;
-}
-
-// media bubbling
-@media not hello and (world) {
-   color: blue;
-   pre {
-       color: blue;
-   }
-
-   @media butt {
-       color: red;
-       div {
-           color: red;
-       }
-   }
-}
-
-@media a, b {
-    @media c {
-        color: blue;
-    }
-}
-
-@media a{
-    @media b, c {
-        color: blue;
-    }
-}
-
-@media a, b{
-    @media c, d {
-        color: blue;
-    }
-}
-
-$media: cree;
-$feature: -webkit-min-device-pixel-ratio;
-$value: 1.5;
-
-div {
-    color: blue;
-    @media s#{$media}n and ($feature: $value) {
-        .sidebar {
-            width: 500px;
-        }
-    }
-}
-
-// @media + @mixin
-@mixin color {
-    color: red;
-    .success {
-         color: green;
-    }
-}
-
-div {
-    position: absolute;
-    $y: 2em;
-    @media screen {
-        top: 0;
-        $x: 5px;
-        p {
-            margin: $x;
-        }
-        bottom: 6em + $y;
-        @include color;
-    }
-}
-
-.button {
-  width: 300px;
-  height: 100px;
-  background: #eee;
-   
-  :hover {
-    background: #aaa;
-  }
-   
-  @media only screen and (max-width : 300px){
-    width: 100px;
-    height: 100px;
-  }
-}
-
-code {
-    position: absolute;
-    @media screen {
-        pre {
-            height: 20px;
-        }
-        height: 10px;
-    }
-}
-
-dt {
-    @media screen {
-        @media (color: blue) {
-            height: 10px;
-        }
-    }
-}
-
-// nesting media queries
-@media screen {
-    .screen {
-        width: 12px;
-    }
-    @media only screen {
-        .only-screen {
-            height: 11px;
-        }    
-    }
-}
-
-@media only screen {
-    .only-screen {
-        width: 14px;
-    }
-    @media only screen {
-        .only-screen {
-            height: 16px;
-        }    
-    }
-}
-
-@media not screen {
-    @media screen {
-        .invalid {
-            height: 12px;
-        }
-    }
-}
-
-@media not screen {
-    @media print {
-        .only-print {
-            height: 12px;
-        }
-    }
-}
-
-@media screen {
-    @media not print {
-        .only-print {
-            height: 12px;
-        }
-    }
-}
-
-@media not screen {
-    @media not print {
-        .invalid {
-            height: 12px;
-        }
-    }
-}
-
-@media not screen {
-    @media not screen {
-        .not-screen {
-            height: 15px;
-        }
-    }
-}
-
-@media only screen {
-    @media print {
-        .invalid {
-            height: 15px;
-        }
-    }
-}
-
-@media only screen {
-    @media screen and (color: blue) {
-        @media screen and (width: 13) {
-            .only-screen {
-                height: 15px;
-            }
-        }
-    }
-}
-
diff --git a/vendor/leafo/scssphp/tests/inputs/mixins.scss b/vendor/leafo/scssphp/tests/inputs/mixins.scss
deleted file mode 100644
index 2e368a671c08cbafb6de0047e02e1e662d77ef7d..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/mixins.scss
+++ /dev/null
@@ -1,158 +0,0 @@
-
-@mixin something {
-    color: red;
-    pre {
-        height: 200px;
-    }
-}
-
-div {
-    color: blue;
-    @include something;
-}
-
-@mixin something($color) {
-    color: $color;
-
-    div {
-        height: 20px;
-    }
-}
-
-@mixin cool($a, $b, $c) {
-    height: $a + $b + $c;
-}
-
-span {
-    @include something(blue);
-}
-
-html {
-    @include cool(10px, 12px, 21px);
-}
-
-
-@mixin hello_world {
-    height: 20px;
-}
-
-del {
-    @include hello-world;
-}
-
-
-// variable shadowing
-
-
-$color: white;
-@mixin colors($color: blue) {
-    color: $color;
-}
-
-div {
-    color: $color;
-    @include colors();
-    color: $color;
-}
-
-@mixin linear-gradient($from, $to, $pos: left top) {
-  background-image: linear-gradient($pos, $from, $to);
-}
-
-div {
-    @include linear-gradient(red, green);
-}
-
-@mixin box-shadow($shadows...) {
-  -moz-box-shadow: $shadows;
-  -webkit-box-shadow: $shadows;
-  box-shadow: $shadows;
-}
-
-div {
-    @include box-shadow(10px 10px 5px #888);
-    @include box-shadow(inset 10px 10px #888, -10px -10px #f4f4f4);
-}
-
-@mixin nested {
-    @include something(red);
-}
-
-div {
-    p  {
-        .class {
-            @include nested;
-        }
-
-        @include nested;
-
-        .top {
-            top: 0;
-            
-            div {
-                color: red;
-            }
-        }
-
-        color: blue;
-    }
-}
-
-// mixin content (http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#mixin-content)
-@mixin content-simple {
-    div.mixin-content-simple {
-        @content;
-    }
-}
-
-@mixin content-with-arg ( $background ) {
-    div.mixin-content-with-arg {
-        background: $background;
-        @content;
-    }
-}
-
-@include content-simple {
-    color: red;
-}
-
-@include content-with-arg($background: blue) {
-    color: red;
-}
-
-@include content-with-arg($background: purple) { 
-    @include hello_world;
-}
-
-@include content-simple {
-    @include cool(10px, 12px, 21px);
-}
-
-@include content-simple {
-    @include something(orange);
-}
-
-@include content-with-arg($background: purple) { 
-    @include cool(10px, 12px, 21px);
-}
-
-@include content-with-arg($background: purple) { 
-    @include something(orange);
-}
-
-@mixin wallpaper($image, $top: 0, $right: 0, $bottom: 0, $left: 0) {
-  background: $image;
-  position: absolute;
-  top: $top;
-  right: $right;
-  bottom: $bottom;
-  left: $left;
-}
-
-@mixin logo($offsets...) {
-  @include wallpaper(url(/images/logo.png), $offsets...);
-}
-
-#please-wait {
-  @include logo(1em, $left: 4em, $bottom: 3em);
-}
diff --git a/vendor/leafo/scssphp/tests/inputs/nesting.scss b/vendor/leafo/scssphp/tests/inputs/nesting.scss
deleted file mode 100644
index 68e31177748bd6c623e768ae45d8c437b45197af..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/nesting.scss
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-body {
-    color: red;
-}
-
-
-div {
-    color: red;
-    height: yes;
-
-    pre {
-        color: blue;
-    }
-}
-
-
-div: blue;
-
-
-div {
-    font: 10px hello world {
-        size: 10px;
-        color: blue;
-    }
-
-    border: {
-        left: 1px solid blue;
-        right: 2px dashed green;
-    }
-}
-
-
-#nested-nesting {
-    bar: baz;
-    bang: {
-        bop: bar;
-        bip: 1px;
-        blat: {
-            baf: bort
-        }
-    }
-}
-
-
diff --git a/vendor/leafo/scssphp/tests/inputs/null.scss b/vendor/leafo/scssphp/tests/inputs/null.scss
deleted file mode 100644
index 147dc2e2c82b92c57299df03bb1493412bc76938..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/null.scss
+++ /dev/null
@@ -1,41 +0,0 @@
-$list: null;
-.div {
-    one: null;
-    one: null world;
-    one: NULL world;
-    one: a null, b;
-    two: a $list $list, $list, b;
-    three: $list;
-}
-
-$value: null;
-    p:before {
-    content: "I ate #{$value} pies!";
-}
-
-@mixin Rounded($radius1, $direction: null, $radius2: false) {
-    $corner: null;
-    @if $direction == TL { $corner: top-left-; }
-    @if $direction == TR { $corner: top-right-; }
-    @if $direction == BL { $corner: bottom-left-; }
-    @if $direction == BR { $corner: bottom-right-; }
-    @if $radius2 {
-        -webkit-border-#{$corner}radius: $radius1 $radius2;
-                border-#{$corner}radius: $radius1 $radius2;
-    } @else {
-        -webkit-border-#{$corner}radius: $radius1;
-                border-#{$corner}radius: $radius1;
-    }
-}
-
-.foo {
-    @include Rounded(10);
-}
-
-.fu {
-    @include Rounded(20, null);
-}
-
-.bar {
-    @include Rounded(30, TL);
-}
diff --git a/vendor/leafo/scssphp/tests/inputs/operators.scss b/vendor/leafo/scssphp/tests/inputs/operators.scss
deleted file mode 100644
index eb6e20e5ce1756fec9d0b6d65bbb2e119a1c2946..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/operators.scss
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-body {
-    color: 1 + 2 + 5;
-    color: 1 + 2 * 5 + 5;
-    height: 10px/10px;
-    color: 10px/2 + 1;
-    color: (10px/2);
-    bottom: (4/2px);
-    top: 1em * (1 * 24px - 0) / 16px;
-    left: 1 - 2cm;
-    top: (2cm/12px);
-}
-
-div {
-    color: 4 == 3;
-    color: hello == hello;
-
-    color: 4 > 3;
-    color: 4 < 3;
-    color: what > 3;
-}
-
-
-#units {
-    test: 1in + 4cm;
-    test: 12mm + 1;
-    test: 1 + 3em;
-    test: 1mm + 1cm;
-    test: 1cm + 1mm;
-}
-
-#modulo {
-    test: 3 % 2;
-    test: 4cm % 3;
-}
-
-#colors {
-    color: red + rgb(1,2,3);
-    color: red - rgb(1,2,3);
-    color: rgba(1,2,3, 0.5) * rgba(3,4,5, 0.5);
-    color: rgba(10,15,20, 0.5) / rgba(2,2,2, 0.5);
-
-    color: rgba(1,2,3, 0.5) * 2;
-    color: rgba(1,2,3, 0.5) / 2;
-    color: rgba(1,2,3, 0.5) + 2;
-    color: rgba(1,2,3, 0.5) - 2;
-
-    color: blue + 34;
-
-    color: #fff == #000;
-    color: #fff == #fff;
-
-    color: #fff != #000;
-    color: #fff != #fff;
-}
-
-
-#preserve {
-    hello: what -going;
-    hello: what - going;
-}
-
-#strings {
-    hello: what -going;
-
-    hello: what +going;
-    hello: what+going;
-    hello: what+ going;
-    hello: what + going;
-
-    hello: "what" + going;
-    hello: going + "what";
-    hello: "what" + "what";
-}
-
-#negation {
-    $num: 100;
-    a: -$num + 40;
-    b: 10 -$num;
-    b: 10 - $num;
-}
-
-#bools-fail {
-    and: false and two;
-    and: one and two;
-    and: one and false;
-
-    or: false or two;
-    or: one or two;
-    or: one or false;
-}
-
-#bools {
-    and: (false and two);
-    and: (one and two);
-    and: (one and false);
-
-    or: (false or two);
-    or: (one or two);
-    or: (one or false);
-}
-
-
-#nots-fail {
-    not: not true + 2;
-    not: not false;
-    not: not 0;
-    not: not 1;
-    not: not "";
-    not: not hello;
-}
-
-#nots {
-    not: (not true) + 2;
-    not: (not false);
-    not: (not 0);
-    not: (not 1);
-    not: (not "");
-    not: (not hello);
-}
-
-#string-test {
-    str: hi == "hi";
-    str: hi == "no";
-    str: 'yes' == 'yes';
-
-    $var1: "hello";
-    $var2: hello;
-
-    str: "#{$var1}" == '#{$var2}';
-
-    str: xhello#{$var1}x == "x#{$var2}hellox"; // xhellohellofalse
-
-    str: unit(10px) == px;
-}
-
-
-#special {
-  cancel-unit: (10px / 10px);
-}
-
-
diff --git a/vendor/leafo/scssphp/tests/inputs/placeholder_selector.scss b/vendor/leafo/scssphp/tests/inputs/placeholder_selector.scss
deleted file mode 100644
index da3cda1e5e90ffafae0b118a27f9ea46d991fcc0..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/placeholder_selector.scss
+++ /dev/null
@@ -1,18 +0,0 @@
-#context a%extreme span {
-    color: blue;
-    font-weight: bold;
-    font-size: 2em;
-}
-
-.notice, .error { @extend %extreme; }
-
-.hidden %placeholder {
-    margin: 0;
-}
-
-p {
-    @extend #context;
-    padding: 2em;
-}
-
-div { @extend .hidden; }
\ No newline at end of file
diff --git a/vendor/leafo/scssphp/tests/inputs/scss_css.scss b/vendor/leafo/scssphp/tests/inputs/scss_css.scss
deleted file mode 100644
index 03d63d04700b9073e6e67f797cf5bf48df614443..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/scss_css.scss
+++ /dev/null
@@ -1,986 +0,0 @@
-[foo~=bar] {
-  a: b; }
-
-
-[foo^=bar] {
-  a: b; }
-
-
-[foo$=bar] {
-  a: b; }
-
-
-[foo*=bar] {
-  a: b; }
-
-
-[foo|=en] {
-  a: b; }
-
-
-foo {
-  a: 2;
-  b: 2.3em;
-  c: 50%;
-  d: "fraz bran";
-  e: flanny-blanny-blan;
-  f: url(http://sass-lang.com);
-  // g: U+ffa?;
-  h: #aabbcc; }
-
-
-selector {
-  property: value;
-  property2: value; }
-
-
-sel{p:v}
-
-.foo {
-  /* Foo
-Bar
-  Baz */
-  a: b; }
-
-
-.foo {
-    /* Foo
-Bar
-  Baz */
-  a: b; }
-
-
-.foo {/* Foo
-   Bar */
-  a: b; }
-
-
-.foo {/* Foo
-   Bar
-  Baz */
-  a: b; }
-
-
-@foo {
-  rule {
-    a: b; }
-
-  a: b; }
-
-
-@foo {a:b};
-@bar {a:b};
-
-
-@foo "bar"
-
-foo {
-  a: 12px calc(100%/3 - 2*1em - 2*1px);
-  b: 12px -moz-calc(100%/3 - 2*1em - 2*1px);
-  b: 12px -webkit-calc(100%/3 - 2*1em - 2*1px);
-  b: 12px -foobar-calc(100%/3 - 2*1em - 2*1px); }
-
-
-foo {bar: baz}
-<!--
-bar {bar: baz}
--->
-baz {bar: baz}
-
-
-/*
- * foo
- */
-bar {baz: bang}
-
-
-E, F {
-  a: b; }
-
-
-E F, G H {
-  a: b; }
-
-
-E > F, G > H {
-  a: b; }
-
-
-/* This is a CSS comment. */
-.one {color: green;} /* Another comment */
-/* The following should not be used:
-.two {color: red;} */
-.three {color: green; /* color: red; */}
-/**
-.four {color: red;} */
-.five {color: green;}
-/**/
-.six {color: green;}
-/*********/
-.seven {color: green;}
-/* a comment **/
-.eight {color: green;}
-
-
-foo {
-  a: \foo bar;
-  b: foo\ bar;
-  c: \2022 \0020;
-  d: foo\\bar;
-  e: foo\"\'bar; }
-
-
-foo {
-  a: "\foo bar";
-  b: "foo\ bar";
-  c: "\2022 \0020";
-  d: "foo\\bar";
-  e: "foo\"'bar"; }
-
-
-foo {
-  _name: val;
-  *name: val;
-  :name: val;
-  .name: val;
-  #name: val;
-  name/**/: val;
-  name/*\**/: val;
-  name: val; }
-
-
-@foo    "bar"  ;
-
-foo {
-  a: -moz-element(#foo);
-  b: -webkit-element(#foo);
-  b: -foobar-element(#foo); }
-
-
-@foo {}
-
-@foo {
-}
-
-
-@foo;
-
-foo {;;;;
-  bar: baz;;;;
-  ;;}
-
-
-#foo .bar {}
-
-#foo .bar {
-}
-
-
-0% {
-  a: b; }
-
-
-60% {
-  a: b; }
-
-
-100% {
-  a: b; }
-
-
-12px {
-  a: b; }
-
-
-"foo" {
-  a: b; }
-
-
-foo {
-  a: 12px expression(1 + (3 / Foo.bar("baz" + "bang") + function() {return 12;}) % 12); }
-
-
-:foo("bar") {
-  a: b; }
-
-
-:foo(bar) {
-  a: b; }
-
-
-:foo(12px) {
-  a: b; }
-
-
-:foo(+) {
-  a: b; }
-
-
-:foo(-) {
-  a: b; }
-
-
-:foo(+"bar") {
-  a: b; }
-
-
-:foo(-++--baz-"bar"12px) {
-  a: b; }
-
-
-foo {
-  a: foo-bar(12);
-  b: -foo-bar-baz(13, 14 15); }
-
-
-@import "foo.css";
-
-@import 'foo.css';
-
-@import url("foo.css");
-
-@import url('foo.css');
-
-@import url(foo.css);
-
-@import "foo.css" screen;
-
-@import "foo.css" screen, print;
-
-@import "foo.css" screen, print and (foo: 0);
-
-@import "foo.css" screen, only print, screen and (foo: 0);
-
-foo {
-  a: foo !important;
-  b: foo bar !important;
-  b: foo, bar !important; }
-
-
-foo {
-  a: -moz-bar-baz;
-  b: foo -o-bar-baz; }
-
-
-foo {a: /* b; c: */ d}
-
-
-foo {a /*: b; c */: d}
-
-
-/* Foo
- * Bar */
-
-
-.foo {
-  /* Foo
-   * Bar */ }
-
-
-[foo] {
-  a: b; }
-
-
-[foo="bar"] {
-  a: b; }
-
-
-[foo~="bar"] {
-  a: b; }
-
-
-[foo^="bar"] {
-  a: b; }
-
-
-[foo$="bar"] {
-  a: b; }
-
-
-[foo*="bar"] {
-  a: b; }
-
-
-[foo|="en"] {
-  a: b; }
-
-
-:root {
-  a: b; }
-
-
-:nth-child(n) {
-  a: b; }
-
-
-:nth-last-child(n) {
-  a: b; }
-
-
-:nth-of-type(n) {
-  a: b; }
-
-
-:nth-last-of-type(n) {
-  a: b; }
-
-
-:first-child {
-  a: b; }
-
-
-:last-child {
-  a: b; }
-
-
-:first-of-type {
-  a: b; }
-
-
-:last-of-type {
-  a: b; }
-
-
-:only-child {
-  a: b; }
-
-
-:only-of-type {
-  a: b; }
-
-
-:empty {
-  a: b; }
-
-
-:link {
-  a: b; }
-
-
-:visited {
-  a: b; }
-
-
-:active {
-  a: b; }
-
-
-:hover {
-  a: b; }
-
-
-:focus {
-  a: b; }
-
-
-:target {
-  a: b; }
-
-
-:lang(fr) {
-  a: b; }
-
-
-:enabled {
-  a: b; }
-
-
-:disabled {
-  a: b; }
-
-
-:checked {
-  a: b; }
-
-
-::first-line {
-  a: b; }
-
-
-::first-letter {
-  a: b; }
-
-
-::before {
-  a: b; }
-
-
-::after {
-  a: b; }
-
-
-.warning {
-  a: b; }
-
-
-#myid {
-  a: b; }
-
-
-:not(s) {
-  a: b; }
-
-
-@media all {
-  rule1 {
-    prop: val; }
-
-  rule2 {
-    prop: val; } }
-
-
-@media screen, print {
-  rule1 {
-    prop: val; }
-
-  rule2 {
-    prop: val; } }
-
-
-@media screen and (-webkit-min-device-pixel-ratio:0) {
-  a: b; }
-
-
-@media only screen, print and (foo: 0px) and (bar: flam(12px solid)) {
-  a: b; }
-
-
-:-moz-any(h1, h2, h3) {
-  a: b; }
-
-
-:-moz-any(.foo) {
-  a: b; }
-
-
-:-moz-any(foo bar, .baz > .bang) {
-  a: b; }
-
-
-@-moz-document url(http://www.w3.org/),
-               url-prefix(http://www.w3.org/Style/),
-               domain(mozilla.org),
-               regexp("^https:.*") {
-  .foo {a: b}
-}
-
-
-foo {
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr=#c0ff3300, endColorstr=#ff000000);
-  filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr=#c0ff3300, endColorstr=#ff000000); }
-
-
-foo {
-  filter: alpha(opacity=20);
-  filter: alpha(opacity=20, enabled=true);
-  filter: blaznicate(foo=bar, baz=bang bip, bart=#fa4600); }
-
-
-@foo bar {
-  a: b; }
-
-@bar baz {
-  c: d; }
-
-
-@foo bar;
-@bar baz;
-
-
-/* Foo
- * Bar */
-/* Baz
- * Bang */
-
-
-.foo {
-  /* Foo
-   * Bar */
-  /* Baz
-   * Bang */ }
-
-
-.foo {
-  /* Foo Bar *//* Baz Bang */ }
-
-
-@namespace "http://www.w3.org/Profiles/xhtml1-strict";
-
-@namespace url(http://www.w3.org/Profiles/xhtml1-strict);
-
-@namespace html url("http://www.w3.org/Profiles/xhtml1-strict");
-
-[foo|bar=baz] {
-  a: b; }
-
-
-[*|bar=baz] {
-  a: b; }
-
-
-[foo|bar|=baz] {
-  a: b; }
-
-
-foo|E {
-  a: b; }
-
-
-*|E {
-  a: b; }
-
-
-foo|* {
-  a: b; }
-
-
-*|* {
-  a: b; }
-
-
-:not(foo|bar) {
-  a: b; }
-
-
-:not(*|bar) {
-  a: b; }
-
-
-:not(foo|*) {
-  a: b; }
-
-
-:not(*|*) {
-  a: b; }
-
-
-:not(#blah) {
-  a: b; }
-
-
-:not(.blah) {
-  a: b; }
-
-
-:not([foo]) {
-  a: b; }
-
-
-:not([foo^="bar"]) {
-  a: b; }
-
-
-:not([baz|foo~="bar"]) {
-  a: b; }
-
-
-:not(:hover) {
-  a: b; }
-
-
-:not(:nth-child(2n + 3)) {
-  a: b; }
-
-
-:not(:not(#foo)) {
-  a: b; }
-
-
-:not(a#foo.bar) {
-  a: b; }
-
-
-:not(#foo .bar > baz) {
-  a: b; }
-
-
-:not(h1, h2, h3) {
-  a: b; }
-
-
-@mixin foo {
-  a: b; }
-
-
-foo {
-  a: "bang #{1 +    " bar "} bip"; }
-
-
-:nth-child(-n) {
-  a: b; }
-
-
-:nth-child(+n) {
-  a: b; }
-
-
-:nth-child(even) {
-  a: b; }
-
-
-:nth-child(odd) {
-  a: b; }
-
-
-:nth-child(50) {
-  a: b; }
-
-
-:nth-child(-50) {
-  a: b; }
-
-
-:nth-child(+50) {
-  a: b; }
-
-
-:nth-child(2n+3) {
-  a: b; }
-
-
-:nth-child(2n-3) {
-  a: b; }
-
-
-:nth-child(+2n-3) {
-  a: b; }
-
-
-:nth-child(-2n+3) {
-  a: b; }
-
-
-:nth-child(-2n+ 3) {
-  a: b; }
-
-
-:nth-child( 2n + 3 ) {
-  a: b; }
-
-
-foo {
-  a: foo bar baz;
-  b: foo, #aabbcc, -12;
-  c: 1px/2px/-3px;
-  d: foo bar, baz/bang; }
-
-
-@page {
-  prop1: val;
-  prop2: val; }
-
-
-@page flap {
-  prop1: val;
-  prop2: val; }
-
-
-@page :first {
-  prop1: val;
-  prop2: val; }
-
-
-@page flap:first {
-  prop1: val;
-  prop2: val; }
-
-
-.foo {
-  /* Foo */
-  a: b; }
-
-
-.foo {
-  /* Foo
-   * Bar */a: b; }
-
-
-/* Foo */
-.foo {
-  a: b; }
-
-
-/* Foo
- * Bar */.foo {
-  a: b; }
-
-
-.foo /* .a #foo */ #bar:baz(/* bang )*/ bip) {
-  a: b; }
-
-
-> E {
-  a: b; }
-
-
-+ E {
-  a: b; }
-
-
-~ E {
-  a: b; }
-
-
-> > E {
-  a: b; }
-
-
->> E {
-  a: b; }
-
-
-E* {
-  a: b; }
-
-
-E*.foo {
-  a: b; }
-
-
-E*:hover {
-  a: b; }
-
-
-E,
-F {
-  a: b; }
-
-
-E
-F {
-  a: b; }
-
-
-E, F
-G, H {
-  a: b; }
-
-
-body {
-  /*
-  //comment here
-  */
-}
-
-
-E>F { a: b;} 
-
-E~F { a: b;} 
-
-E+F { a: b;} 
-
-* {
-  a: b; }
-
-
-E {
-  a: b; }
-
-
-E[foo] {
-  a: b; }
-
-
-E[foo="bar"] {
-  a: b; }
-
-
-E[foo~="bar"] {
-  a: b; }
-
-
-E[foo^="bar"] {
-  a: b; }
-
-
-E[foo$="bar"] {
-  a: b; }
-
-
-E[foo*="bar"] {
-  a: b; }
-
-
-E[foo|="en"] {
-  a: b; }
-
-
-E:root {
-  a: b; }
-
-
-E:nth-child(n) {
-  a: b; }
-
-
-E:nth-last-child(n) {
-  a: b; }
-
-
-E:nth-of-type(n) {
-  a: b; }
-
-
-E:nth-last-of-type(n) {
-  a: b; }
-
-
-E:first-child {
-  a: b; }
-
-
-E:last-child {
-  a: b; }
-
-
-E:first-of-type {
-  a: b; }
-
-
-E:last-of-type {
-  a: b; }
-
-
-E:only-child {
-  a: b; }
-
-
-E:only-of-type {
-  a: b; }
-
-
-E:empty {
-  a: b; }
-
-
-E:link {
-  a: b; }
-
-
-E:visited {
-  a: b; }
-
-
-E:active {
-  a: b; }
-
-
-E:hover {
-  a: b; }
-
-
-E:focus {
-  a: b; }
-
-
-E:target {
-  a: b; }
-
-
-E:lang(fr) {
-  a: b; }
-
-
-E:enabled {
-  a: b; }
-
-
-E:disabled {
-  a: b; }
-
-
-E:checked {
-  a: b; }
-
-
-E::first-line {
-  a: b; }
-
-
-E::first-letter {
-  a: b; }
-
-
-E::before {
-  a: b; }
-
-
-E::after {
-  a: b; }
-
-
-E.warning {
-  a: b; }
-
-
-E#myid {
-  a: b; }
-
-
-E:not(s) {
-  a: b; }
-
-
-E F {
-  a: b; }
-
-
-E > F {
-  a: b; }
-
-
-E + F {
-  a: b; }
-
-
-E ~ F {
-  a: b; }
-
-
-@supports (a: b) and (c: d) or (not (d: e)) and ((not (f: g)) or (not ((h: i) and (j: k)))) {
-  .foo {
-    a: b;
-  }
-}
-
-
-@-prefix-supports (a: b) and (c: d) or (not (d: e)) and ((not (f: g)) or (not ((h: i) and (j: k)))) {
-  .foo {
-    a: b;
-  }
-}
-
-
-foo {
-  foo: bar;
-  #baz: bang;
-  #bip: bop; }
-
-
-foo {
-  a: -2;
-  b: -2.3em;
-  c: -50%;
-  d: -foo(bar baz); }
-
-
-foo {
-  a: -0.5em;
-  b: +0.5em;
-  c: -foo(12px);
-  d: +foo(12px);
-  }
-
-
-@charset "UTF-8";
-
-foo {
-  -moz-foo-bar: blat;
-  -o-flat-blang: wibble; }
-
-
-foo {
-  a: foo();
-  b: bar baz-bang() bip; }
-
-
diff --git a/vendor/leafo/scssphp/tests/inputs/selectors.scss b/vendor/leafo/scssphp/tests/inputs/selectors.scss
deleted file mode 100644
index 01c7f8b692937833fdba0e32cb3bcb20e05df374..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/selectors.scss
+++ /dev/null
@@ -1,187 +0,0 @@
-* { color: blue; }
-E { color: blue; }
-
-E:not(:link) { color: blue; }
-E:not(:link):not(:visited) { color: blue; }
-E:not(:link, :visited) { color: blue; }
-E:matches(:hover, :focus) { color: blue; }
-
-E.warning { color: blue; }
-E#id { color: blue; }
-E[foo] { color: blue; }
-E[foo="barbar"] { color: blue; }
-E[foo="barbar" i] { color: blue; }
-E[foo~="hello#$@%@$#^"] { color: blue; }
-E[foo^="color: green;"] { color: blue; }
-E[foo$="239023"] { color: blue; }
-E[foo*="29302"] { color: blue; }
-E[foo|="239032"] { color: blue; }
-
-[foo] { color: blue; }
-[foo] .helloWorld { color: blue; }
-[foo].helloWorld { color: blue; }
-[foo="barbar"] { color: blue; }
-[foo~="hello#$@%@$#^"] { color: blue; }
-[foo^="color: green;"] { color: blue; }
-[foo$="239023"] { color: blue; }
-[foo*="29302"] { color: blue; }
-[foo|="239032"] { color: blue; }
-
-E:dir(ltr) { color: blue; }
-E:lang(en) { color: blue; }
-E:lang(en, fr) { color: blue; }
-
-E:any-link { color: blue; }
-E:link { color: blue; }
-E:visited { color: blue; }
-E:local-link { color: blue; }
-E:local-link(0) { color: red; }
-E:local-link(1) { color: white; }
-E:local-link(2) { color: red; }
-E:target { color: blue; }
-E:scope { color: blue; }
-
-E:current { color: blue; }
-E:current(:link) { color: blue; }
-E:past { color: blue; }
-E:future { color: blue; }
-
-E:active { color: blue; }
-E:hover { color: blue; }
-E:focus { color: blue; }
-E:enabled { color: blue; }
-E:disabled { color: blue; }
-E:indeterminate { color: blue; }
-E:default { color: blue; }
-E:in-range { color: blue; }
-E:out-of-range { color: blue; }
-E:required { color: blue; }
-E:optional { color: blue; }
-E:read-only { color: blue; }
-E:read-write { color: blue; }
-
-E:root { color: blue; }
-E:empty { color: blue; }
-E:first-child { color: blue; }
-E:nth-child(odd) { color: blue; }
-E:nth-child(2n+1) { color: blue; }
-E:nth-child(5) { color: blue; }
-E:last-child { color: blue; }
-E:nth-last-child(-n+2) { color: blue; }
-E:only-child { color: blue; }
-E:first-of-type { color: blue; }
-E:nth-of-type(2n) { color: blue; }
-E:last-of-type { color: blue; }
-E:nth-last-of-type(n) { color: blue; }
-E:only-of-type { color: blue; }
-E:nth-match(odd) { color: blue; }
-E:nth-last-match(odd) { color: blue; }
-
-E:column(n) { color: blue; }
-E:nth-column(n) { color: blue; }
-E:nth-last-column(n) { color: blue; }
-
-E F { color: blue; }
-E > F { color: blue; }
-E + F { color: blue; }
-E ~ F { color: blue; }
-E /foo/ F { color: blue; }
-E! > F { color: blue; }
-
-// namespaces
-[foo|att=val] { color: blue }
-[*|att] { color: yellow }
-[|att] { color: green }
-[att] { color: green }
-
-// CSS2.1
-E::first-line { color: blue; }
-E::first-letter { color: blue; }
-E::before { color: blue; }
-E::after { color: blue; }
-
-// CSS3 UI (at risk)
-E::choices { color: blue; }
-E::value { color: blue; }
-E::repeat-index { color: blue; }
-E::repeat-item { color: blue; }
-
-E:first { color: blue; }
-E:first-line { color: blue; }
-E:first-letter { color: blue; }
-E:before{ color: blue; }
-E:after { color: blue; }
-E:checked { color: blue; }
-E:invalid { color: blue; }
-E:valid { color: blue; }
-E:left { color: blue; }
-E:right { color: blue; }
-
-// -moz experimental
-E:any(ol) { color: blue; }
-E::selection { color: blue; }
-
-// one of these is nested property,
-// the other is a css block.
-div {
-  font:something {
-    size: 30em;
-  }
-
-  font: something {
-    size: 30em;
-  }
-
-}
-
-// self selector
-
-.something {
-    &.world {
-        color: blue;
-    }
-
-    & .mold {
-        height: 200px;
-    }
-
-    .dog & {
-        color: blue;
-    }
-}
-
-.simple {
-    .dad & .wolf {
-        color: blue;
-    }
-
-    .rad&.bad {
-        color: blue;
-    }
-
-}
-
-div {
-    .something & .what {
-        &.world {
-            color: blue;
-        }
-    }
-}
-
-div {
-    &.foo & {
-        color: blue;
-    }
-}
-
-.main, div {
-    .message div {
-        .title {
-            .nice-fonts & {
-                font-size: 24px;
-            }
-        }
-    }
-}
-
diff --git a/vendor/leafo/scssphp/tests/inputs/values.scss b/vendor/leafo/scssphp/tests/inputs/values.scss
deleted file mode 100644
index 559f95c4ab3b2c0a239debaf10b9595029ea51a9..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/values.scss
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#values {
-    color: #eee;
-    color: #eeeeee;
-    height: 20px;
-    width: 80%;
-    color: "hello world";
-    height: url("http://google.com");
-    dads: url(http://leafo.net);
-    padding: 10px 10px 10px 10px, 3px 3px 3px;
-    margin: 4,3,1;
-
-    border-radius: -1px -1px -1px black;
-}
-
-#subtraction {
-    lit: 10 -11;
-    lit: 10 - 11;
-    lit: 10- 11;
-    lit: 10-11;
-
-    $num: 100;
-    var: 10 -$num;
-    var: 10 - $num;
-    var: 10- $num;
-    var: 10-$num;
-}
-
-
-#special {
-  a: 12px expression(1 + (3 / Foo.bar("baz" + "bang") + function() {return 12;}) % 12);
-}
-
-#unary {
-    b: +0.5em;
-    c: -foo(12px);
-    d: +foo(12px);
-}
-
diff --git a/vendor/leafo/scssphp/tests/inputs/variables.scss b/vendor/leafo/scssphp/tests/inputs/variables.scss
deleted file mode 100644
index bebd4dc7822e0ec19bc475c4c917adda3bc19d2c..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/inputs/variables.scss
+++ /dev/null
@@ -1,56 +0,0 @@
-
-$color: red, two, three;
-
-div {
-    height: $color;
-}
-
-$a: 1000;
-
-div {
-    $a: 2000 !default;
-    num: $a;
-}
-
-div {
-    $b: 2000 !default;
-    num: $b;
-}
-
-$cool_color: null;
-$cool_color: blue !default;
-
-pre {
-    color: $cool_color;
-}
-
-$something_man: 100px;
-cool: $something_man;
-
-
-del {
-    $something: blue;
-
-    div {
-        $something: red;
-        pre {
-            color: $something;
-        }
-    }
-
-    color: $something;
-}
-
-$font-family-simple: Arial !default;
-$font-family-spaces: Helvetica Neue !default;
-$font-family-quotes: "Helvetica Neue" !default;
-$font-family-commas: Helvetica, Arial, sans-serif !default;
-$font-family-sans:      "Helvetica Neue", Helvetica, Arial, sans-serif !default;
-
-body {
-    font-family: $font-family-simple;
-    font-family: $font-family-spaces;
-    font-family: $font-family-quotes;
-    font-family: $font-family-commas;
-    font-family: $font-family-sans;
-}
diff --git a/vendor/leafo/scssphp/tests/outputs/builtins.css b/vendor/leafo/scssphp/tests/outputs/builtins.css
deleted file mode 100644
index b7884c2efa31adb515d6074ca2d2823a87b3be17..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/builtins.css
+++ /dev/null
@@ -1,126 +0,0 @@
-#color {
-  color: #22ea18;
-  red: 34;
-  green: 234;
-  blue: 24;
-  color: rgba(1, 2, 4, 0.5);
-  a1: 1;
-  a2: 0.5;
-  mix: #020304;
-  rgba: rgba(170, 119, 204, 0.4);
-  rgba: rgba(170, 119, 204, 0.4); }
-
-#hsl {
-  color: #79c653;
-  color: rgba(121, 198, 83, 0.5);
-  hue: 100deg;
-  sat: 50%;
-  lig: 55%; }
-
-#more-color {
-  light: #7e3d9e;
-  dark: #432154;
-  sat: #632782;
-  desat: #5e3871;
-  gray: #545454;
-  comp: #48792f;
-  inv: #9fd086; }
-
-#more-more-color {
-  op: 0.5;
-  opacify: rgba(1, 2, 3, 0.6);
-  opacify: rgba(1, 2, 3, 0.6);
-  transparentize: rgba(1, 2, 3, 0.4);
-  transparentize: rgba(1, 2, 3, 0.4);
-  transparentize: rgba(52, 130, 3, 0.9); }
-
-#more-more-more-color {
-  color: rgba(65, 110, 79, 0.4);
-  color: rgba(20, 255, 216, 0);
-  color: rgba(55, 100, 69, 0.4);
-  color: rgba(0, 255, 213, 0);
-  color: rgba(145, 10, 10, 0);
-  color: rgba(5, 10, 10, 0);
-  color: rgba(145, 145, 145, 0);
-  color: rgba(5, 5, 5, 0);
-  color: #000A0A0A;
-  color: #FFAABBCC; }
-
-#string {
-  color: hello what is going on;
-  color: "yeah";
-  color: "I do?"; }
-
-#number {
-  color: 250%;
-  color: 3;
-  color: 3;
-  color: 4;
-  top: 10px;
-  top: 1ex;
-  width: 200%;
-  bottom: 10px;
-  padding: 3em 1in 96px 72pt; }
-
-#list {
-  len: 3;
-  len: 1;
-  n: hello;
-  hello: one, two, three, hello;
-  hello: one, two, three, hello, world, what, is, going;
-  hello: one, two, three, hello;
-  index: 2;
-  index: false;
-  index: 3;
-  index: 1;
-  index: false;
-  index: 1;
-  index: false;
-  index: 2;
-  index: 2;
-  index: 1;
-  world: one, two, three, great, job;
-  world: one, two, three, great job;
-  cool: one two three great job;
-  cool: great job one two three;
-  zip: 1px solid, 2px dashed;
-  zip: 1px solid red, 2px dashed green; }
-
-#introspection {
-  t: number;
-  t: string;
-  t: string;
-  t: bool;
-  t: color;
-  t: color;
-  t: list;
-  u: "";
-  u: "px";
-  u: "em";
-  l: true;
-  l: false;
-  c: true;
-  c: false;
-  c: true;
-  c: true;
-  c: false;
-  c: true; }
-
-#if {
-  color: yes;
-  color: no;
-  color: yes;
-  color: yes; }
-
-.transparent {
-  r: 0;
-  g: 0;
-  b: 0;
-  a: 0; }
-
-.alpha {
-  a: 1;
-  a: 1;
-  a: 1;
-  a: 0.5;
-  a: alpha(currentColor); }
diff --git a/vendor/leafo/scssphp/tests/outputs/comments.css b/vendor/leafo/scssphp/tests/outputs/comments.css
deleted file mode 100644
index 751ddfe45357ddf3a7b79348d443138af628c854..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/comments.css
+++ /dev/null
@@ -1,19 +0,0 @@
-/** what the heck **/
-/**
-
-Here is a block comment
-
-**/
-/*hello*/
-div {
-  /* another property */
-  border: 1px solid red;
-  color: url('http://mage-page.com');
-  string: "hello /* this is not a comment */";
-  world: "// neither is this";
-  /*what if this is a comment */
-  string: 'hello /* this is not a comment */';
-  world: '// neither is this';
-  what-ever: 100px;
-  /*this is not a comment?*/
-  background: url(); }
diff --git a/vendor/leafo/scssphp/tests/outputs/compass_extract.css b/vendor/leafo/scssphp/tests/outputs/compass_extract.css
deleted file mode 100644
index 8ae7f3791f411b89bbfce39463a2318d0978c20d..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/compass_extract.css
+++ /dev/null
@@ -1,28 +0,0 @@
-#test-0 {
-  unit: false;
-  unit: true;
-  rhythm: 1.5em;
-  size: 1;
-  size: 1;
-  size: 1;
-  size: 2;
-  size: 2; }
-
-#test-1 {
-  margin-top: 7.5em;
-  padding-top: 9em;
-  padding-bottom: 10.5em;
-  margin-bottom: 0em; }
-
-#test-2 {
-  border-style: solid;
-  border-width: 0.0625em;
-  padding: 1.4375em; }
-
-#test-3 {
-  border-top-style: solid;
-  border-top-width: 0.0625em;
-  padding-top: 1.4375em;
-  border-bottom-style: solid;
-  border-bottom-width: 0.0625em;
-  padding-bottom: 1.4375em; }
diff --git a/vendor/leafo/scssphp/tests/outputs/content.css b/vendor/leafo/scssphp/tests/outputs/content.css
deleted file mode 100644
index 6657a2167def13ee02b63511b6061207341e4159..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/content.css
+++ /dev/null
@@ -1,29 +0,0 @@
-* html #logo {
-  background-image: url(/logo.gif); }
-
-.colors {
-  background-color: blue;
-  color: white;
-  border-color: blue; }
-
-@media only screen and (max-width: 480px) {
-  body {
-    color: red; } }
-
-#sidebar {
-  width: 300px; }
-  @media only screen and (max-width: 480px) {
-  #sidebar {
-    width: 100px; } }
-
-@media only screen and (min-width: 40em) {
-  .grid-1 {
-    width: 100%; }
-    .grid-2 {
-      width: 100%; } }
-
-@media only screen and (min-width: 40em) {
-  .grid-1 {
-    width: 100%; }
-    .grid-2 {
-      width: 100%; } }
diff --git a/vendor/leafo/scssphp/tests/outputs/content_with_function.css b/vendor/leafo/scssphp/tests/outputs/content_with_function.css
deleted file mode 100644
index 185fe66600eaf3a57ebe59e2e5bb2e1eb24add38..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/content_with_function.css
+++ /dev/null
@@ -1,2 +0,0 @@
-body {
-  padding: 1 px; }
diff --git a/vendor/leafo/scssphp/tests/outputs/default_args.css b/vendor/leafo/scssphp/tests/outputs/default_args.css
deleted file mode 100644
index 19379e0c906a6e94f05e247c2c8f63490b2b23a3..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/default_args.css
+++ /dev/null
@@ -1,3 +0,0 @@
-div {
-  height: red;
-  margin: 100px; }
diff --git a/vendor/leafo/scssphp/tests/outputs/directives.css b/vendor/leafo/scssphp/tests/outputs/directives.css
deleted file mode 100644
index 2b7155820f5504262bfe529cb57aa734446178a7..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/directives.css
+++ /dev/null
@@ -1,77 +0,0 @@
-@charset "hello-world";
-@page :left {
-  div {
-    color: red; } }
-
-@page test {
-  @media yes {
-    div {
-      color: red; } } }
-
-@media something {
-  @page {
-    @media else {
-      div {
-        height: 200px; } } } }
-
-div {
-  color: red; }
-  @page yeah {
-  div pre {
-    height: 20px; } }
-
-@font-face {
-  color: red;
-  height: 20px; }
-
-@keyframes 'bounce' {
-  from {
-    top: 100px;
-    animation-timing-function: ease-out; }
-
-  25% {
-    top: 50px;
-    animation-timing-function: ease-in; }
-
-  50% {
-    top: 100px;
-    animation-timing-function: ease-out; }
-
-  75% {
-    top: 75px;
-    animation-timing-function: ease-in; }
-
-  to {
-    top: 100px; } }
-
-@-webkit-keyframes flowouttoleft {
-  0% {
-    -webkit-transform: translateX(0) scale(1); }
-
-  60%, 70% {
-    -webkit-transform: translateX(0) scale(0.7); }
-
-  100% {
-    -webkit-transform: translateX(-100%) scale(0.7); } }
-
-div {
-  animation-name: 'diagonal-slide';
-  animation-duration: 5s;
-  animation-iteration-count: 10; }
-
-@keyframes 'diagonal-slide' {
-  from {
-    left: 0;
-    top: 0; }
-
-  to {
-    left: 100px;
-    top: 100px; } }
-
-@document url(http://www.w3.org/),
-          url-prefix(http://www.w3.org/Style/),
-          domain(mozilla.org),
-          regexp("https:.*") {
-  body {
-    color: purple;
-    background: yellow; } }
diff --git a/vendor/leafo/scssphp/tests/outputs/extends.css b/vendor/leafo/scssphp/tests/outputs/extends.css
deleted file mode 100644
index e40cd8671d2085a9447c56a64b7fca19ca01a08e..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/extends.css
+++ /dev/null
@@ -1,87 +0,0 @@
-error, pre seriousError, span seriousError, other, hello {
-  border: 1px #f00;
-  background-color: #fdd; }
-
-pre seriousError, span seriousError {
-  font-size: 20px; }
-
-hello {
-  color: green; }
-  hello div {
-    margin: 10px; }
-
-.cool, .me {
-  color: red; }
-
-.blue, .me {
-  color: purple; }
-
-a:hover, .hoverlink, #demo .overview .fakelink:hover {
-  text-decoration: underline; }
-
-div.hello.world.hmm, pre div.okay.span.world.hmm, pre #butt .umm div.sure.span.world.hmm, #butt .umm pre div.sure.span.world.hmm, code div.okay.span.world.hmm, code #butt .umm div.sure.span.world.hmm, #butt .umm code div.sure.span.world.hmm {
-  color: blue; }
-
-.xxxxx .xxxxx .xxxxx, code .xxxxx .xxxxx, code code .xxxxx, code code code, code .xxxxx code, .xxxxx code .xxxxx, .xxxxx code code, .xxxxx .xxxxx code {
-  color: green; }
-
-code {
-  color: red; }
-
-.alpha, .beta, .gama {
-  color: red; }
-
-.beta, .gama {
-  color: white; }
-
-.gama {
-  color: blue; }
-
-#admin .tabbar a, #admin .tabbar #demo .overview .fakelink, #demo .overview #admin .tabbar .fakelink {
-  font-weight: bold; }
-
-a1 b1 c1 d1, x1 y1 z1 w1 b1 c1 d1 {
-  color: red; }
-
-a2 b2 c2 d2, a2 x2 y2 z2 w2 c2 d2, x2 y2 z2 a2 w2 c2 d2 {
-  color: red; }
-
-a3 b3 c3 d3, a3 b3 x3 y3 z3 w3 d3, x3 y3 z3 a3 b3 w3 d3 {
-  color: red; }
-
-a4 b4 c4 d4, a4 b4 c4 x4 y4 z4 w4, x4 y4 z4 a4 b4 c4 w4 {
-  color: red; }
-
-#butt .yeah .okay, #butt .yeah .umm .sure, #butt .umm .yeah .sure {
-  font-weight: bold; }
-
-a9 b9 s9 t9 v9, a9 b9 s9 t9 x9 y9 z9, a9 b9 x9 y9 s9 t9 z9 {
-  color: red; }
-
-@media print {
-  horse, man {
-    color: blue; } }
-
-man {
-  color: red; }
-
-wassup {
-  color: blue; }
-
-.foo .wassup {
-  color: blue; }
-
-#something, .x, .y {
-  color: red; }
-
-.nav-justified, .nav-tabs.nav-justified {
-  text-align: justify; }
-
-.btn:hover, .edit .actions button:hover, .edit .new .actions button:hover, .btn:active, .edit .actions button:active, .edit .new .actions button:active, .btn.active, .edit .actions button.active, .edit .new .actions button.active, .btn.disabled, .edit .actions button.disabled, .edit .new .actions button.disabled, .btn[disabled], .edit .actions button[disabled], .edit .new .actions button[disabled] {
-  color: red; }
-
-.edit .actions button {
-  float: right; }
-
-.edit .new .actions {
-  padding: 0; }
diff --git a/vendor/leafo/scssphp/tests/outputs/filter_effects.css b/vendor/leafo/scssphp/tests/outputs/filter_effects.css
deleted file mode 100644
index 7d0bee839c36a0c2b874931156510f68b21dd805..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/filter_effects.css
+++ /dev/null
@@ -1,20 +0,0 @@
-#number {
-  -webkit-filter: grayscale(1) sepia(0.5) saturate(0.1) invert(1) opacity(0.5) brightness(0.5) contrast(0.5); }
-
-#percentage {
-  -webkit-filter: grayscale(100%) sepia(50%) saturate(10%) invert(100%) opacity(50%) brightness(50%) contrast(50%); }
-
-#misc {
-  -webkit-filter: hue-rotate(90deg) blur(10px) drop-shadow(10px -16px 30px purple); }
-
-#decimal {
-  opacity: 0.5;
-  filter: alpha(opacity=50, style=1); }
-
-#percent {
-  opacity: 0.5;
-  filter: alpha(opacity=50); }
-
-.row {
-  background-color: #071c23;
-  color: #2284a1; }
diff --git a/vendor/leafo/scssphp/tests/outputs/functions.css b/vendor/leafo/scssphp/tests/outputs/functions.css
deleted file mode 100644
index a19ae74b8108284e778da01247e684aab0c9dcaf..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/functions.css
+++ /dev/null
@@ -1,22 +0,0 @@
-div {
-  color: 14px;
-  sum: 23; }
-
-div {
-  hello: 10 55;
-  hello: 1010 55;
-  hello: "hello 10 and 55"; }
-
-del {
-  color: 1000; }
-
-div {
-  hello: "hello foo and bar";
-  hello: "hello bar and default";
-  hello: "hello Alice, Bob, Tom"; }
-
-.foo {
-  test2: -moz-art; }
-
-div span {
-  height: 3px; }
diff --git a/vendor/leafo/scssphp/tests/outputs/ie7.css b/vendor/leafo/scssphp/tests/outputs/ie7.css
deleted file mode 100644
index 7196fb19ba28910a7526f06197312a1cf5a43d7c..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/ie7.css
+++ /dev/null
@@ -1,8 +0,0 @@
-#foo:before {
-  content: counter(item,".") ": "; }
-
-#bar:before {
-  content: counter(item,"."); }
-
-#fu:before {
-  content: counter(item); }
diff --git a/vendor/leafo/scssphp/tests/outputs/if.css b/vendor/leafo/scssphp/tests/outputs/if.css
deleted file mode 100644
index b9d05205b438f2a968becc329ef79d6c0dea1747..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/if.css
+++ /dev/null
@@ -1,21 +0,0 @@
-div {
-  color: blue; }
-
-pre {
-  val-1: "red";
-  val-2: "blue";
-  val-3: "blue";
-  val-4: "red";
-  val-5: "red"; }
-
-span {
-  color: blue;
-  height: 10px;
-  width: 20px; }
-
-div {
-  color: blue;
-  border-color: green; }
-
-del {
-  thing: no; }
diff --git a/vendor/leafo/scssphp/tests/outputs/if_on_null.css b/vendor/leafo/scssphp/tests/outputs/if_on_null.css
deleted file mode 100644
index 2dfca956d137763374572cbdc6b7e22f5ee22f42..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/if_on_null.css
+++ /dev/null
@@ -1,2 +0,0 @@
-body {
-  background-color: "red"; }
diff --git a/vendor/leafo/scssphp/tests/outputs/import.css b/vendor/leafo/scssphp/tests/outputs/import.css
deleted file mode 100644
index 5dfa477152e1b80a772ee181bbba2490b35e5303..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/import.css
+++ /dev/null
@@ -1,23 +0,0 @@
-@import "foo.css";
-@import "foo" screen;
-@import "http://foo.com/bar";
-@import url(foo);
-div {
-  height: 200px;
-  color: red; }
-
-pre {
-  color: red; }
-  pre div {
-    height: 200px;
-    color: red; }
-
-code div {
-  height: 200px;
-  color: red; }
-  code div {
-    height: 200px;
-    color: red; }
-
-#partial {
-  color: blue; }
diff --git a/vendor/leafo/scssphp/tests/outputs/interpolation.css b/vendor/leafo/scssphp/tests/outputs/interpolation.css
deleted file mode 100644
index 89dc81c98bc1efc0f067cb3fbe7811d5e76f3397..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/interpolation.css
+++ /dev/null
@@ -1,54 +0,0 @@
-div {
-  color: redwhite blue;
-  color: red white blue;
-  color: red whiteblue;
-  color: redwhiteblue;
-  color: ummyeahwhat;
-  color: stacked;
-  font-size: 10px/something;
-  font-size: 10px / something;
-  test: "whatworldwrong";
-  test: "whatworldwrong";
-  test: "whatworldwrong";
-  test: "what"world"wrong";
-  hi: "what is 16 end"; }
-
-pre var {
-  color: red; }
-  pre var dad {
-    color: red; }
-  pre bedvardad {
-    color: red; }
-
-cool .thing-1 {
-  color: red; }
-  cool .thing-2 {
-    color: red; }
-  cool .thing-3 {
-    color: red; }
-  cool .thing-4 {
-    color: red; }
-  cool .thing-5 {
-    color: red; }
-
-abcde {
-  color: red; }
-
-#hello, .world {
-  color: red; }
-
-#abchelloyeah, .coolworldyes {
-  color: red; }
-
-div.element:nth-child(2n) {
-  display: none; }
-
-div {
-  hello: world;
-  coolhello: world;
-  helloone: world;
-  twohelloone: world;
-  oneabtwo: cool;
-  hello-world: red;
-  hello-mold: white;
-  hello-hello: blue; }
diff --git a/vendor/leafo/scssphp/tests/outputs/keyword_args.css b/vendor/leafo/scssphp/tests/outputs/keyword_args.css
deleted file mode 100644
index 441c4ab3d53cf6d4aedf8cb4a0e8cbce63c806b2..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/keyword_args.css
+++ /dev/null
@@ -1,6 +0,0 @@
-pre {
-  out: alpha fort three palace; }
-
-div {
-  hello: 5;
-  world: -5; }
diff --git a/vendor/leafo/scssphp/tests/outputs/list.css b/vendor/leafo/scssphp/tests/outputs/list.css
deleted file mode 100644
index 4e5472963aca4fc2064753e1a422ede1cc022bfc..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/list.css
+++ /dev/null
@@ -1,7 +0,0 @@
-div {
-  padding: 10px 20px 30px 40px;
-  margin: 0 10px 10px 10px;
-  background: linear-gradient(black, white); }
-
-p {
-  background: linear-gradient(red, blue); }
diff --git a/vendor/leafo/scssphp/tests/outputs/looping.css b/vendor/leafo/scssphp/tests/outputs/looping.css
deleted file mode 100644
index db58f4aa2cb803401b6a80295b6e86086837a183..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/looping.css
+++ /dev/null
@@ -1,45 +0,0 @@
-div {
-  color: what;
-  color: is;
-  color: this;
-  font: what;
-  font: is;
-  font: this;
-  background: what;
-  background: is;
-  background: this;
-  border: what;
-  border: is;
-  border: this; }
-
-span {
-  color: 0;
-  color: 1;
-  color: 2;
-  color: 3;
-  color: 4;
-  color: 5;
-  color: 6;
-  color: 7;
-  color: 8;
-  color: 9;
-  color: 10; }
-
-pre {
-  color: 1;
-  color: 2;
-  color: 3;
-  color: 4;
-  height: 1;
-  height: 2;
-  height: 3;
-  height: 4;
-  height: 5;
-  cool: 10;
-  cool: 9;
-  cool: 8;
-  cool: 7;
-  cool: 6;
-  cool: 5;
-  cool: 4;
-  cool: 3; }
diff --git a/vendor/leafo/scssphp/tests/outputs/media.css b/vendor/leafo/scssphp/tests/outputs/media.css
deleted file mode 100644
index 662765273c981865da655589a99d92e91d96df2f..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/media.css
+++ /dev/null
@@ -1,103 +0,0 @@
-@media {
-  div {
-    color: blue; } }
-
-@media what {
-  div {
-    color: blue; } }
-
-@media (cool) {
-  div {
-    color: blue; } }
-
-@media (cool: blue) {
-  div {
-    color: blue; } }
-
-@media hello and (world) and (butt: man) {
-  div {
-    color: blue; } }
-
-@media (max-width: 940px) {
-  color: red; }
-
-@media not hello and (world) {
-  color: blue;
-    pre {
-      color: blue; } }
-  @media butt and (world) {
-    color: red;
-      div {
-        color: red; } }
-
-div {
-  color: blue; }
-  @media screen and (-webkit-min-device-pixel-ratio: 1.5) {
-  div .sidebar {
-    width: 500px; } }
-
-div {
-  position: absolute; }
-  @media screen {
-  div {
-    top: 0;
-    bottom: 8em;
-    color: red; }
-    div p {
-      margin: 5px; }
-
-    div .success {
-      color: green; } }
-
-.button {
-  width: 300px;
-  height: 100px;
-  background: #eee; }
-  .button :hover {
-    background: #aaa; }
-  @media only screen and (max-width: 300px) {
-  .button {
-    width: 100px;
-    height: 100px; } }
-
-code {
-  position: absolute; }
-  @media screen {
-  code {
-    height: 10px; }
-    code pre {
-      height: 20px; } }
-
-@media screen and (color: blue) {
-      dt {
-        height: 10px; } }
-
-@media screen {
-  .screen {
-    width: 12px; } }
-  @media only screen {
-  .only-screen {
-    height: 11px; } }
-
-@media only screen {
-  .only-screen {
-    width: 14px; } }
-  @media only screen {
-  .only-screen {
-    height: 16px; } }
-
-@media print {
-    .only-print {
-      height: 12px; } }
-
-@media screen {
-    .only-print {
-      height: 12px; } }
-
-@media not screen {
-    .not-screen {
-      height: 15px; } }
-
-@media only screen and (color: blue) and (width: 13) {
-      .only-screen {
-        height: 15px; } }
diff --git a/vendor/leafo/scssphp/tests/outputs/mixins.css b/vendor/leafo/scssphp/tests/outputs/mixins.css
deleted file mode 100644
index 92bb1c0f52a21874641627a8a9a0c547430524e1..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/mixins.css
+++ /dev/null
@@ -1,83 +0,0 @@
-div {
-  color: blue;
-  color: red; }
-  div pre {
-    height: 200px; }
-
-span {
-  color: blue; }
-  span div {
-    height: 20px; }
-
-html {
-  height: 43px; }
-
-del {
-  height: 20px; }
-
-div {
-  color: white;
-  color: blue;
-  color: white; }
-
-div {
-  background-image: linear-gradient(left top, red, green); }
-
-div {
-  -moz-box-shadow: 10px 10px 5px #888;
-  -webkit-box-shadow: 10px 10px 5px #888;
-  box-shadow: 10px 10px 5px #888;
-  -moz-box-shadow: inset 10px 10px #888, -10px -10px #f4f4f4;
-  -webkit-box-shadow: inset 10px 10px #888, -10px -10px #f4f4f4;
-  box-shadow: inset 10px 10px #888, -10px -10px #f4f4f4; }
-
-div p {
-  color: red;
-  color: blue; }
-  div p .class {
-    color: red; }
-    div p .class div {
-      height: 20px; }
-  div p div {
-    height: 20px; }
-  div p .top {
-    top: 0; }
-    div p .top div {
-      color: red; }
-
-div.mixin-content-simple {
-  color: red; }
-
-div.mixin-content-with-arg {
-  background: blue;
-  color: red; }
-
-div.mixin-content-with-arg {
-  background: purple;
-  height: 20px; }
-
-div.mixin-content-simple {
-  height: 43px; }
-
-div.mixin-content-simple {
-  color: orange; }
-  div.mixin-content-simple div {
-    height: 20px; }
-
-div.mixin-content-with-arg {
-  background: purple;
-  height: 43px; }
-
-div.mixin-content-with-arg {
-  background: purple;
-  color: orange; }
-  div.mixin-content-with-arg div {
-    height: 20px; }
-
-#please-wait {
-  background: url(/images/logo.png);
-  position: absolute;
-  top: 1em;
-  right: 0;
-  bottom: 3em;
-  left: 4em; }
diff --git a/vendor/leafo/scssphp/tests/outputs/nesting.css b/vendor/leafo/scssphp/tests/outputs/nesting.css
deleted file mode 100644
index 23be1881f5a8fd3809445313ec57961bbc055e39..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/nesting.css
+++ /dev/null
@@ -1,22 +0,0 @@
-div: blue;
-body {
-  color: red; }
-
-div {
-  color: red;
-  height: yes; }
-  div pre {
-    color: blue; }
-
-div {
-  font: 10px hello world;
-  font-size: 10px;
-  font-color: blue;
-  border-left: 1px solid blue;
-  border-right: 2px dashed green; }
-
-#nested-nesting {
-  bar: baz;
-  bang-bop: bar;
-  bang-bip: 1px;
-  bang-blat-baf: bort; }
diff --git a/vendor/leafo/scssphp/tests/outputs/null.css b/vendor/leafo/scssphp/tests/outputs/null.css
deleted file mode 100644
index b21aa46e22c090b6ca5cd6a86ab30b3e662c0773..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/null.css
+++ /dev/null
@@ -1,21 +0,0 @@
-.div {
-  one: null;
-  one: world;
-  one: NULL world;
-  one: a, b;
-  two: a, b; }
-
-p:before {
-  content: "I ate  pies!"; }
-
-.foo {
-  -webkit-border-radius: 10;
-  border-radius: 10; }
-
-.fu {
-  -webkit-border-radius: 20;
-  border-radius: 20; }
-
-.bar {
-  -webkit-border-top-left-radius: 30;
-  border-top-left-radius: 30; }
diff --git a/vendor/leafo/scssphp/tests/outputs/operators.css b/vendor/leafo/scssphp/tests/outputs/operators.css
deleted file mode 100644
index 3cae96a518e853144463c324c36da4d6f3939db8..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/operators.css
+++ /dev/null
@@ -1,105 +0,0 @@
-body {
-  color: 8;
-  color: 16;
-  height: 10px/10px;
-  color: 6px;
-  color: 5px;
-  bottom: 2px;
-  top: 1.5em;
-  left: -1cm;
-  top: 6.29921; }
-
-div {
-  color: false;
-  color: true;
-  color: true;
-  color: false;
-  color: what > 3; }
-
-#units {
-  test: 2.5748in;
-  test: 13mm;
-  test: 4em;
-  test: 11mm;
-  test: 1.1cm; }
-
-#modulo {
-  test: 1;
-  test: 1cm; }
-
-#colors {
-  color: #ff0203;
-  color: #fe0000;
-  color: rgba(3, 8, 15, 0.5);
-  color: rgba(5, 8, 10, 0.5);
-  color: rgba(2, 4, 6, 0.5);
-  color: rgba(1, 1, 2, 0.5);
-  color: rgba(3, 4, 5, 0.5);
-  color: rgba(0, 0, 1, 0.5);
-  color: #22f;
-  color: false;
-  color: true;
-  color: true;
-  color: false; }
-
-#preserve {
-  hello: what -going;
-  hello: what - going; }
-
-#strings {
-  hello: what -going;
-  hello: whatgoing;
-  hello: whatgoing;
-  hello: whatgoing;
-  hello: whatgoing;
-  hello: "whatgoing";
-  hello: goingwhat;
-  hello: "whatwhat"; }
-
-#negation {
-  a: -60;
-  b: 10 -100;
-  b: -90; }
-
-#bools-fail {
-  and: false and two;
-  and: one and two;
-  and: one and false;
-  or: false or two;
-  or: one or two;
-  or: one or false; }
-
-#bools {
-  and: false;
-  and: two;
-  and: false;
-  or: two;
-  or: one;
-  or: one; }
-
-#nots-fail {
-  not: false2;
-  not: not false;
-  not: not 0;
-  not: not 1;
-  not: not "";
-  not: not hello; }
-
-#nots {
-  not: false2;
-  not: true;
-  not: false;
-  not: false;
-  not: false;
-  not: false; }
-
-#string-test {
-  str: true;
-  str: false;
-  str: true;
-  str: true;
-  str: xhellohellofalse;
-  str: true; }
-
-#special {
-  cancel-unit: 1; }
diff --git a/vendor/leafo/scssphp/tests/outputs/placeholder_selector.css b/vendor/leafo/scssphp/tests/outputs/placeholder_selector.css
deleted file mode 100644
index 938ffeb30469753e3fb9df3be6c8c8acf65ed835..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/placeholder_selector.css
+++ /dev/null
@@ -1,7 +0,0 @@
-p a.notice span, p a.error span, #context a.notice span, #context a.error span {
-  color: blue;
-  font-weight: bold;
-  font-size: 2em; }
-
-p {
-  padding: 2em; }
diff --git a/vendor/leafo/scssphp/tests/outputs/scss_css.css b/vendor/leafo/scssphp/tests/outputs/scss_css.css
deleted file mode 100644
index 21af8e6bca4e86b93d10c2c727731773a4d06e98..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/scss_css.css
+++ /dev/null
@@ -1,741 +0,0 @@
-@import "foo.css";
-@import 'foo.css';
-@import url("foo.css");
-@import url('foo.css');
-@import url(foo.css);
-@import "foo.css" screen;
-@import "foo.css" screen, print;
-/* Foo
-   * Bar */
-/* Baz
-   * Bang */
-@charset "UTF-8";
-[foo~=bar] {
-  a: b; }
-
-[foo^=bar] {
-  a: b; }
-
-[foo$=bar] {
-  a: b; }
-
-[foo*=bar] {
-  a: b; }
-
-[foo|=en] {
-  a: b; }
-
-foo {
-  a: 2;
-  b: 2.3em;
-  c: 50%;
-  d: "fraz bran";
-  e: flanny-blanny-blan;
-  f: url(http://sass-lang.com);
-  h: #abc; }
-
-selector {
-  property: value;
-  property2: value; }
-
-sel {
-  p: v; }
-
-.foo {
-  a: b; }
-
-.foo {
-  a: b; }
-
-.foo {
-  a: b; }
-
-.foo {
-  a: b; }
-
-@foo {
-  a: b;
-  rule {
-    a: b; } }
-
-@foo {
-  a: b; }
-
-@bar {
-  a: b; }
-
-@foo "bar"
-
-foo {
-  a: 12px calc(100%/3 - 2*1em - 2*1px);
-  b: 12px -moz-calc(100%/3 - 2*1em - 2*1px);
-  b: 12px -webkit-calc(100%/3 - 2*1em - 2*1px);
-  b: 12px -foobar-calc(100%/3 - 2*1em - 2*1px); }
-
-foo {
-  bar: baz; }
-
-bar {
-  bar: baz; }
-
-baz {
-  bar: baz;
-  /*
- * foo
- */ }
-
-bar {
-  baz: bang; }
-
-E, F {
-  a: b; }
-
-E F, G H {
-  a: b; }
-
-E > F, G > H {
-  a: b;
-  /* This is a CSS comment. */ }
-
-.one {
-  color: green;
-  /* Another comment */
-  /* The following should not be used:
-.two {color: red;} */ }
-
-.three {
-  /* color: red; */
-  color: green;
-  /**
-.four {color: red;} */ }
-
-.five {
-  color: green;
-  /**/ }
-
-.six {
-  color: green;
-  /*********/ }
-
-.seven {
-  color: green;
-  /* a comment **/ }
-
-.eight {
-  color: green; }
-
-foo {
-  a: \foo bar;
-  b: foo\ bar;
-  c: \2022 \0020;
-  d: foo\\bar;
-  e: foo\"\'bar; }
-
-foo {
-  a: "\foo bar";
-  b: "foo\ bar";
-  c: "\2022 \0020";
-  d: "foo\\bar";
-  e: "foo\"'bar"; }
-
-foo {
-  _name: val;
-  *name: val;
-  :name: val;
-  .name: val;
-  #name: val;
-  name/**/: val;
-  name/*\**/: val;
-  name: val; }
-
-@foo "bar"  ;
-
-foo {
-  a: -moz-element(#foo);
-  b: -webkit-element(#foo);
-  b: -foobar-element(#foo); }
-
-@foo ;
-
-foo {
-  bar: baz; }
-
-0% {
-  a: b; }
-
-60% {
-  a: b; }
-
-100% {
-  a: b; }
-
-12px {
-  a: b; }
-
-"foo" {
-  a: b; }
-
-foo {
-  a: 12px expression(1 + (3 / Foo.bar("baz" + "bang") + function() {return 12;}) % 12); }
-
-:foo("bar") {
-  a: b; }
-
-:foo(bar) {
-  a: b; }
-
-:foo(12px) {
-  a: b; }
-
-:foo(+) {
-  a: b; }
-
-:foo(-) {
-  a: b; }
-
-:foo(+"bar") {
-  a: b; }
-
-:foo(-++--baz-"bar"12px) {
-  a: b; }
-
-foo {
-  a: foo-bar(12);
-  b: -foo-bar-baz(13, 14 15); }
-
-@import "foo.css" screen, print and (foo: 0);
-
-@import "foo.css" screen, only print, screen and (foo: 0);
-
-foo {
-  a: foo !important;
-  b: foo bar !important;
-  b: foo, bar !important; }
-
-foo {
-  a: -moz-bar-baz;
-  b: foo -o-bar-baz; }
-
-foo {
-  /* b; c: */
-  a: d; }
-
-foo {
-  /*: b; c */
-  a : d;
-  /* Foo
- * Bar */ }
-
-[foo] {
-  a: b; }
-
-[foo="bar"] {
-  a: b; }
-
-[foo~="bar"] {
-  a: b; }
-
-[foo^="bar"] {
-  a: b; }
-
-[foo$="bar"] {
-  a: b; }
-
-[foo*="bar"] {
-  a: b; }
-
-[foo|="en"] {
-  a: b; }
-
-:root {
-  a: b; }
-
-:nth-child(n) {
-  a: b; }
-
-:nth-last-child(n) {
-  a: b; }
-
-:nth-of-type(n) {
-  a: b; }
-
-:nth-last-of-type(n) {
-  a: b; }
-
-:first-child {
-  a: b; }
-
-:last-child {
-  a: b; }
-
-:first-of-type {
-  a: b; }
-
-:last-of-type {
-  a: b; }
-
-:only-child {
-  a: b; }
-
-:only-of-type {
-  a: b; }
-
-:empty {
-  a: b; }
-
-:link {
-  a: b; }
-
-:visited {
-  a: b; }
-
-:active {
-  a: b; }
-
-:hover {
-  a: b; }
-
-:focus {
-  a: b; }
-
-:target {
-  a: b; }
-
-:lang(fr) {
-  a: b; }
-
-:enabled {
-  a: b; }
-
-:disabled {
-  a: b; }
-
-:checked {
-  a: b; }
-
-::first-line {
-  a: b; }
-
-::first-letter {
-  a: b; }
-
-::before {
-  a: b; }
-
-::after {
-  a: b; }
-
-.warning {
-  a: b; }
-
-#myid {
-  a: b; }
-
-:not(s) {
-  a: b; }
-
-@media all {
-  rule1 {
-    prop: val; }
-
-  rule2 {
-    prop: val; } }
-
-@media screen, print {
-  rule1 {
-    prop: val; }
-
-  rule2 {
-    prop: val; } }
-
-@media screen and (-webkit-min-device-pixel-ratio: 0) {
-  a: b; }
-
-@media only screen, print and (foo: 0px) and (bar: flam(12px solid)) {
-  a: b; }
-
-:-moz-any(h1, h2, h3) {
-  a: b; }
-
-:-moz-any(.foo) {
-  a: b; }
-
-:-moz-any(foo bar, .baz > .bang) {
-  a: b; }
-
-@-moz-document url(http://www.w3.org/),
-               url-prefix(http://www.w3.org/Style/),
-               domain(mozilla.org),
-               regexp("^https:.*") {
-  .foo {
-    a: b; } }
-
-foo {
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr=#c0ff3300, endColorstr=#ff000000);
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr=#c0ff3300, endColorstr=#ff000000); }
-
-foo {
-  filter: alpha(opacity=20);
-  filter: alpha(opacity=20, enabled=true);
-  filter: blaznicate(foo=bar, baz=bang bip, bart=#fa4600); }
-
-@foo bar {
-  a: b; }
-
-@bar baz {
-  c: d; }
-
-@namespace "http://www.w3.org/Profiles/xhtml1-strict";
-
-@namespace url(http://www.w3.org/Profiles/xhtml1-strict);
-
-@namespace html url("http://www.w3.org/Profiles/xhtml1-strict");
-
-[foo|bar=baz] {
-  a: b; }
-
-[*|bar=baz] {
-  a: b; }
-
-[foo|bar|=baz] {
-  a: b; }
-
-foo|E {
-  a: b; }
-
-*|E {
-  a: b; }
-
-foo|* {
-  a: b; }
-
-*|* {
-  a: b; }
-
-:not(foo|bar) {
-  a: b; }
-
-:not(*|bar) {
-  a: b; }
-
-:not(foo|*) {
-  a: b; }
-
-:not(*|*) {
-  a: b; }
-
-:not(#blah) {
-  a: b; }
-
-:not(.blah) {
-  a: b; }
-
-:not([foo]) {
-  a: b; }
-
-:not([foo^="bar"]) {
-  a: b; }
-
-:not([baz|foo~="bar"]) {
-  a: b; }
-
-:not(:hover) {
-  a: b; }
-
-:not(:nth-child(2n + 3)) {
-  a: b; }
-
-:not(:not(#foo)) {
-  a: b; }
-
-:not(a#foo.bar) {
-  a: b; }
-
-:not(#foo .bar > baz) {
-  a: b; }
-
-:not(h1, h2, h3) {
-  a: b; }
-
-foo {
-  a: "bang 1 bar  bip"; }
-
-:nth-child(-n) {
-  a: b; }
-
-:nth-child(+n) {
-  a: b; }
-
-:nth-child(even) {
-  a: b; }
-
-:nth-child(odd) {
-  a: b; }
-
-:nth-child(50) {
-  a: b; }
-
-:nth-child(-50) {
-  a: b; }
-
-:nth-child(+50) {
-  a: b; }
-
-:nth-child(2n+3) {
-  a: b; }
-
-:nth-child(2n-3) {
-  a: b; }
-
-:nth-child(+2n-3) {
-  a: b; }
-
-:nth-child(-2n+3) {
-  a: b; }
-
-:nth-child(-2n+ 3) {
-  a: b; }
-
-:nth-child( 2n + 3) {
-  a: b; }
-
-foo {
-  a: foo bar baz;
-  b: foo, #abc, -12;
-  c: 1px/2px/-3px;
-  d: foo bar, baz/bang; }
-
-@page {
-  prop1: val;
-  prop2: val; }
-
-@page flap {
-  prop1: val;
-  prop2: val; }
-
-@page :first {
-  prop1: val;
-  prop2: val; }
-
-@page flap:first {
-  prop1: val;
-  prop2: val; }
-
-.foo {
-  a: b; }
-
-.foo {
-  a: b;
-  /* Foo */ }
-
-.foo {
-  a: b;
-  /* Foo
- * Bar */ }
-
-.foo {
-  a: b; }
-
-.foo #bar:baz(/* bang )*/ bip) {
-  a: b; }
-
-> E {
-  a: b; }
-
-+ E {
-  a: b; }
-
-~ E {
-  a: b; }
-
-> > E {
-  a: b; }
-
->> E {
-  a: b; }
-
-E* {
-  a: b; }
-
-E*.foo {
-  a: b; }
-
-E*:hover {
-  a: b; }
-
-E, F {
-  a: b; }
-
-E F {
-  a: b; }
-
-E, F G, H {
-  a: b; }
-
-E > F {
-  a: b; }
-
-E ~ F {
-  a: b; }
-
-E + F {
-  a: b; }
-
-* {
-  a: b; }
-
-E {
-  a: b; }
-
-E[foo] {
-  a: b; }
-
-E[foo="bar"] {
-  a: b; }
-
-E[foo~="bar"] {
-  a: b; }
-
-E[foo^="bar"] {
-  a: b; }
-
-E[foo$="bar"] {
-  a: b; }
-
-E[foo*="bar"] {
-  a: b; }
-
-E[foo|="en"] {
-  a: b; }
-
-E:root {
-  a: b; }
-
-E:nth-child(n) {
-  a: b; }
-
-E:nth-last-child(n) {
-  a: b; }
-
-E:nth-of-type(n) {
-  a: b; }
-
-E:nth-last-of-type(n) {
-  a: b; }
-
-E:first-child {
-  a: b; }
-
-E:last-child {
-  a: b; }
-
-E:first-of-type {
-  a: b; }
-
-E:last-of-type {
-  a: b; }
-
-E:only-child {
-  a: b; }
-
-E:only-of-type {
-  a: b; }
-
-E:empty {
-  a: b; }
-
-E:link {
-  a: b; }
-
-E:visited {
-  a: b; }
-
-E:active {
-  a: b; }
-
-E:hover {
-  a: b; }
-
-E:focus {
-  a: b; }
-
-E:target {
-  a: b; }
-
-E:lang(fr) {
-  a: b; }
-
-E:enabled {
-  a: b; }
-
-E:disabled {
-  a: b; }
-
-E:checked {
-  a: b; }
-
-E::first-line {
-  a: b; }
-
-E::first-letter {
-  a: b; }
-
-E::before {
-  a: b; }
-
-E::after {
-  a: b; }
-
-E.warning {
-  a: b; }
-
-E#myid {
-  a: b; }
-
-E:not(s) {
-  a: b; }
-
-E F {
-  a: b; }
-
-E > F {
-  a: b; }
-
-E + F {
-  a: b; }
-
-E ~ F {
-  a: b; }
-
-@supports (a: b) and (c: d) or (not (d: e)) and ((not (f: g)) or (not ((h: i) and (j: k)))) {
-  .foo {
-    a: b; } }
-
-@-prefix-supports (a: b) and (c: d) or (not (d: e)) and ((not (f: g)) or (not ((h: i) and (j: k)))) {
-  .foo {
-    a: b; } }
-
-foo {
-  foo: bar;
-  #baz: bang;
-  #bip: bop; }
-
-foo {
-  a: -2;
-  b: -2.3em;
-  c: -50%;
-  d: -foo(bar baz); }
-
-foo {
-  a: -0.5em;
-  b: 0.5em;
-  c: -foo(12px);
-  d: +foo(12px); }
-
-foo {
-  -moz-foo-bar: blat;
-  -o-flat-blang: wibble; }
-
-foo {
-  a: foo();
-  b: bar baz-bang() bip; }
diff --git a/vendor/leafo/scssphp/tests/outputs/selectors.css b/vendor/leafo/scssphp/tests/outputs/selectors.css
deleted file mode 100644
index f87383a0d894622287d52ba2b90cca51a7cdf0f5..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/selectors.css
+++ /dev/null
@@ -1,335 +0,0 @@
-* {
-  color: blue; }
-
-E {
-  color: blue; }
-
-E:not(:link) {
-  color: blue; }
-
-E:not(:link):not(:visited) {
-  color: blue; }
-
-E:not(:link, :visited) {
-  color: blue; }
-
-E:matches(:hover, :focus) {
-  color: blue; }
-
-E.warning {
-  color: blue; }
-
-E#id {
-  color: blue; }
-
-E[foo] {
-  color: blue; }
-
-E[foo="barbar"] {
-  color: blue; }
-
-E[foo="barbar" i] {
-  color: blue; }
-
-E[foo~="hello#$@%@$#^"] {
-  color: blue; }
-
-E[foo^="color: green;"] {
-  color: blue; }
-
-E[foo$="239023"] {
-  color: blue; }
-
-E[foo*="29302"] {
-  color: blue; }
-
-E[foo|="239032"] {
-  color: blue; }
-
-[foo] {
-  color: blue; }
-
-[foo] .helloWorld {
-  color: blue; }
-
-[foo].helloWorld {
-  color: blue; }
-
-[foo="barbar"] {
-  color: blue; }
-
-[foo~="hello#$@%@$#^"] {
-  color: blue; }
-
-[foo^="color: green;"] {
-  color: blue; }
-
-[foo$="239023"] {
-  color: blue; }
-
-[foo*="29302"] {
-  color: blue; }
-
-[foo|="239032"] {
-  color: blue; }
-
-E:dir(ltr) {
-  color: blue; }
-
-E:lang(en) {
-  color: blue; }
-
-E:lang(en, fr) {
-  color: blue; }
-
-E:any-link {
-  color: blue; }
-
-E:link {
-  color: blue; }
-
-E:visited {
-  color: blue; }
-
-E:local-link {
-  color: blue; }
-
-E:local-link(0) {
-  color: red; }
-
-E:local-link(1) {
-  color: white; }
-
-E:local-link(2) {
-  color: red; }
-
-E:target {
-  color: blue; }
-
-E:scope {
-  color: blue; }
-
-E:current {
-  color: blue; }
-
-E:current(:link) {
-  color: blue; }
-
-E:past {
-  color: blue; }
-
-E:future {
-  color: blue; }
-
-E:active {
-  color: blue; }
-
-E:hover {
-  color: blue; }
-
-E:focus {
-  color: blue; }
-
-E:enabled {
-  color: blue; }
-
-E:disabled {
-  color: blue; }
-
-E:indeterminate {
-  color: blue; }
-
-E:default {
-  color: blue; }
-
-E:in-range {
-  color: blue; }
-
-E:out-of-range {
-  color: blue; }
-
-E:required {
-  color: blue; }
-
-E:optional {
-  color: blue; }
-
-E:read-only {
-  color: blue; }
-
-E:read-write {
-  color: blue; }
-
-E:root {
-  color: blue; }
-
-E:empty {
-  color: blue; }
-
-E:first-child {
-  color: blue; }
-
-E:nth-child(odd) {
-  color: blue; }
-
-E:nth-child(2n+1) {
-  color: blue; }
-
-E:nth-child(5) {
-  color: blue; }
-
-E:last-child {
-  color: blue; }
-
-E:nth-last-child(-n+2) {
-  color: blue; }
-
-E:only-child {
-  color: blue; }
-
-E:first-of-type {
-  color: blue; }
-
-E:nth-of-type(2n) {
-  color: blue; }
-
-E:last-of-type {
-  color: blue; }
-
-E:nth-last-of-type(n) {
-  color: blue; }
-
-E:only-of-type {
-  color: blue; }
-
-E:nth-match(odd) {
-  color: blue; }
-
-E:nth-last-match(odd) {
-  color: blue; }
-
-E:column(n) {
-  color: blue; }
-
-E:nth-column(n) {
-  color: blue; }
-
-E:nth-last-column(n) {
-  color: blue; }
-
-E F {
-  color: blue; }
-
-E > F {
-  color: blue; }
-
-E + F {
-  color: blue; }
-
-E ~ F {
-  color: blue; }
-
-E /foo/ F {
-  color: blue; }
-
-E! > F {
-  color: blue; }
-
-[foo|att=val] {
-  color: blue; }
-
-[*|att] {
-  color: yellow; }
-
-[|att] {
-  color: green; }
-
-[att] {
-  color: green; }
-
-E::first-line {
-  color: blue; }
-
-E::first-letter {
-  color: blue; }
-
-E::before {
-  color: blue; }
-
-E::after {
-  color: blue; }
-
-E::choices {
-  color: blue; }
-
-E::value {
-  color: blue; }
-
-E::repeat-index {
-  color: blue; }
-
-E::repeat-item {
-  color: blue; }
-
-E:first {
-  color: blue; }
-
-E:first-line {
-  color: blue; }
-
-E:first-letter {
-  color: blue; }
-
-E:before {
-  color: blue; }
-
-E:after {
-  color: blue; }
-
-E:checked {
-  color: blue; }
-
-E:invalid {
-  color: blue; }
-
-E:valid {
-  color: blue; }
-
-E:left {
-  color: blue; }
-
-E:right {
-  color: blue; }
-
-E:any(ol) {
-  color: blue; }
-
-E::selection {
-  color: blue; }
-
-div {
-  font: something;
-  font-size: 30em; }
-  div font:something {
-    size: 30em; }
-
-.something.world {
-  color: blue; }
-  .something .mold {
-    height: 200px; }
-  .dog .something {
-    color: blue; }
-
-.dad .simple .wolf {
-  color: blue; }
-  .rad.simple.bad {
-    color: blue; }
-
-.something div .what.world {
-  color: blue; }
-
-div.foo div {
-  color: blue; }
-
-.nice-fonts .main .message div .title, .nice-fonts div .message div .title {
-  font-size: 24px; }
diff --git a/vendor/leafo/scssphp/tests/outputs/values.css b/vendor/leafo/scssphp/tests/outputs/values.css
deleted file mode 100644
index 830014f72c367a4e4aa2e5758a33aea82cbc3124..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/values.css
+++ /dev/null
@@ -1,29 +0,0 @@
-#values {
-  color: #eee;
-  color: #eee;
-  height: 20px;
-  width: 80%;
-  color: "hello world";
-  height: url("http://google.com");
-  dads: url(http://leafo.net);
-  padding: 10px 10px 10px 10px, 3px 3px 3px;
-  margin: 4, 3, 1;
-  border-radius: -1px -1px -1px black; }
-
-#subtraction {
-  lit: 10 -11;
-  lit: -1;
-  lit: -1;
-  lit: -1;
-  var: 10 -100;
-  var: -90;
-  var: -90;
-  var: -90; }
-
-#special {
-  a: 12px expression(1 + (3 / Foo.bar("baz" + "bang") + function() {return 12;}) % 12); }
-
-#unary {
-  b: 0.5em;
-  c: -foo(12px);
-  d: +foo(12px); }
diff --git a/vendor/leafo/scssphp/tests/outputs/variables.css b/vendor/leafo/scssphp/tests/outputs/variables.css
deleted file mode 100644
index 86763380c60e1fb9da964465f12203693913d54f..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/tests/outputs/variables.css
+++ /dev/null
@@ -1,24 +0,0 @@
-cool: 100px;
-div {
-  height: red, two, three; }
-
-div {
-  num: 1000; }
-
-div {
-  num: 2000; }
-
-pre {
-  color: blue; }
-
-del {
-  color: red; }
-  del div pre {
-    color: red; }
-
-body {
-  font-family: Arial;
-  font-family: Helvetica Neue;
-  font-family: "Helvetica Neue";
-  font-family: Helvetica, Arial, sans-serif;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
diff --git a/vendor/leafo/scssphp/todo b/vendor/leafo/scssphp/todo
deleted file mode 100644
index ab271c5eae23cdd6a61fe8e876d4df9af91a41ee..0000000000000000000000000000000000000000
--- a/vendor/leafo/scssphp/todo
+++ /dev/null
@@ -1,47 +0,0 @@
-
-* change all calls to reduce to not suppress division where appropriate
-* store count in elements so we can have position of compile time errors
-* failed parsing paths can add comments early
-
-* fix indentation for @content, see @content tests
-
-misc:
-
-# sequence merging:
-
-a b c d { color: red; }
-x y z w  { @extend a; }
-
-	a b c d, x y z w b c d { color: red; }
-
-
-a b c d { color: red; }
-x y z w  { @extend b; }
-
-	a b c d, a x y z w c d, x y z a w c d { color: red; }
-
-
-a b c d { color: red; }
-x y z w  { @extend c; }
-
-	a b c d, a b x y z w d, x y z a b w d { color: red; }
-
-	x y z a b w d
-
-	before: a b
-	after:  d
-	new: x y z w
-
-
-a b c d { color: red; }
-x y z w  { @extend d; }
-
-	a b c d, a b c x y z w, x y z a b c w { color: red; }
-
-
-->> new[:-1] . before . new[-1] . after
-	
-	new.len > 1
-	before not empty
-
-
diff --git a/vendor/pear-pear.php.net/PEAR/OS/Guess.php b/vendor/pear-pear.php.net/PEAR/OS/Guess.php
index d3f2cc764ebfde597f3b6442cdcc54dc6cb513f6..3fd4ab95835ea148ac977bf7ec37b3d67cd1b84c 100644
--- a/vendor/pear-pear.php.net/PEAR/OS/Guess.php
+++ b/vendor/pear-pear.php.net/PEAR/OS/Guess.php
@@ -10,7 +10,7 @@
  * @author     Gregory Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Guess.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since PEAR 0.1
  */
@@ -87,7 +87,7 @@
  * @author     Gregory Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 0.1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR.php b/vendor/pear-pear.php.net/PEAR/PEAR.php
index 2aa85259d62dc69c0cad3f38320bc82fdcf28af9..e6f8edc2aa9b88493ceda52223246cdc4b9c5cb4 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR.php
@@ -14,7 +14,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2010 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: PEAR.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -78,7 +78,7 @@ $GLOBALS['_PEAR_error_handler_stack']    = array();
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2006 The PHP Group
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @see        PEAR_Error
  * @since      Class available since PHP 4.0.2
@@ -689,7 +689,7 @@ class PEAR
     }
 
     /**
-    * OS independant PHP extension load. Remember to take care
+    * OS independent PHP extension load. Remember to take care
     * on the correct extension name for case sensitive OSes.
     *
     * @param string $ext The extension name
@@ -788,7 +788,7 @@ function _PEAR_call_destructors()
  * @author     Gregory Beaver <cellog@php.net>
  * @copyright  1997-2006 The PHP Group
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/manual/en/core.pear.pear-error.php
  * @see        PEAR::raiseError(), PEAR::throwError()
  * @since      Class available since PHP 4.0.2
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Autoloader.php b/vendor/pear-pear.php.net/PEAR/PEAR/Autoloader.php
index 0ed707ec842f577ca1649d74e0b4e3446170fb24..74a4f78bc5e426fa92a9d07147ee7ab2f6c4a627 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Autoloader.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Autoloader.php
@@ -10,7 +10,7 @@
  * @author     Stig Bakken <ssb@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Autoloader.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/manual/en/core.ppm.php#core.ppm.pear-autoloader
  * @since      File available since Release 0.1
  * @deprecated File deprecated in Release 1.4.0a1
@@ -45,7 +45,7 @@ require_once "PEAR.php";
  * @author Stig Bakken <ssb@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/manual/en/core.ppm.php#core.ppm.pear-autoloader
  * @since      File available since Release 0.1
  * @deprecated File deprecated in Release 1.4.0a1
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Builder.php b/vendor/pear-pear.php.net/PEAR/PEAR/Builder.php
index 90f3a1455524a48454e2d3dd17ea5897b6789660..88b7b61d35a662c30907c3f8485e7adefa696149 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Builder.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Builder.php
@@ -10,7 +10,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Builder.php 313024 2011-07-06 19:51:24Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  *
@@ -33,7 +33,7 @@ require_once 'PEAR/PackageFile.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since PHP 4.0.2
  * @see        http://pear.php.net/manual/en/core.ppm.pear-builder.php
@@ -242,7 +242,7 @@ class PEAR_Builder extends PEAR_Common
      */
     function build($descfile, $callback = null)
     {
-        if (preg_match('/(\\/|\\\\|^)([^\\/\\\\]+)?php(.+)?$/',
+        if (preg_match('/(\\/|\\\\|^)([^\\/\\\\]+)?php([^\\/\\\\]+)?$/',
                        $this->config->get('php_bin'), $matches)) {
             if (isset($matches[2]) && strlen($matches[2]) &&
                 trim($matches[2]) != trim($this->config->get('php_prefix'))) {
@@ -375,7 +375,7 @@ class PEAR_Builder extends PEAR_Common
         if (!file_exists($build_dir) || !is_dir($build_dir) || !chdir($build_dir)) {
             return $this->raiseError("could not chdir to $build_dir");
         }
-        putenv('PHP_PEAR_VERSION=1.9.4');
+        putenv('PHP_PEAR_VERSION=1.9.5');
         foreach ($to_run as $cmd) {
             $err = $this->_runCommand($cmd, $callback);
             if (PEAR::isError($err)) {
@@ -486,4 +486,4 @@ class PEAR_Builder extends PEAR_Common
         }
         return PEAR_Common::log($level, $msg);
     }
-}
\ No newline at end of file
+}
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile.php b/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile.php
index f2c02ab42b78848676665937a6eaa954ba6af23a..5769fa96026893173f2d8f222f7a54a8f67df07a 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: ChannelFile.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -146,7 +146,7 @@ $GLOBALS['_PEAR_CHANNELS_MIRROR_TYPES'] =  array('server');
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile/Parser.php b/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile/Parser.php
index e630ace2245d983f005d27bd35dde4bec13d7a5a..fa965819d99e79ea24de1d1c3dd34fb57597f766 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile/Parser.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/ChannelFile/Parser.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Parser.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -26,7 +26,7 @@ require_once 'PEAR/ChannelFile.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command.php
index db39b8f36f357f17dc97a2d463d4c5908a207fb4..ea7f67925a95551bbca4e82b2ccbf72d507d09dd 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command.php
@@ -10,7 +10,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Command.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -94,7 +94,7 @@ $GLOBALS['_PEAR_Command_objects'] = array();
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 0.1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Auth.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Auth.php
index 63cd152b900735ee8c07a5b342460f9cb8963254..dd292fbe262ebc65b8ce61d2495c098f2842f318 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Auth.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Auth.php
@@ -10,7 +10,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Auth.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  * @deprecated since 1.8.0alpha1
@@ -30,7 +30,7 @@ require_once 'PEAR/Command/Channels.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 0.1
  * @deprecated since 1.8.0alpha1
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Build.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Build.php
index 1de7320246a1c292c49f4f5800c1438b10e7cb3b..014ab261049079c0efa24c6b1ebed5721cb39a13 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Build.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Build.php
@@ -11,7 +11,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Build.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -31,7 +31,7 @@ require_once 'PEAR/Command/Common.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 0.1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Channels.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Channels.php
index fcf01b50391c7e58338898e292f0cfd2643a3a8c..258f12f2db38412a1049934a67112a3609a15b67 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Channels.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Channels.php
@@ -12,7 +12,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Channels.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -32,7 +32,7 @@ define('PEAR_COMMAND_CHANNELS_CHANNEL_EXISTS', -500);
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Common.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Common.php
index 279a716623df94e22e12b5b86362fe9df612065b..df4890f985058de0da7764af223e3a8616988afe 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Common.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Common.php
@@ -10,7 +10,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Common.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -29,7 +29,7 @@ require_once 'PEAR.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 0.1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Config.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Config.php
index a761b277f5f8460651bcdff5a9d3776cc3d3ecbc..3af4ca102fa4d6ec07867136ae23cc8ff2e63cac 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Config.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Config.php
@@ -10,7 +10,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Config.php 313024 2011-07-06 19:51:24Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -29,7 +29,7 @@ require_once 'PEAR/Command/Common.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 0.1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Install.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Install.php
index c035f6d20de1eadcd7e6807718b645de4b336fa8..8ccaa105d99d769038e48d6cfc914450eb1cc353 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Install.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Install.php
@@ -10,7 +10,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Install.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -30,7 +30,7 @@ require_once 'PEAR/Command/Common.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 0.1
  */
@@ -468,7 +468,7 @@ Run post-installation scripts in package <package>, if any exist.
         $ts = preg_match('/Thread Safety.+enabled/', $info) ? '_ts' : '';
         $zend_extension_line = 'zend_extension' . $debug . $ts;
         $all = @file($filename);
-        if (!$all) {
+        if ($all === false) {
             return PEAR::raiseError('php.ini "' . $filename .'" could not be read');
         }
         $zend_extensions = $extensions = array();
@@ -768,17 +768,24 @@ Run post-installation scripts in package <package>, if any exist.
                             if ($param->getPackageType() == 'extsrc' ||
                                   $param->getPackageType() == 'extbin') {
                                 $exttype = 'extension';
+                                $extpath = $pinfo[1]['basename'];
                             } else {
-                                ob_start();
-                                phpinfo(INFO_GENERAL);
-                                $info = ob_get_contents();
-                                ob_end_clean();
-                                $debug = function_exists('leak') ? '_debug' : '';
-                                $ts = preg_match('/Thread Safety.+enabled/', $info) ? '_ts' : '';
+                                if (version_compare(PHP_VERSION, '5.3.0', '<')) {
+                                    ob_start();
+                                    phpinfo(INFO_GENERAL);
+                                    $info = ob_get_contents();
+                                    ob_end_clean();
+                                    $debug = function_exists('leak') ? '_debug' : '';
+                                    $ts = preg_match('/Thread Safety.+enabled/', $info) ? '_ts' : '';
+                                } else {
+                                    $debug = '';
+                                    $ts = '';
+                                }
                                 $exttype = 'zend_extension' . $debug . $ts;
+                                $extpath = $atts['installed_as'];
                             }
                             $extrainfo[] = 'You should add "' . $exttype . '=' .
-                                $pinfo[1]['basename'] . '" to php.ini';
+                                $extpath . '" to php.ini';
                         } else {
                             $extrainfo[] = 'Extension ' . $instpkg->getProvidesExtension() .
                                 ' enabled in php.ini';
@@ -1265,4 +1272,4 @@ Run post-installation scripts in package <package>, if any exist.
 
         return $ret;
     }
-}
\ No newline at end of file
+}
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Mirror.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Mirror.php
index 4d157c6b8886000edfc0d6dbec85e303087bc368..428246a9f24f96975b81722e9882ac99be26c3a5 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Mirror.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Mirror.php
@@ -9,7 +9,7 @@
  * @author     Alexander Merz <alexmerz@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Mirror.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.2.0
  */
@@ -27,7 +27,7 @@ require_once 'PEAR/Command/Common.php';
  * @author     Alexander Merz <alexmerz@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.2.0
  */
@@ -82,7 +82,7 @@ packages within preferred_state ({config preferred_state}) will be downloaded'
     * @param string $command the command
     * @param array $options the command options before the command
     * @param array $params the stuff after the command name
-    * @return bool true if succesful
+    * @return bool true if successful
     * @throw PEAR_Error
     */
     function doDownloadAll($command, $options, $params)
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Package.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Package.php
index 81df7bf6945d974923427de420f199cbe6f48ab3..67a38be6f0dc0bb3d07fea86474aed585a010601 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Package.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Package.php
@@ -12,7 +12,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Package.php 313024 2011-07-06 19:51:24Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -32,7 +32,7 @@ require_once 'PEAR/Command/Common.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: @package_version@
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 0.1
  */
@@ -467,7 +467,7 @@ used for automated conversion or learning the format.
                 'name' => 'modified',
                 'type' => 'yesno',
                 'default' => 'no',
-                'prompt' => 'You have files in your SVN checkout (' . $path['from']  . ') that have been modified but not commited, do you still want to tag ' . $version . '?',
+                'prompt' => 'You have files in your SVN checkout (' . $path['from']  . ') that have been modified but not committed, do you still want to tag ' . $version . '?',
             ));
             $answers = $this->ui->confirmDialog($params);
 
@@ -1121,4 +1121,4 @@ used for automated conversion or learning the format.
         $this->ui->outputData('Wrote new version 2.0 package.xml to "' . $saved . '"');
         return true;
     }
-}
\ No newline at end of file
+}
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Pickle.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Pickle.php
index 87aa25ea30c5f2f4d08c6204974a65882787b7b3..78b7b42b18a76a089189b3644aef4f59ee5bbd10 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Pickle.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Pickle.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  2005-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Pickle.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.1
  */
@@ -27,7 +27,7 @@ require_once 'PEAR/Command/Common.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  2005-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Registry.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Registry.php
index 4304db5ddf578f7c420ccb188fa1bbf2e377ef2c..1050d92b2c8f8d7df5782c971f42219fdfb4aa52 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Registry.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Registry.php
@@ -10,7 +10,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Registry.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -29,7 +29,7 @@ require_once 'PEAR/Command/Common.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 0.1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Remote.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Remote.php
index 74478d83c7a7394a977a0159d61c653bd343b754..509e45ed926f4f2b46ee3e795ed6fab2eef15cd9 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Remote.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Remote.php
@@ -11,7 +11,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Remote.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -31,7 +31,7 @@ require_once 'PEAR/REST.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 0.1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Test.php b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Test.php
index a757d9e579091f6d20ce5d6f93eb9cec8b883566..8be5b98376331dd48a2cba74cb649d4446bbd8b8 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Command/Test.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Command/Test.php
@@ -11,7 +11,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Test.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -31,7 +31,7 @@ require_once 'PEAR/Command/Common.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 0.1
  */
@@ -332,6 +332,6 @@ Run regression tests with PHP\'s regression testing script (run-tests.php).',
             }
         }
 
-        return true;
+        return count($failed) == 0;
     }
 }
\ No newline at end of file
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Common.php b/vendor/pear-pear.php.net/PEAR/PEAR/Common.php
index 3a8c7e80d33f83aae44ff7a7ebed70a969312d5d..2792434f43f1c059519baaccdb6e55707c82e6ed 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Common.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Common.php
@@ -11,7 +11,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Common.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1.0
  * @deprecated File deprecated since Release 1.4.0a1
@@ -118,7 +118,7 @@ $GLOBALS['_PEAR_Common_script_phases'] = array('pre-install', 'post-install', 'p
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  * @deprecated This class will disappear, and its components will be spread
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Config.php b/vendor/pear-pear.php.net/PEAR/PEAR/Config.php
index 86a7db3f32f3a9768f4df111db4788fc61692dbb..edaef745b3844240a8d031615a29c43f7c8229d3 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Config.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Config.php
@@ -10,7 +10,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Config.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -246,7 +246,7 @@ if (getenv('PHP_PEAR_SIG_KEYDIR')) {
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 0.1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Dependency2.php b/vendor/pear-pear.php.net/PEAR/PEAR/Dependency2.php
index f3ddeb1cf1b4b5d874b533099348b91d961547dc..b42281795e65b0025cd7535a5ae061ff18732955 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Dependency2.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Dependency2.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Dependency2.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -31,7 +31,7 @@ require_once 'PEAR/Validate.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
@@ -541,7 +541,7 @@ class PEAR_Dependency2
      */
     function getPEARVersion()
     {
-        return '1.9.4';
+        return '1.9.5';
     }
 
     function validatePearinstallerDependency($dep)
@@ -607,7 +607,7 @@ class PEAR_Dependency2
      * @param boolean whether this is a required dependency
      * @param array a list of downloaded packages to be installed, if any
      * @param boolean if true, then deps on pear.php.net that fail will also check
-     *                against pecl.php.net packages to accomodate extensions that have
+     *                against pecl.php.net packages to accommodate extensions that have
      *                moved to pecl.php.net from pear.php.net
      */
     function validatePackageDependency($dep, $required, $params, $depv1 = false)
@@ -1355,4 +1355,4 @@ class PEAR_Dependency2
         return array(sprintf($msg, $this->_registry->parsedPackageNameToString(
             $this->_currentPackage, true)));
     }
-}
\ No newline at end of file
+}
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/DependencyDB.php b/vendor/pear-pear.php.net/PEAR/PEAR/DependencyDB.php
index 948f0c9d7083e31f27aa22b6caa340486d603a50..41bee038e73ee627419f849b490599762226d20b 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/DependencyDB.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/DependencyDB.php
@@ -10,7 +10,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: DependencyDB.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -30,7 +30,7 @@ $GLOBALS['_PEAR_DEPENDENCYDB_INSTANCE'] = array();
  * @author     Tomas V.V.Cox <cox@idec.net.com>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Downloader.php b/vendor/pear-pear.php.net/PEAR/PEAR/Downloader.php
index 730df0b73874bc2da179c692d14a3bf896ce6de7..8ccc072e83f49d480b7fcb0708d3ba12a59d6997 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Downloader.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Downloader.php
@@ -12,7 +12,7 @@
  * @author     Martin Jansen <mj@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Downloader.php 313024 2011-07-06 19:51:24Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.3.0
  */
@@ -39,7 +39,7 @@ define('PEAR_INSTALLER_ERROR_NO_PREF_STATE', 2);
  * @author     Martin Jansen <mj@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.3.0
  */
@@ -1639,7 +1639,7 @@ class PEAR_Downloader extends PEAR_Common
         }
 
         $request .= $ifmodifiedsince .
-            "User-Agent: PEAR/1.9.4/PHP/" . PHP_VERSION . "\r\n";
+            "User-Agent: PEAR/1.9.5/PHP/" . PHP_VERSION . "\r\n";
 
         if (isset($this)) { // only pass in authentication for non-static calls
             $username = $config->get('username', null, $channel);
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Downloader/Package.php b/vendor/pear-pear.php.net/PEAR/PEAR/Downloader/Package.php
index 987c9656751fbe4d0e24cfcc332b7ba1dd5d24ad..9303b488361d5ee96615ff3664c2a6bbd0c20943 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Downloader/Package.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Downloader/Package.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Package.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -50,7 +50,7 @@ define('PEAR_DOWNLOADER_PACKAGE_PHPVERSION', -1004);
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/ErrorStack.php b/vendor/pear-pear.php.net/PEAR/PEAR/ErrorStack.php
index 0303f5273adb45d68c77368ac99bd1910e1d4edd..c1b0396a9fc8c0ad6c55e1b466ac516f16ec5092 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/ErrorStack.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/ErrorStack.php
@@ -23,7 +23,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  2004-2008 Greg Beaver
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: ErrorStack.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR_ErrorStack
  */
 
@@ -132,12 +132,12 @@ define('PEAR_ERRORSTACK_ERR_OBJTOSTRING', 2);
  * $local_stack = new PEAR_ErrorStack('MyPackage');
  * </code>
  * @author     Greg Beaver <cellog@php.net>
- * @version    1.9.4
+ * @version    1.9.5
  * @package    PEAR_ErrorStack
  * @category   Debugging
  * @copyright  2004-2008 Greg Beaver
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: ErrorStack.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR_ErrorStack
  */
 class PEAR_ErrorStack {
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Exception.php b/vendor/pear-pear.php.net/PEAR/PEAR/Exception.php
index 4a0e7b86fac7a953773f2f3a841d36e2380b7664..2990cb612a2527c5e7e7dce1b35fb58be6370bcd 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Exception.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Exception.php
@@ -13,7 +13,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Exception.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.3.3
  */
@@ -89,7 +89,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.3.3
  *
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Frontend.php b/vendor/pear-pear.php.net/PEAR/PEAR/Frontend.php
index 531e541f9eb3942da0aaccb332fc6a0223441620..5a87d7a622f71c705979363b0d623a5da0ac77c3 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Frontend.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Frontend.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Frontend.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -39,7 +39,7 @@ $GLOBALS['_PEAR_FRONTEND_SINGLETON'] = null;
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Frontend/CLI.php b/vendor/pear-pear.php.net/PEAR/PEAR/Frontend/CLI.php
index 340b99b79b7872404809a56175955e84a3da6c0a..06d9a2b72663911625df977526ad25c25085342e 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Frontend/CLI.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Frontend/CLI.php
@@ -10,7 +10,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: CLI.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -27,7 +27,7 @@ require_once 'PEAR/Frontend.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 0.1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer.php
index eb17ca7914dc0a7a34588715cbf61e5d99cf1966..1037ee929a61acb59a163b190c91690f9c7a3b61 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer.php
@@ -12,7 +12,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Installer.php 313024 2011-07-06 19:51:24Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -36,7 +36,7 @@ define('PEAR_INSTALLER_NOBINARY', -240);
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 0.1
  */
@@ -808,7 +808,10 @@ class PEAR_Installer extends PEAR_Downloader
                             if (!empty($res)) {
                                 $new = $this->_registry->getPackage($result[1], $result[0]);
                                 $this->file_operations[$key] = false;
-                                $this->log(3, "file $data[0] was scheduled for removal from {$this->pkginfo->getName()} but is owned by {$new->getChannel()}/{$new->getName()}, removal has been cancelled.");
+                                $pkginfoName = $this->pkginfo->getName();
+                                $newChannel  = $new->getChannel();
+                                $newPackage  = $new->getName();
+                                $this->log(3, "file $data[0] was scheduled for removal from $pkginfoName but is owned by $newChannel/$newPackage, removal has been cancelled.");
                             }
                         }
                     }
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role.php
index 0c50fa79c0c83dbe853ed3bb872bd15a2e0ace18..5cc7a33f00c1f41aedec46a75082a1c37d45e575 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Role.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -25,7 +25,7 @@ require_once 'PEAR/XMLParser.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Cfg.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Cfg.php
index 762012248d23a5a4cd47eacd47449313d467d4f1..0945f83c6caf99545fd9433056f4132130ba0d03 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Cfg.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Cfg.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  2007-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Cfg.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.7.0
  */
@@ -20,7 +20,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  2007-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.7.0
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Common.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Common.php
index 23e7348d70cf2332689f8968f66bfdb13a8531e4..837799d815ff12346720f56ccb909176af032a60 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Common.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Common.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2006 The PHP Group
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Common.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -24,7 +24,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2006 The PHP Group
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Data.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Data.php
index e3b7fa2fff2da698a1924a627356c1c8f4fcc9ad..79498c48d64bc18e2ba045af14564a32827b8ffa 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Data.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Data.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Data.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -20,7 +20,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Doc.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Doc.php
index d592ffff01481f4af2eb856ad1f734d53701b0f3..7e58876c4bb0cbf157b1d12a5e74bacd814ad277 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Doc.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Doc.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Doc.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -20,7 +20,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Ext.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Ext.php
index eceb0279ff957267539233858fe1d1fcbb0c4c6a..5854320480564c597ce373d68062e940be51a38c 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Ext.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Ext.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Ext.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -20,7 +20,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Php.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Php.php
index e2abf44eed1ea222432a47e5bf14d425f3e61e5b..fa11b9259b8162657614dce1ad8aace667d9e2be 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Php.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Php.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Php.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -20,7 +20,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Script.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Script.php
index b31469e4b10721f8e02619ca194a2e03c80a5506..f758c8eda09d9fbd9c980c655d56ef6a510dd148 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Script.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Script.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Script.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -20,7 +20,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Src.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Src.php
index 503705313d821bff26e0457c805e40c612e3eed0..aca36361f41eea57dccb6b17c36173e126bba53d 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Src.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Src.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Src.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -20,7 +20,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Test.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Test.php
index 14c0e60919239fa8d2716fd114d7e31dc4b140cf..5f513a6655d0d4e3fc354ea9c24b1d7eb7c823b4 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Test.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Test.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Test.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -20,7 +20,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Www.php b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Www.php
index 11adeff8295c4a0b7c843e0b163f7f66159d1d2f..6b1c3818d48a664d531792f44a45b44c1668e875 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Www.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Installer/Role/Www.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  2007-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Www.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.7.0
  */
@@ -20,7 +20,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  2007-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.7.0
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile.php
index 7ae3362844158c8650cb54d12f02b13d94d7db93..9f90d6f21386419d871c635bc044371d6542c353 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: PackageFile.php 313024 2011-07-06 19:51:24Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -35,7 +35,7 @@ define('PEAR_PACKAGEFILE_ERROR_INVALID_PACKAGEVERSION', 2);
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v1.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v1.php
index 2f42f178d595c8b57f7d7ac9838e2008af8c3109..5368e9c2c127515b122262c4fc889ae4f28b1e25 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v1.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v1.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: v1.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -29,7 +29,7 @@ require_once 'PEAR/PackageFile/v2.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
@@ -46,7 +46,7 @@ class PEAR_PackageFile_Generator_v1
 
     function getPackagerVersion()
     {
-        return '1.9.4';
+        return '1.9.5';
     }
 
     /**
@@ -200,7 +200,7 @@ class PEAR_PackageFile_Generator_v1
             );
         $ret = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
         $ret .= "<!DOCTYPE package SYSTEM \"http://pear.php.net/dtd/package-1.0\">\n";
-        $ret .= "<package version=\"1.0\" packagerversion=\"1.9.4\">\n" .
+        $ret .= "<package version=\"1.0\" packagerversion=\"1.9.5\">\n" .
 " <name>$pkginfo[package]</name>";
         if (isset($pkginfo['extends'])) {
             $ret .= "\n<extends>$pkginfo[extends]</extends>";
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v2.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v2.php
index 4d202df27d30602c0f9acb46ad2d3c59fd61faca..889548da25d6f1681b04a25cdcccb1b6144786ae 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v2.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Generator/v2.php
@@ -10,7 +10,7 @@
  * @author     Stephan Schmidt (original XML_Serializer code)
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: v2.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -31,7 +31,7 @@ require_once 'XML/Util.php';
  * @author     Stephan Schmidt (original XML_Serializer code)
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
@@ -70,7 +70,7 @@ http://pear.php.net/dtd/package-2.0
 http://pear.php.net/dtd/package-2.0.xsd',
         ),               // attributes of the root tag
         'attributesArray'    => 'attribs',                  // all values in this key will be treated as attributes
-        'contentName'        => '_content',                   // this value will be used directly as content, instead of creating a new tag, may only be used in conjuction with attributesArray
+        'contentName'        => '_content',                   // this value will be used directly as content, instead of creating a new tag, may only be used in conjunction with attributesArray
         'beautifyFilelist'   => false,
         'encoding' => 'UTF-8',
     );
@@ -113,7 +113,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
      */
     function getPackagerVersion()
     {
-        return '1.9.4';
+        return '1.9.5';
     }
 
     /**
@@ -398,7 +398,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
             $this->options['beautifyFilelist'] = true;
         }
 
-        $arr['attribs']['packagerversion'] = '1.9.4';
+        $arr['attribs']['packagerversion'] = '1.9.5';
         if ($this->serialize($arr, $options)) {
             return $this->_serializedData . "\n";
         }
@@ -890,4 +890,4 @@ http://pear.php.net/dtd/package-2.0.xsd',
         }
         return  $tag;
     }
-}
\ No newline at end of file
+}
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Parser/v1.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Parser/v1.php
index 23395dc757a230e68b7273adc376fa444a82738e..bbf5989e8c47e5ff0045a9ba5f7607c123f77068 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Parser/v1.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Parser/v1.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: v1.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Parser/v2.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Parser/v2.php
index a3ba7063f2b481549a2e7a66a3fd0f078e9affaa..cb8104102e5052d40bbd836b74738b9da69e2cc0 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Parser/v2.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/Parser/v2.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: v2.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v1.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v1.php
index 43e346bcdac9adabe0d17e39953a06150d376341..ecff288a8b8cfbacfcd36b59c5d8347a6967bc9f 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v1.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v1.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: v1.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -275,7 +275,7 @@ define('PEAR_PACKAGEFILE_ERROR_INVALID_FILENAME', 52);
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2.php
index 1ca412dc8cdb74781d7575e67fe00480864a57f1..025d6e8291fe7bc6cce74d0cbd8e26d9883b90b3 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: v2.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -23,7 +23,7 @@ require_once 'PEAR/ErrorStack.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/Validator.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/Validator.php
index 33c8eee38767722f71710e79751557008b1539ec..8444afb6ea74502a19d941d61097b01ee394b1c8 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/Validator.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/Validator.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Validator.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a8
  */
@@ -21,7 +21,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a8
  * @access private
@@ -112,7 +112,7 @@ class PEAR_PackageFile_v2_Validator
               isset($test['dependencies']['required']) &&
               isset($test['dependencies']['required']['pearinstaller']) &&
               isset($test['dependencies']['required']['pearinstaller']['min']) &&
-              version_compare('1.9.4',
+              version_compare('1.9.5',
                 $test['dependencies']['required']['pearinstaller']['min'], '<')
         ) {
             $this->_pearVersionTooLow($test['dependencies']['required']['pearinstaller']['min']);
@@ -1350,7 +1350,7 @@ class PEAR_PackageFile_v2_Validator
         $this->_stack->push(__FUNCTION__, 'error',
             array('version' => $version),
             'This package.xml requires PEAR version %version% to parse properly, we are ' .
-            'version 1.9.4');
+            'version 1.9.5');
     }
 
     function _invalidTagOrder($oktags, $actual, $root)
@@ -1875,7 +1875,7 @@ class PEAR_PackageFile_v2_Validator
                 $pn = $this->_pf->getPackage();
                 $this->_stack->push(__FUNCTION__, 'warning',
                         array('file' => $file, 'package' => $pn),
-                        'in %file%: Could not process file for unkown reasons,' .
+                        'in %file%: Could not process file for unknown reasons,' .
                         ' possibly a PHP parse error in %file% from %package%');
             }
         }
@@ -2045,7 +2045,7 @@ class PEAR_PackageFile_v2_Validator
                     continue 2;
                 case T_DOUBLE_COLON:
                     $token = $tokens[$i - 1][0];
-                    if (!($token == T_WHITESPACE || $token == T_STRING || $token == T_STATIC)) {
+                    if (!($token == T_WHITESPACE || $token == T_STRING || $token == T_STATIC || $token == T_VARIABLE)) {
                         if (isset($this->_stack)) {
                             $this->_stack->push(__FUNCTION__, 'warning', array('file' => $file),
                                 'Parser error: invalid PHP found in file "%file%"');
@@ -2151,4 +2151,4 @@ class PEAR_PackageFile_v2_Validator
 
         return $providesret;
     }
-}
\ No newline at end of file
+}
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/rw.php b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/rw.php
index 58f76c55947c8419242ea72041f364e25e9c0764..5680d8a7194f868bee8061484826e70f09d72d1b 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/rw.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/PackageFile/v2/rw.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: rw.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a8
  */
@@ -23,7 +23,7 @@ require_once 'PEAR/PackageFile/v2.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a8
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Packager.php b/vendor/pear-pear.php.net/PEAR/PEAR/Packager.php
index 8995a167fccda9b45e16b4270a3b38f8e38fe483..5172790fba9d72d3d1b46e5b15378a3d598c5bcb 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Packager.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Packager.php
@@ -11,7 +11,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Packager.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -31,7 +31,7 @@ require_once 'System.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 0.1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/REST.php b/vendor/pear-pear.php.net/PEAR/PEAR/REST.php
index 34a804f2bde4c295ed692f2fa71d324cfdf0c165..4b1797b9bdc4ac255eb49c6829054665a11dd8d5 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/REST.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/REST.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: REST.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -28,7 +28,7 @@ require_once 'PEAR/XMLParser.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
@@ -129,11 +129,13 @@ class PEAR_REST
         }
 
         if (isset($headers['content-type'])) {
-            switch ($headers['content-type']) {
+            $content_type = explode(";", $headers['content-type']);
+            $content_type = $content_type[0];
+            switch ($content_type) {
                 case 'text/xml' :
                 case 'application/xml' :
                 case 'text/plain' :
-                    if ($headers['content-type'] === 'text/plain') {
+                    if ($content_type === 'text/plain') {
                         $check = substr($content, 0, 5);
                         if ($check !== '<?xml') {
                             break;
@@ -273,19 +275,24 @@ class PEAR_REST
                 return PEAR::raiseError("Could not write $file.");
             }
         } else { // update file
-            $cachefile_lstat = lstat($file);
-            $cachefile_fp = @fopen($file, 'wb');
+            $cachefile_fp = @fopen($file, 'r+b'); // do not truncate file
             if (!$cachefile_fp) {
                 return PEAR::raiseError("Could not open $file for writing.");
             }
 
-            $cachefile_fstat = fstat($cachefile_fp);
-            if (
-              $cachefile_lstat['mode'] == $cachefile_fstat['mode'] &&
-              $cachefile_lstat['ino']  == $cachefile_fstat['ino'] &&
-              $cachefile_lstat['dev']  == $cachefile_fstat['dev'] &&
-              $cachefile_fstat['nlink'] === 1
-            ) {
+            if (OS_WINDOWS) {
+                $not_symlink     = !is_link($file); // see bug #18834
+            } else {
+                $cachefile_lstat = lstat($file);
+                $cachefile_fstat = fstat($cachefile_fp);
+                $not_symlink     = $cachefile_lstat['mode'] == $cachefile_fstat['mode']
+                                   && $cachefile_lstat['ino']  == $cachefile_fstat['ino']
+                                   && $cachefile_lstat['dev']  == $cachefile_fstat['dev']
+                                   && $cachefile_fstat['nlink'] === 1;
+            }
+
+            if ($not_symlink) {
+                ftruncate($cachefile_fp, 0); // NOW truncate
                 if (fwrite($cachefile_fp, $contents, $len) < $len) {
                     fclose($cachefile_fp);
                     return PEAR::raiseError("Could not write $file.");
@@ -383,7 +390,7 @@ class PEAR_REST
         }
 
         $request .= $ifmodifiedsince .
-            "User-Agent: PEAR/1.9.4/PHP/" . PHP_VERSION . "\r\n";
+            "User-Agent: PEAR/1.9.5/PHP/" . PHP_VERSION . "\r\n";
 
         $username = $this->config->get('username', null, $channel);
         $password = $this->config->get('password', null, $channel);
@@ -480,4 +487,4 @@ class PEAR_REST
 
         return $data;
     }
-}
\ No newline at end of file
+}
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/REST/10.php b/vendor/pear-pear.php.net/PEAR/PEAR/REST/10.php
index 6ded7aeace379c5b6d028d515f28b6d1cd28e88c..563577a1c7f96cdc20c47f94e4ea1f28637726a1 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/REST/10.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/REST/10.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: 10.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a12
  */
@@ -27,7 +27,7 @@ require_once 'PEAR/REST.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a12
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/REST/11.php b/vendor/pear-pear.php.net/PEAR/PEAR/REST/11.php
index 831cfccdb7555ef9ff52fc65b2211927eb3ab019..f6e365d39d52d19b614dbfda9494fddae220622f 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/REST/11.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/REST/11.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: 11.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.3
  */
@@ -27,7 +27,7 @@ require_once 'PEAR/REST.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.3
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/REST/13.php b/vendor/pear-pear.php.net/PEAR/PEAR/REST/13.php
index 722ae0de30fc97a1677310130a9c6ba505304ca4..7911e49f088b7c7e029d8ea1fe62bbfdb93d4c4e 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/REST/13.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/REST/13.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: 13.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a12
  */
@@ -28,7 +28,7 @@ require_once 'PEAR/REST/10.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a12
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Registry.php b/vendor/pear-pear.php.net/PEAR/PEAR/Registry.php
index 35e17db495298ff69fbc0b7f8d4e563d0f4c5d0f..06fed47fcff5444837fa3b73932cbf434c4598d5 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Registry.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Registry.php
@@ -11,7 +11,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Registry.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -37,7 +37,7 @@ define('PEAR_REGISTRY_ERROR_CHANNEL_FILE', -6);
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/RunTest.php b/vendor/pear-pear.php.net/PEAR/PEAR/RunTest.php
index 5182490697015f3954aa05c924a80f6f58c47ed3..260fc6e46beb8e3fbf9e71ddbe1862edff96782d 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/RunTest.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/RunTest.php
@@ -10,7 +10,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: RunTest.php 313024 2011-07-06 19:51:24Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.3.3
  */
@@ -38,7 +38,7 @@ putenv("PHP_PEAR_RUNTESTS=1");
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.3.3
  */
@@ -275,10 +275,8 @@ class PEAR_RunTest
      */
     function run($file, $ini_settings = array(), $test_number = 1)
     {
-        if (isset($this->_savephp)) {
-            $this->_php = $this->_savephp;
-            unset($this->_savephp);
-        }
+        $this->_restorePHPBinary();
+
         if (empty($this->_options['cgi'])) {
             // try to see if php-cgi is in the path
             $res = $this->system_with_timeout('php-cgi -v');
@@ -340,7 +338,7 @@ class PEAR_RunTest
                 }
                 return 'SKIPPED';
             }
-            $this->_savephp = $this->_php;
+            $this->_savePHPBinary();
             $this->_php = $this->_options['cgi'];
         }
 
@@ -494,8 +492,6 @@ class PEAR_RunTest
         }
         chdir($cwd); // in case the test moves us around
 
-        $this->_testCleanup($section_text, $temp_clean);
-
         /* when using CGI, strip the headers from the output */
         $output = $this->_stripHeadersCGI($output);
 
@@ -516,6 +512,9 @@ class PEAR_RunTest
                 $output .= "\n====EXPECTHEADERS FAILURE====:\n$changed";
             }
         }
+
+        $this->_testCleanup($section_text, $temp_clean);
+
         // Does the output match what is expected?
         do {
             if (isset($section_text['EXPECTF']) || isset($section_text['EXPECTREGEX'])) {
@@ -954,6 +953,8 @@ $text
     function _testCleanup($section_text, $temp_clean)
     {
         if ($section_text['CLEAN']) {
+            $this->_restorePHPBinary();
+
             // perform test cleanup
             $this->save_text($temp_clean, $section_text['CLEAN']);
             $output = $this->system_with_timeout("$this->_php $temp_clean  2>&1");
@@ -965,4 +966,18 @@ $text
             }
         }
     }
+
+    function _savePHPBinary()
+    {
+        $this->_savephp = $this->_php;
+    }
+
+    function _restorePHPBinary()
+    {
+        if (isset($this->_savephp))
+        {
+            $this->_php = $this->_savephp;
+            unset($this->_savephp);
+        }
+    }
 }
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Common.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Common.php
index 5b99c2e434795e143e4c2c7af905de902b15be1d..a091ed4eab205a4e9db0c9a277273f27642eb2ca 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Common.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Common.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Common.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -47,7 +47,7 @@ define('PEAR_TASK_PACKAGEANDINSTALL', 3);
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  * @abstract
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript.php
index e43ecca4b3db0aed7ebb1e17dd674d59cd8c1961..35a89e842d9f7f0e091b8694af457cbc5df613a6 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Postinstallscript.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -27,7 +27,7 @@ require_once 'PEAR/Task/Common.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript/rw.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript/rw.php
index 8f358bf22bc7b8f488e037ee2dcdd0e32d6dc65f..8c0a6fb93f3cc7498b408b1943bb4db41ba79ca2 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript/rw.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Postinstallscript/rw.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: rw.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a10
  */
@@ -24,7 +24,7 @@ require_once 'PEAR/Task/Postinstallscript.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a10
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace.php
index 376df64df65c9e48c99904e63d6412d55a797925..e872ff5e0e9f0735a611e474161f59759a7ec4d8 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Replace.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -24,7 +24,7 @@ require_once 'PEAR/Task/Common.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace/rw.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace/rw.php
index 32dad58629746623b2bf932a7cd866a2a3f10cb5..e0e30cd867fb0281ffe5528a61d3e9266e6e9cba 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace/rw.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Replace/rw.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: rw.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a10
  */
@@ -24,7 +24,7 @@ require_once 'PEAR/Task/Replace.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a10
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol.php
index 89ca81be349c45e7e5d94de2b8fc4ff65d4b9773..1ddabd7d350582713e19f016567b25c4efacfc2a 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Unixeol.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -24,7 +24,7 @@ require_once 'PEAR/Task/Common.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol/rw.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol/rw.php
index b2ae5fa5cbd7437fb05f0deba3363dfbf028088f..1b47bf8cbb939e311471ea1e3c7fd518645ef0ae 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol/rw.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Unixeol/rw.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: rw.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a10
  */
@@ -24,7 +24,7 @@ require_once 'PEAR/Task/Unixeol.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a10
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol.php
index 8ba4171159faccaaccdbc641d4a7e9555c50de20..42ed7dd39159136483f24539bc64d1e2134ab0c3 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Windowseol.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -24,7 +24,7 @@ require_once 'PEAR/Task/Common.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol/rw.php b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol/rw.php
index f0f1149c83ec58678c9ee10032852af875d7f765..a0dd3d25abd00d88e0c96e12bc6b51340b5506af 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol/rw.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Task/Windowseol/rw.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: rw.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a10
  */
@@ -24,7 +24,7 @@ require_once 'PEAR/Task/Windowseol.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a10
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Validate.php b/vendor/pear-pear.php.net/PEAR/PEAR/Validate.php
index 176560bc2377c1edd4293a2465ec9b57586ad35a..bc7ecbd0f2f9bb52d08f572c26df9ae27d581cb1 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Validate.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Validate.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: Validate.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -32,7 +32,7 @@ require_once 'PEAR/Validator/PECL.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/Validator/PECL.php b/vendor/pear-pear.php.net/PEAR/PEAR/Validator/PECL.php
index 89b951f7b67c64fe80b647b9cc7f6a9554ee535d..416d1abfd8dae69a5bb659fa80394321d50e80e1 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/Validator/PECL.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/Validator/PECL.php
@@ -9,7 +9,7 @@
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2006 The PHP Group
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: PECL.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a5
  */
@@ -24,7 +24,7 @@ require_once 'PEAR/Validate.php';
  * @author     Greg Beaver <cellog@php.net>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    Release: 1.9.4
+ * @version    Release: 1.9.5
  * @link       http://pear.php.net/package/PEAR
  * @since      Class available since Release 1.4.0a5
  */
diff --git a/vendor/pear-pear.php.net/PEAR/PEAR/XMLParser.php b/vendor/pear-pear.php.net/PEAR/PEAR/XMLParser.php
index 7f091c16fadba71c35552ea4774277403a6b6f94..83e4f96530e587cf44a75ddaaae22fbd8a92e5c6 100644
--- a/vendor/pear-pear.php.net/PEAR/PEAR/XMLParser.php
+++ b/vendor/pear-pear.php.net/PEAR/PEAR/XMLParser.php
@@ -10,7 +10,7 @@
  * @author     Stephan Schmidt (original XML_Unserializer code)
  * @copyright  1997-2009 The Authors
  * @license   http://opensource.org/licenses/bsd-license New BSD License
- * @version    CVS: $Id: XMLParser.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 1.4.0a1
  */
@@ -23,7 +23,7 @@
  * @author    Stephan Schmidt (original XML_Unserializer code)
  * @copyright 1997-2009 The Authors
  * @license   http://opensource.org/licenses/bsd-license New BSD License
- * @version   Release: 1.9.4
+ * @version   Release: 1.9.5
  * @link      http://pear.php.net/package/PEAR
  * @since     Class available since Release 1.4.0a1
  */
diff --git a/vendor/pear-pear.php.net/PEAR/System.php b/vendor/pear-pear.php.net/PEAR/System.php
index c27d44658e3eed375e5e3763b753fe2024b2235f..e3693b10c56753b039b080e337ecea5237296e4a 100644
--- a/vendor/pear-pear.php.net/PEAR/System.php
+++ b/vendor/pear-pear.php.net/PEAR/System.php
@@ -9,7 +9,7 @@
  * @author     Tomas V.V.Cox <cox@idecnet.com>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: System.php 313024 2011-07-06 19:51:24Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  * @since      File available since Release 0.1
  */
@@ -51,7 +51,7 @@ $GLOBALS['_System_temp_files'] = array();
 * @author     Tomas V.V. Cox <cox@idecnet.com>
 * @copyright  1997-2006 The PHP Group
 * @license    http://opensource.org/licenses/bsd-license.php New BSD License
-* @version    Release: 1.9.4
+* @version    Release: 1.9.5
 * @link       http://pear.php.net/package/PEAR
 * @since      Class available since Release 0.1
 * @static
@@ -71,6 +71,23 @@ class System
     function _parseArgs($argv, $short_options, $long_options = null)
     {
         if (!is_array($argv) && $argv !== null) {
+            /*
+            // Quote all items that are a short option
+            $av = preg_split('/(\A| )--?[a-z0-9]+[ =]?((?<!\\\\)((,\s*)|((?<!,)\s+))?)/i', $argv, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE);
+            $offset = 0;
+            foreach ($av as $a) {
+                $b = trim($a[0]);
+                if ($b{0} == '"' || $b{0} == "'") {
+                    continue;
+                }
+
+                $escape = escapeshellarg($b);
+                $pos = $a[1] + $offset;
+                $argv = substr_replace($argv, $escape, $pos, strlen($b));
+                $offset += 2;
+            }
+            */
+
             // Find all items, quoted or otherwise
             preg_match_all("/(?:[\"'])(.*?)(?:['\"])|([^\s]+)/", $argv, $av);
             $argv = $av[1];
@@ -81,6 +98,7 @@ class System
                 $argv[$k] = trim($a) ;
             }
         }
+
         return Console_Getopt::getopt2($argv, $short_options, $long_options);
     }
 
diff --git a/vendor/pear-pear.php.net/PEAR/bin/scripts/pear.sh b/vendor/pear-pear.php.net/PEAR/bin/pear
old mode 100644
new mode 100755
similarity index 61%
rename from vendor/pear-pear.php.net/PEAR/bin/scripts/pear.sh
rename to vendor/pear-pear.php.net/PEAR/bin/pear
index 48ab0677c8c0fe4fa017d8e5d856f65889d6bcc4..cc53e66f4645d7b09fc51b42448a57dd6c045d51
--- a/vendor/pear-pear.php.net/PEAR/bin/scripts/pear.sh
+++ b/vendor/pear-pear.php.net/PEAR/bin/pear
@@ -4,10 +4,10 @@
 if test "x$PHP_PEAR_PHP_BIN" != "x"; then
   PHP="$PHP_PEAR_PHP_BIN"
 else
-  if test "@php_bin@" = '@'php_bin'@'; then
+  if test "/usr/bin/env /stage/local/vufind/vendor/bin/composer-php" = '@'php_bin'@'; then
     PHP=php
   else
-    PHP="@php_bin@"
+    PHP="/usr/bin/env /stage/local/vufind/vendor/bin/composer-php"
   fi
 fi
 
@@ -16,12 +16,12 @@ if test "x$PHP_PEAR_INSTALL_DIR" != "x"; then
   INCDIR=$PHP_PEAR_INSTALL_DIR
   INCARG="-d include_path=$PHP_PEAR_INSTALL_DIR"
 else
-  if test "@php_dir@" = '@'php_dir'@'; then
+  if test "/stage/local/vufind/vendor/pear-pear.php.net/PEAR" = '@'php_dir'@'; then
     INCDIR=`dirname $0`
     INCARG=""
   else
-    INCDIR="@php_dir@"
-    INCARG="-d include_path=@php_dir@"
+    INCDIR="/stage/local/vufind/vendor/pear-pear.php.net/PEAR"
+    INCARG="-d include_path=/stage/local/vufind/vendor/pear-pear.php.net/PEAR"
   fi
 fi
 
diff --git a/vendor/pear-pear.php.net/PEAR/bin/scripts/peardev.sh b/vendor/pear-pear.php.net/PEAR/bin/peardev
old mode 100644
new mode 100755
similarity index 61%
rename from vendor/pear-pear.php.net/PEAR/bin/scripts/peardev.sh
rename to vendor/pear-pear.php.net/PEAR/bin/peardev
index 635ec7581eaf5307db46900b3d936be3d95a7948..ea88babffbbf8a08e6ae85cd54bee5337ec90e1a
--- a/vendor/pear-pear.php.net/PEAR/bin/scripts/peardev.sh
+++ b/vendor/pear-pear.php.net/PEAR/bin/peardev
@@ -4,10 +4,10 @@
 if test "x$PHP_PEAR_PHP_BIN" != "x"; then
   PHP="$PHP_PEAR_PHP_BIN"
 else
-  if test "@php_bin@" = '@'php_bin'@'; then
+  if test "/usr/bin/env /stage/local/vufind/vendor/bin/composer-php" = '@'php_bin'@'; then
     PHP=php
   else
-    PHP="@php_bin@"
+    PHP="/usr/bin/env /stage/local/vufind/vendor/bin/composer-php"
   fi
 fi
 
@@ -16,12 +16,12 @@ if test "x$PHP_PEAR_INSTALL_DIR" != "x"; then
   INCDIR=$PHP_PEAR_INSTALL_DIR
   INCARG="-d include_path=$PHP_PEAR_INSTALL_DIR"
 else
-  if test "@php_dir@" = '@'php_dir'@'; then
+  if test "/stage/local/vufind/vendor/pear-pear.php.net/PEAR" = '@'php_dir'@'; then
     INCDIR=`dirname $0`
     INCARG=""
   else
-    INCDIR="@php_dir@"
-    INCARG="-d include_path=@php_dir@"
+    INCDIR="/stage/local/vufind/vendor/pear-pear.php.net/PEAR"
+    INCARG="-d include_path=/stage/local/vufind/vendor/pear-pear.php.net/PEAR"
   fi
 fi
 
diff --git a/vendor/pear-pear.php.net/PEAR/bin/scripts/pecl.sh b/vendor/pear-pear.php.net/PEAR/bin/pecl
old mode 100644
new mode 100755
similarity index 58%
rename from vendor/pear-pear.php.net/PEAR/bin/scripts/pecl.sh
rename to vendor/pear-pear.php.net/PEAR/bin/pecl
index 332890c534a7f899a3ccb14dcbac03ba722317c6..3839a784cbe53cf80ab60b6f771664c4b4b704db
--- a/vendor/pear-pear.php.net/PEAR/bin/scripts/pecl.sh
+++ b/vendor/pear-pear.php.net/PEAR/bin/pecl
@@ -4,10 +4,10 @@
 if test "x$PHP_PEAR_PHP_BIN" != "x"; then
   PHP="$PHP_PEAR_PHP_BIN"
 else
-  if test "@php_bin@" = '@'php_bin'@'; then
+  if test "/usr/bin/env /stage/local/vufind/vendor/bin/composer-php" = '@'php_bin'@'; then
     PHP=php
   else
-    PHP="@php_bin@"
+    PHP="/usr/bin/env /stage/local/vufind/vendor/bin/composer-php"
   fi
 fi
 
@@ -16,12 +16,12 @@ if test "x$PHP_PEAR_INSTALL_DIR" != "x"; then
   INCDIR=$PHP_PEAR_INSTALL_DIR
   INCARG="-d include_path=$PHP_PEAR_INSTALL_DIR"
 else
-  if test "@php_dir@" = '@'php_dir'@'; then
+  if test "/stage/local/vufind/vendor/pear-pear.php.net/PEAR" = '@'php_dir'@'; then
     INCDIR=`dirname $0`
     INCARG=""
   else
-    INCDIR="@php_dir@"
-    INCARG="-d include_path=@php_dir@"
+    INCDIR="/stage/local/vufind/vendor/pear-pear.php.net/PEAR"
+    INCARG="-d include_path=/stage/local/vufind/vendor/pear-pear.php.net/PEAR"
   fi
 fi
 
diff --git a/vendor/pear-pear.php.net/PEAR/bin/scripts/pear.bat b/vendor/pear-pear.php.net/PEAR/bin/scripts/pear.bat
deleted file mode 100644
index 7f58376084aa014075f3bc1fdb75c3b7e9a902e6..0000000000000000000000000000000000000000
--- a/vendor/pear-pear.php.net/PEAR/bin/scripts/pear.bat
+++ /dev/null
@@ -1,111 +0,0 @@
-@ECHO OFF
-
-REM ----------------------------------------------------------------------
-REM PHP version 5
-REM ----------------------------------------------------------------------
-REM Copyright (c) 1997-2010 The Authors
-REM ----------------------------------------------------------------------
-REM http://opensource.org/licenses/bsd-license.php New BSD License
-REM ----------------------------------------------------------------------
-REM  Authors:     Alexander Merz (alexmerz@php.net)
-REM ----------------------------------------------------------------------
-REM
-REM  Last updated 12/29/2004 ($Id$ is not replaced if the file is binary)
-
-REM change this lines to match the paths of your system
-REM -------------------
-
-
-REM Test to see if this is a raw pear.bat (uninstalled version)
-SET TMPTMPTMPTMPT=@includ
-SET PMTPMTPMT=%TMPTMPTMPTMPT%e_path@
-FOR %%x IN ("@include_path@") DO (if %%x=="%PMTPMTPMT%" GOTO :NOTINSTALLED)
-
-REM Check PEAR global ENV, set them if they do not exist
-IF "%PHP_PEAR_INSTALL_DIR%"=="" SET "PHP_PEAR_INSTALL_DIR=@include_path@"
-IF "%PHP_PEAR_BIN_DIR%"=="" SET "PHP_PEAR_BIN_DIR=@bin_dir@"
-IF "%PHP_PEAR_PHP_BIN%"=="" SET "PHP_PEAR_PHP_BIN=@php_bin@"
-
-GOTO :INSTALLED
-
-:NOTINSTALLED
-ECHO WARNING: This is a raw, uninstalled pear.bat
-
-REM Check to see if we can grab the directory of this file (Windows NT+)
-IF %~n0 == pear (
-FOR %%x IN (cli\php.exe php.exe) DO (if "%%~$PATH:x" NEQ "" (
-SET "PHP_PEAR_PHP_BIN=%%~$PATH:x"
-echo Using PHP Executable "%PHP_PEAR_PHP_BIN%"
-"%PHP_PEAR_PHP_BIN%" -v
-GOTO :NEXTTEST
-))
-GOTO :FAILAUTODETECT
-:NEXTTEST
-IF "%PHP_PEAR_PHP_BIN%" NEQ "" (
-
-REM We can use this PHP to run a temporary php file to get the dirname of pear
-
-echo ^<?php $s=getcwd^(^);chdir^($a=dirname^(__FILE__^).'\\'^);if^(stristr^($a,'\\scripts'^)^)$a=dirname^(dirname^($a^)^).'\\';$f=fopen^($s.'\\~a.a','wb'^);echo$s.'\\~a.a';fwrite^($f,$a^);fclose^($f^);chdir^($s^);?^> > ~~getloc.php
-"%PHP_PEAR_PHP_BIN%" ~~getloc.php
-set /p PHP_PEAR_BIN_DIR=fakeprompt < ~a.a
-DEL ~a.a
-DEL ~~getloc.php
-set "PHP_PEAR_INSTALL_DIR=%PHP_PEAR_BIN_DIR%pear"
-
-REM Make sure there is a pearcmd.php at our disposal
-
-IF NOT EXIST %PHP_PEAR_INSTALL_DIR%\pearcmd.php (
-IF EXIST %PHP_PEAR_INSTALL_DIR%\scripts\pearcmd.php COPY %PHP_PEAR_INSTALL_DIR%\scripts\pearcmd.php %PHP_PEAR_INSTALL_DIR%\pearcmd.php
-IF EXIST pearcmd.php COPY pearcmd.php %PHP_PEAR_INSTALL_DIR%\pearcmd.php
-IF EXIST %~dp0\scripts\pearcmd.php COPY %~dp0\scripts\pearcmd.php %PHP_PEAR_INSTALL_DIR%\pearcmd.php
-)
-)
-GOTO :INSTALLED
-) ELSE (
-REM Windows Me/98 cannot succeed, so allow the batch to fail
-)
-:FAILAUTODETECT
-echo WARNING: failed to auto-detect pear information
-:INSTALLED
-
-REM Check Folders and files
-IF NOT EXIST "%PHP_PEAR_INSTALL_DIR%" GOTO PEAR_INSTALL_ERROR
-IF NOT EXIST "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" GOTO PEAR_INSTALL_ERROR2
-IF NOT EXIST "%PHP_PEAR_BIN_DIR%" GOTO PEAR_BIN_ERROR
-IF NOT EXIST "%PHP_PEAR_PHP_BIN%" GOTO PEAR_PHPBIN_ERROR
-
-REM launch pearcmd
-GOTO RUN
-:PEAR_INSTALL_ERROR
-ECHO PHP_PEAR_INSTALL_DIR is not set correctly.
-ECHO Please fix it using your environment variable or modify
-ECHO the default value in pear.bat
-ECHO The current value is:
-ECHO %PHP_PEAR_INSTALL_DIR%
-GOTO END
-:PEAR_INSTALL_ERROR2
-ECHO PHP_PEAR_INSTALL_DIR is not set correctly.
-ECHO pearcmd.php could not be found there.
-ECHO Please fix it using your environment variable or modify
-ECHO the default value in pear.bat
-ECHO The current value is:
-ECHO %PHP_PEAR_INSTALL_DIR%
-GOTO END
-:PEAR_BIN_ERROR
-ECHO PHP_PEAR_BIN_DIR is not set correctly.
-ECHO Please fix it using your environment variable or modify
-ECHO the default value in pear.bat
-ECHO The current value is:
-ECHO %PHP_PEAR_BIN_DIR%
-GOTO END
-:PEAR_PHPBIN_ERROR
-ECHO PHP_PEAR_PHP_BIN is not set correctly.
-ECHO Please fix it using your environment variable or modify
-ECHO the default value in pear.bat
-ECHO The current value is:
-ECHO %PHP_PEAR_PHP_BIN%
-GOTO END
-:RUN
-"%PHP_PEAR_PHP_BIN%" -C -d date.timezone=UTC -d output_buffering=1 -d safe_mode=0 -d open_basedir="" -d auto_prepend_file="" -d auto_append_file="" -d variables_order=EGPCS -d register_argc_argv="On" -d "include_path='%PHP_PEAR_INSTALL_DIR%'" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9
-:END
-@ECHO ON
\ No newline at end of file
diff --git a/vendor/pear-pear.php.net/PEAR/bin/scripts/peardev.bat b/vendor/pear-pear.php.net/PEAR/bin/scripts/peardev.bat
deleted file mode 100644
index 48e03872b4ae01e5644a7905c69f9d09d24e1008..0000000000000000000000000000000000000000
--- a/vendor/pear-pear.php.net/PEAR/bin/scripts/peardev.bat
+++ /dev/null
@@ -1,115 +0,0 @@
-@ECHO OFF
-
-REM ----------------------------------------------------------------------
-REM PHP version 5
-REM ----------------------------------------------------------------------
-REM Copyright (c) 1997-2004 The PHP Group
-REM ----------------------------------------------------------------------
-REM  This source file is subject to version 3.0 of the PHP license,
-REM  that is bundled with this package in the file LICENSE, and is
-REM  available at through the world-wide-web at
-REM  http://www.php.net/license/3_0.txt.
-REM  If you did not receive a copy of the PHP license and are unable to
-REM  obtain it through the world-wide-web, please send a note to
-REM  license@php.net so we can mail you a copy immediately.
-REM ----------------------------------------------------------------------
-REM  Authors:     Alexander Merz (alexmerz@php.net)
-REM ----------------------------------------------------------------------
-REM
-REM  $Id: peardev.bat,v 1.6 2007-09-03 03:00:17 cellog Exp $
-
-REM change this lines to match the paths of your system
-REM -------------------
-
-
-REM Test to see if this is a raw pear.bat (uninstalled version)
-SET TMPTMPTMPTMPT=@includ
-SET PMTPMTPMT=%TMPTMPTMPTMPT%e_path@
-FOR %%x IN ("@include_path@") DO (if %%x=="%PMTPMTPMT%" GOTO :NOTINSTALLED)
-
-REM Check PEAR global ENV, set them if they do not exist
-IF "%PHP_PEAR_INSTALL_DIR%"=="" SET "PHP_PEAR_INSTALL_DIR=@include_path@"
-IF "%PHP_PEAR_BIN_DIR%"=="" SET "PHP_PEAR_BIN_DIR=@bin_dir@"
-IF "%PHP_PEAR_PHP_BIN%"=="" SET "PHP_PEAR_PHP_BIN=@php_bin@"
-GOTO :INSTALLED
-
-:NOTINSTALLED
-ECHO WARNING: This is a raw, uninstalled pear.bat
-
-REM Check to see if we can grab the directory of this file (Windows NT+)
-IF %~n0 == pear (
-FOR %%x IN (cli\php.exe php.exe) DO (if "%%~$PATH:x" NEQ "" (
-SET "PHP_PEAR_PHP_BIN=%%~$PATH:x"
-echo Using PHP Executable "%PHP_PEAR_PHP_BIN%"
-"%PHP_PEAR_PHP_BIN%" -v
-GOTO :NEXTTEST
-))
-GOTO :FAILAUTODETECT
-:NEXTTEST
-IF "%PHP_PEAR_PHP_BIN%" NEQ "" (
-
-REM We can use this PHP to run a temporary php file to get the dirname of pear
-
-echo ^<?php $s=getcwd^(^);chdir^($a=dirname^(__FILE__^).'\\'^);if^(stristr^($a,'\\scripts'^)^)$a=dirname^(dirname^($a^)^).'\\';$f=fopen^($s.'\\~a.a','wb'^);echo$s.'\\~a.a';fwrite^($f,$a^);fclose^($f^);chdir^($s^);?^> > ~~getloc.php
-"%PHP_PEAR_PHP_BIN%" ~~getloc.php
-set /p PHP_PEAR_BIN_DIR=fakeprompt < ~a.a
-DEL ~a.a
-DEL ~~getloc.php
-set "PHP_PEAR_INSTALL_DIR=%PHP_PEAR_BIN_DIR%pear"
-
-REM Make sure there is a pearcmd.php at our disposal
-
-IF NOT EXIST %PHP_PEAR_INSTALL_DIR%\pearcmd.php (
-IF EXIST %PHP_PEAR_INSTALL_DIR%\scripts\pearcmd.php COPY %PHP_PEAR_INSTALL_DIR%\scripts\pearcmd.php %PHP_PEAR_INSTALL_DIR%\pearcmd.php
-IF EXIST pearcmd.php COPY pearcmd.php %PHP_PEAR_INSTALL_DIR%\pearcmd.php
-IF EXIST %~dp0\scripts\pearcmd.php COPY %~dp0\scripts\pearcmd.php %PHP_PEAR_INSTALL_DIR%\pearcmd.php
-)
-)
-GOTO :INSTALLED
-) ELSE (
-REM Windows Me/98 cannot succeed, so allow the batch to fail
-)
-:FAILAUTODETECT
-echo WARNING: failed to auto-detect pear information
-:INSTALLED
-
-REM Check Folders and files
-IF NOT EXIST "%PHP_PEAR_INSTALL_DIR%" GOTO PEAR_INSTALL_ERROR
-IF NOT EXIST "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" GOTO PEAR_INSTALL_ERROR2
-IF NOT EXIST "%PHP_PEAR_BIN_DIR%" GOTO PEAR_BIN_ERROR
-IF NOT EXIST "%PHP_PEAR_PHP_BIN%" GOTO PEAR_PHPBIN_ERROR
-REM launch pearcmd
-GOTO RUN
-:PEAR_INSTALL_ERROR
-ECHO PHP_PEAR_INSTALL_DIR is not set correctly.
-ECHO Please fix it using your environment variable or modify
-ECHO the default value in pear.bat
-ECHO The current value is:
-ECHO %PHP_PEAR_INSTALL_DIR%
-GOTO END
-:PEAR_INSTALL_ERROR2
-ECHO PHP_PEAR_INSTALL_DIR is not set correctly.
-ECHO pearcmd.php could not be found there.
-ECHO Please fix it using your environment variable or modify
-ECHO the default value in pear.bat
-ECHO The current value is:
-ECHO %PHP_PEAR_INSTALL_DIR%
-GOTO END
-:PEAR_BIN_ERROR
-ECHO PHP_PEAR_BIN_DIR is not set correctly.
-ECHO Please fix it using your environment variable or modify
-ECHO the default value in pear.bat
-ECHO The current value is:
-ECHO %PHP_PEAR_BIN_DIR%
-GOTO END
-:PEAR_PHPBIN_ERROR
-ECHO PHP_PEAR_PHP_BIN is not set correctly.
-ECHO Please fix it using your environment variable or modify
-ECHO the default value in pear.bat
-ECHO The current value is:
-ECHO %PHP_PEAR_PHP_BIN%
-GOTO END
-:RUN
-"%PHP_PEAR_PHP_BIN%" -C -d date.timezone=UTC -d memory_limit="-1" -d safe_mode=0 -d register_argc_argv="On" -d auto_prepend_file="" -d auto_append_file="" -d variables_order=EGPCS -d open_basedir="" -d output_buffering=1 -d "include_path='%PHP_PEAR_INSTALL_DIR%'" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9
-:END
-@ECHO ON
\ No newline at end of file
diff --git a/vendor/pear-pear.php.net/PEAR/bin/scripts/pecl.bat b/vendor/pear-pear.php.net/PEAR/bin/scripts/pecl.bat
deleted file mode 100644
index f604284de0305ec53569572cdcda230d0366746d..0000000000000000000000000000000000000000
--- a/vendor/pear-pear.php.net/PEAR/bin/scripts/pecl.bat
+++ /dev/null
@@ -1,115 +0,0 @@
-@ECHO OFF
-
-REM ----------------------------------------------------------------------
-REM PHP version 5
-REM ----------------------------------------------------------------------
-REM Copyright (c) 1997-2004 The PHP Group
-REM ----------------------------------------------------------------------
-REM  This source file is subject to version 3.0 of the PHP license,
-REM  that is bundled with this package in the file LICENSE, and is
-REM  available at through the world-wide-web at
-REM  http://www.php.net/license/3_0.txt.
-REM  If you did not receive a copy of the PHP license and are unable to
-REM  obtain it through the world-wide-web, please send a note to
-REM  license@php.net so we can mail you a copy immediately.
-REM ----------------------------------------------------------------------
-REM  Authors:     Alexander Merz (alexmerz@php.net)
-REM ----------------------------------------------------------------------
-REM
-REM  Last updated 02/08/2004 ($Id$ is not replaced if the file is binary)
-
-REM change this lines to match the paths of your system
-REM -------------------
-
-
-REM Test to see if this is a raw pear.bat (uninstalled version)
-SET TMPTMPTMPTMPT=@includ
-SET PMTPMTPMT=%TMPTMPTMPTMPT%e_path@
-FOR %%x IN ("@include_path@") DO (if %%x=="%PMTPMTPMT%" GOTO :NOTINSTALLED)
-
-REM Check PEAR global ENV, set them if they do not exist
-IF "%PHP_PEAR_INSTALL_DIR%"=="" SET "PHP_PEAR_INSTALL_DIR=@include_path@"
-IF "%PHP_PEAR_BIN_DIR%"=="" SET "PHP_PEAR_BIN_DIR=@bin_dir@"
-IF "%PHP_PEAR_PHP_BIN%"=="" SET "PHP_PEAR_PHP_BIN=@php_bin@"
-GOTO :INSTALLED
-
-:NOTINSTALLED
-ECHO WARNING: This is a raw, uninstalled pear.bat
-
-REM Check to see if we can grab the directory of this file (Windows NT+)
-IF %~n0 == pear (
-FOR %%x IN (cli\php.exe php.exe) DO (if "%%~$PATH:x" NEQ "" (
-SET "PHP_PEAR_PHP_BIN=%%~$PATH:x"
-echo Using PHP Executable "%PHP_PEAR_PHP_BIN%"
-"%PHP_PEAR_PHP_BIN%" -v
-GOTO :NEXTTEST
-))
-GOTO :FAILAUTODETECT
-:NEXTTEST
-IF "%PHP_PEAR_PHP_BIN%" NEQ "" (
-
-REM We can use this PHP to run a temporary php file to get the dirname of pear
-
-echo ^<?php $s=getcwd^(^);chdir^($a=dirname^(__FILE__^).'\\'^);if^(stristr^($a,'\\scripts'^)^)$a=dirname^(dirname^($a^)^).'\\';$f=fopen^($s.'\\~a.a','wb'^);echo$s.'\\~a.a';fwrite^($f,$a^);fclose^($f^);chdir^($s^);?^> > ~~getloc.php
-"%PHP_PEAR_PHP_BIN%" ~~getloc.php
-set /p PHP_PEAR_BIN_DIR=fakeprompt < ~a.a
-DEL ~a.a
-DEL ~~getloc.php
-set "PHP_PEAR_INSTALL_DIR=%PHP_PEAR_BIN_DIR%pear"
-
-REM Make sure there is a pearcmd.php at our disposal
-
-IF NOT EXIST %PHP_PEAR_INSTALL_DIR%\pearcmd.php (
-IF EXIST %PHP_PEAR_INSTALL_DIR%\scripts\pearcmd.php COPY %PHP_PEAR_INSTALL_DIR%\scripts\pearcmd.php %PHP_PEAR_INSTALL_DIR%\pearcmd.php
-IF EXIST pearcmd.php COPY pearcmd.php %PHP_PEAR_INSTALL_DIR%\pearcmd.php
-IF EXIST %~dp0\scripts\pearcmd.php COPY %~dp0\scripts\pearcmd.php %PHP_PEAR_INSTALL_DIR%\pearcmd.php
-)
-)
-GOTO :INSTALLED
-) ELSE (
-REM Windows Me/98 cannot succeed, so allow the batch to fail
-)
-:FAILAUTODETECT
-echo WARNING: failed to auto-detect pear information
-:INSTALLED
-
-REM Check Folders and files
-IF NOT EXIST "%PHP_PEAR_INSTALL_DIR%" GOTO PEAR_INSTALL_ERROR
-IF NOT EXIST "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" GOTO PEAR_INSTALL_ERROR2
-IF NOT EXIST "%PHP_PEAR_BIN_DIR%" GOTO PEAR_BIN_ERROR
-IF NOT EXIST "%PHP_PEAR_PHP_BIN%" GOTO PEAR_PHPBIN_ERROR
-REM launch pearcmd
-GOTO RUN
-:PEAR_INSTALL_ERROR
-ECHO PHP_PEAR_INSTALL_DIR is not set correctly.
-ECHO Please fix it using your environment variable or modify
-ECHO the default value in pear.bat
-ECHO The current value is:
-ECHO %PHP_PEAR_INSTALL_DIR%
-GOTO END
-:PEAR_INSTALL_ERROR2
-ECHO PHP_PEAR_INSTALL_DIR is not set correctly.
-ECHO pearcmd.php could not be found there.
-ECHO Please fix it using your environment variable or modify
-ECHO the default value in pear.bat
-ECHO The current value is:
-ECHO %PHP_PEAR_INSTALL_DIR%
-GOTO END
-:PEAR_BIN_ERROR
-ECHO PHP_PEAR_BIN_DIR is not set correctly.
-ECHO Please fix it using your environment variable or modify
-ECHO the default value in pear.bat
-ECHO The current value is:
-ECHO %PHP_PEAR_BIN_DIR%
-GOTO END
-:PEAR_PHPBIN_ERROR
-ECHO PHP_PEAR_PHP_BIN is not set correctly.
-ECHO Please fix it using your environment variable or modify
-ECHO the default value in pear.bat
-ECHO The current value is:
-ECHO %PHP_PEAR_PHP_BIN%
-GOTO END
-:RUN
-"%PHP_PEAR_PHP_BIN%" -C -n -d date.timezone=UTC -d output_buffering=1 -d safe_mode=0 -d "include_path='%PHP_PEAR_INSTALL_DIR%'" -d register_argc_argv="On" -d variables_order=EGPCS -f "%PHP_PEAR_INSTALL_DIR%\peclcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9
-:END
-@ECHO ON
\ No newline at end of file
diff --git a/vendor/pear-pear.php.net/PEAR/scripts/pearcmd.php b/vendor/pear-pear.php.net/PEAR/pearcmd.php
similarity index 97%
rename from vendor/pear-pear.php.net/PEAR/scripts/pearcmd.php
rename to vendor/pear-pear.php.net/PEAR/pearcmd.php
index a3a928a3c09b6dd253e8f166768ed53a588ed786..3f5ce93e627b6bcee6e47f9c29cf32c8bf2c907c 100644
--- a/vendor/pear-pear.php.net/PEAR/scripts/pearcmd.php
+++ b/vendor/pear-pear.php.net/PEAR/pearcmd.php
@@ -12,11 +12,11 @@
  * @author     Tomas V.V.Cox <cox@idecnet.com>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: pearcmd.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  */
 
-ob_end_clean();
+@ob_end_clean();
 if (!defined('PEAR_RUNTYPE')) {
     // this is defined in peclcmd.php as 'pecl'
     define('PEAR_RUNTYPE', 'pear');
@@ -25,8 +25,10 @@ define('PEAR_IGNORE_BACKTRACE', 1);
 /**
  * @nodep Gtk
  */
-if ('@include_path@' != '@'.'include_path'.'@') {
-    ini_set('include_path', '@include_path@');
+//the space is needed for windows include paths with trailing backslash
+// http://pear.php.net/bugs/bug.php?id=19482
+if ('/stage/local/vufind/vendor/pear-pear.php.net/PEAR ' != '@'.'include_path'.'@ ') {
+    ini_set('include_path', trim('/stage/local/vufind/vendor/pear-pear.php.net/PEAR '));
     $raw = false;
 } else {
     // this is a raw, uninstalled pear, either a cvs checkout, or php distro
@@ -43,7 +45,7 @@ ob_implicit_flush(true);
 $_PEAR_PHPDIR = '#$%^&*';
 set_error_handler('error_handler');
 
-$pear_package_version = "@pear_version@";
+$pear_package_version = "1.9.5";
 
 require_once 'PEAR.php';
 require_once 'PEAR/Frontend.php';
diff --git a/vendor/pear-pear.php.net/PEAR/scripts/peclcmd.php b/vendor/pear-pear.php.net/PEAR/peclcmd.php
similarity index 70%
rename from vendor/pear-pear.php.net/PEAR/scripts/peclcmd.php
rename to vendor/pear-pear.php.net/PEAR/peclcmd.php
index 498caafd11c730785115e2a3cabff4efb8d5584d..697d05c6d0d26f44b4e3da1bc47917eda7577933 100644
--- a/vendor/pear-pear.php.net/PEAR/scripts/peclcmd.php
+++ b/vendor/pear-pear.php.net/PEAR/peclcmd.php
@@ -12,15 +12,17 @@
  * @author     Tomas V.V.Cox <cox@idecnet.com>
  * @copyright  1997-2009 The Authors
  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
- * @version    CVS: $Id: peclcmd.php 313023 2011-07-06 19:17:11Z dufuz $
+ * @version    CVS: $Id$
  * @link       http://pear.php.net/package/PEAR
  */
 
 /**
  * @nodep Gtk
  */
-if ('@include_path@' != '@'.'include_path'.'@') {
-    ini_set('include_path', '@include_path@');
+//the space is needed for windows include paths with trailing backslash
+// http://pear.php.net/bugs/bug.php?id=19482
+if ('/stage/local/vufind/vendor/pear-pear.php.net/PEAR ' != '@'.'include_path'.'@ ') {
+    ini_set('include_path', trim('/stage/local/vufind/vendor/pear-pear.php.net/PEAR '));
     $raw = false;
 } else {
     // this is a raw, uninstalled pear, either a cvs checkout, or php distro
diff --git a/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php b/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
index 9539e36aa3c7ff6d175d6e05633aad65f102b8c2..0577b5e8853bf1c55d1f9a3a21e9d28d87cc6d7a 100644
--- a/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
+++ b/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
@@ -66,6 +66,7 @@ class Parser
 
         $data = array();
         $context = null;
+        $allowOverwrite = false;
         while ($this->moveToNextLine()) {
             if ($this->isCurrentLineEmpty()) {
                 continue;
@@ -76,7 +77,7 @@ class Parser
                 throw new ParseException('A YAML file cannot contain tabs as indentation.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
             }
 
-            $isRef = $isInPlace = $isProcessed = false;
+            $isRef = $mergeNode = false;
             if (preg_match('#^\-((?P<leadspaces>\s+)(?P<value>.+?))?\s*$#u', $this->currentLine, $values)) {
                 if ($context && 'mapping' == $context) {
                     throw new ParseException('You cannot define a sequence item when in a mapping');
@@ -132,10 +133,24 @@ class Parser
                 }
 
                 if ('<<' === $key) {
+                    $mergeNode = true;
+                    $allowOverwrite = true;
                     if (isset($values['value']) && 0 === strpos($values['value'], '*')) {
-                        $isInPlace = substr($values['value'], 1);
-                        if (!array_key_exists($isInPlace, $this->refs)) {
-                            throw new ParseException(sprintf('Reference "%s" does not exist.', $isInPlace), $this->getRealCurrentLineNb() + 1, $this->currentLine);
+                        $refName = substr($values['value'], 1);
+                        if (!array_key_exists($refName, $this->refs)) {
+                            throw new ParseException(sprintf('Reference "%s" does not exist.', $refName), $this->getRealCurrentLineNb() + 1, $this->currentLine);
+                        }
+
+                        $refValue = $this->refs[$refName];
+
+                        if (!is_array($refValue)) {
+                            throw new ParseException('YAML merge keys used with a scalar value instead of an array.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
+                        }
+
+                        foreach ($refValue as $key => $value) {
+                            if (!isset($data[$key])) {
+                                $data[$key] = $value;
+                            }
                         }
                     } else {
                         if (isset($values['value']) && $values['value'] !== '') {
@@ -148,40 +163,49 @@ class Parser
                         $parser->refs =& $this->refs;
                         $parsed = $parser->parse($value, $exceptionOnInvalidType, $objectSupport);
 
-                        $merged = array();
                         if (!is_array($parsed)) {
                             throw new ParseException('YAML merge keys used with a scalar value instead of an array.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
-                        } elseif (isset($parsed[0])) {
-                            // Numeric array, merge individual elements
-                            foreach (array_reverse($parsed) as $parsedItem) {
+                        }
+
+                        if (isset($parsed[0])) {
+                            // If the value associated with the merge key is a sequence, then this sequence is expected to contain mapping nodes
+                            // and each of these nodes is merged in turn according to its order in the sequence. Keys in mapping nodes earlier
+                            // in the sequence override keys specified in later mapping nodes.
+                            foreach ($parsed as $parsedItem) {
                                 if (!is_array($parsedItem)) {
                                     throw new ParseException('Merge items must be arrays.', $this->getRealCurrentLineNb() + 1, $parsedItem);
                                 }
-                                $merged = array_merge($parsedItem, $merged);
+
+                                foreach ($parsedItem as $key => $value) {
+                                    if (!isset($data[$key])) {
+                                        $data[$key] = $value;
+                                    }
+                                }
                             }
                         } else {
-                            // Associative array, merge
-                            $merged = array_merge($merged, $parsed);
+                            // If the value associated with the key is a single mapping node, each of its key/value pairs is inserted into the
+                            // current mapping, unless the key already exists in it.
+                            foreach ($parsed as $key => $value) {
+                                if (!isset($data[$key])) {
+                                    $data[$key] = $value;
+                                }
+                            }
                         }
-
-                        $isProcessed = $merged;
                     }
                 } elseif (isset($values['value']) && preg_match('#^&(?P<ref>[^ ]+) *(?P<value>.*)#u', $values['value'], $matches)) {
                     $isRef = $matches['ref'];
                     $values['value'] = $matches['value'];
                 }
 
-                if ($isProcessed) {
+                if ($mergeNode) {
                     // Merge keys
-                    $data = $isProcessed;
-                // hash
                 } elseif (!isset($values['value']) || '' == trim($values['value'], ' ') || 0 === strpos(ltrim($values['value'], ' '), '#')) {
+                    // hash
                     // if next line is less indented or equal, then it means that the current value is null
                     if (!$this->isNextLineIndented() && !$this->isNextLineUnIndentedCollection()) {
                         // Spec: Keys MUST be unique; first one wins.
-                        // Parser cannot abort this mapping earlier, since lines
-                        // are processed sequentially.
-                        if (!isset($data[$key])) {
+                        // But overwriting is allowed when a merge node is used in current block.
+                        if ($allowOverwrite || !isset($data[$key])) {
                             $data[$key] = null;
                         }
                     } else {
@@ -190,23 +214,17 @@ class Parser
                         $parser->refs =& $this->refs;
                         $value = $parser->parse($this->getNextEmbedBlock(), $exceptionOnInvalidType, $objectSupport);
                         // Spec: Keys MUST be unique; first one wins.
-                        // Parser cannot abort this mapping earlier, since lines
-                        // are processed sequentially.
-                        if (!isset($data[$key])) {
+                        // But overwriting is allowed when a merge node is used in current block.
+                        if ($allowOverwrite || !isset($data[$key])) {
                             $data[$key] = $value;
                         }
                     }
                 } else {
-                    if ($isInPlace) {
-                        $data = $this->refs[$isInPlace];
-                    } else {
-                        $value = $this->parseValue($values['value'], $exceptionOnInvalidType, $objectSupport);;
-                        // Spec: Keys MUST be unique; first one wins.
-                        // Parser cannot abort this mapping earlier, since lines
-                        // are processed sequentially.
-                        if (!isset($data[$key])) {
-                            $data[$key] = $value;
-                        }
+                    $value = $this->parseValue($values['value'], $exceptionOnInvalidType, $objectSupport);
+                    // Spec: Keys MUST be unique; first one wins.
+                    // But overwriting is allowed when a merge node is used in current block.
+                    if ($allowOverwrite || !isset($data[$key])) {
+                        $data[$key] = $value;
                     }
                 }
             } else {
diff --git a/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfMergeKey.yml b/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfMergeKey.yml
index 3eec4f877daacadc07c9eb068d9c448152d40b47..fd9910174dade40eeaa1557a7bcbd94b29a5425e 100644
--- a/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfMergeKey.yml
+++ b/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfMergeKey.yml
@@ -10,9 +10,19 @@ yaml: |
         a: Steve
         b: Clark
         c: Brian
-    bar: &bar
+    bar:
+        a: before
+        d: other
         <<: *foo
+        b: new
         x: Oren
+        c:
+            foo: bar
+            foo: ignore
+            bar: foo
+    duplicate:
+        foo: bar
+        foo: ignore
     foo2: &foo2
         a: Ballmer
     ding: &dong [ fi, fei, fo, fam]
@@ -24,4 +34,12 @@ yaml: |
     head:
         <<: [ *foo , *dong , *foo2 ]
 php: |
-    array('foo' => array('a' => 'Steve', 'b' => 'Clark', 'c' => 'Brian'), 'bar' => array('a' => 'Steve', 'b' => 'Clark', 'c' => 'Brian', 'x' => 'Oren'), 'foo2' => array('a' => 'Ballmer'), 'ding' => array('fi', 'fei', 'fo', 'fam'), 'check' => array('a' => 'Steve', 'b' => 'Clark', 'c' => 'Brian', 'fi', 'fei', 'fo', 'fam', 'isit' => 'tested'), 'head' => array('a' => 'Ballmer', 'b' => 'Clark', 'c' => 'Brian', 'fi', 'fei', 'fo', 'fam'))
+    array(
+        'foo' => array('a' => 'Steve', 'b' => 'Clark', 'c' => 'Brian'),
+        'bar' => array('a' => 'before', 'd' => 'other', 'b' => 'new', 'c' => array('foo' => 'bar', 'bar' => 'foo'), 'x' => 'Oren'),
+        'duplicate' => array('foo' => 'bar'),
+        'foo2' => array('a' => 'Ballmer'),
+        'ding' => array('fi', 'fei', 'fo', 'fam'),
+        'check' => array('a' => 'Steve', 'b' => 'Clark', 'c' => 'Brian', 'fi', 'fei', 'fo', 'fam', 'isit' => 'tested'),
+        'head' => array('a' => 'Steve', 'b' => 'Clark', 'c' => 'Brian', 'fi', 'fei', 'fo', 'fam')
+    )
diff --git a/vendor/symfony/yaml/Symfony/Component/Yaml/phpunit.xml.dist b/vendor/symfony/yaml/Symfony/Component/Yaml/phpunit.xml.dist
index aa77e9de77ce02811de4f3291e4ca5feb97d5fb1..90e0bcc27efe8ea31b97a6d205735ee5656b0fc7 100644
--- a/vendor/symfony/yaml/Symfony/Component/Yaml/phpunit.xml.dist
+++ b/vendor/symfony/yaml/Symfony/Component/Yaml/phpunit.xml.dist
@@ -1,14 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
+<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
+         backupGlobals="false"
          colors="true"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         processIsolation="false"
-         stopOnFailure="false"
-         syntaxCheck="false"
          bootstrap="vendor/autoload.php"
 >
     <testsuites>