diff --git a/core/composer.lock b/core/composer.lock
index be489a2..9c24eb3 100644
--- a/core/composer.lock
+++ b/core/composer.lock
@@ -1695,24 +1695,24 @@
         },
         {
             "name": "symfony/class-loader",
-            "version": "v2.6.1",
+            "version": "v2.6.4",
             "target-dir": "Symfony/Component/ClassLoader",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/ClassLoader.git",
-                "reference": "ba3300e6d79eb51ca9edf77791bbd0497f6030dc"
+                "reference": "deac802f76910708ab50d039806cfd1866895b52"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/ba3300e6d79eb51ca9edf77791bbd0497f6030dc",
-                "reference": "ba3300e6d79eb51ca9edf77791bbd0497f6030dc",
+                "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/deac802f76910708ab50d039806cfd1866895b52",
+                "reference": "deac802f76910708ab50d039806cfd1866895b52",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.3"
             },
             "require-dev": {
-                "symfony/finder": "~2.0"
+                "symfony/finder": "~2.0,>=2.0.5"
             },
             "type": "library",
             "extra": {
@@ -1741,21 +1741,21 @@
             ],
             "description": "Symfony ClassLoader Component",
             "homepage": "http://symfony.com",
-            "time": "2014-12-02 20:19:20"
+            "time": "2015-01-05 14:28:40"
         },
         {
             "name": "symfony/css-selector",
-            "version": "v2.6.1",
+            "version": "v2.6.4",
             "target-dir": "Symfony/Component/CssSelector",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/CssSelector.git",
-                "reference": "93eb315b545b60a908271762fb4bfa1f9954b851"
+                "reference": "3f80ecc614fec68d5b4a84a0703db3fdf5ce8584"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/CssSelector/zipball/93eb315b545b60a908271762fb4bfa1f9954b851",
-                "reference": "93eb315b545b60a908271762fb4bfa1f9954b851",
+                "url": "https://api.github.com/repos/symfony/CssSelector/zipball/3f80ecc614fec68d5b4a84a0703db3fdf5ce8584",
+                "reference": "3f80ecc614fec68d5b4a84a0703db3fdf5ce8584",
                 "shasum": ""
             },
             "require": {
@@ -1792,30 +1792,34 @@
             ],
             "description": "Symfony CssSelector Component",
             "homepage": "http://symfony.com",
-            "time": "2014-12-02 20:19:20"
+            "time": "2015-01-03 08:01:59"
         },
         {
             "name": "symfony/debug",
-            "version": "v2.6.1",
+            "version": "v2.6.4",
             "target-dir": "Symfony/Component/Debug",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Debug.git",
-                "reference": "08b529b4c0aa3e746d187fe2a63f08cb955a3566"
+                "reference": "150c80059c3ccf68f96a4fceb513eb6b41f23300"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Debug/zipball/08b529b4c0aa3e746d187fe2a63f08cb955a3566",
-                "reference": "08b529b4c0aa3e746d187fe2a63f08cb955a3566",
+                "url": "https://api.github.com/repos/symfony/Debug/zipball/150c80059c3ccf68f96a4fceb513eb6b41f23300",
+                "reference": "150c80059c3ccf68f96a4fceb513eb6b41f23300",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.3",
                 "psr/log": "~1.0"
             },
+            "conflict": {
+                "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
+            },
             "require-dev": {
+                "symfony/class-loader": "~2.2",
                 "symfony/http-foundation": "~2.1",
-                "symfony/http-kernel": "~2.1"
+                "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2"
             },
             "suggest": {
                 "symfony/http-foundation": "",
@@ -1848,30 +1852,33 @@
             ],
             "description": "Symfony Debug Component",
             "homepage": "http://symfony.com",
-            "time": "2014-12-02 20:19:20"
+            "time": "2015-01-21 20:57:55"
         },
         {
             "name": "symfony/dependency-injection",
-            "version": "v2.6.1",
+            "version": "v2.6.4",
             "target-dir": "Symfony/Component/DependencyInjection",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/DependencyInjection.git",
-                "reference": "e2693382ef9456a7c7e382f34f813e4b4332941d"
+                "reference": "42bbb43fab66292a1865dc9616c299904c3d4d14"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/e2693382ef9456a7c7e382f34f813e4b4332941d",
-                "reference": "e2693382ef9456a7c7e382f34f813e4b4332941d",
+                "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/42bbb43fab66292a1865dc9616c299904c3d4d14",
+                "reference": "42bbb43fab66292a1865dc9616c299904c3d4d14",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.3"
             },
+            "conflict": {
+                "symfony/expression-language": "<2.6"
+            },
             "require-dev": {
                 "symfony/config": "~2.2",
-                "symfony/expression-language": "~2.4",
-                "symfony/yaml": "~2.0"
+                "symfony/expression-language": "~2.6",
+                "symfony/yaml": "~2.1"
             },
             "suggest": {
                 "symfony/config": "",
@@ -1905,21 +1912,21 @@
             ],
             "description": "Symfony DependencyInjection Component",
             "homepage": "http://symfony.com",
-            "time": "2014-12-03 09:22:11"
+            "time": "2015-01-25 04:39:26"
         },
         {
             "name": "symfony/event-dispatcher",
-            "version": "v2.6.1",
+            "version": "v2.6.4",
             "target-dir": "Symfony/Component/EventDispatcher",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/EventDispatcher.git",
-                "reference": "720fe9bca893df7ad1b4546649473b5afddf0216"
+                "reference": "f75989f3ab2743a82fe0b03ded2598a2b1546813"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/720fe9bca893df7ad1b4546649473b5afddf0216",
-                "reference": "720fe9bca893df7ad1b4546649473b5afddf0216",
+                "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/f75989f3ab2743a82fe0b03ded2598a2b1546813",
+                "reference": "f75989f3ab2743a82fe0b03ded2598a2b1546813",
                 "shasum": ""
             },
             "require": {
@@ -1927,10 +1934,10 @@
             },
             "require-dev": {
                 "psr/log": "~1.0",
-                "symfony/config": "~2.0",
+                "symfony/config": "~2.0,>=2.0.5",
                 "symfony/dependency-injection": "~2.6",
                 "symfony/expression-language": "~2.6",
-                "symfony/stopwatch": "~2.2"
+                "symfony/stopwatch": "~2.3"
             },
             "suggest": {
                 "symfony/dependency-injection": "",
@@ -1963,21 +1970,21 @@
             ],
             "description": "Symfony EventDispatcher Component",
             "homepage": "http://symfony.com",
-            "time": "2014-12-02 20:19:20"
+            "time": "2015-02-01 16:10:57"
         },
         {
             "name": "symfony/http-foundation",
-            "version": "v2.6.1",
+            "version": "v2.6.4",
             "target-dir": "Symfony/Component/HttpFoundation",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/HttpFoundation.git",
-                "reference": "0109221f3cf012bf027768ad3e4236dae1af5332"
+                "reference": "8fa63d614d56ccfe033e30411d90913cfc483ff6"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/0109221f3cf012bf027768ad3e4236dae1af5332",
-                "reference": "0109221f3cf012bf027768ad3e4236dae1af5332",
+                "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/8fa63d614d56ccfe033e30411d90913cfc483ff6",
+                "reference": "8fa63d614d56ccfe033e30411d90913cfc483ff6",
                 "shasum": ""
             },
             "require": {
@@ -2016,43 +2023,45 @@
             ],
             "description": "Symfony HttpFoundation Component",
             "homepage": "http://symfony.com",
-            "time": "2014-12-02 20:19:20"
+            "time": "2015-02-01 16:10:57"
         },
         {
             "name": "symfony/http-kernel",
-            "version": "v2.6.1",
+            "version": "v2.6.4",
             "target-dir": "Symfony/Component/HttpKernel",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/HttpKernel.git",
-                "reference": "6e911d8a9e1a11c4584ad7b03858afa94e627203"
+                "reference": "27abf3106d8bd08562070dd4e2438c279792c434"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/6e911d8a9e1a11c4584ad7b03858afa94e627203",
-                "reference": "6e911d8a9e1a11c4584ad7b03858afa94e627203",
+                "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/27abf3106d8bd08562070dd4e2438c279792c434",
+                "reference": "27abf3106d8bd08562070dd4e2438c279792c434",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.3",
                 "psr/log": "~1.0",
-                "symfony/debug": "~2.6",
-                "symfony/event-dispatcher": "~2.5",
-                "symfony/http-foundation": "~2.5"
+                "symfony/debug": "~2.6,>=2.6.2",
+                "symfony/event-dispatcher": "~2.5.9|~2.6,>=2.6.2",
+                "symfony/http-foundation": "~2.5,>=2.5.4"
             },
             "require-dev": {
-                "symfony/browser-kit": "~2.2",
+                "symfony/browser-kit": "~2.3",
                 "symfony/class-loader": "~2.1",
-                "symfony/config": "~2.0",
-                "symfony/console": "~2.2",
-                "symfony/dependency-injection": "~2.0",
+                "symfony/config": "~2.0,>=2.0.5",
+                "symfony/console": "~2.3",
+                "symfony/css-selector": "~2.0,>=2.0.5",
+                "symfony/dependency-injection": "~2.2",
+                "symfony/dom-crawler": "~2.0,>=2.0.5",
                 "symfony/expression-language": "~2.4",
-                "symfony/finder": "~2.0",
-                "symfony/process": "~2.0",
+                "symfony/finder": "~2.0,>=2.0.5",
+                "symfony/process": "~2.0,>=2.0.5",
                 "symfony/routing": "~2.2",
-                "symfony/stopwatch": "~2.2",
+                "symfony/stopwatch": "~2.3",
                 "symfony/templating": "~2.2",
-                "symfony/translation": "~2.0",
+                "symfony/translation": "~2.0,>=2.0.5",
                 "symfony/var-dumper": "~2.6"
             },
             "suggest": {
@@ -2091,21 +2100,21 @@
             ],
             "description": "Symfony HttpKernel Component",
             "homepage": "http://symfony.com",
-            "time": "2014-12-03 16:40:43"
+            "time": "2015-02-02 18:02:30"
         },
         {
             "name": "symfony/process",
-            "version": "v2.6.1",
+            "version": "v2.6.4",
             "target-dir": "Symfony/Component/Process",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Process.git",
-                "reference": "bf0c9bd625f13b0b0bbe39919225cf145dfb935a"
+                "reference": "ecfc23e89d9967999fa5f60a1e9af7384396e9ae"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Process/zipball/bf0c9bd625f13b0b0bbe39919225cf145dfb935a",
-                "reference": "bf0c9bd625f13b0b0bbe39919225cf145dfb935a",
+                "url": "https://api.github.com/repos/symfony/Process/zipball/ecfc23e89d9967999fa5f60a1e9af7384396e9ae",
+                "reference": "ecfc23e89d9967999fa5f60a1e9af7384396e9ae",
                 "shasum": ""
             },
             "require": {
@@ -2138,21 +2147,21 @@
             ],
             "description": "Symfony Process Component",
             "homepage": "http://symfony.com",
-            "time": "2014-12-02 20:19:20"
+            "time": "2015-01-25 04:39:26"
         },
         {
             "name": "symfony/routing",
-            "version": "v2.6.1",
+            "version": "v2.6.4",
             "target-dir": "Symfony/Component/Routing",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Routing.git",
-                "reference": "b50c10839e1639fb3a89710f9510b63cc8be54c5"
+                "reference": "bda1c3c67f2a33bbeabb1d321feaf626a0ca5698"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Routing/zipball/b50c10839e1639fb3a89710f9510b63cc8be54c5",
-                "reference": "b50c10839e1639fb3a89710f9510b63cc8be54c5",
+                "url": "https://api.github.com/repos/symfony/Routing/zipball/bda1c3c67f2a33bbeabb1d321feaf626a0ca5698",
+                "reference": "bda1c3c67f2a33bbeabb1d321feaf626a0ca5698",
                 "shasum": ""
             },
             "require": {
@@ -2160,11 +2169,12 @@
             },
             "require-dev": {
                 "doctrine/annotations": "~1.0",
+                "doctrine/common": "~2.2",
                 "psr/log": "~1.0",
                 "symfony/config": "~2.2",
                 "symfony/expression-language": "~2.4",
                 "symfony/http-foundation": "~2.3",
-                "symfony/yaml": "~2.0"
+                "symfony/yaml": "~2.0,>=2.0.5"
             },
             "suggest": {
                 "doctrine/annotations": "For using the annotation loader",
@@ -2205,21 +2215,21 @@
                 "uri",
                 "url"
             ],
-            "time": "2014-12-02 20:19:20"
+            "time": "2015-01-15 12:15:12"
         },
         {
             "name": "symfony/serializer",
-            "version": "v2.6.1",
+            "version": "v2.6.4",
             "target-dir": "Symfony/Component/Serializer",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Serializer.git",
-                "reference": "b527ccecd455fc70a805fb25b81e08eb37f3fc5d"
+                "reference": "43fbb762fbdb2bcfce86205ffef2094a3995c801"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Serializer/zipball/b527ccecd455fc70a805fb25b81e08eb37f3fc5d",
-                "reference": "b527ccecd455fc70a805fb25b81e08eb37f3fc5d",
+                "url": "https://api.github.com/repos/symfony/Serializer/zipball/43fbb762fbdb2bcfce86205ffef2094a3995c801",
+                "reference": "43fbb762fbdb2bcfce86205ffef2094a3995c801",
                 "shasum": ""
             },
             "require": {
@@ -2252,21 +2262,21 @@
             ],
             "description": "Symfony Serializer Component",
             "homepage": "http://symfony.com",
-            "time": "2014-12-02 20:19:20"
+            "time": "2015-02-01 16:10:57"
         },
         {
             "name": "symfony/translation",
-            "version": "v2.6.1",
+            "version": "v2.6.4",
             "target-dir": "Symfony/Component/Translation",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Translation.git",
-                "reference": "5b8bf84a43317021849813f556f26dc35968156b"
+                "reference": "f289cdf8179d32058c1e1cbac723106a5ff6fa39"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Translation/zipball/5b8bf84a43317021849813f556f26dc35968156b",
-                "reference": "5b8bf84a43317021849813f556f26dc35968156b",
+                "url": "https://api.github.com/repos/symfony/Translation/zipball/f289cdf8179d32058c1e1cbac723106a5ff6fa39",
+                "reference": "f289cdf8179d32058c1e1cbac723106a5ff6fa39",
                 "shasum": ""
             },
             "require": {
@@ -2274,7 +2284,7 @@
             },
             "require-dev": {
                 "psr/log": "~1.0",
-                "symfony/config": "~2.0",
+                "symfony/config": "~2.3,>=2.3.12",
                 "symfony/intl": "~2.3",
                 "symfony/yaml": "~2.2"
             },
@@ -2310,37 +2320,38 @@
             ],
             "description": "Symfony Translation Component",
             "homepage": "http://symfony.com",
-            "time": "2014-12-02 20:19:20"
+            "time": "2015-01-03 15:33:07"
         },
         {
             "name": "symfony/validator",
-            "version": "v2.6.1",
+            "version": "v2.6.4",
             "target-dir": "Symfony/Component/Validator",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Validator.git",
-                "reference": "4583e0321f1bcdad14d93e265eaca1001035b5c4"
+                "reference": "1906eb78a5049b41a80094c20faf66dfbaaf2049"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Validator/zipball/4583e0321f1bcdad14d93e265eaca1001035b5c4",
-                "reference": "4583e0321f1bcdad14d93e265eaca1001035b5c4",
+                "url": "https://api.github.com/repos/symfony/Validator/zipball/1906eb78a5049b41a80094c20faf66dfbaaf2049",
+                "reference": "1906eb78a5049b41a80094c20faf66dfbaaf2049",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.3",
-                "symfony/translation": "~2.0"
+                "symfony/translation": "~2.0,>=2.0.5"
             },
             "require-dev": {
                 "doctrine/annotations": "~1.0",
                 "doctrine/cache": "~1.0",
-                "egulias/email-validator": "~1.0",
+                "doctrine/common": "~2.3",
+                "egulias/email-validator": "~1.2,>=1.2.1",
                 "symfony/config": "~2.2",
                 "symfony/expression-language": "~2.4",
                 "symfony/http-foundation": "~2.1",
                 "symfony/intl": "~2.3",
-                "symfony/property-access": "~2.2",
-                "symfony/yaml": "~2.0"
+                "symfony/property-access": "~2.3",
+                "symfony/yaml": "~2.0,>=2.0.5"
             },
             "suggest": {
                 "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
@@ -2380,21 +2391,21 @@
             ],
             "description": "Symfony Validator Component",
             "homepage": "http://symfony.com",
-            "time": "2014-12-02 20:19:20"
+            "time": "2015-02-01 16:10:57"
         },
         {
             "name": "symfony/yaml",
-            "version": "v2.6.1",
+            "version": "v2.6.4",
             "target-dir": "Symfony/Component/Yaml",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/Yaml.git",
-                "reference": "3346fc090a3eb6b53d408db2903b241af51dcb20"
+                "reference": "60ed7751671113cf1ee7d7778e691642c2e9acd8"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Yaml/zipball/3346fc090a3eb6b53d408db2903b241af51dcb20",
-                "reference": "3346fc090a3eb6b53d408db2903b241af51dcb20",
+                "url": "https://api.github.com/repos/symfony/Yaml/zipball/60ed7751671113cf1ee7d7778e691642c2e9acd8",
+                "reference": "60ed7751671113cf1ee7d7778e691642c2e9acd8",
                 "shasum": ""
             },
             "require": {
@@ -2427,7 +2438,7 @@
             ],
             "description": "Symfony Yaml Component",
             "homepage": "http://symfony.com",
-            "time": "2014-12-02 20:19:20"
+            "time": "2015-01-25 04:39:26"
         },
         {
             "name": "twig/twig",
diff --git a/core/modules/system/src/Tests/RouteProcessor/RouteProcessorCurrentIntegrationTest.php b/core/modules/system/src/Tests/RouteProcessor/RouteProcessorCurrentIntegrationTest.php
index f7691bf..d21d834 100644
--- a/core/modules/system/src/Tests/RouteProcessor/RouteProcessorCurrentIntegrationTest.php
+++ b/core/modules/system/src/Tests/RouteProcessor/RouteProcessorCurrentIntegrationTest.php
@@ -47,7 +47,7 @@ public function testProcessOutbound() {
       'SCRIPT_FILENAME' => \Drupal::root() . '/index.php',
       'SERVER_NAME' => 'http://www.example.com',
     ];
-    $request = Request::create('/subdir', 'GET', [], [], [], $server);
+    $request = Request::create('/subdir/', 'GET', [], [], [], $server);
     $request->attributes->set(RouteObjectInterface::ROUTE_NAME, '<front>');
     $request->attributes->set(RouteObjectInterface::ROUTE_OBJECT, new Route('/'));
 
diff --git a/core/tests/Drupal/Tests/Core/Utility/UnroutedUrlAssemblerTest.php b/core/tests/Drupal/Tests/Core/Utility/UnroutedUrlAssemblerTest.php
index b6253f0..6f5401f 100644
--- a/core/tests/Drupal/Tests/Core/Utility/UnroutedUrlAssemblerTest.php
+++ b/core/tests/Drupal/Tests/Core/Utility/UnroutedUrlAssemblerTest.php
@@ -159,7 +159,7 @@ protected function setupRequestStack($subdir) {
         'SCRIPT_FILENAME' => $this->root . '/index.php',
         'SERVER_NAME' => 'http://www.example.com',
       ];
-      $request = Request::create('/subdir');
+      $request = Request::create('/subdir/');
     }
     else {
       $request = Request::create('/');
diff --git a/core/vendor/composer/installed.json b/core/vendor/composer/installed.json
index c4f6011..2e99ee1 100644
--- a/core/vendor/composer/installed.json
+++ b/core/vendor/composer/installed.json
@@ -1481,400 +1481,388 @@
         ]
     },
     {
-        "name": "symfony/class-loader",
-        "version": "v2.6.1",
-        "version_normalized": "2.6.1.0",
-        "target-dir": "Symfony/Component/ClassLoader",
+        "name": "easyrdf/easyrdf",
+        "version": "0.9.0",
+        "version_normalized": "0.9.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/ClassLoader.git",
-            "reference": "ba3300e6d79eb51ca9edf77791bbd0497f6030dc"
+            "url": "https://github.com/njh/easyrdf.git",
+            "reference": "bb9fd99768d23af0c5b7b55cec5baddc201272b8"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/ba3300e6d79eb51ca9edf77791bbd0497f6030dc",
-            "reference": "ba3300e6d79eb51ca9edf77791bbd0497f6030dc",
+            "url": "https://api.github.com/repos/njh/easyrdf/zipball/bb9fd99768d23af0c5b7b55cec5baddc201272b8",
+            "reference": "bb9fd99768d23af0c5b7b55cec5baddc201272b8",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3"
+            "ext-mbstring": "*",
+            "ext-pcre": "*",
+            "php": ">=5.2.8"
         },
         "require-dev": {
-            "symfony/finder": "~2.0"
+            "phpunit/phpunit": "~3.5",
+            "sami/sami": "~1.4",
+            "squizlabs/php_codesniffer": "~1.4.3"
         },
-        "time": "2014-12-02 20:19:20",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "2.6-dev"
-            }
+        "suggest": {
+            "ml/json-ld": "~1.0"
         },
+        "time": "2014-11-07 18:02:16",
+        "type": "library",
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\ClassLoader\\": ""
+                "EasyRdf_": "lib/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
+            "BSD-3-Clause"
         ],
         "authors": [
             {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
+                "name": "Nicholas Humfrey",
+                "email": "njh@aelius.com",
+                "homepage": "http://www.aelius.com/njh/",
+                "role": "Developer"
             },
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
+                "name": "Alexey Zakhlestin",
+                "email": "indeyets@gmail.com",
+                "role": "Developer"
             }
         ],
-        "description": "Symfony ClassLoader Component",
-        "homepage": "http://symfony.com"
+        "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.",
+        "homepage": "http://www.easyrdf.org/",
+        "keywords": [
+            "Linked Data",
+            "RDF",
+            "Semantic Web",
+            "Turtle",
+            "rdfa",
+            "sparql"
+        ]
     },
     {
-        "name": "symfony/css-selector",
-        "version": "v2.6.1",
-        "version_normalized": "2.6.1.0",
-        "target-dir": "Symfony/Component/CssSelector",
+        "name": "zendframework/zend-stdlib",
+        "version": "2.3.3",
+        "version_normalized": "2.3.3.0",
+        "target-dir": "Zend/Stdlib",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/CssSelector.git",
-            "reference": "93eb315b545b60a908271762fb4bfa1f9954b851"
+            "url": "https://github.com/zendframework/Component_ZendStdlib.git",
+            "reference": "fa33e6647f830d0d2a1cb451efcdfe1bb9a66c33"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/CssSelector/zipball/93eb315b545b60a908271762fb4bfa1f9954b851",
-            "reference": "93eb315b545b60a908271762fb4bfa1f9954b851",
+            "url": "https://api.github.com/repos/zendframework/Component_ZendStdlib/zipball/fa33e6647f830d0d2a1cb451efcdfe1bb9a66c33",
+            "reference": "fa33e6647f830d0d2a1cb451efcdfe1bb9a66c33",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3"
+            "php": ">=5.3.23"
+        },
+        "require-dev": {
+            "zendframework/zend-eventmanager": "self.version",
+            "zendframework/zend-serializer": "self.version",
+            "zendframework/zend-servicemanager": "self.version"
+        },
+        "suggest": {
+            "zendframework/zend-eventmanager": "To support aggregate hydrator usage",
+            "zendframework/zend-serializer": "Zend\\Serializer component",
+            "zendframework/zend-servicemanager": "To support hydrator plugin manager usage"
         },
-        "time": "2014-12-02 20:19:20",
+        "time": "2014-09-16 22:58:11",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.6-dev"
+                "dev-master": "2.3-dev",
+                "dev-develop": "2.4-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\CssSelector\\": ""
+                "Zend\\Stdlib\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
-            },
-            {
-                "name": "Jean-François Simon",
-                "email": "jeanfrancois.simon@sensiolabs.com"
-            },
-            {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
-            }
+            "BSD-3-Clause"
         ],
-        "description": "Symfony CssSelector Component",
-        "homepage": "http://symfony.com"
+        "homepage": "https://github.com/zendframework/zf2",
+        "keywords": [
+            "stdlib",
+            "zf2"
+        ]
     },
     {
-        "name": "symfony/dependency-injection",
-        "version": "v2.6.1",
-        "version_normalized": "2.6.1.0",
-        "target-dir": "Symfony/Component/DependencyInjection",
+        "name": "zendframework/zend-escaper",
+        "version": "2.3.3",
+        "version_normalized": "2.3.3.0",
+        "target-dir": "Zend/Escaper",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/DependencyInjection.git",
-            "reference": "e2693382ef9456a7c7e382f34f813e4b4332941d"
+            "url": "https://github.com/zendframework/Component_ZendEscaper.git",
+            "reference": "c24949840766a544489bfc303714e1f332341010"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/e2693382ef9456a7c7e382f34f813e4b4332941d",
-            "reference": "e2693382ef9456a7c7e382f34f813e4b4332941d",
+            "url": "https://api.github.com/repos/zendframework/Component_ZendEscaper/zipball/c24949840766a544489bfc303714e1f332341010",
+            "reference": "c24949840766a544489bfc303714e1f332341010",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3"
-        },
-        "require-dev": {
-            "symfony/config": "~2.2",
-            "symfony/expression-language": "~2.4",
-            "symfony/yaml": "~2.0"
-        },
-        "suggest": {
-            "symfony/config": "",
-            "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
-            "symfony/yaml": ""
+            "php": ">=5.3.23"
         },
-        "time": "2014-12-03 09:22:11",
+        "time": "2014-09-16 22:58:11",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.6-dev"
+                "dev-master": "2.3-dev",
+                "dev-develop": "2.4-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\DependencyInjection\\": ""
+                "Zend\\Escaper\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
-            },
-            {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
-            }
+            "BSD-3-Clause"
         ],
-        "description": "Symfony DependencyInjection Component",
-        "homepage": "http://symfony.com"
+        "homepage": "https://github.com/zendframework/zf2",
+        "keywords": [
+            "escaper",
+            "zf2"
+        ]
     },
     {
-        "name": "symfony/debug",
-        "version": "v2.6.1",
-        "version_normalized": "2.6.1.0",
-        "target-dir": "Symfony/Component/Debug",
+        "name": "zendframework/zend-feed",
+        "version": "2.3.3",
+        "version_normalized": "2.3.3.0",
+        "target-dir": "Zend/Feed",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Debug.git",
-            "reference": "08b529b4c0aa3e746d187fe2a63f08cb955a3566"
+            "url": "https://github.com/zendframework/Component_ZendFeed.git",
+            "reference": "a89550818b56ae9607a97a63c7d2728a9eb6c6a9"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Debug/zipball/08b529b4c0aa3e746d187fe2a63f08cb955a3566",
-            "reference": "08b529b4c0aa3e746d187fe2a63f08cb955a3566",
+            "url": "https://api.github.com/repos/zendframework/Component_ZendFeed/zipball/a89550818b56ae9607a97a63c7d2728a9eb6c6a9",
+            "reference": "a89550818b56ae9607a97a63c7d2728a9eb6c6a9",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3",
-            "psr/log": "~1.0"
+            "php": ">=5.3.23",
+            "zendframework/zend-escaper": "self.version",
+            "zendframework/zend-stdlib": "self.version"
         },
         "require-dev": {
-            "symfony/http-foundation": "~2.1",
-            "symfony/http-kernel": "~2.1"
+            "zendframework/zend-cache": "self.version",
+            "zendframework/zend-db": "self.version",
+            "zendframework/zend-http": "self.version",
+            "zendframework/zend-servicemanager": "self.version",
+            "zendframework/zend-validator": "self.version"
         },
         "suggest": {
-            "symfony/http-foundation": "",
-            "symfony/http-kernel": ""
+            "zendframework/zend-cache": "Zend\\Cache component",
+            "zendframework/zend-db": "Zend\\Db component",
+            "zendframework/zend-http": "Zend\\Http for PubSubHubbub, and optionally for use with Zend\\Feed\\Reader",
+            "zendframework/zend-servicemanager": "Zend\\ServiceManager component, for default/recommended ExtensionManager implementations",
+            "zendframework/zend-validator": "Zend\\Validator component"
         },
-        "time": "2014-12-02 20:19:20",
+        "time": "2014-09-16 22:58:11",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.6-dev"
+                "dev-master": "2.3-dev",
+                "dev-develop": "2.4-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Debug\\": ""
+                "Zend\\Feed\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
-            },
-            {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
-            }
+            "BSD-3-Clause"
         ],
-        "description": "Symfony Debug Component",
-        "homepage": "http://symfony.com"
+        "description": "provides functionality for consuming RSS and Atom feeds",
+        "homepage": "https://github.com/zendframework/zf2",
+        "keywords": [
+            "feed",
+            "zf2"
+        ]
     },
     {
-        "name": "symfony/http-foundation",
-        "version": "v2.6.1",
-        "version_normalized": "2.6.1.0",
-        "target-dir": "Symfony/Component/HttpFoundation",
+        "name": "sebastian/global-state",
+        "version": "1.0.0",
+        "version_normalized": "1.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/HttpFoundation.git",
-            "reference": "0109221f3cf012bf027768ad3e4236dae1af5332"
+            "url": "https://github.com/sebastianbergmann/global-state.git",
+            "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/0109221f3cf012bf027768ad3e4236dae1af5332",
-            "reference": "0109221f3cf012bf027768ad3e4236dae1af5332",
+            "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
+            "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
         "require-dev": {
-            "symfony/expression-language": "~2.4"
+            "phpunit/phpunit": "~4.2"
+        },
+        "suggest": {
+            "ext-uopz": "*"
         },
-        "time": "2014-12-02 20:19:20",
+        "time": "2014-10-06 09:23:50",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.6-dev"
+                "dev-master": "1.0-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "psr-0": {
-                "Symfony\\Component\\HttpFoundation\\": ""
-            },
             "classmap": [
-                "Symfony/Component/HttpFoundation/Resources/stubs"
+                "src/"
             ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
+            "BSD-3-Clause"
         ],
         "authors": [
             {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
-            },
-            {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
+                "name": "Sebastian Bergmann",
+                "email": "sebastian@phpunit.de"
             }
         ],
-        "description": "Symfony HttpFoundation Component",
-        "homepage": "http://symfony.com"
+        "description": "Snapshotting of global state",
+        "homepage": "http://www.github.com/sebastianbergmann/global-state",
+        "keywords": [
+            "global state"
+        ]
     },
     {
-        "name": "symfony/event-dispatcher",
-        "version": "v2.6.1",
-        "version_normalized": "2.6.1.0",
-        "target-dir": "Symfony/Component/EventDispatcher",
+        "name": "phpunit/phpunit",
+        "version": "4.4.2",
+        "version_normalized": "4.4.2.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/EventDispatcher.git",
-            "reference": "720fe9bca893df7ad1b4546649473b5afddf0216"
-        },
+            "url": "https://github.com/sebastianbergmann/phpunit.git",
+            "reference": "e90575c2bb86290d57a262862dab1da125431576"
+        },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/720fe9bca893df7ad1b4546649473b5afddf0216",
-            "reference": "720fe9bca893df7ad1b4546649473b5afddf0216",
+            "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e90575c2bb86290d57a262862dab1da125431576",
+            "reference": "e90575c2bb86290d57a262862dab1da125431576",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3"
-        },
-        "require-dev": {
-            "psr/log": "~1.0",
-            "symfony/config": "~2.0",
-            "symfony/dependency-injection": "~2.6",
-            "symfony/expression-language": "~2.6",
-            "symfony/stopwatch": "~2.2"
+            "ext-dom": "*",
+            "ext-json": "*",
+            "ext-pcre": "*",
+            "ext-reflection": "*",
+            "ext-spl": "*",
+            "php": ">=5.3.3",
+            "phpunit/php-code-coverage": "~2.0",
+            "phpunit/php-file-iterator": "~1.3.2",
+            "phpunit/php-text-template": "~1.2",
+            "phpunit/php-timer": "~1.0.2",
+            "phpunit/phpunit-mock-objects": "~2.3",
+            "sebastian/comparator": "~1.0",
+            "sebastian/diff": "~1.1",
+            "sebastian/environment": "~1.1",
+            "sebastian/exporter": "~1.0",
+            "sebastian/global-state": "~1.0",
+            "sebastian/version": "~1.0",
+            "symfony/yaml": "~2.0"
         },
         "suggest": {
-            "symfony/dependency-injection": "",
-            "symfony/http-kernel": ""
+            "phpunit/php-invoker": "~1.1"
         },
-        "time": "2014-12-02 20:19:20",
+        "time": "2015-01-17 11:24:41",
+        "bin": [
+            "phpunit"
+        ],
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.6-dev"
+                "dev-master": "4.4.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "psr-0": {
-                "Symfony\\Component\\EventDispatcher\\": ""
-            }
+            "classmap": [
+                "src/"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
+            "BSD-3-Clause"
         ],
         "authors": [
             {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
-            },
-            {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
+                "name": "Sebastian Bergmann",
+                "email": "sebastian@phpunit.de",
+                "role": "lead"
             }
         ],
-        "description": "Symfony EventDispatcher Component",
-        "homepage": "http://symfony.com"
+        "description": "The PHP Unit Testing framework.",
+        "homepage": "https://phpunit.de/",
+        "keywords": [
+            "phpunit",
+            "testing",
+            "xunit"
+        ]
     },
     {
-        "name": "symfony/http-kernel",
-        "version": "v2.6.1",
-        "version_normalized": "2.6.1.0",
-        "target-dir": "Symfony/Component/HttpKernel",
+        "name": "doctrine/common",
+        "version": "v2.4.2",
+        "version_normalized": "2.4.2.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/HttpKernel.git",
-            "reference": "6e911d8a9e1a11c4584ad7b03858afa94e627203"
+            "url": "https://github.com/doctrine/common.git",
+            "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/6e911d8a9e1a11c4584ad7b03858afa94e627203",
-            "reference": "6e911d8a9e1a11c4584ad7b03858afa94e627203",
+            "url": "https://api.github.com/repos/doctrine/common/zipball/5db6ab40e4c531f14dad4ca96a394dfce5d4255b",
+            "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3",
-            "psr/log": "~1.0",
-            "symfony/debug": "~2.6",
-            "symfony/event-dispatcher": "~2.5",
-            "symfony/http-foundation": "~2.5"
+            "doctrine/annotations": "1.*",
+            "doctrine/cache": "1.*",
+            "doctrine/collections": "1.*",
+            "doctrine/inflector": "1.*",
+            "doctrine/lexer": "1.*",
+            "php": ">=5.3.2"
         },
         "require-dev": {
-            "symfony/browser-kit": "~2.2",
-            "symfony/class-loader": "~2.1",
-            "symfony/config": "~2.0",
-            "symfony/console": "~2.2",
-            "symfony/dependency-injection": "~2.0",
-            "symfony/expression-language": "~2.4",
-            "symfony/finder": "~2.0",
-            "symfony/process": "~2.0",
-            "symfony/routing": "~2.2",
-            "symfony/stopwatch": "~2.2",
-            "symfony/templating": "~2.2",
-            "symfony/translation": "~2.0",
-            "symfony/var-dumper": "~2.6"
-        },
-        "suggest": {
-            "symfony/browser-kit": "",
-            "symfony/class-loader": "",
-            "symfony/config": "",
-            "symfony/console": "",
-            "symfony/dependency-injection": "",
-            "symfony/finder": "",
-            "symfony/var-dumper": ""
+            "phpunit/phpunit": "~3.7"
         },
-        "time": "2014-12-03 16:40:43",
+        "time": "2014-05-21 19:28:51",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.6-dev"
+                "dev-master": "2.4.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\HttpKernel\\": ""
+                "Doctrine\\Common\\": "lib/"
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -1883,106 +1871,121 @@
         ],
         "authors": [
             {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
+                "name": "Jonathan Wage",
+                "email": "jonwage@gmail.com",
+                "homepage": "http://www.jwage.com/",
+                "role": "Creator"
             },
             {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
+                "name": "Guilherme Blanco",
+                "email": "guilhermeblanco@gmail.com",
+                "homepage": "http://www.instaclick.com"
+            },
+            {
+                "name": "Roman Borschel",
+                "email": "roman@code-factory.org"
+            },
+            {
+                "name": "Benjamin Eberlei",
+                "email": "kontakt@beberlei.de"
+            },
+            {
+                "name": "Johannes Schmitt",
+                "email": "schmittjoh@gmail.com",
+                "homepage": "https://github.com/schmittjoh",
+                "role": "Developer of wrapped JMSSerializerBundle"
             }
         ],
-        "description": "Symfony HttpKernel Component",
-        "homepage": "http://symfony.com"
+        "description": "Common Library for Doctrine projects",
+        "homepage": "http://www.doctrine-project.org",
+        "keywords": [
+            "annotations",
+            "collections",
+            "eventmanager",
+            "persistence",
+            "spl"
+        ]
     },
     {
-        "name": "symfony/routing",
-        "version": "v2.6.1",
-        "version_normalized": "2.6.1.0",
-        "target-dir": "Symfony/Component/Routing",
+        "name": "phpunit/phpunit-mock-objects",
+        "version": "2.3.0",
+        "version_normalized": "2.3.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Routing.git",
-            "reference": "b50c10839e1639fb3a89710f9510b63cc8be54c5"
+            "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
+            "reference": "c63d2367247365f688544f0d500af90a11a44c65"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Routing/zipball/b50c10839e1639fb3a89710f9510b63cc8be54c5",
-            "reference": "b50c10839e1639fb3a89710f9510b63cc8be54c5",
+            "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/c63d2367247365f688544f0d500af90a11a44c65",
+            "reference": "c63d2367247365f688544f0d500af90a11a44c65",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3"
+            "doctrine/instantiator": "~1.0,>=1.0.1",
+            "php": ">=5.3.3",
+            "phpunit/php-text-template": "~1.2"
         },
         "require-dev": {
-            "doctrine/annotations": "~1.0",
-            "psr/log": "~1.0",
-            "symfony/config": "~2.2",
-            "symfony/expression-language": "~2.4",
-            "symfony/http-foundation": "~2.3",
-            "symfony/yaml": "~2.0"
+            "phpunit/phpunit": "~4.3"
         },
         "suggest": {
-            "doctrine/annotations": "For using the annotation loader",
-            "symfony/config": "For using the all-in-one router or any loader",
-            "symfony/expression-language": "For using expression matching",
-            "symfony/yaml": "For using the YAML loader"
+            "ext-soap": "*"
         },
-        "time": "2014-12-02 20:19:20",
+        "time": "2014-10-03 05:12:11",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.6-dev"
+                "dev-master": "2.3.x-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "psr-0": {
-                "Symfony\\Component\\Routing\\": ""
-            }
+            "classmap": [
+                "src/"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "MIT"
+            "BSD-3-Clause"
         ],
         "authors": [
             {
-                "name": "Symfony Community",
-                "homepage": "http://symfony.com/contributors"
-            },
-            {
-                "name": "Fabien Potencier",
-                "email": "fabien@symfony.com"
+                "name": "Sebastian Bergmann",
+                "email": "sb@sebastian-bergmann.de",
+                "role": "lead"
             }
         ],
-        "description": "Symfony Routing Component",
-        "homepage": "http://symfony.com",
+        "description": "Mock Object library for PHPUnit",
+        "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
         "keywords": [
-            "router",
-            "routing",
-            "uri",
-            "url"
+            "mock",
+            "xunit"
         ]
     },
     {
-        "name": "symfony/serializer",
-        "version": "v2.6.1",
-        "version_normalized": "2.6.1.0",
-        "target-dir": "Symfony/Component/Serializer",
+        "name": "symfony/class-loader",
+        "version": "v2.6.4",
+        "version_normalized": "2.6.4.0",
+        "target-dir": "Symfony/Component/ClassLoader",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Serializer.git",
-            "reference": "b527ccecd455fc70a805fb25b81e08eb37f3fc5d"
+            "url": "https://github.com/symfony/ClassLoader.git",
+            "reference": "deac802f76910708ab50d039806cfd1866895b52"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Serializer/zipball/b527ccecd455fc70a805fb25b81e08eb37f3fc5d",
-            "reference": "b527ccecd455fc70a805fb25b81e08eb37f3fc5d",
+            "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/deac802f76910708ab50d039806cfd1866895b52",
+            "reference": "deac802f76910708ab50d039806cfd1866895b52",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
-        "time": "2014-12-02 20:19:20",
+        "require-dev": {
+            "symfony/finder": "~2.0,>=2.0.5"
+        },
+        "time": "2015-01-05 14:28:40",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -1992,7 +1995,7 @@
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Serializer\\": ""
+                "Symfony\\Component\\ClassLoader\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -2009,40 +2012,29 @@
                 "email": "fabien@symfony.com"
             }
         ],
-        "description": "Symfony Serializer Component",
+        "description": "Symfony ClassLoader Component",
         "homepage": "http://symfony.com"
     },
     {
-        "name": "symfony/translation",
-        "version": "v2.6.1",
-        "version_normalized": "2.6.1.0",
-        "target-dir": "Symfony/Component/Translation",
+        "name": "symfony/css-selector",
+        "version": "v2.6.4",
+        "version_normalized": "2.6.4.0",
+        "target-dir": "Symfony/Component/CssSelector",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Translation.git",
-            "reference": "5b8bf84a43317021849813f556f26dc35968156b"
+            "url": "https://github.com/symfony/CssSelector.git",
+            "reference": "3f80ecc614fec68d5b4a84a0703db3fdf5ce8584"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Translation/zipball/5b8bf84a43317021849813f556f26dc35968156b",
-            "reference": "5b8bf84a43317021849813f556f26dc35968156b",
+            "url": "https://api.github.com/repos/symfony/CssSelector/zipball/3f80ecc614fec68d5b4a84a0703db3fdf5ce8584",
+            "reference": "3f80ecc614fec68d5b4a84a0703db3fdf5ce8584",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
-        "require-dev": {
-            "psr/log": "~1.0",
-            "symfony/config": "~2.0",
-            "symfony/intl": "~2.3",
-            "symfony/yaml": "~2.2"
-        },
-        "suggest": {
-            "psr/log": "To use logging capability in translator",
-            "symfony/config": "",
-            "symfony/yaml": ""
-        },
-        "time": "2014-12-02 20:19:20",
+        "time": "2015-01-03 08:01:59",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -2052,7 +2044,7 @@
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Translation\\": ""
+                "Symfony\\Component\\CssSelector\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -2065,56 +2057,50 @@
                 "homepage": "http://symfony.com/contributors"
             },
             {
+                "name": "Jean-François Simon",
+                "email": "jeanfrancois.simon@sensiolabs.com"
+            },
+            {
                 "name": "Fabien Potencier",
                 "email": "fabien@symfony.com"
             }
         ],
-        "description": "Symfony Translation Component",
+        "description": "Symfony CssSelector Component",
         "homepage": "http://symfony.com"
     },
     {
-        "name": "symfony/validator",
-        "version": "v2.6.1",
-        "version_normalized": "2.6.1.0",
-        "target-dir": "Symfony/Component/Validator",
+        "name": "symfony/dependency-injection",
+        "version": "v2.6.4",
+        "version_normalized": "2.6.4.0",
+        "target-dir": "Symfony/Component/DependencyInjection",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Validator.git",
-            "reference": "4583e0321f1bcdad14d93e265eaca1001035b5c4"
+            "url": "https://github.com/symfony/DependencyInjection.git",
+            "reference": "42bbb43fab66292a1865dc9616c299904c3d4d14"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Validator/zipball/4583e0321f1bcdad14d93e265eaca1001035b5c4",
-            "reference": "4583e0321f1bcdad14d93e265eaca1001035b5c4",
+            "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/42bbb43fab66292a1865dc9616c299904c3d4d14",
+            "reference": "42bbb43fab66292a1865dc9616c299904c3d4d14",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3",
-            "symfony/translation": "~2.0"
+            "php": ">=5.3.3"
+        },
+        "conflict": {
+            "symfony/expression-language": "<2.6"
         },
         "require-dev": {
-            "doctrine/annotations": "~1.0",
-            "doctrine/cache": "~1.0",
-            "egulias/email-validator": "~1.0",
             "symfony/config": "~2.2",
-            "symfony/expression-language": "~2.4",
-            "symfony/http-foundation": "~2.1",
-            "symfony/intl": "~2.3",
-            "symfony/property-access": "~2.2",
-            "symfony/yaml": "~2.0"
+            "symfony/expression-language": "~2.6",
+            "symfony/yaml": "~2.1"
         },
         "suggest": {
-            "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
-            "doctrine/cache": "For using the default cached annotation reader and metadata cache.",
-            "egulias/email-validator": "Strict (RFC compliant) email validation",
             "symfony/config": "",
-            "symfony/expression-language": "For using the 2.4 Expression validator",
-            "symfony/http-foundation": "",
-            "symfony/intl": "",
-            "symfony/property-access": "For using the 2.4 Validator API",
+            "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
             "symfony/yaml": ""
         },
-        "time": "2014-12-02 20:19:20",
+        "time": "2015-01-25 04:39:26",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -2124,7 +2110,7 @@
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Validator\\": ""
+                "Symfony\\Component\\DependencyInjection\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -2141,29 +2127,42 @@
                 "email": "fabien@symfony.com"
             }
         ],
-        "description": "Symfony Validator Component",
+        "description": "Symfony DependencyInjection Component",
         "homepage": "http://symfony.com"
     },
     {
-        "name": "symfony/yaml",
-        "version": "v2.6.1",
-        "version_normalized": "2.6.1.0",
-        "target-dir": "Symfony/Component/Yaml",
+        "name": "symfony/debug",
+        "version": "v2.6.4",
+        "version_normalized": "2.6.4.0",
+        "target-dir": "Symfony/Component/Debug",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Yaml.git",
-            "reference": "3346fc090a3eb6b53d408db2903b241af51dcb20"
+            "url": "https://github.com/symfony/Debug.git",
+            "reference": "150c80059c3ccf68f96a4fceb513eb6b41f23300"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Yaml/zipball/3346fc090a3eb6b53d408db2903b241af51dcb20",
-            "reference": "3346fc090a3eb6b53d408db2903b241af51dcb20",
+            "url": "https://api.github.com/repos/symfony/Debug/zipball/150c80059c3ccf68f96a4fceb513eb6b41f23300",
+            "reference": "150c80059c3ccf68f96a4fceb513eb6b41f23300",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.3"
+            "php": ">=5.3.3",
+            "psr/log": "~1.0"
         },
-        "time": "2014-12-02 20:19:20",
+        "conflict": {
+            "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
+        },
+        "require-dev": {
+            "symfony/class-loader": "~2.2",
+            "symfony/http-foundation": "~2.1",
+            "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2"
+        },
+        "suggest": {
+            "symfony/http-foundation": "",
+            "symfony/http-kernel": ""
+        },
+        "time": "2015-01-21 20:57:55",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -2173,7 +2172,7 @@
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Yaml\\": ""
+                "Symfony\\Component\\Debug\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -2190,29 +2189,32 @@
                 "email": "fabien@symfony.com"
             }
         ],
-        "description": "Symfony Yaml Component",
+        "description": "Symfony Debug Component",
         "homepage": "http://symfony.com"
     },
     {
-        "name": "symfony/process",
-        "version": "v2.6.1",
-        "version_normalized": "2.6.1.0",
-        "target-dir": "Symfony/Component/Process",
+        "name": "symfony/http-foundation",
+        "version": "v2.6.4",
+        "version_normalized": "2.6.4.0",
+        "target-dir": "Symfony/Component/HttpFoundation",
         "source": {
             "type": "git",
-            "url": "https://github.com/symfony/Process.git",
-            "reference": "bf0c9bd625f13b0b0bbe39919225cf145dfb935a"
+            "url": "https://github.com/symfony/HttpFoundation.git",
+            "reference": "8fa63d614d56ccfe033e30411d90913cfc483ff6"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Process/zipball/bf0c9bd625f13b0b0bbe39919225cf145dfb935a",
-            "reference": "bf0c9bd625f13b0b0bbe39919225cf145dfb935a",
+            "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/8fa63d614d56ccfe033e30411d90913cfc483ff6",
+            "reference": "8fa63d614d56ccfe033e30411d90913cfc483ff6",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
-        "time": "2014-12-02 20:19:20",
+        "require-dev": {
+            "symfony/expression-language": "~2.4"
+        },
+        "time": "2015-02-01 16:10:57",
         "type": "library",
         "extra": {
             "branch-alias": {
@@ -2222,8 +2224,11 @@
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Symfony\\Component\\Process\\": ""
-            }
+                "Symfony\\Component\\HttpFoundation\\": ""
+            },
+            "classmap": [
+                "Symfony/Component/HttpFoundation/Resources/stubs"
+            ]
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
@@ -2239,392 +2244,430 @@
                 "email": "fabien@symfony.com"
             }
         ],
-        "description": "Symfony Process Component",
+        "description": "Symfony HttpFoundation Component",
         "homepage": "http://symfony.com"
     },
     {
-        "name": "easyrdf/easyrdf",
-        "version": "0.9.0",
-        "version_normalized": "0.9.0.0",
+        "name": "symfony/event-dispatcher",
+        "version": "v2.6.4",
+        "version_normalized": "2.6.4.0",
+        "target-dir": "Symfony/Component/EventDispatcher",
         "source": {
             "type": "git",
-            "url": "https://github.com/njh/easyrdf.git",
-            "reference": "bb9fd99768d23af0c5b7b55cec5baddc201272b8"
+            "url": "https://github.com/symfony/EventDispatcher.git",
+            "reference": "f75989f3ab2743a82fe0b03ded2598a2b1546813"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/njh/easyrdf/zipball/bb9fd99768d23af0c5b7b55cec5baddc201272b8",
-            "reference": "bb9fd99768d23af0c5b7b55cec5baddc201272b8",
+            "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/f75989f3ab2743a82fe0b03ded2598a2b1546813",
+            "reference": "f75989f3ab2743a82fe0b03ded2598a2b1546813",
             "shasum": ""
         },
         "require": {
-            "ext-mbstring": "*",
-            "ext-pcre": "*",
-            "php": ">=5.2.8"
+            "php": ">=5.3.3"
         },
         "require-dev": {
-            "phpunit/phpunit": "~3.5",
-            "sami/sami": "~1.4",
-            "squizlabs/php_codesniffer": "~1.4.3"
+            "psr/log": "~1.0",
+            "symfony/config": "~2.0,>=2.0.5",
+            "symfony/dependency-injection": "~2.6",
+            "symfony/expression-language": "~2.6",
+            "symfony/stopwatch": "~2.3"
         },
         "suggest": {
-            "ml/json-ld": "~1.0"
+            "symfony/dependency-injection": "",
+            "symfony/http-kernel": ""
         },
-        "time": "2014-11-07 18:02:16",
+        "time": "2015-02-01 16:10:57",
         "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.6-dev"
+            }
+        },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "EasyRdf_": "lib/"
+                "Symfony\\Component\\EventDispatcher\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "BSD-3-Clause"
+            "MIT"
         ],
         "authors": [
             {
-                "name": "Nicholas Humfrey",
-                "email": "njh@aelius.com",
-                "homepage": "http://www.aelius.com/njh/",
-                "role": "Developer"
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
             },
             {
-                "name": "Alexey Zakhlestin",
-                "email": "indeyets@gmail.com",
-                "role": "Developer"
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
             }
         ],
-        "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.",
-        "homepage": "http://www.easyrdf.org/",
-        "keywords": [
-            "Linked Data",
-            "RDF",
-            "Semantic Web",
-            "Turtle",
-            "rdfa",
-            "sparql"
-        ]
+        "description": "Symfony EventDispatcher Component",
+        "homepage": "http://symfony.com"
     },
     {
-        "name": "zendframework/zend-stdlib",
-        "version": "2.3.3",
-        "version_normalized": "2.3.3.0",
-        "target-dir": "Zend/Stdlib",
+        "name": "symfony/http-kernel",
+        "version": "v2.6.4",
+        "version_normalized": "2.6.4.0",
+        "target-dir": "Symfony/Component/HttpKernel",
         "source": {
             "type": "git",
-            "url": "https://github.com/zendframework/Component_ZendStdlib.git",
-            "reference": "fa33e6647f830d0d2a1cb451efcdfe1bb9a66c33"
+            "url": "https://github.com/symfony/HttpKernel.git",
+            "reference": "27abf3106d8bd08562070dd4e2438c279792c434"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/zendframework/Component_ZendStdlib/zipball/fa33e6647f830d0d2a1cb451efcdfe1bb9a66c33",
-            "reference": "fa33e6647f830d0d2a1cb451efcdfe1bb9a66c33",
+            "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/27abf3106d8bd08562070dd4e2438c279792c434",
+            "reference": "27abf3106d8bd08562070dd4e2438c279792c434",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.23"
+            "php": ">=5.3.3",
+            "psr/log": "~1.0",
+            "symfony/debug": "~2.6,>=2.6.2",
+            "symfony/event-dispatcher": "~2.5.9|~2.6,>=2.6.2",
+            "symfony/http-foundation": "~2.5,>=2.5.4"
         },
         "require-dev": {
-            "zendframework/zend-eventmanager": "self.version",
-            "zendframework/zend-serializer": "self.version",
-            "zendframework/zend-servicemanager": "self.version"
+            "symfony/browser-kit": "~2.3",
+            "symfony/class-loader": "~2.1",
+            "symfony/config": "~2.0,>=2.0.5",
+            "symfony/console": "~2.3",
+            "symfony/css-selector": "~2.0,>=2.0.5",
+            "symfony/dependency-injection": "~2.2",
+            "symfony/dom-crawler": "~2.0,>=2.0.5",
+            "symfony/expression-language": "~2.4",
+            "symfony/finder": "~2.0,>=2.0.5",
+            "symfony/process": "~2.0,>=2.0.5",
+            "symfony/routing": "~2.2",
+            "symfony/stopwatch": "~2.3",
+            "symfony/templating": "~2.2",
+            "symfony/translation": "~2.0,>=2.0.5",
+            "symfony/var-dumper": "~2.6"
         },
         "suggest": {
-            "zendframework/zend-eventmanager": "To support aggregate hydrator usage",
-            "zendframework/zend-serializer": "Zend\\Serializer component",
-            "zendframework/zend-servicemanager": "To support hydrator plugin manager usage"
+            "symfony/browser-kit": "",
+            "symfony/class-loader": "",
+            "symfony/config": "",
+            "symfony/console": "",
+            "symfony/dependency-injection": "",
+            "symfony/finder": "",
+            "symfony/var-dumper": ""
         },
-        "time": "2014-09-16 22:58:11",
+        "time": "2015-02-02 18:02:30",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.3-dev",
-                "dev-develop": "2.4-dev"
+                "dev-master": "2.6-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Zend\\Stdlib\\": ""
+                "Symfony\\Component\\HttpKernel\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "BSD-3-Clause"
+            "MIT"
         ],
-        "homepage": "https://github.com/zendframework/zf2",
-        "keywords": [
-            "stdlib",
-            "zf2"
-        ]
+        "authors": [
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
+            },
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            }
+        ],
+        "description": "Symfony HttpKernel Component",
+        "homepage": "http://symfony.com"
     },
     {
-        "name": "zendframework/zend-escaper",
-        "version": "2.3.3",
-        "version_normalized": "2.3.3.0",
-        "target-dir": "Zend/Escaper",
+        "name": "symfony/routing",
+        "version": "v2.6.4",
+        "version_normalized": "2.6.4.0",
+        "target-dir": "Symfony/Component/Routing",
         "source": {
             "type": "git",
-            "url": "https://github.com/zendframework/Component_ZendEscaper.git",
-            "reference": "c24949840766a544489bfc303714e1f332341010"
+            "url": "https://github.com/symfony/Routing.git",
+            "reference": "bda1c3c67f2a33bbeabb1d321feaf626a0ca5698"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/zendframework/Component_ZendEscaper/zipball/c24949840766a544489bfc303714e1f332341010",
-            "reference": "c24949840766a544489bfc303714e1f332341010",
+            "url": "https://api.github.com/repos/symfony/Routing/zipball/bda1c3c67f2a33bbeabb1d321feaf626a0ca5698",
+            "reference": "bda1c3c67f2a33bbeabb1d321feaf626a0ca5698",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.23"
+            "php": ">=5.3.3"
         },
-        "time": "2014-09-16 22:58:11",
+        "require-dev": {
+            "doctrine/annotations": "~1.0",
+            "doctrine/common": "~2.2",
+            "psr/log": "~1.0",
+            "symfony/config": "~2.2",
+            "symfony/expression-language": "~2.4",
+            "symfony/http-foundation": "~2.3",
+            "symfony/yaml": "~2.0,>=2.0.5"
+        },
+        "suggest": {
+            "doctrine/annotations": "For using the annotation loader",
+            "symfony/config": "For using the all-in-one router or any loader",
+            "symfony/expression-language": "For using expression matching",
+            "symfony/yaml": "For using the YAML loader"
+        },
+        "time": "2015-01-15 12:15:12",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.3-dev",
-                "dev-develop": "2.4-dev"
+                "dev-master": "2.6-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Zend\\Escaper\\": ""
+                "Symfony\\Component\\Routing\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "BSD-3-Clause"
+            "MIT"
         ],
-        "homepage": "https://github.com/zendframework/zf2",
+        "authors": [
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
+            },
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            }
+        ],
+        "description": "Symfony Routing Component",
+        "homepage": "http://symfony.com",
         "keywords": [
-            "escaper",
-            "zf2"
+            "router",
+            "routing",
+            "uri",
+            "url"
         ]
     },
     {
-        "name": "zendframework/zend-feed",
-        "version": "2.3.3",
-        "version_normalized": "2.3.3.0",
-        "target-dir": "Zend/Feed",
+        "name": "symfony/serializer",
+        "version": "v2.6.4",
+        "version_normalized": "2.6.4.0",
+        "target-dir": "Symfony/Component/Serializer",
         "source": {
             "type": "git",
-            "url": "https://github.com/zendframework/Component_ZendFeed.git",
-            "reference": "a89550818b56ae9607a97a63c7d2728a9eb6c6a9"
+            "url": "https://github.com/symfony/Serializer.git",
+            "reference": "43fbb762fbdb2bcfce86205ffef2094a3995c801"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/zendframework/Component_ZendFeed/zipball/a89550818b56ae9607a97a63c7d2728a9eb6c6a9",
-            "reference": "a89550818b56ae9607a97a63c7d2728a9eb6c6a9",
+            "url": "https://api.github.com/repos/symfony/Serializer/zipball/43fbb762fbdb2bcfce86205ffef2094a3995c801",
+            "reference": "43fbb762fbdb2bcfce86205ffef2094a3995c801",
             "shasum": ""
         },
         "require": {
-            "php": ">=5.3.23",
-            "zendframework/zend-escaper": "self.version",
-            "zendframework/zend-stdlib": "self.version"
-        },
-        "require-dev": {
-            "zendframework/zend-cache": "self.version",
-            "zendframework/zend-db": "self.version",
-            "zendframework/zend-http": "self.version",
-            "zendframework/zend-servicemanager": "self.version",
-            "zendframework/zend-validator": "self.version"
-        },
-        "suggest": {
-            "zendframework/zend-cache": "Zend\\Cache component",
-            "zendframework/zend-db": "Zend\\Db component",
-            "zendframework/zend-http": "Zend\\Http for PubSubHubbub, and optionally for use with Zend\\Feed\\Reader",
-            "zendframework/zend-servicemanager": "Zend\\ServiceManager component, for default/recommended ExtensionManager implementations",
-            "zendframework/zend-validator": "Zend\\Validator component"
+            "php": ">=5.3.3"
         },
-        "time": "2014-09-16 22:58:11",
+        "time": "2015-02-01 16:10:57",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.3-dev",
-                "dev-develop": "2.4-dev"
+                "dev-master": "2.6-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Zend\\Feed\\": ""
+                "Symfony\\Component\\Serializer\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "BSD-3-Clause"
+            "MIT"
         ],
-        "description": "provides functionality for consuming RSS and Atom feeds",
-        "homepage": "https://github.com/zendframework/zf2",
-        "keywords": [
-            "feed",
-            "zf2"
-        ]
+        "authors": [
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
+            },
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            }
+        ],
+        "description": "Symfony Serializer Component",
+        "homepage": "http://symfony.com"
     },
     {
-        "name": "sebastian/global-state",
-        "version": "1.0.0",
-        "version_normalized": "1.0.0.0",
+        "name": "symfony/translation",
+        "version": "v2.6.4",
+        "version_normalized": "2.6.4.0",
+        "target-dir": "Symfony/Component/Translation",
         "source": {
             "type": "git",
-            "url": "https://github.com/sebastianbergmann/global-state.git",
-            "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01"
+            "url": "https://github.com/symfony/Translation.git",
+            "reference": "f289cdf8179d32058c1e1cbac723106a5ff6fa39"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
-            "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
+            "url": "https://api.github.com/repos/symfony/Translation/zipball/f289cdf8179d32058c1e1cbac723106a5ff6fa39",
+            "reference": "f289cdf8179d32058c1e1cbac723106a5ff6fa39",
             "shasum": ""
         },
         "require": {
             "php": ">=5.3.3"
         },
         "require-dev": {
-            "phpunit/phpunit": "~4.2"
+            "psr/log": "~1.0",
+            "symfony/config": "~2.3,>=2.3.12",
+            "symfony/intl": "~2.3",
+            "symfony/yaml": "~2.2"
         },
         "suggest": {
-            "ext-uopz": "*"
+            "psr/log": "To use logging capability in translator",
+            "symfony/config": "",
+            "symfony/yaml": ""
         },
-        "time": "2014-10-06 09:23:50",
+        "time": "2015-01-03 15:33:07",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "1.0-dev"
+                "dev-master": "2.6-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "classmap": [
-                "src/"
-            ]
+            "psr-0": {
+                "Symfony\\Component\\Translation\\": ""
+            }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "BSD-3-Clause"
+            "MIT"
         ],
         "authors": [
             {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de"
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
+            },
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
             }
         ],
-        "description": "Snapshotting of global state",
-        "homepage": "http://www.github.com/sebastianbergmann/global-state",
-        "keywords": [
-            "global state"
-        ]
+        "description": "Symfony Translation Component",
+        "homepage": "http://symfony.com"
     },
     {
-        "name": "phpunit/phpunit",
-        "version": "4.4.2",
-        "version_normalized": "4.4.2.0",
+        "name": "symfony/validator",
+        "version": "v2.6.4",
+        "version_normalized": "2.6.4.0",
+        "target-dir": "Symfony/Component/Validator",
         "source": {
             "type": "git",
-            "url": "https://github.com/sebastianbergmann/phpunit.git",
-            "reference": "e90575c2bb86290d57a262862dab1da125431576"
+            "url": "https://github.com/symfony/Validator.git",
+            "reference": "1906eb78a5049b41a80094c20faf66dfbaaf2049"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e90575c2bb86290d57a262862dab1da125431576",
-            "reference": "e90575c2bb86290d57a262862dab1da125431576",
+            "url": "https://api.github.com/repos/symfony/Validator/zipball/1906eb78a5049b41a80094c20faf66dfbaaf2049",
+            "reference": "1906eb78a5049b41a80094c20faf66dfbaaf2049",
             "shasum": ""
         },
         "require": {
-            "ext-dom": "*",
-            "ext-json": "*",
-            "ext-pcre": "*",
-            "ext-reflection": "*",
-            "ext-spl": "*",
             "php": ">=5.3.3",
-            "phpunit/php-code-coverage": "~2.0",
-            "phpunit/php-file-iterator": "~1.3.2",
-            "phpunit/php-text-template": "~1.2",
-            "phpunit/php-timer": "~1.0.2",
-            "phpunit/phpunit-mock-objects": "~2.3",
-            "sebastian/comparator": "~1.0",
-            "sebastian/diff": "~1.1",
-            "sebastian/environment": "~1.1",
-            "sebastian/exporter": "~1.0",
-            "sebastian/global-state": "~1.0",
-            "sebastian/version": "~1.0",
-            "symfony/yaml": "~2.0"
+            "symfony/translation": "~2.0,>=2.0.5"
+        },
+        "require-dev": {
+            "doctrine/annotations": "~1.0",
+            "doctrine/cache": "~1.0",
+            "doctrine/common": "~2.3",
+            "egulias/email-validator": "~1.2,>=1.2.1",
+            "symfony/config": "~2.2",
+            "symfony/expression-language": "~2.4",
+            "symfony/http-foundation": "~2.1",
+            "symfony/intl": "~2.3",
+            "symfony/property-access": "~2.3",
+            "symfony/yaml": "~2.0,>=2.0.5"
         },
         "suggest": {
-            "phpunit/php-invoker": "~1.1"
+            "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
+            "doctrine/cache": "For using the default cached annotation reader and metadata cache.",
+            "egulias/email-validator": "Strict (RFC compliant) email validation",
+            "symfony/config": "",
+            "symfony/expression-language": "For using the 2.4 Expression validator",
+            "symfony/http-foundation": "",
+            "symfony/intl": "",
+            "symfony/property-access": "For using the 2.4 Validator API",
+            "symfony/yaml": ""
         },
-        "time": "2015-01-17 11:24:41",
-        "bin": [
-            "phpunit"
-        ],
+        "time": "2015-02-01 16:10:57",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "4.4.x-dev"
+                "dev-master": "2.6-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "classmap": [
-                "src/"
-            ]
+            "psr-0": {
+                "Symfony\\Component\\Validator\\": ""
+            }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "BSD-3-Clause"
+            "MIT"
         ],
         "authors": [
             {
-                "name": "Sebastian Bergmann",
-                "email": "sebastian@phpunit.de",
-                "role": "lead"
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
+            },
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
             }
         ],
-        "description": "The PHP Unit Testing framework.",
-        "homepage": "https://phpunit.de/",
-        "keywords": [
-            "phpunit",
-            "testing",
-            "xunit"
-        ]
+        "description": "Symfony Validator Component",
+        "homepage": "http://symfony.com"
     },
     {
-        "name": "doctrine/common",
-        "version": "v2.4.2",
-        "version_normalized": "2.4.2.0",
+        "name": "symfony/process",
+        "version": "v2.6.4",
+        "version_normalized": "2.6.4.0",
+        "target-dir": "Symfony/Component/Process",
         "source": {
             "type": "git",
-            "url": "https://github.com/doctrine/common.git",
-            "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b"
+            "url": "https://github.com/symfony/Process.git",
+            "reference": "ecfc23e89d9967999fa5f60a1e9af7384396e9ae"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/doctrine/common/zipball/5db6ab40e4c531f14dad4ca96a394dfce5d4255b",
-            "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b",
+            "url": "https://api.github.com/repos/symfony/Process/zipball/ecfc23e89d9967999fa5f60a1e9af7384396e9ae",
+            "reference": "ecfc23e89d9967999fa5f60a1e9af7384396e9ae",
             "shasum": ""
         },
         "require": {
-            "doctrine/annotations": "1.*",
-            "doctrine/cache": "1.*",
-            "doctrine/collections": "1.*",
-            "doctrine/inflector": "1.*",
-            "doctrine/lexer": "1.*",
-            "php": ">=5.3.2"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~3.7"
+            "php": ">=5.3.3"
         },
-        "time": "2014-05-21 19:28:51",
+        "time": "2015-01-25 04:39:26",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.4.x-dev"
+                "dev-master": "2.6-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
             "psr-0": {
-                "Doctrine\\Common\\": "lib/"
+                "Symfony\\Component\\Process\\": ""
             }
         },
         "notification-url": "https://packagist.org/downloads/",
@@ -2633,96 +2676,64 @@
         ],
         "authors": [
             {
-                "name": "Jonathan Wage",
-                "email": "jonwage@gmail.com",
-                "homepage": "http://www.jwage.com/",
-                "role": "Creator"
-            },
-            {
-                "name": "Guilherme Blanco",
-                "email": "guilhermeblanco@gmail.com",
-                "homepage": "http://www.instaclick.com"
-            },
-            {
-                "name": "Roman Borschel",
-                "email": "roman@code-factory.org"
-            },
-            {
-                "name": "Benjamin Eberlei",
-                "email": "kontakt@beberlei.de"
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
             },
             {
-                "name": "Johannes Schmitt",
-                "email": "schmittjoh@gmail.com",
-                "homepage": "https://github.com/schmittjoh",
-                "role": "Developer of wrapped JMSSerializerBundle"
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
             }
         ],
-        "description": "Common Library for Doctrine projects",
-        "homepage": "http://www.doctrine-project.org",
-        "keywords": [
-            "annotations",
-            "collections",
-            "eventmanager",
-            "persistence",
-            "spl"
-        ]
+        "description": "Symfony Process Component",
+        "homepage": "http://symfony.com"
     },
     {
-        "name": "phpunit/phpunit-mock-objects",
-        "version": "2.3.0",
-        "version_normalized": "2.3.0.0",
+        "name": "symfony/yaml",
+        "version": "v2.6.4",
+        "version_normalized": "2.6.4.0",
+        "target-dir": "Symfony/Component/Yaml",
         "source": {
             "type": "git",
-            "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
-            "reference": "c63d2367247365f688544f0d500af90a11a44c65"
+            "url": "https://github.com/symfony/Yaml.git",
+            "reference": "60ed7751671113cf1ee7d7778e691642c2e9acd8"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/c63d2367247365f688544f0d500af90a11a44c65",
-            "reference": "c63d2367247365f688544f0d500af90a11a44c65",
+            "url": "https://api.github.com/repos/symfony/Yaml/zipball/60ed7751671113cf1ee7d7778e691642c2e9acd8",
+            "reference": "60ed7751671113cf1ee7d7778e691642c2e9acd8",
             "shasum": ""
         },
         "require": {
-            "doctrine/instantiator": "~1.0,>=1.0.1",
-            "php": ">=5.3.3",
-            "phpunit/php-text-template": "~1.2"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.3"
-        },
-        "suggest": {
-            "ext-soap": "*"
+            "php": ">=5.3.3"
         },
-        "time": "2014-10-03 05:12:11",
+        "time": "2015-01-25 04:39:26",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "2.3.x-dev"
+                "dev-master": "2.6-dev"
             }
         },
         "installation-source": "dist",
         "autoload": {
-            "classmap": [
-                "src/"
-            ]
+            "psr-0": {
+                "Symfony\\Component\\Yaml\\": ""
+            }
         },
         "notification-url": "https://packagist.org/downloads/",
         "license": [
-            "BSD-3-Clause"
+            "MIT"
         ],
         "authors": [
             {
-                "name": "Sebastian Bergmann",
-                "email": "sb@sebastian-bergmann.de",
-                "role": "lead"
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
+            },
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
             }
         ],
-        "description": "Mock Object library for PHPUnit",
-        "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
-        "keywords": [
-            "mock",
-            "xunit"
-        ]
+        "description": "Symfony Yaml Component",
+        "homepage": "http://symfony.com"
     }
 ]
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcClassLoader.php
index fccb68e..48de72f 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcClassLoader.php
@@ -17,11 +17,19 @@
  * It expects an object implementing a findFile method to find the file. This
  * allows using it as a wrapper around the other loaders of the component (the
  * ClassLoader and the UniversalClassLoader for instance) but also around any
- * other autoloader following this convention (the Composer one for instance)
+ * other autoloaders following this convention (the Composer one for instance).
+ *
+ *     // with a Symfony autoloader
+ *     use Symfony\Component\ClassLoader\ClassLoader;
  *
  *     $loader = new ClassLoader();
+ *     $loader->addPrefix('Symfony\Component', __DIR__.'/component');
+ *     $loader->addPrefix('Symfony',           __DIR__.'/framework');
+ *
+ *     // or with a Composer autoloader
+ *     use Composer\Autoload\ClassLoader;
  *
- *     // register classes with namespaces
+ *     $loader = new ClassLoader();
  *     $loader->add('Symfony\Component', __DIR__.'/component');
  *     $loader->add('Symfony',           __DIR__.'/framework');
  *
@@ -44,10 +52,9 @@ class ApcClassLoader
     private $prefix;
 
     /**
-     * The class loader object being decorated.
+     * A class loader object that implements the findFile() method.
      *
      * @var object
-     *   A class loader object that implements the findFile() method.
      */
     protected $decorated;
 
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php
index 4fdf39b..65b7b10 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php
@@ -59,6 +59,8 @@
  * @author Kris Wallsmith <kris@symfony.com>
  *
  * @api
+ *
+ * @deprecated Deprecated since version 2.4, to be removed in 3.0. Use the ApcClassLoader class instead.
  */
 class ApcUniversalClassLoader extends UniversalClassLoader
 {
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/CHANGELOG.md b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/CHANGELOG.md
index b770166..64660a8 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/CHANGELOG.md
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/CHANGELOG.md
@@ -4,6 +4,9 @@ CHANGELOG
 2.4.0
 -----
 
+ * deprecated the UniversalClassLoader in favor of the ClassLoader class instead
+ * deprecated the ApcUniversalClassLoader in favor of the ApcClassLoader class instead
+ * deprecated the DebugUniversalClassLoader in favor of the DebugClassLoader class from the Debug component
  * deprecated the DebugClassLoader as it has been moved to the Debug component instead
 
 2.3.0
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassCollectionLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassCollectionLoader.php
index 7e3d275..6bf4ebd 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassCollectionLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassCollectionLoader.php
@@ -353,14 +353,17 @@ private static function resolveDependencies(array $tree, $node, \ArrayObject $re
             $unresolved = new \ArrayObject();
         }
         $nodeName = $node->getName();
-        $unresolved[$nodeName] = $node;
-        foreach ($tree[$nodeName] as $dependency) {
-            if (!$resolved->offsetExists($dependency->getName())) {
-                self::resolveDependencies($tree, $dependency, $resolved, $unresolved);
+
+        if (isset($tree[$nodeName])) {
+            $unresolved[$nodeName] = $node;
+            foreach ($tree[$nodeName] as $dependency) {
+                if (!$resolved->offsetExists($dependency->getName())) {
+                    self::resolveDependencies($tree, $dependency, $resolved, $unresolved);
+                }
             }
+            $resolved[$nodeName] = $node;
+            unset($unresolved[$nodeName]);
         }
-        $resolved[$nodeName] = $node;
-        unset($unresolved[$nodeName]);
 
         return $resolved;
     }
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassLoader.php
index e4ba1a5..6fcbb06 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassLoader.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\ClassLoader;
 
 /**
- * ClassLoader implements an PSR-0 class loader
+ * ClassLoader implements an PSR-0 class loader.
  *
  * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md
  *
@@ -76,7 +76,7 @@ public function addPrefixes(array $prefixes)
     }
 
     /**
-     * Registers a set of classes
+     * Registers a set of classes.
      *
      * @param string       $prefix The classes prefix
      * @param array|string $paths  The location(s) of the classes
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassMapGenerator.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassMapGenerator.php
index e9a93e1..4c2aeab 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassMapGenerator.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/ClassMapGenerator.php
@@ -20,14 +20,14 @@
 }
 
 /**
- * ClassMapGenerator
+ * ClassMapGenerator.
  *
  * @author Gyula Sallai <salla016@gmail.com>
  */
 class ClassMapGenerator
 {
     /**
-     * Generate a class map file
+     * Generate a class map file.
      *
      * @param array|string $dirs Directories or a single path to search in
      * @param string       $file The name of the class map file
@@ -45,7 +45,7 @@ public static function dump($dirs, $file)
     }
 
     /**
-     * Iterate over all files in the given directory searching for classes
+     * Iterate over all files in the given directory searching for classes.
      *
      * @param \Iterator|string $dir The directory to search in or an iterator
      *
@@ -81,7 +81,7 @@ public static function createMap($dir)
     }
 
     /**
-     * Extract the classes in the given file
+     * Extract the classes in the given file.
      *
      * @param string $path The file to check
      *
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugClassLoader.php
index 7c6141f..897919b 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugClassLoader.php
@@ -82,7 +82,7 @@ public function unregister()
     }
 
     /**
-     * Finds a file by class name
+     * Finds a file by class name.
      *
      * @param string $class A class name to resolve to file
      *
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugUniversalClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugUniversalClassLoader.php
index 678f4e8..40d847c 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugUniversalClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/DebugUniversalClassLoader.php
@@ -15,6 +15,8 @@
  * Checks that the class is actually declared in the included file.
  *
  * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @deprecated Deprecated since version 2.4, to be removed in 3.0. Use the DebugClassLoader provided by the Debug component instead.
  */
 class DebugUniversalClassLoader extends UniversalClassLoader
 {
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/LICENSE b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/LICENSE
index 0b3292c..43028bc 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/LICENSE
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2014 Fabien Potencier
+Copyright (c) 2004-2015 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Psr4ClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Psr4ClassLoader.php
index 1c0c37e..a00cf7b 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Psr4ClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Psr4ClassLoader.php
@@ -77,7 +77,7 @@ public function loadClass($class)
     /**
      * Registers this instance as an autoloader.
      *
-     * @param bool    $prepend
+     * @param bool $prepend
      */
     public function register($prepend = false)
     {
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/README.md b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/README.md
index d673688..37df048 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/README.md
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/README.md
@@ -4,34 +4,34 @@ ClassLoader Component
 ClassLoader loads your project classes automatically if they follow some
 standard PHP conventions.
 
-The Universal ClassLoader is able to autoload classes that implement the PSR-0
+The ClassLoader object is able to autoload classes that implement the PSR-0
 standard or the PEAR naming convention.
 
 First, register the autoloader:
 
 ```php
-require_once __DIR__.'/src/Symfony/Component/ClassLoader/UniversalClassLoader.php';
+require_once __DIR__.'/src/Symfony/Component/ClassLoader/ClassLoader.php';
 
-use Symfony\Component\ClassLoader\UniversalClassLoader;
+use Symfony\Component\ClassLoader\ClassLoader;
 
-$loader = new UniversalClassLoader();
+$loader = new ClassLoader();
 $loader->register();
 ```
 
-Then, register some namespaces with the `registerNamespace()` method:
+Then, register some namespaces with the `addPrefix()` method:
 
 ```php
-$loader->registerNamespace('Symfony', __DIR__.'/src');
-$loader->registerNamespace('Monolog', __DIR__.'/vendor/monolog/src');
+$loader->addPrefix('Symfony', __DIR__.'/src');
+$loader->addPrefix('Monolog', __DIR__.'/vendor/monolog/src');
 ```
 
-The `registerNamespace()` method takes a namespace prefix and a path where to
+The `addPrefix()` method takes a namespace prefix and a path where to
 look for the classes as arguments.
 
 You can also register a sub-namespaces:
 
 ```php
-$loader->registerNamespace('Doctrine\\Common', __DIR__.'/vendor/doctrine-common/lib');
+$loader->addPrefix('Doctrine\\Common', __DIR__.'/vendor/doctrine-common/lib');
 ```
 
 The order of registration is significant and the first registered namespace
@@ -40,14 +40,14 @@ takes precedence over later registered one.
 You can also register more than one path for a given namespace:
 
 ```php
-$loader->registerNamespace('Symfony', array(__DIR__.'/src', __DIR__.'/symfony/src'));
+$loader->addPrefix('Symfony', array(__DIR__.'/src', __DIR__.'/symfony/src'));
 ```
 
-Alternatively, you can use the `registerNamespaces()` method to register more
+Alternatively, you can use the `addPrefixes()` method to register more
 than one namespace at once:
 
 ```php
-$loader->registerNamespaces(array(
+$loader->addPrefixes(array(
     'Symfony' => array(__DIR__.'/src', __DIR__.'/symfony/src'),
     'Doctrine\\Common' => __DIR__.'/vendor/doctrine-common/lib',
     'Doctrine' => __DIR__.'/vendor/doctrine/lib',
@@ -55,16 +55,20 @@ $loader->registerNamespaces(array(
 ));
 ```
 
-For better performance, you can use the APC based version of the universal
-class loader:
+For better performance, you can use the APC class loader:
 
 ```php
-require_once __DIR__.'/src/Symfony/Component/ClassLoader/UniversalClassLoader.php';
-require_once __DIR__.'/src/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php';
+require_once __DIR__.'/src/Symfony/Component/ClassLoader/ClassLoader.php';
+require_once __DIR__.'/src/Symfony/Component/ClassLoader/ApcClassLoader.php';
 
-use Symfony\Component\ClassLoader\ApcUniversalClassLoader;
+use Symfony\Component\ClassLoader\ClassLoader;
+use Symfony\Component\ClassLoader\ApcClassLoader;
 
-$loader = new ApcUniversalClassLoader('apc.prefix.');
+$loader = new ClassLoader();
+$loader->addPrefix('Symfony', __DIR__.'/src');
+
+$loader = new ApcClassLoader('apc.prefix.', $loader);
+$loader->register();
 ```
 
 Furthermore, the component provides tools to aggregate classes into a single
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php
index 696943e..e821e45 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassCollectionLoaderTest.php
@@ -146,6 +146,38 @@ public function getDifferentOrdersForTraits()
         );
     }
 
+    public function testFixClassWithTraitsOrdering()
+    {
+        if (PHP_VERSION_ID < 50400) {
+            $this->markTestSkipped('Requires PHP > 5.4');
+
+            return;
+        }
+
+        require_once __DIR__.'/Fixtures/ClassesWithParents/CTrait.php';
+        require_once __DIR__.'/Fixtures/ClassesWithParents/F.php';
+        require_once __DIR__.'/Fixtures/ClassesWithParents/G.php';
+
+        $classes = array(
+            'ClassesWithParents\\F',
+            'ClassesWithParents\\G',
+        );
+
+        $expected = array(
+            'ClassesWithParents\\CTrait',
+            'ClassesWithParents\\F',
+            'ClassesWithParents\\G',
+        );
+
+        $r = new \ReflectionClass('Symfony\Component\ClassLoader\ClassCollectionLoader');
+        $m = $r->getMethod('getOrderedClasses');
+        $m->setAccessible(true);
+
+        $ordered = $m->invoke('Symfony\Component\ClassLoader\ClassCollectionLoader', $classes);
+
+        $this->assertEquals($expected, array_map(function ($class) { return $class->getName(); }, $ordered));
+    }
+
     /**
      * @dataProvider getFixNamespaceDeclarationsData
      */
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php
index 9853bcb..8809925 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php
@@ -16,7 +16,7 @@
 class ClassMapGeneratorTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var string $workspace
+     * @var string|null
      */
     private $workspace = null;
 
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/F.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/F.php
new file mode 100644
index 0000000..a0a5172
--- /dev/null
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/F.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace ClassesWithParents;
+
+class F
+{
+    use CTrait;
+}
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/G.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/G.php
new file mode 100644
index 0000000..bab6031
--- /dev/null
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/ClassesWithParents/G.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace ClassesWithParents;
+
+class G
+{
+    use CTrait;
+}
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ApcUniversalClassLoaderTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/LegacyApcUniversalClassLoaderTest.php
similarity index 98%
rename from core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ApcUniversalClassLoaderTest.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/LegacyApcUniversalClassLoaderTest.php
index 9755256..8a1f203 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ApcUniversalClassLoaderTest.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/LegacyApcUniversalClassLoaderTest.php
@@ -13,10 +13,12 @@
 
 use Symfony\Component\ClassLoader\ApcUniversalClassLoader;
 
-class ApcUniversalClassLoaderTest extends \PHPUnit_Framework_TestCase
+class LegacyApcUniversalClassLoaderTest extends \PHPUnit_Framework_TestCase
 {
     protected function setUp()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
         if (!extension_loaded('apc')) {
             $this->markTestSkipped('The apc extension is not available.');
         }
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/UniversalClassLoaderTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/LegacyUniversalClassLoaderTest.php
similarity index 98%
rename from core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/UniversalClassLoaderTest.php
rename to core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/LegacyUniversalClassLoaderTest.php
index 6bd7e43..f654f79 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/UniversalClassLoaderTest.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/LegacyUniversalClassLoaderTest.php
@@ -13,8 +13,13 @@
 
 use Symfony\Component\ClassLoader\UniversalClassLoader;
 
-class UniversalClassLoaderTest extends \PHPUnit_Framework_TestCase
+class LegacyUniversalClassLoaderTest extends \PHPUnit_Framework_TestCase
 {
+    public function setUp()
+    {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+    }
+
     /**
      * @dataProvider getLoadClassTests
      */
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/UniversalClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/UniversalClassLoader.php
index 32e959e..b664cab 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/UniversalClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/UniversalClassLoader.php
@@ -57,6 +57,8 @@
  * @author Fabien Potencier <fabien@symfony.com>
  *
  * @api
+ *
+ * @deprecated Deprecated since version 2.4, to be removed in 3.0. Use the ClassLoader class instead.
  */
 class UniversalClassLoader
 {
@@ -68,7 +70,7 @@ class UniversalClassLoader
 
     /**
      * Turns on searching the include for class files. Allows easy loading
-     * of installed PEAR packages
+     * of installed PEAR packages.
      *
      * @param bool $useIncludePath
      */
@@ -173,7 +175,7 @@ public function registerPrefixFallback($dir)
     }
 
     /**
-     * Registers an array of namespaces
+     * Registers an array of namespaces.
      *
      * @param array $namespaces An array of namespaces (namespaces as keys and locations as values)
      *
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/WinCacheClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/WinCacheClassLoader.php
index ab6c888..0fc11d0 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/WinCacheClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/WinCacheClassLoader.php
@@ -17,11 +17,19 @@
  * It expects an object implementing a findFile method to find the file. This
  * allow using it as a wrapper around the other loaders of the component (the
  * ClassLoader and the UniversalClassLoader for instance) but also around any
- * other autoloader following this convention (the Composer one for instance)
+ * other autoloaders following this convention (the Composer one for instance).
+ *
+ *     // with a Symfony autoloader
+ *     use Symfony\Component\ClassLoader\ClassLoader;
  *
  *     $loader = new ClassLoader();
+ *     $loader->addPrefix('Symfony\Component', __DIR__.'/component');
+ *     $loader->addPrefix('Symfony',           __DIR__.'/framework');
+ *
+ *     // or with a Composer autoloader
+ *     use Composer\Autoload\ClassLoader;
  *
- *     // register classes with namespaces
+ *     $loader = new ClassLoader();
  *     $loader->add('Symfony\Component', __DIR__.'/component');
  *     $loader->add('Symfony',           __DIR__.'/framework');
  *
@@ -43,10 +51,9 @@ class WinCacheClassLoader
     private $prefix;
 
     /**
-     * The class loader object being decorated.
+     * A class loader object that implements the findFile() method.
      *
-     * @var \Symfony\Component\ClassLoader\ClassLoader
-     *   A class loader object that implements the findFile() method.
+     * @var object
      */
     protected $decorated;
 
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/XcacheClassLoader.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/XcacheClassLoader.php
index 0a7a68d..19c1303 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/XcacheClassLoader.php
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/XcacheClassLoader.php
@@ -17,11 +17,19 @@
  * It expects an object implementing a findFile method to find the file. This
  * allows using it as a wrapper around the other loaders of the component (the
  * ClassLoader and the UniversalClassLoader for instance) but also around any
- * other autoloader following this convention (the Composer one for instance)
+ * other autoloaders following this convention (the Composer one for instance).
+ *
+ *     // with a Symfony autoloader
+ *     use Symfony\Component\ClassLoader\ClassLoader;
  *
  *     $loader = new ClassLoader();
+ *     $loader->addPrefix('Symfony\Component', __DIR__.'/component');
+ *     $loader->addPrefix('Symfony',           __DIR__.'/framework');
+ *
+ *     // or with a Composer autoloader
+ *     use Composer\Autoload\ClassLoader;
  *
- *     // register classes with namespaces
+ *     $loader = new ClassLoader();
  *     $loader->add('Symfony\Component', __DIR__.'/component');
  *     $loader->add('Symfony',           __DIR__.'/framework');
  *
@@ -45,7 +53,9 @@ class XcacheClassLoader
     private $prefix;
 
     /**
-     * @var object A class loader object that implements the findFile() method
+     * A class loader object that implements the findFile() method.
+     *
+     * @var object
      */
     private $decorated;
 
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/composer.json b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/composer.json
index f323a76..4cfddf7 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/composer.json
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/composer.json
@@ -20,7 +20,7 @@
         "php": ">=5.3.3"
     },
     "require-dev": {
-        "symfony/finder": "~2.0"
+        "symfony/finder": "~2.0,>=2.0.5"
     },
     "autoload": {
         "psr-0": { "Symfony\\Component\\ClassLoader\\": "" }
diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/phpunit.xml.dist b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/phpunit.xml.dist
index 3602188..4495798 100644
--- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/phpunit.xml.dist
+++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/phpunit.xml.dist
@@ -6,6 +6,10 @@
          colors="true"
          bootstrap="vendor/autoload.php"
 >
+    <php>
+        <!-- Silence E_USER_DEPRECATED (-16385 == -1 & ~E_USER_DEPRECATED) -->
+        <ini name="error_reporting" value="-16385"/>
+    </php>
     <testsuites>
         <testsuite name="Symfony ClassLoader Component Test Suite">
             <directory>./Tests/</directory>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/CssSelector.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/CssSelector.php
index 58d8466..82c9283 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/CssSelector.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/CssSelector.php
@@ -24,9 +24,42 @@
  *
  * $xpath = CssSelector::toXpath('h1.foo');
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
+ * Copyright (c) 2007-2012 Ian Bicking and contributors. See AUTHORS
+ * for more details.
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. Neither the name of Ian Bicking nor the names of its contributors may
+ * be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IAN BICKING OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
  * @author Fabien Potencier <fabien@symfony.com>
  *
  * @api
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/ExceptionInterface.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/ExceptionInterface.php
index da01c2b..e4c5ae1 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/ExceptionInterface.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/ExceptionInterface.php
@@ -14,7 +14,7 @@
 /**
  * Interface for exceptions.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/ExpressionErrorException.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/ExpressionErrorException.php
index 151dbf0..756a12a 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/ExpressionErrorException.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/ExpressionErrorException.php
@@ -14,7 +14,7 @@
 /**
  * ParseException is thrown when a CSS selector syntax is not valid.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/InternalErrorException.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/InternalErrorException.php
index 8a815fb..2decde6 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/InternalErrorException.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/InternalErrorException.php
@@ -14,7 +14,7 @@
 /**
  * ParseException is thrown when a CSS selector syntax is not valid.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/ParseException.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/ParseException.php
index 9c119f8..3b0b0ee 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/ParseException.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/ParseException.php
@@ -14,7 +14,7 @@
 /**
  * ParseException is thrown when a CSS selector syntax is not valid.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Fabien Potencier <fabien@symfony.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/SyntaxErrorException.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/SyntaxErrorException.php
index 529b891..831b001 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/SyntaxErrorException.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Exception/SyntaxErrorException.php
@@ -16,7 +16,7 @@
 /**
  * ParseException is thrown when a CSS selector syntax is not valid.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/LICENSE b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/LICENSE
index 0b3292c..43028bc 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/LICENSE
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2014 Fabien Potencier
+Copyright (c) 2004-2015 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/AbstractNode.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/AbstractNode.php
index f5324e1..b1c8e95 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/AbstractNode.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/AbstractNode.php
@@ -14,7 +14,7 @@
 /**
  * Abstract base node class.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/AttributeNode.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/AttributeNode.php
index e2fa9a2..b10a4dd 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/AttributeNode.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/AttributeNode.php
@@ -14,7 +14,7 @@
 /**
  * Represents a "<selector>[<namespace>|<attribute> <operator> <value>]" node.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/ClassNode.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/ClassNode.php
index a7a59a3..544342f 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/ClassNode.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/ClassNode.php
@@ -14,7 +14,7 @@
 /**
  * Represents a "<selector>.<name>" node.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/CombinedSelectorNode.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/CombinedSelectorNode.php
index 4e085ea..6d00db4 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/CombinedSelectorNode.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/CombinedSelectorNode.php
@@ -14,7 +14,7 @@
 /**
  * Represents a combined node.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/ElementNode.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/ElementNode.php
index 9ab13c3..71ef121 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/ElementNode.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/ElementNode.php
@@ -14,7 +14,7 @@
 /**
  * Represents a "<namespace>|<element>" node.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/FunctionNode.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/FunctionNode.php
index ecd11a5..f94af8d 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/FunctionNode.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/FunctionNode.php
@@ -16,7 +16,7 @@
 /**
  * Represents a "<selector>:<name>(<arguments>)" node.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/HashNode.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/HashNode.php
index 7fb4075..ddbe764 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/HashNode.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/HashNode.php
@@ -14,7 +14,7 @@
 /**
  * Represents a "<selector>#<id>" node.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/NegationNode.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/NegationNode.php
index 2529689..0fafb0a 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/NegationNode.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/NegationNode.php
@@ -14,7 +14,7 @@
 /**
  * Represents a "<selector>:not(<identifier>)" node.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/NodeInterface.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/NodeInterface.php
index 1601c33..dd300e2 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/NodeInterface.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/NodeInterface.php
@@ -14,7 +14,7 @@
 /**
  * Interface for nodes.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/PseudoNode.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/PseudoNode.php
index 4f2d538..0e413ad 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/PseudoNode.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/PseudoNode.php
@@ -14,7 +14,7 @@
 /**
  * Represents a "<selector>:<identifier>" node.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/SelectorNode.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/SelectorNode.php
index 49f417f..4958da5 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/SelectorNode.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/SelectorNode.php
@@ -14,7 +14,7 @@
 /**
  * Represents a "<selector>(::|:)<pseudoElement>" node.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/Specificity.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/Specificity.php
index d0c215e..0dfec3b 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/Specificity.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Node/Specificity.php
@@ -14,7 +14,7 @@
 /**
  * Represents a node specificity.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @see http://www.w3.org/TR/selectors/#specificity
@@ -81,6 +81,7 @@ public function getValue()
      * 0 if they are equal, and 1 if the argument is lower
      *
      * @param Specificity $specificity
+     *
      * @return int
      */
     public function compareTo(Specificity $specificity)
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/CommentHandler.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/CommentHandler.php
index 97c3f8d..f480776 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/CommentHandler.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/CommentHandler.php
@@ -17,7 +17,7 @@
 /**
  * CSS selector comment handler.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/HandlerInterface.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/HandlerInterface.php
index c7a48c0..049ddd3 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/HandlerInterface.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/HandlerInterface.php
@@ -17,7 +17,7 @@
 /**
  * CSS selector handler interface.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/HashHandler.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/HashHandler.php
index 2227ea6..b144223 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/HashHandler.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/HashHandler.php
@@ -20,7 +20,7 @@
 /**
  * CSS selector comment handler.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/IdentifierHandler.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/IdentifierHandler.php
index 346532e..86739ea 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/IdentifierHandler.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/IdentifierHandler.php
@@ -20,7 +20,7 @@
 /**
  * CSS selector comment handler.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/NumberHandler.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/NumberHandler.php
index 208f83c..97a9387 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/NumberHandler.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/NumberHandler.php
@@ -19,7 +19,7 @@
 /**
  * CSS selector comment handler.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/StringHandler.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/StringHandler.php
index 2663fe8..9f7a594 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/StringHandler.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/StringHandler.php
@@ -22,7 +22,7 @@
 /**
  * CSS selector comment handler.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/WhitespaceHandler.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/WhitespaceHandler.php
index 806cfbb..234bbd8 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/WhitespaceHandler.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Handler/WhitespaceHandler.php
@@ -18,7 +18,7 @@
 /**
  * CSS selector whitespace handler.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Parser.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Parser.php
index c622383..9625e3e 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Parser.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Parser.php
@@ -18,7 +18,7 @@
 /**
  * CSS selector parser.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/ParserInterface.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/ParserInterface.php
index b27f79f..3b43a52 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/ParserInterface.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/ParserInterface.php
@@ -16,7 +16,7 @@
 /**
  * CSS selector parser interface.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Reader.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Reader.php
index 2a6c4bb..ba2a7f0 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Reader.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Reader.php
@@ -14,7 +14,7 @@
 /**
  * CSS selector reader.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/ClassParser.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/ClassParser.php
index bb9653c..142bd16 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/ClassParser.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/ClassParser.php
@@ -19,7 +19,7 @@
 /**
  * CSS selector class parser shortcut.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/ElementParser.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/ElementParser.php
index eae18b9..f62d259 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/ElementParser.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/ElementParser.php
@@ -18,7 +18,7 @@
 /**
  * CSS selector element parser shortcut.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/EmptyStringParser.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/EmptyStringParser.php
index 0031f7c..98a08fd 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/EmptyStringParser.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/EmptyStringParser.php
@@ -22,7 +22,7 @@
  * - The parser fails to parse an empty string.
  * - In the previous version, an empty string matches each tags.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/HashParser.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/HashParser.php
index 28c7d29..fde6141 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/HashParser.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Shortcut/HashParser.php
@@ -19,7 +19,7 @@
 /**
  * CSS selector hash parser shortcut.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Token.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Token.php
index ba5d657..6f7586f 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Token.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Token.php
@@ -14,7 +14,7 @@
 /**
  * CSS selector token.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/TokenStream.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/TokenStream.php
index 05d715b..8184b83 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/TokenStream.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/TokenStream.php
@@ -17,7 +17,7 @@
 /**
  * CSS selector token stream.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Tokenizer/Tokenizer.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Tokenizer/Tokenizer.php
index c850276..79fa7b7 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Tokenizer/Tokenizer.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Tokenizer/Tokenizer.php
@@ -19,7 +19,7 @@
 /**
  * CSS selector tokenizer.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerEscaping.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerEscaping.php
index 76386c9..bf5096b 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerEscaping.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerEscaping.php
@@ -14,7 +14,7 @@
 /**
  * CSS selector tokenizer escaping applier.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerPatterns.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerPatterns.php
index 6fc98b7..326f020 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerPatterns.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/Parser/Tokenizer/TokenizerPatterns.php
@@ -14,7 +14,7 @@
 /**
  * CSS selector tokenizer patterns builder.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/README.md b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/README.md
index e0212b1..ef28bc9 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/README.md
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/README.md
@@ -36,10 +36,9 @@ names are lower-cased, the following extra pseudo-classes are supported:
 Resources
 ---------
 
-This component is a port of the Python lxml library, which is copyright Infrae
-and distributed under the BSD license.
-
-Current code is a port of https://github.com/SimonSapin/cssselect/releases/tag/v0.7.1
+This component is a port of the Python cssselect library
+[v0.7.1](https://github.com/SimonSapin/cssselect/releases/tag/v0.7.1),
+which is distributed under the BSD license.
 
 You can run the unit tests with the following command:
 
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/AbstractExtension.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/AbstractExtension.php
index 1b147e9..c70609c 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/AbstractExtension.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/AbstractExtension.php
@@ -14,7 +14,7 @@
 /**
  * XPath expression translator abstract extension.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/AttributeMatchingExtension.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/AttributeMatchingExtension.php
index 31d24b2..cbe48c5 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/AttributeMatchingExtension.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/AttributeMatchingExtension.php
@@ -17,7 +17,7 @@
 /**
  * XPath expression translator attribute extension.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/CombinationExtension.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/CombinationExtension.php
index 639e924..9ce018f 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/CombinationExtension.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/CombinationExtension.php
@@ -16,7 +16,7 @@
 /**
  * XPath expression translator combination extension.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/ExtensionInterface.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/ExtensionInterface.php
index 2231265..9b47f24 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/ExtensionInterface.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/ExtensionInterface.php
@@ -14,7 +14,7 @@
 /**
  * XPath expression translator extension interface.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/FunctionExtension.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/FunctionExtension.php
index e849474..0086240 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/FunctionExtension.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/FunctionExtension.php
@@ -21,7 +21,7 @@
 /**
  * XPath expression translator function extension.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/HtmlExtension.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/HtmlExtension.php
index 71ed4b4..883156b 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/HtmlExtension.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/HtmlExtension.php
@@ -19,7 +19,7 @@
 /**
  * XPath expression translator HTML extension.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/NodeExtension.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/NodeExtension.php
index 212955c..2b8920f 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/NodeExtension.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/NodeExtension.php
@@ -18,7 +18,7 @@
 /**
  * XPath expression translator node extension.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/PseudoClassExtension.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/PseudoClassExtension.php
index d598572..008ec2b 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/PseudoClassExtension.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Extension/PseudoClassExtension.php
@@ -17,7 +17,7 @@
 /**
  * XPath expression translator pseudo-class extension.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Translator.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Translator.php
index 011882c..5053793 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Translator.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/Translator.php
@@ -21,7 +21,7 @@
 /**
  * XPath expression translator interface.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/TranslatorInterface.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/TranslatorInterface.php
index b26cf5b..1d9d1c8 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/TranslatorInterface.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/TranslatorInterface.php
@@ -16,7 +16,7 @@
 /**
  * XPath expression translator interface.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
@@ -34,7 +34,7 @@
     public function cssToXPath($cssExpr, $prefix = 'descendant-or-self::');
 
     /**
-     * Translates a parsed selector node to an XPath expression
+     * Translates a parsed selector node to an XPath expression.
      *
      * @param SelectorNode $selector
      * @param string       $prefix
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/XPathExpr.php b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/XPathExpr.php
index 4ec9fda..c7ef97c 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/XPathExpr.php
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/XPath/XPathExpr.php
@@ -14,7 +14,7 @@
 /**
  * XPath expression translator interface.
  *
- * This component is a port of the Python cssselector library,
+ * This component is a port of the Python cssselect library,
  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  *
  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
diff --git a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/phpunit.xml.dist b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/phpunit.xml.dist
index 3eb0a1e..7f88533 100644
--- a/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/phpunit.xml.dist
+++ b/core/vendor/symfony/css-selector/Symfony/Component/CssSelector/phpunit.xml.dist
@@ -6,6 +6,10 @@
          colors="true"
          bootstrap="vendor/autoload.php"
 >
+    <php>
+        <!-- Silence E_USER_DEPRECATED (-16385 == -1 & ~E_USER_DEPRECATED) -->
+        <ini name="error_reporting" value="-16385"/>
+    </php>
     <testsuites>
         <testsuite name="Symfony CssSelector Component Test Suite">
             <directory>./Tests/</directory>
diff --git a/core/vendor/symfony/debug/Symfony/Component/Debug/DebugClassLoader.php b/core/vendor/symfony/debug/Symfony/Component/Debug/DebugClassLoader.php
index ac55365..b70a4c4 100644
--- a/core/vendor/symfony/debug/Symfony/Component/Debug/DebugClassLoader.php
+++ b/core/vendor/symfony/debug/Symfony/Component/Debug/DebugClassLoader.php
@@ -65,11 +65,7 @@ public function __construct($classLoader)
      */
     public function getClassLoader()
     {
-        if ($this->wasFinder) {
-            return $this->classLoader[0];
-        } else {
-            return $this->classLoader;
-        }
+        return $this->wasFinder ? $this->classLoader[0] : $this->classLoader;
     }
 
     /**
@@ -141,7 +137,7 @@ public function findFile($class)
      *
      * @param string $class The name of the class
      *
-     * @return bool|null    True, if loaded
+     * @return bool|null True, if loaded
      *
      * @throws \RuntimeException
      */
@@ -214,7 +210,7 @@ public function loadClass($class)
                     chdir($cwd);
                 }
 
-                if ( 0 === substr_compare($real, $tail, -strlen($tail), strlen($tail), true)
+                if (0 === substr_compare($real, $tail, -strlen($tail), strlen($tail), true)
                   && 0 !== substr_compare($real, $tail, -strlen($tail), strlen($tail), false)
                 ) {
                     throw new \RuntimeException(sprintf('Case mismatch between class and source file names: %s vs %s', $class, $real));
diff --git a/core/vendor/symfony/debug/Symfony/Component/Debug/ErrorHandler.php b/core/vendor/symfony/debug/Symfony/Component/Debug/ErrorHandler.php
index 458cb31..48e4a2d 100644
--- a/core/vendor/symfony/debug/Symfony/Component/Debug/ErrorHandler.php
+++ b/core/vendor/symfony/debug/Symfony/Component/Debug/ErrorHandler.php
@@ -338,7 +338,7 @@ private function reRegister($prev)
     /**
      * Handles errors by filtering then logging them according to the configured bit fields.
      *
-     * @param int    $type One of the E_* constants
+     * @param int    $type    One of the E_* constants
      * @param string $file
      * @param int    $line
      * @param array  $context
@@ -584,7 +584,7 @@ protected function getFatalErrorHandlers()
     /**
      * Sets the level at which the conversion to Exception is done.
      *
-     * @param int|null     $level The level (null to use the error_reporting() value and 0 to disable)
+     * @param int|null $level The level (null to use the error_reporting() value and 0 to disable)
      *
      * @deprecated since 2.6, to be removed in 3.0. Use throwAt() instead.
      */
@@ -597,7 +597,7 @@ public function setLevel($level)
     /**
      * Sets the display_errors flag value.
      *
-     * @param int     $displayErrors The display_errors flag value
+     * @param int $displayErrors The display_errors flag value
      *
      * @deprecated since 2.6, to be removed in 3.0. Use throwAt() instead.
      */
diff --git a/core/vendor/symfony/debug/Symfony/Component/Debug/Exception/FatalErrorException.php b/core/vendor/symfony/debug/Symfony/Component/Debug/Exception/FatalErrorException.php
index d5b5846..d142051 100644
--- a/core/vendor/symfony/debug/Symfony/Component/Debug/Exception/FatalErrorException.php
+++ b/core/vendor/symfony/debug/Symfony/Component/Debug/Exception/FatalErrorException.php
@@ -9,7 +9,7 @@
  * file that was distributed with this source code.
  */
 
-namespace Symfony\Component\Debug\Exception;
+namespace Symfony\Component\HttpKernel\Exception;
 
 /**
  * Fatal Error Exception.
@@ -17,9 +17,24 @@
  * @author Fabien Potencier <fabien@symfony.com>
  * @author Konstanton Myakshin <koc-dp@yandex.ru>
  * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @deprecated Deprecated in 2.3, to be removed in 3.0. Use the same class from the Debug component instead.
  */
 class FatalErrorException extends \ErrorException
 {
+}
+
+namespace Symfony\Component\Debug\Exception;
+
+use Symfony\Component\HttpKernel\Exception\FatalErrorException as LegacyFatalErrorException;
+
+/**
+ * Fatal Error Exception.
+ *
+ * @author Konstanton Myakshin <koc-dp@yandex.ru>
+ */
+class FatalErrorException extends LegacyFatalErrorException
+{
     public function __construct($message, $code, $severity, $filename, $lineno, $traceOffset = null, $traceArgs = true)
     {
         parent::__construct($message, $code, $severity, $filename, $lineno);
diff --git a/core/vendor/symfony/debug/Symfony/Component/Debug/Exception/FlattenException.php b/core/vendor/symfony/debug/Symfony/Component/Debug/Exception/FlattenException.php
index fdfba70..d8d5c5b 100644
--- a/core/vendor/symfony/debug/Symfony/Component/Debug/Exception/FlattenException.php
+++ b/core/vendor/symfony/debug/Symfony/Component/Debug/Exception/FlattenException.php
@@ -9,8 +9,49 @@
  * file that was distributed with this source code.
  */
 
+namespace Symfony\Component\HttpKernel\Exception;
+
+use Symfony\Component\Debug\Exception\FlattenException as DebugFlattenException;
+
+/**
+ * FlattenException wraps a PHP Exception to be able to serialize it.
+ *
+ * Basically, this class removes all objects from the trace.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @deprecated Deprecated in 2.3, to be removed in 3.0. Use the same class from the Debug component instead.
+ */
+class FlattenException
+{
+    private $handler;
+
+    public static function __callStatic($method, $args)
+    {
+        if (!method_exists('Symfony\Component\Debug\Exception\FlattenException', $method)) {
+            throw new \BadMethodCallException(sprintf('Call to undefined method %s::%s()', get_called_class(), $method));
+        }
+
+        return call_user_func_array(array('Symfony\Component\Debug\Exception\FlattenException', $method), $args);
+    }
+
+    public function __call($method, $args)
+    {
+        if (!isset($this->handler)) {
+            $this->handler = new DebugFlattenException();
+        }
+
+        if (!method_exists($this->handler, $method)) {
+            throw new \BadMethodCallException(sprintf('Call to undefined method %s::%s()', get_class($this), $method));
+        }
+
+        return call_user_func_array(array($this->handler, $method), $args);
+    }
+}
+
 namespace Symfony\Component\Debug\Exception;
 
+use Symfony\Component\HttpKernel\Exception\FlattenException as LegacyFlattenException;
 use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
 
 /**
@@ -20,7 +61,7 @@
  *
  * @author Fabien Potencier <fabien@symfony.com>
  */
-class FlattenException
+class FlattenException extends LegacyFlattenException
 {
     private $message;
     private $code;
@@ -210,17 +251,20 @@ public function setTrace($trace, $file, $line)
         }
     }
 
-    private function flattenArgs($args, $level = 0)
+    private function flattenArgs($args, $level = 0, &$count = 0)
     {
         $result = array();
         foreach ($args as $key => $value) {
+            if (++$count > 1e4) {
+                return array('array', '*SKIPPED over 10000 entries*');
+            }
             if (is_object($value)) {
                 $result[$key] = array('object', get_class($value));
             } elseif (is_array($value)) {
                 if ($level > 10) {
                     $result[$key] = array('array', '*DEEP NESTED ARRAY*');
                 } else {
-                    $result[$key] = array('array', $this->flattenArgs($value, $level + 1));
+                    $result[$key] = array('array', $this->flattenArgs($value, $level + 1, $count));
                 }
             } elseif (null === $value) {
                 $result[$key] = array('null', null);
diff --git a/core/vendor/symfony/debug/Symfony/Component/Debug/ExceptionHandler.php b/core/vendor/symfony/debug/Symfony/Component/Debug/ExceptionHandler.php
index 9812729..3e87587 100644
--- a/core/vendor/symfony/debug/Symfony/Component/Debug/ExceptionHandler.php
+++ b/core/vendor/symfony/debug/Symfony/Component/Debug/ExceptionHandler.php
@@ -50,7 +50,7 @@ public function __construct($debug = true, $fileLinkFormat = null)
      */
     public static function register($debug = true, $fileLinkFormat = null)
     {
-        $handler = new static($debug, $fileLinkFormat = null);
+        $handler = new static($debug, $fileLinkFormat);
 
         $prev = set_exception_handler(array($handler, 'handle'));
         if (is_array($prev) && $prev[0] instanceof ErrorHandler) {
@@ -142,8 +142,10 @@ public function handle(\Exception $exception)
      * this method will use it to create and send the response. If not,
      * it will fallback to plain PHP functions.
      *
-     * @see sendPhpResponse
-     * @see createResponse
+     * @param \Exception $exception An \Exception instance
+     *
+     * @see sendPhpResponse()
+     * @see createResponse()
      */
     private function failSafeHandle(\Exception $exception)
     {
diff --git a/core/vendor/symfony/debug/Symfony/Component/Debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php b/core/vendor/symfony/debug/Symfony/Component/Debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php
index 2b37ee9..c75f17e 100644
--- a/core/vendor/symfony/debug/Symfony/Component/Debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php
+++ b/core/vendor/symfony/debug/Symfony/Component/Debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php
@@ -15,7 +15,8 @@
 use Symfony\Component\Debug\Exception\FatalErrorException;
 use Symfony\Component\Debug\DebugClassLoader;
 use Composer\Autoload\ClassLoader as ComposerClassLoader;
-use Symfony\Component\ClassLoader as SymfonyClassLoader;
+use Symfony\Component\ClassLoader\ClassLoader as SymfonyClassLoader;
+use Symfony\Component\ClassLoader\UniversalClassLoader as SymfonyUniversalClassLoader;
 
 /**
  * ErrorHandler for classes that do not exist.
@@ -91,11 +92,11 @@ private function getClassCandidates($class)
 
         // find Symfony and Composer autoloaders
         $classes = array();
+
         foreach ($functions as $function) {
             if (!is_array($function)) {
                 continue;
             }
-
             // get class loaders wrapped by DebugClassLoader
             if ($function[0] instanceof DebugClassLoader) {
                 $function = $function[0]->getClassLoader();
@@ -110,7 +111,7 @@ private function getClassCandidates($class)
                 }
             }
 
-            if ($function[0] instanceof ComposerClassLoader || $function[0] instanceof SymfonyClassLoader) {
+            if ($function[0] instanceof ComposerClassLoader || $function[0] instanceof SymfonyClassLoader || $function[0] instanceof SymfonyUniversalClassLoader) {
                 foreach ($function[0]->getPrefixes() as $prefix => $paths) {
                     foreach ($paths as $path) {
                         $classes = array_merge($classes, $this->findClassInPath($path, $class, $prefix));
@@ -119,7 +120,7 @@ private function getClassCandidates($class)
             }
         }
 
-        return $classes;
+        return array_unique($classes);
     }
 
     /**
diff --git a/core/vendor/symfony/debug/Symfony/Component/Debug/LICENSE b/core/vendor/symfony/debug/Symfony/Component/Debug/LICENSE
index 0b3292c..43028bc 100644
--- a/core/vendor/symfony/debug/Symfony/Component/Debug/LICENSE
+++ b/core/vendor/symfony/debug/Symfony/Component/Debug/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2014 Fabien Potencier
+Copyright (c) 2004-2015 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/core/vendor/symfony/debug/Symfony/Component/Debug/README.md b/core/vendor/symfony/debug/Symfony/Component/Debug/README.md
index 18d6d8f..70c4603 100644
--- a/core/vendor/symfony/debug/Symfony/Component/Debug/README.md
+++ b/core/vendor/symfony/debug/Symfony/Component/Debug/README.md
@@ -24,7 +24,7 @@ if ('cli' !== php_sapi_name()) {
 } elseif (!ini_get('log_errors') || ini_get('error_log')) {
     ini_set('display_errors', 1);
 }
-ErrorHandler::register($errorReportingLevel);
+ErrorHandler::register();
 ```
 
 Note that the `Debug::enable()` call also registers the debug class loader
diff --git a/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/DebugClassLoaderTest.php b/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/DebugClassLoaderTest.php
index dd962d3..1d6f6b4 100644
--- a/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/DebugClassLoaderTest.php
+++ b/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/DebugClassLoaderTest.php
@@ -62,17 +62,14 @@ public function testIdempotence()
     public function testUnsilencing()
     {
         ob_start();
-        $bak = array(
-            ini_set('log_errors', 0),
-            ini_set('display_errors', 1),
-        );
+
+        $this->iniSet('log_errors', 0);
+        $this->iniSet('display_errors', 1);
 
         // See below: this will fail with parse error
         // but this should not be @-silenced.
         @class_exists(__NAMESPACE__.'\TestingUnsilencing', true);
 
-        ini_set('log_errors', $bak[0]);
-        ini_set('display_errors', $bak[1]);
         $output = ob_get_clean();
 
         $this->assertStringMatchesFormat('%aParse error%a', $output);
diff --git a/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/ErrorHandlerTest.php b/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/ErrorHandlerTest.php
index c0fbb4b..663d6ca 100644
--- a/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/ErrorHandlerTest.php
+++ b/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/ErrorHandlerTest.php
@@ -16,36 +16,13 @@
 use Symfony\Component\Debug\Exception\ContextErrorException;
 
 /**
- * ErrorHandlerTest
+ * ErrorHandlerTest.
  *
  * @author Robert Schönthal <seroscho@googlemail.com>
  * @author Nicolas Grekas <p@tchwork.com>
  */
 class ErrorHandlerTest extends \PHPUnit_Framework_TestCase
 {
-    /**
-     * @var int Error reporting level before running tests.
-     */
-    protected $errorReporting;
-
-    /**
-     * @var string Display errors setting before running tests.
-     */
-    protected $displayErrors;
-
-    public function setUp()
-    {
-        $this->errorReporting = error_reporting(E_ALL | E_STRICT);
-        $this->displayErrors = ini_get('display_errors');
-        ini_set('display_errors', '1');
-    }
-
-    public function tearDown()
-    {
-        ini_set('display_errors', $this->displayErrors);
-        error_reporting($this->errorReporting);
-    }
-
     public function testRegister()
     {
         $handler = ErrorHandler::register();
@@ -192,6 +169,8 @@ public function testDefaultLogger()
 
     public function testHandleError()
     {
+        $this->iniSet('error_reporting', -1);
+
         try {
             $handler = ErrorHandler::register();
             $handler->throwAt(0, true);
@@ -380,8 +359,10 @@ public function testHandleFatalError()
         }
     }
 
-    public function testDeprecatedInterface()
+    public function testLegacyInterface()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
         try {
             $handler = ErrorHandler::register(0);
             $this->assertFalse($handler->handle(0, 'foo', 'foo.php', 12, array()));
diff --git a/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/Exception/FlattenExceptionTest.php b/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/Exception/FlattenExceptionTest.php
index 6c23416..923c47f 100644
--- a/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/Exception/FlattenExceptionTest.php
+++ b/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/Exception/FlattenExceptionTest.php
@@ -186,6 +186,28 @@ public function testRecursionInArguments()
         $this->assertContains('*DEEP NESTED ARRAY*', serialize($trace));
     }
 
+    public function testTooBigArray()
+    {
+        $a = array();
+        for ($i = 0; $i < 20; $i++) {
+            for ($j = 0; $j < 50; $j++) {
+                for ($k = 0; $k < 10; $k++) {
+                    $a[$i][$j][$k] = 'value';
+                }
+            }
+        }
+        $a[20] = 'value';
+        $a[21] = 'value1';
+        $exception = $this->createException($a);
+
+        $flattened = FlattenException::create($exception);
+        $trace = $flattened->getTrace();
+        $serializeTrace = serialize($trace);
+
+        $this->assertContains('*SKIPPED over 10000 entries*', $serializeTrace);
+        $this->assertNotContains('*value1*', $serializeTrace);
+    }
+
     private function createException($foo)
     {
         return new \Exception();
diff --git a/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/FatalErrorHandler/ClassNotFoundFatalErrorHandlerTest.php b/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/FatalErrorHandler/ClassNotFoundFatalErrorHandlerTest.php
index 0dbb7b2..1ae6fc4 100644
--- a/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/FatalErrorHandler/ClassNotFoundFatalErrorHandlerTest.php
+++ b/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/FatalErrorHandler/ClassNotFoundFatalErrorHandlerTest.php
@@ -11,6 +11,8 @@
 
 namespace Symfony\Component\Debug\Tests\FatalErrorHandler;
 
+use Symfony\Component\ClassLoader\ClassLoader as SymfonyClassLoader;
+use Symfony\Component\ClassLoader\UniversalClassLoader as SymfonyUniversalClassLoader;
 use Symfony\Component\Debug\Exception\FatalErrorException;
 use Symfony\Component\Debug\FatalErrorHandler\ClassNotFoundFatalErrorHandler;
 
@@ -19,11 +21,39 @@ class ClassNotFoundFatalErrorHandlerTest extends \PHPUnit_Framework_TestCase
     /**
      * @dataProvider provideClassNotFoundData
      */
-    public function testClassNotFound($error, $translatedMessage)
+    public function testHandleClassNotFound($error, $translatedMessage)
     {
         $handler = new ClassNotFoundFatalErrorHandler();
+
+        $exception = $handler->handleError($error, new FatalErrorException('', 0, $error['type'], $error['file'], $error['line']));
+
+        $this->assertInstanceof('Symfony\Component\Debug\Exception\ClassNotFoundException', $exception);
+        $this->assertSame($translatedMessage, $exception->getMessage());
+        $this->assertSame($error['type'], $exception->getSeverity());
+        $this->assertSame($error['file'], $exception->getFile());
+        $this->assertSame($error['line'], $exception->getLine());
+    }
+
+    /**
+     * @dataProvider provideLegacyClassNotFoundData
+     */
+    public function testLegacyHandleClassNotFound($error, $translatedMessage, $autoloader)
+    {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
+        // Unregister all autoloaders to ensure the custom provided
+        // autoloader is the only one to be used during the test run.
+        $autoloaders = spl_autoload_functions();
+        array_map('spl_autoload_unregister', $autoloaders);
+        spl_autoload_register($autoloader);
+
+        $handler = new ClassNotFoundFatalErrorHandler();
+
         $exception = $handler->handleError($error, new FatalErrorException('', 0, $error['type'], $error['file'], $error['line']));
 
+        spl_autoload_unregister($autoloader);
+        array_map('spl_autoload_register', $autoloaders);
+
         $this->assertInstanceof('Symfony\Component\Debug\Exception\ClassNotFoundException', $exception);
         $this->assertSame($translatedMessage, $exception->getMessage());
         $this->assertSame($error['type'], $exception->getSeverity());
@@ -82,6 +112,50 @@ public function provideClassNotFoundData()
         );
     }
 
+    public function provideLegacyClassNotFoundData()
+    {
+        $prefixes = array('Symfony\Component\Debug\Exception\\' => realpath(__DIR__.'/../../Exception'));
+
+        $symfonyAutoloader = new SymfonyClassLoader();
+        $symfonyAutoloader->addPrefixes($prefixes);
+
+        $symfonyUniversalClassLoader = new SymfonyUniversalClassLoader();
+        $symfonyUniversalClassLoader->registerPrefixes($prefixes);
+
+        return array(
+            array(
+                array(
+                    'type' => 1,
+                    'line' => 12,
+                    'file' => 'foo.php',
+                    'message' => 'Class \'Foo\\Bar\\UndefinedFunctionException\' not found',
+                ),
+                "Attempted to load class \"UndefinedFunctionException\" from namespace \"Foo\Bar\".\nDid you forget a \"use\" statement for \"Symfony\Component\Debug\Exception\UndefinedFunctionException\"?",
+                array($symfonyAutoloader, 'loadClass'),
+            ),
+            array(
+                array(
+                    'type' => 1,
+                    'line' => 12,
+                    'file' => 'foo.php',
+                    'message' => 'Class \'Foo\\Bar\\UndefinedFunctionException\' not found',
+                ),
+                "Attempted to load class \"UndefinedFunctionException\" from namespace \"Foo\Bar\".\nDid you forget a \"use\" statement for \"Symfony\Component\Debug\Exception\UndefinedFunctionException\"?",
+                array($symfonyUniversalClassLoader, 'loadClass'),
+            ),
+            array(
+                array(
+                    'type' => 1,
+                    'line' => 12,
+                    'file' => 'foo.php',
+                    'message' => 'Class \'Foo\\Bar\\UndefinedFunctionException\' not found',
+                ),
+                "Attempted to load class \"UndefinedFunctionException\" from namespace \"Foo\\Bar\".\nDid you forget a \"use\" statement for another namespace?",
+                function ($className) { /* do nothing here */ },
+            ),
+        );
+    }
+
     public function testCannotRedeclareClass()
     {
         if (!file_exists(__DIR__.'/../FIXTURES/REQUIREDTWICE.PHP')) {
diff --git a/core/vendor/symfony/debug/Symfony/Component/Debug/composer.json b/core/vendor/symfony/debug/Symfony/Component/Debug/composer.json
index b919aa4..de68db4 100644
--- a/core/vendor/symfony/debug/Symfony/Component/Debug/composer.json
+++ b/core/vendor/symfony/debug/Symfony/Component/Debug/composer.json
@@ -19,8 +19,12 @@
         "php": ">=5.3.3",
         "psr/log": "~1.0"
     },
+    "conflict": {
+        "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
+    },
     "require-dev": {
-        "symfony/http-kernel": "~2.1",
+        "symfony/class-loader": "~2.2",
+        "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2",
         "symfony/http-foundation": "~2.1"
     },
     "suggest": {
diff --git a/core/vendor/symfony/debug/Symfony/Component/Debug/phpunit.xml.dist b/core/vendor/symfony/debug/Symfony/Component/Debug/phpunit.xml.dist
index 2a8cb81..269ca99 100644
--- a/core/vendor/symfony/debug/Symfony/Component/Debug/phpunit.xml.dist
+++ b/core/vendor/symfony/debug/Symfony/Component/Debug/phpunit.xml.dist
@@ -6,6 +6,10 @@
          colors="true"
          bootstrap="vendor/autoload.php"
 >
+    <php>
+        <!-- Silence E_USER_DEPRECATED (-16385 == -1 & ~E_USER_DEPRECATED) -->
+        <ini name="error_reporting" value="-16385"/>
+    </php>
     <testsuites>
         <testsuite name="Symfony Debug Component Test Suite">
             <directory>./Tests/</directory>
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php
index 40c6b23..c5ecb2d 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php
@@ -74,6 +74,9 @@ public function process(ContainerBuilder $container)
             if ($definition->getFactoryService()) {
                 $this->processArguments(array(new Reference($definition->getFactoryService())));
             }
+            if (is_array($definition->getFactory())) {
+                $this->processArguments($definition->getFactory());
+            }
 
             if (!$this->onlyConstructorArguments) {
                 $this->processArguments($definition->getMethodCalls());
@@ -81,9 +84,6 @@ public function process(ContainerBuilder $container)
                 if ($definition->getConfigurator()) {
                     $this->processArguments(array($definition->getConfigurator()));
                 }
-                if ($definition->getFactory()) {
-                    $this->processArguments(array($definition->getFactory()));
-                }
             }
         }
 
@@ -115,6 +115,9 @@ private function processArguments(array $arguments)
                 $this->processArguments($argument->getMethodCalls());
                 $this->processArguments($argument->getProperties());
 
+                if (is_array($argument->getFactory())) {
+                    $this->processArguments($argument->getFactory());
+                }
                 if ($argument->getFactoryService()) {
                     $this->processArguments(array(new Reference($argument->getFactoryService())));
                 }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php
index ca2c62a..d7570dd 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php
@@ -15,7 +15,7 @@
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 
 /**
- * Checks your services for circular references
+ * Checks your services for circular references.
  *
  * References from method calls are ignored since we might be able to resolve
  * these references depending on the order in which services are called.
@@ -26,7 +26,6 @@
  */
 class CheckCircularReferencesPass implements CompilerPassInterface
 {
-    private $currentId;
     private $currentPath;
     private $checkedNodes;
 
@@ -41,7 +40,6 @@ public function process(ContainerBuilder $container)
 
         $this->checkedNodes = array();
         foreach ($graph->getNodes() as $id => $node) {
-            $this->currentId = $id;
             $this->currentPath = array($id);
 
             $this->checkOutEdges($node->getOutEdges());
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php
index 2cd5480..304f784 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php
@@ -12,7 +12,6 @@
 namespace Symfony\Component\DependencyInjection\Compiler;
 
 use Symfony\Component\DependencyInjection\Definition;
-
 use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\DependencyInjection\Reference;
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckReferenceValidityPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckReferenceValidityPass.php
index aa11d38..3d4988d 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckReferenceValidityPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckReferenceValidityPass.php
@@ -20,7 +20,7 @@
 use Symfony\Component\DependencyInjection\Exception\ScopeWideningInjectionException;
 
 /**
- * Checks the validity of references
+ * Checks the validity of references.
  *
  * The following checks are performed by this pass:
  * - target definitions are not abstract
@@ -33,7 +33,6 @@ class CheckReferenceValidityPass implements CompilerPassInterface
 {
     private $container;
     private $currentId;
-    private $currentDefinition;
     private $currentScope;
     private $currentScopeAncestors;
     private $currentScopeChildren;
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CompilerPassInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CompilerPassInterface.php
index beacda9..7648605 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CompilerPassInterface.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CompilerPassInterface.php
@@ -14,7 +14,7 @@
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 
 /**
- * Interface that must be implemented by compilation passes
+ * Interface that must be implemented by compilation passes.
  *
  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
  *
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/DecoratorServicePass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/DecoratorServicePass.php
index dea9f03..ef0a19c 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/DecoratorServicePass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/DecoratorServicePass.php
@@ -30,7 +30,7 @@ public function process(ContainerBuilder $container)
             }
             $definition->setDecoratedService(null);
 
-            list ($inner, $renamedId) = $decorated;
+            list($inner, $renamedId) = $decorated;
             if (!$renamedId) {
                 $renamedId = $id.'.inner';
             }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php
index 102e933..9d3a781 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php
@@ -144,6 +144,10 @@ private function isInlineableDefinition(ContainerBuilder $container, $id, Defini
             return false;
         }
 
+        if (count($ids) > 1 && is_array($factory = $definition->getFactory()) && ($factory[0] instanceof Reference || $factory[0] instanceof Definition)) {
+            return false;
+        }
+
         if (count($ids) > 1 && $definition->getFactoryService()) {
             return false;
         }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php
index 92a9887..8f5b1f8 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php
@@ -15,7 +15,7 @@
 use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
 
 /**
- * Merges extension configs into the container builder
+ * Merges extension configs into the container builder.
  *
  * @author Fabien Potencier <fabien@symfony.com>
  */
@@ -29,6 +29,7 @@ public function process(ContainerBuilder $container)
         $parameters = $container->getParameterBag()->all();
         $definitions = $container->getDefinitions();
         $aliases = $container->getAliases();
+        $exprLangProviders = $container->getExpressionLanguageProviders();
 
         foreach ($container->getExtensions() as $extension) {
             if ($extension instanceof PrependExtensionInterface) {
@@ -47,6 +48,10 @@ public function process(ContainerBuilder $container)
             $tmpContainer->setResourceTracking($container->isTrackingResources());
             $tmpContainer->addObjectResource($extension);
 
+            foreach ($exprLangProviders as $provider) {
+                $tmpContainer->addExpressionLanguageProvider($provider);
+            }
+
             $extension->load($config, $tmpContainer);
 
             $container->merge($tmpContainer);
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/PassConfig.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
index bcef410..044529e 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
@@ -14,7 +14,7 @@
 use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
 
 /**
- * Compiler Pass Configuration
+ * Compiler Pass Configuration.
  *
  * This class has a default configuration embedded.
  *
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemoveAbstractDefinitionsPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemoveAbstractDefinitionsPass.php
index d97d923..0ef0af0 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemoveAbstractDefinitionsPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemoveAbstractDefinitionsPass.php
@@ -14,13 +14,12 @@
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 
 /**
- * Removes abstract Definitions
- *
+ * Removes abstract Definitions.
  */
 class RemoveAbstractDefinitionsPass implements CompilerPassInterface
 {
     /**
-     * Removes abstract definitions from the ContainerBuilder
+     * Removes abstract definitions from the ContainerBuilder.
      *
      * @param ContainerBuilder $container
      */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemovePrivateAliasesPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemovePrivateAliasesPass.php
index 4842337..5c53a33 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemovePrivateAliasesPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemovePrivateAliasesPass.php
@@ -23,7 +23,7 @@
 class RemovePrivateAliasesPass implements CompilerPassInterface
 {
     /**
-     * Removes private aliases from the ContainerBuilder
+     * Removes private aliases from the ContainerBuilder.
      *
      * @param ContainerBuilder $container
      */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RepeatedPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RepeatedPass.php
index 9b7db40..e34b068 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RepeatedPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RepeatedPass.php
@@ -69,7 +69,7 @@ public function process(ContainerBuilder $container)
     }
 
     /**
-     * Sets if the pass should repeat
+     * Sets if the pass should repeat.
      */
     public function setRepeat()
     {
@@ -77,7 +77,7 @@ public function setRepeat()
     }
 
     /**
-     * Returns the passes
+     * Returns the passes.
      *
      * @return RepeatablePassInterface[] An array of RepeatablePassInterface objects
      */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveDefinitionTemplatesPass.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveDefinitionTemplatesPass.php
index abda187..c1db3e0 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveDefinitionTemplatesPass.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveDefinitionTemplatesPass.php
@@ -52,7 +52,7 @@ public function process(ContainerBuilder $container)
     }
 
     /**
-     * Resolves the definition
+     * Resolves the definition.
      *
      * @param string              $id         The definition identifier
      * @param DefinitionDecorator $definition
@@ -84,6 +84,7 @@ private function resolveDefinition($id, DefinitionDecorator $definition)
         $def->setFactoryClass($parentDef->getFactoryClass());
         $def->setFactoryMethod($parentDef->getFactoryMethod());
         $def->setFactoryService($parentDef->getFactoryService());
+        $def->setFactory($parentDef->getFactory());
         $def->setConfigurator($parentDef->getConfigurator());
         $def->setFile($parentDef->getFile());
         $def->setPublic($parentDef->isPublic());
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphEdge.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphEdge.php
index 19da234..6a3e2ea 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphEdge.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphEdge.php
@@ -39,7 +39,7 @@ public function __construct(ServiceReferenceGraphNode $sourceNode, ServiceRefere
     }
 
     /**
-     * Returns the value of the edge
+     * Returns the value of the edge.
      *
      * @return ServiceReferenceGraphNode
      */
@@ -49,7 +49,7 @@ public function getValue()
     }
 
     /**
-     * Returns the source node
+     * Returns the source node.
      *
      * @return ServiceReferenceGraphNode
      */
@@ -59,7 +59,7 @@ public function getSourceNode()
     }
 
     /**
-     * Returns the destination node
+     * Returns the destination node.
      *
      * @return ServiceReferenceGraphNode
      */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphNode.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphNode.php
index 5664413..c49c932 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphNode.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphNode.php
@@ -111,7 +111,7 @@ public function getOutEdges()
     }
 
     /**
-     * Returns the value of this Node
+     * Returns the value of this Node.
      *
      * @return mixed The value
      */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Container.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Container.php
index 8f11798..a969db3 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Container.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Container.php
@@ -344,7 +344,7 @@ public function get($id, $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE
     }
 
     /**
-     * Returns true if the given service has actually been initialized
+     * Returns true if the given service has actually been initialized.
      *
      * @param string $id The service identifier
      *
@@ -387,7 +387,7 @@ public function getServiceIds()
     }
 
     /**
-     * This is called when you enter a scope
+     * This is called when you enter a scope.
      *
      * @param string $name
      *
@@ -517,7 +517,7 @@ public function addScope(ScopeInterface $scope)
     }
 
     /**
-     * Returns whether this container has a certain scope
+     * Returns whether this container has a certain scope.
      *
      * @param string $name The name of the scope
      *
@@ -531,7 +531,7 @@ public function hasScope($name)
     }
 
     /**
-     * Returns whether this scope is currently active
+     * Returns whether this scope is currently active.
      *
      * This does not actually check if the passed scope actually exists.
      *
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php
index 7f5a114..e2b1761 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php
@@ -285,10 +285,10 @@ public function addClassResource(\ReflectionClass $class)
      * @param string $extension The extension alias or namespace
      * @param array  $values    An array of values that customizes the extension
      *
-     * @return ContainerBuilder       The current instance
-     * @throws BadMethodCallException When this ContainerBuilder is frozen
+     * @return ContainerBuilder The current instance
      *
-     * @throws \LogicException if the container is frozen
+     * @throws BadMethodCallException When this ContainerBuilder is frozen
+     * @throws \LogicException        if the container is frozen
      *
      * @api
      */
@@ -523,7 +523,6 @@ public function get($id, $invalidBehavior = ContainerInterface::EXCEPTION_ON_INV
      *
      * @param ContainerBuilder $container The ContainerBuilder instance to merge.
      *
-     *
      * @throws BadMethodCallException When this ContainerBuilder is frozen
      *
      * @api
@@ -941,18 +940,14 @@ public function createService(Definition $definition, $id, $tryProxy = true)
 
         $arguments = $this->resolveServices($parameterBag->unescapeValue($parameterBag->resolveValue($definition->getArguments())));
 
-        if (null !== $definition->getFactory()) {
-            $factory = $definition->getFactory();
-
-            if (is_string($factory)) {
-                $callable = $definition->getFactory();
-            } elseif (is_array($factory)) {
-                $callable = array($this->resolveServices($factory[0]), $factory[1]);
-            } else {
+        if (null !== $factory = $definition->getFactory()) {
+            if (is_array($factory)) {
+                $factory = array($this->resolveServices($parameterBag->resolveValue($factory[0])), $factory[1]);
+            } elseif (!is_string($factory)) {
                 throw new RuntimeException(sprintf('Cannot create service "%s" because of invalid factory', $id));
             }
 
-            $service = call_user_func_array($callable, $arguments);
+            $service = call_user_func_array($factory, $arguments);
         } elseif (null !== $definition->getFactoryMethod()) {
             if (null !== $definition->getFactoryClass()) {
                 $factory = $parameterBag->resolveValue($definition->getFactoryClass());
@@ -1076,6 +1071,14 @@ public function addExpressionLanguageProvider(ExpressionFunctionProviderInterfac
     }
 
     /**
+     * @return ExpressionFunctionProviderInterface[]
+     */
+    public function getExpressionLanguageProviders()
+    {
+        return $this->expressionLanguageProviders;
+    }
+
+    /**
      * Returns the Service Conditionals.
      *
      * @param mixed $value An array of conditionals to return.
@@ -1151,7 +1154,7 @@ private function callMethod($service, $call)
     }
 
     /**
-     * Shares a given service in the container
+     * Shares a given service in the container.
      *
      * @param Definition $definition
      * @param mixed      $service
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerInterface.php
index 906a9f2..0f32089 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerInterface.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerInterface.php
@@ -106,7 +106,7 @@ public function hasParameter($name);
     public function setParameter($name, $value);
 
     /**
-     * Enters the given scope
+     * Enters the given scope.
      *
      * @param string $name
      *
@@ -115,7 +115,7 @@ public function setParameter($name, $value);
     public function enterScope($name);
 
     /**
-     * Leaves the current scope, and re-enters the parent scope
+     * Leaves the current scope, and re-enters the parent scope.
      *
      * @param string $name
      *
@@ -124,7 +124,7 @@ public function enterScope($name);
     public function leaveScope($name);
 
     /**
-     * Adds a scope to the container
+     * Adds a scope to the container.
      *
      * @param ScopeInterface $scope
      *
@@ -133,7 +133,7 @@ public function leaveScope($name);
     public function addScope(ScopeInterface $scope);
 
     /**
-     * Whether this container has the given scope
+     * Whether this container has the given scope.
      *
      * @param string $name
      *
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Definition.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Definition.php
index ee657fd..bdc75e0 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Definition.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Definition.php
@@ -300,7 +300,7 @@ public function addArgument($argument)
     }
 
     /**
-     * Sets a specific argument
+     * Sets a specific argument.
      *
      * @param int   $index
      * @param mixed $argument
@@ -449,7 +449,7 @@ public function getMethodCalls()
     }
 
     /**
-     * Sets tags for this definition
+     * Sets tags for this definition.
      *
      * @param array $tags
      *
@@ -508,7 +508,7 @@ public function addTag($name, array $attributes = array())
     }
 
     /**
-     * Whether this definition has a tag with the given name
+     * Whether this definition has a tag with the given name.
      *
      * @param string $name
      *
@@ -580,7 +580,7 @@ public function getFile()
     }
 
     /**
-     * Sets the scope of the service
+     * Sets the scope of the service.
      *
      * @param string $scope Whether the service must be shared or not
      *
@@ -596,7 +596,7 @@ public function setScope($scope)
     }
 
     /**
-     * Returns the scope of the service
+     * Returns the scope of the service.
      *
      * @return string
      *
@@ -624,7 +624,7 @@ public function setPublic($boolean)
     }
 
     /**
-     * Whether this service is public facing
+     * Whether this service is public facing.
      *
      * @return bool
      *
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/DefinitionDecorator.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/DefinitionDecorator.php
index c079c47..d4b45d3 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/DefinitionDecorator.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/DefinitionDecorator.php
@@ -210,7 +210,8 @@ public function getArgument($index)
      * @param int   $index
      * @param mixed $value
      *
-     * @return DefinitionDecorator      the current instance
+     * @return DefinitionDecorator the current instance
+     *
      * @throws InvalidArgumentException when $index isn't an integer
      *
      * @api
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/GraphvizDumper.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/GraphvizDumper.php
index 33bfe0c..071890b 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/GraphvizDumper.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/GraphvizDumper.php
@@ -236,7 +236,7 @@ private function endDot()
     }
 
     /**
-     * Adds attributes
+     * Adds attributes.
      *
      * @param array $attributes An array of attributes
      *
@@ -253,7 +253,7 @@ private function addAttributes($attributes)
     }
 
     /**
-     * Adds options
+     * Adds options.
      *
      * @param array $options An array of options
      *
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
index 11cae7a..35d64ec 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
@@ -38,13 +38,15 @@
 class PhpDumper extends Dumper
 {
     /**
-     * Characters that might appear in the generated variable name as first character
+     * Characters that might appear in the generated variable name as first character.
+     *
      * @var string
      */
     const FIRST_CHARS = 'abcdefghijklmnopqrstuvwxyz';
 
     /**
-     * Characters that might appear in the generated variable name as any but the first character
+     * Characters that might appear in the generated variable name as any but the first character.
+     *
      * @var string
      */
     const NON_FIRST_CHARS = 'abcdefghijklmnopqrstuvwxyz0123456789_';
@@ -115,17 +117,19 @@ public function dump(array $options = array())
         ), $options);
 
         if (!empty($options['file']) && is_dir($dir = dirname($options['file']))) {
-            // Build a regexp where the first two root dirs are mandatory,
+            // Build a regexp where the first root dirs are mandatory,
             // but every other sub-dir is optional up to the full path in $dir
+            // Mandate at least 2 root dirs and not more that 5 optional dirs.
 
             $dir = explode(DIRECTORY_SEPARATOR, realpath($dir));
             $i = count($dir);
 
             if (3 <= $i) {
                 $regex = '';
-                $this->targetDirMaxMatches = $i - 3;
+                $lastOptionalDir = $i > 8 ? $i - 5 : 3;
+                $this->targetDirMaxMatches = $i - $lastOptionalDir;
 
-                while (2 < --$i) {
+                while (--$i >= $lastOptionalDir) {
                     $regex = sprintf('(%s%s)?', preg_quote(DIRECTORY_SEPARATOR.$dir[$i], '#'), $regex);
                 }
 
@@ -223,7 +227,7 @@ private function addServiceLocalTempVariables($cId, $definition)
     }
 
     /**
-     * Generates code for the proxies to be attached after the container class
+     * Generates code for the proxies to be attached after the container class.
      *
      * @return string
      */
@@ -505,7 +509,7 @@ private function addServiceInlinedDefinitionsSetup($id, $definition)
     }
 
     /**
-     * Adds configurator definition
+     * Adds configurator definition.
      *
      * @param string     $id
      * @param Definition $definition
@@ -538,7 +542,7 @@ private function addServiceConfigurator($id, $definition, $variableName = 'insta
     }
 
     /**
-     * Adds a service
+     * Adds a service.
      *
      * @param string     $id
      * @param Definition $definition
@@ -662,7 +666,7 @@ private function addService($id, $definition)
     }
 
     /**
-     * Adds multiple services
+     * Adds multiple services.
      *
      * @return string
      */
@@ -824,6 +828,7 @@ private function startClass($class, $baseClass, $namespace)
 class $class extends $baseClass
 {
     private \$parameters;
+    private \$targetDirs = array();
 
 EOF;
     }
@@ -835,7 +840,8 @@ class $class extends $baseClass
      */
     private function addConstructor()
     {
-        $parameters = $this->exportParameters($this->container->getParameterBag()->all());
+        $targetDirs = $this->exportTargetDirs();
+        $arguments = $this->container->getParameterBag()->all() ? 'new ParameterBag($this->getDefaultParameters())' : null;
 
         $code = <<<EOF
 
@@ -843,10 +849,8 @@ private function addConstructor()
      * Constructor.
      */
     public function __construct()
-    {
-        \$this->parameters = $parameters;
-
-        parent::__construct(new ParameterBag(\$this->parameters));
+    {{$targetDirs}
+        parent::__construct($arguments);
 
 EOF;
 
@@ -874,7 +878,7 @@ public function __construct()
      */
     private function addFrozenConstructor()
     {
-        $parameters = $this->exportParameters($this->container->getParameterBag()->all());
+        $targetDirs = $this->exportTargetDirs();
 
         $code = <<<EOF
 
@@ -882,11 +886,18 @@ private function addFrozenConstructor()
      * Constructor.
      */
     public function __construct()
-    {
+    {{$targetDirs}
+EOF;
+
+        if ($this->container->getParameterBag()->all()) {
+            $code .= "\n        \$this->parameters = \$this->getDefaultParameters();\n";
+        }
+
+        $code .= <<<EOF
+
         \$this->services =
         \$this->scopedServices =
         \$this->scopeStacks = array();
-        \$this->parameters = $parameters;
 
         \$this->set('service_container', \$this);
 
@@ -933,7 +944,7 @@ public function compile()
     }
 
     /**
-     * Adds the methodMap property definition
+     * Adds the methodMap property definition.
      *
      * @return string
      */
@@ -953,7 +964,7 @@ private function addMethodMap()
     }
 
     /**
-     * Adds the aliases property definition
+     * Adds the aliases property definition.
      *
      * @return string
      */
@@ -991,6 +1002,8 @@ private function addDefaultParametersMethod()
             return '';
         }
 
+        $parameters = $this->exportParameters($this->container->getParameterBag()->all());
+
         $code = '';
         if ($this->container->isFrozen()) {
             $code .= <<<EOF
@@ -1042,6 +1055,20 @@ public function getParameterBag()
 EOF;
         }
 
+        $code .= <<<EOF
+
+    /**
+     * Gets the default parameters.
+     *
+     * @return array An array of the default parameters
+     */
+    protected function getDefaultParameters()
+    {
+        return $parameters;
+    }
+
+EOF;
+
         return $code;
     }
 
@@ -1359,7 +1386,7 @@ private function dumpLiteralClass($class)
     }
 
     /**
-     * Dumps a parameter
+     * Dumps a parameter.
      *
      * @param string $name
      *
@@ -1374,13 +1401,18 @@ public function dumpParameter($name)
         return sprintf("\$this->getParameter('%s')", strtolower($name));
     }
 
+    /**
+     * @deprecated Deprecated since 2.6.2, to be removed in 3.0. Use Symfony\Component\DependencyInjection\ContainerBuilder::addExpressionLanguageProvider instead.
+     *
+     * @param ExpressionFunctionProviderInterface $provider
+     */
     public function addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)
     {
         $this->expressionLanguageProviders[] = $provider;
     }
 
     /**
-     * Gets a service call
+     * Gets a service call.
      *
      * @param string    $id
      * @param Reference $reference
@@ -1425,7 +1457,7 @@ private function camelize($id)
     }
 
     /**
-     * Returns the next name to use
+     * Returns the next name to use.
      *
      * @return string
      */
@@ -1468,12 +1500,30 @@ private function getExpressionLanguage()
             if (!class_exists('Symfony\Component\ExpressionLanguage\ExpressionLanguage')) {
                 throw new RuntimeException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed.');
             }
-            $this->expressionLanguage = new ExpressionLanguage(null, $this->expressionLanguageProviders);
+            $providers = array_merge($this->container->getExpressionLanguageProviders(), $this->expressionLanguageProviders);
+            $this->expressionLanguage = new ExpressionLanguage(null, $providers);
+
+            if ($this->container->isTrackingResources()) {
+                foreach ($providers as $provider) {
+                    $this->container->addObjectResource($provider);
+                }
+            }
         }
 
         return $this->expressionLanguage;
     }
 
+    private function exportTargetDirs()
+    {
+        return null === $this->targetDirRegex ? '' : <<<EOF
+
+        \$dir = __DIR__;
+        for (\$i = 1; \$i <= {$this->targetDirMaxMatches}; ++\$i) {
+            \$this->targetDirs[\$i] = \$dir = dirname(\$dir);
+        }
+EOF;
+    }
+
     private function export($value)
     {
         if (null !== $this->targetDirRegex && is_string($value) && preg_match($this->targetDirRegex, $value, $matches, PREG_OFFSET_CAPTURE)) {
@@ -1482,8 +1532,8 @@ private function export($value)
             $suffix = isset($value[$suffix]) ? '.'.var_export(substr($value, $suffix), true) : '';
             $dirname = '__DIR__';
 
-            for ($i = $this->targetDirMaxMatches - count($matches); 0 <= $i; --$i) {
-                $dirname = sprintf('dirname(%s)', $dirname);
+            if (0 < $offset = 1 + $this->targetDirMaxMatches - count($matches)) {
+                $dirname = sprintf('$this->targetDirs[%d]', $offset);
             }
 
             if ($prefix || $suffix) {
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php
index 2f120c1..5fed552 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php
@@ -142,7 +142,7 @@ private function addService($definition, $id, \DOMElement $parent)
             $service->setAttribute('lazy', 'true');
         }
         if (null !== $decorated = $definition->getDecoratedService()) {
-            list ($decorated, $renamedId) = $decorated;
+            list($decorated, $renamedId) = $decorated;
             $service->setAttribute('decorates', $decorated);
             if (null !== $renamedId) {
                 $service->setAttribute('decoration-inner-name', $renamedId);
@@ -297,7 +297,7 @@ private function convertParameters($parameters, $type, \DOMElement $parent, $key
     }
 
     /**
-     * Escapes arguments
+     * Escapes arguments.
      *
      * @param array $arguments
      *
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
index e5e124d..66ecfd8 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
@@ -61,7 +61,7 @@ public function dump(array $options = array())
     }
 
     /**
-     * Adds a service
+     * Adds a service.
      *
      * @param string     $id
      * @param Definition $definition
@@ -86,7 +86,7 @@ private function addService($id, $definition)
                 foreach ($attributes as $key => $value) {
                     $att[] = sprintf('%s: %s', $this->dumper->dump($key), $this->dumper->dump($value));
                 }
-                $att = $att ? ', '.implode(' ', $att) : '';
+                $att = $att ? ', '.implode(', ', $att) : '';
 
                 $tagsCode .= sprintf("            - { name: %s%s }\n", $this->dumper->dump($name), $att);
             }
@@ -140,7 +140,7 @@ private function addService($id, $definition)
         }
 
         if (null !== $decorated = $definition->getDecoratedService()) {
-            list ($decorated, $renamedId) = $decorated;
+            list($decorated, $renamedId) = $decorated;
             $code .= sprintf("        decorates: %s\n", $decorated);
             if (null !== $renamedId) {
                 $code .= sprintf("        decoration_inner_name: %s\n", $renamedId);
@@ -159,7 +159,7 @@ private function addService($id, $definition)
     }
 
     /**
-     * Adds a service alias
+     * Adds a service alias.
      *
      * @param string $alias
      * @param Alias  $id
@@ -176,7 +176,7 @@ private function addServiceAlias($alias, $id)
     }
 
     /**
-     * Adds services
+     * Adds services.
      *
      * @return string
      */
@@ -203,7 +203,7 @@ private function addServices()
     }
 
     /**
-     * Adds parameters
+     * Adds parameters.
      *
      * @return string
      */
@@ -239,7 +239,7 @@ private function dumpCallable($callable)
     }
 
     /**
-     * Dumps the value to YAML format
+     * Dumps the value to YAML format.
      *
      * @param mixed $value
      *
@@ -328,7 +328,7 @@ private function prepareParameters($parameters, $escape = true)
     }
 
     /**
-     * Escapes arguments
+     * Escapes arguments.
      *
      * @param array $arguments
      *
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ExpressionLanguage.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ExpressionLanguage.php
index 8b236db..acc97bc 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ExpressionLanguage.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ExpressionLanguage.php
@@ -25,7 +25,7 @@ class ExpressionLanguage extends BaseExpressionLanguage
 {
     public function __construct(ParserCacheInterface $cache = null, array $providers = array())
     {
-        // prepend the default provider to let users overide it easily
+        // prepend the default provider to let users override it easily
         array_unshift($providers, new ExpressionLanguageProvider());
 
         parent::__construct($cache, $providers);
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Extension/ConfigurationExtensionInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Extension/ConfigurationExtensionInterface.php
index 51bff08..705ba38 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Extension/ConfigurationExtensionInterface.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Extension/ConfigurationExtensionInterface.php
@@ -22,7 +22,7 @@
 interface ConfigurationExtensionInterface
 {
     /**
-     * Returns extension configuration
+     * Returns extension configuration.
      *
      * @param array            $config    An array of configuration values
      * @param ContainerBuilder $container A ContainerBuilder instance
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/IntrospectableContainerInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/IntrospectableContainerInterface.php
index df6f7f9..e630a1e 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/IntrospectableContainerInterface.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/IntrospectableContainerInterface.php
@@ -16,7 +16,6 @@
  * for containers, allowing logic to be implemented based on a Container's state.
  *
  * @author Evan Villemez <evillemez@gmail.com>
- *
  */
 interface IntrospectableContainerInterface extends ContainerInterface
 {
@@ -26,7 +25,6 @@
      * @param string $id
      *
      * @return bool true if the service has been initialized, false otherwise
-     *
      */
     public function initialized($id);
 }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/LICENSE b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/LICENSE
index 0b3292c..43028bc 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/LICENSE
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2014 Fabien Potencier
+Copyright (c) 2004-2015 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
index e3e5769..514f4f3 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php
@@ -67,7 +67,7 @@ public function supports($resource, $type = null)
     }
 
     /**
-     * Parses parameters
+     * Parses parameters.
      *
      * @param \DOMDocument $xml
      * @param string       $file
@@ -80,7 +80,7 @@ private function parseParameters(\DOMDocument $xml, $file)
     }
 
     /**
-     * Parses imports
+     * Parses imports.
      *
      * @param \DOMDocument $xml
      * @param string       $file
@@ -101,7 +101,7 @@ private function parseImports(\DOMDocument $xml, $file)
     }
 
     /**
-     * Parses multiple definitions
+     * Parses multiple definitions.
      *
      * @param \DOMDocument $xml
      * @param string       $file
@@ -121,7 +121,7 @@ private function parseDefinitions(\DOMDocument $xml, $file)
     }
 
     /**
-     * Parses an individual Definition
+     * Parses an individual Definition.
      *
      * @param string      $id
      * @param \DOMElement $service
@@ -241,7 +241,7 @@ private function parseFileToDOM($file)
     }
 
     /**
-     * Processes anonymous services
+     * Processes anonymous services.
      *
      * @param \DOMDocument $xml
      * @param string       $file
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
index eb64da8..85f6ee6 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
@@ -78,7 +78,7 @@ public function supports($resource, $type = null)
     }
 
     /**
-     * Parses all imports
+     * Parses all imports.
      *
      * @param array  $content
      * @param string $file
@@ -104,7 +104,7 @@ private function parseImports($content, $file)
     }
 
     /**
-     * Parses definitions
+     * Parses definitions.
      *
      * @param array  $content
      * @param string $file
@@ -384,7 +384,7 @@ private function resolveServices($value)
     }
 
     /**
-     * Loads from Extensions
+     * Loads from Extensions.
      *
      * @param array $content
      */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
index 12cc481..5934793 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
@@ -204,7 +204,7 @@ public function resolveValue($value, array $resolving = array())
     }
 
     /**
-     * Resolves parameters inside a string
+     * Resolves parameters inside a string.
      *
      * @param string $value     The string to resolve
      * @param array  $resolving An array of keys that are being resolved (used internally to detect circular references)
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBagInterface.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBagInterface.php
index 8f17ff9..9600354 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBagInterface.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBagInterface.php
@@ -96,7 +96,7 @@ public function resolve();
     public function resolveValue($value);
 
     /**
-     * Escape parameter placeholders %
+     * Escape parameter placeholders %.
      *
      * @param mixed $value
      *
@@ -105,7 +105,7 @@ public function resolveValue($value);
     public function escapeValue($value);
 
     /**
-     * Unescape parameter placeholders %
+     * Unescape parameter placeholders %.
      *
      * @param mixed $value
      *
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Reference.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Reference.php
index 56d5070..8808488 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Reference.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Reference.php
@@ -61,7 +61,7 @@ public function getInvalidBehavior()
     }
 
     /**
-     * Returns true when this Reference is strict
+     * Returns true when this Reference is strict.
      *
      * @return bool
      */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php
index e45ac93..04fe7c2 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/AnalyzeServiceReferencesPassTest.php
@@ -12,7 +12,6 @@
 namespace Symfony\Component\DependencyInjection\Tests\Compiler;
 
 use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Compiler\Compiler;
 use Symfony\Component\DependencyInjection\Compiler\AnalyzeServiceReferencesPass;
 use Symfony\Component\DependencyInjection\Compiler\RepeatedPass;
 use Symfony\Component\DependencyInjection\Reference;
@@ -88,7 +87,7 @@ public function testProcessDetectsReferencesFromInlinedFactoryDefinitions()
         ;
 
         $factory = new Definition();
-        $factory->setFactoryService('a');
+        $factory->setFactory(array(new Reference('a'), 'a'));
 
         $container
             ->register('b')
@@ -125,13 +124,11 @@ public function testProcessDetectsFactoryReferences()
 
         $container
             ->register('foo', 'stdClass')
-            ->setFactoryClass('stdClass')
-            ->setFactoryMethod('getInstance');
+            ->setFactory(array('stdClass', 'getInstance'));
 
         $container
             ->register('bar', 'stdClass')
-            ->setFactoryService('foo')
-            ->setFactoryMethod('getInstance');
+            ->setFactory(array(new Reference('foo'), 'getInstance'));
 
         $graph = $this->process($container);
 
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckCircularReferencesPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckCircularReferencesPassTest.php
index 8183014..55351e5 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckCircularReferencesPassTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckCircularReferencesPassTest.php
@@ -12,13 +12,9 @@
 namespace Symfony\Component\DependencyInjection\Tests\Compiler;
 
 use Symfony\Component\DependencyInjection\Reference;
-
 use Symfony\Component\DependencyInjection\Compiler\CheckCircularReferencesPass;
-
 use Symfony\Component\DependencyInjection\Compiler\AnalyzeServiceReferencesPass;
-
 use Symfony\Component\DependencyInjection\Compiler\Compiler;
-
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 
 class CheckCircularReferencesPassTest extends \PHPUnit_Framework_TestCase
@@ -57,13 +53,11 @@ public function testProcessWithFactory()
 
         $container
             ->register('a', 'stdClass')
-            ->setFactoryService('b')
-            ->setFactoryMethod('getInstance');
+            ->setFactory(array(new Reference('b'), 'getInstance'));
 
         $container
             ->register('b', 'stdClass')
-            ->setFactoryService('a')
-            ->setFactoryMethod('getInstance');
+            ->setFactory(array(new Reference('a'), 'getInstance'));
 
         $this->process($container);
     }
@@ -92,8 +86,7 @@ public function testProcessDetectsIndirectCircularReferenceWithFactory()
 
         $container
             ->register('b', 'stdClass')
-            ->setFactoryService('c')
-            ->setFactoryMethod('getInstance');
+            ->setFactory(array(new Reference('c'), 'getInstance'));
 
         $container->register('c')->addArgument(new Reference('a'));
 
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckExceptionOnInvalidReferenceBehaviorPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckExceptionOnInvalidReferenceBehaviorPassTest.php
index e71835e..18b605b 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckExceptionOnInvalidReferenceBehaviorPassTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckExceptionOnInvalidReferenceBehaviorPassTest.php
@@ -12,7 +12,6 @@
 namespace Symfony\Component\DependencyInjection\Tests\Compiler;
 
 use Symfony\Component\DependencyInjection\Definition;
-
 use Symfony\Component\DependencyInjection\Compiler\CheckExceptionOnInvalidReferenceBehaviorPass;
 use Symfony\Component\DependencyInjection\Reference;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckReferenceValidityPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckReferenceValidityPassTest.php
index ee18e5c..cd4448a 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckReferenceValidityPassTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/CheckReferenceValidityPassTest.php
@@ -12,7 +12,6 @@
 namespace Symfony\Component\DependencyInjection\Tests\Compiler;
 
 use Symfony\Component\DependencyInjection\Scope;
-
 use Symfony\Component\DependencyInjection\Compiler\CheckReferenceValidityPass;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\DependencyInjection\Reference;
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php
index fc40446..590ca4c 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/InlineServiceDefinitionsPassTest.php
@@ -118,7 +118,7 @@ public function testProcessInlinesPrivateFactoryReference()
         $b = $container
             ->register('b')
             ->setPublic(false)
-            ->setFactoryService('a')
+            ->setFactory(array(new Reference('a'), 'a'))
         ;
 
         $container
@@ -142,7 +142,7 @@ public function testProcessDoesNotInlinePrivateFactoryIfReferencedMultipleTimesW
         $container
             ->register('b')
             ->setPublic(false)
-            ->setFactoryService('a')
+            ->setFactory(array(new Reference('a'), 'a'))
         ;
 
         $container
@@ -168,12 +168,12 @@ public function testProcessDoesNotInlineReferenceWhenUsedByInlineFactory()
         $container
             ->register('b')
             ->setPublic(false)
-            ->setFactoryService('a')
+            ->setFactory(array(new Reference('a'), 'a'))
         ;
 
         $inlineFactory = new Definition();
         $inlineFactory->setPublic(false);
-        $inlineFactory->setFactoryService('b');
+        $inlineFactory->setFactory(array(new Reference('b'), 'b'));
 
         $container
             ->register('foo')
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php
index 1d4ea07..c447940 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php
@@ -16,16 +16,18 @@
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 
 /**
- * This class tests the integration of the different compiler passes
+ * This class tests the integration of the different compiler passes.
  */
 class IntegrationTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * This tests that the following dependencies are correctly processed:
+     * This tests that dependencies are correctly processed.
      *
-     * A is public, B/C are private
-     * A -> C
-     * B -> C
+     * We're checking that:
+     *
+     *   * A is public, B/C are private
+     *   * A -> C
+     *   * B -> C
      */
     public function testProcessRemovesAndInlinesRecursively()
     {
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/MergeExtensionConfigurationPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/MergeExtensionConfigurationPassTest.php
new file mode 100644
index 0000000..05e1fdd
--- /dev/null
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/MergeExtensionConfigurationPassTest.php
@@ -0,0 +1,47 @@
+<?php
+
+
+namespace Symfony\Component\DependencyInjection\Tests\Compiler;
+
+use Symfony\Component\DependencyInjection\Compiler\MergeExtensionConfigurationPass;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
+
+class MergeExtensionConfigurationPassTest extends \PHPUnit_Framework_TestCase
+{
+    public function testExpressionLanguageProviderForwarding()
+    {
+        if (true !== class_exists('Symfony\\Component\\ExpressionLanguage\\ExpressionLanguage')) {
+            $this->markTestSkipped('The ExpressionLanguage component isn\'t available!');
+        }
+
+        $tmpProviders = array();
+
+        $extension = $this->getMock('Symfony\\Component\\DependencyInjection\\Extension\\ExtensionInterface');
+        $extension->expects($this->any())
+            ->method('getXsdValidationBasePath')
+            ->will($this->returnValue(false));
+        $extension->expects($this->any())
+            ->method('getNamespace')
+            ->will($this->returnValue('http://example.org/schema/dic/foo'));
+        $extension->expects($this->any())
+            ->method('getAlias')
+            ->will($this->returnValue('foo'));
+        $extension->expects($this->once())
+            ->method('load')
+            ->will($this->returnCallback(function (array $config, ContainerBuilder $container) use (&$tmpProviders) {
+                $tmpProviders = $container->getExpressionLanguageProviders();
+            }));
+
+        $provider = $this->getMock('Symfony\\Component\\ExpressionLanguage\\ExpressionFunctionProviderInterface');
+        $container = new ContainerBuilder(new ParameterBag());
+        $container->registerExtension($extension);
+        $container->prependExtensionConfig('foo', array('bar' => true ));
+        $container->addExpressionLanguageProvider($provider);
+
+        $pass = new MergeExtensionConfigurationPass();
+        $pass->process($container);
+
+        $this->assertEquals(array($provider), $tmpProviders);
+    }
+}
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveUnusedDefinitionsPassTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveUnusedDefinitionsPassTest.php
index b3e451c..82149eb 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveUnusedDefinitionsPassTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Compiler/RemoveUnusedDefinitionsPassTest.php
@@ -12,7 +12,6 @@
 namespace Symfony\Component\DependencyInjection\Tests\Compiler;
 
 use Symfony\Component\DependencyInjection\Compiler\AnalyzeServiceReferencesPass;
-use Symfony\Component\DependencyInjection\Compiler\Compiler;
 use Symfony\Component\DependencyInjection\Compiler\RepeatedPass;
 use Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass;
 use Symfony\Component\DependencyInjection\Definition;
@@ -87,14 +86,12 @@ public function testProcessWontRemovePrivateFactory()
 
         $container
             ->register('foo', 'stdClass')
-            ->setFactoryClass('stdClass')
-            ->setFactoryMethod('getInstance')
+            ->setFactory(array('stdClass', 'getInstance'))
             ->setPublic(false);
 
         $container
             ->register('bar', 'stdClass')
-            ->setFactoryService('foo')
-            ->setFactoryMethod('getInstance')
+            ->setFactory(array(new Reference('foo'), 'getInstance'))
             ->setPublic(false);
 
         $container
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
index e74e5d4..e0ff297 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
@@ -16,7 +16,6 @@
 
 use Symfony\Component\Config\Resource\ResourceInterface;
 use Symfony\Component\DependencyInjection\Alias;
-use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\DependencyInjection\Definition;
@@ -319,31 +318,6 @@ public function testCreateServiceArguments()
     /**
      * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
      */
-    public function testCreateServiceFactoryMethod()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('bar', 'stdClass');
-        $builder->register('foo1', 'Bar\FooClass')->setFactoryClass('Bar\FooClass')->setFactoryMethod('getInstance')->addArgument(array('foo' => '%value%', '%value%' => 'foo', new Reference('bar')));
-        $builder->setParameter('value', 'bar');
-        $this->assertTrue($builder->get('foo1')->called, '->createService() calls the factory method to create the service instance');
-        $this->assertEquals(array('foo' => 'bar', 'bar' => 'foo', $builder->get('bar')), $builder->get('foo1')->arguments, '->createService() passes the arguments to the factory method');
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
-     */
-    public function testCreateServiceFactoryService()
-    {
-        $builder = new ContainerBuilder();
-        $builder->register('baz_service')->setFactoryService('baz_factory')->setFactoryMethod('getInstance');
-        $builder->register('baz_factory', 'BazClass');
-
-        $this->assertInstanceOf('BazClass', $builder->get('baz_service'));
-    }
-
-    /**
-     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
-     */
     public function testCreateServiceFactory()
     {
         $builder = new ContainerBuilder();
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionTest.php
index cfcb5f4..583d49f 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/DefinitionTest.php
@@ -42,30 +42,6 @@ public function testSetGetFactory()
         $this->assertEquals(array('Foo', 'bar'), $def->getFactory(), '->setFactory() converts string static method call to the array');
     }
 
-    public function testSetGetFactoryClass()
-    {
-        $def = new Definition('stdClass');
-        $this->assertNull($def->getFactoryClass());
-        $this->assertSame($def, $def->setFactoryClass('stdClass2'), "->setFactoryClass() implements a fluent interface.");
-        $this->assertEquals('stdClass2', $def->getFactoryClass(), "->getFactoryClass() returns current class to construct this service.");
-    }
-
-    public function testSetGetFactoryMethod()
-    {
-        $def = new Definition('stdClass');
-        $this->assertNull($def->getFactoryMethod());
-        $this->assertSame($def, $def->setFactoryMethod('foo'), '->setFactoryMethod() implements a fluent interface');
-        $this->assertEquals('foo', $def->getFactoryMethod(), '->getFactoryMethod() returns the factory method name');
-    }
-
-    public function testSetGetFactoryService()
-    {
-        $def = new Definition('stdClass');
-        $this->assertNull($def->getFactoryService());
-        $this->assertSame($def, $def->setFactoryService('foo.bar'), "->setFactoryService() implements a fluent interface.");
-        $this->assertEquals('foo.bar', $def->getFactoryService(), "->getFactoryService() returns current service to construct this service.");
-    }
-
     /**
      * @covers Symfony\Component\DependencyInjection\Definition::setClass
      * @covers Symfony\Component\DependencyInjection\Definition::getClass
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
index 4223a19..882c5d8 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
@@ -70,13 +70,14 @@ public function testDumpRelativeDir()
         $definition = new Definition();
         $definition->setClass('stdClass');
         $definition->addArgument('%foo%');
-        $definition->addArgument(array('%foo%' => '%foo%'));
+        $definition->addArgument(array('%foo%' => '%buz%/'));
 
         $container = new ContainerBuilder();
         $container->setDefinition('test', $definition);
         $container->setParameter('foo', 'wiz'.dirname(dirname(__FILE__)));
         $container->setParameter('bar', dirname(__FILE__));
         $container->setParameter('baz', '%bar%/PhpDumperTest.php');
+        $container->setParameter('buz', dirname(dirname(__DIR__)));
         $container->compile();
 
         $dumper = new PhpDumper($container);
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container12.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container12.php
index 0dc8679..73c5b4e 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container12.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container12.php
@@ -1,7 +1,6 @@
 <?php
 
 use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
 
 $container = new ContainerBuilder();
 $container->
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php
index 49262e8..11f34dc 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php
@@ -12,7 +12,7 @@
 $container->
     register('foo', 'Bar\FooClass')->
     addTag('foo', array('foo' => 'foo'))->
-    addTag('foo', array('bar' => 'bar'))->
+    addTag('foo', array('bar' => 'bar', 'baz' => 'baz'))->
     setFactoryClass('Bar\\FooClass')->
     setFactoryMethod('getInstance')->
     setArguments(array('foo', new Reference('foo.baz'), array('%foo%' => 'foo is %foo%', 'foobar' => '%foo%'), true, new Reference('service_container')))->
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/interfaces1.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/interfaces1.php
deleted file mode 100644
index 27503a3..0000000
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/interfaces1.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-
-$container = new ContainerBuilder();
-$container->setParameter('cla', 'Fo');
-$container->setParameter('ss', 'Class');
-
-$definition = new Definition('%cla%o%ss%');
-$container->setDefinition('foo', $definition);
-
-return $container;
-
-if (!class_exists('FooClass')) {
-    class FooClass
-    {
-        public $bar;
-
-        public function setBar($bar)
-        {
-            $this->bar = $bar;
-        }
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/interfaces2.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/interfaces2.php
deleted file mode 100644
index a851901..0000000
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/interfaces2.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-
-$container = new ContainerBuilder();
-
-$factoryDefinition = new Definition('BarClassFactory');
-$container->setDefinition('barFactory', $factoryDefinition);
-
-$definition = new Definition();
-$definition->setFactoryService('barFactory');
-$definition->setFactoryMethod('createBarClass');
-$container->setDefinition('bar', $definition);
-
-return $container;
-
-class BarClass
-{
-    public $foo;
-
-    public function setBar($foo)
-    {
-        $this->foo = $foo;
-    }
-}
-
-class BarClassFactory
-{
-    public function createBarClass()
-    {
-        return new BarClass();
-    }
-}
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php
index 23d367f..90b59ff 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php
@@ -17,16 +17,13 @@
 class ProjectServiceContainer extends Container
 {
     private $parameters;
+    private $targetDirs = array();
 
     /**
      * Constructor.
      */
     public function __construct()
     {
-        $this->parameters = array(
-
-        );
-
-        parent::__construct(new ParameterBag($this->parameters));
+        parent::__construct();
     }
 }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php
index 3b504c9..2079bee 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php
@@ -17,19 +17,18 @@
 class ProjectServiceContainer extends Container
 {
     private $parameters;
+    private $targetDirs = array();
 
     /**
      * Constructor.
      */
     public function __construct()
     {
+        $this->parameters = $this->getDefaultParameters();
+
         $this->services =
         $this->scopedServices =
         $this->scopeStacks = array();
-        $this->parameters = array(
-            'empty_value' => '',
-            'some_string' => '-',
-        );
 
         $this->set('service_container', $this);
 
@@ -106,4 +105,17 @@ public function getParameterBag()
 
         return $this->parameterBag;
     }
+
+    /**
+     * Gets the default parameters.
+     *
+     * @return array An array of the default parameters
+     */
+    protected function getDefaultParameters()
+    {
+        return array(
+            'empty_value' => '',
+            'some_string' => '-',
+        );
+    }
 }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php
index 1d7ac85..5a371a0 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php
@@ -17,20 +17,22 @@
 class ProjectServiceContainer extends Container
 {
     private $parameters;
+    private $targetDirs = array();
 
     /**
      * Constructor.
      */
     public function __construct()
     {
+        $dir = __DIR__;
+        for ($i = 1; $i <= 5; ++$i) {
+            $this->targetDirs[$i] = $dir = dirname($dir);
+        }
+        $this->parameters = $this->getDefaultParameters();
+
         $this->services =
         $this->scopedServices =
         $this->scopeStacks = array();
-        $this->parameters = array(
-            'foo' => ('wiz'.dirname(__DIR__)),
-            'bar' => __DIR__,
-            'baz' => (__DIR__.'/PhpDumperTest.php'),
-        );
 
         $this->set('service_container', $this);
 
@@ -61,7 +63,7 @@ public function compile()
      */
     protected function getTestService()
     {
-        return $this->services['test'] = new \stdClass(('wiz'.dirname(__DIR__)), array(('wiz'.dirname(__DIR__)) => ('wiz'.dirname(__DIR__))));
+        return $this->services['test'] = new \stdClass(('wiz'.$this->targetDirs[1]), array(('wiz'.$this->targetDirs[1]) => ($this->targetDirs[2].'/')));
     }
 
     /**
@@ -107,4 +109,19 @@ public function getParameterBag()
 
         return $this->parameterBag;
     }
+
+    /**
+     * Gets the default parameters.
+     *
+     * @return array An array of the default parameters
+     */
+    protected function getDefaultParameters()
+    {
+        return array(
+            'foo' => ('wiz'.$this->targetDirs[1]),
+            'bar' => __DIR__,
+            'baz' => (__DIR__.'/PhpDumperTest.php'),
+            'buz' => $this->targetDirs[2],
+        );
+    }
 }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services19.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services19.php
index fdafa6e..ecf30a6 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services19.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services19.php
@@ -17,17 +17,14 @@
 class ProjectServiceContainer extends Container
 {
     private $parameters;
+    private $targetDirs = array();
 
     /**
      * Constructor.
      */
     public function __construct()
     {
-        $this->parameters = array(
-
-        );
-
-        parent::__construct(new ParameterBag($this->parameters));
+        parent::__construct();
         $this->methodMap = array(
             'service_from_anonymous_factory' => 'getServiceFromAnonymousFactoryService',
             'service_with_method_call_and_factory' => 'getServiceWithMethodCallAndFactoryService',
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
index a6de38e..1b86dfc 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
@@ -17,13 +17,24 @@
 class ProjectServiceContainer extends Container
 {
     private $parameters;
+    private $targetDirs = array();
 
     /**
      * Constructor.
      */
     public function __construct()
     {
-        $this->parameters = array(
+        parent::__construct(new ParameterBag($this->getDefaultParameters()));
+    }
+
+    /**
+     * Gets the default parameters.
+     *
+     * @return array An array of the default parameters
+     */
+    protected function getDefaultParameters()
+    {
+        return array(
             'foo' => '%baz%',
             'baz' => 'bar',
             'bar' => 'foo is %%foo bar',
@@ -39,7 +50,5 @@ public function __construct()
                 7 => 'null',
             ),
         );
-
-        parent::__construct(new ParameterBag($this->parameters));
     }
 }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php
index 6011057..33cbe2f 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php
@@ -17,19 +17,14 @@
 class ProjectServiceContainer extends Container
 {
     private $parameters;
+    private $targetDirs = array();
 
     /**
      * Constructor.
      */
     public function __construct()
     {
-        $this->parameters = array(
-            'baz_class' => 'BazClass',
-            'foo_class' => 'Bar\\FooClass',
-            'foo' => 'bar',
-        );
-
-        parent::__construct(new ParameterBag($this->parameters));
+        parent::__construct(new ParameterBag($this->getDefaultParameters()));
         $this->methodMap = array(
             'bar' => 'getBarService',
             'baz' => 'getBazService',
@@ -392,4 +387,18 @@ protected function getNewFactoryService()
 
         return $instance;
     }
+
+    /**
+     * Gets the default parameters.
+     *
+     * @return array An array of the default parameters
+     */
+    protected function getDefaultParameters()
+    {
+        return array(
+            'baz_class' => 'BazClass',
+            'foo_class' => 'Bar\\FooClass',
+            'foo' => 'bar',
+        );
+    }
 }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php
index 7d03bd5..71a47dc 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php
@@ -17,20 +17,18 @@
 class ProjectServiceContainer extends Container
 {
     private $parameters;
+    private $targetDirs = array();
 
     /**
      * Constructor.
      */
     public function __construct()
     {
+        $this->parameters = $this->getDefaultParameters();
+
         $this->services =
         $this->scopedServices =
         $this->scopeStacks = array();
-        $this->parameters = array(
-            'baz_class' => 'BazClass',
-            'foo_class' => 'Bar\\FooClass',
-            'foo' => 'bar',
-        );
 
         $this->set('service_container', $this);
 
@@ -373,4 +371,18 @@ public function getParameterBag()
 
         return $this->parameterBag;
     }
+
+    /**
+     * Gets the default parameters.
+     *
+     * @return array An array of the default parameters
+     */
+    protected function getDefaultParameters()
+    {
+        return array(
+            'baz_class' => 'BazClass',
+            'foo_class' => 'Bar\\FooClass',
+            'foo' => 'bar',
+        );
+    }
 }
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml
index 7234a82..1416745 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml
@@ -8,7 +8,7 @@
   <services>
     <service id="foo" class="Bar\FooClass" factory-method="getInstance" factory-class="Bar\FooClass">
       <tag name="foo" foo="foo"/>
-      <tag name="foo" bar="bar"/>
+      <tag name="foo" bar="bar" baz="baz"/>
       <argument>foo</argument>
       <argument type="service" id="foo.baz"/>
       <argument type="collection">
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml
index 0b8da43..1d3b804 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml
@@ -8,7 +8,7 @@ services:
         class: Bar\FooClass
         tags:
             - { name: foo, foo: foo }
-            - { name: foo, bar: bar }
+            - { name: foo, bar: bar, baz: baz }
         factory_class: Bar\FooClass
         factory_method: getInstance
         arguments: [foo, '@foo.baz', { '%foo%': 'foo is %foo%', foobar: '%foo%' }, true, '@service_container']
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/LazyProxy/Instantiator/RealServiceInstantiatorTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/LazyProxy/Instantiator/RealServiceInstantiatorTest.php
index bc0c580..cb44024 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/LazyProxy/Instantiator/RealServiceInstantiatorTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/LazyProxy/Instantiator/RealServiceInstantiatorTest.php
@@ -15,7 +15,7 @@
 use Symfony\Component\DependencyInjection\LazyProxy\Instantiator\RealServiceInstantiator;
 
 /**
- * Tests for {@see \Symfony\Component\DependencyInjection\Instantiator\RealServiceInstantiator}
+ * Tests for {@see \Symfony\Component\DependencyInjection\Instantiator\RealServiceInstantiator}.
  *
  * @author Marco Pivetta <ocramius@gmail.com>
  *
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/LazyProxy/PhpDumper/NullDumperTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/LazyProxy/PhpDumper/NullDumperTest.php
index 4eb8320..2081ebc 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/LazyProxy/PhpDumper/NullDumperTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/LazyProxy/PhpDumper/NullDumperTest.php
@@ -15,7 +15,7 @@
 use Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\NullDumper;
 
 /**
- * Tests for {@see \Symfony\Component\DependencyInjection\PhpDumper\NullDumper}
+ * Tests for {@see \Symfony\Component\DependencyInjection\PhpDumper\NullDumper}.
  *
  * @author Marco Pivetta <ocramius@gmail.com>
  *
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/LegacyContainerBuilderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/LegacyContainerBuilderTest.php
new file mode 100644
index 0000000..c837de4
--- /dev/null
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/LegacyContainerBuilderTest.php
@@ -0,0 +1,48 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\DependencyInjection\Tests;
+
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Reference;
+
+class LegacyContainerBuilderTest extends \PHPUnit_Framework_TestCase
+{
+    public function setUp()
+    {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+    }
+
+    /**
+     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
+     */
+    public function testCreateServiceFactoryMethod()
+    {
+        $builder = new ContainerBuilder();
+        $builder->register('bar', 'stdClass');
+        $builder->register('foo1', 'Bar\FooClass')->setFactoryClass('Bar\FooClass')->setFactoryMethod('getInstance')->addArgument(array('foo' => '%value%', '%value%' => 'foo', new Reference('bar')));
+        $builder->setParameter('value', 'bar');
+        $this->assertTrue($builder->get('foo1')->called, '->createService() calls the factory method to create the service instance');
+        $this->assertEquals(array('foo' => 'bar', 'bar' => 'foo', $builder->get('bar')), $builder->get('foo1')->arguments, '->createService() passes the arguments to the factory method');
+    }
+
+    /**
+     * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
+     */
+    public function testCreateServiceFactoryService()
+    {
+        $builder = new ContainerBuilder();
+        $builder->register('baz_service')->setFactoryService('baz_factory')->setFactoryMethod('getInstance');
+        $builder->register('baz_factory', 'BazClass');
+
+        $this->assertInstanceOf('BazClass', $builder->get('baz_service'));
+    }
+}
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/LegacyDefinitionTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/LegacyDefinitionTest.php
new file mode 100644
index 0000000..9fb0c7f
--- /dev/null
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/LegacyDefinitionTest.php
@@ -0,0 +1,41 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\DependencyInjection\Tests;
+
+use Symfony\Component\DependencyInjection\Definition;
+
+class LegacyDefinitionTest extends \PHPUnit_Framework_TestCase
+{
+    public function testSetGetFactoryClass()
+    {
+        $def = new Definition('stdClass');
+        $this->assertNull($def->getFactoryClass());
+        $this->assertSame($def, $def->setFactoryClass('stdClass2'), "->setFactoryClass() implements a fluent interface.");
+        $this->assertEquals('stdClass2', $def->getFactoryClass(), "->getFactoryClass() returns current class to construct this service.");
+    }
+
+    public function testSetGetFactoryMethod()
+    {
+        $def = new Definition('stdClass');
+        $this->assertNull($def->getFactoryMethod());
+        $this->assertSame($def, $def->setFactoryMethod('foo'), '->setFactoryMethod() implements a fluent interface');
+        $this->assertEquals('foo', $def->getFactoryMethod(), '->getFactoryMethod() returns the factory method name');
+    }
+
+    public function testSetGetFactoryService()
+    {
+        $def = new Definition('stdClass');
+        $this->assertNull($def->getFactoryService());
+        $this->assertSame($def, $def->setFactoryService('foo.bar'), "->setFactoryService() implements a fluent interface.");
+        $this->assertEquals('foo.bar', $def->getFactoryService(), "->getFactoryService() returns current service to construct this service.");
+    }
+}
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php
index 6d3e487..1d2bea0 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php
@@ -12,10 +12,8 @@
 namespace Symfony\Component\DependencyInjection\Tests\Loader;
 
 use Symfony\Component\DependencyInjection\ContainerInterface;
-
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\Definition;
 use Symfony\Component\Config\Loader\Loader;
 use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
 use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Variable.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Variable.php
index c84b8fd..e502356 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Variable.php
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Variable.php
@@ -29,7 +29,7 @@ class Variable
     private $name;
 
     /**
-     * Constructor
+     * Constructor.
      *
      * @param string $name
      */
@@ -39,7 +39,7 @@ public function __construct($name)
     }
 
     /**
-     * Converts the object to a string
+     * Converts the object to a string.
      *
      * @return string
      */
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/composer.json b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/composer.json
index c009049..41746e9 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/composer.json
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/composer.json
@@ -19,9 +19,12 @@
         "php": ">=5.3.3"
     },
     "require-dev": {
-        "symfony/yaml": "~2.0",
+        "symfony/yaml": "~2.1",
         "symfony/config": "~2.2",
-        "symfony/expression-language": "~2.4"
+        "symfony/expression-language": "~2.6"
+    },
+    "conflict": {
+        "symfony/expression-language": "<2.6"
     },
     "suggest": {
         "symfony/yaml": "",
diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/phpunit.xml.dist b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/phpunit.xml.dist
index d636cde..10e67fc 100644
--- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/phpunit.xml.dist
+++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/phpunit.xml.dist
@@ -6,6 +6,10 @@
          colors="true"
          bootstrap="vendor/autoload.php"
 >
+    <php>
+        <!-- Silence E_USER_DEPRECATED (-16385 == -1 & ~E_USER_DEPRECATED) -->
+        <ini name="error_reporting" value="-16385"/>
+    </php>
     <testsuites>
         <testsuite name="Symfony DependencyInjection Component Test Suite">
             <directory>./Tests/</directory>
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php
index 97a03d6..af0b6ce 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php
@@ -15,7 +15,7 @@
 
 /**
  * Lazily loads listeners and subscribers from the dependency injection
- * container
+ * container.
  *
  * @author Fabien Potencier <fabien@symfony.com>
  * @author Bernhard Schussek <bschussek@gmail.com>
@@ -24,19 +24,22 @@
 class ContainerAwareEventDispatcher extends EventDispatcher
 {
     /**
-     * The container from where services are loaded
+     * The container from where services are loaded.
+     *
      * @var ContainerInterface
      */
     private $container;
 
     /**
-     * The service IDs of the event listeners and subscribers
+     * The service IDs of the event listeners and subscribers.
+     *
      * @var array
      */
     private $listenerIds = array();
 
     /**
-     * The services registered as listeners
+     * The services registered as listeners.
+     *
      * @var array
      */
     private $listeners = array();
@@ -52,7 +55,7 @@ public function __construct(ContainerInterface $container)
     }
 
     /**
-     * Adds a service as event listener
+     * Adds a service as event listener.
      *
      * @param string $eventName Event for which the listener is added
      * @param array  $callback  The service ID of the listener service & the method
@@ -97,7 +100,7 @@ public function removeListener($eventName, $listener)
     }
 
     /**
-     * @see EventDispatcherInterface::hasListeners
+     * @see EventDispatcherInterface::hasListeners()
      */
     public function hasListeners($eventName = null)
     {
@@ -113,7 +116,7 @@ public function hasListeners($eventName = null)
     }
 
     /**
-     * @see EventDispatcherInterface::getListeners
+     * @see EventDispatcherInterface::getListeners()
      */
     public function getListeners($eventName = null)
     {
@@ -129,7 +132,7 @@ public function getListeners($eventName = null)
     }
 
     /**
-     * Adds a service as event subscriber
+     * Adds a service as event subscriber.
      *
      * @param string $serviceId The service ID of the subscriber service
      * @param string $class     The service's class name (which must implement EventSubscriberInterface)
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php
index 347c7d0..2119b81 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php
@@ -216,7 +216,7 @@ private function preProcess($eventName)
             $this->dispatcher->removeListener($eventName, $listener);
             $info = $this->getListenerInfo($listener, $eventName);
             $name = isset($info['class']) ? $info['class'] : $info['type'];
-            $this->dispatcher->addListener($eventName, new WrappedListener($listener, $name, $this->stopwatch));
+            $this->dispatcher->addListener($eventName, new WrappedListener($listener, $name, $this->stopwatch, $this));
         }
     }
 
@@ -224,6 +224,9 @@ private function postProcess($eventName)
     {
         $skipped = false;
         foreach ($this->dispatcher->getListeners($eventName) as $listener) {
+            if (!$listener instanceof WrappedListener) { // #12845: a new listener was added during dispatch.
+                continue;
+            }
             // Unwrap listener
             $this->dispatcher->removeListener($eventName, $listener);
             $this->dispatcher->addListener($eventName, $listener->getWrappedListener());
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/WrappedListener.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/WrappedListener.php
index c501662..e16627d 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/WrappedListener.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Debug/WrappedListener.php
@@ -25,12 +25,14 @@ class WrappedListener
     private $called;
     private $stoppedPropagation;
     private $stopwatch;
+    private $dispatcher;
 
-    public function __construct($listener, $name, Stopwatch $stopwatch)
+    public function __construct($listener, $name, Stopwatch $stopwatch, EventDispatcherInterface $dispatcher = null)
     {
         $this->listener = $listener;
         $this->name = $name;
         $this->stopwatch = $stopwatch;
+        $this->dispatcher = $dispatcher;
         $this->called = false;
         $this->stoppedPropagation = false;
     }
@@ -56,7 +58,7 @@ public function __invoke(Event $event, $eventName, EventDispatcherInterface $dis
 
         $e = $this->stopwatch->start($this->name, 'event_listener');
 
-        call_user_func($this->listener, $event, $eventName, $dispatcher);
+        call_user_func($this->listener, $event, $eventName, $this->dispatcher ?: $dispatcher);
 
         if ($e->isStarted()) {
             $e->stop();
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php
index afe3ecd..7e74a37 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/DependencyInjection/RegisterListenersPass.php
@@ -91,8 +91,12 @@ public function process(ContainerBuilder $container)
                 throw new \InvalidArgumentException(sprintf('The service "%s" must be public as event subscribers are lazy-loaded.', $id));
             }
 
+            if ($def->isAbstract()) {
+                throw new \InvalidArgumentException(sprintf('The service "%s" must not be abstract as event subscribers are lazy-loaded.', $id));
+            }
+
             // We must assume that the class value has been correctly filled, even if the service is created by a factory
-            $class = $def->getClass();
+            $class = $container->getParameterBag()->resolveValue($def->getClass());
 
             $refClass = new \ReflectionClass($class);
             $interface = 'Symfony\Component\EventDispatcher\EventSubscriberInterface';
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Event.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Event.php
index 34d9e81..dc39b05 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Event.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Event.php
@@ -20,17 +20,17 @@
  * You can call the method stopPropagation() to abort the execution of
  * further listeners in your event listener.
  *
- * @author  Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author  Jonathan Wage <jonwage@gmail.com>
- * @author  Roman Borschel <roman@code-factory.org>
- * @author  Bernhard Schussek <bschussek@gmail.com>
+ * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
+ * @author Jonathan Wage <jonwage@gmail.com>
+ * @author Roman Borschel <roman@code-factory.org>
+ * @author Bernhard Schussek <bschussek@gmail.com>
  *
  * @api
  */
 class Event
 {
     /**
-     * @var bool    Whether no further event listeners should be triggered
+     * @var bool Whether no further event listeners should be triggered
      */
     private $propagationStopped = false;
 
@@ -47,7 +47,8 @@ class Event
     /**
      * Returns whether further event listeners should be triggered.
      *
-     * @see Event::stopPropagation
+     * @see Event::stopPropagation()
+     *
      * @return bool Whether propagation was already stopped for this event.
      *
      * @api
@@ -72,7 +73,7 @@ public function stopPropagation()
     }
 
     /**
-     * Stores the EventDispatcher that dispatches this Event
+     * Stores the EventDispatcher that dispatches this Event.
      *
      * @param EventDispatcherInterface $dispatcher
      *
@@ -86,7 +87,7 @@ public function setDispatcher(EventDispatcherInterface $dispatcher)
     }
 
     /**
-     * Returns the EventDispatcher that dispatches this Event
+     * Returns the EventDispatcher that dispatches this Event.
      *
      * @return EventDispatcherInterface
      *
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php
index 222a937..3b032fb 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php
@@ -17,13 +17,13 @@
  * Listeners are registered on the manager and events are dispatched through the
  * manager.
  *
- * @author  Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author  Jonathan Wage <jonwage@gmail.com>
- * @author  Roman Borschel <roman@code-factory.org>
- * @author  Bernhard Schussek <bschussek@gmail.com>
- * @author  Fabien Potencier <fabien@symfony.com>
- * @author  Jordi Boggiano <j.boggiano@seld.be>
- * @author  Jordan Alliot <jordan.alliot@gmail.com>
+ * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
+ * @author Jonathan Wage <jonwage@gmail.com>
+ * @author Roman Borschel <roman@code-factory.org>
+ * @author Bernhard Schussek <bschussek@gmail.com>
+ * @author Fabien Potencier <fabien@symfony.com>
+ * @author Jordi Boggiano <j.boggiano@seld.be>
+ * @author Jordan Alliot <jordan.alliot@gmail.com>
  *
  * @api
  */
@@ -33,7 +33,7 @@ class EventDispatcher implements EventDispatcherInterface
     private $sorted = array();
 
     /**
-     * @see EventDispatcherInterface::dispatch
+     * @see EventDispatcherInterface::dispatch()
      *
      * @api
      */
@@ -56,7 +56,7 @@ public function dispatch($eventName, Event $event = null)
     }
 
     /**
-     * @see EventDispatcherInterface::getListeners
+     * @see EventDispatcherInterface::getListeners()
      */
     public function getListeners($eventName = null)
     {
@@ -78,7 +78,7 @@ public function getListeners($eventName = null)
     }
 
     /**
-     * @see EventDispatcherInterface::hasListeners
+     * @see EventDispatcherInterface::hasListeners()
      */
     public function hasListeners($eventName = null)
     {
@@ -86,7 +86,7 @@ public function hasListeners($eventName = null)
     }
 
     /**
-     * @see EventDispatcherInterface::addListener
+     * @see EventDispatcherInterface::addListener()
      *
      * @api
      */
@@ -97,7 +97,7 @@ public function addListener($eventName, $listener, $priority = 0)
     }
 
     /**
-     * @see EventDispatcherInterface::removeListener
+     * @see EventDispatcherInterface::removeListener()
      */
     public function removeListener($eventName, $listener)
     {
@@ -113,7 +113,7 @@ public function removeListener($eventName, $listener)
     }
 
     /**
-     * @see EventDispatcherInterface::addSubscriber
+     * @see EventDispatcherInterface::addSubscriber()
      *
      * @api
      */
@@ -133,7 +133,7 @@ public function addSubscriber(EventSubscriberInterface $subscriber)
     }
 
     /**
-     * @see EventDispatcherInterface::removeSubscriber
+     * @see EventDispatcherInterface::removeSubscriber()
      */
     public function removeSubscriber(EventSubscriberInterface $subscriber)
     {
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventSubscriberInterface.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventSubscriberInterface.php
index 080f892..ff7e305 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventSubscriberInterface.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventSubscriberInterface.php
@@ -17,10 +17,10 @@
  * {@link getSubscribedEvents} and registers the subscriber as a listener for all
  * returned events.
  *
- * @author  Guilherme Blanco <guilhermeblanco@hotmail.com>
- * @author  Jonathan Wage <jonwage@gmail.com>
- * @author  Roman Borschel <roman@code-factory.org>
- * @author  Bernhard Schussek <bschussek@gmail.com>
+ * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
+ * @author Jonathan Wage <jonwage@gmail.com>
+ * @author Roman Borschel <roman@code-factory.org>
+ * @author Bernhard Schussek <bschussek@gmail.com>
  *
  * @api
  */
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php
index 1e8c44a..a8955ca 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php
@@ -175,7 +175,7 @@ public function offsetExists($key)
     }
 
     /**
-     * IteratorAggregate for iterating over the object like an array
+     * IteratorAggregate for iterating over the object like an array.
      *
      * @return \ArrayIterator
      */
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ImmutableEventDispatcher.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ImmutableEventDispatcher.php
index b70b81a..7ef9ece 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ImmutableEventDispatcher.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ImmutableEventDispatcher.php
@@ -20,6 +20,7 @@ class ImmutableEventDispatcher implements EventDispatcherInterface
 {
     /**
      * The proxied dispatcher.
+     *
      * @var EventDispatcherInterface
      */
     private $dispatcher;
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/LICENSE b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/LICENSE
index 0b3292c..43028bc 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/LICENSE
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2014 Fabien Potencier
+Copyright (c) 2004-2015 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php
index bb3ff3a..6f2fbcb 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/ContainerAwareEventDispatcherTest.php
@@ -22,6 +22,7 @@ class ContainerAwareEventDispatcherTest extends AbstractEventDispatcherTest
     protected function createEventDispatcher()
     {
         $container = new Container();
+
         return new ContainerAwareEventDispatcher($container);
     }
 
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php
index 47dd5da..68b9523 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php
@@ -86,6 +86,20 @@ public function testGetCalledListeners()
         $this->assertEquals(array(), $tdispatcher->getNotCalledListeners());
     }
 
+    public function testGetCalledListenersNested()
+    {
+        $tdispatcher = null;
+        $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
+        $dispatcher->addListener('foo', function (Event $event, $eventName, $dispatcher) use (&$tdispatcher) {
+            $tdispatcher = $dispatcher;
+            $dispatcher->dispatch('bar');
+        });
+        $dispatcher->addListener('bar', function (Event $event) {});
+        $dispatcher->dispatch('foo');
+        $this->assertSame($dispatcher, $tdispatcher);
+        $this->assertCount(2, $dispatcher->getCalledListeners());
+    }
+
     public function testLogger()
     {
         $logger = $this->getMock('Psr\Log\LoggerInterface');
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php
index b291e1e..0fdd637 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php
@@ -138,6 +138,58 @@ public function testAbstractEventListener()
         $registerListenersPass = new RegisterListenersPass();
         $registerListenersPass->process($container);
     }
+
+    /**
+     * @expectedException \InvalidArgumentException
+     * @expectedExceptionMessage The service "foo" must not be abstract as event subscribers are lazy-loaded.
+     */
+    public function testAbstractEventSubscriber()
+    {
+        $container = new ContainerBuilder();
+        $container->register('foo', 'stdClass')->setAbstract(true)->addTag('kernel.event_subscriber', array());
+        $container->register('event_dispatcher', 'stdClass');
+
+        $registerListenersPass = new RegisterListenersPass();
+        $registerListenersPass->process($container);
+    }
+
+    public function testEventSubscriberResolvableClassName()
+    {
+        $container = new ContainerBuilder();
+
+        $container->setParameter('subscriber.class', 'Symfony\Component\EventDispatcher\Tests\DependencyInjection\SubscriberService');
+        $container->register('foo', '%subscriber.class%')->addTag('kernel.event_subscriber', array());
+        $container->register('event_dispatcher', 'stdClass');
+
+        $registerListenersPass = new RegisterListenersPass();
+        $registerListenersPass->process($container);
+
+        $definition = $container->getDefinition('event_dispatcher');
+        $expected_calls = array(
+            array(
+                'addSubscriberService',
+                array(
+                    'foo',
+                    'Symfony\Component\EventDispatcher\Tests\DependencyInjection\SubscriberService',
+                ),
+            ),
+        );
+        $this->assertSame($expected_calls, $definition->getMethodCalls());
+    }
+
+    /**
+     * @expectedException \InvalidArgumentException
+     * @expectedExceptionMessage You have requested a non-existent parameter "subscriber.class"
+     */
+    public function testEventSubscriberUnresolvableClassName()
+    {
+        $container = new ContainerBuilder();
+        $container->register('foo', '%subscriber.class%')->addTag('kernel.event_subscriber', array());
+        $container->register('event_dispatcher', 'stdClass');
+
+        $registerListenersPass = new RegisterListenersPass();
+        $registerListenersPass->process($container);
+    }
 }
 
 class SubscriberService implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventTest.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventTest.php
index 7a20fe6..8f2fb73 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventTest.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/EventTest.php
@@ -60,24 +60,28 @@ public function testStopPropagationAndIsPropagationStopped()
         $this->assertTrue($this->event->isPropagationStopped());
     }
 
-    public function testSetDispatcher()
+    public function testLegacySetDispatcher()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
         $this->event->setDispatcher($this->dispatcher);
         $this->assertSame($this->dispatcher, $this->event->getDispatcher());
     }
 
-    public function testGetDispatcher()
+    public function testLegacyGetDispatcher()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
         $this->assertNull($this->event->getDispatcher());
     }
 
-    public function testGetName()
+    public function testLegacyGetName()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
         $this->assertNull($this->event->getName());
     }
 
-    public function testSetName()
+    public function testLegacySetName()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
         $this->event->setName('foo');
         $this->assertEquals('foo', $this->event->getName());
     }
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php
index 1090bcb..aebd82d 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php
@@ -53,7 +53,7 @@ public function testConstruct()
     }
 
     /**
-     * Tests Event->getArgs()
+     * Tests Event->getArgs().
      */
     public function testGetArguments()
     {
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json
index 80a0f93..6c58d4e 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json
@@ -21,8 +21,8 @@
     "require-dev": {
         "symfony/dependency-injection": "~2.6",
         "symfony/expression-language": "~2.6",
-        "symfony/config": "~2.0",
-        "symfony/stopwatch": "~2.2",
+        "symfony/config": "~2.0,>=2.0.5",
+        "symfony/stopwatch": "~2.3",
         "psr/log": "~1.0"
     },
     "suggest": {
diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/phpunit.xml.dist b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/phpunit.xml.dist
index cca1259..9a7728e 100644
--- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/phpunit.xml.dist
+++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/phpunit.xml.dist
@@ -6,6 +6,10 @@
          colors="true"
          bootstrap="vendor/autoload.php"
 >
+    <php>
+        <!-- Silence E_USER_DEPRECATED (-16385 == -1 & ~E_USER_DEPRECATED) -->
+        <ini name="error_reporting" value="-16385"/>
+    </php>
     <testsuites>
         <testsuite name="Symfony EventDispatcher Component Test Suite">
             <directory>./Tests/</directory>
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/AcceptHeader.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/AcceptHeader.php
index 2a89a86..2260787 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/AcceptHeader.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/AcceptHeader.php
@@ -150,7 +150,7 @@ public function first()
     }
 
     /**
-     * Sorts items by descending quality
+     * Sorts items by descending quality.
      */
     private function sort()
     {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/BinaryFileResponse.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/BinaryFileResponse.php
index 8a930a1..685642f 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/BinaryFileResponse.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/BinaryFileResponse.php
@@ -1,6 +1,6 @@
 <?php
 
-/**
+/*
  * This file is part of the Symfony package.
  *
  * (c) Fabien Potencier <fabien@symfony.com>
@@ -63,7 +63,7 @@ public function __construct($file, $status = 200, $headers = array(), $public =
      * @param bool                $autoEtag           Whether the ETag header should be automatically set
      * @param bool                $autoLastModified   Whether the Last-Modified header should be automatically set
      *
-     * @return BinaryResponse The created response
+     * @return BinaryFileResponse The created response
      */
     public static function create($file = null, $status = 200, $headers = array(), $public = true, $contentDisposition = null, $autoEtag = false, $autoLastModified = true)
     {
@@ -170,8 +170,11 @@ public function setContentDisposition($disposition, $filename = '', $filenameFal
     public function prepare(Request $request)
     {
         $this->headers->set('Content-Length', $this->file->getSize());
-        $this->headers->set('Accept-Ranges', 'bytes');
-        $this->headers->set('Content-Transfer-Encoding', 'binary');
+
+        if (!$this->headers->has('Accept-Ranges')) {
+            // Only accept ranges on safe HTTP methods
+            $this->headers->set('Accept-Ranges', $request->isMethodSafe() ? 'bytes' : 'none');
+        }
 
         if (!$this->headers->has('Content-Type')) {
             $this->headers->set('Content-Type', $this->file->getMimeType() ?: 'application/octet-stream');
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Cookie.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Cookie.php
index d5fc979..44b7792 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Cookie.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Cookie.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\HttpFoundation;
 
 /**
- * Represents a cookie
+ * Represents a cookie.
  *
  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
  *
@@ -197,7 +197,7 @@ public function isHttpOnly()
     }
 
     /**
-     * Whether this cookie is about to be cleared
+     * Whether this cookie is about to be cleared.
      *
      * @return bool
      *
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/FileException.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/FileException.php
index 68f827b..fad5133 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/FileException.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/FileException.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\HttpFoundation\File\Exception;
 
 /**
- * Thrown when an error occurred in the component File
+ * Thrown when an error occurred in the component File.
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/FileNotFoundException.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/FileNotFoundException.php
index bd70094..ac90d40 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/FileNotFoundException.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/FileNotFoundException.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\HttpFoundation\File\Exception;
 
 /**
- * Thrown when a file was not found
+ * Thrown when a file was not found.
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/UploadException.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/UploadException.php
index 382282e..7074e76 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/UploadException.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/Exception/UploadException.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\HttpFoundation\File\Exception;
 
 /**
- * Thrown when an error occurred during file upload
+ * Thrown when an error occurred during file upload.
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesser.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesser.php
index 4f2f672..ec9b78a 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesser.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesser.php
@@ -26,21 +26,21 @@
 class ExtensionGuesser implements ExtensionGuesserInterface
 {
     /**
-     * The singleton instance
+     * The singleton instance.
      *
      * @var ExtensionGuesser
      */
     private static $instance = null;
 
     /**
-     * All registered ExtensionGuesserInterface instances
+     * All registered ExtensionGuesserInterface instances.
      *
      * @var array
      */
     protected $guessers = array();
 
     /**
-     * Returns the singleton instance
+     * Returns the singleton instance.
      *
      * @return ExtensionGuesser
      */
@@ -54,7 +54,7 @@ public static function getInstance()
     }
 
     /**
-     * Registers all natively provided extension guessers
+     * Registers all natively provided extension guessers.
      */
     private function __construct()
     {
@@ -62,7 +62,7 @@ private function __construct()
     }
 
     /**
-     * Registers a new extension guesser
+     * Registers a new extension guesser.
      *
      * When guessing, this guesser is preferred over previously registered ones.
      *
@@ -74,7 +74,7 @@ public function register(ExtensionGuesserInterface $guesser)
     }
 
     /**
-     * Tries to guess the extension
+     * Tries to guess the extension.
      *
      * The mime type is passed to each registered mime type guesser in reverse order
      * of their registration (last registered is queried first). Once a guesser
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesserInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesserInterface.php
index 88a3967..d19a0e5 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesserInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/ExtensionGuesserInterface.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\HttpFoundation\File\MimeType;
 
 /**
- * Guesses the file extension corresponding to a given mime type
+ * Guesses the file extension corresponding to a given mime type.
  */
 interface ExtensionGuesserInterface
 {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/FileBinaryMimeTypeGuesser.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/FileBinaryMimeTypeGuesser.php
index f3c208d..f917a06 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/FileBinaryMimeTypeGuesser.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/FileBinaryMimeTypeGuesser.php
@@ -15,7 +15,7 @@
 use Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException;
 
 /**
- * Guesses the mime type with the binary "file" (only available on *nix)
+ * Guesses the mime type with the binary "file" (only available on *nix).
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  */
@@ -39,13 +39,13 @@ public function __construct($cmd = 'file -b --mime %s 2>/dev/null')
     }
 
     /**
-     * Returns whether this guesser is supported on the current OS
+     * Returns whether this guesser is supported on the current OS.
      *
      * @return bool
      */
     public static function isSupported()
     {
-        return !defined('PHP_WINDOWS_VERSION_BUILD') && function_exists('passthru') && function_exists('escapeshellarg');
+        return '\\' !== DIRECTORY_SEPARATOR && function_exists('passthru') && function_exists('escapeshellarg');
     }
 
     /**
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/FileinfoMimeTypeGuesser.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/FileinfoMimeTypeGuesser.php
index 3b348bd..a7e4ae2 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/FileinfoMimeTypeGuesser.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/FileinfoMimeTypeGuesser.php
@@ -36,7 +36,7 @@ public function __construct($magicFile = null)
     }
 
     /**
-     * Returns whether this guesser is supported on the current OS/PHP setup
+     * Returns whether this guesser is supported on the current OS/PHP setup.
      *
      * @return bool
      */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php
index a057e66..81b2b02 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php
@@ -40,21 +40,21 @@
 class MimeTypeGuesser implements MimeTypeGuesserInterface
 {
     /**
-     * The singleton instance
+     * The singleton instance.
      *
      * @var MimeTypeGuesser
      */
     private static $instance = null;
 
     /**
-     * All registered MimeTypeGuesserInterface instances
+     * All registered MimeTypeGuesserInterface instances.
      *
      * @var array
      */
     protected $guessers = array();
 
     /**
-     * Returns the singleton instance
+     * Returns the singleton instance.
      *
      * @return MimeTypeGuesser
      */
@@ -68,7 +68,7 @@ public static function getInstance()
     }
 
     /**
-     * Registers all natively provided mime type guessers
+     * Registers all natively provided mime type guessers.
      */
     private function __construct()
     {
@@ -82,7 +82,7 @@ private function __construct()
     }
 
     /**
-     * Registers a new mime type guesser
+     * Registers a new mime type guesser.
      *
      * When guessing, this guesser is preferred over previously registered ones.
      *
@@ -94,7 +94,7 @@ public function register(MimeTypeGuesserInterface $guesser)
     }
 
     /**
-     * Tries to guess the mime type of the given file
+     * Tries to guess the mime type of the given file.
      *
      * The file is passed to each registered mime type guesser in reverse order
      * of their registration (last registered is queried first). Once a guesser
@@ -120,7 +120,11 @@ public function guess($path)
         }
 
         if (!$this->guessers) {
-            throw new \LogicException('Unable to guess the mime type as no guessers are available (Did you enable the php_fileinfo extension?)');
+            $msg = 'Unable to guess the mime type as no guessers are available';
+            if (!FileinfoMimeTypeGuesser::isSupported()) {
+                $msg .= ' (Did you enable the php_fileinfo extension?)';
+            }
+            throw new \LogicException($msg);
         }
 
         foreach ($this->guessers as $guesser) {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesserInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesserInterface.php
index 0f9b970..f8c3ad2 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesserInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesserInterface.php
@@ -15,7 +15,7 @@
 use Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException;
 
 /**
- * Guesses the mime type of a file
+ * Guesses the mime type of a file.
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/UploadedFile.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/UploadedFile.php
index 86d7bfd..8dc51df 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/UploadedFile.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/File/UploadedFile.php
@@ -116,7 +116,7 @@ public function getClientOriginalName()
     }
 
     /**
-     * Returns the original file extension
+     * Returns the original file extension.
      *
      * It is extracted from the original file name that was uploaded.
      * Then it should not be considered as a safe value.
@@ -139,7 +139,7 @@ public function getClientOriginalExtension()
      *
      * @return string|null The mime type
      *
-     * @see getMimeType
+     * @see getMimeType()
      *
      * @api
      */
@@ -252,7 +252,7 @@ public function move($directory, $name = null)
     }
 
     /**
-     * Returns the maximum size of an uploaded file as configured in php.ini
+     * Returns the maximum size of an uploaded file as configured in php.ini.
      *
      * @return int The maximum size of an uploaded file in bytes
      */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/IpUtils.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/IpUtils.php
index 287bae2..aaa1647 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/IpUtils.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/IpUtils.php
@@ -19,14 +19,14 @@
 class IpUtils
 {
     /**
-     * This class should not be instantiated
+     * This class should not be instantiated.
      */
     private function __construct()
     {
     }
 
     /**
-     * Checks if an IPv4 or IPv6 address is contained in the list of given IPs or subnets
+     * Checks if an IPv4 or IPv6 address is contained in the list of given IPs or subnets.
      *
      * @param string       $requestIp IP to check
      * @param string|array $ips       List of IPs or subnets (can be a string if only a single one)
@@ -39,7 +39,7 @@ public static function checkIp($requestIp, $ips)
             $ips = array($ips);
         }
 
-        $method = false !== strpos($requestIp, ':') ? 'checkIp6' : 'checkIp4';
+        $method = substr_count($requestIp, ':') > 1 ? 'checkIp6' : 'checkIp4';
 
         foreach ($ips as $ip) {
             if (self::$method($requestIp, $ip)) {
@@ -80,6 +80,7 @@ public static function checkIp4($requestIp, $ip)
      * In case a subnet is given, it checks if it contains the request IP.
      *
      * @author David Soria Parra <dsp at php dot net>
+     *
      * @see https://github.com/dsp/v6tools
      *
      * @param string $requestIp IPv6 address to check
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php
index 05137dd..fa80c68 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php
@@ -139,7 +139,7 @@ public function getEncodingOptions()
     /**
      * Sets options used while encoding data to JSON.
      *
-     * @param int     $encodingOptions
+     * @param int $encodingOptions
      *
      * @return JsonResponse
      */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/LICENSE b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/LICENSE
index 0b3292c..43028bc 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/LICENSE
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2014 Fabien Potencier
+Copyright (c) 2004-2015 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ParameterBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ParameterBag.php
index 6f7f126..348aab9 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ParameterBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ParameterBag.php
@@ -256,11 +256,11 @@ public function getInt($key, $default = 0, $deep = false)
     /**
      * Returns the parameter value converted to boolean.
      *
-     * @param string  $key     The parameter key
-     * @param mixed   $default The default value if the parameter key does not exist
-     * @param bool    $deep    If true, a path like foo[bar] will find deeper items
+     * @param string $key     The parameter key
+     * @param mixed  $default The default value if the parameter key does not exist
+     * @param bool   $deep    If true, a path like foo[bar] will find deeper items
      *
-     * @return bool    The filtered value
+     * @return bool The filtered value
      */
     public function getBoolean($key, $default = false, $deep = false)
     {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php
index 5dfaf51..8a86d07 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php
@@ -75,7 +75,7 @@ class Request
     protected static $httpMethodParameterOverride = false;
 
     /**
-     * Custom parameters
+     * Custom parameters.
      *
      * @var \Symfony\Component\HttpFoundation\ParameterBag
      *
@@ -84,7 +84,7 @@ class Request
     public $attributes;
 
     /**
-     * Request body parameters ($_POST)
+     * Request body parameters ($_POST).
      *
      * @var \Symfony\Component\HttpFoundation\ParameterBag
      *
@@ -93,7 +93,7 @@ class Request
     public $request;
 
     /**
-     * Query string parameters ($_GET)
+     * Query string parameters ($_GET).
      *
      * @var \Symfony\Component\HttpFoundation\ParameterBag
      *
@@ -102,7 +102,7 @@ class Request
     public $query;
 
     /**
-     * Server and execution environment parameters ($_SERVER)
+     * Server and execution environment parameters ($_SERVER).
      *
      * @var \Symfony\Component\HttpFoundation\ServerBag
      *
@@ -111,7 +111,7 @@ class Request
     public $server;
 
     /**
-     * Uploaded files ($_FILES)
+     * Uploaded files ($_FILES).
      *
      * @var \Symfony\Component\HttpFoundation\FileBag
      *
@@ -120,7 +120,7 @@ class Request
     public $files;
 
     /**
-     * Cookies ($_COOKIE)
+     * Cookies ($_COOKIE).
      *
      * @var \Symfony\Component\HttpFoundation\ParameterBag
      *
@@ -129,7 +129,7 @@ class Request
     public $cookies;
 
     /**
-     * Headers (taken from the $_SERVER)
+     * Headers (taken from the $_SERVER).
      *
      * @var \Symfony\Component\HttpFoundation\HeaderBag
      *
@@ -279,7 +279,20 @@ public function initialize(array $query = array(), array $request = array(), arr
      */
     public static function createFromGlobals()
     {
-        $request = self::createRequestFromFactory($_GET, $_POST, array(), $_COOKIE, $_FILES, $_SERVER);
+        // With the php's bug #66606, the php's built-in web server
+        // stores the Content-Type and Content-Length header values in
+        // HTTP_CONTENT_TYPE and HTTP_CONTENT_LENGTH fields.
+        $server = $_SERVER;
+        if ('cli-server' === php_sapi_name()) {
+            if (array_key_exists('HTTP_CONTENT_LENGTH', $_SERVER)) {
+                $server['CONTENT_LENGTH'] = $_SERVER['HTTP_CONTENT_LENGTH'];
+            }
+            if (array_key_exists('HTTP_CONTENT_TYPE', $_SERVER)) {
+                $server['CONTENT_TYPE'] = $_SERVER['HTTP_CONTENT_TYPE'];
+            }
+        }
+
+        $request = self::createRequestFromFactory($_GET, $_POST, array(), $_COOKIE, $_FILES, $server);
 
         if (0 === strpos($request->headers->get('CONTENT_TYPE'), 'application/x-www-form-urlencoded')
             && in_array(strtoupper($request->server->get('REQUEST_METHOD', 'GET')), array('PUT', 'DELETE', 'PATCH'))
@@ -467,7 +480,7 @@ public function duplicate(array $query = null, array $request = null, array $att
         }
 
         if (!$dup->getRequestFormat(null)) {
-            $dup->setRequestFormat($format = $this->getRequestFormat(null));
+            $dup->setRequestFormat($this->getRequestFormat(null));
         }
 
         return $dup;
@@ -827,6 +840,11 @@ public function getClientIps()
 
         // Eliminate all IPs from the forwarded IP chain which are trusted proxies
         foreach ($clientIps as $key => $clientIp) {
+            // Remove port on IPv4 address (unfortunately, it does happen)
+            if (preg_match('{((?:\d+\.){3}\d+)\:\d+}', $clientIp, $match)) {
+                $clientIps[$key] = $clientIp = $match[1];
+            }
+
             if (IpUtils::checkIp($clientIp, self::$trustedProxies)) {
                 unset($clientIps[$key]);
             }
@@ -1252,7 +1270,7 @@ public function setMethod($method)
      *
      * @api
      *
-     * @see getRealMethod
+     * @see getRealMethod()
      */
     public function getMethod()
     {
@@ -1276,7 +1294,7 @@ public function getMethod()
      *
      * @return string The request method
      *
-     * @see getMethod
+     * @see getMethod()
      */
     public function getRealMethod()
     {
@@ -1620,7 +1638,7 @@ public function getEncodings()
     }
 
     /**
-     * Gets a list of content types acceptable by the client browser
+     * Gets a list of content types acceptable by the client browser.
      *
      * @return array List of content types in preferable order
      *
@@ -1640,6 +1658,7 @@ public function getAcceptableContentTypes()
      *
      * It works if your JavaScript library sets an X-Requested-With HTTP header.
      * It is known to work with common JavaScript frameworks:
+     *
      * @link http://en.wikipedia.org/wiki/List_of_Ajax_frameworks#JavaScript
      *
      * @return bool true if the request is an XMLHttpRequest, false otherwise
@@ -1741,7 +1760,7 @@ protected function prepareBaseUrl()
             return $prefix;
         }
 
-        if ($baseUrl && false !== $prefix = $this->getUrlencodedPrefix($requestUri, dirname($baseUrl))) {
+        if ($baseUrl && false !== $prefix = $this->getUrlencodedPrefix($requestUri, dirname($baseUrl).'/')) {
             // directory portion of $baseUrl matches
             return rtrim($prefix, '/');
         }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Resources/stubs/SessionHandlerInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Resources/stubs/SessionHandlerInterface.php
index 9557135..9baa7bc 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Resources/stubs/SessionHandlerInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Resources/stubs/SessionHandlerInterface.php
@@ -10,7 +10,7 @@
  */
 
 /**
- * SessionHandlerInterface for PHP < 5.4
+ * SessionHandlerInterface for PHP < 5.4.
  *
  * The order in which these methods are invoked by PHP are:
  * 1. open [session_start]
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php
index a586723..219cb52 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php
@@ -208,7 +208,7 @@ public function __construct($content = '', $status = 200, $headers = array())
     }
 
     /**
-     * Factory method for chainability
+     * Factory method for chainability.
      *
      * Example:
      *
@@ -268,7 +268,7 @@ public function prepare(Request $request)
     {
         $headers = $this->headers;
 
-        if ($this->isInformational() || in_array($this->statusCode, array(204, 304))) {
+        if ($this->isInformational() || $this->isEmpty()) {
             $this->setContent(null);
             $headers->remove('Content-Type');
             $headers->remove('Content-Length');
@@ -1260,7 +1260,7 @@ public static function closeOutputBuffers($targetLevel, $flush)
     }
 
     /**
-     * Checks if we need to remove Cache-Control for SSL encrypted downloads when using IE < 9
+     * Checks if we need to remove Cache-Control for SSL encrypted downloads when using IE < 9.
      *
      * @link http://support.microsoft.com/kb/323308
      */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ResponseHeaderBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ResponseHeaderBag.php
index 603515c..375d191 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ResponseHeaderBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ResponseHeaderBag.php
@@ -165,7 +165,7 @@ public function setCookie(Cookie $cookie)
     }
 
     /**
-     * Removes a cookie from the array, but does not unset it in the browser
+     * Removes a cookie from the array, but does not unset it in the browser.
      *
      * @param string $name
      * @param string $path
@@ -191,7 +191,7 @@ public function removeCookie($name, $path = '/', $domain = null)
     }
 
     /**
-     * Returns an array with all cookies
+     * Returns an array with all cookies.
      *
      * @param string $format
      *
@@ -224,7 +224,7 @@ public function getCookies($format = self::COOKIES_FLAT)
     }
 
     /**
-     * Clears a cookie in the browser
+     * Clears a cookie in the browser.
      *
      * @param string $name
      * @param string $path
@@ -251,6 +251,7 @@ public function clearCookie($name, $path = '/', $domain = null, $secure = false,
      * @return string A string suitable for use as a Content-Disposition field-value.
      *
      * @throws \InvalidArgumentException
+     *
      * @see RFC 6266
      */
     public function makeDisposition($disposition, $filename, $filenameFallback = '')
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php
index ffe1770..af292e3 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Attribute/AttributeBag.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\HttpFoundation\Session\Attribute;
 
 /**
- * This class relates to session attribute storage
+ * This class relates to session attribute storage.
  */
 class AttributeBag implements AttributeBagInterface, \IteratorAggregate, \Countable
 {
@@ -148,7 +148,7 @@ public function getIterator()
     /**
      * Returns the number of attributes.
      *
-     * @return int     The number of attributes
+     * @return int The number of attributes
      */
     public function count()
     {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/AutoExpireFlashBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/AutoExpireFlashBag.php
index 25a6260..b9de5ce 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/AutoExpireFlashBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/AutoExpireFlashBag.php
@@ -28,7 +28,7 @@ class AutoExpireFlashBag implements FlashBagInterface
     private $flashes = array('display' => array(), 'new' => array());
 
     /**
-     * The storage key for flashes in the session
+     * The storage key for flashes in the session.
      *
      * @var string
      */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/FlashBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/FlashBag.php
index 2bd7786..ac412d7 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/FlashBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/FlashBag.php
@@ -30,7 +30,7 @@ class FlashBag implements FlashBagInterface, \IteratorAggregate
     private $flashes = array();
 
     /**
-     * The storage key for flashes in the session
+     * The storage key for flashes in the session.
      *
      * @var string
      */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionBagInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionBagInterface.php
index f8d3d32..182a47d 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionBagInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionBagInterface.php
@@ -19,14 +19,14 @@
 interface SessionBagInterface
 {
     /**
-     * Gets this bag's name
+     * Gets this bag's name.
      *
      * @return string
      */
     public function getName();
 
     /**
-     * Initializes the Bag
+     * Initializes the Bag.
      *
      * @param array $array
      */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionInterface.php
index 4669c74..773dc7a 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/SessionInterface.php
@@ -41,7 +41,7 @@ public function start();
     public function getId();
 
     /**
-     * Sets the session ID
+     * Sets the session ID.
      *
      * @param string $id
      *
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/LegacyPdoSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/LegacyPdoSessionHandler.php
new file mode 100644
index 0000000..fff8331
--- /dev/null
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/LegacyPdoSessionHandler.php
@@ -0,0 +1,268 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
+
+/**
+ * Session handler using a PDO connection to read and write data.
+ *
+ * Session data is a binary string that can contain non-printable characters like the null byte.
+ * For this reason this handler base64 encodes the data to be able to save it in a character column.
+ *
+ * This version of the PdoSessionHandler does NOT implement locking. So concurrent requests to the
+ * same session can result in data loss due to race conditions.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ * @author Michael Williams <michael.williams@funsational.com>
+ * @author Tobias Schultze <http://tobion.de>
+ *
+ * @deprecated Deprecated since version 2.6, to be removed in 3.0. Use
+ *             {@link PdoSessionHandler} instead.
+ */
+class LegacyPdoSessionHandler implements \SessionHandlerInterface
+{
+    /**
+     * @var \PDO PDO instance
+     */
+    private $pdo;
+
+    /**
+     * @var string Table name
+     */
+    private $table;
+
+    /**
+     * @var string Column for session id
+     */
+    private $idCol;
+
+    /**
+     * @var string Column for session data
+     */
+    private $dataCol;
+
+    /**
+     * @var string Column for timestamp
+     */
+    private $timeCol;
+
+    /**
+     * Constructor.
+     *
+     * List of available options:
+     *  * db_table: The name of the table [required]
+     *  * db_id_col: The column where to store the session id [default: sess_id]
+     *  * db_data_col: The column where to store the session data [default: sess_data]
+     *  * db_time_col: The column where to store the timestamp [default: sess_time]
+     *
+     * @param \PDO  $pdo       A \PDO instance
+     * @param array $dbOptions An associative array of DB options
+     *
+     * @throws \InvalidArgumentException When "db_table" option is not provided
+     */
+    public function __construct(\PDO $pdo, array $dbOptions = array())
+    {
+        if (!array_key_exists('db_table', $dbOptions)) {
+            throw new \InvalidArgumentException('You must provide the "db_table" option for a PdoSessionStorage.');
+        }
+        if (\PDO::ERRMODE_EXCEPTION !== $pdo->getAttribute(\PDO::ATTR_ERRMODE)) {
+            throw new \InvalidArgumentException(sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION))', __CLASS__));
+        }
+        $this->pdo = $pdo;
+        $dbOptions = array_merge(array(
+            'db_id_col' => 'sess_id',
+            'db_data_col' => 'sess_data',
+            'db_time_col' => 'sess_time',
+        ), $dbOptions);
+
+        $this->table = $dbOptions['db_table'];
+        $this->idCol = $dbOptions['db_id_col'];
+        $this->dataCol = $dbOptions['db_data_col'];
+        $this->timeCol = $dbOptions['db_time_col'];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function open($savePath, $sessionName)
+    {
+        return true;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function close()
+    {
+        return true;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function destroy($sessionId)
+    {
+        // delete the record associated with this id
+        $sql = "DELETE FROM $this->table WHERE $this->idCol = :id";
+
+        try {
+            $stmt = $this->pdo->prepare($sql);
+            $stmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
+            $stmt->execute();
+        } catch (\PDOException $e) {
+            throw new \RuntimeException(sprintf('PDOException was thrown when trying to delete a session: %s', $e->getMessage()), 0, $e);
+        }
+
+        return true;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function gc($maxlifetime)
+    {
+        // delete the session records that have expired
+        $sql = "DELETE FROM $this->table WHERE $this->timeCol < :time";
+
+        try {
+            $stmt = $this->pdo->prepare($sql);
+            $stmt->bindValue(':time', time() - $maxlifetime, \PDO::PARAM_INT);
+            $stmt->execute();
+        } catch (\PDOException $e) {
+            throw new \RuntimeException(sprintf('PDOException was thrown when trying to delete expired sessions: %s', $e->getMessage()), 0, $e);
+        }
+
+        return true;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function read($sessionId)
+    {
+        $sql = "SELECT $this->dataCol FROM $this->table WHERE $this->idCol = :id";
+
+        try {
+            $stmt = $this->pdo->prepare($sql);
+            $stmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
+            $stmt->execute();
+
+            // We use fetchAll instead of fetchColumn to make sure the DB cursor gets closed
+            $sessionRows = $stmt->fetchAll(\PDO::FETCH_NUM);
+
+            if ($sessionRows) {
+                return base64_decode($sessionRows[0][0]);
+            }
+
+            return '';
+        } catch (\PDOException $e) {
+            throw new \RuntimeException(sprintf('PDOException was thrown when trying to read the session data: %s', $e->getMessage()), 0, $e);
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function write($sessionId, $data)
+    {
+        $encoded = base64_encode($data);
+
+        try {
+            // We use a single MERGE SQL query when supported by the database.
+            $mergeSql = $this->getMergeSql();
+
+            if (null !== $mergeSql) {
+                $mergeStmt = $this->pdo->prepare($mergeSql);
+                $mergeStmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
+                $mergeStmt->bindParam(':data', $encoded, \PDO::PARAM_STR);
+                $mergeStmt->bindValue(':time', time(), \PDO::PARAM_INT);
+                $mergeStmt->execute();
+
+                return true;
+            }
+
+            $updateStmt = $this->pdo->prepare(
+                "UPDATE $this->table SET $this->dataCol = :data, $this->timeCol = :time WHERE $this->idCol = :id"
+            );
+            $updateStmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
+            $updateStmt->bindParam(':data', $encoded, \PDO::PARAM_STR);
+            $updateStmt->bindValue(':time', time(), \PDO::PARAM_INT);
+            $updateStmt->execute();
+
+            // When MERGE is not supported, like in Postgres, we have to use this approach that can result in
+            // duplicate key errors when the same session is written simultaneously. We can just catch such an
+            // error and re-execute the update. This is similar to a serializable transaction with retry logic
+            // on serialization failures but without the overhead and without possible false positives due to
+            // longer gap locking.
+            if (!$updateStmt->rowCount()) {
+                try {
+                    $insertStmt = $this->pdo->prepare(
+                        "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->timeCol) VALUES (:id, :data, :time)"
+                    );
+                    $insertStmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
+                    $insertStmt->bindParam(':data', $encoded, \PDO::PARAM_STR);
+                    $insertStmt->bindValue(':time', time(), \PDO::PARAM_INT);
+                    $insertStmt->execute();
+                } catch (\PDOException $e) {
+                    // Handle integrity violation SQLSTATE 23000 (or a subclass like 23505 in Postgres) for duplicate keys
+                    if (0 === strpos($e->getCode(), '23')) {
+                        $updateStmt->execute();
+                    } else {
+                        throw $e;
+                    }
+                }
+            }
+        } catch (\PDOException $e) {
+            throw new \RuntimeException(sprintf('PDOException was thrown when trying to write the session data: %s', $e->getMessage()), 0, $e);
+        }
+
+        return true;
+    }
+
+    /**
+     * Returns a merge/upsert (i.e. insert or update) SQL query when supported by the database.
+     *
+     * @return string|null The SQL string or null when not supported
+     */
+    private function getMergeSql()
+    {
+        $driver = $this->pdo->getAttribute(\PDO::ATTR_DRIVER_NAME);
+
+        switch ($driver) {
+            case 'mysql':
+                return "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->timeCol) VALUES (:id, :data, :time) ".
+                "ON DUPLICATE KEY UPDATE $this->dataCol = VALUES($this->dataCol), $this->timeCol = VALUES($this->timeCol)";
+            case 'oci':
+                // DUAL is Oracle specific dummy table
+                return "MERGE INTO $this->table USING DUAL ON ($this->idCol = :id) ".
+                "WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->timeCol) VALUES (:id, :data, :time) ".
+                "WHEN MATCHED THEN UPDATE SET $this->dataCol = :data, $this->timeCol = :time";
+            case 'sqlsrv' === $driver && version_compare($this->pdo->getAttribute(\PDO::ATTR_SERVER_VERSION), '10', '>='):
+                // MERGE is only available since SQL Server 2008 and must be terminated by semicolon
+                // It also requires HOLDLOCK according to http://weblogs.sqlteam.com/dang/archive/2009/01/31/UPSERT-Race-Condition-With-MERGE.aspx
+                return "MERGE INTO $this->table WITH (HOLDLOCK) USING (SELECT 1 AS dummy) AS src ON ($this->idCol = :id) ".
+                "WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->timeCol) VALUES (:id, :data, :time) ".
+                "WHEN MATCHED THEN UPDATE SET $this->dataCol = :data, $this->timeCol = :time;";
+            case 'sqlite':
+                return "INSERT OR REPLACE INTO $this->table ($this->idCol, $this->dataCol, $this->timeCol) VALUES (:id, :data, :time)";
+        }
+    }
+
+    /**
+     * Return a PDO instance
+     *
+     * @return \PDO
+     */
+    protected function getConnection()
+    {
+        return $this->pdo;
+    }
+}
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcacheSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcacheSessionHandler.php
index caff49a..183093f 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcacheSessionHandler.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcacheSessionHandler.php
@@ -24,7 +24,7 @@ class MemcacheSessionHandler implements \SessionHandlerInterface
     private $memcache;
 
     /**
-     * @var int     Time to live in seconds
+     * @var int Time to live in seconds
      */
     private $ttl;
 
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php
index d623ba9..1f9d97e 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MemcachedSessionHandler.php
@@ -29,7 +29,7 @@ class MemcachedSessionHandler implements \SessionHandlerInterface
     private $memcached;
 
     /**
-     * @var int     Time to live in seconds
+     * @var int Time to live in seconds
      */
     private $ttl;
 
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.php
index eb35e5a..27e31c3 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
 
 /**
- * MongoDB session handler
+ * MongoDB session handler.
  *
  * @author Markus Bachmann <markus.bachmann@bachi.biz>
  */
@@ -167,7 +167,7 @@ public function read($sessionId)
     }
 
     /**
-     * Return a "MongoCollection" instance
+     * Return a "MongoCollection" instance.
      *
      * @return \MongoCollection
      */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeSessionHandler.php
index 0319e0f..95d5cdb 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeSessionHandler.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeSessionHandler.php
@@ -11,12 +11,8 @@
 
 namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
 
-/**
- * Adds SessionHandler functionality if available.
- *
- * @see http://php.net/sessionhandler
- */
-
+// Adds SessionHandler functionality if available.
+// @see http://php.net/sessionhandler
 if (PHP_VERSION_ID >= 50400) {
     class NativeSessionHandler extends \SessionHandler
     {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php
index d373442..ec7b267 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MetadataBag.php
@@ -56,8 +56,8 @@ class MetadataBag implements SessionBagInterface
     /**
      * Constructor.
      *
-     * @param string  $storageKey      The key used to store bag in the session.
-     * @param int     $updateThreshold The time to wait between two UPDATED updates
+     * @param string $storageKey      The key used to store bag in the session.
+     * @param int    $updateThreshold The time to wait between two UPDATED updates
      */
     public function __construct($storageKey = '_sf2_meta', $updateThreshold = 0)
     {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php
index 0b4ee30..490fae4 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/MockArraySessionStorage.php
@@ -89,7 +89,7 @@ public function setSessionData(array $array)
      */
     public function start()
     {
-        if ($this->started && !$this->closed) {
+        if ($this->started) {
             return true;
         }
 
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php
index b176650..a5bdbe9 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php
@@ -25,7 +25,7 @@
 class NativeSessionStorage implements SessionStorageInterface
 {
     /**
-     * Array of SessionBagInterface
+     * Array of SessionBagInterface.
      *
      * @var SessionBagInterface[]
      */
@@ -58,6 +58,7 @@ class NativeSessionStorage implements SessionStorageInterface
      * want to override this constructor entirely.
      *
      * List of options for $options array with their defaults.
+     *
      * @see http://php.net/session.configuration for options
      * but we omit 'session.' from the beginning of the keys for convenience.
      *
@@ -126,7 +127,7 @@ public function getSaveHandler()
      */
     public function start()
     {
-        if ($this->started && !$this->closed) {
+        if ($this->started) {
             return true;
         }
 
@@ -134,7 +135,7 @@ public function start()
             throw new \RuntimeException('Failed to start the session: already started by PHP.');
         }
 
-        if (PHP_VERSION_ID < 50400 && isset($_SESSION) && session_id()) {
+        if (PHP_VERSION_ID < 50400 && !$this->closed && isset($_SESSION) && session_id()) {
             // not 100% fool-proof, but is the most reliable way to determine if a session is active in PHP 5.3
             throw new \RuntimeException('Failed to start the session: already started by PHP ($_SESSION is set).');
         }
@@ -162,10 +163,6 @@ public function start()
      */
     public function getId()
     {
-        if (!$this->started && !$this->closed) {
-            return ''; // returning empty is consistent with session_id() behaviour
-        }
-
         return $this->saveHandler->getId();
     }
 
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/PhpBridgeSessionStorage.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/PhpBridgeSessionStorage.php
index 6b5ad65..ced706f 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/PhpBridgeSessionStorage.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/PhpBridgeSessionStorage.php
@@ -15,7 +15,7 @@
 use Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeSessionHandler;
 
 /**
- * Allows session to be started by PHP and managed by Symfony
+ * Allows session to be started by PHP and managed by Symfony.
  *
  * @author Drak <drak@zikula.org>
  */
@@ -38,7 +38,7 @@ public function __construct($handler = null, MetadataBag $metaBag = null)
      */
     public function start()
     {
-        if ($this->started && !$this->closed) {
+        if ($this->started) {
             return true;
         }
 
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/SessionStorageInterface.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/SessionStorageInterface.php
index 236fca5..5dd309c 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/SessionStorageInterface.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/SessionStorageInterface.php
@@ -42,7 +42,7 @@ public function start();
     public function isStarted();
 
     /**
-     * Returns the session ID
+     * Returns the session ID.
      *
      * @return string The session ID or empty.
      *
@@ -51,7 +51,7 @@ public function isStarted();
     public function getId();
 
     /**
-     * Sets the session ID
+     * Sets the session ID.
      *
      * @param string $id
      *
@@ -60,7 +60,7 @@ public function getId();
     public function setId($id);
 
     /**
-     * Returns the session name
+     * Returns the session name.
      *
      * @return mixed The session name.
      *
@@ -69,7 +69,7 @@ public function setId($id);
     public function getName();
 
     /**
-     * Sets the session name
+     * Sets the session name.
      *
      * @param string $name
      *
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php
index da8ad77..5b02c26 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/BinaryFileResponseTest.php
@@ -77,7 +77,6 @@ public function testRequests($requestRange, $offset, $length, $responseRange)
         $response->sendContent();
 
         $this->assertEquals(206, $response->getStatusCode());
-        $this->assertEquals('binary', $response->headers->get('Content-Transfer-Encoding'));
         $this->assertEquals($responseRange, $response->headers->get('Content-Range'));
     }
 
@@ -113,7 +112,6 @@ public function testFullFileRequests($requestRange)
         $response->sendContent();
 
         $this->assertEquals(200, $response->getStatusCode());
-        $this->assertEquals('binary', $response->headers->get('Content-Transfer-Encoding'));
     }
 
     public function provideFullFileRanges()
@@ -144,7 +142,6 @@ public function testInvalidRequests($requestRange)
         $response->sendContent();
 
         $this->assertEquals(416, $response->getStatusCode());
-        $this->assertEquals('binary', $response->headers->get('Content-Transfer-Encoding'));
         #$this->assertEquals('', $response->headers->get('Content-Range'));
     }
 
@@ -211,6 +208,25 @@ public function testDeleteFileAfterSend()
         $this->assertFileNotExists($path);
     }
 
+    public function testAcceptRangeOnUnsafeMethods()
+    {
+        $request = Request::create('/', 'POST');
+        $response = BinaryFileResponse::create(__DIR__.'/File/Fixtures/test.gif');
+        $response->prepare($request);
+
+        $this->assertEquals('none', $response->headers->get('Accept-Ranges'));
+    }
+
+    public function testAcceptRangeNotOverriden()
+    {
+        $request = Request::create('/', 'POST');
+        $response = BinaryFileResponse::create(__DIR__.'/File/Fixtures/test.gif');
+        $response->headers->set('Accept-Ranges', 'foo');
+        $response->prepare($request);
+
+        $this->assertEquals('foo', $response->headers->get('Accept-Ranges'));
+    }
+
     public function getSampleXAccelMappings()
     {
         return array(
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/CookieTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/CookieTest.php
index def1c7a..cfd238e 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/CookieTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/CookieTest.php
@@ -14,7 +14,7 @@
 use Symfony\Component\HttpFoundation\Cookie;
 
 /**
- * CookieTest
+ * CookieTest.
  *
  * @author John Kary <john@johnkary.net>
  * @author Hugo Hamon <hugo.hamon@sensio.com>
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/MimeType/MimeTypeTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/MimeType/MimeTypeTest.php
index 1078fc2..81c5812 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/MimeType/MimeTypeTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/File/MimeType/MimeTypeTest.php
@@ -11,11 +11,8 @@
 
 namespace Symfony\Component\HttpFoundation\Tests\File\MimeType;
 
-use Symfony\Component\HttpFoundation\File\File;
 use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser;
 use Symfony\Component\HttpFoundation\File\MimeType\FileBinaryMimeTypeGuesser;
-use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException;
-use Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException;
 
 class MimeTypeTest extends \PHPUnit_Framework_TestCase
 {
@@ -74,7 +71,7 @@ public function testGuessWithIncorrectPath()
 
     public function testGuessWithNonReadablePath()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('Can not verify chmod operations on Windows');
         }
 
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestTest.php
index 08f7cd4..cf2ade4 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/RequestTest.php
@@ -223,6 +223,21 @@ public function testCreate()
         $request = Request::create('http://test.com/?foo');
         $this->assertEquals('/?foo', $request->getRequestUri());
         $this->assertEquals(array('foo' => ''), $request->query->all());
+
+        ## assume rewrite rule: (.*) --> app/app.php ; app/ is a symlink to a symfony web/ directory
+        $request = Request::create('http://test.com/apparthotel-1234', 'GET', array(), array(), array(),
+            array(
+                'DOCUMENT_ROOT' => '/var/www/www.test.com',
+                'SCRIPT_FILENAME' => '/var/www/www.test.com/app/app.php',
+                'SCRIPT_NAME' => '/app/app.php',
+                'PHP_SELF' => '/app/app.php/apparthotel-1234',
+            ));
+        $this->assertEquals('http://test.com/apparthotel-1234', $request->getUri());
+        $this->assertEquals('/apparthotel-1234', $request->getPathInfo());
+        $this->assertEquals('', $request->getQueryString());
+        $this->assertEquals(80, $request->getPort());
+        $this->assertEquals('test.com', $request->getHttpHost());
+        $this->assertFalse($request->isSecure());
     }
 
     /**
@@ -885,6 +900,9 @@ public function testGetClientIpsProvider()
             array(array('3620:0:1cfe:face:b00c::3'), '1620:0:1cfe:face:b00c::3', '3620:0:1cfe:face:b00c::3,2620:0:1cfe:face:b00c::3', array('1620:0:1cfe:face:b00c::3', '2620:0:1cfe:face:b00c::3')),
             // multiple forwarded for with remote IPv4 addr and some reverse proxies trusted but in the middle
             array(array('2620:0:1cfe:face:b00c::3', '4620:0:1cfe:face:b00c::3'), '1620:0:1cfe:face:b00c::3', '4620:0:1cfe:face:b00c::3,3620:0:1cfe:face:b00c::3,2620:0:1cfe:face:b00c::3', array('1620:0:1cfe:face:b00c::3', '3620:0:1cfe:face:b00c::3')),
+
+            // client IP with port
+            array(array('88.88.88.88'), '127.0.0.1', '88.88.88.88:12345, 127.0.0.1', array('127.0.0.1')),
         );
     }
 
@@ -1324,7 +1342,7 @@ public function getBaseUrlData()
     {
         return array(
             array(
-                '/foo%20bar',
+                '/foo%20bar/',
                 array(
                     'SCRIPT_FILENAME' => '/home/John Doe/public_html/foo bar/app.php',
                     'SCRIPT_NAME' => '/foo bar/app.php',
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ServerBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ServerBagTest.php
index 4cded7f..7bc8f02 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ServerBagTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/ServerBagTest.php
@@ -14,7 +14,7 @@
 use Symfony\Component\HttpFoundation\ServerBag;
 
 /**
- * ServerBagTest
+ * ServerBagTest.
  *
  * @author Bulat Shakirzyanov <mallluhuct@gmail.com>
  */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Attribute/AttributeBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Attribute/AttributeBagTest.php
index 2d1d77c..d291590 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Attribute/AttributeBagTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Attribute/AttributeBagTest.php
@@ -14,7 +14,7 @@
 use Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag;
 
 /**
- * Tests AttributeBag
+ * Tests AttributeBag.
  *
  * @author Drak <drak@zikula.org>
  */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php
index 7091068..b8261da 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php
@@ -14,7 +14,7 @@
 use Symfony\Component\HttpFoundation\Session\Attribute\NamespacedAttributeBag;
 
 /**
- * Tests NamespacedAttributeBag
+ * Tests NamespacedAttributeBag.
  *
  * @author Drak <drak@zikula.org>
  */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Flash/AutoExpireFlashBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Flash/AutoExpireFlashBagTest.php
index 5d44b78..988fa5f 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Flash/AutoExpireFlashBagTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Flash/AutoExpireFlashBagTest.php
@@ -14,7 +14,7 @@
 use Symfony\Component\HttpFoundation\Session\Flash\AutoExpireFlashBag as FlashBag;
 
 /**
- * AutoExpireFlashBagTest
+ * AutoExpireFlashBagTest.
  *
  * @author Drak <drak@zikula.org>
  */
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php
index 5b9d32a..6e58296 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php
@@ -12,17 +12,16 @@
 namespace Symfony\Component\HttpFoundation\Tests\Session\Flash;
 
 use Symfony\Component\HttpFoundation\Session\Flash\FlashBag;
-use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface;
 
 /**
- * FlashBagTest
+ * FlashBagTest.
  *
  * @author Drak <drak@zikula.org>
  */
 class FlashBagTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var \Symfony\Component\HttpFoundation\SessionFlash\FlashBagInterface
+     * @var \Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface
      */
     private $bag;
 
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/SessionTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/SessionTest.php
index c8a0183..4e1667c 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/SessionTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/SessionTest.php
@@ -17,7 +17,7 @@
 use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
 
 /**
- * SessionTest
+ * SessionTest.
  *
  * @author Fabien Potencier <fabien@symfony.com>
  * @author Robert Schönthal <seroscho@googlemail.com>
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/LegacyPdoSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/LegacyPdoSessionHandlerTest.php
new file mode 100644
index 0000000..2924501
--- /dev/null
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/LegacyPdoSessionHandlerTest.php
@@ -0,0 +1,113 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
+
+use Symfony\Component\HttpFoundation\Session\Storage\Handler\LegacyPdoSessionHandler;
+
+class LegacyPdoSessionHandlerTest extends \PHPUnit_Framework_TestCase
+{
+    private $pdo;
+
+    protected function setUp()
+    {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
+        if (!class_exists('PDO') || !in_array('sqlite', \PDO::getAvailableDrivers())) {
+            $this->markTestSkipped('This test requires SQLite support in your environment');
+        }
+
+        $this->pdo = new \PDO('sqlite::memory:');
+        $this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
+        $sql = 'CREATE TABLE sessions (sess_id VARCHAR(128) PRIMARY KEY, sess_data TEXT, sess_time INTEGER)';
+        $this->pdo->exec($sql);
+    }
+
+    public function testIncompleteOptions()
+    {
+        $this->setExpectedException('InvalidArgumentException');
+        $storage = new LegacyPdoSessionHandler($this->pdo, array());
+    }
+
+    public function testWrongPdoErrMode()
+    {
+        $pdo = new \PDO('sqlite::memory:');
+        $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_SILENT);
+        $pdo->exec('CREATE TABLE sessions (sess_id VARCHAR(128) PRIMARY KEY, sess_data TEXT, sess_time INTEGER)');
+
+        $this->setExpectedException('InvalidArgumentException');
+        $storage = new LegacyPdoSessionHandler($pdo, array('db_table' => 'sessions'));
+    }
+
+    public function testWrongTableOptionsWrite()
+    {
+        $storage = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'bad_name'));
+        $this->setExpectedException('RuntimeException');
+        $storage->write('foo', 'bar');
+    }
+
+    public function testWrongTableOptionsRead()
+    {
+        $storage = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'bad_name'));
+        $this->setExpectedException('RuntimeException');
+        $storage->read('foo', 'bar');
+    }
+
+    public function testWriteRead()
+    {
+        $storage = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'sessions'));
+        $storage->write('foo', 'bar');
+        $this->assertEquals('bar', $storage->read('foo'), 'written value can be read back correctly');
+    }
+
+    public function testMultipleInstances()
+    {
+        $storage1 = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'sessions'));
+        $storage1->write('foo', 'bar');
+
+        $storage2 = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'sessions'));
+        $this->assertEquals('bar', $storage2->read('foo'), 'values persist between instances');
+    }
+
+    public function testSessionDestroy()
+    {
+        $storage = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'sessions'));
+        $storage->write('foo', 'bar');
+        $this->assertCount(1, $this->pdo->query('SELECT * FROM sessions')->fetchAll());
+
+        $storage->destroy('foo');
+
+        $this->assertCount(0, $this->pdo->query('SELECT * FROM sessions')->fetchAll());
+    }
+
+    public function testSessionGC()
+    {
+        $storage = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'sessions'));
+
+        $storage->write('foo', 'bar');
+        $storage->write('baz', 'bar');
+
+        $this->assertCount(2, $this->pdo->query('SELECT * FROM sessions')->fetchAll());
+
+        $storage->gc(-1);
+        $this->assertCount(0, $this->pdo->query('SELECT * FROM sessions')->fetchAll());
+    }
+
+    public function testGetConnection()
+    {
+        $storage = new LegacyPdoSessionHandler($this->pdo, array('db_table' => 'sessions'), array());
+
+        $method = new \ReflectionMethod($storage, 'getConnection');
+        $method->setAccessible(true);
+
+        $this->assertInstanceOf('\PDO', $method->invoke($storage));
+    }
+}
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php
index 3f96bdf..ab848b6 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php
@@ -20,6 +20,7 @@
  * @author Drak <drak@zikula.org>
  *
  * @runTestsInSeparateProcesses
+ * @preserveGlobalState disabled
  */
 class NativeFileSessionHandlerTest extends \PHPUnit_Framework_TestCase
 {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeSessionHandlerTest.php
index 8fba843..3437cf0 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeSessionHandlerTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeSessionHandlerTest.php
@@ -19,6 +19,7 @@
  * @author Drak <drak@zikula.org>
  *
  * @runTestsInSeparateProcesses
+ * @preserveGlobalState disabled
  */
 class NativeSessionHandlerTest extends \PHPUnit_Framework_TestCase
 {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php
index 371ab6f..35823d6 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NullSessionHandlerTest.php
@@ -21,6 +21,7 @@
  * @author Drak <drak@zikula.org>
  *
  * @runTestsInSeparateProcesses
+ * @preserveGlobalState disabled
  */
 class NullSessionHandlerTest extends \PHPUnit_Framework_TestCase
 {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php
index 329c090..54321ea 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/MockFileSessionStorageTest.php
@@ -28,7 +28,7 @@ class MockFileSessionStorageTest extends \PHPUnit_Framework_TestCase
     private $sessionDir;
 
     /**
-     * @var FileMockSessionStorage
+     * @var MockFileSessionStorage
      */
     protected $storage;
 
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php
index 1e79812..e2146d8 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php
@@ -27,6 +27,7 @@
  * These tests require separate processes.
  *
  * @runTestsInSeparateProcesses
+ * @preserveGlobalState disabled
  */
 class NativeSessionStorageTest extends \PHPUnit_Framework_TestCase
 {
@@ -34,8 +35,8 @@ class NativeSessionStorageTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
-        ini_set('session.save_handler', 'files');
-        ini_set('session.save_path', $this->savePath = sys_get_temp_dir().'/sf2test');
+        $this->iniSet('session.save_handler', 'files');
+        $this->iniSet('session.save_path', $this->savePath = sys_get_temp_dir().'/sf2test');
         if (!is_dir($this->savePath)) {
             mkdir($this->savePath);
         }
@@ -85,13 +86,15 @@ public function testRegisterBagException()
     public function testGetId()
     {
         $storage = $this->getStorage();
-        $this->assertEquals('', $storage->getId());
+        $this->assertSame('', $storage->getId(), 'Empty ID before starting session');
 
         $storage->start();
-        $this->assertNotEquals('', $storage->getId());
+        $id = $storage->getId();
+        $this->assertInternalType('string', $id);
+        $this->assertNotSame('', $id);
 
         $storage->save();
-        $this->assertNotEquals('', $storage->getId());
+        $this->assertSame($id, $storage->getId(), 'ID stays after saving session');
     }
 
     public function testRegenerate()
@@ -118,7 +121,7 @@ public function testRegenerateDestroy()
 
     public function testDefaultSessionCacheLimiter()
     {
-        ini_set('session.cache_limiter', 'nocache');
+        $this->iniSet('session.cache_limiter', 'nocache');
 
         $storage = new NativeSessionStorage();
         $this->assertEquals('', ini_get('session.cache_limiter'));
@@ -126,7 +129,7 @@ public function testDefaultSessionCacheLimiter()
 
     public function testExplicitSessionCacheLimiter()
     {
-        ini_set('session.cache_limiter', 'nocache');
+        $this->iniSet('session.cache_limiter', 'nocache');
 
         $storage = new NativeSessionStorage(array('cache_limiter' => 'public'));
         $this->assertEquals('public', ini_get('session.cache_limiter'));
@@ -168,7 +171,7 @@ public function testSetSaveHandler53()
             $this->markTestSkipped('Test skipped, for PHP 5.3 only.');
         }
 
-        ini_set('session.save_handler', 'files');
+        $this->iniSet('session.save_handler', 'files');
         $storage = $this->getStorage();
         $storage->setSaveHandler();
         $this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Storage\Proxy\NativeProxy', $storage->getSaveHandler());
@@ -190,7 +193,7 @@ public function testSetSaveHandler54()
             $this->markTestSkipped('Test skipped, for PHP 5.4 only.');
         }
 
-        ini_set('session.save_handler', 'files');
+        $this->iniSet('session.save_handler', 'files');
         $storage = $this->getStorage();
         $storage->setSaveHandler();
         $this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy', $storage->getSaveHandler());
@@ -209,18 +212,20 @@ public function testSetSaveHandler54()
     /**
      * @expectedException \RuntimeException
      */
-    public function testStartedOutside53()
+    public function testStartedOutside()
     {
-        if (PHP_VERSION_ID >= 50400) {
-            $this->markTestSkipped('Test skipped, for PHP 5.3 only.');
-        }
-
         $storage = $this->getStorage();
 
         $this->assertFalse(isset($_SESSION));
+        $this->assertFalse($storage->getSaveHandler()->isActive());
+        $this->assertFalse($storage->isStarted());
 
         session_start();
         $this->assertTrue(isset($_SESSION));
+        if (PHP_VERSION_ID >= 50400) {
+            // this only works in PHP >= 5.4 where session_status is available
+            $this->assertTrue($storage->getSaveHandler()->isActive());
+        }
         // PHP session might have started, but the storage driver has not, so false is correct here
         $this->assertFalse($storage->isStarted());
 
@@ -229,29 +234,15 @@ public function testStartedOutside53()
         $storage->start();
     }
 
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testCanStartOutside54()
+    public function testRestart()
     {
-        if (PHP_VERSION_ID < 50400) {
-            $this->markTestSkipped('Test skipped, for PHP 5.4 only.');
-        }
-
         $storage = $this->getStorage();
-
-        $this->assertFalse(isset($_SESSION));
-        $this->assertFalse($storage->getSaveHandler()->isActive());
-        $this->assertFalse($storage->isStarted());
-
-        session_start();
-        $this->assertTrue(isset($_SESSION));
-        $this->assertTrue($storage->getSaveHandler()->isActive());
-        // PHP session might have started, but the storage driver has not, so false is correct here
-        $this->assertFalse($storage->isStarted());
-
-        $key = $storage->getMetadataBag()->getStorageKey();
-        $this->assertFalse(isset($_SESSION[$key]));
         $storage->start();
+        $id = $storage->getId();
+        $storage->getBag('attributes')->set('lucky', 7);
+        $storage->save();
+        $storage->start();
+        $this->assertSame($id, $storage->getId(), 'Same session ID after restarting');
+        $this->assertSame(7, $storage->getBag('attributes')->get('lucky'), 'Data still available');
     }
 }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php
index e712632..0acc445 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php
@@ -22,6 +22,7 @@
  * These tests require separate processes.
  *
  * @runTestsInSeparateProcesses
+ * @preserveGlobalState disabled
  */
 class PhpBridgeSessionStorageTest extends \PHPUnit_Framework_TestCase
 {
@@ -29,8 +30,8 @@ class PhpBridgeSessionStorageTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
-        ini_set('session.save_handler', 'files');
-        ini_set('session.save_path', $this->savePath = sys_get_temp_dir().'/sf2test');
+        $this->iniSet('session.save_handler', 'files');
+        $this->iniSet('session.save_path', $this->savePath = sys_get_temp_dir().'/sf2test');
         if (!is_dir($this->savePath)) {
             mkdir($this->savePath);
         }
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php
index 1df28cf..ee476a8 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/AbstractProxyTest.php
@@ -96,6 +96,7 @@ public function testIsActivePhp53()
 
     /**
      * @runInSeparateProcess
+     * @preserveGlobalState disabled
      */
     public function testIsActivePhp54()
     {
@@ -122,6 +123,7 @@ public function testSetActivePhp53()
 
     /**
      * @runInSeparateProcess
+     * @preserveGlobalState disabled
      * @expectedException \LogicException
      */
     public function testSetActivePhp54()
@@ -135,6 +137,7 @@ public function testSetActivePhp54()
 
     /**
      * @runInSeparateProcess
+     * @preserveGlobalState disabled
      */
     public function testName()
     {
@@ -159,6 +162,7 @@ public function testNameExceptionPhp53()
 
     /**
      * @runInSeparateProcess
+     * @preserveGlobalState disabled
      * @expectedException \LogicException
      */
     public function testNameExceptionPhp54()
@@ -173,6 +177,7 @@ public function testNameExceptionPhp54()
 
     /**
      * @runInSeparateProcess
+     * @preserveGlobalState disabled
      */
     public function testId()
     {
@@ -197,6 +202,7 @@ public function testIdExceptionPhp53()
 
     /**
      * @runInSeparateProcess
+     * @preserveGlobalState disabled
      * @expectedException \LogicException
      */
     public function testIdExceptionPhp54()
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php
index be9b110..d2775a8 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Proxy/SessionHandlerProxyTest.php
@@ -19,6 +19,7 @@
  * @author Drak <drak@zikula.org>
  *
  * @runTestsInSeparateProcesses
+ * @preserveGlobalState disabled
  */
 class SessionHandlerProxyTest extends \PHPUnit_Framework_TestCase
 {
diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/phpunit.xml.dist b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/phpunit.xml.dist
index bbc5dc6..1c67393 100644
--- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/phpunit.xml.dist
+++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/phpunit.xml.dist
@@ -6,6 +6,10 @@
          colors="true"
          bootstrap="vendor/autoload.php"
 >
+    <php>
+        <!-- Silence E_USER_DEPRECATED (-16385 == -1 & ~E_USER_DEPRECATED) -->
+        <ini name="error_reporting" value="-16385"/>
+    </php>
     <testsuites>
         <testsuite name="Symfony HttpFoundation Component Test Suite">
             <directory>./Tests/</directory>
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CHANGELOG.md b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CHANGELOG.md
index ed7f603..39d35f3 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CHANGELOG.md
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CHANGELOG.md
@@ -23,7 +23,7 @@ CHANGELOG
 
  * [BC BREAK] renamed `Symfony\Component\HttpKernel\EventListener\DeprecationLoggerListener` to `Symfony\Component\HttpKernel\EventListener\ErrorsLoggerListener` and changed its constructor
  * deprecated `Symfony\Component\HttpKernel\Debug\ErrorHandler`, `Symfony\Component\HttpKernel\Debug\ExceptionHandler`,
-   `Symfony\Component\HttpKernel\Exception\FatalErrorException`, and `Symfony\Component\HttpKernel\Exception\FlattenException`
+   `Symfony\Component\HttpKernel\Exception\FatalErrorException` and `Symfony\Component\HttpKernel\Exception\FlattenException`
  * deprecated `Symfony\Component\HttpKernel\Kernel::init()``
  * added the possibility to specify an id an extra attributes to hinclude tags
  * added the collect of data if a controller is a Closure in the Request collector
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheClearer/ChainCacheClearer.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheClearer/ChainCacheClearer.php
index 199a4be..81c43b6 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheClearer/ChainCacheClearer.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/CacheClearer/ChainCacheClearer.php
@@ -19,7 +19,7 @@
 class ChainCacheClearer implements CacheClearerInterface
 {
     /**
-     * @var array $clearers
+     * @var array
      */
     protected $clearers;
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Client.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Client.php
index dfa30b9..593facb 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Client.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Client.php
@@ -102,10 +102,13 @@ protected function getScript($request)
         $r = new \ReflectionClass('\\Symfony\\Component\\ClassLoader\\ClassLoader');
         $requirePath = str_replace("'", "\\'", $r->getFileName());
         $symfonyPath = str_replace("'", "\\'", realpath(__DIR__.'/../../..'));
+        $errorReporting = error_reporting();
 
         $code = <<<EOF
 <?php
 
+error_reporting($errorReporting);
+
 require_once '$requirePath';
 
 \$loader = new Symfony\Component\ClassLoader\ClassLoader();
@@ -159,7 +162,7 @@ protected function filterRequest(DomRequest $request)
      * If the size of a file is greater than the allowed size (from php.ini) then
      * an invalid UploadedFile is returned with an error set to UPLOAD_ERR_INI_SIZE.
      *
-     * @see Symfony\Component\HttpFoundation\File\UploadedFile
+     * @see UploadedFile
      *
      * @param array $files An array of files
      *
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Config/EnvParametersResource.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Config/EnvParametersResource.php
new file mode 100644
index 0000000..5f54450
--- /dev/null
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Config/EnvParametersResource.php
@@ -0,0 +1,95 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpKernel\Config;
+
+use Symfony\Component\Config\Resource\ResourceInterface;
+
+/**
+ * EnvParametersResource represents resources stored in prefixed environment variables.
+ *
+ * @author Chris Wilkinson <chriswilkinson84@gmail.com>
+ */
+class EnvParametersResource implements ResourceInterface, \Serializable
+{
+    /**
+     * @var string
+     */
+    private $prefix;
+
+    /**
+     * @var string
+     */
+    private $variables;
+
+    /**
+     * Constructor.
+     *
+     * @param string $prefix
+     */
+    public function __construct($prefix)
+    {
+        $this->prefix = $prefix;
+        $this->variables = $this->findVariables();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function __toString()
+    {
+        return serialize($this->getResource());
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getResource()
+    {
+        return array('prefix' => $this->prefix, 'variables' => $this->variables);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isFresh($timestamp)
+    {
+        return $this->findVariables() === $this->variables;
+    }
+
+    public function serialize()
+    {
+        return serialize(array('prefix' => $this->prefix, 'variables' => $this->variables));
+    }
+
+    public function unserialize($serialized)
+    {
+        $unserialized = unserialize($serialized);
+
+        $this->prefix = $unserialized['prefix'];
+        $this->variables = $unserialized['variables'];
+    }
+
+    private function findVariables()
+    {
+        $variables = array();
+
+        foreach ($_SERVER as $key => $value) {
+            if (0 === strpos($key, $this->prefix)) {
+                $variables[$key] = $value;
+            }
+        }
+
+        ksort($variables);
+
+        return $variables;
+    }
+}
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerReference.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerReference.php
index 22d6cd3..3d1592e 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerReference.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Controller/ControllerReference.php
@@ -11,6 +11,8 @@
 
 namespace Symfony\Component\HttpKernel\Controller;
 
+use Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface;
+
 /**
  * Acts as a marker and a data holder for a Controller.
  *
@@ -20,8 +22,7 @@
  *
  * @author Fabien Potencier <fabien@symfony.com>
  *
- * @see Symfony\Component\HttpKernel\FragmentRenderer
- * @see Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface
+ * @see FragmentRendererInterface
  */
 class ControllerReference
 {
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php
index a500fb9..f58027e 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ConfigDataCollector.php
@@ -181,7 +181,7 @@ public function hasApc()
     }
 
     /**
-     * Returns true if Zend OPcache is enabled
+     * Returns true if Zend OPcache is enabled.
      *
      * @return bool true if Zend OPcache is enabled, false otherwise
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php
index 6099097..05de721 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php
@@ -15,6 +15,7 @@
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\Stopwatch\Stopwatch;
 use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Cloner\VarCloner;
 use Symfony\Component\VarDumper\Dumper\CliDumper;
 use Symfony\Component\VarDumper\Dumper\HtmlDumper;
 use Symfony\Component\VarDumper\Dumper\DataDumperInterface;
@@ -31,11 +32,13 @@ class DumpDataCollector extends DataCollector implements DataDumperInterface
     private $clonesCount = 0;
     private $clonesIndex = 0;
     private $rootRefs;
+    private $charset;
 
-    public function __construct(Stopwatch $stopwatch = null, $fileLinkFormat = null)
+    public function __construct(Stopwatch $stopwatch = null, $fileLinkFormat = null, $charset = null)
     {
         $this->stopwatch = $stopwatch;
         $this->fileLinkFormat = $fileLinkFormat ?: ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format');
+        $this->charset = $charset ?: ini_get('php.output_encoding') ?: ini_get('default_charset') ?: 'UTF-8';
 
         // All clones share these properties by reference:
         $this->rootRefs = array(
@@ -98,7 +101,7 @@ public function dump(Data $data)
                             $fileExcerpt = array();
 
                             for ($i = max($line - 3, 1), $max = min($line + 3, count($src)); $i <= $max; ++$i) {
-                                $fileExcerpt[] = '<li'.($i === $line ? ' class="selected"' : '').'><code>'.htmlspecialchars($src[$i - 1]).'</code></li>';
+                                $fileExcerpt[] = '<li'.($i === $line ? ' class="selected"' : '').'><code>'.$this->htmlEncode($src[$i - 1]).'</code></li>';
                             }
 
                             $fileExcerpt = '<ol start="'.max($line - 3, 1).'">'.implode("\n", $fileExcerpt).'</ol>';
@@ -158,7 +161,7 @@ public function getDumps($format, $maxDepthLimit = -1, $maxItemsPerDepth = -1)
         $data = fopen('php://memory', 'r+b');
 
         if ('html' === $format) {
-            $dumper = new HtmlDumper($data);
+            $dumper = new HtmlDumper($data, $this->charset);
         } else {
             throw new \InvalidArgumentException(sprintf('Invalid dump format: %s', $format));
         }
@@ -195,10 +198,9 @@ public function __destruct()
             }
 
             if ('cli' !== PHP_SAPI && stripos($h[$i], 'html')) {
-                echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
-                $dumper = new HtmlDumper('php://output');
+                $dumper = new HtmlDumper('php://output', $this->charset);
             } else {
-                $dumper = new CliDumper('php://output');
+                $dumper = new CliDumper('php://output', $this->charset);
                 $dumper->setColors(false);
             }
 
@@ -206,8 +208,8 @@ public function __destruct()
                 $this->data[$i] = null;
 
                 if ($dumper instanceof HtmlDumper) {
-                    $dump['name'] = htmlspecialchars($dump['name'], ENT_QUOTES, 'UTF-8');
-                    $dump['file'] = htmlspecialchars($dump['file'], ENT_QUOTES, 'UTF-8');
+                    $dump['name'] = $this->htmlEncode($dump['name']);
+                    $dump['file'] = $this->htmlEncode($dump['file']);
                     if ('' !== $dump['file']) {
                         if ($this->fileLinkFormat) {
                             $link = strtr($this->fileLinkFormat, array('%f' => $dump['file'], '%l' => $dump['line']));
@@ -227,4 +229,18 @@ public function __destruct()
             $this->dataCount = 0;
         }
     }
+
+    private function htmlEncode($s)
+    {
+        $html = '';
+
+        $dumper = new HtmlDumper(function ($line) use (&$html) {$html .= $line;}, $this->charset);
+        $dumper->setDumpHeader('');
+        $dumper->setDumpBoundaries('', '');
+
+        $cloner = new VarCloner();
+        $dumper->dump($cloner->cloneVar($s));
+
+        return substr(strip_tags($html), 1, -1);
+    }
 }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ExceptionDataCollector.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ExceptionDataCollector.php
index c9cf964..9fe8264 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ExceptionDataCollector.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/ExceptionDataCollector.php
@@ -11,9 +11,9 @@
 
 namespace Symfony\Component\HttpKernel\DataCollector;
 
+use Symfony\Component\Debug\Exception\FlattenException;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\Exception\FlattenException;
 
 /**
  * ExceptionDataCollector.
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/Util/ValueExporter.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/Util/ValueExporter.php
index 1d78fb5..20d6074 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/Util/ValueExporter.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/Util/ValueExporter.php
@@ -19,9 +19,9 @@ class ValueExporter
     /**
      * Converts a PHP value to a string.
      *
-     * @param mixed   $value The PHP value
-     * @param int     $depth only for internal usage
-     * @param bool    $deep  only for internal usage
+     * @param mixed $value The PHP value
+     * @param int   $depth only for internal usage
+     * @param bool  $deep  only for internal usage
      *
      * @return string The string representation of the given value
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FilterControllerEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FilterControllerEvent.php
index 2b4860c..a86bc9b 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FilterControllerEvent.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FilterControllerEvent.php
@@ -15,7 +15,7 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Allows filtering of a controller callable
+ * Allows filtering of a controller callable.
  *
  * You can call getController() to retrieve the current controller. With
  * setController() you can set a new controller that is used in the processing
@@ -30,7 +30,8 @@
 class FilterControllerEvent extends KernelEvent
 {
     /**
-     * The current controller
+     * The current controller.
+     *
      * @var callable
      */
     private $controller;
@@ -43,7 +44,7 @@ public function __construct(HttpKernelInterface $kernel, $controller, Request $r
     }
 
     /**
-     * Returns the current controller
+     * Returns the current controller.
      *
      * @return callable
      *
@@ -55,7 +56,7 @@ public function getController()
     }
 
     /**
-     * Sets a new controller
+     * Sets a new controller.
      *
      * @param callable $controller
      *
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FilterResponseEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FilterResponseEvent.php
index 8de76a5..fd88f87 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FilterResponseEvent.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FilterResponseEvent.php
@@ -16,7 +16,7 @@
 use Symfony\Component\HttpFoundation\Response;
 
 /**
- * Allows to filter a Response object
+ * Allows to filter a Response object.
  *
  * You can call getResponse() to retrieve the current response. With
  * setResponse() you can set a new response that will be returned to the
@@ -29,7 +29,8 @@
 class FilterResponseEvent extends KernelEvent
 {
     /**
-     * The current response object
+     * The current response object.
+     *
      * @var Response
      */
     private $response;
@@ -42,7 +43,7 @@ public function __construct(HttpKernelInterface $kernel, Request $request, $requ
     }
 
     /**
-     * Returns the current response object
+     * Returns the current response object.
      *
      * @return Response
      *
@@ -54,7 +55,7 @@ public function getResponse()
     }
 
     /**
-     * Sets a new response object
+     * Sets a new response object.
      *
      * @param Response $response
      *
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseEvent.php
index a2b686e..b9310fa 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseEvent.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseEvent.php
@@ -14,7 +14,7 @@
 use Symfony\Component\HttpFoundation\Response;
 
 /**
- * Allows to create a response for a request
+ * Allows to create a response for a request.
  *
  * Call setResponse() to set the response that will be returned for the
  * current request. The propagation of this event is stopped as soon as a
@@ -27,13 +27,14 @@
 class GetResponseEvent extends KernelEvent
 {
     /**
-     * The response object
+     * The response object.
+     *
      * @var Response
      */
     private $response;
 
     /**
-     * Returns the response object
+     * Returns the response object.
      *
      * @return Response
      *
@@ -45,7 +46,7 @@ public function getResponse()
     }
 
     /**
-     * Sets a response and stops event propagation
+     * Sets a response and stops event propagation.
      *
      * @param Response $response
      *
@@ -59,7 +60,7 @@ public function setResponse(Response $response)
     }
 
     /**
-     * Returns whether a response was set
+     * Returns whether a response was set.
      *
      * @return bool Whether a response was set
      *
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForControllerResultEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForControllerResultEvent.php
index fcb38da..afb1c45 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForControllerResultEvent.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForControllerResultEvent.php
@@ -15,7 +15,7 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Allows to create a response for the return value of a controller
+ * Allows to create a response for the return value of a controller.
  *
  * Call setResponse() to set the response that will be returned for the
  * current request. The propagation of this event is stopped as soon as a
@@ -28,7 +28,7 @@
 class GetResponseForControllerResultEvent extends GetResponseEvent
 {
     /**
-     * The return value of the controller
+     * The return value of the controller.
      *
      * @var mixed
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForExceptionEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForExceptionEvent.php
index 3eb3557..3b5957e 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForExceptionEvent.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/GetResponseForExceptionEvent.php
@@ -15,7 +15,7 @@
 use Symfony\Component\HttpFoundation\Request;
 
 /**
- * Allows to create a response for a thrown exception
+ * Allows to create a response for a thrown exception.
  *
  * Call setResponse() to set the response that will be returned for the
  * current request. The propagation of this event is stopped as soon as a
@@ -32,7 +32,8 @@
 class GetResponseForExceptionEvent extends GetResponseEvent
 {
     /**
-     * The exception object
+     * The exception object.
+     *
      * @var \Exception
      */
     private $exception;
@@ -45,7 +46,7 @@ public function __construct(HttpKernelInterface $kernel, Request $request, $requ
     }
 
     /**
-     * Returns the thrown exception
+     * Returns the thrown exception.
      *
      * @return \Exception The thrown exception
      *
@@ -57,7 +58,7 @@ public function getException()
     }
 
     /**
-     * Replaces the thrown exception
+     * Replaces the thrown exception.
      *
      * This exception will be thrown if no response is set in the event.
      *
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/KernelEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/KernelEvent.php
index 3efc041..1d97ead 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/KernelEvent.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/KernelEvent.php
@@ -16,7 +16,7 @@
 use Symfony\Component\EventDispatcher\Event;
 
 /**
- * Base class for events thrown in the HttpKernel component
+ * Base class for events thrown in the HttpKernel component.
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  *
@@ -25,20 +25,23 @@
 class KernelEvent extends Event
 {
     /**
-     * The kernel in which this event was thrown
+     * The kernel in which this event was thrown.
+     *
      * @var HttpKernelInterface
      */
     private $kernel;
 
     /**
-     * The request the kernel is currently processing
+     * The request the kernel is currently processing.
+     *
      * @var Request
      */
     private $request;
 
     /**
      * The request type the kernel is currently processing.  One of
-     * HttpKernelInterface::MASTER_REQUEST and HttpKernelInterface::SUB_REQUEST
+     * HttpKernelInterface::MASTER_REQUEST and HttpKernelInterface::SUB_REQUEST.
+     *
      * @var int
      */
     private $requestType;
@@ -51,7 +54,7 @@ public function __construct(HttpKernelInterface $kernel, Request $request, $requ
     }
 
     /**
-     * Returns the kernel in which this event was thrown
+     * Returns the kernel in which this event was thrown.
      *
      * @return HttpKernelInterface
      *
@@ -63,7 +66,7 @@ public function getKernel()
     }
 
     /**
-     * Returns the request the kernel is currently processing
+     * Returns the request the kernel is currently processing.
      *
      * @return Request
      *
@@ -75,7 +78,7 @@ public function getRequest()
     }
 
     /**
-     * Returns the request type the kernel is currently processing
+     * Returns the request type the kernel is currently processing.
      *
      * @return int One of HttpKernelInterface::MASTER_REQUEST and
      *             HttpKernelInterface::SUB_REQUEST
@@ -90,7 +93,7 @@ public function getRequestType()
     /**
      * Checks if this is a master request.
      *
-     * @return bool    True if the request is a master request
+     * @return bool True if the request is a master request
      *
      * @api
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/PostResponseEvent.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/PostResponseEvent.php
index caa7b9f..5d4450b 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/PostResponseEvent.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/PostResponseEvent.php
@@ -17,14 +17,15 @@
 use Symfony\Component\HttpFoundation\Response;
 
 /**
- * Allows to execute logic after a response was sent
+ * Allows to execute logic after a response was sent.
  *
  * @author Jordi Boggiano <j.boggiano@seld.be>
  */
 class PostResponseEvent extends Event
 {
     /**
-     * The kernel in which this event was thrown
+     * The kernel in which this event was thrown.
+     *
      * @var HttpKernelInterface
      */
     private $kernel;
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/DumpListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/DumpListener.php
index c7f2daf..bccde8e 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/DumpListener.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/DumpListener.php
@@ -24,12 +24,12 @@
  */
 class DumpListener implements EventSubscriberInterface
 {
-    private $container;
+    private $cloner;
     private $dumper;
 
     /**
-     * @param ClonerInterface      $cloner    Cloner service.
-     * @param DataDumperInterface  $dumper    Dumper service.
+     * @param ClonerInterface     $cloner Cloner service.
+     * @param DataDumperInterface $dumper Dumper service.
      */
     public function __construct(ClonerInterface $cloner, DataDumperInterface $dumper)
     {
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php
index 3450b62..5b0ec0e 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php
@@ -12,12 +12,12 @@
 namespace Symfony\Component\HttpKernel\EventListener;
 
 use Psr\Log\LoggerInterface;
+use Symfony\Component\Debug\Exception\FlattenException;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;
 use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
 use Symfony\Component\HttpKernel\KernelEvents;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\Exception\FlattenException;
 use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
 
@@ -104,7 +104,7 @@ protected function logException(\Exception $exception, $message, $original = tru
      * Clones the request for the exception.
      *
      * @param \Exception $exception The thrown exception.
-     * @param Request $request The original request.
+     * @param Request    $request   The original request.
      *
      * @return Request $request The cloned request.
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/SaveSessionListener.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/SaveSessionListener.php
index d11615c..36809b5 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/SaveSessionListener.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/EventListener/SaveSessionListener.php
@@ -13,7 +13,6 @@
 
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
 use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\HttpKernel\KernelEvents;
 
 /**
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/FatalErrorException.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/FatalErrorException.php
index 1f1ef1a..7a1cd23 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/FatalErrorException.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/FatalErrorException.php
@@ -11,15 +11,11 @@
 
 namespace Symfony\Component\HttpKernel\Exception;
 
-use Symfony\Component\Debug\Exception\FatalErrorException as DebugFatalErrorException;
-
-/**
+/*
  * Fatal Error Exception.
  *
  * @author Konstanton Myakshin <koc-dp@yandex.ru>
  *
  * @deprecated Deprecated in 2.3, to be removed in 3.0. Use the same class from the Debug component instead.
  */
-class FatalErrorException extends DebugFatalErrorException
-{
-}
+class_exists('Symfony\Component\Debug\Exception\FatalErrorException');
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/FlattenException.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/FlattenException.php
index 0168afc..ebe45b4 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/FlattenException.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/FlattenException.php
@@ -11,9 +11,7 @@
 
 namespace Symfony\Component\HttpKernel\Exception;
 
-use Symfony\Component\Debug\Exception\FlattenException as DebugFlattenException;
-
-/**
+/*
  * FlattenException wraps a PHP Exception to be able to serialize it.
  *
  * Basically, this class removes all objects from the trace.
@@ -22,6 +20,4 @@
  *
  * @deprecated Deprecated in 2.3, to be removed in 3.0. Use the same class from the Debug component instead.
  */
-class FlattenException extends DebugFlattenException
-{
-}
+class_exists('Symfony\Component\Debug\Exception\FlattenException');
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/PreconditionRequiredHttpException.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/PreconditionRequiredHttpException.php
index ef7eb4d..08ebca2 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/PreconditionRequiredHttpException.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/PreconditionRequiredHttpException.php
@@ -15,6 +15,7 @@
  * PreconditionRequiredHttpException.
  *
  * @author Ben Ramsey <ben@benramsey.com>
+ *
  * @see http://tools.ietf.org/html/rfc6585
  */
 class PreconditionRequiredHttpException extends HttpException
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/TooManyRequestsHttpException.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/TooManyRequestsHttpException.php
index 3d716bd..ab86e09 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/TooManyRequestsHttpException.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/TooManyRequestsHttpException.php
@@ -15,6 +15,7 @@
  * TooManyRequestsHttpException.
  *
  * @author Ben Ramsey <ben@benramsey.com>
+ *
  * @see http://tools.ietf.org/html/rfc6585
  */
 class TooManyRequestsHttpException extends HttpException
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/UnprocessableEntityHttpException.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/UnprocessableEntityHttpException.php
index c51da53..eb13f56 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/UnprocessableEntityHttpException.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Exception/UnprocessableEntityHttpException.php
@@ -21,9 +21,9 @@ class UnprocessableEntityHttpException extends HttpException
     /**
      * Constructor.
      *
-     * @param string     $message   The internal exception message
-     * @param \Exception $previous  The previous exception
-     * @param int        $code      The internal exception code
+     * @param string     $message  The internal exception message
+     * @param \Exception $previous The previous exception
+     * @param int        $code     The internal exception code
      */
     public function __construct($message = null, \Exception $previous = null, $code = 0)
     {
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentRendererInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentRendererInterface.php
index ae172df..b177c3a 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentRendererInterface.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Fragment/FragmentRendererInterface.php
@@ -19,8 +19,6 @@
  * Interface implemented by all rendering strategies.
  *
  * @author Fabien Potencier <fabien@symfony.com>
- *
- * @see Symfony\Component\HttpKernel\FragmentRenderer
  */
 interface FragmentRendererInterface
 {
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Esi.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Esi.php
index 0ae793b..ad8382e 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Esi.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/Esi.php
@@ -73,7 +73,7 @@ public function hasSurrogateCapability(Request $request)
      *
      * @param Request $request A Request instance
      *
-     * @return bool    true if one surrogate has ESI/1.0 capability, false otherwise
+     * @return bool true if one surrogate has ESI/1.0 capability, false otherwise
      *
      * @deprecated Deprecated since version 2.6, to be removed in 3.0. Use hasSurrogateCapability() instead
      */
@@ -142,7 +142,7 @@ public function needsParsing(Response $response)
      *
      * @param Response $response A Response instance
      *
-     * @return bool    true if the Response needs to be parsed, false otherwise
+     * @return bool true if the Response needs to be parsed, false otherwise
      *
      * @deprecated Deprecated since version 2.6, to be removed in 3.0. Use needsParsing() instead
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
index 99c4f2c..83a7e4e 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
@@ -143,7 +143,7 @@ public function getRequest()
     }
 
     /**
-     * Gets the Kernel instance
+     * Gets the Kernel instance.
      *
      * @return HttpKernelInterface An HttpKernelInterface instance
      */
@@ -153,7 +153,7 @@ public function getKernel()
     }
 
     /**
-     * Gets the Surrogate instance
+     * Gets the Surrogate instance.
      *
      * @throws \LogicException
      * @return SurrogateInterface A Surrogate instance
@@ -164,9 +164,10 @@ public function getSurrogate()
     }
 
     /**
-     * Gets the Esi instance
+     * Gets the Esi instance.
      *
      * @throws \LogicException
+     *
      * @return Esi An Esi instance
      *
      * @deprecated Deprecated since version 2.6, to be removed in 3.0. Use getSurrogate() instead
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/SurrogateInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/SurrogateInterface.php
index c26304d..46b788d 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/SurrogateInterface.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/SurrogateInterface.php
@@ -35,7 +35,7 @@ public function createCacheStrategy();
      *
      * @param Request $request A Request instance
      *
-     * @return bool    true if one surrogate has Surrogate capability, false otherwise
+     * @return bool true if one surrogate has Surrogate capability, false otherwise
      */
     public function hasSurrogateCapability(Request $request);
 
@@ -60,17 +60,17 @@ public function addSurrogateControl(Response $response);
      *
      * @param Response $response A Response instance
      *
-     * @return bool    true if the Response needs to be parsed, false otherwise
+     * @return bool true if the Response needs to be parsed, false otherwise
      */
     public function needsParsing(Response $response);
 
     /**
      * Renders a Surrogate tag.
      *
-     * @param string  $uri          A URI
-     * @param string  $alt          An alternate URI
-     * @param bool    $ignoreErrors Whether to ignore errors or not
-     * @param string  $comment      A comment to add as an esi:include tag
+     * @param string $uri          A URI
+     * @param string $alt          An alternate URI
+     * @param bool   $ignoreErrors Whether to ignore errors or not
+     * @param string $comment      A comment to add as an esi:include tag
      *
      * @return string
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php
index ac25359..966cf6c 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php
@@ -40,7 +40,7 @@ class HttpKernel implements HttpKernelInterface, TerminableInterface
     protected $requestStack;
 
     /**
-     * Constructor
+     * Constructor.
      *
      * @param EventDispatcherInterface    $dispatcher   An EventDispatcherInterface instance
      * @param ControllerResolverInterface $resolver     A ControllerResolverInterface instance
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php
index 4fdbf95..61737ee 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php
@@ -25,6 +25,7 @@
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpKernel\Bundle\BundleInterface;
+use Symfony\Component\HttpKernel\Config\EnvParametersResource;
 use Symfony\Component\HttpKernel\Config\FileLocator;
 use Symfony\Component\HttpKernel\DependencyInjection\MergeExtensionConfigurationPass;
 use Symfony\Component\HttpKernel\DependencyInjection\AddClassesToCachePass;
@@ -59,11 +60,11 @@
     protected $startTime;
     protected $loadClassCache;
 
-    const VERSION = '2.6.1';
-    const VERSION_ID = '20601';
+    const VERSION = '2.6.4';
+    const VERSION_ID = '20604';
     const MAJOR_VERSION = '2';
     const MINOR_VERSION = '6';
-    const RELEASE_VERSION = '1';
+    const RELEASE_VERSION = '4';
     const EXTRA_VERSION = '';
 
     /**
@@ -186,7 +187,7 @@ public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQ
     }
 
     /**
-     * Gets a HTTP kernel from the container
+     * Gets a HTTP kernel from the container.
      *
      * @return HttpKernel
      */
@@ -242,35 +243,9 @@ public function getBundle($name, $first = true)
     }
 
     /**
-     * Returns the file path for a given resource.
+     * {@inheritDoc}
      *
-     * A Resource can be a file or a directory.
-     *
-     * The resource name must follow the following pattern:
-     *
-     *     @<BundleName>/path/to/a/file.something
-     *
-     * where BundleName is the name of the bundle
-     * and the remaining part is the relative path in the bundle.
-     *
-     * If $dir is passed, and the first segment of the path is "Resources",
-     * this method will look for a file named:
-     *
-     *     $dir/<BundleName>/path/without/Resources
-     *
-     * before looking in the bundle resource folder.
-     *
-     * @param string $name  A resource name to locate
-     * @param string $dir   A directory where to look for the resource first
-     * @param bool   $first Whether to return the first path or paths for all matching bundles
-     *
-     * @return string|array The absolute path of the resource or an array if $first is false
-     *
-     * @throws \InvalidArgumentException if the file cannot be found or the name is not valid
-     * @throws \RuntimeException         if the name contains invalid/unsafe
-     * @throws \RuntimeException         if a custom resource is hidden by a resource in a derived bundle
-     *
-     * @api
+     * @throws \RuntimeException if a custom resource is hidden by a resource in a derived bundle
      */
     public function locateResource($name, $dir = null, $first = true)
     {
@@ -586,12 +561,12 @@ protected function getKernelParameters()
 
         return array_merge(
             array(
-                'kernel.root_dir' => $this->rootDir,
+                'kernel.root_dir' => realpath($this->rootDir) ?: $this->rootDir,
                 'kernel.environment' => $this->environment,
                 'kernel.debug' => $this->debug,
                 'kernel.name' => $this->name,
-                'kernel.cache_dir' => $this->getCacheDir(),
-                'kernel.logs_dir' => $this->getLogDir(),
+                'kernel.cache_dir' => realpath($this->getCacheDir()) ?: $this->getCacheDir(),
+                'kernel.logs_dir' => realpath($this->getLogDir()) ?: $this->getLogDir(),
                 'kernel.bundles' => $bundles,
                 'kernel.charset' => $this->getCharset(),
                 'kernel.container_class' => $this->getContainerClass(),
@@ -647,6 +622,7 @@ protected function buildContainer()
         }
 
         $container->addCompilerPass(new AddClassesToCachePass($this));
+        $container->addResource(new EnvParametersResource('SYMFONY__'));
 
         return $container;
     }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelEvents.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelEvents.php
index 65a7896..e259af5 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelEvents.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelEvents.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\HttpKernel;
 
 /**
- * Contains all events thrown in the HttpKernel component
+ * Contains all events thrown in the HttpKernel component.
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  *
@@ -22,7 +22,7 @@
 {
     /**
      * The REQUEST event occurs at the very beginning of request
-     * dispatching
+     * dispatching.
      *
      * This event allows you to create a response for a request before any
      * other code in the framework is executed. The event listener method
@@ -38,7 +38,7 @@
     const REQUEST = 'kernel.request';
 
     /**
-     * The EXCEPTION event occurs when an uncaught exception appears
+     * The EXCEPTION event occurs when an uncaught exception appears.
      *
      * This event allows you to create a response for a thrown exception or
      * to modify the thrown exception. The event listener method receives
@@ -55,7 +55,7 @@
 
     /**
      * The VIEW event occurs when the return value of a controller
-     * is not a Response instance
+     * is not a Response instance.
      *
      * This event allows you to create a response for the return value of the
      * controller. The event listener method receives a
@@ -72,7 +72,7 @@
 
     /**
      * The CONTROLLER event occurs once a controller was found for
-     * handling a request
+     * handling a request.
      *
      * This event allows you to change the controller that will handle the
      * request. The event listener method receives a
@@ -88,7 +88,7 @@
 
     /**
      * The RESPONSE event occurs once a response was created for
-     * replying to a request
+     * replying to a request.
      *
      * This event allows you to modify or replace the response that will be
      * replied. The event listener method receives a
@@ -103,7 +103,7 @@
     const RESPONSE = 'kernel.response';
 
     /**
-     * The TERMINATE event occurs once a response was sent
+     * The TERMINATE event occurs once a response was sent.
      *
      * This event allows you to run expensive post-response jobs.
      * The event listener method receives a
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelInterface.php
index 04e5bd6..1ab35a5 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelInterface.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelInterface.php
@@ -103,15 +103,17 @@ public function getBundle($name, $first = true);
      *
      * The resource name must follow the following pattern:
      *
-     *     @BundleName/path/to/a/file.something
+     *     "@BundleName/path/to/a/file.something"
      *
      * where BundleName is the name of the bundle
      * and the remaining part is the relative path in the bundle.
      *
-     * If $dir is passed, and the first segment of the path is Resources,
+     * If $dir is passed, and the first segment of the path is "Resources",
      * this method will look for a file named:
      *
-     *     $dir/BundleName/path/without/Resources
+     *     $dir/<BundleName>/path/without/Resources
+     *
+     * before looking in the bundle resource folder.
      *
      * @param string $name  A resource name to locate
      * @param string $dir   A directory where to look for the resource first
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/LICENSE b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/LICENSE
index 0b3292c..43028bc 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/LICENSE
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2014 Fabien Potencier
+Copyright (c) 2004-2015 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Log/LoggerInterface.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Log/LoggerInterface.php
index 148c92c..856c26a 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Log/LoggerInterface.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Log/LoggerInterface.php
@@ -19,30 +19,35 @@
  * @author Fabien Potencier <fabien@symfony.com>
  *
  * @deprecated since 2.2, to be removed in 3.0. Type-hint \Psr\Log\LoggerInterface instead.
+ *
  * @api
  */
 interface LoggerInterface extends PsrLogger
 {
     /**
      * @api
+     *
      * @deprecated since 2.2, to be removed in 3.0. Use emergency() which is PSR-3 compatible.
      */
     public function emerg($message, array $context = array());
 
     /**
      * @api
+     *
      * @deprecated since 2.2, to be removed in 3.0. Use critical() which is PSR-3 compatible.
      */
     public function crit($message, array $context = array());
 
     /**
      * @api
+     *
      * @deprecated since 2.2, to be removed in 3.0. Use error() which is PSR-3 compatible.
      */
     public function err($message, array $context = array());
 
     /**
      * @api
+     *
      * @deprecated since 2.2, to be removed in 3.0. Use warning() which is PSR-3 compatible.
      */
     public function warn($message, array $context = array());
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Log/NullLogger.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Log/NullLogger.php
index 98f932a..0948e0d 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Log/NullLogger.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Log/NullLogger.php
@@ -24,6 +24,7 @@ class NullLogger extends PsrNullLogger implements LoggerInterface
 {
     /**
      * @api
+     *
      * @deprecated since 2.2, to be removed in 3.0. Use emergency() which is PSR-3 compatible.
      */
     public function emerg($message, array $context = array())
@@ -32,6 +33,7 @@ public function emerg($message, array $context = array())
 
     /**
      * @api
+     *
      * @deprecated since 2.2, to be removed in 3.0. Use critical() which is PSR-3 compatible.
      */
     public function crit($message, array $context = array())
@@ -40,6 +42,7 @@ public function crit($message, array $context = array())
 
     /**
      * @api
+     *
      * @deprecated since 2.2, to be removed in 3.0. Use error() which is PSR-3 compatible.
      */
     public function err($message, array $context = array())
@@ -48,6 +51,7 @@ public function err($message, array $context = array())
 
     /**
      * @api
+     *
      * @deprecated since 2.2, to be removed in 3.0. Use warning() which is PSR-3 compatible.
      */
     public function warn($message, array $context = array())
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php
index 949a639..f50b83e 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/BaseMemcacheProfilerStorage.php
@@ -188,7 +188,7 @@ public function write(Profile $profile)
     }
 
     /**
-     * Retrieve item from the memcache server
+     * Retrieve item from the memcache server.
      *
      * @param string $key
      *
@@ -197,7 +197,7 @@ public function write(Profile $profile)
     abstract protected function getValue($key);
 
     /**
-     * Store an item on the memcache server under the specified key
+     * Store an item on the memcache server under the specified key.
      *
      * @param string $key
      * @param mixed  $value
@@ -208,7 +208,7 @@ public function write(Profile $profile)
     abstract protected function setValue($key, $value, $expiration = 0);
 
     /**
-     * Delete item from the memcache server
+     * Delete item from the memcache server.
      *
      * @param string $key
      *
@@ -217,7 +217,8 @@ public function write(Profile $profile)
     abstract protected function delete($key);
 
     /**
-     * Append data to an existing item on the memcache server
+     * Append data to an existing item on the memcache server.
+     *
      * @param string $key
      * @param string $value
      * @param int    $expiration
@@ -259,7 +260,7 @@ private function createProfileFromData($token, $data, $parent = null)
     }
 
     /**
-     * Get item name
+     * Get item name.
      *
      * @param string $token
      *
@@ -277,7 +278,7 @@ private function getItemName($token)
     }
 
     /**
-     * Get name of index
+     * Get name of index.
      *
      * @return string
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php
index 31f11ef..e90083f 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcacheProfilerStorage.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\HttpKernel\Profiler;
 
 /**
- * Memcache Profiler Storage
+ * Memcache Profiler Storage.
  *
  * @author Andrej Hudec <pulzarraider@gmail.com>
  */
@@ -24,7 +24,7 @@ class MemcacheProfilerStorage extends BaseMemcacheProfilerStorage
     private $memcache;
 
     /**
-     * Internal convenience method that returns the instance of the Memcache
+     * Internal convenience method that returns the instance of the Memcache.
      *
      * @return \Memcache
      *
@@ -50,7 +50,7 @@ protected function getMemcache()
     }
 
     /**
-     * Set instance of the Memcache
+     * Set instance of the Memcache.
      *
      * @param \Memcache $memcache
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php
index 94a5626..0c57373 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MemcachedProfilerStorage.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\HttpKernel\Profiler;
 
 /**
- * Memcached Profiler Storage
+ * Memcached Profiler Storage.
  *
  * @author Andrej Hudec <pulzarraider@gmail.com>
  */
@@ -24,7 +24,7 @@ class MemcachedProfilerStorage extends BaseMemcacheProfilerStorage
     private $memcached;
 
     /**
-     * Internal convenience method that returns the instance of the Memcached
+     * Internal convenience method that returns the instance of the Memcached.
      *
      * @return \Memcached
      *
@@ -54,7 +54,7 @@ protected function getMemcached()
     }
 
     /**
-     * Set instance of the Memcached
+     * Set instance of the Memcached.
      *
      * @param \Memcached $memcached
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MongoDbProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MongoDbProfilerStorage.php
index 7db374f..23224b4 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MongoDbProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MongoDbProfilerStorage.php
@@ -91,7 +91,7 @@ public function write(Profile $profile)
     }
 
     /**
-     * Internal convenience method that returns the instance of the MongoDB Collection
+     * Internal convenience method that returns the instance of the MongoDB Collection.
      *
      * @return \MongoCollection
      *
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MysqlProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MysqlProfilerStorage.php
index 0aee1b5..69a865f 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MysqlProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/MysqlProfilerStorage.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\HttpKernel\Profiler;
 
 /**
- * A ProfilerStorage for Mysql
+ * A ProfilerStorage for Mysql.
  *
  * @author Jan Schumann <js@schumann-it.com>
  */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/PdoProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/PdoProfilerStorage.php
index 29b58e4..a545e6b 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/PdoProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/PdoProfilerStorage.php
@@ -124,7 +124,7 @@ public function purge()
     }
 
     /**
-     * Build SQL criteria to fetch records by ip and url
+     * Build SQL criteria to fetch records by ip and url.
      *
      * @param string $ip     The IP
      * @param string $url    The URL
@@ -138,7 +138,7 @@ public function purge()
     abstract protected function buildCriteria($ip, $url, $start, $end, $limit, $method);
 
     /**
-     * Initializes the database
+     * Initializes the database.
      *
      * @throws \RuntimeException When the requested database driver is not installed
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profile.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profile.php
index a2c57f3..85284bf 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profile.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/Profile.php
@@ -73,7 +73,7 @@ public function getToken()
     }
 
     /**
-     * Sets the parent token
+     * Sets the parent token.
      *
      * @param Profile $parent The parent Profile
      */
@@ -195,7 +195,7 @@ public function setChildren(array $children)
     }
 
     /**
-     * Adds the child token
+     * Adds the child token.
      *
      * @param Profile $child The child Profile
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
index e673986..b05adcc 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Profiler/RedisProfilerStorage.php
@@ -233,7 +233,7 @@ protected function getRedis()
     }
 
     /**
-     * Set instance of the Redis
+     * Set instance of the Redis.
      *
      * @param \Redis $redis
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php
index c26a4f0..1a1b300 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php
@@ -11,11 +11,9 @@
 
 namespace Symfony\Component\HttpKernel\Tests\Bundle;
 
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
+use Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\ExtensionPresentBundle;
 use Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle\ExtensionAbsentBundle;
 use Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\Command\FooCommand;
-use Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\ExtensionPresentBundle;
 
 class BundleTest extends \PHPUnit_Framework_TestCase
 {
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/CacheClearer/ChainCacheClearerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/CacheClearer/ChainCacheClearerTest.php
index c4816ba..b54d169 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/CacheClearer/ChainCacheClearerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/CacheClearer/ChainCacheClearerTest.php
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\HttpKernel\Tests\CacheClearer;
 
-use Symfony\Component\HttpKernel\CacheClearer\CacheClearerInterface;
 use Symfony\Component\HttpKernel\CacheClearer\ChainCacheClearer;
 
 class ChainCacheClearerTest extends \PHPUnit_Framework_TestCase
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/CacheWarmer/CacheWarmerAggregateTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/CacheWarmer/CacheWarmerAggregateTest.php
index 24e7fd9..e78c8d1 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/CacheWarmer/CacheWarmerAggregateTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/CacheWarmer/CacheWarmerAggregateTest.php
@@ -11,9 +11,7 @@
 
 namespace Symfony\Component\HttpKernel\Tests\CacheWarmer;
 
-use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerInterface;
 use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate;
-use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmer;
 
 class CacheWarmerAggregateTest extends \PHPUnit_Framework_TestCase
 {
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/ClientTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/ClientTest.php
index d24942a..b5d2c9c 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/ClientTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/ClientTest.php
@@ -12,8 +12,6 @@
 namespace Symfony\Component\HttpKernel\Tests;
 
 use Symfony\Component\HttpKernel\Client;
-use Symfony\Component\HttpKernel\HttpKernel;
-use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpFoundation\StreamedResponse;
 use Symfony\Component\HttpFoundation\Cookie;
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Config/EnvParametersResourceTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Config/EnvParametersResourceTest.php
new file mode 100644
index 0000000..ee5ecce
--- /dev/null
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Config/EnvParametersResourceTest.php
@@ -0,0 +1,106 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\HttpKernel\Tests\Config;
+
+use Symfony\Component\HttpKernel\Config\EnvParametersResource;
+
+class EnvParametersResourceTest extends \PHPUnit_Framework_TestCase
+{
+    protected $prefix = '__DUMMY_';
+    protected $initialEnv;
+    protected $resource;
+
+    protected function setUp()
+    {
+        $this->initialEnv = array(
+            $this->prefix.'1' => 'foo',
+            $this->prefix.'2' => 'bar',
+        );
+
+        foreach ($this->initialEnv as $key => $value) {
+            $_SERVER[$key] = $value;
+        }
+
+        $this->resource = new EnvParametersResource($this->prefix);
+    }
+
+    protected function tearDown()
+    {
+        foreach ($_SERVER as $key => $value) {
+            if (0 === strpos($key, $this->prefix)) {
+                unset($_SERVER[$key]);
+            }
+        }
+    }
+
+    public function testGetResource()
+    {
+        $this->assertSame(
+            array('prefix' => $this->prefix, 'variables' => $this->initialEnv),
+            $this->resource->getResource(),
+            '->getResource() returns the resource'
+        );
+    }
+
+    public function testToString()
+    {
+        $this->assertSame(
+            serialize(array('prefix' => $this->prefix, 'variables' => $this->initialEnv)),
+            (string) $this->resource
+        );
+    }
+
+    public function testIsFreshNotChanged()
+    {
+        $this->assertTrue(
+            $this->resource->isFresh(time()),
+            '->isFresh() returns true if the variables have not changed'
+        );
+    }
+
+    public function testIsFreshValueChanged()
+    {
+        reset($this->initialEnv);
+        $_SERVER[key($this->initialEnv)] = 'baz';
+
+        $this->assertFalse(
+            $this->resource->isFresh(time()),
+            '->isFresh() returns false if a variable has been changed'
+        );
+    }
+
+    public function testIsFreshValueRemoved()
+    {
+        reset($this->initialEnv);
+        unset($_SERVER[key($this->initialEnv)]);
+
+        $this->assertFalse(
+            $this->resource->isFresh(time()),
+            '->isFresh() returns false if a variable has been removed'
+        );
+    }
+
+    public function testIsFreshValueAdded()
+    {
+        $_SERVER[$this->prefix.'3'] = 'foo';
+
+        $this->assertFalse(
+            $this->resource->isFresh(time()),
+            '->isFresh() returns false if a variable has been added'
+        );
+    }
+
+    public function testSerializeUnserialize()
+    {
+        $this->assertEquals($this->resource, unserialize(serialize($this->resource)));
+    }
+}
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php
index 401f143..0d672a1 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ConfigDataCollectorTest.php
@@ -69,10 +69,6 @@ public function registerBundles()
     {
     }
 
-    public function init()
-    {
-    }
-
     public function getBundles()
     {
         return array();
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/DumpDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/DumpDataCollectorTest.php
index 3d5387e..dd9a134 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/DumpDataCollectorTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/DumpDataCollectorTest.php
@@ -29,7 +29,8 @@ public function testDump()
 
         $this->assertSame('dump', $collector->getName());
 
-        $collector->dump($data); $line = __LINE__;
+        $collector->dump($data);
+        $line = __LINE__ - 1;
         $this->assertSame(1, $collector->getDumpsCount());
 
         $dump = $collector->getDumps('html');
@@ -48,8 +49,8 @@ public function testDump()
         );
         $this->assertSame($xDump, $dump);
 
-        $this->assertStringStartsWith(
-            'a:1:{i:0;a:5:{s:4:"data";O:39:"Symfony\Component\VarDumper\Cloner\Data":4:{s:45:"Symfony\Component\VarDumper\Cloner\Datadata";a:1:{i:0;a:1:{i:0;i:123;}}s:49:"Symfony\Component\VarDumper\Cloner\DatamaxDepth";i:-1;s:57:"Symfony\Component\VarDumper\Cloner\DatamaxItemsPerDepth";i:-1;s:54:"Symfony\Component\VarDumper\Cloner\DatauseRefHandles";i:-1;}s:4:"name";s:25:"DumpDataCollectorTest.php";s:4:"file";s:',
+        $this->assertStringMatchesFormat(
+            'a:1:{i:0;a:5:{s:4:"data";O:39:"Symfony\Component\VarDumper\Cloner\Data":4:{s:45:"Symfony\Component\VarDumper\Cloner\Datadata";a:1:{i:0;a:1:{i:0;i:123;}}s:49:"Symfony\Component\VarDumper\Cloner\DatamaxDepth";i:%i;s:57:"Symfony\Component\VarDumper\Cloner\DatamaxItemsPerDepth";i:%i;s:54:"Symfony\Component\VarDumper\Cloner\DatauseRefHandles";i:%i;}s:4:"name";s:25:"DumpDataCollectorTest.php";s:4:"file";s:%a',
             str_replace("\0", '', $collector->serialize())
         );
 
@@ -61,7 +62,8 @@ public function testFlush()
     {
         $data = new Data(array(array(456)));
         $collector = new DumpDataCollector();
-        $collector->dump($data); $line = __LINE__;
+        $collector->dump($data);
+        $line = __LINE__ - 1;
 
         ob_start();
         $collector = null;
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php
index 517e326..6c71f4c 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/ExceptionDataCollectorTest.php
@@ -11,8 +11,8 @@
 
 namespace Symfony\Component\HttpKernel\Tests\DataCollector;
 
+use Symfony\Component\Debug\Exception\FlattenException;
 use Symfony\Component\HttpKernel\DataCollector\ExceptionDataCollector;
-use Symfony\Component\HttpKernel\Exception\FlattenException;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php
index 842ea91..2eb1c41 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/DataCollector/RequestDataCollectorTest.php
@@ -192,7 +192,7 @@ protected function injectController($collector, $controller, $request)
     }
 
     /**
-     * Dummy method used as controller callable
+     * Dummy method used as controller callable.
      */
     public static function staticControllerMethod()
     {
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/TraceableEventDispatcherTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/TraceableEventDispatcherTest.php
index 399f1a7..c2cafc3 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/TraceableEventDispatcherTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Debug/TraceableEventDispatcherTest.php
@@ -75,6 +75,24 @@ public function testStopwatchStopControllerOnRequestEvent()
         $kernel->handle($request);
     }
 
+    public function testAddListenerNested()
+    {
+        $called1 = false;
+        $called2 = false;
+        $dispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
+        $dispatcher->addListener('my-event', function () use ($dispatcher, &$called1, &$called2) {
+            $called1 = true;
+            $dispatcher->addListener('my-event', function () use (&$called2) {
+                $called2 = true;
+            });
+        });
+        $dispatcher->dispatch('my-event');
+        $this->assertTrue($called1);
+        $this->assertFalse($called2);
+        $dispatcher->dispatch('my-event');
+        $this->assertTrue($called2);
+    }
+
     protected function getHttpKernel($dispatcher, $controller)
     {
         $resolver = $this->getMock('Symfony\Component\HttpKernel\Controller\ControllerResolverInterface');
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php
index b4e8819..28f64e8 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php
@@ -20,7 +20,7 @@
 use Symfony\Component\HttpKernel\Tests\Logger;
 
 /**
- * ExceptionListenerTest
+ * ExceptionListenerTest.
  *
  * @author Robert Schönthal <seroscho@googlemail.com>
  */
@@ -45,8 +45,7 @@ public function testConstruct()
      */
     public function testHandleWithoutLogger($event, $event2)
     {
-        // store the current error_log, and disable it temporarily
-        $errorLog = ini_set('error_log', file_exists('/dev/null') ? '/dev/null' : 'nul');
+        $this->iniSet('error_log', file_exists('/dev/null') ? '/dev/null' : 'nul');
 
         $l = new ExceptionListener('foo');
         $l->onKernelException($event);
@@ -58,9 +57,6 @@ public function testHandleWithoutLogger($event, $event2)
         } catch (\Exception $e) {
             $this->assertSame('foo', $e->getMessage());
         }
-
-        // restore the old error_log
-        ini_set('error_log', $errorLog);
     }
 
     /**
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php
index d128753..ecc4eb0 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php
@@ -67,10 +67,6 @@ public function testLocaleSetForRoutingContext()
 
     public function testRouterResetWithParentRequestOnKernelFinishRequest()
     {
-        if (!class_exists('Symfony\Component\Routing\Router')) {
-            $this->markTestSkipped('The "Routing" component is not available');
-        }
-
         // the request context is updated
         $context = $this->getMock('Symfony\Component\Routing\RequestContext');
         $context->expects($this->once())->method('setParameter')->with('_locale', 'es');
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ProfilerListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ProfilerListenerTest.php
index b242ede..c68f3af 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ProfilerListenerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ProfilerListenerTest.php
@@ -11,6 +11,7 @@
 
 namespace Symfony\Component\HttpKernel\Tests\EventListener;
 
+use Symfony\Component\HttpFoundation\RequestStack;
 use Symfony\Component\HttpKernel\EventListener\ProfilerListener;
 use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
 use Symfony\Component\HttpKernel\Event\GetResponseEvent;
@@ -23,11 +24,11 @@ class ProfilerListenerTest extends \PHPUnit_Framework_TestCase
 {
     /**
      * Test to ensure BC without RequestStack
-     *
-     * @deprecated Deprecated since version 2.4, to be removed in 3.0.
      */
-    public function testEventsWithoutRequestStack()
+    public function testLegacyEventsWithoutRequestStack()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
         $profile = $this->getMockBuilder('Symfony\Component\HttpKernel\Profiler\Profile')
             ->disableOriginalConstructor()
             ->getMock();
@@ -86,15 +87,16 @@ public function testKernelTerminate()
             ->disableOriginalConstructor()
             ->getMock();
 
+        $requestStack = new RequestStack();
+        $requestStack->push($masterRequest);
+
         $onlyException = true;
-        $listener = new ProfilerListener($profiler, null, $onlyException);
+        $listener = new ProfilerListener($profiler, null, $onlyException, false, $requestStack);
 
         // master request
-        $listener->onKernelRequest(new GetResponseEvent($kernel, $masterRequest, Kernel::MASTER_REQUEST));
         $listener->onKernelResponse(new FilterResponseEvent($kernel, $masterRequest, Kernel::MASTER_REQUEST, $response));
 
         // sub request
-        $listener->onKernelRequest(new GetResponseEvent($kernel, $subRequest, Kernel::SUB_REQUEST));
         $listener->onKernelException(new GetResponseForExceptionEvent($kernel, $subRequest, Kernel::SUB_REQUEST, new HttpException(404)));
         $listener->onKernelResponse(new FilterResponseEvent($kernel, $subRequest, Kernel::SUB_REQUEST, $response));
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/EsiListenerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/SurrogateListenerTest.php
similarity index 97%
rename from core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/EsiListenerTest.php
rename to core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/SurrogateListenerTest.php
index 9b0517d..1a0acf9 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/EsiListenerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/SurrogateListenerTest.php
@@ -20,7 +20,7 @@
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\EventDispatcher\EventDispatcher;
 
-class EsiListenerTest extends \PHPUnit_Framework_TestCase
+class SurrogateListenerTest extends \PHPUnit_Framework_TestCase
 {
     public function testFilterDoesNothingForSubRequests()
     {
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/Command/BarCommand.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/Command/BarCommand.php
index 0eb420f..f3fd14b 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/Command/BarCommand.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fixtures/ExtensionPresentBundle/Command/BarCommand.php
@@ -3,11 +3,12 @@
 namespace Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\Command;
 
 use Symfony\Component\Console\Command\Command;
+use Symfony\Component\HttpKernel\Bundle;
 
 /**
  * This command has a required parameter on the constructor and will be ignored by the default Bundle implementation.
  *
- * @see Symfony\Component\HttpKernel\Bundle\Bundle::registerCommands
+ * @see Bundle::registerCommands()
  */
 class BarCommand extends Command
 {
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php
index 8a194f1..4e487a4 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php
@@ -126,7 +126,7 @@ private function getKernel($returnValue)
 
     /**
      * Creates a Kernel expecting a request equals to $request
-     * Allows delta in comparison in case REQUEST_TIME changed by 1 second
+     * Allows delta in comparison in case REQUEST_TIME changed by 1 second.
      */
     private function getKernelExpectingRequest(Request $request)
     {
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php
index 7da3030..89ea051 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php
@@ -12,8 +12,6 @@
 namespace Symfony\Component\HttpKernel\Tests\HttpCache;
 
 use Symfony\Component\HttpKernel\HttpCache\HttpCache;
-use Symfony\Component\HttpKernel\HttpCache\StoreInterface;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestHttpKernel.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestHttpKernel.php
index da8c34c..5546ba2 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestHttpKernel.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/HttpCache/TestHttpKernel.php
@@ -72,8 +72,8 @@ public function callController(Request $request)
 
         $response = new Response($this->body, $this->status, $this->headers);
 
-        if (null !== $this->customizer) {
-            call_user_func($this->customizer, $request, $response);
+        if (null !== $customizer = $this->customizer) {
+            $customizer($request, $response);
         }
 
         return $response;
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/KernelTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/KernelTest.php
index 96c9965..3101b12 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/KernelTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/KernelTest.php
@@ -11,6 +11,8 @@
 
 namespace Symfony\Component\HttpKernel\Tests;
 
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\HttpKernel\Config\EnvParametersResource;
 use Symfony\Component\HttpKernel\Kernel;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
 use Symfony\Component\HttpFoundation\Request;
@@ -111,6 +113,42 @@ public function testClassCacheIsNotLoadedWhenKernelIsNotBooted()
             ->method('doLoadClassCache');
     }
 
+    public function testEnvParametersResourceIsAdded()
+    {
+        $container = new ContainerBuilder();
+        $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest')
+            ->disableOriginalConstructor()
+            ->setMethods(array('getContainerBuilder', 'prepareContainer', 'getCacheDir', 'getLogDir'))
+            ->getMock();
+        $kernel->expects($this->any())
+            ->method('getContainerBuilder')
+            ->will($this->returnValue($container));
+        $kernel->expects($this->any())
+            ->method('prepareContainer')
+            ->will($this->returnValue(null));
+        $kernel->expects($this->any())
+            ->method('getCacheDir')
+            ->will($this->returnValue(sys_get_temp_dir()));
+        $kernel->expects($this->any())
+            ->method('getLogDir')
+            ->will($this->returnValue(sys_get_temp_dir()));
+
+        $reflection = new \ReflectionClass(get_class($kernel));
+        $method = $reflection->getMethod('buildContainer');
+        $method->setAccessible(true);
+        $method->invoke($kernel);
+
+        $found = false;
+        foreach ($container->getResources() as $resource) {
+            if ($resource instanceof EnvParametersResource) {
+                $found = true;
+                break;
+            }
+        }
+
+        $this->assertTrue($found);
+    }
+
     public function testBootKernelSeveralTimesOnlyInitializesBundlesOnce()
     {
         $kernel = $this->getKernel(array('initializeBundles', 'initializeContainer'));
@@ -194,11 +232,6 @@ public function testHandleBootsTheKernel()
 
     public function testStripComments()
     {
-        if (!function_exists('token_get_all')) {
-            $this->markTestSkipped('The function token_get_all() is not available.');
-
-            return;
-        }
         $source = <<<'EOF'
 <?php
 
@@ -271,7 +304,7 @@ public function doStuff()
 
         // Heredocs are preserved, making the output mixing Unix and Windows line
         // endings, switching to "\n" everywhere on Windows to avoid failure.
-        if (defined('PHP_WINDOWS_VERSION_MAJOR')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $expected = str_replace("\r\n", "\n", $expected);
             $output = str_replace("\r\n", "\n", $output);
         }
@@ -279,21 +312,21 @@ public function doStuff()
         $this->assertEquals($expected, $output);
     }
 
-    public function testIsClassInActiveBundleFalse()
+    public function testLegacyIsClassInActiveBundleFalse()
     {
         $kernel = $this->getKernelMockForIsClassInActiveBundleTest();
 
         $this->assertFalse($kernel->isClassInActiveBundle('Not\In\Active\Bundle'));
     }
 
-    public function testIsClassInActiveBundleFalseNoNamespace()
+    public function testLegacyIsClassInActiveBundleFalseNoNamespace()
     {
         $kernel = $this->getKernelMockForIsClassInActiveBundleTest();
 
         $this->assertFalse($kernel->isClassInActiveBundle('NotNamespacedClass'));
     }
 
-    public function testIsClassInActiveBundleTrue()
+    public function testLegacyIsClassInActiveBundleTrue()
     {
         $kernel = $this->getKernelMockForIsClassInActiveBundleTest();
 
@@ -302,6 +335,8 @@ public function testIsClassInActiveBundleTrue()
 
     protected function getKernelMockForIsClassInActiveBundleTest()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
         $bundle = new FooBarBundle();
 
         $kernel = $this->getKernel(array('getBundles'));
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcacheMock.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcacheMock.php
index 8309b77..9ca9816 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcacheMock.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcacheMock.php
@@ -22,7 +22,7 @@ class MemcacheMock
     private $storage = array();
 
     /**
-     * Open memcached server connection
+     * Open memcached server connection.
      *
      * @param string $host
      * @param int    $port
@@ -42,7 +42,7 @@ public function connect($host, $port = null, $timeout = null)
     }
 
     /**
-     * Open memcached server persistent connection
+     * Open memcached server persistent connection.
      *
      * @param string $host
      * @param int    $port
@@ -62,7 +62,7 @@ public function pconnect($host, $port = null, $timeout = null)
     }
 
     /**
-     * Add a memcached server to connection pool
+     * Add a memcached server to connection pool.
      *
      * @param string   $host
      * @param int      $port
@@ -187,7 +187,7 @@ public function get($key, &$flags = null)
     }
 
     /**
-     * Delete item from the server
+     * Delete item from the server.
      *
      * @param string $key
      *
@@ -209,7 +209,7 @@ public function delete($key)
     }
 
     /**
-     * Flush all existing items at the server
+     * Flush all existing items at the server.
      *
      * @return bool
      */
@@ -225,7 +225,7 @@ public function flush()
     }
 
     /**
-     * Close memcached server connection
+     * Close memcached server connection.
      *
      * @return bool
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcachedMock.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcachedMock.php
index 7f220a1..da98a12 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcachedMock.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/MemcachedMock.php
@@ -22,7 +22,7 @@ class MemcachedMock
     private $storage = array();
 
     /**
-     * Set a Memcached option
+     * Set a Memcached option.
      *
      * @param int   $option
      * @param mixed $value
@@ -35,7 +35,7 @@ public function setOption($option, $value)
     }
 
     /**
-     * Add a memcached server to connection pool
+     * Add a memcached server to connection pool.
      *
      * @param string $host
      * @param int    $port
@@ -141,7 +141,7 @@ public function get($key, $cache_cb = null, &$cas_token = null)
     }
 
     /**
-     * Append data to an existing item
+     * Append data to an existing item.
      *
      * @param string $key
      * @param string $value
@@ -164,7 +164,7 @@ public function append($key, $value)
     }
 
     /**
-     * Delete item from the server
+     * Delete item from the server.
      *
      * @param string $key
      *
@@ -186,7 +186,7 @@ public function delete($key)
     }
 
     /**
-     * Flush all existing items at the server
+     * Flush all existing items at the server.
      *
      * @return bool
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/RedisMock.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/RedisMock.php
index 9ac2627..694dc1e 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/RedisMock.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/Mock/RedisMock.php
@@ -22,7 +22,7 @@ class RedisMock
     private $storage = array();
 
     /**
-     * Add a server to connection pool
+     * Add a server to connection pool.
      *
      * @param string $host
      * @param int    $port
@@ -132,7 +132,7 @@ public function get($key)
     }
 
     /**
-     * Append data to an existing item
+     * Append data to an existing item.
      *
      * @param string $key
      * @param string $value
@@ -205,7 +205,7 @@ public function flushAll()
     }
 
     /**
-     * Close Redis server connection
+     * Close Redis server connection.
      *
      * @return bool
      */
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php
index eee1a36..43a8960 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php
@@ -60,10 +60,6 @@ public function testFindWorksWithInvalidDates()
 
     protected function setUp()
     {
-        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
-            $this->markTestSkipped('The "HttpFoundation" component is not available');
-        }
-
         if (!class_exists('SQLite3') && (!class_exists('PDO') || !in_array('sqlite', \PDO::getAvailableDrivers()))) {
             $this->markTestSkipped('This test requires SQLite support in your environment');
         }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/UriSignerTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/UriSignerTest.php
index 8ffc2bf..b66014d 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/UriSignerTest.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/UriSignerTest.php
@@ -33,5 +33,7 @@ public function testCheck()
 
         $this->assertTrue($signer->check($signer->sign('http://example.com/foo')));
         $this->assertTrue($signer->check($signer->sign('http://example.com/foo?foo=bar')));
+
+        $this->assertTrue($signer->sign('http://example.com/foo?foo=bar&bar=foo') === $signer->sign('http://example.com/foo?bar=foo&foo=bar'));
     }
 }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/UriSigner.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/UriSigner.php
index 7b7d452..c97c030 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/UriSigner.php
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/UriSigner.php
@@ -42,6 +42,15 @@ public function __construct($secret)
      */
     public function sign($uri)
     {
+        $url = parse_url($uri);
+        if (isset($url['query'])) {
+            parse_str($url['query'], $params);
+        } else {
+            $params = array();
+        }
+
+        $uri = $this->buildUrl($url, $params);
+
         return $uri.(false === (strpos($uri, '?')) ? '?' : '&').'_hash='.$this->computeHash($uri);
     }
 
@@ -58,15 +67,43 @@ public function sign($uri)
      */
     public function check($uri)
     {
-        if (!preg_match('/^(.*)(?:\?|&)_hash=(.+?)$/', $uri, $matches)) {
+        $url = parse_url($uri);
+        if (isset($url['query'])) {
+            parse_str($url['query'], $params);
+        } else {
+            $params = array();
+        }
+
+        if (empty($params['_hash'])) {
             return false;
         }
 
-        return $this->computeHash($matches[1]) === $matches[2];
+        $hash = urlencode($params['_hash']);
+        unset($params['_hash']);
+
+        return $this->computeHash($this->buildUrl($url, $params)) === $hash;
     }
 
     private function computeHash($uri)
     {
         return urlencode(base64_encode(hash_hmac('sha256', $uri, $this->secret, true)));
     }
+
+    private function buildUrl(array $url, array $params = array())
+    {
+        ksort($params);
+        $url['query'] = http_build_query($params);
+
+        $scheme   = isset($url['scheme']) ? $url['scheme'].'://' : '';
+        $host     = isset($url['host']) ? $url['host'] : '';
+        $port     = isset($url['port']) ? ':'.$url['port'] : '';
+        $user     = isset($url['user']) ? $url['user'] : '';
+        $pass     = isset($url['pass']) ? ':'.$url['pass']  : '';
+        $pass     = ($user || $pass) ? "$pass@" : '';
+        $path     = isset($url['path']) ? $url['path'] : '';
+        $query    = isset($url['query']) && $url['query'] ? '?'.$url['query'] : '';
+        $fragment = isset($url['fragment']) ? '#'.$url['fragment'] : '';
+
+        return $scheme.$user.$pass.$host.$port.$path.$query.$fragment;
+    }
 }
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/composer.json b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/composer.json
index 338602a..4c7b1ef 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/composer.json
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/composer.json
@@ -17,24 +17,26 @@
     ],
     "require": {
         "php": ">=5.3.3",
-        "symfony/event-dispatcher": "~2.5",
-        "symfony/http-foundation": "~2.5",
-        "symfony/debug": "~2.6",
+        "symfony/event-dispatcher": "~2.5.9|~2.6,>=2.6.2",
+        "symfony/http-foundation": "~2.5,>=2.5.4",
+        "symfony/debug": "~2.6,>=2.6.2",
         "psr/log": "~1.0"
     },
     "require-dev": {
-        "symfony/browser-kit": "~2.2",
+        "symfony/browser-kit": "~2.3",
         "symfony/class-loader": "~2.1",
-        "symfony/config": "~2.0",
-        "symfony/console": "~2.2",
-        "symfony/dependency-injection": "~2.0",
+        "symfony/config": "~2.0,>=2.0.5",
+        "symfony/console": "~2.3",
+        "symfony/css-selector": "~2.0,>=2.0.5",
+        "symfony/dependency-injection": "~2.2",
+        "symfony/dom-crawler": "~2.0,>=2.0.5",
         "symfony/expression-language": "~2.4",
-        "symfony/finder": "~2.0",
-        "symfony/process": "~2.0",
+        "symfony/finder": "~2.0,>=2.0.5",
+        "symfony/process": "~2.0,>=2.0.5",
         "symfony/routing": "~2.2",
-        "symfony/stopwatch": "~2.2",
+        "symfony/stopwatch": "~2.3",
         "symfony/templating": "~2.2",
-        "symfony/translation": "~2.0",
+        "symfony/translation": "~2.0,>=2.0.5",
         "symfony/var-dumper": "~2.6"
     },
     "suggest": {
diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/phpunit.xml.dist b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/phpunit.xml.dist
index f572ab2..cbfaa9f 100644
--- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/phpunit.xml.dist
+++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/phpunit.xml.dist
@@ -6,6 +6,10 @@
          colors="true"
          bootstrap="vendor/autoload.php"
 >
+    <php>
+        <!-- Silence E_USER_DEPRECATED (-16385 == -1 & ~E_USER_DEPRECATED) -->
+        <ini name="error_reporting" value="-16385"/>
+    </php>
     <testsuites>
         <testsuite name="Symfony HttpKernel Component Test Suite">
             <directory>./Tests/</directory>
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/.gitignore b/core/vendor/symfony/process/Symfony/Component/Process/.gitignore
new file mode 100644
index 0000000..c49a5d8
--- /dev/null
+++ b/core/vendor/symfony/process/Symfony/Component/Process/.gitignore
@@ -0,0 +1,3 @@
+vendor/
+composer.lock
+phpunit.xml
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/ExecutableFinder.php b/core/vendor/symfony/process/Symfony/Component/Process/ExecutableFinder.php
index 6ae74dc..a9c0a5c 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/ExecutableFinder.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/ExecutableFinder.php
@@ -72,13 +72,13 @@ public function find($name, $default = null, array $extraDirs = array())
         }
 
         $suffixes = array('');
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $pathExt = getenv('PATHEXT');
             $suffixes = $pathExt ? explode(PATH_SEPARATOR, $pathExt) : $this->suffixes;
         }
         foreach ($suffixes as $suffix) {
             foreach ($dirs as $dir) {
-                if (is_file($file = $dir.DIRECTORY_SEPARATOR.$name.$suffix) && (defined('PHP_WINDOWS_VERSION_BUILD') || is_executable($file))) {
+                if (is_file($file = $dir.DIRECTORY_SEPARATOR.$name.$suffix) && ('\\' === DIRECTORY_SEPARATOR || is_executable($file))) {
                     return $file;
                 }
             }
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/LICENSE b/core/vendor/symfony/process/Symfony/Component/Process/LICENSE
index 0b3292c..43028bc 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/LICENSE
+++ b/core/vendor/symfony/process/Symfony/Component/Process/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2014 Fabien Potencier
+Copyright (c) 2004-2015 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/PhpExecutableFinder.php b/core/vendor/symfony/process/Symfony/Component/Process/PhpExecutableFinder.php
index 7854487..91d6d78 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/PhpExecutableFinder.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/PhpExecutableFinder.php
@@ -60,7 +60,7 @@ public function find($includeArgs = true)
         }
 
         $dirs = array(PHP_BINDIR);
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $dirs[] = 'C:\xampp\php\\';
         }
 
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Pipes/UnixPipes.php b/core/vendor/symfony/process/Symfony/Component/Process/Pipes/UnixPipes.php
index 69f3146..b384103 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Pipes/UnixPipes.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Pipes/UnixPipes.php
@@ -121,7 +121,7 @@ public function readAndWrite($blocking, $close = false)
             $r = $this->pipes;
         }
         // discard read on stdin
-        unset ($r[0]);
+        unset($r[0]);
 
         $w = isset($this->pipes[0]) ? array($this->pipes[0]) : null;
         $e = null;
@@ -172,7 +172,7 @@ public function readAndWrite($blocking, $close = false)
         }
 
         if (null !== $w && 0 < count($w)) {
-            while ($len = strlen($this->inputBuffer)) {
+            while (strlen($this->inputBuffer)) {
                 $written = fwrite($w[0], $this->inputBuffer, 2 << 18); // write 512k
                 if ($written > 0) {
                     $this->inputBuffer = (string) substr($this->inputBuffer, $written);
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Pipes/WindowsPipes.php b/core/vendor/symfony/process/Symfony/Component/Process/Pipes/WindowsPipes.php
index ecdf50e..01dd5d0 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Pipes/WindowsPipes.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Pipes/WindowsPipes.php
@@ -230,12 +230,12 @@ private function write($blocking, $close)
             if (false === $data || (true === $close && feof($r['input']) && '' === $data)) {
                 // no more data to read on input resource
                 // use an empty buffer in the next reads
-                unset($this->input);
+                $this->input = null;
             }
         }
 
         if (null !== $w && 0 < count($w)) {
-            while ($len = strlen($this->inputBuffer)) {
+            while (strlen($this->inputBuffer)) {
                 $written = fwrite($w[0], $this->inputBuffer, 2 << 18);
                 if ($written > 0) {
                     $this->inputBuffer = (string) substr($this->inputBuffer, $written);
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Process.php b/core/vendor/symfony/process/Symfony/Component/Process/Process.php
index b91bc5d..ece751d 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Process.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Process.php
@@ -155,7 +155,7 @@ public function __construct($commandline, $cwd = null, array $env = null, $input
         // on Gnu/Linux, PHP builds with --enable-maintainer-zts are also affected
         // @see : https://bugs.php.net/bug.php?id=51800
         // @see : https://bugs.php.net/bug.php?id=50524
-        if (null === $this->cwd && (defined('ZEND_THREAD_SAFE') || defined('PHP_WINDOWS_VERSION_BUILD'))) {
+        if (null === $this->cwd && (defined('ZEND_THREAD_SAFE') || '\\' === DIRECTORY_SEPARATOR)) {
             $this->cwd = getcwd();
         }
         if (null !== $env) {
@@ -164,10 +164,10 @@ public function __construct($commandline, $cwd = null, array $env = null, $input
 
         $this->input = $input;
         $this->setTimeout($timeout);
-        $this->useFileHandles = defined('PHP_WINDOWS_VERSION_BUILD');
+        $this->useFileHandles = '\\' === DIRECTORY_SEPARATOR;
         $this->pty = false;
         $this->enhanceWindowsCompatibility = true;
-        $this->enhanceSigchildCompatibility = !defined('PHP_WINDOWS_VERSION_BUILD') && $this->isSigchildEnabled();
+        $this->enhanceSigchildCompatibility = '\\' !== DIRECTORY_SEPARATOR && $this->isSigchildEnabled();
         $this->options = array_replace(array('suppress_errors' => true, 'binary_pipes' => true), $options);
     }
 
@@ -276,7 +276,7 @@ public function start($callback = null)
 
         $commandline = $this->commandline;
 
-        if (defined('PHP_WINDOWS_VERSION_BUILD') && $this->enhanceWindowsCompatibility) {
+        if ('\\' === DIRECTORY_SEPARATOR && $this->enhanceWindowsCompatibility) {
             $commandline = 'cmd /V:ON /E:ON /C "('.$commandline.')';
             foreach ($this->processPipes->getFiles() as $offset => $filename) {
                 $commandline .= ' '.$offset.'>'.ProcessUtils::escapeArgument($filename);
@@ -356,8 +356,8 @@ public function wait($callback = null)
 
         do {
             $this->checkTimeout();
-            $running = defined('PHP_WINDOWS_VERSION_BUILD') ? $this->isRunning() : $this->processPipes->areOpen();
-            $close = !defined('PHP_WINDOWS_VERSION_BUILD') || !$running;
+            $running = '\\' === DIRECTORY_SEPARATOR ? $this->isRunning() : $this->processPipes->areOpen();
+            $close = '\\' !== DIRECTORY_SEPARATOR || !$running;
             $this->readPipes(true, $close);
         } while ($running);
 
@@ -476,7 +476,7 @@ public function getOutput()
 
         $this->requireProcessIsStarted(__FUNCTION__);
 
-        $this->readPipes(false, defined('PHP_WINDOWS_VERSION_BUILD') ? !$this->processInformation['running'] : true);
+        $this->readPipes(false, '\\' === DIRECTORY_SEPARATOR ? !$this->processInformation['running'] : true);
 
         return $this->stdout;
     }
@@ -499,6 +499,11 @@ public function getIncrementalOutput()
         $data = $this->getOutput();
 
         $latest = substr($data, $this->incrementalOutputOffset);
+
+        if (false === $latest) {
+            return '';
+        }
+
         $this->incrementalOutputOffset = strlen($data);
 
         return $latest;
@@ -535,7 +540,7 @@ public function getErrorOutput()
 
         $this->requireProcessIsStarted(__FUNCTION__);
 
-        $this->readPipes(false, defined('PHP_WINDOWS_VERSION_BUILD') ? !$this->processInformation['running'] : true);
+        $this->readPipes(false, '\\' === DIRECTORY_SEPARATOR ? !$this->processInformation['running'] : true);
 
         return $this->stderr;
     }
@@ -559,6 +564,11 @@ public function getIncrementalErrorOutput()
         $data = $this->getErrorOutput();
 
         $latest = substr($data, $this->incrementalErrorOutputOffset);
+
+        if (false === $latest) {
+            return '';
+        }
+
         $this->incrementalErrorOutputOffset = strlen($data);
 
         return $latest;
@@ -787,7 +797,7 @@ public function stop($timeout = 10, $signal = null)
     {
         $timeoutMicro = microtime(true) + $timeout;
         if ($this->isRunning()) {
-            if (defined('PHP_WINDOWS_VERSION_BUILD') && !$this->isSigchildEnabled()) {
+            if ('\\' === DIRECTORY_SEPARATOR && !$this->isSigchildEnabled()) {
                 exec(sprintf("taskkill /F /T /PID %d 2>&1", $this->getPid()), $output, $exitCode);
                 if ($exitCode > 0) {
                     throw new RuntimeException('Unable to kill the process');
@@ -907,7 +917,7 @@ public function setTimeout($timeout)
      *
      * To disable the timeout, set this value to null.
      *
-     * @param int|float|null     $timeout The timeout in seconds
+     * @param int|float|null $timeout The timeout in seconds
      *
      * @return self The current Process instance.
      *
@@ -936,7 +946,7 @@ public function setIdleTimeout($timeout)
      */
     public function setTty($tty)
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD') && $tty) {
+        if ('\\' === DIRECTORY_SEPARATOR && $tty) {
             throw new RuntimeException('TTY mode is not supported on Windows platform.');
         }
 
@@ -958,7 +968,7 @@ public function isTty()
     /**
      * Sets PTY mode.
      *
-     * @param bool    $bool
+     * @param bool $bool
      *
      * @return self
      */
@@ -1228,7 +1238,7 @@ public static function isPtySupported()
             return $result;
         }
 
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             return $result = false;
         }
 
@@ -1249,7 +1259,7 @@ public static function isPtySupported()
      */
     private function getDescriptors()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->processPipes = WindowsPipes::create($this, $this->input);
         } else {
             $this->processPipes = UnixPipes::create($this, $this->input);
@@ -1280,8 +1290,7 @@ protected function buildCallback($callback)
     {
         $that = $this;
         $out = self::OUT;
-        $err = self::ERR;
-        $callback = function ($type, $data) use ($that, $callback, $out, $err) {
+        $callback = function ($type, $data) use ($that, $callback, $out) {
             if ($out == $type) {
                 $that->addOutput($data);
             } else {
@@ -1310,7 +1319,7 @@ protected function updateStatus($blocking)
         $this->processInformation = proc_get_status($this->process);
         $this->captureExitCode();
 
-        $this->readPipes($blocking, defined('PHP_WINDOWS_VERSION_BUILD') ? !$this->processInformation['running'] : true);
+        $this->readPipes($blocking, '\\' === DIRECTORY_SEPARATOR ? !$this->processInformation['running'] : true);
 
         if (!$this->processInformation['running']) {
             $this->close();
@@ -1341,7 +1350,7 @@ protected function isSigchildEnabled()
     /**
      * Validates and returns the filtered timeout.
      *
-     * @param int|float|null     $timeout
+     * @param int|float|null $timeout
      *
      * @return float|null
      *
@@ -1370,11 +1379,12 @@ private function readPipes($blocking, $close)
     {
         $result = $this->processPipes->readAndWrite($blocking, $close);
 
+        $callback = $this->callback;
         foreach ($result as $type => $data) {
             if (3 == $type) {
                 $this->fallbackExitcode = (int) $data;
             } else {
-                call_user_func($this->callback, $type === self::STDOUT ? self::OUT : self::ERR, $data);
+                $callback($type === self::STDOUT ? self::OUT : self::ERR, $data);
             }
         }
     }
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/ProcessBuilder.php b/core/vendor/symfony/process/Symfony/Component/Process/ProcessBuilder.php
index 71633cd..189ab8a 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/ProcessBuilder.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/ProcessBuilder.php
@@ -32,7 +32,7 @@ class ProcessBuilder
     private $outputDisabled = false;
 
     /**
-     * Constructor
+     * Constructor.
      *
      * @param string[] $arguments An array of arguments
      */
@@ -129,7 +129,7 @@ public function inheritEnvironmentVariables($inheritEnv = true)
     }
 
     /**
-     * Sets an environment variable
+     * Sets an environment variable.
      *
      * Setting a variable overrides its previous value. Use `null` to unset a
      * defined environment variable.
@@ -187,7 +187,7 @@ public function setInput($input)
      *
      * To disable the timeout, set this value to null.
      *
-     * @param float|null
+     * @param float|null $timeout
      *
      * @return ProcessBuilder
      *
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/ProcessUtils.php b/core/vendor/symfony/process/Symfony/Component/Process/ProcessUtils.php
index 2ec321c..0f4cb89 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/ProcessUtils.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/ProcessUtils.php
@@ -23,7 +23,7 @@
 class ProcessUtils
 {
     /**
-     * This class should not be instantiated
+     * This class should not be instantiated.
      */
     private function __construct()
     {
@@ -42,7 +42,7 @@ public static function escapeArgument($argument)
         //Fix for PHP bug #49446 escapeshellarg doesn't work on Windows
         //@see https://bugs.php.net/bug.php?id=43784
         //@see https://bugs.php.net/bug.php?id=49446
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             if ('' === $argument) {
                 return escapeshellarg($argument);
             }
@@ -75,7 +75,7 @@ public static function escapeArgument($argument)
     }
 
     /**
-     * Validates and normalizes a Process input
+     * Validates and normalizes a Process input.
      *
      * @param string $caller The name of method call that validates the input
      * @param mixed  $input  The input to validate
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Tests/AbstractProcessTest.php b/core/vendor/symfony/process/Symfony/Component/Process/Tests/AbstractProcessTest.php
index d48698a..5bfd1a8 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Tests/AbstractProcessTest.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Tests/AbstractProcessTest.php
@@ -128,7 +128,7 @@ public function testCallbacksAreExecutedWithStart()
     }
 
     /**
-     * tests results from sub processes
+     * tests results from sub processes.
      *
      * @dataProvider responsesCodeProvider
      */
@@ -141,7 +141,7 @@ public function testProcessResponses($expected, $getter, $code)
     }
 
     /**
-     * tests results from sub processes
+     * tests results from sub processes.
      *
      * @dataProvider pipesCodeProvider
      */
@@ -236,7 +236,7 @@ public function provideInputValues()
 
     public function chainedCommandsOutputProvider()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             return array(
                 array("2 \r\n2\r\n", '&&', '2'),
             );
@@ -249,7 +249,6 @@ public function chainedCommandsOutputProvider()
     }
 
     /**
-     *
      * @dataProvider chainedCommandsOutputProvider
      */
     public function testChainedCommandsOutput($expected, $operator, $input)
@@ -309,6 +308,37 @@ public function testFlushErrorOutput()
         $this->assertEmpty($p->getErrorOutput());
     }
 
+    public function testGetEmptyIncrementalErrorOutput()
+    {
+        // use a lock file to toggle between writing ("W") and reading ("R") the
+        // output stream
+        $lock = tempnam(sys_get_temp_dir(), get_class($this).'Lock');
+        file_put_contents($lock, 'W');
+
+        $p = $this->getProcess(sprintf('php -r %s', escapeshellarg('$n = 0; while ($n < 3) { if (\'W\' === file_get_contents('.var_export($lock, true).')) { file_put_contents(\'php://stderr\', \'ERROR\'); $n++; file_put_contents('.var_export($lock, true).', \'R\'); } usleep(100); }')));
+
+        $p->start();
+
+        $shouldWrite = false;
+
+        while ($p->isRunning()) {
+            if ('R' === file_get_contents($lock)) {
+                if (!$shouldWrite) {
+                    $this->assertLessThanOrEqual(1, preg_match_all('/ERROR/', $p->getIncrementalOutput(), $matches));
+                    $shouldWrite = true;
+                } else {
+                    $this->assertSame('', $p->getIncrementalOutput());
+
+                    file_put_contents($lock, 'W');
+                    $shouldWrite = false;
+                }
+            }
+            usleep(100);
+        }
+
+        unlink($lock);
+    }
+
     public function testGetOutput()
     {
         $p = $this->getProcess(sprintf('php -r %s', escapeshellarg('$n = 0; while ($n < 3) { echo \' foo \'; $n++; }')));
@@ -347,9 +377,40 @@ public function testFlushOutput()
         $this->assertEmpty($p->getOutput());
     }
 
+    public function testGetEmptyIncrementalOutput()
+    {
+        // use a lock file to toggle between writing ("W") and reading ("R") the
+        // output stream
+        $lock = tempnam(sys_get_temp_dir(), get_class($this).'Lock');
+        file_put_contents($lock, 'W');
+
+        $p = $this->getProcess(sprintf('php -r %s', escapeshellarg('$n = 0; while ($n < 3) { if (\'W\' === file_get_contents('.var_export($lock, true).')) { echo \' foo \'; $n++; file_put_contents('.var_export($lock, true).', \'R\'); } usleep(100); }')));
+
+        $p->start();
+
+        $shouldWrite = false;
+
+        while ($p->isRunning()) {
+            if ('R' === file_get_contents($lock)) {
+                if (!$shouldWrite) {
+                    $this->assertLessThanOrEqual(1, preg_match_all('/foo/', $p->getIncrementalOutput(), $matches));
+                    $shouldWrite = true;
+                } else {
+                    $this->assertSame('', $p->getIncrementalOutput());
+
+                    file_put_contents($lock, 'W');
+                    $shouldWrite = false;
+                }
+            }
+            usleep(100);
+        }
+
+        unlink($lock);
+    }
+
     public function testZeroAsOutput()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             // see http://stackoverflow.com/questions/7105433/windows-batch-echo-without-new-line
             $p = $this->getProcess('echo | set /p dummyName=0');
         } else {
@@ -362,7 +423,7 @@ public function testZeroAsOutput()
 
     public function testExitCodeCommandFailed()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('Windows does not support POSIX exit code');
         }
 
@@ -375,7 +436,7 @@ public function testExitCodeCommandFailed()
 
     public function testTTYCommand()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('Windows does have /dev/tty support');
         }
 
@@ -390,7 +451,7 @@ public function testTTYCommand()
 
     public function testTTYCommandExitCode()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('Windows does have /dev/tty support');
         }
 
@@ -403,7 +464,7 @@ public function testTTYCommandExitCode()
 
     public function testTTYInWindowsEnvironment()
     {
-        if (!defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' !== DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('This test is for Windows platform only');
         }
 
@@ -570,7 +631,7 @@ public function testIsNotSuccessful()
 
     public function testProcessIsNotSignaled()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('Windows does not support POSIX signals');
         }
 
@@ -581,7 +642,7 @@ public function testProcessIsNotSignaled()
 
     public function testProcessWithoutTermSignalIsNotSignaled()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('Windows does not support POSIX signals');
         }
 
@@ -592,7 +653,7 @@ public function testProcessWithoutTermSignalIsNotSignaled()
 
     public function testProcessWithoutTermSignal()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('Windows does not support POSIX signals');
         }
 
@@ -603,7 +664,7 @@ public function testProcessWithoutTermSignal()
 
     public function testProcessIsSignaledIfStopped()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('Windows does not support POSIX signals');
         }
 
@@ -615,7 +676,7 @@ public function testProcessIsSignaledIfStopped()
 
     public function testProcessWithTermSignal()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('Windows does not support POSIX signals');
         }
 
@@ -631,7 +692,7 @@ public function testProcessWithTermSignal()
 
     public function testProcessThrowsExceptionWhenExternallySignaled()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('Windows does not support POSIX signals');
         }
 
@@ -692,7 +753,7 @@ public function testRunProcessWithTimeout()
         }
         $duration = microtime(true) - $start;
 
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             // Windows is a bit slower as it read file handles, then allow twice the precision
             $maxDuration = $timeout + 2 * Process::TIMEOUT_PRECISION;
         } else {
@@ -865,7 +926,7 @@ public function testMethodsThatNeedARunningProcess($method)
     {
         $process = $this->getProcess('php -m');
         $this->setExpectedException('Symfony\Component\Process\Exception\LogicException', sprintf('Process must be started before calling %s.', $method));
-        call_user_func(array($process, $method));
+        $process->{$method}();
     }
 
     public function provideMethodsThatNeedARunningProcess()
@@ -887,7 +948,7 @@ public function testMethodsThatNeedATerminatedProcess($method)
         $process = $this->getProcess('php -r "sleep(1);"');
         $process->start();
         try {
-            call_user_func(array($process, $method));
+            $process->{$method}();
             $process->stop(0);
             $this->fail('A LogicException must have been thrown');
         } catch (\Exception $e) {
@@ -909,7 +970,7 @@ public function provideMethodsThatNeedATerminatedProcess()
 
     private function verifyPosixIsEnabled()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('POSIX signals do not work on Windows');
         }
         if (!defined('SIGUSR1')) {
@@ -922,7 +983,7 @@ private function verifyPosixIsEnabled()
      */
     public function testSignalWithWrongIntSignal()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('POSIX signals do not work on Windows');
         }
 
@@ -936,7 +997,7 @@ public function testSignalWithWrongIntSignal()
      */
     public function testSignalWithWrongNonIntSignal()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('POSIX signals do not work on Windows');
         }
 
@@ -1013,7 +1074,7 @@ public function testStartWithACallbackAndDisabledOutput($startMethod, $exception
         $p = $this->getProcess('php -r "usleep(500000);"');
         $p->disableOutput();
         $this->setExpectedException($exception, $exceptionMessage);
-        call_user_func(array($p, $startMethod), function () {});
+        $p->{$startMethod}(function () {});
     }
 
     public function provideStartMethods()
@@ -1034,7 +1095,7 @@ public function testGetOutputWhileDisabled($fetchMethod)
         $p->disableOutput();
         $p->start();
         $this->setExpectedException('Symfony\Component\Process\Exception\LogicException', 'Output has been disabled.');
-        call_user_func(array($p, $fetchMethod));
+        $p->{$fetchMethod}();
     }
 
     public function provideOutputFetchingMethods()
@@ -1064,7 +1125,7 @@ public function pipesCodeProvider()
             'include \''.__DIR__.'/PipeStdinInStdoutStdErrStreamSelect.php\';',
         );
 
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             // Avoid XL buffers on Windows because of https://bugs.php.net/bug.php?id=65650
             $sizes = array(1, 2, 4, 8);
         } else {
@@ -1082,7 +1143,7 @@ public function pipesCodeProvider()
     }
 
     /**
-     * provides default method names for simple getter/setter
+     * provides default method names for simple getter/setter.
      */
     public function methodProvider()
     {
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Tests/ExecutableFinderTest.php b/core/vendor/symfony/process/Symfony/Component/Process/Tests/ExecutableFinderTest.php
index 5fbe1e0..5033cda 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Tests/ExecutableFinderTest.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Tests/ExecutableFinderTest.php
@@ -94,7 +94,7 @@ public function testFindWithOpenBaseDir()
             $this->markTestSkipped('Requires the PHP_BINARY constant');
         }
 
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('Cannot run test on windows');
         }
 
@@ -102,7 +102,7 @@ public function testFindWithOpenBaseDir()
             $this->markTestSkipped('Cannot test when open_basedir is set');
         }
 
-        ini_set('open_basedir', dirname(PHP_BINARY).PATH_SEPARATOR.'/');
+        $this->iniSet('open_basedir', dirname(PHP_BINARY).PATH_SEPARATOR.'/');
 
         $finder = new ExecutableFinder();
         $result = $finder->find($this->getPhpBinaryName());
@@ -120,10 +120,12 @@ public function testFindProcessInOpenBasedir()
             $this->markTestSkipped('Requires the PHP_BINARY constant');
         }
 
-        $execPath = __DIR__.'/SignalListener.php';
+        if ('\\' === DIRECTORY_SEPARATOR) {
+            $this->markTestSkipped('Cannot run test on windows');
+        }
 
         $this->setPath('');
-        ini_set('open_basedir', PHP_BINARY.PATH_SEPARATOR.'/');
+        $this->iniSet('open_basedir', PHP_BINARY.PATH_SEPARATOR.'/');
 
         $finder = new ExecutableFinder();
         $result = $finder->find($this->getPhpBinaryName(), false);
@@ -133,7 +135,7 @@ public function testFindProcessInOpenBasedir()
 
     private function assertSamePath($expected, $tested)
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->assertEquals(strtolower($expected), strtolower($tested));
         } else {
             $this->assertEquals($expected, $tested);
@@ -142,6 +144,6 @@ private function assertSamePath($expected, $tested)
 
     private function getPhpBinaryName()
     {
-        return basename(PHP_BINARY, defined('PHP_WINDOWS_VERSION_BUILD') ? '.exe' : '');
+        return basename(PHP_BINARY, '\\' === DIRECTORY_SEPARATOR ? '.exe' : '');
     }
 }
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Tests/NonStopableProcess.php b/core/vendor/symfony/process/Symfony/Component/Process/Tests/NonStopableProcess.php
index 2183e48..692feeb 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Tests/NonStopableProcess.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Tests/NonStopableProcess.php
@@ -1,13 +1,12 @@
 <?php
 
 /**
- * Runs a PHP script that can be stopped only with a SIGKILL (9) signal for 3 seconds
+ * Runs a PHP script that can be stopped only with a SIGKILL (9) signal for 3 seconds.
  *
  * @args duration Run this script with a custom duration
  *
  * @example `php NonStopableProcess.php 42` will run the script for 42 seconds
  */
-
 function handleSignal($signal)
 {
     switch ($signal) {
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Tests/PhpExecutableFinderTest.php b/core/vendor/symfony/process/Symfony/Component/Process/Tests/PhpExecutableFinderTest.php
index e16f3f8..3acccac 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Tests/PhpExecutableFinderTest.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Tests/PhpExecutableFinderTest.php
@@ -19,7 +19,7 @@
 class PhpExecutableFinderTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * tests find() with the env var PHP_PATH
+     * tests find() with the env var PHP_PATH.
      */
     public function testFindWithPhpPath()
     {
@@ -43,7 +43,7 @@ public function testFindWithPhpPath()
     }
 
     /**
-     * tests find() with the env var PHP_PATH
+     * tests find() with the env var PHP_PATH.
      */
     public function testFindWithHHVM()
     {
@@ -60,7 +60,7 @@ public function testFindWithHHVM()
     }
 
     /**
-     * tests find() with the env var PHP_PATH
+     * tests find() with the env var PHP_PATH.
      */
     public function testFindArguments()
     {
@@ -74,7 +74,7 @@ public function testFindArguments()
     }
 
     /**
-     * tests find() with default executable
+     * tests find() with default executable.
      */
     public function testFindWithSuffix()
     {
@@ -89,7 +89,7 @@ public function testFindWithSuffix()
         $current = $f->find();
 
         //TODO maybe php executable is custom or even Windows
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->assertTrue(is_executable($current));
             $this->assertTrue((bool) preg_match('/'.addSlashes(DIRECTORY_SEPARATOR).'php\.(exe|bat|cmd|com)$/i', $current), '::find() returns the executable PHP with suffixes');
         }
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessBuilderTest.php b/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessBuilderTest.php
index e864f66..02a960d 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessBuilderTest.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessBuilderTest.php
@@ -102,14 +102,14 @@ public function testPrefixIsPrependedToAllGeneratedProcess()
         $pb->setPrefix('/usr/bin/php');
 
         $proc = $pb->setArguments(array('-v'))->getProcess();
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->assertEquals('"/usr/bin/php" "-v"', $proc->getCommandLine());
         } else {
             $this->assertEquals("'/usr/bin/php' '-v'", $proc->getCommandLine());
         }
 
         $proc = $pb->setArguments(array('-i'))->getProcess();
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->assertEquals('"/usr/bin/php" "-i"', $proc->getCommandLine());
         } else {
             $this->assertEquals("'/usr/bin/php' '-i'", $proc->getCommandLine());
@@ -122,14 +122,14 @@ public function testArrayPrefixesArePrependedToAllGeneratedProcess()
         $pb->setPrefix(array('/usr/bin/php', 'composer.phar'));
 
         $proc = $pb->setArguments(array('-v'))->getProcess();
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->assertEquals('"/usr/bin/php" "composer.phar" "-v"', $proc->getCommandLine());
         } else {
             $this->assertEquals("'/usr/bin/php' 'composer.phar' '-v'", $proc->getCommandLine());
         }
 
         $proc = $pb->setArguments(array('-i'))->getProcess();
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->assertEquals('"/usr/bin/php" "composer.phar" "-i"', $proc->getCommandLine());
         } else {
             $this->assertEquals("'/usr/bin/php' 'composer.phar' '-i'", $proc->getCommandLine());
@@ -141,7 +141,7 @@ public function testShouldEscapeArguments()
         $pb = new ProcessBuilder(array('%path%', 'foo " bar', '%baz%baz'));
         $proc = $pb->getProcess();
 
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->assertSame('^%"path"^% "foo \\" bar" "%baz%baz"', $proc->getCommandLine());
         } else {
             $this->assertSame("'%path%' 'foo \" bar' '%baz%baz'", $proc->getCommandLine());
@@ -154,7 +154,7 @@ public function testShouldEscapeArgumentsAndPrefix()
         $pb->setPrefix('%prefix%');
         $proc = $pb->getProcess();
 
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->assertSame('^%"prefix"^% "arg"', $proc->getCommandLine());
         } else {
             $this->assertSame("'%prefix%' 'arg'", $proc->getCommandLine());
@@ -175,7 +175,7 @@ public function testShouldNotThrowALogicExceptionIfNoArgument()
             ->setPrefix('/usr/bin/php')
             ->getProcess();
 
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->assertEquals('"/usr/bin/php"', $process->getCommandLine());
         } else {
             $this->assertEquals("'/usr/bin/php'", $process->getCommandLine());
@@ -187,7 +187,7 @@ public function testShouldNotThrowALogicExceptionIfNoPrefix()
         $process = ProcessBuilder::create(array('/usr/bin/php'))
             ->getProcess();
 
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->assertEquals('"/usr/bin/php"', $process->getCommandLine());
         } else {
             $this->assertEquals("'/usr/bin/php'", $process->getCommandLine());
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessFailedExceptionTest.php b/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessFailedExceptionTest.php
index c48648f..20753df 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessFailedExceptionTest.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessFailedExceptionTest.php
@@ -19,7 +19,7 @@
 class ProcessFailedExceptionTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * tests ProcessFailedException throws exception if the process was successful
+     * tests ProcessFailedException throws exception if the process was successful.
      */
     public function testProcessFailedExceptionThrowsException()
     {
@@ -42,7 +42,7 @@ public function testProcessFailedExceptionThrowsException()
 
     /**
      * tests ProcessFailedException uses information from process output
-     * to generate exception message
+     * to generate exception message.
      */
     public function testProcessFailedExceptionPopulatesInformationFromProcessOutput()
     {
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessUtilsTest.php b/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessUtilsTest.php
index 8ba94c1..e6564cd 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessUtilsTest.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessUtilsTest.php
@@ -25,7 +25,7 @@ public function testEscapeArgument($result, $argument)
 
     public function dataArguments()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             return array(
                 array('"\"php\" \"-v\""', '"php" "-v"'),
                 array('"foo bar"', 'foo bar'),
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Tests/SigchildEnabledProcessTest.php b/core/vendor/symfony/process/Symfony/Component/Process/Tests/SigchildEnabledProcessTest.php
index 3fea3ba..2668a9b 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Tests/SigchildEnabledProcessTest.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Tests/SigchildEnabledProcessTest.php
@@ -114,7 +114,7 @@ public function testExitCodeIsAvailableAfterSignal()
 
     public function testStartAfterATimeout()
     {
-        if (defined('PHP_WINDOWS_VERSION_BUILD')) {
+        if ('\\' === DIRECTORY_SEPARATOR) {
             $this->markTestSkipped('Restarting a timed-out process on Windows is not supported in sigchild environment');
         }
         parent::testStartAfterATimeout();
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/Tests/SimpleProcessTest.php b/core/vendor/symfony/process/Symfony/Component/Process/Tests/SimpleProcessTest.php
index cd206ea..0a8b126 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/Tests/SimpleProcessTest.php
+++ b/core/vendor/symfony/process/Symfony/Component/Process/Tests/SimpleProcessTest.php
@@ -154,7 +154,7 @@ public function testStopTerminatesProcessCleanly()
             $process->run(function () use ($process) {
                 $process->stop();
             });
-        } catch (RuntimeException $e) {
+        } catch (\RuntimeException $e) {
             $this->fail('A call to stop() is not expected to cause wait() to throw a RuntimeException');
         }
     }
@@ -170,7 +170,7 @@ public function testKillSignalTerminatesProcessCleanly()
                     $process->signal(defined('SIGKILL') ? SIGKILL : 9);
                 }
             });
-        } catch (RuntimeException $e) {
+        } catch (\RuntimeException $e) {
             $this->fail('A call to signal() is not expected to cause wait() to throw a RuntimeException');
         }
     }
@@ -186,7 +186,7 @@ public function testTermSignalTerminatesProcessCleanly()
                     $process->signal(defined('SIGTERM') ? SIGTERM : 15);
                 }
             });
-        } catch (RuntimeException $e) {
+        } catch (\RuntimeException $e) {
             $this->fail('A call to signal() is not expected to cause wait() to throw a RuntimeException');
         }
     }
diff --git a/core/vendor/symfony/process/Symfony/Component/Process/phpunit.xml.dist b/core/vendor/symfony/process/Symfony/Component/Process/phpunit.xml.dist
index fcb230a..8f147bc 100644
--- a/core/vendor/symfony/process/Symfony/Component/Process/phpunit.xml.dist
+++ b/core/vendor/symfony/process/Symfony/Component/Process/phpunit.xml.dist
@@ -6,6 +6,10 @@
          colors="true"
          bootstrap="vendor/autoload.php"
 >
+    <php>
+        <!-- Silence E_USER_DEPRECATED (-16385 == -1 & ~E_USER_DEPRECATED) -->
+        <ini name="error_reporting" value="-16385"/>
+    </php>
     <testsuites>
         <testsuite name="Symfony Process Component Test Suite">
             <directory>./Tests/</directory>
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/CompiledRoute.php b/core/vendor/symfony/routing/Symfony/Component/Routing/CompiledRoute.php
index 35ae69d..3eca9ec 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/CompiledRoute.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/CompiledRoute.php
@@ -105,7 +105,7 @@ public function getRegex()
     }
 
     /**
-     * Returns the host regex
+     * Returns the host regex.
      *
      * @return string|null The host regex or null
      */
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/ExceptionInterface.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/ExceptionInterface.php
index 5289f52..9fcd224 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/ExceptionInterface.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/ExceptionInterface.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Routing\Exception;
 
 /**
- * ExceptionInterface
+ * ExceptionInterface.
  *
  * @author Alexandre Salomé <alexandre.salome@gmail.com>
  *
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/InvalidParameterException.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/InvalidParameterException.php
index 4f12469..ae37c34 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/InvalidParameterException.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/InvalidParameterException.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Routing\Exception;
 
 /**
- * Exception thrown when a parameter is not valid
+ * Exception thrown when a parameter is not valid.
  *
  * @author Alexandre Salomé <alexandre.salome@gmail.com>
  *
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/RouteNotFoundException.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/RouteNotFoundException.php
index fd275be..8059e45 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/RouteNotFoundException.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Exception/RouteNotFoundException.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Routing\Exception;
 
 /**
- * Exception thrown when a route does not exist
+ * Exception thrown when a route does not exist.
  *
  * @author Alexandre Salomé <alexandre.salome@gmail.com>
  *
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGeneratorInterface.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGeneratorInterface.php
index 944a44b..a70c90a 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGeneratorInterface.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGeneratorInterface.php
@@ -45,6 +45,7 @@
 
     /**
      * Generates a relative path based on the current request path, e.g. "../parent-file".
+     *
      * @see UrlGenerator::getRelativePath()
      */
     const RELATIVE_PATH = 'relative';
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/LICENSE b/core/vendor/symfony/routing/Symfony/Component/Routing/LICENSE
index 0b3292c..43028bc 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/LICENSE
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2014 Fabien Potencier
+Copyright (c) 2004-2015 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/ClosureLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/ClosureLoader.php
index 8212c29..9edab1e 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/ClosureLoader.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/ClosureLoader.php
@@ -37,7 +37,7 @@ class ClosureLoader extends Loader
      */
     public function load($closure, $type = null)
     {
-        return call_user_func($closure);
+        return $closure();
     }
 
     /**
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/ApacheMatcherDumper.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/ApacheMatcherDumper.php
index 66090c2..f364209 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/ApacheMatcherDumper.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/ApacheMatcherDumper.php
@@ -111,7 +111,7 @@ public function dump(array $options = array())
     }
 
     /**
-     * Dumps a single route
+     * Dumps a single route.
      *
      * @param string $name            Route name
      * @param Route  $route           The route
@@ -190,7 +190,7 @@ private function dumpRoute($name, $route, array $options, $hostRegexUnique)
     }
 
     /**
-     * Returns methods allowed for a route
+     * Returns methods allowed for a route.
      *
      * @param Route $route The route
      *
@@ -211,7 +211,7 @@ private function getRouteMethods(Route $route)
     }
 
     /**
-     * Converts a regex to make it suitable for mod_rewrite
+     * Converts a regex to make it suitable for mod_rewrite.
      *
      * @param string $regex The regex
      *
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/DumperCollection.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/DumperCollection.php
index 04e44be..ce3a6aa 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/DumperCollection.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/DumperCollection.php
@@ -44,7 +44,7 @@ public function all()
     }
 
     /**
-     * Adds a route or collection
+     * Adds a route or collection.
      *
      * @param DumperRoute|DumperCollection The route or collection
      */
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/DumperPrefixCollection.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/DumperPrefixCollection.php
index 3563d51..849e22e 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/DumperPrefixCollection.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/DumperPrefixCollection.php
@@ -79,7 +79,7 @@ public function addPrefixRoute(DumperRoute $route)
     }
 
     /**
-     * Merges nodes whose prefix ends with a slash
+     * Merges nodes whose prefix ends with a slash.
      *
      * Children of a node whose prefix ends with a slash are moved to the parent node
      */
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php
index 8fd791b..e31fa88 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php
@@ -157,7 +157,7 @@ private function compileRoutes(RouteCollection $routes, $supportsRedirections)
     }
 
     /**
-     * Generates PHP code recursively to match a tree of routes
+     * Generates PHP code recursively to match a tree of routes.
      *
      * @param DumperPrefixCollection $collection           A DumperPrefixCollection instance
      * @param bool                   $supportsRedirections Whether redirections are supported by the base class
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Route.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Route.php
index 23890d9..d2ddbd3 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Route.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Route.php
@@ -268,25 +268,18 @@ public function setSchemes($schemes)
      *
      * @param string $scheme
      *
-     * @return bool    true if the scheme requirement exists, otherwise false
+     * @return bool true if the scheme requirement exists, otherwise false
      */
     public function hasScheme($scheme)
     {
-        $scheme = strtolower($scheme);
-        foreach ($this->schemes as $requiredScheme) {
-            if ($scheme === $requiredScheme) {
-                return true;
-            }
-        }
-
-        return false;
+        return in_array(strtolower($scheme), $this->schemes, true);
     }
 
     /**
      * Returns the uppercased HTTP methods this route is restricted to.
      * So an empty array means that any method is allowed.
      *
-     * @return array The schemes
+     * @return array The methods
      */
     public function getMethods()
     {
@@ -399,7 +392,7 @@ public function getOption($name)
     }
 
     /**
-     * Checks if an option has been set
+     * Checks if an option has been set.
      *
      * @param string $name An option name
      *
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php b/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php
index 46ca137..df37f36 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php
@@ -106,7 +106,7 @@ public function get($name)
     }
 
     /**
-     * Removes a route or an array of routes by name from the collection
+     * Removes a route or an array of routes by name from the collection.
      *
      * @param string|array $name The route name or an array of route names
      */
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Router.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Router.php
index f274373..c7c926d 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Router.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Router.php
@@ -21,7 +21,6 @@
 use Symfony\Component\Routing\Matcher\UrlMatcherInterface;
 use Symfony\Component\Routing\Matcher\Dumper\MatcherDumperInterface;
 use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
 use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface;
 
 /**
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Annotation/RouteTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Annotation/RouteTest.php
index bd01670..cc082dd 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Annotation/RouteTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Annotation/RouteTest.php
@@ -35,7 +35,6 @@ public function testRouteParameters($parameter, $value, $getter)
     public function getValidParameters()
     {
         return array(
-            array('value', '/Blog', 'getPattern'),
             array('value', '/Blog', 'getPath'),
             array('requirements', array('_method' => 'GET'), 'getRequirements'),
             array('options', array('compiler_class' => 'RouteCompiler'), 'getOptions'),
@@ -47,4 +46,12 @@ public function getValidParameters()
             array('condition', array('context.getMethod() == "GET"'), 'getCondition'),
         );
     }
+
+    public function testLegacyGetPattern()
+    {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
+        $route = new Route(array('value' => '/Blog'));
+        $this->assertEquals($route->getPattern(), '/Blog');
+    }
 }
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/CustomXmlFileLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/CustomXmlFileLoader.php
index 2e9b028..9fd5754 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/CustomXmlFileLoader.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/CustomXmlFileLoader.php
@@ -15,7 +15,7 @@
 use Symfony\Component\Config\Util\XmlUtils;
 
 /**
- * XmlFileLoader with schema validation turned off
+ * XmlFileLoader with schema validation turned off.
  */
 class CustomXmlFileLoader extends XmlFileLoader
 {
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/ApacheMatcherDumperTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/LegacyApacheMatcherDumperTest.php
similarity index 97%
rename from core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/ApacheMatcherDumperTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/LegacyApacheMatcherDumperTest.php
index 72bee71..1cdb3d3 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/ApacheMatcherDumperTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/Dumper/LegacyApacheMatcherDumperTest.php
@@ -15,7 +15,7 @@
 use Symfony\Component\Routing\RouteCollection;
 use Symfony\Component\Routing\Matcher\Dumper\ApacheMatcherDumper;
 
-class ApacheMatcherDumperTest extends \PHPUnit_Framework_TestCase
+class LegacyApacheMatcherDumperTest extends \PHPUnit_Framework_TestCase
 {
     protected static $fixturesPath;
 
@@ -24,6 +24,11 @@ public static function setUpBeforeClass()
         self::$fixturesPath = realpath(__DIR__.'/../../Fixtures/');
     }
 
+    public function setUp()
+    {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+    }
+
     public function testDump()
     {
         $dumper = new ApacheMatcherDumper($this->getRouteCollection());
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/ApacheUrlMatcherTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/LegacyApacheUrlMatcherTest.php
similarity index 97%
rename from core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/ApacheUrlMatcherTest.php
rename to core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/LegacyApacheUrlMatcherTest.php
index 05e6261..3a02dea 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/ApacheUrlMatcherTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/LegacyApacheUrlMatcherTest.php
@@ -15,12 +15,13 @@
 use Symfony\Component\Routing\RequestContext;
 use Symfony\Component\Routing\Matcher\ApacheUrlMatcher;
 
-class ApacheUrlMatcherTest extends \PHPUnit_Framework_TestCase
+class LegacyApacheUrlMatcherTest extends \PHPUnit_Framework_TestCase
 {
     protected $server;
 
     protected function setUp()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
         $this->server = $_SERVER;
     }
 
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
index 7fa699e..1e10367 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/UrlMatcherTest.php
@@ -363,7 +363,7 @@ public function testCannotRelyOnPrefix()
         $subColl->add('bar', new Route('/bar'));
         $subColl->addPrefix('/prefix');
         // overwrite the pattern, so the prefix is not valid anymore for this route in the collection
-        $subColl->get('bar')->setPattern('/new');
+        $subColl->get('bar')->setPath('/new');
 
         $coll->addCollection($subColl);
 
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCollectionTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCollectionTest.php
index 4c12ed5..ad2d0e0 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCollectionTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteCollectionTest.php
@@ -146,7 +146,7 @@ public function testAddPrefix()
         $collection2->add('bar', $bar = new Route('/bar'));
         $collection->addCollection($collection2);
         $collection->addPrefix(' / ');
-        $this->assertSame('/foo', $collection->get('foo')->getPattern(), '->addPrefix() trims the prefix and a single slash has no effect');
+        $this->assertSame('/foo', $collection->get('foo')->getPath(), '->addPrefix() trims the prefix and a single slash has no effect');
         $collection->addPrefix('/{admin}', array('admin' => 'admin'), array('admin' => '\d+'));
         $this->assertEquals('/{admin}/foo', $collection->get('foo')->getPath(), '->addPrefix() adds a prefix to all routes');
         $this->assertEquals('/{admin}/bar', $collection->get('bar')->getPath(), '->addPrefix() adds a prefix to all routes');
@@ -155,7 +155,7 @@ public function testAddPrefix()
         $this->assertEquals(array('admin' => '\d+'), $collection->get('foo')->getRequirements(), '->addPrefix() adds requirements to all routes');
         $this->assertEquals(array('admin' => '\d+'), $collection->get('bar')->getRequirements(), '->addPrefix() adds requirements to all routes');
         $collection->addPrefix('0');
-        $this->assertEquals('/0/{admin}/foo', $collection->get('foo')->getPattern(), '->addPrefix() ensures a prefix must start with a slash and must not end with a slash');
+        $this->assertEquals('/0/{admin}/foo', $collection->get('foo')->getPath(), '->addPrefix() ensures a prefix must start with a slash and must not end with a slash');
         $collection->addPrefix('/ /');
         $this->assertSame('/ /0/{admin}/foo', $collection->get('foo')->getPath(), '->addPrefix() can handle spaces if desired');
         $this->assertSame('/ /0/{admin}/bar', $collection->get('bar')->getPath(), 'the route pattern of an added collection is in synch with the added prefix');
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteTest.php
index f667c0b..5dcc87e 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteTest.php
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/RouteTest.php
@@ -204,9 +204,9 @@ public function testMethodIsBC()
     public function testCondition()
     {
         $route = new Route('/');
-        $this->assertEquals(null, $route->getCondition());
+        $this->assertSame('', $route->getCondition());
         $route->setCondition('context.getMethod() == "GET"');
-        $this->assertEquals('context.getMethod() == "GET"', $route->getCondition());
+        $this->assertSame('context.getMethod() == "GET"', $route->getCondition());
     }
 
     public function testCompile()
@@ -218,8 +218,10 @@ public function testCompile()
         $this->assertNotSame($compiled, $route->compile(), '->compile() recompiles if the route was modified');
     }
 
-    public function testPattern()
+    public function testLegacyPattern()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
         $route = new Route('/{foo}');
         $this->assertEquals('/{foo}', $route->getPattern());
 
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/composer.json b/core/vendor/symfony/routing/Symfony/Component/Routing/composer.json
index 609fae9..4c9fb38 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/composer.json
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/composer.json
@@ -21,9 +21,10 @@
     "require-dev": {
         "symfony/config": "~2.2",
         "symfony/http-foundation": "~2.3",
-        "symfony/yaml": "~2.0",
+        "symfony/yaml": "~2.0,>=2.0.5",
         "symfony/expression-language": "~2.4",
         "doctrine/annotations": "~1.0",
+        "doctrine/common": "~2.2",
         "psr/log": "~1.0"
     },
     "suggest": {
diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/phpunit.xml.dist b/core/vendor/symfony/routing/Symfony/Component/Routing/phpunit.xml.dist
index 8cf6352..4144e73 100644
--- a/core/vendor/symfony/routing/Symfony/Component/Routing/phpunit.xml.dist
+++ b/core/vendor/symfony/routing/Symfony/Component/Routing/phpunit.xml.dist
@@ -6,6 +6,10 @@
          colors="true"
          bootstrap="vendor/autoload.php"
 >
+    <php>
+        <!-- Silence E_USER_DEPRECATED (-16385 == -1 & ~E_USER_DEPRECATED) -->
+        <ini name="error_reporting" value="-16385"/>
+    </php>
     <testsuites>
         <testsuite name="Symfony Routing Component Test Suite">
             <directory>./Tests/</directory>
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/DecoderInterface.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/DecoderInterface.php
index 683da5b..910f4ce 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/DecoderInterface.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/DecoderInterface.php
@@ -23,7 +23,7 @@
     /**
      * Decodes a string into PHP data.
      *
-     * @param scalar $data    Data to decode
+     * @param string $data    Data to decode
      * @param string $format  Format name
      * @param array  $context options that decoders have access to.
      *
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonDecode.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonDecode.php
index 277e04f..4bb5b43 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonDecode.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonDecode.php
@@ -14,7 +14,7 @@
 use Symfony\Component\Serializer\Exception\UnexpectedValueException;
 
 /**
- * Decodes JSON data
+ * Decodes JSON data.
  *
  * @author Sander Coolen <sander@jibber.nl>
  */
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonEncoder.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonEncoder.php
index df22316..2231dd6 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonEncoder.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/JsonEncoder.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Serializer\Encoder;
 
 /**
- * Encodes JSON data
+ * Encodes JSON data.
  *
  * @author Jordi Boggiano <j.boggiano@seld.be>
  */
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/XmlEncoder.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/XmlEncoder.php
index 709b8b6..fa82379 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/XmlEncoder.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Encoder/XmlEncoder.php
@@ -22,6 +22,9 @@
  */
 class XmlEncoder extends SerializerAwareEncoder implements EncoderInterface, DecoderInterface, NormalizationAwareInterface
 {
+    /**
+     * @var \DOMDocument
+     */
     private $dom;
     private $format;
     private $context;
@@ -132,18 +135,18 @@ public function decode($data, $format, array $context = array())
     /**
      * {@inheritdoc}
      */
-     public function supportsEncoding($format)
-     {
-         return 'xml' === $format;
-     }
+    public function supportsEncoding($format)
+    {
+        return 'xml' === $format;
+    }
 
-     /**
+    /**
      * {@inheritdoc}
      */
-     public function supportsDecoding($format)
-     {
-         return 'xml' === $format;
-     }
+    public function supportsDecoding($format)
+    {
+        return 'xml' === $format;
+    }
 
     /**
      * Sets the root node name.
@@ -370,14 +373,12 @@ private function buildXml(\DOMNode $parentNode, $data, $xmlRootNodeName = null)
                 } elseif ($key === '#') {
                     $append = $this->selectNodeType($parentNode, $data);
                 } elseif (is_array($data) && false === is_numeric($key)) {
-                    /**
-                     * Is this array fully numeric keys?
-                     */
+                    // Is this array fully numeric keys?
                     if (ctype_digit(implode('', array_keys($data)))) {
-                        /**
+                        /*
                          * Create nodes to append to $parentNode based on the $key of this array
                          * Produces <xml><item>0</item><item>1</item></xml>
-                         * From array("item" => array(0,1));
+                         * From array("item" => array(0,1));.
                          */
                         foreach ($data as $subData) {
                             $append = $this->appendNode($parentNode, $subData, $key);
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/Exception.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/Exception.php
index a141164..dc2b8fd 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/Exception.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/Exception.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Serializer\Exception;
 
 /**
- * Base exception
+ * Base exception.
  *
  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
  */
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/InvalidArgumentException.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/InvalidArgumentException.php
index d55e5ef..8cad373 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/InvalidArgumentException.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/InvalidArgumentException.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Serializer\Exception;
 
 /**
- * InvalidArgumentException
+ * InvalidArgumentException.
  *
  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
  */
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/LogicException.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/LogicException.php
index 354272f..a372bf9 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/LogicException.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/LogicException.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Serializer\Exception;
 
 /**
- * LogicException
+ * LogicException.
  *
  * @author Lukas Kahwe Smith <smith@pooteeweet.org>
  */
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/RuntimeException.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/RuntimeException.php
index afbf1db..0272865 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/RuntimeException.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/RuntimeException.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Serializer\Exception;
 
 /**
- * RuntimeException
+ * RuntimeException.
  *
  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
  */
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/UnexpectedValueException.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/UnexpectedValueException.php
index c4bc0ce..86cf204 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/UnexpectedValueException.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/UnexpectedValueException.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Serializer\Exception;
 
 /**
- * UnexpectedValueException
+ * UnexpectedValueException.
  *
  * @author Lukas Kahwe Smith <smith@pooteeweet.org>
  */
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/UnsupportedException.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/UnsupportedException.php
index 5a79efa..7dc44ee 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/UnsupportedException.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/UnsupportedException.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Serializer\Exception;
 
 /**
- * UnsupportedException
+ * UnsupportedException.
  *
  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
  */
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/LICENSE b/core/vendor/symfony/serializer/Symfony/Component/Serializer/LICENSE
index 0b3292c..43028bc 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/LICENSE
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2014 Fabien Potencier
+Copyright (c) 2004-2015 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Normalizer/NormalizableInterface.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Normalizer/NormalizableInterface.php
index e19fe5c..b9fefe8 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Normalizer/NormalizableInterface.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Normalizer/NormalizableInterface.php
@@ -33,7 +33,7 @@
      *                                        based on different output formats.
      * @param array               $context    Options for normalizing this object
      *
-     * @return array|scalar
+     * @return array|string|bool|int|float|null
      */
     public function normalize(NormalizerInterface $normalizer, $format = null, array $context = array());
 }
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Normalizer/NormalizerInterface.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Normalizer/NormalizerInterface.php
index f4bd355..2a51d63 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Normalizer/NormalizerInterface.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Normalizer/NormalizerInterface.php
@@ -25,7 +25,7 @@
      * @param string $format  format the normalization result will be encoded as
      * @param array  $context Context options for the normalizer
      *
-     * @return array|scalar
+     * @return array|string|bool|int|float|null
      */
     public function normalize($object, $format = null, array $context = array());
 
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php
index 428af1a..c8e1572 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Normalizer/PropertyNormalizer.php
@@ -180,7 +180,7 @@ public function supportsDenormalization($data, $type, $format = null)
     /**
      * Format an attribute name, for example to convert a snake_case name to camelCase.
      *
-     * @param  string $attributeName
+     * @param string $attributeName
      *
      * @return string
      */
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Serializer.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Serializer.php
index a1af359..09ec771 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Serializer.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Serializer.php
@@ -240,7 +240,7 @@ private function getDenormalizer($data, $class, $format)
      * @param string $format  format name, present to give the option to normalizers to act differently based on formats
      * @param array  $context The context data for this particular normalization
      *
-     * @return array|scalar
+     * @return array|string|bool|int|float|null
      *
      * @throws LogicException
      * @throws UnexpectedValueException
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/PropertyNormalizerTest.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/PropertyNormalizerTest.php
index b398b75..a954775 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/PropertyNormalizerTest.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/PropertyNormalizerTest.php
@@ -151,12 +151,12 @@ public function provideCallbacks()
             array(
                 array(
                     'bar' => function ($bar) {
-                        return null;
+                        return;
                     },
                 ),
                 'baz',
                 array('foo' => '', 'bar' => null),
-                'Null an item'
+                'Null an item',
             ),
             array(
                 array(
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/TestDenormalizer.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/TestDenormalizer.php
index e881ad1..7525d5c 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/TestDenormalizer.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/TestDenormalizer.php
@@ -21,15 +21,15 @@
 class TestDenormalizer implements DenormalizerInterface
 {
     /**
-    * {@inheritdoc}
-    */
+     * {@inheritdoc}
+     */
     public function denormalize($data, $class, $format = null, array $context = array())
     {
     }
 
     /**
-    * {@inheritdoc}
-    */
+     * {@inheritdoc}
+     */
     public function supportsDenormalization($data, $type, $format = null)
     {
         return true;
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/TestNormalizer.php b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/TestNormalizer.php
index 4c000b3..4b29e8f 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/TestNormalizer.php
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/Tests/Normalizer/TestNormalizer.php
@@ -21,15 +21,15 @@
 class TestNormalizer implements NormalizerInterface
 {
     /**
-    * {@inheritdoc}
-    */
+     * {@inheritdoc}
+     */
     public function normalize($object, $format = null, array $context = array())
     {
     }
 
     /**
-    * {@inheritdoc}
-    */
+     * {@inheritdoc}
+     */
     public function supportsNormalization($data, $format = null)
     {
         return true;
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/phpunit.xml.dist b/core/vendor/symfony/serializer/Symfony/Component/Serializer/phpunit.xml.dist
index aa28252..0327a9b 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/phpunit.xml.dist
+++ b/core/vendor/symfony/serializer/Symfony/Component/Serializer/phpunit.xml.dist
@@ -6,6 +6,10 @@
          colors="true"
          bootstrap="vendor/autoload.php"
 >
+    <php>
+        <!-- Silence E_USER_DEPRECATED (-16385 == -1 & ~E_USER_DEPRECATED) -->
+        <ini name="error_reporting" value="-16385"/>
+    </php>
     <testsuites>
         <testsuite name="Symfony Serializer Component Test Suite">
             <directory>./Tests/</directory>
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraint.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraint.php
index 9985772..a8ae634 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraint.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraint.php
@@ -34,19 +34,22 @@
 abstract class Constraint
 {
     /**
-     * The name of the group given to all constraints with no explicit group
+     * The name of the group given to all constraints with no explicit group.
+     *
      * @var string
      */
     const DEFAULT_GROUP = 'Default';
 
     /**
-     * Marks a constraint that can be put onto classes
+     * Marks a constraint that can be put onto classes.
+     *
      * @var string
      */
     const CLASS_CONSTRAINT = 'class';
 
     /**
-     * Marks a constraint that can be put onto properties
+     * Marks a constraint that can be put onto properties.
+     *
      * @var string
      */
     const PROPERTY_CONSTRAINT = 'property';
@@ -221,7 +224,7 @@ public function __get($option)
     }
 
     /**
-     * Adds the given group if this constraint is in the Default group
+     * Adds the given group if this constraint is in the Default group.
      *
      * @param string $group
      *
@@ -235,11 +238,12 @@ public function addImplicitGroupName($group)
     }
 
     /**
-     * Returns the name of the default option
+     * Returns the name of the default option.
      *
      * Override this method to define a default option.
      *
      * @return string
+     *
      * @see __construct()
      *
      * @api
@@ -249,11 +253,12 @@ public function getDefaultOption()
     }
 
     /**
-     * Returns the name of the required options
+     * Returns the name of the required options.
      *
      * Override this method if you want to define required options.
      *
      * @return array
+     *
      * @see __construct()
      *
      * @api
@@ -264,7 +269,7 @@ public function getRequiredOptions()
     }
 
     /**
-     * Returns the name of the class that validates this constraint
+     * Returns the name of the class that validates this constraint.
      *
      * By default, this is the fully qualified name of the constraint class
      * suffixed with "Validator". You can override this method to change that
@@ -281,7 +286,7 @@ public function validatedBy()
 
     /**
      * Returns whether the constraint can be put onto classes, properties or
-     * both
+     * both.
      *
      * This method should return one or more of the constants
      * Constraint::CLASS_CONSTRAINT and Constraint::PROPERTY_CONSTRAINT.
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintValidator.php
index d014bdd..61c994a 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintValidator.php
@@ -16,7 +16,7 @@
 use Symfony\Component\Validator\Violation\LegacyConstraintViolationBuilder;
 
 /**
- * Base class for constraint validators
+ * Base class for constraint validators.
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  *
@@ -77,8 +77,8 @@ protected function buildViolation($message, array $parameters = array())
      * supports the 2.4 context API.
      *
      * @param ExecutionContextInterface $context    The context to use
-     * @param string                          $message    The violation message
-     * @param array                           $parameters The message parameters
+     * @param string                    $message    The violation message
+     * @param array                     $parameters The message parameters
      *
      * @return ConstraintViolationBuilderInterface The violation builder
      *
@@ -126,9 +126,9 @@ protected function formatTypeOf($value)
      * won't know what an "object", "array" or "resource" is and will be
      * confused by the violation message.
      *
-     * @param mixed   $value  The value to format as string
-     * @param int     $format A bitwise combination of the format
-     *                        constants in this class
+     * @param mixed $value  The value to format as string
+     * @param int   $format A bitwise combination of the format
+     *                      constants in this class
      *
      * @return string The string representation of the passed value
      */
@@ -197,9 +197,9 @@ protected function formatValue($value, $format = 0)
      * Each of the values is converted to a string using
      * {@link formatValue()}. The values are then concatenated with commas.
      *
-     * @param array   $values A list of values
-     * @param int     $format A bitwise combination of the format
-     *                        constants in this class
+     * @param array $values A list of values
+     * @param int   $format A bitwise combination of the format
+     *                      constants in this class
      *
      * @return string The string representation of the value list
      *
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintViolationInterface.php b/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintViolationInterface.php
index 01bec9d..232fb55 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintViolationInterface.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/ConstraintViolationInterface.php
@@ -65,7 +65,7 @@ public function getMessageTemplate();
      * @return array A possibly empty list of parameters indexed by the names
      *               that appear in the message template.
      *
-     * @see getMessageTemplate
+     * @see getMessageTemplate()
      *
      * @api
      */
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/AbstractComparisonValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/AbstractComparisonValidator.php
index 413fadb..ec734b3 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/AbstractComparisonValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/AbstractComparisonValidator.php
@@ -63,7 +63,7 @@ public function validate($value, Constraint $constraint)
     }
 
     /**
-     * Compares the two given values to find if their relationship is valid
+     * Compares the two given values to find if their relationship is valid.
      *
      * @param mixed $value1 The first value to compare
      * @param mixed $value2 The second value to compare
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CallbackValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CallbackValidator.php
index a6a29e7..9939306 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CallbackValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CallbackValidator.php
@@ -17,7 +17,7 @@
 use Symfony\Component\Validator\Exception\UnexpectedTypeException;
 
 /**
- * Validator for Callback constraint
+ * Validator for Callback constraint.
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  *
@@ -50,30 +50,26 @@ public function validate($object, Constraint $constraint)
         $methods = $constraint->methods ?: array($constraint->callback);
 
         foreach ($methods as $method) {
-            if (is_array($method) || $method instanceof \Closure) {
+            if ($method instanceof \Closure) {
+                $method($object, $this->context);
+            } elseif (is_array($method)) {
                 if (!is_callable($method)) {
                     throw new ConstraintDefinitionException(sprintf('"%s::%s" targeted by Callback constraint is not a valid callable', $method[0], $method[1]));
                 }
 
                 call_user_func($method, $object, $this->context);
+            } elseif (null !== $object) {
+                if (!method_exists($object, $method)) {
+                    throw new ConstraintDefinitionException(sprintf('Method "%s" targeted by Callback constraint does not exist', $method));
+                }
 
-                continue;
-            }
-
-            if (null === $object) {
-                continue;
-            }
-
-            if (!method_exists($object, $method)) {
-                throw new ConstraintDefinitionException(sprintf('Method "%s" targeted by Callback constraint does not exist', $method));
-            }
-
-            $reflMethod = new \ReflectionMethod($object, $method);
+                $reflMethod = new \ReflectionMethod($object, $method);
 
-            if ($reflMethod->isStatic()) {
-                $reflMethod->invoke(null, $object, $this->context);
-            } else {
-                $reflMethod->invoke($object, $this->context);
+                if ($reflMethod->isStatic()) {
+                    $reflMethod->invoke(null, $object, $this->context);
+                } else {
+                    $reflMethod->invoke($object, $this->context);
+                }
             }
         }
     }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CardSchemeValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CardSchemeValidator.php
index 3b73bcf..0e7de08 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CardSchemeValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CardSchemeValidator.php
@@ -27,72 +27,52 @@
 class CardSchemeValidator extends ConstraintValidator
 {
     protected $schemes = array(
-        /**
-         * American Express card numbers start with 34 or 37 and have 15 digits.
-         */
+        // American Express card numbers start with 34 or 37 and have 15 digits.
         'AMEX' => array(
             '/^3[47][0-9]{13}$/',
         ),
-        /**
-         * China UnionPay cards start with 62 and have between 16 and 19 digits.
-         * Please note that these cards do not follow Luhn Algorithm as a checksum.
-         */
+        // China UnionPay cards start with 62 and have between 16 and 19 digits.
+        // Please note that these cards do not follow Luhn Algorithm as a checksum.
         'CHINA_UNIONPAY' => array(
             '/^62[0-9]{14,17}$/',
         ),
-        /**
-         * Diners Club card numbers begin with 300 through 305, 36 or 38. All have 14 digits.
-         * There are Diners Club cards that begin with 5 and have 16 digits.
-         * These are a joint venture between Diners Club and MasterCard, and should be processed like a MasterCard.
-         */
+        // Diners Club card numbers begin with 300 through 305, 36 or 38. All have 14 digits.
+        // There are Diners Club cards that begin with 5 and have 16 digits.
+        // These are a joint venture between Diners Club and MasterCard, and should be processed like a MasterCard.
         'DINERS' => array(
             '/^3(?:0[0-5]|[68][0-9])[0-9]{11}$/',
         ),
-        /**
-         * Discover card numbers begin with 6011, 622126 through 622925, 644 through 649 or 65.
-         * All have 16 digits
-         */
+        // Discover card numbers begin with 6011, 622126 through 622925, 644 through 649 or 65.
+        // All have 16 digits.
         'DISCOVER' => array(
             '/^6011[0-9]{12}$/',
             '/^64[4-9][0-9]{13}$/',
             '/^65[0-9]{14}$/',
             '/^622(12[6-9]|1[3-9][0-9]|[2-8][0-9][0-9]|91[0-9]|92[0-5])[0-9]{10}$/',
         ),
-        /**
-         * InstaPayment cards begin with 637 through 639 and have 16 digits
-         */
+        // InstaPayment cards begin with 637 through 639 and have 16 digits.
         'INSTAPAYMENT' => array(
             '/^63[7-9][0-9]{13}$/',
         ),
-        /**
-         * JCB cards beginning with 2131 or 1800 have 15 digits.
-         * JCB cards beginning with 35 have 16 digits.
-         */
+        // JCB cards beginning with 2131 or 1800 have 15 digits.
+        // JCB cards beginning with 35 have 16 digits.
         'JCB' => array(
             '/^(?:2131|1800|35[0-9]{3})[0-9]{11}$/',
         ),
-        /**
-         * Laser cards begin with either 6304, 6706, 6709 or 6771 and have between 16 and 19 digits
-         */
+        // Laser cards begin with either 6304, 6706, 6709 or 6771 and have between 16 and 19 digits.
         'LASER' => array(
             '/^(6304|670[69]|6771)[0-9]{12,15}$/',
         ),
-        /**
-         * Maestro cards begin with either 5018, 5020, 5038, 5893, 6304, 6759, 6761, 6762, 6763 or 0604
-         * They have between 12 and 19 digits
-         */
+        // Maestro cards begin with either 5018, 5020, 5038, 5893, 6304, 6759, 6761, 6762, 6763 or 0604
+        // They have between 12 and 19 digits.
         'MAESTRO' => array(
             '/^(5018|5020|5038|6304|6759|6761|676[23]|0604)[0-9]{8,15}$/',
         ),
-        /**
-         * All MasterCard numbers start with the numbers 51 through 55. All have 16 digits.
-         */
+        // All MasterCard numbers start with the numbers 51 through 55. All have 16 digits.
         'MASTERCARD' => array(
             '/^5[1-5][0-9]{14}$/',
         ),
-        /**
-         * All Visa card numbers start with a 4. New cards have 16 digits. Old cards have 13.
-         */
+        // All Visa card numbers start with a 4. New cards have 16 digits. Old cards have 13.
         'VISA' => array(
             '/^4([0-9]{12}|[0-9]{15})$/',
         ),
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/ChoiceValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/ChoiceValidator.php
index 1566c31..cf5774c 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/ChoiceValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/ChoiceValidator.php
@@ -49,13 +49,12 @@ public function validate($value, Constraint $constraint)
         }
 
         if ($constraint->callback) {
-            if (is_callable(array($this->context->getClassName(), $constraint->callback))) {
-                $choices = call_user_func(array($this->context->getClassName(), $constraint->callback));
-            } elseif (is_callable($constraint->callback)) {
-                $choices = call_user_func($constraint->callback);
-            } else {
+            if (!is_callable($choices = array($this->context->getClassName(), $constraint->callback))
+                && !is_callable($choices = $constraint->callback)
+            ) {
                 throw new ConstraintDefinitionException('The Choice constraint expects a valid callback');
             }
+            $choices = call_user_func($choices);
         } else {
             $choices = $constraint->choices;
         }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CountryValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CountryValidator.php
index a3ad1dc..0d001f7 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CountryValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CountryValidator.php
@@ -17,7 +17,7 @@
 use Symfony\Component\Validator\Exception\UnexpectedTypeException;
 
 /**
- * Validates whether a value is a valid country code
+ * Validates whether a value is a valid country code.
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  *
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CurrencyValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CurrencyValidator.php
index ae3046f..5585426 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CurrencyValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/CurrencyValidator.php
@@ -17,7 +17,7 @@
 use Symfony\Component\Validator\Exception\UnexpectedTypeException;
 
 /**
- * Validates whether a value is a valid currency
+ * Validates whether a value is a valid currency.
  *
  * @author Miha Vrhovnik <miha.vrhovnik@pagein.si>
  *
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/GroupSequence.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/GroupSequence.php
index 9d50d48..72bfb16 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/GroupSequence.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/GroupSequence.php
@@ -55,11 +55,13 @@
  * @author Bernhard Schussek <bschussek@gmail.com>
  *
  * @api
+ *
+ * Implementing \ArrayAccess, \IteratorAggregate and \Countable is @deprecated since 2.5 and will be removed in 3.0.
  */
 class GroupSequence implements \ArrayAccess, \IteratorAggregate, \Countable
 {
     /**
-     * The groups in the sequence
+     * The groups in the sequence.
      *
      * @var string[]|GroupSequence[]
      */
@@ -110,9 +112,9 @@ public function getIterator()
     /**
      * Returns whether the given offset exists in the sequence.
      *
-     * @param int     $offset The offset
+     * @param int $offset The offset
      *
-     * @return bool    Whether the offset exists
+     * @return bool Whether the offset exists
      *
      * @deprecated Implemented for backwards compatibility with Symfony < 2.5.
      *             To be removed in Symfony 3.0.
@@ -125,7 +127,7 @@ public function offsetExists($offset)
     /**
      * Returns the group at the given offset.
      *
-     * @param int     $offset The offset
+     * @param int $offset The offset
      *
      * @return string The group a the given offset
      *
@@ -149,8 +151,8 @@ public function offsetGet($offset)
     /**
      * Sets the group at the given offset.
      *
-     * @param int     $offset The offset
-     * @param string  $value  The group name
+     * @param int    $offset The offset
+     * @param string $value  The group name
      *
      * @deprecated Implemented for backwards compatibility with Symfony < 2.5.
      *             To be removed in Symfony 3.0.
@@ -169,7 +171,7 @@ public function offsetSet($offset, $value)
     /**
      * Removes the group at the given offset.
      *
-     * @param int     $offset The offset
+     * @param int $offset The offset
      *
      * @deprecated Implemented for backwards compatibility with Symfony < 2.5.
      *             To be removed in Symfony 3.0.
@@ -182,7 +184,7 @@ public function offsetUnset($offset)
     /**
      * Returns the number of groups in the sequence.
      *
-     * @return int     The number of groups
+     * @return int The number of groups
      *
      * @deprecated Implemented for backwards compatibility with Symfony < 2.5.
      *             To be removed in Symfony 3.0.
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/GroupSequenceProvider.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/GroupSequenceProvider.php
index f53f2b8..3904473 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/GroupSequenceProvider.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/GroupSequenceProvider.php
@@ -12,7 +12,7 @@
 namespace Symfony\Component\Validator\Constraints;
 
 /**
- * Annotation to define a group sequence provider
+ * Annotation to define a group sequence provider.
  *
  * @Annotation
  * @Target({"CLASS", "ANNOTATION"})
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IbanValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IbanValidator.php
index c8bcf4b..35995d2 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IbanValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IbanValidator.php
@@ -19,6 +19,7 @@
  * @author Manuel Reinhard <manu@sprain.ch>
  * @author Michael Schummel
  * @author Bernhard Schussek <bschussek@gmail.com>
+ *
  * @link http://www.michael-schummel.de/2007/10/05/iban-prufung-mit-php/
  */
 class IbanValidator extends ConstraintValidator
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/ImageValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/ImageValidator.php
index c0942da..e183e27 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/ImageValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/ImageValidator.php
@@ -17,7 +17,7 @@
 
 /**
  * Validates whether a value is a valid image file and is valid
- * against minWidth, maxWidth, minHeight and maxHeight constraints
+ * against minWidth, maxWidth, minHeight and maxHeight constraints.
  *
  * @author Benjamin Dulau <benjamin.dulau@gmail.com>
  * @author Bernhard Schussek <bschussek@gmail.com>
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Ip.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Ip.php
index c059c69..27f0b2d 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Ip.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Ip.php
@@ -15,7 +15,7 @@
 use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
 
 /**
- * Validates that a value is a valid IP address
+ * Validates that a value is a valid IP address.
  *
  * @Annotation
  * @Target({"PROPERTY", "METHOD", "ANNOTATION"})
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IpValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IpValidator.php
index 8db2ddb..2bbe7e4 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IpValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IpValidator.php
@@ -16,7 +16,7 @@
 use Symfony\Component\Validator\Exception\UnexpectedTypeException;
 
 /**
- * Validates whether a value is a valid IP address
+ * Validates whether a value is a valid IP address.
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  * @author Joseph Bielawski <stloyd@gmail.com>
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IsbnValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IsbnValidator.php
index 8a53fe7..94d26d7 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IsbnValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/IsbnValidator.php
@@ -46,7 +46,7 @@ public function validate($value, Constraint $constraint)
         $value = (string) $value;
         $canonical = str_replace('-', '', $value);
 
-        if (null == $constraint->type) {
+        if (null === $constraint->type) {
             if ($constraint->isbn10 && !$constraint->isbn13) {
                 $constraint->type = 'isbn10';
             } elseif ($constraint->isbn13 && !$constraint->isbn10) {
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LanguageValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LanguageValidator.php
index 1cc2a43..be7ad28 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LanguageValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LanguageValidator.php
@@ -17,7 +17,7 @@
 use Symfony\Component\Validator\Exception\UnexpectedTypeException;
 
 /**
- * Validates whether a value is a valid language code
+ * Validates whether a value is a valid language code.
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  *
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Length.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Length.php
index 60a46cb..8d00480 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Length.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Length.php
@@ -35,6 +35,7 @@ class Length extends Constraint
     public $maxMessage = 'This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.';
     public $minMessage = 'This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.';
     public $exactMessage = 'This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.';
+    public $charsetMessage = 'This value does not match the expected {{ charset }} charset.';
     public $max;
     public $min;
     public $charset = 'UTF-8';
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LengthValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LengthValidator.php
index 19f3d39..f822047 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LengthValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LengthValidator.php
@@ -38,13 +38,39 @@ public function validate($value, Constraint $constraint)
         }
 
         $stringValue = (string) $value;
+        $invalidCharset = false;
 
-        if (function_exists('grapheme_strlen') && 'UTF-8' === $constraint->charset) {
-            $length = grapheme_strlen($stringValue);
+        if ('UTF8' === $charset = strtoupper($constraint->charset)) {
+            $charset = 'UTF-8';
+        }
+
+        if (function_exists('iconv_strlen')) {
+            $length = @iconv_strlen($stringValue, $constraint->charset);
+            $invalidCharset = false === $length;
         } elseif (function_exists('mb_strlen')) {
-            $length = mb_strlen($stringValue, $constraint->charset);
-        } else {
+            if (mb_check_encoding($stringValue, $constraint->charset)) {
+                $length = mb_strlen($stringValue, $constraint->charset);
+            } else {
+                $invalidCharset = true;
+            }
+        } elseif ('UTF-8' !== $charset) {
             $length = strlen($stringValue);
+        } elseif (!preg_match('//u', $stringValue)) {
+            $invalidCharset = true;
+        } elseif (function_exists('utf8_decode')) {
+            $length = strlen(utf8_decode($stringValue));
+        } else {
+            preg_replace('/./u', '', $stringValue, -1, $length);
+        }
+
+        if ($invalidCharset) {
+            $this->buildViolation($constraint->charsetMessage)
+                ->setParameter('{{ value }}', $this->formatValue($stringValue))
+                ->setParameter('{{ charset }}', $constraint->charset)
+                ->setInvalidValue($value)
+                ->addViolation();
+
+            return;
         }
 
         if (null !== $constraint->max && $length > $constraint->max) {
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LocaleValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LocaleValidator.php
index dadbeba..748e5cf 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LocaleValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LocaleValidator.php
@@ -17,7 +17,7 @@
 use Symfony\Component\Validator\Exception\UnexpectedTypeException;
 
 /**
- * Validates whether a value is a valid locale code
+ * Validates whether a value is a valid locale code.
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  *
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LuhnValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LuhnValidator.php
index d60b7f8..d58bfbf 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LuhnValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/LuhnValidator.php
@@ -16,12 +16,13 @@
 use Symfony\Component\Validator\Exception\UnexpectedTypeException;
 
 /**
- * Validates a PAN using the LUHN Algorithm
+ * Validates a PAN using the LUHN Algorithm.
  *
  * For a list of example card numbers that are used to test this
  * class, please see the LuhnValidatorTest class.
  *
  * @see    http://en.wikipedia.org/wiki/Luhn_algorithm
+ *
  * @author Tim Nagel <t.nagel@infinite.net.au>
  * @author Greg Knapp http://gregk.me/2011/php-implementation-of-bank-card-luhn-algorithm/
  * @author Bernhard Schussek <bschussek@gmail.com>
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Regex.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Regex.php
index 3820bcd..3cdf514 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Regex.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/Regex.php
@@ -47,7 +47,7 @@ public function getRequiredOptions()
     /**
      * Converts the htmlPattern to a suitable format for HTML5 pattern.
      * Example: /^[a-z]+$/ would be converted to [a-z]+
-     * However, if options are specified, it cannot be converted
+     * However, if options are specified, it cannot be converted.
      *
      * Pattern is also ignored if match=false since the pattern should
      * then be reversed before application.
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/RegexValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/RegexValidator.php
index b182344..5916e85 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/RegexValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/RegexValidator.php
@@ -16,7 +16,7 @@
 use Symfony\Component\Validator\Exception\UnexpectedTypeException;
 
 /**
- * Validates whether a value match or not given regexp pattern
+ * Validates whether a value match or not given regexp pattern.
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  * @author Joseph Bielawski <stloyd@gmail.com>
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/TypeValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/TypeValidator.php
index ca6e5aa..66217d0 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/TypeValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Constraints/TypeValidator.php
@@ -40,9 +40,9 @@ public function validate($value, Constraint $constraint)
         $isFunction = 'is_'.$type;
         $ctypeFunction = 'ctype_'.$type;
 
-        if (function_exists($isFunction) && call_user_func($isFunction, $value)) {
+        if (function_exists($isFunction) && $isFunction($value)) {
             return;
-        } elseif (function_exists($ctypeFunction) && call_user_func($ctypeFunction, $value)) {
+        } elseif (function_exists($ctypeFunction) && $ctypeFunction($value)) {
             return;
         } elseif ($value instanceof $constraint->type) {
             return;
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Context/ExecutionContext.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Context/ExecutionContext.php
index 8934a42..f329615 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Context/ExecutionContext.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Context/ExecutionContext.php
@@ -131,13 +131,13 @@ class ExecutionContext implements ExecutionContextInterface
     /**
      * Creates a new execution context.
      *
-     * @param ValidatorInterface    $validator         The validator
-     * @param mixed                 $root              The root value of the
-     *                                                 validated object graph
-     * @param TranslatorInterface   $translator        The translator
-     * @param string|null           $translationDomain The translation domain to
-     *                                                 use for translating
-     *                                                 violation messages
+     * @param ValidatorInterface  $validator         The validator
+     * @param mixed               $root              The root value of the
+     *                                               validated object graph
+     * @param TranslatorInterface $translator        The translator
+     * @param string|null         $translationDomain The translation domain to
+     *                                               use for translating
+     *                                               violation messages
      *
      * @internal Called by {@link ExecutionContextFactory}. Should not be used
      *           in user code.
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Context/ExecutionContextFactory.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Context/ExecutionContextFactory.php
index 52bd1e6..d94a806 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Context/ExecutionContextFactory.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Context/ExecutionContextFactory.php
@@ -38,10 +38,10 @@ class ExecutionContextFactory implements ExecutionContextFactoryInterface
     /**
      * Creates a new context factory.
      *
-     * @param TranslatorInterface   $translator        The translator
-     * @param string|null           $translationDomain The translation domain to
-     *                                                 use for translating
-     *                                                 violation messages
+     * @param TranslatorInterface $translator        The translator
+     * @param string|null         $translationDomain The translation domain to
+     *                                               use for translating
+     *                                               violation messages
      */
     public function __construct(TranslatorInterface $translator, $translationDomain = null)
     {
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Context/ExecutionContextInterface.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Context/ExecutionContextInterface.php
index cd4bae6..4865204 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Context/ExecutionContextInterface.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Context/ExecutionContextInterface.php
@@ -150,9 +150,9 @@ public function setConstraint(Constraint $constraint);
     /**
      * Marks an object as validated in a specific validation group.
      *
-     * @param string $cacheKey The hash of the object
-     * @param string $groupHash  The group's name or hash, if it is group
-     *                           sequence
+     * @param string $cacheKey  The hash of the object
+     * @param string $groupHash The group's name or hash, if it is group
+     *                          sequence
      *
      * @internal Used by the validator engine. Should not be called by user
      *           code.
@@ -162,12 +162,12 @@ public function markGroupAsValidated($cacheKey, $groupHash);
     /**
      * Returns whether an object was validated in a specific validation group.
      *
-     * @param string $cacheKey The hash of the object
-     * @param string $groupHash  The group's name or hash, if it is group
-     *                           sequence
+     * @param string $cacheKey  The hash of the object
+     * @param string $groupHash The group's name or hash, if it is group
+     *                          sequence
      *
-     * @return bool    Whether the object was already validated for that
-     *                 group
+     * @return bool Whether the object was already validated for that
+     *              group
      *
      * @internal Used by the validator engine. Should not be called by user
      *           code.
@@ -177,7 +177,7 @@ public function isGroupValidated($cacheKey, $groupHash);
     /**
      * Marks a constraint as validated for an object.
      *
-     * @param string $cacheKey     The hash of the object
+     * @param string $cacheKey       The hash of the object
      * @param string $constraintHash The hash of the constraint
      *
      * @internal Used by the validator engine. Should not be called by user
@@ -188,10 +188,10 @@ public function markConstraintAsValidated($cacheKey, $constraintHash);
     /**
      * Returns whether a constraint was validated for an object.
      *
-     * @param string $cacheKey     The hash of the object
+     * @param string $cacheKey       The hash of the object
      * @param string $constraintHash The hash of the constraint
      *
-     * @return bool    Whether the constraint was already validated
+     * @return bool Whether the constraint was already validated
      *
      * @internal Used by the validator engine. Should not be called by user
      *           code.
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/GlobalExecutionContextInterface.php b/core/vendor/symfony/validator/Symfony/Component/Validator/GlobalExecutionContextInterface.php
index fb2aef3..06dbf3e 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/GlobalExecutionContextInterface.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/GlobalExecutionContextInterface.php
@@ -44,7 +44,7 @@ public function getViolations();
      *
      * @return mixed The root value.
      *
-     * @see ExecutionContextInterface::getRoot
+     * @see ExecutionContextInterface::getRoot()
      */
     public function getRoot();
 
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/LICENSE b/core/vendor/symfony/validator/Symfony/Component/Validator/LICENSE
index 0b3292c..43028bc 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/LICENSE
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2014 Fabien Potencier
+Copyright (c) 2004-2015 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Cache/CacheInterface.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Cache/CacheInterface.php
index 2f9b031..e8047c6 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Cache/CacheInterface.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Cache/CacheInterface.php
@@ -14,21 +14,21 @@
 use Symfony\Component\Validator\Mapping\ClassMetadata;
 
 /**
- * Persists ClassMetadata instances in a cache
+ * Persists ClassMetadata instances in a cache.
  *
  * @author Bernhard Schussek <bschussek@gmail.com>
  */
 interface CacheInterface
 {
     /**
-     * Returns whether metadata for the given class exists in the cache
+     * Returns whether metadata for the given class exists in the cache.
      *
      * @param string $class
      */
     public function has($class);
 
     /**
-     * Returns the metadata for the given class from the cache
+     * Returns the metadata for the given class from the cache.
      *
      * @param string $class Class Name
      *
@@ -37,7 +37,7 @@ public function has($class);
     public function read($class);
 
     /**
-     * Stores a class metadata in the cache
+     * Stores a class metadata in the cache.
      *
      * @param ClassMetadata $metadata A Class Metadata
      */
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/ClassMetadata.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/ClassMetadata.php
index 6a7e8d0..a234939 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/ClassMetadata.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/ClassMetadata.php
@@ -111,7 +111,7 @@ class ClassMetadata extends ElementMetadata implements ClassMetadataInterface
     private $reflClass;
 
     /**
-     * Constructs a metadata for the given class
+     * Constructs a metadata for the given class.
      *
      * @param string $class
      */
@@ -195,7 +195,7 @@ public function getClassName()
     }
 
     /**
-     * Returns the name of the default group for this class
+     * Returns the name of the default group for this class.
      *
      * For each class, the group "Default" is an alias for the group
      * "<ClassName>", where <ClassName> is the non-namespaced name of the
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/ClassMetadataInterface.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/ClassMetadataInterface.php
index bf1e36f..bb76c2c 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/ClassMetadataInterface.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/ClassMetadataInterface.php
@@ -46,7 +46,7 @@ public function getConstrainedProperties();
      *
      * If it is, you can access the group sequence with {@link getGroupSequence()}.
      *
-     * @return bool    Returns true if the "Default" group is overridden
+     * @return bool Returns true if the "Default" group is overridden
      *
      * @see \Symfony\Component\Validator\Constraints\GroupSequence
      */
@@ -71,8 +71,8 @@ public function getGroupSequence();
      * This interface will be used to obtain the group sequence when an object
      * of this class is validated.
      *
-     * @return bool    Returns true if the "Default" group is overridden by
-     *                 a dynamic group sequence
+     * @return bool Returns true if the "Default" group is overridden by
+     *              a dynamic group sequence
      *
      * @see \Symfony\Component\Validator\GroupSequenceProviderInterface
      */
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php
index 08f7381..14b3f9b 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php
@@ -17,7 +17,8 @@
 abstract class AbstractLoader implements LoaderInterface
 {
     /**
-     * Contains all known namespaces indexed by their prefix
+     * Contains all known namespaces indexed by their prefix.
+     *
      * @var array
      */
     protected $namespaces = array();
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/FilesLoader.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/FilesLoader.php
index a20c797..a631093 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/FilesLoader.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/FilesLoader.php
@@ -18,8 +18,8 @@
  *
  * @author Bulat Shakirzyanov <mallluhuct@gmail.com>
  *
- * @see    Symfony\Component\Validator\Mapping\Loader\YamlFileLoader
- * @see    Symfony\Component\Validator\Mapping\Loader\XmlFileLoader
+ * @see YamlFileLoader
+ * @see XmlFileLoader
  */
 abstract class FilesLoader extends LoaderChain
 {
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/LoaderChain.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/LoaderChain.php
index 7378daf..c3cacdb 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/LoaderChain.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/LoaderChain.php
@@ -15,7 +15,7 @@
 use Symfony\Component\Validator\Mapping\ClassMetadata;
 
 /**
- * Calls multiple LoaderInterface instances in a chain
+ * Calls multiple LoaderInterface instances in a chain.
  *
  * This class accepts multiple instances of LoaderInterface to be passed to the
  * constructor. When loadClassMetadata() is called, the same method is called
@@ -29,7 +29,7 @@ class LoaderChain implements LoaderInterface
     protected $loaders;
 
     /**
-     * Accepts a list of LoaderInterface instances
+     * Accepts a list of LoaderInterface instances.
      *
      * @param LoaderInterface[] $loaders An array of LoaderInterface instances
      *
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/XmlFilesLoader.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/XmlFilesLoader.php
index 02989ff..3b7043f 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/XmlFilesLoader.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/XmlFilesLoader.php
@@ -12,11 +12,11 @@
 namespace Symfony\Component\Validator\Mapping\Loader;
 
 /**
- * Loads multiple xml mapping files
+ * Loads multiple xml mapping files.
  *
  * @author Bulat Shakirzyanov <mallluhuct@gmail.com>
  *
- * @see    Symfony\Component\Validator\Mapping\Loader\FilesLoader
+ * @see FilesLoader
  */
 class XmlFilesLoader extends FilesLoader
 {
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/YamlFileLoader.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/YamlFileLoader.php
index 32d6c6a..2737cca 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/YamlFileLoader.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/YamlFileLoader.php
@@ -19,7 +19,7 @@ class YamlFileLoader extends FileLoader
     private $yamlParser;
 
     /**
-     * An array of YAML class descriptions
+     * An array of YAML class descriptions.
      *
      * @var array
      */
@@ -110,7 +110,7 @@ public function loadClassMetadata(ClassMetadata $metadata)
     }
 
     /**
-     * Parses a collection of YAML nodes
+     * Parses a collection of YAML nodes.
      *
      * @param array $nodes The YAML nodes
      *
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/YamlFilesLoader.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/YamlFilesLoader.php
index 12cd1a0..e01def2 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/YamlFilesLoader.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/Loader/YamlFilesLoader.php
@@ -12,11 +12,11 @@
 namespace Symfony\Component\Validator\Mapping\Loader;
 
 /**
- * Loads multiple yaml mapping files
+ * Loads multiple yaml mapping files.
  *
  * @author Bulat Shakirzyanov <mallluhuct@gmail.com>
  *
- * @see    Symfony\Component\Validator\Mapping\Loader\FilesLoader
+ * @see FilesLoader
  */
 class YamlFilesLoader extends FilesLoader
 {
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/MemberMetadata.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/MemberMetadata.php
index 371772d..a0bbe0d 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/MemberMetadata.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/MemberMetadata.php
@@ -157,7 +157,7 @@ public function isPublic($objectOrClassName)
     }
 
     /**
-     * Returns whether this member is protected
+     * Returns whether this member is protected.
      *
      * @param object|string $objectOrClassName The object or the class name
      *
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/MetadataInterface.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/MetadataInterface.php
index 28c355d..fda1dbb 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/MetadataInterface.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/MetadataInterface.php
@@ -34,7 +34,7 @@
     /**
      * Returns the strategy for cascading objects.
      *
-     * @return int     The cascading strategy
+     * @return int The cascading strategy
      *
      * @see CascadingStrategy
      */
@@ -43,7 +43,7 @@ public function getCascadingStrategy();
     /**
      * Returns the strategy for traversing traversable objects.
      *
-     * @return int     The traversal strategy
+     * @return int The traversal strategy
      *
      * @see TraversalStrategy
      */
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/TraversalStrategy.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/TraversalStrategy.php
index d44733b..5122c47 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/TraversalStrategy.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/TraversalStrategy.php
@@ -53,6 +53,7 @@ class TraversalStrategy
      *
      * @deprecated This constant was added for backwards compatibility only.
      *             It will be removed in Symfony 3.0.
+     * @internal
      */
     const STOP_RECURSION = 8;
 
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php
index e362704..4013fd4 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/AbstractComparisonValidatorTestCase.php
@@ -80,6 +80,7 @@ public function testThrowsConstraintExceptionIfNoValueOrProperty()
 
     /**
      * @dataProvider provideAllValidComparisons
+     *
      * @param mixed $dirtyValue
      * @param mixed $comparisonValue
      */
@@ -115,6 +116,7 @@ public function provideAllValidComparisons()
 
     /**
      * @dataProvider provideAllInvalidComparisons
+     *
      * @param mixed  $dirtyValue
      * @param mixed  $dirtyValueAsString
      * @param mixed  $comparedValue
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/AbstractConstraintValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/AbstractConstraintValidatorTest.php
index 9cca4c6..d55e464 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/AbstractConstraintValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/AbstractConstraintValidatorTest.php
@@ -26,6 +26,7 @@
 
 /**
  * @since  2.5.3
+ *
  * @author Bernhard Schussek <bschussek@gmail.com>
  */
 abstract class AbstractConstraintValidatorTest extends \PHPUnit_Framework_TestCase
@@ -58,6 +59,10 @@
 
     protected function setUp()
     {
+        if (Validation::API_VERSION_2_5 !== $this->getApiVersion()) {
+            $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+        }
+
         $this->group = 'MyGroup';
         $this->metadata = null;
         $this->object = null;
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/ChoiceValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/ChoiceValidatorTest.php
index e06c173..579d6aa 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/ChoiceValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/ChoiceValidatorTest.php
@@ -95,7 +95,7 @@ public function testValidChoiceCallbackClosure()
     {
         $constraint = new Choice(array('callback' => function () {
             return array('foo', 'bar');
-        }, ));
+        }));
 
         $this->validator->validate('bar', $constraint);
 
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LengthValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LengthValidatorTest.php
index ae27ff2..1224401 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LengthValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LengthValidatorTest.php
@@ -54,12 +54,12 @@ public function getThreeOrLessCharacters()
         return array(
             array(12),
             array('12'),
-            array('üü', true),
-            array('éé', true),
+            array('üü'),
+            array('éé'),
             array(123),
             array('123'),
-            array('üüü', true),
-            array('ééé', true),
+            array('üüü'),
+            array('ééé'),
         );
     }
 
@@ -68,8 +68,8 @@ public function getFourCharacters()
         return array(
             array(1234),
             array('1234'),
-            array('üüüü', true),
-            array('éééé', true),
+            array('üüüü'),
+            array('éééé'),
         );
     }
 
@@ -78,24 +78,34 @@ public function getFiveOrMoreCharacters()
         return array(
             array(12345),
             array('12345'),
-            array('üüüüü', true),
-            array('ééééé', true),
+            array('üüüüü'),
+            array('ééééé'),
             array(123456),
             array('123456'),
-            array('üüüüüü', true),
-            array('éééééé', true),
+            array('üüüüüü'),
+            array('éééééé'),
+        );
+    }
+
+    public function getOneCharset()
+    {
+        if (!function_exists('iconv') && !function_exists('mb_convert_encoding')) {
+            $this->markTestSkipped('Mbstring or iconv is required for this test.');
+        }
+
+        return array(
+            array("é", "utf8", true),
+            array("\xE9", "CP1252", true),
+            array("\xE9", "XXX", false),
+            array("\xE9", "utf8", false),
         );
     }
 
     /**
      * @dataProvider getFiveOrMoreCharacters
      */
-    public function testValidValuesMin($value, $mbOnly = false)
+    public function testValidValuesMin($value)
     {
-        if ($mbOnly && !function_exists('mb_strlen')) {
-            $this->markTestSkipped('mb_strlen does not exist');
-        }
-
         $constraint = new Length(array('min' => 5));
         $this->validator->validate($value, $constraint);
 
@@ -105,12 +115,8 @@ public function testValidValuesMin($value, $mbOnly = false)
     /**
      * @dataProvider getThreeOrLessCharacters
      */
-    public function testValidValuesMax($value, $mbOnly = false)
+    public function testValidValuesMax($value)
     {
-        if ($mbOnly && !function_exists('mb_strlen')) {
-            $this->markTestSkipped('mb_strlen does not exist');
-        }
-
         $constraint = new Length(array('max' => 3));
         $this->validator->validate($value, $constraint);
 
@@ -120,12 +126,8 @@ public function testValidValuesMax($value, $mbOnly = false)
     /**
      * @dataProvider getFourCharacters
      */
-    public function testValidValuesExact($value, $mbOnly = false)
+    public function testValidValuesExact($value)
     {
-        if ($mbOnly && !function_exists('mb_strlen')) {
-            $this->markTestSkipped('mb_strlen does not exist');
-        }
-
         $constraint = new Length(4);
         $this->validator->validate($value, $constraint);
 
@@ -135,12 +137,8 @@ public function testValidValuesExact($value, $mbOnly = false)
     /**
      * @dataProvider getThreeOrLessCharacters
      */
-    public function testInvalidValuesMin($value, $mbOnly = false)
+    public function testInvalidValuesMin($value)
     {
-        if ($mbOnly && !function_exists('mb_strlen')) {
-            $this->markTestSkipped('mb_strlen does not exist');
-        }
-
         $constraint = new Length(array(
             'min' => 4,
             'minMessage' => 'myMessage',
@@ -160,12 +158,8 @@ public function testInvalidValuesMin($value, $mbOnly = false)
     /**
      * @dataProvider getFiveOrMoreCharacters
      */
-    public function testInvalidValuesMax($value, $mbOnly = false)
+    public function testInvalidValuesMax($value)
     {
-        if ($mbOnly && !function_exists('mb_strlen')) {
-            $this->markTestSkipped('mb_strlen does not exist');
-        }
-
         $constraint = new Length(array(
             'max' => 4,
             'maxMessage' => 'myMessage',
@@ -185,12 +179,8 @@ public function testInvalidValuesMax($value, $mbOnly = false)
     /**
      * @dataProvider getThreeOrLessCharacters
      */
-    public function testInvalidValuesExactLessThanFour($value, $mbOnly = false)
+    public function testInvalidValuesExactLessThanFour($value)
     {
-        if ($mbOnly && !function_exists('mb_strlen')) {
-            $this->markTestSkipped('mb_strlen does not exist');
-        }
-
         $constraint = new Length(array(
             'min' => 4,
             'max' => 4,
@@ -211,12 +201,8 @@ public function testInvalidValuesExactLessThanFour($value, $mbOnly = false)
     /**
      * @dataProvider getFiveOrMoreCharacters
      */
-    public function testInvalidValuesExactMoreThanFour($value, $mbOnly = false)
+    public function testInvalidValuesExactMoreThanFour($value)
     {
-        if ($mbOnly && !function_exists('mb_strlen')) {
-            $this->markTestSkipped('mb_strlen does not exist');
-        }
-
         $constraint = new Length(array(
             'min' => 4,
             'max' => 4,
@@ -234,6 +220,31 @@ public function testInvalidValuesExactMoreThanFour($value, $mbOnly = false)
             ->assertRaised();
     }
 
+    /**
+     * @dataProvider getOneCharset
+     */
+    public function testOneCharset($value, $charset, $isValid)
+    {
+        $constraint = new Length(array(
+            'min' => 1,
+            'max' => 1,
+            'charset' => $charset,
+            'charsetMessage' => 'myMessage',
+        ));
+
+        $this->validator->validate($value, $constraint);
+
+        if ($isValid) {
+            $this->assertNoViolation();
+        } else {
+            $this->buildViolation('myMessage')
+                ->setParameter('{{ value }}', '"'.$value.'"')
+                ->setParameter('{{ charset }}', $charset)
+                ->setInvalidValue($value)
+                ->assertRaised();
+        }
+    }
+
     public function testConstraintGetDefaultOption()
     {
         $constraint = new Length(5);
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Fixtures/StubGlobalExecutionContext.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Fixtures/StubGlobalExecutionContext.php
index 53bd10d..6ae3663 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Fixtures/StubGlobalExecutionContext.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Fixtures/StubGlobalExecutionContext.php
@@ -16,7 +16,8 @@
 use Symfony\Component\Validator\ValidationVisitorInterface;
 
 /**
- * @since  2.5.3
+ * @since 2.5.3
+ *
  * @author Bernhard Schussek <bschussek@gmail.com>
  *
  * @deprecated
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ExecutionContextTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/LegacyExecutionContextTest.php
similarity index 98%
rename from core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ExecutionContextTest.php
rename to core/vendor/symfony/validator/Symfony/Component/Validator/Tests/LegacyExecutionContextTest.php
index 3b54a9e..36cba61 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ExecutionContextTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/LegacyExecutionContextTest.php
@@ -20,7 +20,7 @@
 use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
 use Symfony\Component\Validator\ValidationVisitor;
 
-class ExecutionContextTest extends \PHPUnit_Framework_TestCase
+class LegacyExecutionContextTest extends \PHPUnit_Framework_TestCase
 {
     const TRANS_DOMAIN = 'trans_domain';
 
@@ -38,6 +38,8 @@ class ExecutionContextTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
         $this->visitor = $this->getMockBuilder('Symfony\Component\Validator\ValidationVisitor')
             ->disableOriginalConstructor()
             ->getMock();
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Cache/ApcCacheTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Cache/LegacyApcCacheTest.php
similarity index 94%
rename from core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Cache/ApcCacheTest.php
rename to core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Cache/LegacyApcCacheTest.php
index 4c7fe79..009e7e3 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Cache/ApcCacheTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Cache/LegacyApcCacheTest.php
@@ -13,10 +13,12 @@
 
 use Symfony\Component\Validator\Mapping\Cache\ApcCache;
 
-class ApcCacheTest extends \PHPUnit_Framework_TestCase
+class LegacyApcCacheTest extends \PHPUnit_Framework_TestCase
 {
     protected function setUp()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
         if (!extension_loaded('apc') || !ini_get('apc.enable_cli')) {
             $this->markTestSkipped('APC is not loaded.');
         }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/ClassMetadataTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/ClassMetadataTest.php
index 782f822..8634ac5 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/ClassMetadataTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/ClassMetadataTest.php
@@ -271,15 +271,7 @@ public function testGroupSequenceProvider()
     }
 
     /**
-     * https://github.com/symfony/symfony/issues/11604
-     */
-    public function testGetMemberMetadatasReturnsEmptyArrayWithoutConfiguredMetadata()
-    {
-        $this->assertCount(0, $this->metadata->getMemberMetadatas('foo'), '->getMemberMetadatas() returns an empty collection if no metadata is configured for the given property');
-    }
-
-    /**
-     * https://github.com/symfony/symfony/issues/11604
+     * https://github.com/symfony/symfony/issues/11604.
      */
     public function testGetPropertyMetadataReturnsEmptyArrayWithoutConfiguredMetadata()
     {
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/BlackholeMetadataFactoryTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Factory/BlackHoleMetadataFactoryTest.php
similarity index 64%
rename from core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/BlackholeMetadataFactoryTest.php
rename to core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Factory/BlackHoleMetadataFactoryTest.php
index 74bcc69..641bf91 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/BlackholeMetadataFactoryTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Factory/BlackHoleMetadataFactoryTest.php
@@ -9,24 +9,24 @@
  * file that was distributed with this source code.
  */
 
-namespace Symfony\Component\Validator\Tests\Mapping;
+namespace Symfony\Component\Validator\Tests\Mapping\Factory;
 
-use Symfony\Component\Validator\Mapping\BlackholeMetadataFactory;
+use Symfony\Component\Validator\Mapping\Factory\BlackHoleMetadataFactory;
 
-class BlackholeMetadataFactoryTest extends \PHPUnit_Framework_TestCase
+class BlackHoleMetadataFactoryTest extends \PHPUnit_Framework_TestCase
 {
     /**
      * @expectedException \LogicException
      */
     public function testGetMetadataForThrowsALogicException()
     {
-        $metadataFactory = new BlackholeMetadataFactory();
+        $metadataFactory = new BlackHoleMetadataFactory();
         $metadataFactory->getMetadataFor('foo');
     }
 
     public function testHasMetadataForReturnsFalse()
     {
-        $metadataFactory = new BlackholeMetadataFactory();
+        $metadataFactory = new BlackHoleMetadataFactory();
 
         $this->assertFalse($metadataFactory->hasMetadataFor('foo'));
     }
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/ClassMetadataFactoryTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Factory/LazyLoadingMetadataFactoryTest.php
similarity index 87%
rename from core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/ClassMetadataFactoryTest.php
rename to core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Factory/LazyLoadingMetadataFactoryTest.php
index b559852..74ee912 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/ClassMetadataFactoryTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/Factory/LazyLoadingMetadataFactoryTest.php
@@ -9,21 +9,21 @@
  * file that was distributed with this source code.
  */
 
-namespace Symfony\Component\Validator\Tests\Mapping;
+namespace Symfony\Component\Validator\Tests\Mapping\Factory;
 
 use Symfony\Component\Validator\Mapping\ClassMetadata;
-use Symfony\Component\Validator\Mapping\ClassMetadataFactory;
+use Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory;
 use Symfony\Component\Validator\Mapping\Loader\LoaderInterface;
 use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
 
-class ClassMetadataFactoryTest extends \PHPUnit_Framework_TestCase
+class LazyLoadingMetadataFactoryTest extends \PHPUnit_Framework_TestCase
 {
     const CLASSNAME = 'Symfony\Component\Validator\Tests\Fixtures\Entity';
     const PARENTCLASS = 'Symfony\Component\Validator\Tests\Fixtures\EntityParent';
 
     public function testLoadClassMetadata()
     {
-        $factory = new ClassMetadataFactory(new TestLoader());
+        $factory = new LazyLoadingMetadataFactory(new TestLoader());
         $metadata = $factory->getMetadataFor(self::PARENTCLASS);
 
         $constraints = array(
@@ -35,7 +35,7 @@ public function testLoadClassMetadata()
 
     public function testMergeParentConstraints()
     {
-        $factory = new ClassMetadataFactory(new TestLoader());
+        $factory = new LazyLoadingMetadataFactory(new TestLoader());
         $metadata = $factory->getMetadataFor(self::CLASSNAME);
 
         $constraints = array(
@@ -61,7 +61,7 @@ public function testMergeParentConstraints()
     public function testWriteMetadataToCache()
     {
         $cache = $this->getMock('Symfony\Component\Validator\Mapping\Cache\CacheInterface');
-        $factory = new ClassMetadataFactory(new TestLoader(), $cache);
+        $factory = new LazyLoadingMetadataFactory(new TestLoader(), $cache);
 
         $tester = $this;
         $constraints = array(
@@ -90,7 +90,7 @@ public function testReadMetadataFromCache()
     {
         $loader = $this->getMock('Symfony\Component\Validator\Mapping\Loader\LoaderInterface');
         $cache = $this->getMock('Symfony\Component\Validator\Mapping\Cache\CacheInterface');
-        $factory = new ClassMetadataFactory($loader, $cache);
+        $factory = new LazyLoadingMetadataFactory($loader, $cache);
 
         $tester = $this;
         $metadata = new ClassMetadata(self::PARENTCLASS);
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/ElementMetadataTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/LegacyElementMetadataTest.php
similarity index 94%
rename from core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/ElementMetadataTest.php
rename to core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/LegacyElementMetadataTest.php
index c2eb4ce..0594790 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/ElementMetadataTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Mapping/LegacyElementMetadataTest.php
@@ -15,12 +15,14 @@
 use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
 use Symfony\Component\Validator\Tests\Fixtures\ConstraintB;
 
-class ElementMetadataTest extends \PHPUnit_Framework_TestCase
+class LegacyElementMetadataTest extends \PHPUnit_Framework_TestCase
 {
     protected $metadata;
 
     protected function setUp()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
         $this->metadata = new TestElementMetadata();
     }
 
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Validator/Abstract2Dot5ApiTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Validator/Abstract2Dot5ApiTest.php
index c214b9c..1641d17 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Validator/Abstract2Dot5ApiTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Validator/Abstract2Dot5ApiTest.php
@@ -634,8 +634,10 @@ public function testReferenceMetadataMustImplementClassMetadataInterface()
     /**
      * @expectedException \Symfony\Component\Validator\Exception\UnsupportedMetadataException
      */
-    public function testPropertyMetadataMustImplementPropertyMetadataInterface()
+    public function testLegacyPropertyMetadataMustImplementPropertyMetadataInterface()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
         $entity = new Entity();
 
         // Legacy interface
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Validator/AbstractLegacyApiTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Validator/AbstractLegacyApiTest.php
index 748e106..a4c1fe8 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Validator/AbstractLegacyApiTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Validator/AbstractLegacyApiTest.php
@@ -42,6 +42,8 @@
 
     protected function setUp()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
         parent::setUp();
 
         $this->validator = $this->createValidator($this->metadataFactory);
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Validator/AbstractValidatorTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Validator/AbstractValidatorTest.php
index 2236d6c..4554aff 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Validator/AbstractValidatorTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Validator/AbstractValidatorTest.php
@@ -841,8 +841,10 @@ public function testValidateProperty()
      *
      * @expectedException \Symfony\Component\Validator\Exception\ValidatorException
      */
-    public function testValidatePropertyFailsIfPropertiesNotSupported()
+    public function testLegacyValidatePropertyFailsIfPropertiesNotSupported()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
         // $metadata does not implement PropertyMetadataContainerInterface
         $metadata = $this->getMock('Symfony\Component\Validator\MetadataInterface');
 
@@ -971,8 +973,10 @@ public function testValidatePropertyValueWithClassName()
      *
      * @expectedException \Symfony\Component\Validator\Exception\ValidatorException
      */
-    public function testValidatePropertyValueFailsIfPropertiesNotSupported()
+    public function testLegacyValidatePropertyValueFailsIfPropertiesNotSupported()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
         // $metadata does not implement PropertyMetadataContainerInterface
         $metadata = $this->getMock('Symfony\Component\Validator\MetadataInterface');
 
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php
index ba184f7..0a15737 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php
@@ -110,8 +110,10 @@ public function testSetTranslationDomain()
         $this->assertSame($this->builder, $this->builder->setTranslationDomain('TRANS_DOMAIN'));
     }
 
-    public function testDefaultApiVersion()
+    public function testLegacyDefaultApiVersion()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
         if (PHP_VERSION_ID < 50309) {
             // Old implementation on PHP < 5.3.9
             $this->assertInstanceOf('Symfony\Component\Validator\Validator', $this->builder->getValidator());
@@ -121,8 +123,10 @@ public function testDefaultApiVersion()
         }
     }
 
-    public function testSetApiVersion24()
+    public function testLegacySetApiVersion24()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
         $this->assertSame($this->builder, $this->builder->setApiVersion(Validation::API_VERSION_2_4));
         $this->assertInstanceOf('Symfony\Component\Validator\Validator', $this->builder->getValidator());
     }
@@ -133,8 +137,10 @@ public function testSetApiVersion25()
         $this->assertInstanceOf('Symfony\Component\Validator\Validator\RecursiveValidator', $this->builder->getValidator());
     }
 
-    public function testSetApiVersion24And25()
+    public function testLegacySetApiVersion24And25()
     {
+        $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
+
         if (PHP_VERSION_ID < 50309) {
             $this->markTestSkipped('Not supported prior to PHP 5.3.9');
         }
diff --git a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/Exception.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/bootstrap.php
similarity index 58%
copy from core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/Exception.php
copy to core/vendor/symfony/validator/Symfony/Component/Validator/Tests/bootstrap.php
index a141164..8977ca9 100644
--- a/core/vendor/symfony/serializer/Symfony/Component/Serializer/Exception/Exception.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/bootstrap.php
@@ -9,13 +9,6 @@
  * file that was distributed with this source code.
  */
 
-namespace Symfony\Component\Serializer\Exception;
+$loader = require __DIR__.'/../vendor/autoload.php';
 
-/**
- * Base exception
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-interface Exception
-{
-}
+Doctrine\Common\Annotations\AnnotationRegistry::registerLoader(function ($class) {return class_exists($class);});
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Validator/RecursiveContextualValidator.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Validator/RecursiveContextualValidator.php
index 2da1887..191decd 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Validator/RecursiveContextualValidator.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Validator/RecursiveContextualValidator.php
@@ -313,17 +313,17 @@ protected function normalizeGroups($groups)
      * traversal, the object will be iterated and each nested object will be
      * validated instead.
      *
-     * @param object    $object            The object to cascade
-     * @param string    $propertyPath      The current property path
-     * @param string[]  $groups            The validated groups
-     * @param int       $traversalStrategy The strategy for traversing the
-     *                                     cascaded object
-     * @param ExecutionContextInterface $context The current execution context
+     * @param object                    $object            The object to cascade
+     * @param string                    $propertyPath      The current property path
+     * @param string[]                  $groups            The validated groups
+     * @param int                       $traversalStrategy The strategy for traversing the
+     *                                                     cascaded object
+     * @param ExecutionContextInterface $context           The current execution context
      *
-     * @throws NoSuchMetadataException If the object has no associated metadata
-     *                                 and does not implement {@link \Traversable}
-     *                                 or if traversal is disabled via the
-     *                                 $traversalStrategy argument
+     * @throws NoSuchMetadataException      If the object has no associated metadata
+     *                                      and does not implement {@link \Traversable}
+     *                                      or if traversal is disabled via the
+     *                                      $traversalStrategy argument
      * @throws UnsupportedMetadataException If the metadata returned by the
      *                                      metadata factory does not implement
      *                                      {@link ClassMetadataInterface}
@@ -384,11 +384,11 @@ private function validateObject($object, $propertyPath, array $groups, $traversa
      * @param array|\Traversable        $collection    The collection
      * @param string                    $propertyPath  The current property path
      * @param string[]                  $groups        The validated groups
-     * @param bool    $stopRecursion                   Whether to disable
+     * @param bool                      $stopRecursion Whether to disable
      *                                                 recursive iteration. For
      *                                                 backwards compatibility
      *                                                 with Symfony < 2.5.
-     * @param ExecutionContextInterface $context      The current execution context
+     * @param ExecutionContextInterface $context       The current execution context
      *
      * @see ClassNode
      * @see CollectionNode
@@ -832,12 +832,12 @@ private function stepThroughGroupSequence($value, $object, $cacheKey, MetadataIn
     /**
      * Validates a node's value against all constraints in the given group.
      *
-     * @param mixed                     $value      The validated value
-     * @param string                    $cacheKey   The key for caching the
-     *                                              validated value
-     * @param MetadataInterface         $metadata   The metadata of the value
-     * @param string                    $group      The group to validate
-     * @param ExecutionContextInterface $context    The execution context
+     * @param mixed                     $value    The validated value
+     * @param string                    $cacheKey The key for caching the
+     *                                            validated value
+     * @param MetadataInterface         $metadata The metadata of the value
+     * @param string                    $group    The group to validate
+     * @param ExecutionContextInterface $context  The execution context
      */
     private function validateInGroup($value, $cacheKey, MetadataInterface $metadata, $group, ExecutionContextInterface $context)
     {
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilder.php b/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilder.php
index 07a206b..1d65478 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilder.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilder.php
@@ -23,6 +23,7 @@
 use Symfony\Component\Validator\Exception\ValidatorException;
 use Symfony\Component\Validator\Mapping\Cache\CacheInterface;
 use Symfony\Component\Validator\Mapping\ClassMetadataFactory;
+use Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory;
 use Symfony\Component\Validator\Mapping\Loader\AnnotationLoader;
 use Symfony\Component\Validator\Mapping\Loader\LoaderChain;
 use Symfony\Component\Validator\Mapping\Loader\StaticMethodLoader;
@@ -345,6 +346,13 @@ public function setApiVersion($apiVersion)
     public function getValidator()
     {
         $metadataFactory = $this->metadataFactory;
+        $apiVersion = $this->apiVersion;
+
+        if (null === $apiVersion) {
+            $apiVersion = PHP_VERSION_ID < 50309
+                ? Validation::API_VERSION_2_4
+                : Validation::API_VERSION_2_5_BC;
+        }
 
         if (!$metadataFactory) {
             $loaders = array();
@@ -377,18 +385,15 @@ public function getValidator()
                 $loader = $loaders[0];
             }
 
-            $metadataFactory = new ClassMetadataFactory($loader, $this->metadataCache);
+            if (Validation::API_VERSION_2_5 === $apiVersion) {
+                $metadataFactory = new LazyLoadingMetadataFactory($loader, $this->metadataCache);
+            } else {
+                $metadataFactory = new ClassMetadataFactory($loader, $this->metadataCache);
+            }
         }
 
         $validatorFactory = $this->validatorFactory ?: new ConstraintValidatorFactory($this->propertyAccessor);
         $translator = $this->translator ?: new DefaultTranslator();
-        $apiVersion = $this->apiVersion;
-
-        if (null === $apiVersion) {
-            $apiVersion = PHP_VERSION_ID < 50309
-                ? Validation::API_VERSION_2_4
-                : Validation::API_VERSION_2_5_BC;
-        }
 
         if (Validation::API_VERSION_2_4 === $apiVersion) {
             return new ValidatorV24($metadataFactory, $validatorFactory, $translator, $this->translationDomain, $this->initializers);
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilderInterface.php b/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilderInterface.php
index c5420c8..2fd0f9c 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilderInterface.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/ValidatorBuilderInterface.php
@@ -174,7 +174,7 @@ public function setPropertyAccessor(PropertyAccessorInterface $propertyAccessor)
     /**
      * Sets the API version that the returned validator should support.
      *
-     * @param int     $apiVersion The required API version
+     * @param int $apiVersion The required API version
      *
      * @return ValidatorBuilderInterface The builder object
      *
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Violation/ConstraintViolationBuilderInterface.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Violation/ConstraintViolationBuilderInterface.php
index 5998cbe..3dc270a 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Violation/ConstraintViolationBuilderInterface.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Violation/ConstraintViolationBuilderInterface.php
@@ -82,7 +82,7 @@ public function setInvalidValue($invalidValue);
      * Sets the number which determines how the plural form of the violation
      * message is chosen when it is translated.
      *
-     * @param int     $number The number for determining the plural form
+     * @param int $number The number for determining the plural form
      *
      * @return ConstraintViolationBuilderInterface This builder
      *
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/Violation/LegacyConstraintViolationBuilder.php b/core/vendor/symfony/validator/Symfony/Component/Validator/Violation/LegacyConstraintViolationBuilder.php
index 0607552..5519f42 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/Violation/LegacyConstraintViolationBuilder.php
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/Violation/LegacyConstraintViolationBuilder.php
@@ -43,11 +43,6 @@ class LegacyConstraintViolationBuilder implements ConstraintViolationBuilderInte
     /**
      * @var mixed
      */
-    private $root;
-
-    /**
-     * @var mixed
-     */
     private $invalidValue;
 
     /**
@@ -70,7 +65,6 @@ public function __construct(ExecutionContextInterface $context, $message, array
         $this->context = $context;
         $this->message = $message;
         $this->parameters = $parameters;
-        $this->root = $context->getRoot();
         $this->invalidValue = $context->getValue();
     }
 
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/composer.json b/core/vendor/symfony/validator/Symfony/Component/Validator/composer.json
index d758695..1ff4c52 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/composer.json
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/composer.json
@@ -17,19 +17,19 @@
     ],
     "require": {
         "php": ">=5.3.3",
-        "symfony/translation": "~2.0"
+        "symfony/translation": "~2.0,>=2.0.5"
     },
     "require-dev": {
+        "doctrine/common": "~2.3",
         "symfony/http-foundation": "~2.1",
         "symfony/intl": "~2.3",
-        "symfony/yaml": "~2.0",
+        "symfony/yaml": "~2.0,>=2.0.5",
         "symfony/config": "~2.2",
-        "symfony/property-access": "~2.2",
+        "symfony/property-access": "~2.3",
         "symfony/expression-language": "~2.4",
         "doctrine/annotations": "~1.0",
         "doctrine/cache": "~1.0",
-        "egulias/email-validator": "~1.0",
-        "symfony/expression-language": "~2.4"
+        "egulias/email-validator": "~1.2,>=1.2.1"
     },
     "suggest": {
         "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
diff --git a/core/vendor/symfony/validator/Symfony/Component/Validator/phpunit.xml.dist b/core/vendor/symfony/validator/Symfony/Component/Validator/phpunit.xml.dist
index 3713ca8..d9851a7 100644
--- a/core/vendor/symfony/validator/Symfony/Component/Validator/phpunit.xml.dist
+++ b/core/vendor/symfony/validator/Symfony/Component/Validator/phpunit.xml.dist
@@ -4,8 +4,12 @@
          xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
          backupGlobals="false"
          colors="true"
-         bootstrap="vendor/autoload.php"
+         bootstrap="Tests/bootstrap.php"
 >
+    <php>
+        <!-- Silence E_USER_DEPRECATED (-16385 == -1 & ~E_USER_DEPRECATED) -->
+        <ini name="error_reporting" value="-16385"/>
+    </php>
     <testsuites>
         <testsuite name="Symfony Validator Component Test Suite">
             <directory>./Tests/</directory>
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Escaper.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Escaper.php
index 6f97858..f498765 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Escaper.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Escaper.php
@@ -72,6 +72,14 @@ public static function escapeWithDoubleQuotes($value)
      */
     public static function requiresSingleQuoting($value)
     {
+        // Determines if a PHP value is entirely composed of a value that would
+        // require single quoting in YAML.
+        if (in_array(strtolower($value), array('null', '~', 'true', 'false', 'y', 'n', 'yes', 'no', 'on', 'off'))) {
+            return true;
+        }
+
+        // Determines if the PHP value contains any single characters that would
+        // cause it to require single quoting in YAML.
         return preg_match('/[ \s \' " \: \{ \} \[ \] , & \* \# \?] | \A[ \- ? | < > = ! % @ ` ]/x', $value);
     }
 
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
index e3fafe1..302942e 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
@@ -144,15 +144,13 @@ public static function dump($value, $exceptionOnInvalidType = false, $objectSupp
                 }
 
                 return $repr;
+            case '' == $value:
+                return "''";
             case Escaper::requiresDoubleQuoting($value):
                 return Escaper::escapeWithDoubleQuotes($value);
             case Escaper::requiresSingleQuoting($value):
-                return Escaper::escapeWithSingleQuotes($value);
-            case '' == $value:
-                return "''";
             case preg_match(self::getTimestampRegex(), $value):
-            case in_array(strtolower($value), array('null', '~', 'true', 'false')):
-                return "'$value'";
+                return Escaper::escapeWithSingleQuotes($value);
             default:
                 return $value;
         }
@@ -194,7 +192,7 @@ private static function dumpArray($value, $exceptionOnInvalidType, $objectSuppor
     /**
      * Parses a scalar to a YAML string.
      *
-     * @param scalar $scalar
+     * @param string $scalar
      * @param string $delimiters
      * @param array  $stringDelimiters
      * @param int    &$i
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/LICENSE b/core/vendor/symfony/yaml/Symfony/Component/Yaml/LICENSE
index 0b3292c..43028bc 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/LICENSE
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2014 Fabien Potencier
+Copyright (c) 2004-2015 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
index 00c613d..e9a94d7 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
@@ -29,7 +29,7 @@ class Parser
     private $refs = array();
 
     /**
-     * Constructor
+     * Constructor.
      *
      * @param int $offset The offset of YAML document (used for line numbers in error messages)
      */
@@ -41,10 +41,10 @@ public function __construct($offset = 0)
     /**
      * Parses a YAML string to a PHP value.
      *
-     * @param string  $value                  A YAML string
-     * @param bool    $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
-     * @param bool    $objectSupport          true if object support is enabled, false otherwise
-     * @param bool    $objectForMap           true if maps should return a stdClass instead of array()
+     * @param string $value                  A YAML string
+     * @param bool   $exceptionOnInvalidType true if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
+     * @param bool   $objectSupport          true if object support is enabled, false otherwise
+     * @param bool   $objectForMap           true if maps should return a stdClass instead of array()
      *
      * @return mixed A PHP value
      *
@@ -98,7 +98,6 @@ public function parse($value, $exceptionOnInvalidType = false, $objectSupport =
                     $data[] = $parser->parse($this->getNextEmbedBlock(null, true), $exceptionOnInvalidType, $objectSupport, $objectForMap);
                 } else {
                     if (isset($values['leadspaces'])
-                        && ' ' == $values['leadspaces']
                         && preg_match('#^(?P<key>'.Inline::REGEX_QUOTED_STRING.'|[^ \'"\{\[].*?) *\:(\s+(?P<value>.+?))?\s*$#u', $values['value'], $matches)
                     ) {
                         // this is a compact notation element, add to next block and parse
@@ -108,7 +107,7 @@ public function parse($value, $exceptionOnInvalidType = false, $objectSupport =
 
                         $block = $values['value'];
                         if ($this->isNextLineIndented()) {
-                            $block .= "\n".$this->getNextEmbedBlock($this->getCurrentLineIndentation() + 2);
+                            $block .= "\n".$this->getNextEmbedBlock($this->getCurrentLineIndentation() + strlen($values['leadspaces']) + 1);
                         }
 
                         $data[] = $parser->parse($block, $exceptionOnInvalidType, $objectSupport, $objectForMap);
@@ -349,7 +348,14 @@ private function getNextEmbedBlock($indentation = null, $inSequence = false)
             $newIndent = $indentation;
         }
 
-        $data = array(substr($this->currentLine, $newIndent));
+        $data = array();
+        if ($this->getCurrentLineIndentation() >= $newIndent) {
+            $data[] = substr($this->currentLine, $newIndent);
+        } else {
+            $this->moveToPreviousLine();
+
+            return;
+        }
 
         if ($inSequence && $oldLineIndentation === $newIndent && '-' === $data[0][0]) {
             // the previous line contained a dash but no item content, this line is a sequence item with the same indentation
@@ -372,7 +378,7 @@ private function getNextEmbedBlock($indentation = null, $inSequence = false)
                 $removeComments = !preg_match($removeCommentsPattern, $this->currentLine);
             }
 
-            if ($isItUnindentedCollection && !$this->isStringUnIndentedCollectionItem($this->currentLine)) {
+            if ($isItUnindentedCollection && !$this->isStringUnIndentedCollectionItem($this->currentLine) && $newIndent === $indent) {
                 $this->moveToPreviousLine();
                 break;
             }
@@ -623,7 +629,7 @@ private function cleanup($value)
 
         // strip YAML header
         $count = 0;
-        $value = preg_replace('#^\%YAML[: ][\d\.]+.*\n#su', '', $value, -1, $count);
+        $value = preg_replace('#^\%YAML[: ][\d\.]+.*\n#u', '', $value, -1, $count);
         $this->offset += $count;
 
         // remove leading comments
@@ -649,7 +655,7 @@ private function cleanup($value)
     }
 
     /**
-     * Returns true if the next line starts unindented collection
+     * Returns true if the next line starts unindented collection.
      *
      * @return bool Returns true if the next line starts unindented collection, false otherwise
      */
@@ -681,7 +687,7 @@ private function isNextLineUnIndentedCollection()
     }
 
     /**
-     * Returns true if the string is un-indented collection item
+     * Returns true if the string is un-indented collection item.
      *
      * @return bool Returns true if the string is un-indented collection item, false otherwise
      */
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/README.md b/core/vendor/symfony/yaml/Symfony/Component/Yaml/README.md
index 50f9e09..96abbbf 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/README.md
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/README.md
@@ -6,7 +6,7 @@ YAML implements most of the YAML 1.2 specification.
 ```php
 use Symfony\Component\Yaml\Yaml;
 
-$array = Yaml::parse($file);
+$array = Yaml::parse(file_get_contents(filename));
 
 print Yaml::dump($array);
 ```
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/DumperTest.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/DumperTest.php
index aa27c4a..b103b9a 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/DumperTest.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/DumperTest.php
@@ -11,7 +11,6 @@
 
 namespace Symfony\Component\Yaml\Tests;
 
-use Symfony\Component\Yaml\Yaml;
 use Symfony\Component\Yaml\Parser;
 use Symfony\Component\Yaml\Dumper;
 
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/unindentedCollections.yml b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/unindentedCollections.yml
index fd8ad7e..0c96108 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/unindentedCollections.yml
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/unindentedCollections.yml
@@ -60,3 +60,23 @@ yaml: |
         foo: bar
 php: |
     array('collection' => array('key' => array('a', 'b', 'c'), 'foo' => 'bar'))
+---
+test: Shortcut Key after unindented collection
+brief: >
+    Key/value after unindented collection
+yaml: |
+    collection:
+    - key: foo
+      foo: bar
+php: |
+    array('collection' => array(array('key' => 'foo', 'foo' => 'bar')))
+---
+test: Shortcut Key after unindented collection with custom spaces
+brief: >
+    Key/value after unindented collection
+yaml: |
+    collection:
+    -  key: foo
+       foo: bar
+php: |
+    array('collection' => array(array('key' => 'foo', 'foo' => 'bar')))
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/InlineTest.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/InlineTest.php
index 7f1876d..ad5aac3 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/InlineTest.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/InlineTest.php
@@ -194,6 +194,14 @@ public function getTestsForParse()
             array("'#cfcfcf'", '#cfcfcf'),
             array('::form_base.html.twig', '::form_base.html.twig'),
 
+            // Pre-YAML-1.2 booleans
+            array("'y'", 'y'),
+            array("'n'", 'n'),
+            array("'yes'", 'yes'),
+            array("'no'", 'no'),
+            array("'on'", 'on'),
+            array("'off'", 'off'),
+
             array('2007-10-30', mktime(0, 0, 0, 10, 30, 2007)),
             array('2007-10-30T02:59:43Z', gmmktime(2, 59, 43, 10, 30, 2007)),
             array('2007-10-30 02:59:43 Z', gmmktime(2, 59, 43, 10, 30, 2007)),
@@ -339,6 +347,14 @@ public function getTestsForDump()
             array("'-dash'", '-dash'),
             array("'-'", '-'),
 
+            // Pre-YAML-1.2 booleans
+            array("'y'", 'y'),
+            array("'n'", 'n'),
+            array("'yes'", 'yes'),
+            array("'no'", 'no'),
+            array("'on'", 'on'),
+            array("'off'", 'off'),
+
             // sequences
             array('[foo, bar, false, null, 12]', array('foo', 'bar', false, null, 12)),
             array('[\'foo,bar\', \'foo bar\']', array('foo,bar', 'foo bar')),
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParseExceptionTest.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParseExceptionTest.php
index 8c2b1a4..e4eb9c9 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParseExceptionTest.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParseExceptionTest.php
@@ -12,7 +12,6 @@
 namespace Symfony\Component\Yaml\Tests;
 
 use Symfony\Component\Yaml\Exception\ParseException;
-use Symfony\Component\Yaml\Yaml;
 
 class ParseExceptionTest extends \PHPUnit_Framework_TestCase
 {
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php
index 7f16d92..553d2fb 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php
@@ -464,9 +464,7 @@ public function testNonUtf8Exception()
     }
 
     /**
-     *
      * @expectedException \Symfony\Component\Yaml\Exception\ParseException
-     *
      */
     public function testUnindentedCollectionException()
     {
@@ -484,6 +482,22 @@ public function testUnindentedCollectionException()
 
     /**
      * @expectedException \Symfony\Component\Yaml\Exception\ParseException
+     */
+    public function testShortcutKeyUnindentedCollectionException()
+    {
+        $yaml = <<<EOF
+
+collection:
+-  key: foo
+  foo: bar
+
+EOF;
+
+        $this->parser->parse($yaml);
+    }
+
+    /**
+     * @expectedException \Symfony\Component\Yaml\Exception\ParseException
      * @expectedExceptionMessage Multiple documents are not supported.
      */
     public function testMultipleDocumentsNotSupportedException()
@@ -699,6 +713,17 @@ public function testReferenceResolvingInInlineStrings()
 EOF
         ));
     }
+
+    public function testYamlDirective()
+    {
+        $yaml = <<<EOF
+%YAML 1.2
+---
+foo: 1
+bar: 2
+EOF;
+        $this->assertEquals(array('foo' => 1, 'bar' => 2), $this->parser->parse($yaml));
+    }
 }
 
 class B
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Unescaper.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Unescaper.php
index 50b1018..ffddd95 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Unescaper.php
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Unescaper.php
@@ -59,7 +59,7 @@ public function unescapeDoubleQuotedString($value)
     }
 
     /**
-     * Unescapes a character that was found in a double-quoted string
+     * Unescapes a character that was found in a double-quoted string.
      *
      * @param string $value An escaped character
      *
diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/phpunit.xml.dist b/core/vendor/symfony/yaml/Symfony/Component/Yaml/phpunit.xml.dist
index 90e0bcc..39c04ce 100644
--- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/phpunit.xml.dist
+++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/phpunit.xml.dist
@@ -6,6 +6,10 @@
          colors="true"
          bootstrap="vendor/autoload.php"
 >
+    <php>
+        <!-- php -r 'echo -1 & ~E_USER_DEPRECATED;' -->
+        <ini name="error_reporting" value="-16385"/>
+    </php>
     <testsuites>
         <testsuite name="Symfony Yaml Component Test Suite">
             <directory>./Tests/</directory>
